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 xiiGALQueryCreationDescription & GetDescription () const
 This returns the creation description for this object.
virtual bool GetData (void *pData, xiiUInt32 uiDataSize, bool bAutoInvalidate=true)=0
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< xiiGALDevice > GetDevice () const
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 xiiRTTI * GetDynamicRTTI () 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.
bool TryAddRef () const
xiiUInt32 ReleaseRef () const
 Decrements the reference counter. Returns the new reference count.ywat.
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)
 Copyright (c) Theophilus Eriata. All Rights Reserved.
Protected Member Functions inherited from xiiGALObject
 xiiGALObject ()
 Copyright (c) Theophilus Eriata. All Rights Reserved.
virtual XII_ALWAYS_INLINE void SetDebugNamePlatform (xiiStringView sName) const

Protected Attributes

xiiGALQueryCreationDescription m_Description
xiiGALCommandList * m_pCommandList = nullptr
QueryState m_QueryState = QueryState::Inactive
Protected Attributes inherited from xiiGALDeviceObject
xiiSharedPtr< xiiGALDevice > m_pDevice

Friends

class xiiGALDevice
class xiiMemoryUtils
class xiiGALCommandList

Additional Inherited Members

Static Public Member Functions inherited from xiiNoBase
static const xiiRTTI * GetStaticRTTI ()

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 xiiGALQueryD3D12, and xiiGALQueryVulkan.

◆ Invalidate()

void xiiGALQuery::Invalidate ( )
virtual

This invalidates the query and releases the associated resources.

Reimplemented in xiiGALQueryD3D12, and xiiGALQueryVulkan.


The documentation for this class was generated from the following files:
  • /home/runner/work/XII/XII/Source/Engine/GraphicsFoundation/Resources/Query.h
  • /home/runner/work/XII/XII/Source/Engine/GraphicsFoundation/Resources/Implementation/Query.cpp