Java LWJGL使用PBO读取像素失败
我正在尝试异步读取帧缓冲区,但glReadPixels()生成无效的\u操作错误 我已经阅读了可能导致此错误的内容,但在代码中未发现任何问题:Java LWJGL使用PBO读取像素失败,java,opengl,lwjgl,glreadpixels,pbo,Java,Opengl,Lwjgl,Glreadpixels,Pbo,我正在尝试异步读取帧缓冲区,但glReadPixels()生成无效的\u操作错误 我已经阅读了可能导致此错误的内容,但在代码中未发现任何问题: int PBOHandle = glGenBuffers(); // PBOHandle != 0 int Width = Display.getDisplayMode().getWidth(); // 800 int Height = Display.getDisplayMode().getHeight();// 600 glReadBuffe
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);
您没有正确创建真正的像素缓冲区对象。你所做的只是为一个人起个名字。您必须调用以创建实际的数据存储。使用
NULL
作为数据指针来创建单元化缓冲区