我正在尝试使用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方法来执行此操作。
任何人都可以帮助这个方向吗?
答案 0 :(得分:4)
我认为你需要texImage2D( GL10.GL_TEXTURE_2D ,0,位图,0);
答案 1 :(得分:2)
我只是猜测你的问题是纹理没有出现:)
这是错误的:
GLUtils.texImage2D(GL10.GL_VERTEX_ARRAY, 0, bitmap, 0);
应该是:
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);