RGB(またはRGBA)テクスチャイメージのバッファがあり、Androidデバイスに次のコードで表示したいとします。私はNDKからOpenGLを使用しています。OpenGL ESテクスチャの問題、4列と水平線の重複(Android)
glTexImage2D(GL_TEXTURE_2D,
0,
GL_RGBA,
256,
256,
0,
GL_RGBA,
GL_UNSIGNED_BYTE,
this->pBuffer);
は私も持つJava側からPixelFormatプロパティを設定している:
this.getHolder().setFormat(PixelFormat.RGBA_8888);
this.setEGLConfigChooser(8, 8, 8, 8, 0, 0);
setRenderer(new MyRenderer());
画像が表示されているが、4つの列がある(同一では、元画像の認識部分を含む)の水平あります画像の上にすべての線が表示されます。
何が問題なのですか?
オリジナル画像:それは私のコードでどのように見えるか
:
おかげで、これは多くのことを助けました。私は画像を正しく表示することができました。しかし、画像はディスプレイの幅に合わせて拡大されません。 glDrawTexiOES(0、0、0、windowWidth、windowHeight)を使用します。これは正しい方法ですか? –
@Ertan D.私は詳細情報で答えを編集しましたが、あなたのウィンドウ領域が256x256で、画像が同じアスペクト比(1:1)でない場合、「間違っている」ように見えるかもしれません。画像のアスペクト比、または別の方法でクリップする(例えば、ある高さよりも画像の一部が失われる) – richq
これは素晴らしいことです。ありがとうございます!実際の画像サイズではなく、GL_TEXTURE_CROP_RECT_OESをテクスチャサイズに設定していました。それが私の問題でした。今、私はそれが欲しいのとまったく同じように働いています。 –