es_buffer

VRAMイメージ転送

es_buffer p1,p2

p1=オフスクリーンバッファID(0~63)
p2=属性スイッチ(0~2)
p3=透明色(パレットモード時:-1~255、ハイカラー以上:0~$ffffff)

(プラグイン / モジュール : hspdx)

解説

属性スイッチ=0 : オフスクリーンバッファをVRAMに取る、
                 失敗した場合は、メインメモリに取る
属性スイッチ=1 : オフスクリーンバッファをメインメモリに取る
属性スイッチ=2 : オフスクリーンバッファをVRAMに取る

現在gsel命令で選択されているHSPのバッファ内容を、DirectXのオフ
スクリーンバッファにすべて転送します。
この時、パレットも読み出されDirectX側のパレットに転送されます。

オフスクリーンバッファに転送できる最大画像サイズは、ビデオカードに
よって異なり、主に

	1.縦横ともに画面解像度以上のサイズで作成できる
	2.横は画面解像度と同サイズまで、縦はそれ以上のサイズで作成できる
	3.縦横ともに画面解像度と同サイズまで

の3通りとなっています。現存するビデオカードは2.に該当するものが多く、
3.に該当するものはほとんどないと思われます。よって、あらゆる環境で
確実に動くことを期待するなら画面解像度まで、大きなバッファを扱いたい
なら縦に長くバッファを確保することをおすすめします。

p3にはes_copy命令などで透明色として使う色を指定します。
パレットモードでは0~255までのパレット番号を直接指定するか、-1を
指定することで完全な黒(RGB=0)でパレット番号が一番若いパレットを
自動的に透明色に設定します。
ハイカラー以上では透明色に指定するRGB値を$rrggbbの16進数6桁で
設定します。たとえば、$00ff00と指定することでRGB=(0,255,0)の色が
透明色になります。

HSP側のバッファは、DirectXがパレットモードの時は同じくパレット
モードで初期化されていないと正常に転送されませんが、ハイカラー以上
の場合はパレット・フルカラーモードどちらでも転送されます。
オフスクリーンバッファへの転送が成功した場合には、システム変数
statの値は0になります。転送に失敗すると、statの値は1になります。
転送に失敗する可能性は、転送する画像が大きすぎるか、VRAMの容量が
足りないことなどが考えられます。自分の環境では動作していても、
別のマシンではエラーになる可能性がありますので、スクリプト側で
チェックをするように心がけてください。

すでに転送済みのオフスクリーンバッファIDを指定した場合には、
一度その内容が削除され、新しいものに上書きされます。

サンプル

buffer 3,640,480,1
picload "test.bmp"
es_buffer 0

サンプル逆引き (7)

HSPDX.AS
SSAVER.AS
TEST1.AS
TEST2.AS
TEST3.AS
TEST4.AS
TEST5.AS

情報

プラグイン / モジュールhspdx
バージョン0.12
作成日2002/12/01
著作者Sinagawa(original by onitama)
URLhttp://www.onionsoft.net/
備考当プラグインに関する質問、要望などはSinagawaへお願いします。
URL->http://www.diveto.net/zero/
Mail->zero@diveto.net
タイプ拡張命令
グループ拡張画面制御命令
hs ファイルhsphelp\hspdx.hs