次の方法で共有


IHolographicQuadLayerInterop::AcquireDirect3D12BufferResourceWithTimeout メソッド (windows.graphics.holographic.interop.h)

AcquireDirect3D12BufferResourceWithTimeout メソッドは、Direct3D 12バック バッファー リソースの所有権をプラットフォームからアプリケーションに切り替え、リソースが使用可能になるまで duration 引数で示される時間まで待機します。 アプリケーションが既にリソースの制御を所有している場合でも、取得は成功と見なされ、メソッドはすぐに返されます。

IHolographicQuadLayerUpdateParametersInterop::CommitDirect3D12Resource を呼び出して HolographicFrame にリソースをコミットした後、AcquireDirect3D12BufferResourceWithTimeout を使用してアプリケーションによって再取得されるまで、アプリケーションはそのリソースの制御をシステムに放棄することを検討する必要があります。 システムは、クワッド 層を提示するために必要なくなるまでバッファーを所有します。 システムがバッファーの制御を放棄したかどうかを確認するには、 AcquireDirect3D12BufferResource または AcquireDirect3D12BufferResourceWithTimeout を呼び出します。 アプリケーションが quad レイヤーの新しい更新プログラムのレンダリングを開始する準備が整うまでにバッファーを取得できない場合は、新しいリソースを作成してバッファー キューに追加するか、バッファーが使用可能になるまで待機してキュー サイズを制限する必要があります。

このメソッドは、省略可能なタイムアウト値を受け入れます。 duration 引数に 0 以外の値が存在する場合、システムはその数ミリ秒待機してバッファーが使用可能になるまで待機します。 既定の動作では、待機しません。 タイムアウト値 0 を指定し、バッファーを取得する準備ができていない場合、メソッド呼び出しはエラー コード E_NOTREADYで失敗します。

構文

HRESULT AcquireDirect3D12BufferResourceWithTimeout(
  ID3D12Resource     *pResourceToAcquire,
  ID3D12CommandQueue *pCommandQueue,
  UINT64             duration
);

パラメーター

pResourceToAcquire

種類: ID3D12Resource*

取得するDirect3D 12 リソース。 リソースは、取得時に D3D12_RESOURCE_STATE_COMMON 状態になります。

pCommandQueue

種類: ID3D12CommandQueue*

アプリケーションの取得時にこのリソースの状態を遷移するために使用するDirect3D 12コマンド キュー。

duration

種類: UINT64

このパラメーターが設定されている場合、呼び出しはバッファーが取得されるまでその時間待機します。 バッファーを取得する前にタイムアウト期間が経過した場合、メソッドはエラー コード E_TIMEOUTで失敗します。 このパラメーターは、 TimeSpan.Duration フィールドと同様に、100 ナノ秒単位です。

戻り値

S_OK 成功した場合は、失敗の理由を示す HRESULT エラー コードを返します。 COM エラー コード (UI、オーディオ、DirectX、コーデック) も参照してください。

タイムアウト値が指定されていない場合、このメソッドが呼び出され、バッファーを取得する準備ができていない場合、メソッド呼び出しはエラー コード E_NOTREADYで失敗します。

要件

   
サポートされている最小のクライアント Windows 10バージョン 2004 (10.0;ビルド 19041)
サポートされている最小のサーバー Windows Server バージョン 2004 (10.0;ビルド 19041)
Header windows.graphics.holographic.interop.h

関連項目

AcquireDirect3D12BufferResource