Sto lavorando su alcune applicazioni grafiche e ho ottenuto un dopo glPopAttrib()
. Prevedere la risposta "Sembra che chiami glPopAttrib()
all'interno del blocco glBegin/glEnd
" per favore vedi questo log che ho fatto con GLIntercept.glPopAttrib & GL_INVALID_OPERATION
/* tons of wglGetProcAddress* */
wglGetProcAddress("glEndOcclusionQueryNV")=087C9B10
wglGetProcAddress("glBeginTransformFeedbackN...")=087C9ED0
wglGetProcAddress("glEndTransformFeedbackNV")=087C9F00
glPushAttrib(GL_VIEWPORT_BIT)
glPushAttrib(GL_COLOR_BUFFER_BIT)
glPushAttrib(GL_COLOR_BUFFER_BIT)
glPopAttrib()
glPopAttrib() glGetError() = GL_INVALID_OPERATION # <---- THIS
glPopAttrib()
glPushAttrib(GL_VIEWPORT_BIT)
glPushAttrib(GL_COLOR_BUFFER_BIT)
glPushAttrib(GL_COLOR_BUFFER_BIT)
glPopAttrib()
glPushAttrib(GL_POINT_BIT | GL_LINE_BIT | GL_COLOR_BUFFER_BIT)
glPopAttrib()
glPopAttrib()
glPopAttrib()
glPushAttrib(GL_VIEWPORT_BIT)
glPushAttrib(GL_COLOR_BUFFER_BIT)
glPushAttrib(GL_COLOR_BUFFER_BIT)
glPopAttrib()
glPopAttrib()
glPopAttrib()
/* and so on */
No glBegin/glEnd
chiamate sono fatte prima di errori causeing glPopAttrib()
. (Ho usato il comando findstr per filtrare il registro).
L'errore viene visualizzato solo una volta, nessun errore di tipo (o altri) durante l'esecuzione del codice. Ho il sospetto che dovrei chiamare qualche funzione prima del glPushAttrib(GL_VIEWPORT_BIT)
o qualcosa del genere.
Ciò significa che l'errore si è verificato prima di una chiamata a glPopAttrib –
No, non lo è. GLIntercept restituisce gli errori verificatisi per il comando specifico su cui sono effettivamente accaduti. –
Intendi dire che dopo il primo errore tutti i seguenti cicli di rendering sono a posto? In modo che l'errore si verifica solo una volta al primo passaggio? – Kromster