私は今、複数のテクスチャの可能性を実装していましたが、昨日、他のデバイスで期待通りに動作しないことがわかりました。私のものではありません。/ 私のデバイス(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();
、ここで私の三角形が描かれている部分:テクスチャロードするための
まずいくつかのコード・スニペットYMデバイスすべてで
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);
はかなり完璧に動作します: Th 4つのクワッドがあり、それぞれに独自のテクスチャーユニットが順番に描かれています。
しかし、私は私の友人と彼のデバイス(サムスンギャラクシーS1)にAPKを与えました、それは1つのテクスチャを読み込んで、そのうちの最初の2つだけを表示するだけです... わからない探すには....私はまだバグを見つけられませんでした。
PS:別のバグが発生しました。私はそれを処理することができません。 "スリープモード"から "再オープン"した後、現在実行中のアプリケーションは、アルファブレンディングを使用すべきすべての画像が黒色になります。