だから私が操作することによってサーフェスを大きくするとhとwのメンバーは、私は奇妙な結果に終わります - 追加されたスペースは、既に表面上にあったものの歪んだバージョンでいっぱいです。私はこれを避ける/追加されたスペースをクリアするいくつかの方法はありますか(アルファに設定)?
回答:
回答№1は2私はSDL 2しか使用しませんでしたが、あなたのコードに何が間違っているのか分かりました。
サーフェスのピクセルデータは単純な1Dピクセルの配列です。この配列の長さは w*h
。ピクセルへのアクセスは次のように実装されます: pixeldata[y * w + x]
.
つまり、サーフェスのサイズを変更するために2つのメンバーを変更することはできません。このサーフェスを使用すると、ピクセルデータ配列への範囲外アクセスが発生します。
したがって、サーフェスのサイズを変更する場合は、新しいサーフェスを作成し、必要なピクセルをそのサーフェスにコピーする必要があります。
もちろん、手作業でサイズを変更することは可能ですが、正当な理由がなければそれを試みるべきではありません。