다음을 통해 공유


IHolographicCameraInterop::AcquireDirect3D12BufferResourceWithTimeout 메서드(windows.graphics.holographic.interop.h)

AcquireDirect3D12BufferResourceWithTimeout 메서드는 Direct3D 12 백 버퍼 리소스의 소유권을 플랫폼에서 애플리케이션으로 전환하여 리소스가 사용 가능해질 때까지 기간 인수에 표시된 시간까지 기다립니다. 애플리케이션이 이미 리소스의 제어권을 소유하는 경우 인수는 성공으로 간주되고 메서드는 즉시 반환됩니다.

IHolographicQuadLayerUpdateParametersInterop::CommitDirect3D12Resource를 호출하여 HolographicFrame에 리소스를 커밋한 후 애플리케이션은 AcquireDirect3D12BufferResourceWithTimeout을 사용하여 애플리케이션에서 다시 가져올 때까지 해당 리소스의 제어를 시스템에서 소유하는 것을 고려해야 합니다. 시스템은 버퍼가 커밋된 프레임이 프레젠테이션 큐를 통과할 때까지 버퍼를 소유합니다. 시스템에서 버퍼 제어를 포기했는지 여부를 확인하려면 AcquireDirect3D12BufferResource 또는 AcquireDirect3D12BufferResourceWithTimeout을 호출합니다. 애플리케이션이 새 HolographicFrame 렌더링을 시작할 준비가 되었을 때 버퍼를 가져올 수 없는 경우 새 리소스를 만들어 버퍼 큐에 추가하거나 버퍼를 사용할 수 있을 때까지 대기하여 큐 크기를 제한해야 합니다.

이 메서드는 선택적 시간 제한 값을 허용합니다. duration 인수에 0이 아닌 값이 있으면 시스템에서 버퍼를 사용할 수 있을 때까지 밀리초 정도 기다립니다. 기본 동작은 기다리지 않는 것입니다. 시간 제한 값이 0으로 지정되고 버퍼를 가져올 준비가 되지 않은 경우 오류 코드 E_NOTREADY 메서드 호출이 실패합니다.

구문

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

매개 변수

pResourceToAcquire

형식: ID3D12Resource*

획득할 Direct3D 12 리소스입니다.

pCommandQueue

형식: ID3D12CommandQueue*

애플리케이션에 대해 리소스를 가져올 때 이 리소스의 상태를 전환하는 데 사용할 Direct3D 12 명령 큐입니다. 리소스를 획득하면 리소스가 D3D12_RESOURCE_STATE_COMMON 상태가 됩니다.

duration

형식: UINT64

이 매개 변수가 0이 아닌 값으로 설정된 경우 호출은 버퍼가 획득될 때까지 해당 시간을 기다립니다. 버퍼를 획득하기 전에 시간 제한 기간이 경과하면 오류 코드 E_TIMEOUT 메서드가 실패합니다. 이 매개 변수는 TimeSpan.Duration 필드와 유사한 100나노초 단위로 지정됩니다.

반환 값

S_OK 성공하면 실패 이유를 나타내는 HRESULT 오류 코드를 반환합니다. 또한 COM 오류 코드(UI, 오디오, DirectX, 코덱)를 참조하세요.

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows 10 버전 2004(10.0; 빌드 19041)
지원되는 최소 서버 Windows Server 버전 2004(10.0; 빌드 19041)
머리글 windows.graphics.holographic.interop.h