我似乎有一個奇怪的問題,在一個電話兩個紋理不加載,因爲它們顯示爲白色矩形,但是,它們都加載在我的手機上。另一個問題是,在恢復遊戲的加載屏幕顯示時,這在第一次應用程序暫停時效果很好,但在第二次恢復後紋理不會加載到我的手機上......但是加載屏幕加載的紋理全部出現精細。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