HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
0512
ゴンゾウ仮想ウインドウにhgrotateで描画すると実際に描画されてしまう3未解決


ゴンゾウ

リンク

2016/5/12(Thu) 14:57:19|NO.75466

hgimg3(hgrotate)を使ってウインドウID:0に実際の画像を描画し、その裏(ウインドウID:1)に
隠し画像を描画したいです。
しかし、仮想ウインドウに指定した画像が実際に表示されてしまいます。
gselやbuffer指定すればいいんじゃないの?と思ってるのですが違うのでしょうか。
全く原因がわかりません。どなたか助けてください>_<

bgscr 0,640,480
hgini

; 表に描画する画像.(αチャンネルを含んでいる)
texload2 "pic_a.png"
Pic_A = stat

; 裏(仮想ウインドウ)に描画する画像.
buffer 1,640,480,2
texload2 "pic_b.bmp"
Pic_B = stat


while
hgdraw 0

gsel 1,-1
gmode 0,xxx,yyy
pos xxx,yyy
hgrotate Pic_B,0,0

gsel 0,1
gmode 4,xxx,yyy,256
pos xxx,yyy
hgrotate Pic_A,0,0

stick mk
if mk & 128 : end

hgsync 16
wend



この記事に返信する


暇人

リンク

2016/5/12(Thu) 21:26:14|NO.75469

hgimg3はDirectXを使って描画します。
この時の描画先は通常のscreenやbufferで初期化するウィンドウバッファとは別物です。
gselで操作先を指定してもhgrotateで描画することは出来ない

どんな事をしたいか分からないので使えるか分かりませんが
裏画面にコピーはbufferへ通常のgcopyして
hgimg3のウィンドウに描画したいときに
settexでbuffer内容をテクスチャにして使用する
(但しsettexはサイズによっては重かったりエラーになったりするので注意)



ゴンゾウ

リンク

2016/5/12(Thu) 22:47:27|NO.75473

暇人さま。
ありがとうございます。

画像を仮想画面へ読み込むのに

buffer 1,640,480,2
gsel 1
picload"xxx.bmp",1

とやってみたところできたのですが、
不要な時に

gsel 1
cls 0

で仮想画面上の画像を消す・・これもできました。
しかし、また必要な時が出た際にpicloadで画像ファイルから読むのはとても非効率的で、
できれば予めメモリバッファへ格納して、そこから必要な時にいつでも引っ張れるように
したいのですが方法がわかりません。無知ですみませんが教えてもらえると助かります。

表にカラー画像を出して、仮想画面に白黒画像を描画し、これをカーソルキーで
移動させ、特定のキー押下(pget)で画面の中心が白か黒かを判定し、黒ならOK。白ならNGの
判定プログラムを作りたいと思っています。
hgimg3 + hgrotateでカラー画像描画はできましたが、仮想画面に苦労してまして・・・。



暇人

リンク

2016/5/12(Thu) 22:57:16|NO.75475

gcopyやcelput等でbufferからbufferにコピーが出来る
bufferを二つ用意して片方に読み込んで必要なときに違う方にコピーすれば良い



ONION software Copyright 1997-2021(c) All rights reserved.