拡大縮小付きデータ転送
拡大縮小付きデータ転送は自作関数「BltStretch」にまとめました。
Bltの構文については上で説明した通りです。転送先のサーフェイスがBlt関数を呼び出すことになります。BltFast関数(第8回参照)と似てる部分もあるのですが、転送先の指定にRECT構造体を使用していたり、透明色を使用しない時に
特に指定が無いという事が違う点ですかね。転送元と転送先のサイズが違うときに拡大縮小を行います。
サイズが同じ時はそのまま転送するのですが、ハードウェアの転送であればBltFastと速度は同じらしいです。
まぁ今回は、特別な機能を使用していないのでDDBLTFX構造体へのポインタはNULLを指定してます。
拡大縮小機能は普通のビデオカードではまず対応していないでしょう。その場合、ソフトウェアでエミュレートするのですが、ビデオメモリ内に作成されたサーフェイス間のデータ転送は非常にたるいです。ですからシステムメモリ内のサーフェイス間で拡大縮小をした後で
ビデオメモリ内のサーフェイスへ転送する方がいいかもしれませんね。