之前尝试同一个texture ID先后绑定不同bitmap的方法 失败了,显示在屏幕上的还是原来的bitmap。
我想问一下想要更换一个bitmap是否要重新调用以下方法重新生成一个texture?还是有更好的方法?
1. glGenTexture
2. glBindTexture
3.texImage2D
求大神赐教!!!
以下是我用来更换texture所显示bitmap的函数(函数不能用)
void refreshBitmap(){
index=(index+1)%10+1;
BitmapFactory.Options options = new BitmapFactory.Options();
Bitmap bitmap;
switch(index){
case 1:{
bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.frame1, options);
break;
}
case 2:{
bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.frame2, options);
break;
}
case 3:{
bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.frame3, options);
break;
}
case 4:{
bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.frame4, options);
break;
}
case 5:{
bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.frame5, options);
break;
}
case 6:{
bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.frame6, options);
break;
}
case 7:{
bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.frame7, options);
break;
}
case 8:{
bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.frame8, options);
break;
}
case 9:{
bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.frame9, options);
break;
}
case 10:{
bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.frame10, options);
break;
}
default: {
bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.frame1, options);
break;
}
}
System.out.println("shit!!"+texture);
glBindTexture(GL_TEXTURE_2D, texture);
//glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); //放大缩小使用的函数
//glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR);
texImage2D(GL_TEXTURE_2D, 0, bitmap, 0);
glGenerateMipmap(GL_TEXTURE_2D);
//glBindTexture(GL_TEXTURE_2D, 0);
bitmap.recycle();
mySurfaceView.requestRender();
}