gmode

画面コピーモード設定

gmode p1,p2,p3,p4

p1=0~6(0)   : 画面コピーモード
p2=0~(32)   : コピーする大きさX(ドット単位)
p3=0~(32)   : コピーする大きさY(ドット単位)
p4=0~256(0) : 半透明合成時のブレンド率

解説

gcopyで使用されるモードおよび、サイズ、ブレンド率などを設定します。
それぞれのコピーモード動作は以下の通りです。

・モード0 = 通常のコピー

WindowsのシステムAPI(BitBlt関数)を使った画像コピーを行ないます。
最も標準的なモードです。
多くの場合、他のモードよりも高速に処理されます。

・モード1 = メモリ間コピー

画像バッファ間のメモリコピーを行ないます。
コピー元とコピー先は、同じ画像モード(パレットモード・フルカラーモード)でなければなりません。
動作は モード0と同じですが、非常に小さいサイズ(16*16ドット以下等)のコピーを行った際 モード0よりも 若干 高速になる場合があります。

・モード2 = 透明色付きコピー

モード1と同様の方法でコピーを行ないますが、 RGBがすべて0(完全な黒)のドットは透明色とみなされコピーされません。

・モード3 = 半透明合成コピー

フルカラーモード時のみ使用することができます。
gmodeの4番目のパラメーターで指定したブレンド率による半透明合成コピーを行ないます。ブレンド率は0~256の値となり、256で完全なコピーになります。
ブレンド率が0の場合はコピーは実行されません。
また、ブレンド率が256以上はメモリ間コピーが実行されます。

・モード4 = 透明色付き半透明合成コピー

モード3と同様の方法でコピーを行ないますが、RGB値が color命令で設定された色と同じドットは透明色とみなされコピーされません。
ブレンド率が0の場合はコピーは実行されません。

・モード5 = 色加算合成コピー

フルカラーモード時のみ使用することができます。
gmodeの4番目のパラメーターで指定したブレンド率による色加算合成コピーを行ないます。色加算では、コピー先のRGB値に、コピー元のRGB値を加算します。
加算時に輝度が255を越える場合は、255にクランプされます。

・モード6 = 色減算合成コピー

フルカラーモード時のみ使用することができます。
gmodeの4番目のパラメーターで指定したブレンド率による色減算合成コピーを行ないます。色減算では、コピー先のRGB値から、コピー元のRGB値を減算します。減算時に輝度が0を下回る場合は、0にクランプされます。

・モード7 = ピクセルアルファブレンドコピー

フルカラーモード時のみ使用することができます。
gmodeで指定されたサイズの画像を、元画像の右側に用意しておき、 右側の画像をアルファブレンド成分として背景合成コピーを行ないます。
アルファブレンド成分が255の場合は、 そのまま元画像のピクセルがコピーされ、255より小さい場合には、そのブレンド率で背景と合成されます。
ピクセルはRGB単位で参照されるため、RGBに異なるブレンド率を設定可能です。
アルファブレンド画像は、通常 (0,0,0)~(255,255,255) のグレースケールで表現するといいでしょう。

これらのモードは、gzoom命令では使用されません。
あくまでもgcopy命令使用時なので注意してください。
また、gmodeは現在 gsel命令で選択されているウィンドウIDのモードが変更されます。gmodeの設定後に、別なウィンドウIDでgcopy命令を実行しても設定が反映されないので注意してください。

(p2,p3)はコピーサイズのデフォルトを設定します。この値は、gcopy,gzoom命令でコピーする大きさの値を省略した場合にデフォルトで使われるサイズです。

関連項目

gcopy画面コピー
gmode_add色加算合成コピーモード
gmode_alpha半透明合成コピーモード
gmode_gdi通常のコピーモード
gmode_memメモリ間コピーモード
gmode_pixelaピクセルアルファブレンドコピーモード
gmode_rgb0透明色付きコピーモード
gmode_rgb0alpha透明色付き半透明合成コピーモード
gmode_sub色減算合成コピーモード

サンプル逆引き (129)

arusave.hsp
battle.hsp
big_chr.hsp
buffer.hsp
button_test.hsp
celput.hsp
celputm.hsp
cnvaxis.hsp
customshader.hsp
d3m.hsp
d3m_techdemo.hsp
demo.hsp
doukutu.hsp
drop.hsp
drop_dish.hsp
emit_sample1.hsp
emit_sample3.hsp
es_test2.hsp
es_test5.hsp
facemove1.hsp
facemove2.hsp
feedback.hsp
fullscr.hsp
gblur.hsp
grect.hsp
grotate.hsp
grotate.hsp
gsquare.hsp
gsquare.hsp
hsplogo.hsp
hsptv_test2.hsp
hsptv_test3.hsp
htcopy1.hsp
htcopy2.hsp
joystick1.hsp
joystick2.hsp
keymove1.hsp
keymove2.hsp
keymove3.hsp
keymove4.hsp
light_test5eff.hsp
map1.hsp
map2.hsp
mapedit.hsp
mapmove1.hsp
mapmove2.hsp
meshmap.hsp
meshmap2.hsp
meshmap3.hsp
meshmap4.hsp
meshmap5.hsp
meshmap6.hsp
meshmap7.hsp
mini_chr.hsp
mtouch.hsp
obaqhg1.hsp
obaqhg2.hsp
obaqhg3.hsp
obaqme.hsp
objsort.hsp
physics_2.hsp
poker.hsp
posteffect.hsp
pronama3.hsp
qvbtest.hsp
sample_05_particle_basic.hsp
sample_06_snow_night.hsp
sample_07_snow_white.hsp
sample_08_ball.hsp
sample_09_toge.hsp
sample_10_d3square.hsp
sample_11_d3texture.hsp
sample_12_anitexture.hsp
sample_13_d3texture_div.hsp
sample_14_d3ribbonto.hsp
sample_17_d3setlocal_shadow.hsp
sample_18_poly_particle.hsp
sample_19_getmouse.hsp
settex.hsp
shoot.hsp
star.hsp
starmove.hsp
tamacard.hsp
tamacard_dish.hsp
tamadot.hsp
tamadot_dish.hsp
tamane2.hsp
tamane3.hsp
tamane4.hsp
tamane_jump.hsp
tamane_s.hsp
tamane_s2.hsp
tamane_s2_dish.hsp
tamane_s_dish.hsp
test1.hsp
test10.hsp
test12.hsp
test13.hsp
test2.hsp
test2.hsp
test2.hsp
test3.hsp
test3.hsp
test4.hsp
test4.hsp
test4.hsp
test5.hsp
test5.hsp
test6.hsp
test6.hsp
test7.hsp
test7.hsp
test8.hsp
test8.hsp
test9.hsp
tile.hsp
tree.hsp
volsamp.hsp
wave.hsp
xsample_amano.hsp
xsample_Astro.hsp
xsample_diamond.hsp
xsample_gcube.hsp
xsample_gcube.hsp
xsample_gimbal.hsp
xsample_Rocket.hsp
xsample_shiraho.hsp
xsample_verge.hsp
yopparai.hsp

情報

バージョン3.6
作成日2019/04/09
著作者onitama
URLhttp://hsp.tv/
備考ver3.6標準命令
タイプ内蔵命令
グループ画面制御命令
対応環境
  • Windows 版 HSP
  • HSPLet
移植のヒントHSPLet時、モード7はサポートしていません。
hs ファイルhsphelp\i_graph.hs