Я бы, вероятно, сделал это, просто имея некоторую структуру данных (массив, связанный список, что угодно), удерживая текущую «сцену». Первоначально это пусто. Затем, когда происходит событие, вы создаете какое-то представление новой желаемой геометрии и добавляете это в список.
На каждом кадре вы очищаете экран и просматриваете структуру данных, отображая каждое представление в наборе команд OpenGL. Это действительно стандарт.
Структура данных часто упоминается как scene graph, она часто представлена в виде дерева или графика, где геометрия может иметь дочерние геометрии и т. Д.