我写了一个包含JOGL的java程序。 一切都很好,直到我想用纹理渲染图像(jpg,gif,png)。 我找到了以下代码片段:
import javax.media.opengl.*;
...
GL2 gl = drawable.getGL().getGL2();
gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_WRAP_S, GL.GL_CLAMP);
gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_WRAP_T, GL.GL_CLAMP);
gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MAG_FILTER, GL.GL_LINEAR);
gl.glTexParameteri(GL.GL_TEXTURE_2D, GL.GL_TEXTURE_MIN_FILTER, GL.GL_LINEAR);
gl.glTexEnvf(GL.GL_TEXTURE_ENV, GL.GL_TEXTURE_ENV_MODE, GL.GL_REPLACE);
gl.glTexImage2D(GL.GL_TEXTURE_2D, 0, GL.GL_RGBA, w, h, 0, GL.GL_RGBA, GL.GL_UNSIGNED_BYTE, bb);
int left = 100;
int top = 100;
gl.glEnable(GL.GL_TEXTURE_2D);
gl.glBindTexture(GL.GL_TEXTURE_2D, 13);
gl.glBegin(GL.GL_POLYGON);
...
问题是Eclipse无法解析GL.GL_CLAMP
,GL.GL_TEXTURE_ENV
,GL.GL_TEXTURE_ENV_MODE
和GL.GL_POLYGON
。
作为GL.GL_CLAMP
的替代方案,只有GL.GL_CLAMP_TO_EDGE
。
我甚至找不到GL.GL_QUAD
,只是GL.GL_TRIANGLE
。
怎么了?
我错过了进口吗?
其他GL常数可以解决。
的问候, 彼得
答案 0 :(得分:2)
jogl2中的正确方法是GL2.GL_CLAMP(不是GL.GL_CLAMP)。