我有一个 OpenGL 程序,我在其中使用纹理显示图像。我希望能够加载要显示的新图像。
在我的初始化函数中,我调用:
Gl.glGenTextures(1, mTextures);
由于一次只会显示一张图像,因此我为每张图像使用相同的纹理名称。
每次加载新图像时,我都会调用以下命令:
Gl.glBindTexture(Gl.GL_TEXTURE_2D, mTexture[0]);
Gl.glTexImage2D(Gl.GL_TEXTURE_2D, 0, Gl.GL_LUMINANCE, mTexSizeX, mTexSizeY, 0, Gl.GL_LUMINANCE, Gl.GL_UNSIGNED_SHORT, mTexBuffer);
Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MIN_FILTER, Gl.GL_LINEAR);
Gl.glTexParameteri(Gl.GL_TEXTURE_2D, Gl.GL_TEXTURE_MAG_FILTER, Gl.GL_LINEAR);
第一个图像将按预期显示。但是,所有图像都在第一个之后加载,显示为全黑。
我究竟做错了什么?