Diligent::IQuery struct

Query interface.

Defines the methods to manipulate a Query object

Base classes

struct IDeviceObject
Base interface for all objects created by the render device Diligent::IRenderDevice.

Derived classes

struct IQueryD3D11
Exposes Direct3D11-specific functionality of a Query object.
struct IQueryD3D12
Exposes Direct3D12-specific functionality of a Query object.
struct IQueryGL
Exposes OpenGL-specific functionality of a Query object.
class IQueryMtl
Exposes Metal-specific functionality of a Query object.
struct IQueryVk
Exposes Vulkan-specific functionality of a Query object.

Public functions

auto GetDesc() const -> const QueryDesc&METHOD() override
Returns the Query description used to create the object.
auto GetData(void* pData, Uint32 DataSize, bool AutoInvalidate = true) -> bool METHOD() virtual
Gets the query data.
auto Invalidate() -> void METHOD() virtual
Invalidates the query and releases associated resources.

Function documentation

bool METHOD() Diligent::IQuery::GetData(void* pData, Uint32 DataSize, bool AutoInvalidate = true) virtual

Gets the query data.

Parameters
pData in - Pointer to the query data structure. Depending on the type of the query, this must be the pointer to Diligent::QueryDataOcclusion, Diligent::QueryDataBinaryOcclusion, Diligent::QueryDataTimestamp, or Diligent::QueryDataPipelineStatistics structure. An application may provide nullptr to only check the query status.
DataSize in - Size of the data structure.
AutoInvalidate in - Whether to invalidate the query if the results are available and release associated resources. An application should typically always invalidate completed queries unless it needs to retrieve the same data through GetData() multiple times. A query will not be invalidated if pData is nullptr.
Returns true if the query data is available and false otherwise.

If AutoInvalidate is set to true, and the data have been retrieved, an application must not call GetData() until it begins and ends the query again.