Screen('GetFlipInterval')
[ monitorFlipInterval nrValidSamples stddev ] =Screen('GetFlipInterval', windowPtr [, nrSamples] [, stddev] [, timeout]);
モニタ(ディスプレイ)の画面書き換え(フリップ)に要する時間の推定値を返します。
"windowPtr" で指定されたウィンドウ(例えば2台のモニタを使用しているときなどに重要)のFlip Intervalを返します。
"nrSamples"が省略されているときは、次のどちらかの推定値が返されます。
・以前に呼び出されたGetFlipIntervalからの推定値
・Screen('OpenWindow'...)を実行している間に行われた初期のキャリブレーション(つまりプログラム開始時?)からの推定値
(ここの意味は不明。原文は次の通り。
"nrSamples" If left out, the estimated interval from previous calls to
GetFlipInterval or from the initial calibration done during
Screen('OpenWindow'...) is reported. )
"nrSamples"が0より大きな値のときは、より高精度なFlip Intervalの値を返すために、測定ループ(a measurement loop)を実行します。
このループは、少なくとも"nrSamples"で指定した回数の正しいサンプルを取得でき、且つその標準偏差が"stddev"で指定した値(単位は秒?)を下回るまで実行され続けます。
またこの測定ループが、何らかの理由で永遠に終了しない事態をさけるために、"timeout"を指定することができます。
デフォルトでは、timeoutの値は10秒で、stddevは50 マイクロセカンド です。
PTBは、実験用のオンスクリーンウィンドウを開いたときに、自動的に少なくとも50のサンプル値を取得し、標準偏差が100 マイクロセカンド以下になるように試みますが、15秒を経過してもそれが満たされない場合はタイムアウトとなります。
もしかなりの精度を求めるのであれば、要求に適した値とともにこのルーチンを呼び出してください。
戻り値の説明。
monitorRefreshInterval は秒単位で、ミリセカンドオーダーの確度です。
nrValidSamples と stddev には、測定の結果の本当の値(理論値や推定値ではない値)が入ります。
注意点
ATIのグラフィックカードを使用していて、OpenGL flip-frame stereo を使用する場合 (OpenWindowにおいて、stereomode=1 としているとき)は、Flip IntervalがモニタのRefresh Interval の2倍になるかもしれません。
また、高解像度のディスプレイで、高いmultiSampleレベルによるアンチエイリアシングを行っている場合も、1回の画面切り替え(リフレッシュ)の時間ではアンチエイリアシングの計算が間に合わず、同様のことが起こるかもしれません。