0

Android 向けのゲームを開発していますが、すべてが多くのデバイスでうまく動作します。しかし、昨日、Samsung Galaxy Tab P1000 でゲームをテストしたところ、問題が発生しました。

glGenTextures 関数は無効な ID を返します。例: 100271、315638026、534244737、1505553220、-1563003837

とても奇妙です。onSurfaceCreated 関数と onDrawFrame 関数の両方でテクスチャを作成しようとしましたが、同じ結果になりました。glGenTextures 関数をカウンターに基づく独自の実装に置き換えると、すべてが機能します。

何が起こっているか知っている人はいますか?

この問題を解決するには?

4

2 に答える 2

4

なぜそれらが無効な ID だと思いますか?

テクスチャ ID は Gluint、つまり署名されていないため、負の数はありません。また、OpenGL テクスチャ ID が単調で密である必要はありません。

于 2012-06-01T09:41:33.217 に答える
0

これが私が問題を解決した方法です:

IntBuffer t = IntBuffer.allocate(1);
gl.glGenTextures(1, t);
int texture_id = t.get(0);
gl.glBindTexture(GL10.GL_TEXTURE_2D, texture_id);

または、静的 int を作成して独自のテクスチャ カウンターを実装し、テクスチャを作成するたびにインクリメントすることもできます。

于 2013-02-14T10:24:26.427 に答える