ID3D12Device::CreateQueryHeap-Methode (d3d12.h)
Erstellt einen Abfrageheap. Ein Abfrageheap enthält ein Array von Abfragen.
Syntax
HRESULT CreateQueryHeap(
[in] const D3D12_QUERY_HEAP_DESC *pDesc,
REFIID riid,
[out, optional] void **ppvHeap
);
Parameter
[in] pDesc
Typ: const D3D12_QUERY_HEAP_DESC*
Gibt den Abfrageheap in einer D3D12_QUERY_HEAP_DESC-Struktur an.
riid
Typ: REFIID
Gibt eine REFIID an, die den Heap eindeutig identifiziert.
[out, optional] ppvHeap
Typ: void**
Gibt einen Zeiger auf den Heap an, der bei erfolgreichem Abschluss der Methode zurückgegeben wird. ppvHeap kann NULL sein, um Funktionstests zu ermöglichen. Wenn ppvHeap NULL ist, wird kein Objekt erstellt, und S_FALSE wird zurückgegeben, wenn pDesc gültig ist.
Rückgabewert
Typ: HRESULT
Diese Methode gibt einen der Direct3D 12-Rückgabecodes zurück.
Hinweise
Weitere Informationen finden Sie unter Abfragen .
Beispiele
Im D3D12PredicationQueries-Beispiel wird ID3D12Device::CreateQueryHeap wie folgt verwendet:
Erstellen Sie einen Abfrageheap und einen Abfrageergebnispuffer.
// 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)));
Weitere Informationen finden Sie im Beispielcode in der D3D12-Referenz.
Anforderungen
Zielplattform | Windows |
Kopfzeile | d3d12.h |
Bibliothek | D3D12.lib |
DLL | D3D12.dll |