3

OpenGl ES 1.0 Driver で Irrlicht を使用して画面をキャプチャしたい。

これがC ++で書かれた私のコードです

glReadPixels(0, 0, 200, 200, GL_RGBA, GL_UNSIGNED_BYTE, pixels);

ほとんどの Android デバイスは正常に動作します。しかし、Android 2.2.3 の MileStone は予期しない結果になりました。MileStone は BGRA カラーを返しますが、RGBA カラー フォーマットが必要です。

最後に、コードを変更します

glReadPixels(0, 0, 200, 200, GL_BGRA, GL_UNSIGNED_BYTE, pixels);

しかし、MileStone は RGBA カラーを返します。

なぜ赤と青が予想外なのか疑問があります。適切な理由は何ですか?

4

2 に答える 2

0

GL_BGRAOpenGL ES ではサポートされていません。おそらく、サポートされていると暗黙的に想定している拡張機能があるため、他のデバイスでも動作します。

この場合、OpenGL がGL_INVALID_ENUMエラー コードを設定すると思います。それを確認しましたか?

編集:待ってください、私はあなたの質問を正しく読みませんでした。MileStone は と の結果を交換していますGL_RGBAGL_BGRA? 拡張子に関係なく、それは奇妙です。

于 2013-02-17T09:13:11.197 に答える