Screen('OpenWindow')
[windowPtr,rect]=Screen('OpenWindow',windowPtrOrScreenNumber [,color] [,rect][,pixelSize][,numberOfBuffers][,stereomode][,multisample][,imagingmode]);
オンスクリーンウィンドウ*を開きます。ウィンドウを指定するために、windowPtr または screenNumber(0だとメニューバーが表示されるメインのスクリーンを表します)を使います。
"color" はclut index でスカラー(単一の数字)またはRGB値で指定されます。"color"はそれぞれのピクセルに割り当てられ、デフォルト(colorの指定をしない場合)は白になります。
*これに対して、ディスプレイ上に表示されないオフスクリーンウィンドウがあります。
"rect" は少なくとも1つのピクセルを含んでいなければいけません。
”windowPtr ”が指定された場合は、rectはウィンドウ座標(左上が原点)になり、デフォルトではウィンドウ全体を表します。
"screenNumber"が指定された場合は、rectはスクリーン座標(左上が原点)になり、デフォルトではスクリーン全体を表します。
”rect”引数が与えられた場合(フルスクリーン表示でない場合)は、デバッグ(プログラムの修正作業)には便利ですが、描画パフォーマンス、刺激の呈示タイミングの精度が落ちてしまうので注意しなければいけません。
"pixelSize"はビット深度(色深度、カラー深度)を表します。
"numberOfBuffers"はバッファの数です。2よりも大きい値(2を含む?)を指定すると、PTBの開発またはデバッグのときに便利ですが、実際の実験には不適切です。
"stereomode"は立体視のようにふたつの刺激を呈示するときに使用します。
"stereomode"が0のときは、両眼分離呈示は行いません。
"stereomode"が1のときは、CrystalViewのシャッターメガネのように、MacOS-XでサポートされているハードウェアをOpenGLを使って制御する場合です。
"stereomode"が2のときは、ディスプレイが上下に分割され、上側に左眼用の刺激が、下側に右眼用の刺激が呈示されます。
"stereomode"が3のときは、"stereomode"が2のときの上下が反転します。
"stereomode"が4のときは、ディスプレイが左右に分割され、左側に左眼用の刺激が、右側に右眼用の刺激が呈示されます(平行法)。
"stereomode"が5のときは、"stereomode"が4のときの左右が反転します(交差法)。
"stereomode"が6から9のときは、アナグリフでの描画になります。赤と緑の組み合わせ(6,7)か、赤と青の組み合わせ(8,9)です。6と7、8と9は左眼と右眼の刺激が反転したものです。
"stereomode"が10のときはマルチウインドウ(2つのディスプレイ)を使って呈示する場合です。ひとつつのディスプレイに左眼用の刺激を提示し、もうひとつのディスプレイに右眼用の刺激を提示します。
StereoDemo.m やImagingStereoDemo.m のデモが役に立つでしょう。
"multisample" に0より大きい値が指定されると、対応したハードウェアによって自動的にアンチエイリアスが適用されます。それぞれのピクセルについて、ひとつの色を出力するために、"multisample" で指定したカラーサンプルが計算され結合されます。大きな数字が与えられればアンチエイリアスの質はあがりますが、より多くのビデオメモリを消費し、フレームレート(1秒間に呈示するフレーム数)も落ちてしまいます。
サンプル数の最大値はハードウェアに依存します。PTBは暗黙のうちにサンプル数を使用中のハードウェアでサポートされている最大値に固定します(より高いサンプル数を求めていたとしても?)。かなり古いハードウェアにおいては、"multisample"は無視されるでしょう。マルチサンプリングに関するより詳細な情報については、'help AntiAliasing' を見ること。
"imagingmode"はPTBの internal image processing pipeline を有効にします。デフォルトではパイプラインはオフです。詳細は 'help PsychGLImageprocessing' を参照のこと。
あるウインドウを開いたり閉じたりするのには、1秒から3秒ほどかかります。
MacのOS-9版のPTBとの互換性については次の通り。
OS-9や古いウィンドウズのために、古いプログラムをどうしても動かす必要がある場合は、
Screen('Preference', 'EmulateOldPTB', 1)
をスクリプトの一番上に記述することで互換モードにすることができます。
これによって、オフスクリーンのウィンドウや、WaitBlanking関数を使用することができるようになります。しかし同時に、OpenGL版のPTBの最新の機能の多くが使えなくなります。この互換モードでの利用はバグがあるかもしれず、お勧めできません。