gpt4 book ai didi

java - LWJGL 使用 PBO 读取像素失败

转载 作者:行者123 更新时间:2023-11-30 03:57:42 26 4
gpt4 key购买 nike

我正在尝试异步读取帧缓冲区,但 glReadPixels() 会生成 INVALID_OPERATION 错误。

我已经阅读了可能导致此错误的原因,但我在代码中没有发现任何问题:

 int PBOHandle = glGenBuffers(); // PBOHandle != 0
int Width = Display.getDisplayMode().getWidth(); // 800
int Height = Display.getDisplayMode().getHeight();// 600
glReadBuffer(GL_FRONT);
glBindBuffer(GL_PIXEL_PACK_BUFFER, PBOHandle);
glReadPixels(0, 0, Width, Height, GL_RGBA, GL_UNSIGNED_BYTE, 0);
// GL_INVALID_OPERATION right here
glBindBuffer(GL_PIXEL_PACK_BUFFER, PBOHandle);
ByteBuffer Buffer = glMapBuffer(GL_PIXEL_PACK_BUFFER, GL_READ_WRITE, null);
/* stuff */
glUnmapBuffer(GL_PIXEL_PACK_BUFFER);
glBindBuffer(GL_PIXEL_PACK_BUFFER, 0);

最佳答案

您没有正确创建真实的像素缓冲区对象。您所做的只是为一个人创建一个名字。您必须调用glBufferData()创建实际的数据存储。使用NULL作为数据指针来创建统一的缓冲区。

关于java - LWJGL 使用 PBO 读取像素失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22720029/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com