XII Release 0.1.0
Loading...
Searching...
No Matches
xiiGALQuery Class Referenceabstract

Interface that defines methods to manipulate a query object. More...

#include <Query.h>

Inheritance diagram for xiiGALQuery:
[legend]

Public Types

enum class  QueryState { Inactive , Querying , Ended }
 

Public Member Functions

XII_ALWAYS_INLINE const xiiGALQueryCreationDescriptionGetDescription () const
 This returns the creation description for this object.
 
virtual bool GetData (void *pData, xiiUInt32 uiDataSize, bool bAutoInvalidate=true)=0
 This retrieves the query data.
 
virtual void Invalidate ()
 This invalidates the query and releases the associated resources.
 
XII_ALWAYS_INLINE xiiGALQuery::QueryState GetQueryState () const
 This retrieves the current query state.
 
- Public Member Functions inherited from xiiGALDeviceObject
XII_ALWAYS_INLINE xiiSharedPtr< xiiGALDeviceGetDevice () const
 Returns the xiiGALDevice that created this resource.
 
- Public Member Functions inherited from xiiGALObject
XII_ALWAYS_INLINE xiiStringView GetDebugName () const
 Returns the debug name of this resource.
 
void SetDebugName (xiiStringView sDebugName) const
 Sets the debug name for this resource.
 
- Public Member Functions inherited from xiiReflectedClass
virtual const xiiRTTIGetDynamicRTTI () const
 
bool IsInstanceOf (const xiiRTTI *pType) const
 Returns whether the type of this instance is of the given type or derived from it.
 
template<typename T>
XII_ALWAYS_INLINE bool IsInstanceOf () const
 Returns whether the type of this instance is of the given type or derived from it.
 
- Public Member Functions inherited from xiiRefCounted
virtual ~xiiRefCounted ()=default
 Adds a virtual destructor.
 
- Public Member Functions inherited from xiiRefCountingImpl
 xiiRefCountingImpl ()=default
 Constructor.
 
 xiiRefCountingImpl (const xiiRefCountingImpl &rhs)
 
void operator= (const xiiRefCountingImpl &rhs)
 
xiiUInt32 AddRef () const
 Increments the reference counter. Returns the new reference count.
 
xiiUInt32 ReleaseRef () const
 Decrements the reference counter. Returns the new reference count.
 
bool IsReferenced () const
 Returns true if the reference count is greater than 0, false otherwise.
 
xiiUInt32 GetRefCount () const
 Returns the current reference count.
 

Protected Member Functions

 xiiGALQuery (xiiSharedPtr< xiiGALDevice > pDevice, const xiiGALQueryCreationDescription &creationDescription)
 
virtual xiiResult InitPlatform ()=0
 
void OnBeginQuery (xiiGALCommandList *pCommandList)
 
void OnEndQuery (xiiGALCommandList *pCommandList)
 
void CheckQueryDataPtr (void *pData, xiiUInt32 uiDataSize)
 
- Protected Member Functions inherited from xiiGALDeviceObject
 xiiGALDeviceObject (xiiSharedPtr< xiiGALDevice > pDevice)
 
- Protected Member Functions inherited from xiiGALObject
virtual XII_ALWAYS_INLINE void SetDebugNamePlatform (xiiStringView sName) const
 

Protected Attributes

xiiGALQueryCreationDescription m_Description
 
xiiGALCommandListm_pCommandList = nullptr
 
QueryState m_QueryState = QueryState::Inactive
 
- Protected Attributes inherited from xiiGALDeviceObject
xiiSharedPtr< xiiGALDevicem_pDevice
 

Friends

class xiiGALDevice
 
class xiiMemoryUtils
 
class xiiGALCommandList
 

Additional Inherited Members

- Static Public Member Functions inherited from xiiNoBase
static const xiiRTTIGetStaticRTTI ()
 

Detailed Description

Interface that defines methods to manipulate a query object.

Member Enumeration Documentation

◆ QueryState

enum class xiiGALQuery::QueryState
strong
Enumerator
Inactive 

No query has been initiated yet.

Querying 

A query is currently in progress.

Ended 

The query has completed.

Member Function Documentation

◆ GetData()

virtual bool xiiGALQuery::GetData ( void * pData,
xiiUInt32 uiDataSize,
bool bAutoInvalidate = true )
nodiscardpure virtual

This retrieves the query data.

Parameters
pData- The pointer to the query data structure. This must be a pointer to one of Occlusion, BinaryOcclusion, Timestamp, PipelineStatistics, and Duration structures. An application may provide nullptr to only check the query status.
uiDataSize- The size of the data structure.
bAutoInvalidate- 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, false otherwise.
Note
In Direct3D11 backend timestamp queries will only be available after FinishFrame is called for the frame in which they were collected. 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.

Implemented in xiiGALQueryVulkan.

◆ Invalidate()

void xiiGALQuery::Invalidate ( )
virtual

This invalidates the query and releases the associated resources.

Reimplemented in xiiGALQueryVulkan.


The documentation for this class was generated from the following files: