我似乎有一个奇怪的问题,在一个电话两个纹理不加载,因为它们显示为白色矩形,但是,它们都加载在我的手机上。另一个问题是,在恢复游戏的加载屏幕显示时,这在第一次应用程序暂停时效果很好,但在第二次恢复后纹理不会加载到我的手机上......但是加载屏幕加载的纹理全部出现精细。Android OpenGL一些纹理不加载/重载
所有的纹理都是2的幂,都是024x1024 ......总共有20个纹理。
问题类型的原因是什么?
这里是重新加载代码...
public void onSurfaceCreated(GL10 gl, EGLConfig config) {
super.onSurfaceCreated(gl, config);
if(firstTimeCreate) {
load(); //load settings
Assets.Load(this);
firstTimeCreate = false;
} else {
//When screen is resumed....
Assets.ReloadLoadingScreen();
}
这就是一切,这是load方法...
GL10 gl = glGraphics.getGL();
int[] textureIds = new int[1];
gl.glGenTextures(1, textureIds, 0);
textureId = textureIds[0];
InputStream in = null;
try {
in = fileIO.readAsset(fileName);
Bitmap bitmap = BitmapFactory.decodeStream(in);
gl.glBindTexture(GL10.GL_TEXTURE_2D, textureId);
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
setFilters(GL10.GL_LINEAR , GL10.GL_LINEAR);
gl.glBindTexture(GL10.GL_TEXTURE_2D, 0);
width = bitmap.getWidth();
height = bitmap.getHeight();
bitmap.recycle();
} catch(IOException e) {
throw new RuntimeException("Couldn't load texture '" + fileName +"'", e);
} finally {
if(in != null)
try { in.close(); } catch (IOException e) { }
}
和绑定方法...
public void bind() {
GL10 gl = glGraphics.getGL();
gl.glBindTexture(GL10.GL_TEXTURE_2D, textureId);
}
不要认为上述的任何错误,但也许有?
加入几乎所有的加载代码 – Chris 2012-02-03 14:56:51