シンプルな画像ビューアを作ろうとしています。基本的に画像をサーフェスにロードし、そこからテクスチャを作成します。
最後に、移行ガイドに従って、通常どおりSDL_RenderClear()
に実行します。SDL_RenderCopy()
SDL_RenderPresent()
これは問題なく動作SDL_UpdateTexture()
しますが、上記の 3 つの render 呼び出しの前に呼び出すと、めちゃくちゃな画像が表示されます。
私は次のように SDL_UpdateTexture() を呼び出しています:
SDL_UpdateTexture(texture, NULL, image->pixels, image->pitch)
image
画像用にロードしたサーフェスはどこにあり、そこtexture
から作成したテクスチャはどこにありますか。ピッチを変化させようとすると、イメージが異なってめちゃくちゃになります。また、2 番目のパラメーターに rect を使用してみましたが、rect のサイズが画像と同じ場合、結果は同じです。寸法が大きい場合 (ウィンドウと同じなど)、更新は行われませんが、エラーは発生しません。
完全なコードが利用可能です。
表面のピクセルを直接操作してから呼び出したいimage->pixels
のですが、改ざんせずSDL_UpdateTexture()
に呼び出すだけで問題が発生します。SDL_UpdateTexture()