このセクションは、Windows 7 以降、および Windows Server 2008 R2 以降のバージョンの Windows オペレーティング システムにのみ適用されます。
オーバーレイ DDI は、オーバーレイのサポートを確認するための Direct3D バージョン 9 DDI の拡張機能です。 オーバーレイ DDI は、次のエントリ ポイントで構成されます。
D3DDDICAPS_TYPE列挙体の D3DDDICAPS_CHECKOVERLAYSUPPORT 値は、ディスプレイ デバイスが特定のオーバーレイをサポートしているかどうかを確認するために Direct3D ランタイムによって使用されます。 ランタイムは、ドライバーの GetCaps 関数の pData パラメーターが GetCaps を呼び出すときに指すD3DDDIARG_GETCAPS構造体の Type メンバーのD3DDDICAPS_CHECKOVERLAYSUPPORTを設定します。 また、ランタイムは、D3DDDIARG_GETCAPSの pInfo メンバーを、オーバーレイを記述する DDICHECKOVERLAYSUPPORTINPUT 構造体へのポインターに設定します。 ドライバーがオーバーレイをサポートしている場合、ドライバーはD3DOVERLAYCAPS構造体のメンバーを設定し、D3DDDIARG_GETCAPSの pData メンバーでこの構造体へのポインター を返します。 それ以外の場合、ドライバーがオーバーレイをサポートしていない場合、ドライバーは、サポートの欠如がオーバーレイ形式に基づいているかどうかに応じて、D3DDDIERR_UNSUPPORTEDOVERLAYFORMATまたはD3DDDIERR_UNSUPPORTEDOVERLAYで GetCaps 関数の呼び出しに失敗します。 D3DOVERLAYCAPSについては、DirectX SDK のドキュメントを参照してください。
ドライバーは、ドライバーとハードウェアが持つ可能性がある制限 (オーバーレイ データを拡張した後) を伴う最終的なオーバーレイ サイズを示すために、D3DOVERLAYCAPSの MaxOverlayDisplayWidth メンバーと MaxOverlayDisplayHeight メンバーを設定します。
ドライバーは、オーバーレイ ハードウェアがオーバーレイ データを任意に拡大および縮小できることを示すために、D3DOVERLAYCAPS の Caps メンバーのD3DOVERLAYCAPS_STRETCHX (0x00000040) およびD3DOVERLAYCAPS_STRETCHY (0x00000080) 機能ビットを設定します。 ドライバーは、GPU を介してオーバーレイ ストレッチをエミュレートしないでください。オーバーレイ ハードウェアがストレッチをサポートしている場合にのみ、これらのキャップを設定する必要があります。 通常、アプリケーションがビデオ処理とコンポジション フェーズの一部として GPU ストレッチを実行するために必要なオーバーヘッドは、オーバーレイ ストレッチをエミュレートするためにドライバーが最後に別のパスを実行する場合よりも少なくなります。
ドライバーは、 D3DDDI_OVERLAYINFOFLAGS 構造体から次の新しいビット フィールド フラグを処理する必要があります。 D3DDDI_OVERLAYINFOFLAGS構造体は、実行するオーバーレイ操作の種類を識別します。 D3DDDI_OVERLAYINFOFLAGS構造体は、ドライバーの CreateOverlay または UpdateOverlay 関数の呼び出しのD3DDDI_OVERLAYINFO構造体の Flags メンバーで指定されます。
LimitedRGB
オーバーレイは、フル レンジ RGB ではなく、限られた範囲の RGB です。 RGB の範囲が限られている場合、RGB 範囲は 16:16:16 が黒、235:235:235 が白になるように圧縮されます。YCbCrBT709
オーバーレイは BT.709 であり、BT.601 ではなく、高解像度テレビ (HDTV) を示します。YCbCrxvYCC
オーバーレイは、従来の YCbCr ではなく拡張 YCbCr (xvYCC) です。表示形式が 32 ビットではなく 64 ビットの場合 (たとえば、デスクトップ Windows マネージャー (DWM) が表示モードにD3DFMT_A16B16G16R16Fを使用する場合)、ランタイムはオーバーレイ カラーキーの下位 32 ビットを D3DDDI_OVERLAYINFO 構造体の DstColorKeyLow メンバーに、上の 32 ビットを D3DDDI_OVERLAYINFO の DstColorKeyHigh メンバーに配置します。