У меня есть небольшой сегмент, который генерирует список отображения, который выглядит следующим образом:
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).
Не могу понять, что с ним не так, если честно.