2

この質問は Android の OpenGL ES 2.0 に固有のものですが、一般的な GL 機能を使用する回避策がある可能性があるため、これを「opengl」としてタグ付けしています。

tl;dr: glPixelStorei(GL_UNPACK_ROW_LENGTH)OpenGL ES 2.0 で指定する別の方法はありますか? 仕様によると、GL_UNPACK_ROW_LENGTHOpenGL 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 でテクスチャの水平部分領域を更新する方法はありますか?

4

1 に答える 1