OpenGL,等待输出显示在屏幕上

时间:2014-05-20 15:16:59

标签: opengl jogl glreadpixels

我试图在GLWindow上绘制一些图像然后在它们被绘制之后,将它们读入字节缓冲区。显示部分工作正常,图像阅读也有效,但它们似乎并不能很好地协同工作。

public void display(GLAutoDrawable drawable)
{
    GL2 gl  = drawable.getGL().getGL2();

    gl.glClear(GL2.GL_COLOR_BUFFER_BIT);

    render.mutate();
    eval.display();     //display images
    drawTexture(gl, loader.getTexture());
    gl.glFlush();       //glFinish() doesn't work either

    eval.evaluate();    //read images
}

似乎发生的事情是在输出实际出现在屏幕之前调用eval.evaluate()。这导致评估函数只读取空图像。

我总是假设当调用glFlush()时,一切都输出到屏幕,但显然不是。

那么有没有办法强制程序以某种方式等待输出显示在屏幕上然后再继续阅读?

此外,不可能直接从图像中获取bytebuffer,因为其中一个图像实际上不是图像,而是用openGL绘制的三角形集合。

0 个答案:

没有答案