IHolographicQuadLayerInterop::AcquireDirect3D12BufferResourceWithTimeout 메서드(windows.graphics.holographic.interop.h)
AcquireDirect3D12BufferResourceWithTimeout 메서드는 Direct3D 12 백 버퍼 리소스의 소유권을 플랫폼에서 애플리케이션으로 전환하여 리소스가 사용 가능해질 때까지 기간 인수에 표시된 시간까지 기다립니다. 애플리케이션이 이미 리소스 제어를 소유하는 경우 인수는 여전히 성공으로 간주되며 메서드는 즉시 반환됩니다.
IHolographicQuadLayerUpdateParametersInterop::CommitDirect3D12Resource를 호출하여 HolographicFrame에 리소스를 커밋한 후 애플리케이션은 AcquireDirect3D12BufferResourceWithTimeout을 사용하여 애플리케이션에서 다시 인수할 때까지 해당 리소스의 제어를 시스템에 포기해야 합니다. 시스템은 쿼드 계층을 표시하는 데 더 이상 필요하지 않을 때까지 버퍼를 소유합니다. 시스템에서 버퍼 제어를 포기했는지 여부를 확인하려면 AcquireDirect3D12BufferResource 또는 AcquireDirect3D12BufferResourceWithTimeout을 호출합니다. 애플리케이션이 쿼드 계층에 대한 새 업데이트 렌더링을 시작할 준비가 되었을 때 버퍼를 가져올 수 없는 경우 새 리소스를 만들고 버퍼 큐에 추가하거나 버퍼를 사용할 수 있을 때까지 대기하여 큐 크기를 제한해야 합니다.
이 메서드는 선택적 시간 제한 값을 허용합니다. 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) |
머리글 | windows.graphics.holographic.interop.h |