2016-08-29 18 views
0

私はGalaxy Notes以外のすべてのデバイスでうまく動作するgles2アプリケーションを作成しています。 色はないRGBAが、(もっとABGAのような)ABGRのいくつかの種類のようです blue buttons drawn yellow, black titles are redリトルエンディアンの間違ったカラーフォーマットのAndroidタブレット

青ボタン描かれた黄色、黒のタイトルは赤(写真を投稿するため申し訳ありませんが、スクリーンショットが奇数である、右の色を示しています)

私はオフスクリーンバッファを使用してすべてを描画し、このバッファのイメージを画面に描画します。

glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, m_width, m_height, 0, GL_RGBA, GL_UNSIGNED_BYTE, 0) 

これは、テクスチャにtexImage2dを使用する方法です。

私はいくつかのテストアプリとどのようなスクリーンショットを示して書いた: enter image description here

をし、これは、それが実際の生活の中で enter image description here

+0

あなたは何を求めていますか? – Sergio

答えて

1

チェックthis answerをどのように見えるかです。

特に、GL_UNSIGNED_BYTEを使用すると、エンディアンを失うようです。あなたがやっていることがintに4バイトを格納するのであれば、代わりにGL_UNSIGNED_INT_8_8_8_8を使うべきです。それから、そのプラットフォームに期待する順序を知ることができます。

+0

ありがとうございますが、残念ながらUNSIGNED_INT_8_8_8はありません。しかしそれはGL_UNSIGNED_SHORT_4_4_4_4を持っています。私はそれを代わりに使うべきですか? (そして、ofc、私のデータを短くまとめたものに変更する) – FertoVordalastr

+0

あなたは 'UNSIGNED_INT_8_8_8'に_8がないので、そのうちの4つがあるはずです。たぶんこれはあなたがそれを見つけられなかった理由を説明します? –

+0

いいえいいえ...書いているうちにちょっと忘れました... OpenGLでは8_8_8_ですが、khronos manulasによると "テクセルデータのデータタイプを指定します:GL_UNSIGNED_BYTE、GL_UNSIGNED_SHORT_5_6_5、GL_UNSIGNED_SHORT_4_4_4_4、 GL_UNSIGNED_SHORT_5_5_5_1」となります。また、gles 3.0ではフォーマットとしてGL_BGRAを設定する可能性がありますが、2.0を使用しています。だから、私の前提は、intの代わりにshortを使って4_4_4_4を使ってみることです。それが動作することを願っています。 – FertoVordalastr

関連する問題