[トップ][編集][ノート][編集履歴][一覧][最近の更新][->English]

HSPHelp:es_buffer


es_buffer

es_buffer p1,p2                 [VRAMイメージ転送]

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

( 拡張プラグイン[hspdx]が必要です )

説明

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

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

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

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

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

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

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

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

備考

当プラグインに関する質問、要望などはSinagawaへお願いします。