Platform SDK: DirectX |
モード 13 には、モード X と同様な列挙やモード設定動作がある。DirectDraw は、DDSCL_ALLOWMODEX フラグが IDirectDraw7::SetCooperativeLevel メソッドに渡された場合にかぎり、モード 13 を列挙する。
他のすべてのモードと同様にモード 13 ディスプレイ モードは列挙されるが、IDirectDraw7::EnumDisplayModes を呼び出す前にサーフェス能力を調べる。これを行うには、IDirectDraw7::GetCaps を呼び出して、メソッドが戻った後に DDSCAPS2 構造体の DDSCAPS_STANDARDVGAMODE フラグを調べる。このフラグが存在しなければ、モード 13 がサポートされていないということであり、DDEDM_STANDARDVGAMODES フラグで列挙しようとすることは失敗して、DDERR_INVALIDPARAMS が返される。
現在、EnumDisplayModes メソッドは新しい列挙フラグ DDEDM_STANDARDVGAMODES をサポートする。これにより、DirectDraw は 320 × 200 × 8 モード X モードの他にモード 13 を列挙できるようになる。新しい IDirectDraw7::SetDisplayMode のフラグとして DDSDM_STANDARDVGAMODE があり、モード 13 を 320 × 200 × 8 モード X と区別するために渡さなくてはならない。
モード 13 には、モード X と同様な列挙やモード設定動作がある。DirectDraw は、DDSCL_ALLOWMODEX フラグが DirectDraw7.SetCooperativeLevel メソッドに渡された場合にかぎり、モード 13 を列挙する。
他のすべてのモードと同様にモード 13 ディスプレイ モードは列挙されるが、DirectDraw7.GetDisplayModesEnum を呼び出す前にサーフェス能力を調べる。これを行うには、DirectDraw7.GetCaps を呼び出して、メソッドが戻った後に DDSCAPS2 型の DDSCAPS_STANDARDVGAMODE フラグを調べる。このフラグが存在しなければ、モード 13 がサポートされていないということであり、DDEDM_STANDARDVGAMODES フラグで列挙しようとすることは失敗して、DDERR_INVALIDPARAMS が返される。
現在、GetDisplayModesEnum メソッドは新しい列挙フラグ DDEDM_STANDARDVGAMODES をサポートする。これにより、DirectDraw は 320 × 200 × 8 モード X モードの他にモード 13 を列挙できるようになる。新しい DirectDraw7.SetDisplayMode のフラグとして DDSDM_STANDARDVGAMODE があり、モード 13 を 320 × 200 × 8 モード X と区別するために渡さなくてはならない。
ビデオ カードによっては、線形アクセラレータ 320 × 200 × 8 モードが提供されていることに注意する。そのようなカードでは、DirectDraw がモード 13 を列挙せずに、代わりとして線形モードを列挙する。この場合、SetDisplayMode に DDSDM_STANDARDVGAMODE フラグを渡してモード 13 を設定すると、このメソッドは成功するが、線形モードが使われるようになる。これは、線形低解像度モードがモード X モードをオーバーライドする方法に類似する。