2010-03-07 4 views
1

Quelqu'un peut-il m'expliquer comment utiliser glPushName et glPopName. J'aime les utiliser à la place de glLoadName, mais je reçois les erreurs GL_STACK_OVERFLOW et GL_STACK_UNDERFLOW. (D'abord, sous débordement).glPushName + glPopName débordement et sous-dépassement de pile

Exemple de code m'aiderait aussi.

Remarque n ° 1: Mon code Rendering/selection_rednering se compose de plusieurs blocs glBegin (...)/glEnd(), s'il s'agit d'un problème, ainsi que de diverses rotations et transformations. Je sais que la sélection/sélection de GL est obsolète, mais je dois l'implémenter dans une application qui a été développée il y a quelque temps avec OpenGL2.1.

Répondre

1

Dans ce cas, j'étais juste bête, parce que ce stackoverflow a été causé en faisant beaucoup de glPushMatrix, car cette pile a une très faible capacité (3 dans mon boîtier de matériel spécial). Le mode dessin fonctionne très bien, mais j'ai une matrice supplémentaire utilisée pour le mode picking.

Comment utiliser glPopName/glPushName (nom)

glPushName(obj->name()); 
glBegin(...); 
//draw it; 
glEnd(); 

glPushName(obj->child->name()); 
glBegin(...); 
//draw child it; 
glEnd(); 

glPopName(); 
glPopName(); //important, or yoou will get a stackoverflow after some time 
Questions connexes