我已經實現了多種紋理的可能性,但現在...但是昨天我發現他們不能按預期在其他設備上工作...不是我的..:/ 在我的設備上(Experia Mini Pro)它完美的作品:多紋理將無法在另一臺設備上工作?
首先,一些代碼段用於加載紋理:
int[] textureID = new int[1];
GLES20.glDeleteTextures(1,textureID,0);
GLES20.glGenTextures(1,textureID,0);
this.unit = textureID[0];
GLES20.glActiveTexture(GLES20.GL_TEXTURE0+this.unit);
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D,this.unit);
GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,GLES20.GL_TEXTURE_MIN_FILTER,GLES20.GL_LINEAR);
GLES20.glTexParameterf(GLES20.GL_TEXTURE_2D,GLES20.GL_TEXTURE_MAG_FILTER,GLES20.GL_LINEAR);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D,GLES20.GL_TEXTURE_WRAP_S,GLES20.GL_REPEAT);
GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D,GLES20.GL_TEXTURE_WRAP_T,GLES20.GL_REPEAT);
...
... bitmap loading functions
...
GLUtils.texImage2D(GLES20.GL_TEXTURE_2D,0,bitmapTexture,0);
bitmapTexture.recycle();
,並在這些地方我的三角形繪製的部分:
GLES20.glUniform1i(LLShader.location[20],gfx.imagetexture.unit);
GLES20.glActiveTexture(GLES20.GL_TEXTURE0+gfx.imagetexture.unit);
GLES20.glBindTexture(GLES20.GL_TEXTURE_2D,gfx.imagetexture.unit);
GLES20.glDrawArrays(GLES20.GL_TRIANGLES,0,gfx._vertexBuffer.capacity()/3);
在YM設備一切工作相當完美:釷ere是4個四邊形,每個都有自己的紋理單元。
但後來我給了我的一個朋友和他的設備(三星Galaxy S1)的apk,它只加載一個紋理,並只顯示其中的第一個兩個... 不知道在哪裏尋找....直到現在我還沒發現bug。
PS:另一個錯誤發生,我不知道處理。在「重新打開」(從sleepmode進入)之後,當前正在運行的應用程序中所有應該使用alpha混合的圖像都是黑色的......可能是什麼問題?