Je le ferais probablement en ayant simplement une sorte de structure de données (tableau, liste chaînée, peu importe) qui contient la "scène" actuelle. Initialement, c'est vide. Ensuite, lorsque l'événement se produit, vous créez une sorte de représentation de la nouvelle géométrie souhaitée et l'ajoutez à la liste.
Sur chaque image, vous effacez l'écran et parcourez la structure de données, en mappant chaque représentation en un ensemble approprié de commandes OpenGL. C'est vraiment standard.
La structure de données est souvent appelée scene graph, elle est souvent sous la forme d'un arbre ou d'un graphique, où la géométrie peut avoir des géométries enfant et ainsi de suite.