ID3D12Device::CreateQueryHeap 메서드(d3d12.h)
쿼리 힙을 만듭니다. 쿼리 힙에는 쿼리 배열이 포함됩니다.
구문
HRESULT CreateQueryHeap(
[in] const D3D12_QUERY_HEAP_DESC *pDesc,
REFIID riid,
[out, optional] void **ppvHeap
);
매개 변수
[in] pDesc
형식: const D3D12_QUERY_HEAP_DESC*
D3D12_QUERY_HEAP_DESC 구조에서 쿼리 힙을 지정합니다.
riid
형식: REFIID
힙을 고유하게 식별하는 REFIID를 지정합니다.
[out, optional] ppvHeap
형식: void**
메서드를 성공적으로 완료할 때 반환되는 힙에 대한 포인터를 지정합니다. ppvHeap은 기능 테스트를 사용하도록 설정하기 위해 NULL일 수 있습니다. ppvHeap이 NULL이면 개체가 생성되지 않으며 pDesc가 유효하면 S_FALSE 반환됩니다.
반환 값
형식: HRESULT
이 메서드는 Direct3D 12 반환 코드 중 하나를 반환합니다.
설명
자세한 내용은 쿼리를 참조하세요.
예제
D3D12PredicationQueries 샘플은 다음과 같이 ID3D12Device::CreateQueryHeap을 사용합니다.
쿼리 힙 및 쿼리 결과 버퍼를 만듭니다.
// Pipeline objects.
D3D12_VIEWPORT m_viewport;
D3D12_RECT m_scissorRect;
ComPtr<IDXGISwapChain3> m_swapChain;
ComPtr<ID3D12Device> m_device;
ComPtr<ID3D12Resource> m_renderTargets[FrameCount];
ComPtr<ID3D12CommandAllocator> m_commandAllocators[FrameCount];
ComPtr<ID3D12CommandQueue> m_commandQueue;
ComPtr<ID3D12RootSignature> m_rootSignature;
ComPtr<ID3D12DescriptorHeap> m_rtvHeap;
ComPtr<ID3D12DescriptorHeap> m_cbvHeap;
ComPtr<ID3D12DescriptorHeap> m_dsvHeap;
ComPtr<ID3D12QueryHeap> m_queryHeap;
UINT m_rtvDescriptorSize;
UINT m_cbvSrvDescriptorSize;
UINT m_frameIndex;
// Synchronization objects.
ComPtr<ID3D12Fence> m_fence;
UINT64 m_fenceValues[FrameCount];
HANDLE m_fenceEvent;
// Asset objects.
ComPtr<ID3D12PipelineState> m_pipelineState;
ComPtr<ID3D12PipelineState> m_queryState;
ComPtr<ID3D12GraphicsCommandList> m_commandList;
ComPtr<ID3D12Resource> m_vertexBuffer;
ComPtr<ID3D12Resource> m_constantBuffer;
ComPtr<ID3D12Resource> m_depthStencil;
ComPtr<ID3D12Resource> m_queryResult;
D3D12_VERTEX_BUFFER_VIEW m_vertexBufferView;
// Describe and create a heap for occlusion queries.
D3D12_QUERY_HEAP_DESC queryHeapDesc = {};
queryHeapDesc.Count = 1;
queryHeapDesc.Type = D3D12_QUERY_HEAP_TYPE_OCCLUSION;
ThrowIfFailed(m_device->CreateQueryHeap(&queryHeapDesc, IID_PPV_ARGS(&m_queryHeap)));
요구 사항
대상 플랫폼 | Windows |
헤더 | d3d12.h |
라이브러리 | D3D12.lib |
DLL | D3D12.dll |