IDCompositionTexture::GetAvailableFence メソッド (dcomp.h)
重要
一部の情報はプレリリース製品に関連しており、商用リリース前に大幅に変更される可能性があります。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
コンポジション テクスチャが使用可能になるタイミング (その情報がわかっている場合) を示す Direct3D 同期フェンス/値ペアを取得します。 返される値は、コンポジション テクスチャの可用性の状態によって異なります。 可用性状態は、コンポジション テクスチャにレンダリングしても安全かどうかを指定します。
可用性の状態、その説明、および各状態の GetAvailableFence の動作については、「解説」セクションを参照してください。
コンポジション テクスチャが使用可能になった場合、アプリでは、参照する Direct3D テクスチャの正確なサブ領域にのみレンダリングを発行するように注意する必要があります。
構文
HRESULT GetAvailableFence(
UINT64 *fenceValue,
REFIID iid,
void **availableFence
);
パラメーター
fenceValue
型: _Out_ UINT64*
返されたフェンス値。
iid
型: _In_ REFIID
インターフェイス識別子。
availableFence
型: void _Outptr_result_maybenull_**
コンポジション テクスチャの可用性の状態に応じて、返される使用可能なフェンス (または nullptr
)。 詳細については、「解説」セクション を 参照してください。
戻り値
種類: HRESULT
関数が成功した場合は、S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。
注釈
可用性の状態、その説明、および各状態に対 する GetAvailableFence の動作を次に示します。
すぐに使用できます。 コンポジション テクスチャはデスクトップ ウィンドウ マネージャー (DWM) によって表示されません。また、それを行うためにアプリケーションコミットがキューに入れられていません。 そのため、コンポジション テクスチャは、すぐに に書き込むのが安全です。 GetAvailableFence は、返された値と既に一致する使用可能なフェンスを返します。
間もなく利用可能になります。 コンポジション テクスチャは現在 DWM によって表示されていますが、アプリケーションによってビジュアル ツリーから削除され、DWM にコミットされています。 ただし、そのコミットはまだ DWM によって処理されていないため、DWM はまだテクスチャの表示を停止していません。 アプリは、その作業がテクスチャの使用可能なフェンスと同期されている場合、すぐに使用可能なテクスチャにレンダリングできます。 GetAvailableFence は、使用可能なフェンスを返します。 コンポジション テクスチャは、そのフェンスが戻り値にシグナル通知されるときに、書き込みが安全になります。
使用できません。 コンポジション テクスチャは現在 DWM によって表示されているか、DWM で表示するためにキューに入れられます。 そのため、アプリはそれに書き込むべきではありません。 GetAvailableFence は、フェンスの代わりに を返します nullptr
。
使用可能なフェンスは、1 つのコンポジション テクスチャの可用性を表します。 複数のコンポジション テクスチャが同じ Direct3D テクスチャを参照する可能性があります。各コンポジション テクスチャが、ソース rect (atlasing と呼ばれる手法) を指定することで、より大きな Direct3D テクスチャの異なる (重複しない) 領域を受け取る場合。 このような場合、コンポジション テクスチャが使用可能になった場合、アプリは Direct3D テクスチャの正確なサブ領域にのみレンダリングを発行するように注意する必要があります。他のコンポジション テクスチャに属している可能性があるピクセルに干渉しないようにします (使用できない可能性があります)。 これは、1 つの Direct3D テクスチャの異なるリージョンの可用性状態が異なる可能性があるためです。
要件
要件 | 値 |
---|---|
Header | dcomp.h |