0

我正在尝试使用 opengl 将纹理应用于精灵,如下所示:

int[] textures=new int[1];
gl.glEnableClientState(GL10.GL_TEXTURE_2D);
gl.glGenTextures(1, textures, 0);
gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);
Bitmap bitmap=null;
try {
   bitmap=  BitmapFactory.decodeStream(contxt.getAssets().open("gfx/garf.png"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

GLUtils.texImage2D(GL10.GL_VERTEX_ARRAY, 0, bitmap, 0);
bitmap.recycle();

......

我在android中使用andEngine框架并使用Sprite的onManagedDraw方法来做到这一点。

任何人都可以在这个方向上提供帮助吗?

4

2 回答 2

4

我认为您需要 texImage2D( GL10.GL_TEXTURE_2D , 0, bitmap, 0);

于 2011-02-28T14:15:07.037 回答
2

我只是猜测你的问题是纹理没有出现:)

这是错误的:

GLUtils.texImage2D(GL10.GL_VERTEX_ARRAY, 0, bitmap, 0);

应该:

GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
于 2011-02-28T14:14:13.693 回答