OpenGL error 1282 with glEndList()
OpenGL error 1282 with glEndList()
我有一个小段,它生成一个显示列表,看起来像这样:
glNewList ( CDisplayList :: GetBaseList () + 2, GL_COMPILE );
{
glBegin ( GL_QUADS );
glPushMatrix ();
//
// Move to slightly lower position.
//
glTranslatef ( 0.0f, -1.1f, 0.0f );
glColor4f ( 1.0f, 1.0f, 1.0f, 1.0f );
//
// Front facing.
//
glTexCoord2f ( m_TexLeft, m_TexBottom ); glVertex3f ( m_Start, -0.1f, 0.0f );
glTexCoord2f ( m_TexRight, m_TexBottom ); glVertex3f ( m_End, -0.1f, 0.0f );
glTexCoord2f ( m_TexRight, m_TexTop ); glVertex3f ( m_End, -1.3f, 0.0f );
glTexCoord2f ( m_TexLeft, m_TexTop ); glVertex3f ( m_Start, -1.3f, 0.0f );
//
// Back facing.
//
glTexCoord2f ( m_TexLeft, m_TexTop ); glVertex3f ( m_Start, -1.3f, 0.0f );
glTexCoord2f ( m_TexRight, m_TexTop ); glVertex3f ( m_End, -1.3f, 0.0f );
glTexCoord2f ( m_TexRight, m_TexBottom ); glVertex3f ( m_End, -0.1f, 0.0f );
glTexCoord2f ( m_TexLeft, m_TexBottom ); glVertex3f ( m_Start, -0.1f, 0.0f );
glPopMatrix ();
glEnd ();
}
glEndList ();
GLenum e = glGetError();
这里末尾的"e"值总是1282(无效操作或类似的东西)。我不知道为什么。我检查了glGetError之后的每一个命令构建列表,从glNewList向下,它总是相同的(零)。此显示列表是之前构建的3 - 2个列表中的一个(使用glGetError进行测试并返回零)。因此,这个列表的某些内容特别让司机头疼。
任何想法?
注意m_TexLeft等是0,0,1,0.125(左,上,右,下)和m_Start, m_End是0,100。GetBaseList返回一个通过调用glGenLists(3)得到的整数(确切的值是257)。
老实说,我看不出有什么问题。
您需要将转换矩阵操作移出glBegin/glEnd对。文档是这样说的:
只有一部分GL命令可以在glBegin和glEnd之间使用。这些命令是glVertex, glColor, gllindex, glNormal, glTexCoord,glEvalCoord, glEvalPoint, glrayelement, glMaterial,和glEdgeFlag。同样,使用glCallList或glCallLists来执行也是可以接受的显示仅包含上述命令的列表。如有其他在glBegin和glEnd之间执行GL命令时,错误标志为
在Errors部分下:
GL_INVALID_OPERATION:glColor, gllindex, glNormal, glTexCoord, glEvalCoord, glEvalPoint,glrayelement, glMaterial, glEdgeFlag, glCallList,或glCallLists是在执行glBegin和对应的执行glEnd。
- Problems with std::cin.fail()
- 应用程序崩溃并显示"symbol _ZdlPvm, version Qt_5 not defined in file libQt5Core.so.5 with link time reference"
- 这对"With a stackless coroutine, only the top-level routine may be suspended."意味着什么
- Boost.TEST with CLion: "Test framework quit unexpectedly"
- 避免碎片化的ClientHellos with OpenSSL (DTLS)
- Issues with Win32 ReadProcessMemory API
- Qt with WinAPI MouseProc
- [[maybe_unused]] with structured_binding?
- Issue with WriteProcessMemory
- OpenCV RTP-Stream with FFMPEG
- "Unable to start debugging. No process is associated with this object." - 在Visual Studio Code中使用GDB
- std::adjacent_difference with std::chrono time_point
- DLL Made with CMake 使程序崩溃
- QtCreator with C 库中的链接器问题
- SHBrowseForFolder with BIF_BROWSEFORCOMPUTER and SHGetPathFr
- specialized std::default_delete with QQmlComponent
- VS2019 - Sudo Remote Debugging on Linux with Cmake project
- Inference pytorch C++ with alexnet and cv::imread image
- Pybind11: init<> with lambda
- OpenGL error 1282 with glEndList()