lwjgl:我如何使用glCallLists?

时间:2010-06-02 18:18:06

标签: java opengl lwjgl

所以我的显示列表有一堆地址。我可以做到这一点,并在屏幕上轻松地使用GL11.glCallList(address)。我的问题是我不知道如何使用可能更高效的GL11.glCallLists(something)来调用一堆本地调用的列表。我尝试使用IntBuffer ib = ByteBuffer.allocateDirect(numberOfDisplayLists * 4).asIntBuffer()创建一个IntBuffer然后put(int index, int i)将正确的值放入IntBuffer中,但是当我调用GL11.glCallLists(ib)时没有任何反应。

帮助?

1 个答案:

答案 0 :(得分:4)

这是一种做法......

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);