この質問は Android の OpenGL ES 2.0 に固有のものですが、一般的な GL 機能を使用する回避策がある可能性があるため、これを「opengl」としてタグ付けしています。
tl;dr: glPixelStorei(GL_UNPACK_ROW_LENGTH)
OpenGL ES 2.0 で指定する別の方法はありますか? 仕様によると、GL_UNPACK_ROW_LENGTH
OpenGL ES 2.0 には存在しないためです。
glTexImage2D
個別に更新されているクライアント メモリの固定領域から、を呼び出すことによって頻繁に更新するテクスチャがあります。場合によっては、画像の部分領域のみが変更されていることがわかっています。テクスチャの上半分だけを呼び出して指定することで、更新される行の数を制限できますglTexSubImage2d
(たとえば)。これにより、パフォーマンスが大幅に向上します。
しかし、更新される列の数も制限しようとしたとき (たとえば、テクスチャの左上象限のみを更新したい場合)、 strideパラメーターが にないことに気付きましたglTexSubImage2d
。私のアプリケーションでは、すべてのソースであるクライアント メモリの領域glTexImage2d
/glTexSubImage2d
が画像の全幅であるため、 を呼び出す場合は、それをストライドとして指定する必要がありますglTexSubImage2d
。
glPixelStorei(GL_UNPACK_ROW_LENGTH,stride)
これを行う方法のようですがGL_UNPACK_ROW_LENGTH
、OpenGL 2.0 ES ではサポートされていません。OpenGL ES 2.0 でテクスチャの水平部分領域を更新する方法はありますか?