LWJGL - списки отображения не работают

Я хочу визуализировать некоторые сетки в LWJGL. Когда я использую способ рендеринга объектов по умолчанию (glVertex3f и т. д.), проблем не возникает. Но когда я хочу отображать объекты с помощью списков отображения, экран пуст. Я использую тот же код для инициализации списка отображения, что и для рендеринга по умолчанию.

glViewport(0, 0, getWidth(), getHeight());
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(45.0f, getHeight() / getHeight(), 1.0f, 1000.0f);
glMatrixMode(GL_MODELVIEW);
glEnable(GL_DEPTH_TEST);
glLoadIdentity();
//...
this.displayList = glGenLists(1);
//...
glNewList(displayList, GL_COMPILE);
//[same code I use for the default rendering way]
GL11.glEndList();
//...
glCallList(displayList);

Я понятия не имею, почему это не работает

Есть ли что-то, о чем я должен позаботиться при работе со списками отображения?


person user3582495    schedule 28.04.2014    source источник
comment
Я предполагаю, что вы позвонили glEndList() где-то в этом ...   -  person PeterT    schedule 28.04.2014


Ответы (1)


Похоже, вы пропустили вызов glEndList(). Вам нужно вызвать это после того, как вы закончите визуализацию всего, что хотите в списке отображения, и перед вызовом glCallList().

person Reto Koradi    schedule 28.04.2014
comment
О, извините, это была ошибка в написании. Я имел в виду GL11.glEndList(); вместо GL11.glEnd(); Но все равно спасибо за помощь! - person user3582495; 28.04.2014
comment
Ах, хорошо, тогда это не так просто. Какие команды рендеринга вы используете? См. opengl.org/sdk/docs/man2/xhtml/glNewList.xml. для списка вызовов, которые не поддерживаются внутри списков отображения. И я знаю, что это не ответ, но, поскольку это сейчас я комментирую, я все равно скажу: просто скажите «нет», чтобы отображать списки. Они устарели как минимум на 15 лет. - person Reto Koradi; 29.04.2014