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


HSPTV!掲示板


未解決 解決 停止 削除要請

2016
0218
ひつじhgimg3でのフルスクリーンの方法について3解決


ひつじ

リンク

2016/2/18(Thu) 22:27:26|NO.74644

hgimg3でフルスクリーンのゲームを作る場合、

chgdisp で画面の解像度をかえる方法と
hgsetreq SYSREQ_DXMODE,1 を使う方法

がありますが、それぞれの使い分けを知りたいです。
……………
後者の場合、通常のウィンドウモードと挙動が異なる場合があったり、
(hgdraw 4 を使う場合とか)処理も前者より時間がかかったりと
あまり利点がわかりません。
いまのところ前者の方法を使用しており、特に支障もないのですが、
気になったので質問させていただきました。



この記事に返信する


暇人

リンク

2016/2/19(Fri) 00:06:02|NO.74647

>hgsetreq SYSREQ_DXMODE,1 を使う方法
はhgimg3の描画が優先されます。
他のアルプリがアクティブになるとフルスクリーンが解かれます。
もう一度hgimg3がアクティブになるとフルスクリーンになります。


>(hgdraw 4 を使う場合とか)処理も前者より時間がかかったりと
> あまり利点がわかりません。
フルスクリーン時には垂直同期が有効(設定有り)になりダブルバッファになる
処理落ちしない限り垂直同期によりがたつきの無い秒間60フレームになる(hgsync 1でもきっちり60フレーム)
ダブルバッファなので奇数フレームと偶数フレームで別れるので
一つ前の描画画面を今回の画面として利用できない
(偶数フレームの時hgdraw 4した時前回の偶数フレームの画面が使われる)



暇人

リンク

2016/2/20(Sat) 00:47:19|NO.74660

あとhgsyncのバグのせいだと思うけど処理量が増えると
フルスクリーン垂直同期有り時にhgsync 15とかやると
安定しないので1にした方が良い
(一度0にすると他の数値に設定した時点でアプリエラーになる)

フルスクリーンでフレームスキップする方法として
描画して無いときはhgsyncを無くし await 17 にして
描画してるフレームでは hgsync 1 の後に await 0 を追加する



ひつじ

リンク

2016/2/25(Thu) 23:35:29|NO.74707

返信が載せれていませんでした^_^;

暇人さん、いつも素早く的確なアドバイスありがとうございます。

垂直同期関連は全然知らなかったので(どっかにちゃんと書いてあるのかな…)
勉強なりました。目的に合わせて使い分けてこうと思います。
フレームスキップの使用がどうにか形になりそうです。



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