変数バッファを画像データとして適用する
celbitmap p1,var,p2
p1(0) : ウインドウID var : イメージを置き換えるための配列変数 p2(0) : 動作オプション
(プラグイン / モジュール : HSP3Dish)
変数バッファの内容を画像データとして指定されたオフスクリーンバッファを置き換えます。 あらかじめ、buffer命令により作成したオフスクリーンバッファと、置き換えるための変数バッファを初期化する必要があります。 オフスクリーンバッファは、buffer命令でscreen_offscreenのオプションを指定して作成してください。 buffer 2,256,256,screen_offscreen その後、バッファを置き換えるための変数バッファを作成します。 dim命令により、1次元配列を初期化して作成してください。作成するサイズは、オフスクリーンバッファのXサイズ×Yサイズになります。 dim bitmap, 256*256 これで、celbitmap命令を使用する準備が整いました。 celbitmap命令により、オフスクリーンバッファのIDと配列変数を指定することで、変数バッファの内容がそのまま画像イメージとして適用されます。 変数バッファは、1要素あたり1ドットとなります。1ドットは、32bitの要素をR,G,B,Aそれぞれ8bit単位で格納されるRGB形式のデータとなります。 たとえば、「$ff204080」(16進数)を指定した場合は、A=$ff(255)、B=$20(32)、G=$40(64)、R=$80(128)となります。(カッコ内は10進数) 画像データの置き換えは、コストの高い処理になるため、大きなサイズのイメージを置き換える場合、フレームレートが下がることがありますので注意してください。 p2パラメーターにより、置き換えの形式や動作を指定することができます。 値 マクロ 動作 --------------------------------------------------------- 0 celbitmap_rgb $aabbggrr形式でデータを保持する 1 celbitmap_bgr $aarrggbb形式でデータを保持する 16 celbitmap_capture 描画画面の内容を変数に読み出す 通常は、OpenGLの標準に合わせたcelbitmap_rgbの形式が使用されます。オプションにcelbitmap_bgrを指定した場合は、DirectX標準に合わせたARGBの並びになります。 celbitmap_captureを指定した場合は、描画先(ID0)の画面上のデータを配列変数に読み出します。(読み出しのサイズはオフスクリーンバッファのサイズになります) ※celbitmap_captureオプションは、実験的な実装です。現在は、Windows(DirectX版HGIMG4を除く)、Linux版でのみ使用できますのでご了承ください。
#include "hsp3dish.as" buffer 2,256,256,screen_offscreen gsel 0 dim bitmap,256*256 repeat 256*256 bitmap(cnt)=$ff00ffff loop *main redraw 0 celbitmap 2,bitmap pos 0,0 celput 2 redraw 1 await 1000/30 goto *main
buffer | 仮想画面を初期化 |
プラグイン / モジュール | HSP3Dish |
バージョン | 3.6 |
作成日 | 2020/06/10 |
著作者 | onitama |
URL | http://hsp.tv/ |
備考 | hsp3dish.asをインクルードすること。 |
タイプ | 拡張命令 |
グループ | 拡張入出力制御命令 |
対応環境 |
|
hs ファイル | hsphelp\hsp3dish.hs |