用C ++编写的OpenGL代码如下:
static const GLenum buffs[] = { GL_COLOR_ATTACHMENT0 };
glDrawBuffers(1, buffs);
我在JOGL中找到了相同的API:
gl.glDrawBuffers(int n, IntBuffer bufs)
我不知道如何使用此方法将上面的C ++代码移植到JOGL。有谁知道?感谢。
答案 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);