次の方法で共有


オーバーレイ DDI

このセクションは、Windows 7 以降、および Windows Server 2008 R2 以降のバージョンの Windows オペレーティング システムにのみ適用されます。

オーバーレイ DDI は、オーバーレイのサポートを確認するための Direct3D バージョン 9 DDIの拡張機能です。 オーバーレイ DDI は、次のエントリ ポイントで構成されます。

  • D3DDDICAPS_TYPE 列挙体のD3DDDICAPS_CHECKOVERLAYSUPPORT値は、ディスプレイ デバイスが特定のオーバーレイをサポートしているかどうかを確認するために Direct3D ランタイムによって使用されます。 ランタイムは、ランタイムが GetCaps を呼び出すときに、ドライバーの GetCaps 関数の pData パラメータが指す D3DDDIARG_GETCAPS 構造体の Type メンバーでこれらの D3DDDICAPS_TYPE 値を設定します。 また、ランタイムは、D3DDDIARG_GETCAPSの pInfoメンバーを、オーバーレイを記述する DDICHECKOVERLAYSUPPORTINPUT構造体へのポインターに設定します。 ドライバーがオーバーレイをサポートしている場合、ドライバーは、D3DOVERLAYCAPS構造体のメンバーを設定し、 D3DDDIARG_GETCAPSpDataメンバーでこの構造体へのポインターを返します。 そうでなければ、ドライバーがオーバーレイをサポートしていない場合、ドライバーは、サポートの欠如がオーバーレイ形式に基づいているかどうか次第で、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 メンバーに配置し、D3DDDI_OVERLAYINFO のDstColorKeyHighメンバーの上位 32 ビットを配置します。