lwjgl: Как я могу использовать glCallLists? - PullRequest
1 голос
/ 02 июня 2010

Итак, у меня есть несколько адресов для моих списков отображения. Я могу сделать это и вывести их на экран с GL11.glCallList(address) достаточно легко. Моя проблема в том, что я не знаю, как использовать потенциально более эффективный GL11.glCallLists(something) для вызова группы списков одним собственным вызовом. Я попытался создать IntBuffer с IntBuffer ib = ByteBuffer.allocateDirect(numberOfDisplayLists * 4).asIntBuffer() и затем put(int index, int i), введя правильные значения в IntBuffer, но когда я вызываю GL11.glCallLists(ib), ничего не происходит.

Помощь

1 Ответ

4 голосов
/ 25 ноября 2010

Вот один из способов сделать это ...

static int size = 10;
int compiledList;
IntBuffer lists;

lists = BufferUtils.createIntBuffer(size);
compiledList = GL11.glGenLists(size);

for (int i = 0; i < size; i++) {
    GL11.glNewList(compiledList + i, GL11.GL_COMPILE);
    ...render here...
    GL11.glEndList();
    lists.put(offset);
}
lists.flip();

GL11.glListBase(compiledList);
GL11.glCallLists(lists);
...