問題があります。だから私は最初の試合をGoogle Playに入れました。それは単純な橋を構築するゲームです。OpenGL ESテクスチャが一部のデバイスに表示されない
私自身はAndroid 2.3.6で動作するSamsung Galaxy S Plusを持っています。ゲームは私の電話、ソニーXperiaレイ、HTC Gratiaとサムスンエースでうまくいった。
私のゲームを市場に出した後、プレーヤーは何らかの理由でテクスチャが動作しないという白いボックス以外の何も見えないと私に言っている回答はほとんどありません。これらの携帯電話はLG Optimus Blackと4.0.4で動作するSamsung Galaxy Sでした。 Android 4.0.4は、公式のものをリリースしなかったため、Samsung Galaxy Sのカスタムです。
どうすればよいですか?すべての私のイメージは、24ビットPNGであり、すべてがここで私はそれらをロードする方法2.
の力ですされています
/** @return texture ID
*/
public int loadTexture(int resource)
{
int[] temp = new int[1];
gl.glGenTextures(1, temp, 0);
Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(),
resource);
gl.glBindTexture(GL10.GL_TEXTURE_2D, temp[0]);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
// recycle the bitmap
bitmap.recycle();
return temp[0];
}
そして、ここでは、リンクです:https://play.google.com/store/apps/details?id=com.fizzicsgames.trainthemtocrosslite
私はいくつかのglGetError呼び出しをテクスチャに関連するコードブロックの周りに置くことを推奨します。明らかにデバイスへのアクセス権があれば、はるかに簡単になります。そうでない場合、デバイスを持っていない場合は、glGetErrorが0以外の場合に例外をスローすることができ、ユーザーにバグレポートを送信してスタックを呼び出して、どこから問題が発生したかを追跡することができます。残念ながら、これは多くのユーザーのために「強制終了」ダイアログを表示することがあります。このチェックをオプションで有効にして、すべてのユーザーに影響を与えないようにすることもできます。 – Tim