glCopyTexImage2D错误 - GL_INVALID_ENUM

时间:2014-01-19 22:34:11

标签: java opengl jogl

我对glCopyTexImage2D有一个问题 - 看看这个将以前渲染的场景剪切到纹理的util方法:

public static Texture cutRenderToTexture(GL g, int width, int height) { 
    IntBuffer buff = Buffers.newDirectIntBuffer(1); 
    g.glGenTextures(1, buff); 
    int tex = buff.get(); 
    g.glBindTexture(GL.GL_TEXTURE_2D, tex); 
    checkGLError(g); 
    g.glCopyTexImage2D(GL.GL_TEXTURE_2D, 0, GL.GL_RGBA, 0, 0, width, height, 0); 
    checkGLError(g); 
    g.glClear(GL.GL_COLOR_BUFFER_BIT | GL.GL_DEPTH_BUFFER_BIT); 
    return TextureIO.newTexture(tex, GL.GL_TEXTURE_2D, width, height, width, height, false); 
} 

checkGLError是一个检查所有可能的OpenGL错误的简单方法 - 在这个例子中,我调用它两次以表明问题只与glCopyTexImage2D调用有关。我收到GL_INVALID_ENUM错误,但目标有效,GL_TEXTURE_2D已启用且OpenGL文档(https://www.opengl.org/sdk/docs/man4/xhtml/glCopyTexImage2D.xml)未指定此错误是否可能在任何其他情况下发生。

任何想法有什么不对?

0 个答案:

没有答案