Ich benutze LWJGL, um ein Dreieck auf einen Offscreen Framebuffer mit renderbuffer zu rendern. Nach dem Rendern der Szene lese ich die Daten aus dem Renderpuffer in den RAM unter Verwendung glReadPixels
. Die ersten paar Frames funktionieren großartig, aber dann stürzt das Programm ab (SEGFAULT oder SIGABRT, ...).LWJGL stürzt nach wenigen Frames auf glReadPixels ab
Was mache ich hier falsch?
//Create memory buffer in RAM to copy frame from GPU to.
ByteBuffer buf = BufferUtils.createByteBuffer(3*width*height);
while(true){
// Set framebuffer, clear screen, render objects, wait for render to finish, ...
...
//Read frame from GPU to RAM
glReadPixels(0, 0, width, height, GL_RGB, GL_UNSIGNED_BYTE, buf);
//Move cursor in buffer back to the begin and copy the contents to the java image
buf.position(0);
buf.get(imgBackingByteArray);
//Use buffer
...
}