다음을 통해 공유


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

AcquireDirect3D12BufferResource 메서드는 Direct3D 12 백 버퍼 리소스의 소유권을 플랫폼에서 애플리케이션으로 전환합니다. 애플리케이션이 이미 리소스의 제어권을 소유하고 있는 경우 인수는 여전히 성공으로 간주됩니다.

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

AcquireDirect3D12BufferResource가 호출될 때 버퍼를 가져올 준비가 되지 않은 경우 메서드 호출이 실패하고 오류 코드 E_NOTREADY 즉시 반환됩니다.

애플리케이션은 AcquireDirect3D12BufferResourceWithTimeout 을 호출하여 더 많은 작업을 큐에 대기하기 전에 리소스를 사용할 수 있게 될 때까지 대기하여 큐 크기를 제한할 수 있습니다.

구문

HRESULT AcquireDirect3D12BufferResource(
  ID3D12Resource     *pResourceToAcquire,
  ID3D12CommandQueue *pCommandQueue
);

매개 변수

pResourceToAcquire

형식: ID3D12Resource*

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

pCommandQueue

형식: ID3D12CommandQueue*

애플리케이션에 대해 리소스를 가져올 때 이 리소스의 상태를 전환하는 데 사용할 Direct3D 12 명령 큐입니다. 리소스를 획득하면 리소스가 D3D12_RESOURCE_STATE_COMMON 상태가 됩니다. 리소스를 획득할 때 리소스가 이미 공통 상태인 경우 리소스 전환 명령이 큐에 대기되지 않을 수 있습니다.

반환 값

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

요구 사항

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