トップページ > 記事閲覧
ScreenFlip()について。
名前:Brug 日時: 2017/08/09 13:10

ゲームを作っています。 最近ファイル読み込みを自作アーカイブに変更し、 暗号/復号化などの処理で自作ファイルポインタを多用したので それらに起因するバグなのかもしれませんが、 long long t1 = GetNowHiPerformanceCount() ; ScreenFlip() ; long long t2 = GetNowHiPerformanceCount() ; ( t2 - t1 )が500〜30000μsと不安定になってしまいました。 以前はVsyncに従い16000μs程度で一定していました。 描画などその他の処理時間は問題ありませんでした。 WaitVSyncFlag( false )にすると300μs程度で一定となり、 これは以前のプログラムと同じでした。 ScreenFlip()そのもののバグでは無いと思うのですが、 この現象から原因を漠然とでも推定することは可能でしょうか?
メンテ

Page: 1 |

Re: ScreenFlip()について。 ( No.1 )
名前:ギウ 日時:2017/08/09 15:29

私が以前やってしまったのは、SetDrawScreen をコメントで消してて、それに気付かず、ScreenFlip が不安定になったことがあります; 関係ないかもですが一応、参考までに。
メンテ
Re: ScreenFlip()について。 ( No.2 )
名前:管理人 日時:2017/08/10 22:03

描画先が表画面の状態で ScreenFlip を呼ぶと擬似的に Vsync を待つのですが、描画先が裏画面の状態で ScreenFlip を 呼んだ場合と比べて挙動が安定しないので、何らかの原因で描画先が表画面になっている可能性があります ギウさんも仰られていますが、DxLib_Init の前で SetDrawScreen( DX_SCREEN_BACK ); を実行してしまっていたり、 SetGraphMode や ChangeWindowMode を実行した後に SetDrawScreen( DX_SCREEN_BACK ); を実行していないということは無いでしょうか?
メンテ
Re: ScreenFlip()について。 ( No.3 )
名前:Brug 日時:2017/08/15 23:55

返信ありがとうございます。 ご指摘の内容を確認しましたが大丈夫でした。 その後、PCを再起動したら上記の現象はでなくなりました…。 ご迷惑をおかけ致しました。 一応解決?とさせて頂きます。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存