Platform SDK: DirectX |
DirectDraw は、モード 13 モードおよびモード X ディスプレイ モードをサポートする。モード 13 は線形フリッピングができず、320 × 200 でピクセルあたり 8 ビットのパレット化モードである。このモードは、16 進 BIOS モード番号 13 で広く知られている。13. 詳細については、「モード 13 サポート」を参照すること。モード Xは、標準 VGA モード 13 から派生したハイブリッド ディスプレイ モードである。このモードでは、VGA ディスプレイ アダプタの EGA マルチ ビデオ面システムにより、256 KB までのディスプレイ メモリを使うことができる (モード 13 では 64 KB まで)。
DirectDraw はすべてのディスプレイ カードに対して、2 つのモード X モード (320×200×8 と 320×240×8) を提供する。また、線形低解像度モードをサポートするカードもある。線形低解像度モードではプライマリ サーフェスをロックして、直接アクセスできる。モード X モードではプライマリ サーフェスへ直接アクセスできない。
モード X モードは、IDirectDraw7::SetCooperativeLevel メソッドを呼び出すときに、アプリケーションが DDSCL_ALLOWMODEX、DDSCL_FULLSCREEN、および DDSCL_EXCLUSIVE フラグを使用する場合にだけ利用することができる。DDSCL_ALLOWMODEX が指定されていない場合、IDirectDraw7::EnumDisplayModes メソッドはモード X モードを列挙せず、またモード X モードが要求されると IDirectDraw7::SetDisplayMode メソッドは失敗する。
Windows 95 および Windows NT/Windows 2000 は、モード X モードを最適にサポートしない。したがって、アプリケーションがモード X モードの場合、プライマリ サーフェスをロックしたり、ブリットするための IDirectDrawSurface7::Lock や IDirectDrawSurface7::Blt メソッドを使用することはできない。またプライマリ サーフェスで IDirectDrawSurface7::GetDC メソッドを使用することも、スクリーン DC で GDI を使用することもできない。モード X モードは、DDSCAPS2 構造体の DDSCAPS_MODEX フラグで示される。この構造体は、IDirectDrawSurface7::GetCaps および IDirectDraw7::EnumDisplayModes メソッドで返される DDSURFACEDESC2 構造体の一部である。
モード X モードは、DirectDraw7.SetCooperativeLevel メソッドを呼び出すときに、アプリケーションが DDSCL_ALLOWMODEX、DDSCL_FULLSCREEN、および DDSCL_EXCLUSIVE フラグを使用する場合にだけ利用することができる。協調レベルの設定時に DSCL_ALLOWMODEX が指定されていない場合、DirectDraw7.GetDisplayModesEnum メソッドはモード X モードを列挙せず、モード X モードが要求されると DirectDraw7.SetDisplayMode メソッドは失敗する。
Windows 95 および Windows NT/Windows 2000 は、モード X モードを最適にサポートしない。したがって、アプリケーションがモード X モードの場合、プライマリ サーフェスをロックしたり、プライマリ サーフェスにブリット転送するための DirectDrawSurface7.Lock や DirectDrawSurface7.Blt メソッドを使用することはできない。またプライマリ サーフェスで DirectDrawSurface7.GetDC メソッドを使用することも、スクリーン DC で GDI を使用することもできない。モード X モードは、DDSCAPS2 型の DDSCAPS_MODEX フラグで示される。この型は、DirectDrawSurface7.GetCaps および DirectDrawEnumModes メソッドで返される DDSURFACEDESC2 型の一部である。