如何在JOGL中使用glDrawBuffers?

时间:2015-03-20 13:02:20

标签: opengl jogl

用C ++编写的OpenGL代码如下:

static const GLenum buffs[] = { GL_COLOR_ATTACHMENT0 };
glDrawBuffers(1, buffs);

我在JOGL中找到了相同的API:

gl.glDrawBuffers(int n, IntBuffer bufs)

我不知道如何使用此方法将上面的C ++代码移植到JOGL。有谁知道?感谢。

3 个答案:

答案 0 :(得分:1)

基于documentation,JOGL中glDrawBuffers()有两个重载入口点。你已经看到IntBuffer参数,但this one

void glDrawBuffers(int n,
                   int[] bufs,
                   int bufs_offset)

它需要一个绘制缓冲区值数组,以及数组中的偏移量。如果值位于数组的开头,则偏移量为0.因此,您的调用将变为:

int buffs[] = {GL.GL_COLOR_ATTACHMENT0};
gl.glDrawBuffers(1, buffs, 0);

答案 1 :(得分:0)

您可以像在C ++中一样使用它

IntBuffer buffer = BufferUtil.newIntBuffer(1);
buffer.put(GL.GL_COLOR_ATTACHMENT0);

gl.glDrawBuffers(1, buffer);

答案 2 :(得分:0)

怎么样

gl.glDrawBuffers(1,new int[]{GL.GL_COLOR_ATTACHMENT0},0);