DXライブラリのScreenFlip();のコマンドが反映されるタイミングについて質問がありますので、ご存知でしたら教えてください。
//ScreenFilpの垂直同期Wait(on/off)
SetWaitVsyncFlag(1);
// DXライブラリの初期化
if( DxLib_Init() < 0 ) return -1;
//描画処理の繰り返し
For(i = 0;i<10000;i++){
//描画処理
//ここで何かしらの描画データ作成
//描画データ作成終了
//垂直同期信号のWait
WaitVsync(2);
//裏画面を描画画面に反映
ScreenFlip();
//初期化
InitGraph() ;
}//__For
上記のようなコードを作成したとします。SetWaitVsyncFLAG(1)なので、ScreenFlip();は、垂直同期を待って、裏画面を描画画面に反映されることになります。
描画データを作成した後、まずWaitVsync(2);があるので、まずは、垂直同期信号を2つ待ってから、ScreenFlip();命令が発せられると事になると思います。
このとき、ScreenFlip();は、垂直同期信号を待つので、描画データ作成後のWaitVsync(2);があるので、タイミングとして描画データ作成後、3つ目の垂直同期信号で裏画面データを描画画面に切り替えることになるのでしょうか?
WaitVsync(2);で2つの垂直同期信号を待った後、ScreenFlip();がさらに1垂直同期信号を待つとすれば、最初のSetWaitVsyncFlag(1);をSetWaitVsyncFlag(0);とすれば、WaitVsync(2);の後、ただちにScreenFlip();が反映されて、描画作成データ終了後、2垂直同期信号の直後で裏画面が描画画面となるので、SetWaitVsyncFlag(1);と設定した場合と、フレームレートが変わってくると思ったのですが、Frapsというフリーソフトで、フレームレートを測定したところ、SetWaitVsyncFlag()を0,1どちらに設定しても30FPSでした。
描画処理は、数msec程度のものであり、30FPSのフレームレートに影響を与えないほど短いものです。
私のScreenFlip();の反映タイミングの考え方に間違いがあれば、ご指摘頂きたく、投稿させて頂きました。
どなたか、ご存じの方がいましたら、ご教授いただければ幸いです。
初歩的質問で申し訳ありませんが、よろしくお願いいたします。