libvpx(WebMデコードライブラリ)とOpenGL ES 2.0シェーダー(Android用)で取得したyuvデータを組み合わせてプログラミングしています。
これらは同じバイト配列ですが、この場合は正しく描画されません。
成功:
// ex) unsigned char *p = yuv.y, yuv.u or yuv.v;
for(int dy = 0; dy < hh; dy++){
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, dy, ww, 1, GL_LUMINANCE, GL_UNSIGNED_BYTE, p);
p += ww;
}
失敗 :
glTexSubImage2D(GL_TEXTURE_2D, 0, 0, 0, ww, hh, GL_LUMINANCE, GL_UNSIGNED_BYTE, p);
私は OpenGL に詳しくないので、この理由がわかりません。1行ごとにglTexSubImage2Dを呼び出すとパフォーマンスが悪くなると思います。もう改善できないのでしょうか?