2015年10月02日

directXのウィンドウサイズ変更後の比率

directxでウィンドウサイズを変更すると画像が伸びたり縮んだり困ったことになるんですよね
これを回避するためにはバックバッファサイズを変更後のウィンドウサイズに合わせてやるといいみたい
はじめからフルスクリーンサイズでdirectXを初期化させておいて、あとでウィンドウ変更させるときに
そのバックバッファサイズを変えてやるとdirectXの解放と初期化処理を省けるわけです

http://hsp.tv/play/pforum.php?mode=pastwch&num=58920
暇人さんがウィンドウサイズ変更のサンプル作ってくれていたので
hgresetの解放処理とフルスクリーンの設定などを省くと、バックバッファサイズだけ変更でき
比率を維持してウィンドウサイズ変更が可能となります

おかずの友はウィンドウサイズ変えるときに、directXの初期化させていたのでテクスチャを再度作り直したり
手間かかってたんですよね、ラグもはっせいするし(重大)
このバックバッファサイズ変更処理を取り入れたとしても
常にフルサイズの描画をさせることになるので描画処理にどう影響するかはまだわかりませんね…

追記
http://wisdom.sakura.ne.jp/system/directx/dxg4.html
IDirect3DDevice8::Reset() デバイスリセットだけ使えば目的が達成できるっぽい
暇人さんサンプルのIDirect3DDevice8_GetViewport部分省いていいかも

追記
基準ウィンドウサイズより大きくしてテストしてた、基準サイズよりウィンドウを小さくする目的なのに…
それで基準サイズより小さくしたらポリゴンがウィンドウサイズに合うように変更される…振り出しにもどったわ
でもhgrotateなど2Dの直接描画はサイズがきちんと表示されている
ポリゴンと2Dでなんでこう変わるのかわかりませんが
必要なのは2Dの直接描画だけなのでこれでいいかな…

追記
どうやらhgimd3のhgviewが3Dの描画範囲に悪さしてるみたい、2Dのほうには介入してないみたいだから一安心…
詳しく言うと、hgviewで設定した描画範囲がウィンドウサイズ以上だったら強制的に
ウィンドウサイズに合わされるようになっているっぽい


posted by 26℃ at 12:27| 福岡 ☁| Comment(0) | 雑記 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

×

この広告は1年以上新しい記事の投稿がないブログに表示されております。