lwjgl:如何使用 glCallLists?

发布于 2024-09-04 07:20:54 字数 359 浏览 4 评论 0原文

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

帮助?

So I have a bunch of addresses for my display lists. I can do those and get those on the screen with GL11.glCallList(address) easily enough. My problem is that I don't know how to use the potentially more efficient GL11.glCallLists(something) to call a bunch of lists with one native call. I've tried creating an IntBuffer with IntBuffer ib = ByteBuffer.allocateDirect(numberOfDisplayLists * 4).asIntBuffer() and then put(int index, int i)ing the correct values into the IntBuffer, but when I call GL11.glCallLists(ib) nothing happens.

Help?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

凡间太子 2024-09-11 07:20:54

这是一种方法......

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

Here's one way of doing it...

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);
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文