トップページ > 過去ログ > 記事閲覧
全画面表示での問題等
名前:dal 日時: 2008/09/29 23:42

全画面表示について等です <質問1> 全画面モードの時、GetDrawScreenGraphで得た画像を描画すると、 Getするおそらく1フレーム前の画像になってしまい、 描画していた動いていた物体が、 GetDrawScreenGraphで画面全体を得た画像を描画した際に、 1フレーム逆行したかのように描画されてしまいます。 ウィンドウモードにすると起こらないので ScreenFlipとScreenCopyの違いが反映されてるのだと思うのですが、 ウィンドウモードと同じ挙動を全画面モードでするにはどのようにすればいいのでしょうか? (ScreenFlipをScreenCopyにしてやればいいと思うのですが、それをすると  すべてのScreenFlipをScreenCopyにしなければならないのであまりやりたくない) <質問2> Windows Live Messengerは、 全画面のソフトを動かしていると、表示が"取り込み中"になるのですが、 DXLibで作った自前のゲームを全画面表示にしても、 "取り込み中"になってくれていないみたいなのですが、 ちゃんと"取り込み中"にさせることはできますか? <質問3> GetDrawScreenGraphは ウィンドウモードより全画面モードの方が処理が速いようなのですが、 なんとなくイメージ的に逆な気がしてましたが、そういうものでしょうか? <質問4> 前のScreenFlipから次のScreenFlipまでの時間をカウントすると 大抵16〜17[ms]で安定して動いているのですが、 画面の動画撮影などを行うと、重くて不安定になります。 この時、32[ms]などと時間が増えるのはわかるのですが、 この不安定時ではちょこちょこ4[ms]などと時間が短くなることがあります。 起こりえないことのような気がしているのですがどういうことなのでしょうか?

Page: 1 |

Re: 全画面表示での問題等 ( No.1 )
名前:Hima 日時:2008/10/01 00:12

<質問2について> GetActiveFlag をやってみましたか? ttp://studiokingyo.fc2web.com/dxlib/kaibou/k_shiyou.html#k4
Re: 全画面表示での問題等 ( No.2 )
名前:管理人 日時:2008/10/14 04:14

<質問1> 確実なのは ScreenFlip の代わりに ScreenCopy を使用することです ただ・・・ 現在 GetDrawScreenGraph はどんなタイミングで使用しているのでしょうか? フルスクリーンであっても ScreenFlip を使用する前に使用すれば GetDrawScreenGraph を使用する直前までの描画結果が反映された画像が取得 できるはずなのですが・・・ <質問2> Windows Live Message の動作仕様がわからないので、 なぜ「取り込み中」にならないのかはちょっとわかりません・・・ <質問3> 基本的にはフルスクリーンとウインドウモードで速度的な差は無いはずですが、 フルスクリーンモードでは32ビットカラーを使用していて、 ウインドウモード、つまりデスクトップは16ビットカラーを使用している、 というケースではウインドウモードの方が高速になると思います。 それ以外となると・・・実行環境に因るものだと思います。 <質問4> 推測ですが・・・ ScreenFlip は「垂直同期信号」という、画面のリフレッシュに同期した信号が くるのを待っていますので、通常垂直同期信号が来た直後に処理が終了する ScreenFlip が、動作が重くなり、垂直同期信号がきてから暫く時間が経過した後 処理が終了し、その時点から「ScreenFlip → 次の ScreenFlip」の時間計測を 開始したとすると直ぐに次の巣直同期信号が来ることになり、結果計測時間が 短くなる、ということが考えられます

Page: 1 |