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


HSPTV!掲示板


未解決 解決 停止 削除要請

2021
0927
SSSShgimg3の画面のコピーができない2解決


SSSS

リンク

2021/9/27(Mon) 17:14:45|NO.93999

hgimg3の画面をリサイズして別の画面に表示したいです。

まず、buffer命令にて生成した仮想画面をhginit命令で初期化しようとすると
「Direct3Dのデバイスの生成に失敗しました。」
というエラーが表示されました。

仮想画面ではなく、
gsel命令で非表示にした通常のウィンドゥならば正常に表示できたのですが
それをgcopy命令でコピーすることはできませんでした。

以下ソースコード

#include "hgimg3.as" screen 0,640,480 title "0" screen 1,640,480 title "1" gsel 0 cls hgini addbox box,10,10 regobj model,box gsel 0,-1 *main gsel 0 hgdraw hgsync 10 gsel 1 pos 0,0 gcopy 0,0,0,640,480 goto *main

15行目のgsel命令を削除すると
ウィンドゥ 0にてhgimgの画面は正常に処理されているようでしたが
ウィンドゥ 1には本来ならば
gcopy命令にてウィンドゥ 0がコピーされるべきだったところ
何も表示されませんでした。


どうかよろしくお願いいたします。



この記事に返信する


猪野

リンク

2021/9/28(Tue) 15:02:51|NO.94004

HGIMG3は初めて触るのであまり自信はありませんが、こんな感じでどうでしょうか?


#include "hgimg3.as" *startup buffer ;title "オリジナル" hgini addbox box,10,10 regobj model,box buffer 1 ;title "原寸大コピー" screen 2 title "拡大縮小コピー" *main gosub *draw hgsync 10 goto *main *draw //オリジナル gsel 0 hgdraw //原寸大コピー gsel 1 hgcapture //拡大縮小コピー gsel 2 redraw 0 color 255,255,255 boxf pos 0,0 gzoom 320,240,1,,,640,480 redraw return

>まず、buffer命令にて生成した仮想画面をhginit命令で初期化しようとすると
>「Direct3Dのデバイスの生成に失敗しました。」
>というエラーが表示されました。

bufferで初期化しようとすると、ウィンドウIDが0以外のものはエラーが出てしまいました。
0で構わないならbufferで、それだと困る場合はscreenの画面モードにscreen_hideを追加するしかなさそうです。

また、画面のコピーにはhgcaptureという専用の命令を使うようで、gcopyやgzoomを使って直接コピーすることはできません。
そのためウィンドウを1枚増やして対応しています。



SSSS

リンク

2021/9/28(Tue) 19:44:50|NO.94009

猪野さん返信ありがとうございます。

hgcapture命令ですか...完全に見落としていました...
これで動かすことができました。
ありがとうございます。
解決しました。



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.93999への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

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