/ / SDL 1.2.15表面発行の延長 - c ++、sdl、sdl-1.2

SDL 1.2.15表面問題の拡張 - c ++、sdl、sdl-1.2

だから私が操作することによってサーフェスを大きくするとhとwのメンバーは、私は奇妙な結果に終わります - 追加されたスペースは、既に表面上にあったものの歪んだバージョンでいっぱいです。私はこれを避ける/追加されたスペースをクリアするいくつかの方法はありますか(アルファに設定)?

ここに画像の説明を入力

回答:

回答№1は2

私はSDL 2しか使用しませんでしたが、あなたのコードに何が間違っているのか分かりました。

サーフェスのピクセルデータは単純な1Dピクセルの配列です。この配列の長さは w*h。ピクセルへのアクセスは次のように実装されます: pixeldata[y * w + x].

つまり、サーフェスのサイズを変更するために2つのメンバーを変更することはできません。このサーフェスを使用すると、ピクセルデータ配列への範囲外アクセスが発生します。

したがって、サーフェスのサイズを変更する場合は、新しいサーフェスを作成し、必要なピクセルをそのサーフェスにコピーする必要があります。

もちろん、手作業でサイズを変更することは可能ですが、正当な理由がなければそれを試みるべきではありません。