Diligent Engine
 
Loading...
Searching...
No Matches
Diligent::ITopLevelAS Struct Referenceabstract

Top-level AS interface. More...

#include <TopLevelAS.h>

Inheritance diagram for Diligent::ITopLevelAS:
Diligent::IDeviceObject Diligent.IObject Diligent::ITopLevelASD3D12 Diligent::ITopLevelASMtl Diligent::ITopLevelASVk

Public Member Functions

virtual const TopLevelASDesc &DILIGENT_CALL_TYPE GetDesc () const override=0
 Returns the top level AS description used to create the object.
 
virtual TLASInstanceDesc DILIGENT_CALL_TYPE GetInstanceDesc (const Char *Name) const =0
 Returns instance description that can be used in shader binding table.
 
virtual TLASBuildInfo DILIGENT_CALL_TYPE GetBuildInfo () const =0
 Returns TLAS state after the last build or update operation.
 
virtual ScratchBufferSizes DILIGENT_CALL_TYPE GetScratchBufferSizes () const =0
 Returns scratch buffer info for the current acceleration structure.
 
virtual Uint64 DILIGENT_CALL_TYPE GetNativeHandle ()=0
 Returns native acceleration structure handle specific to the underlying graphics API.
 
virtual void DILIGENT_CALL_TYPE SetState (RESOURCE_STATE State)=0
 Sets the acceleration structure usage state.
 
virtual RESOURCE_STATE DILIGENT_CALL_TYPE GetState () const =0
 Returns the internal acceleration structure state.
 
- Public Member Functions inherited from Diligent::IDeviceObject
virtual Int32 DILIGENT_CALL_TYPE GetUniqueID () const =0
 Returns unique identifier assigned to an object.
 
virtual void DILIGENT_CALL_TYPE SetUserData (IObject *pUserData)=0
 Stores a pointer to the user-provided data object.
 
virtual IObject *DILIGENT_CALL_TYPE GetUserData () const =0
 Returns a pointer to the user data object previously set with SetUserData() method.
 
- Public Member Functions inherited from Diligent.IObject
virtual void DILIGENT_CALL_TYPE QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0
 Queries the specific interface.
 
virtual ReferenceCounterValueType DILIGENT_CALL_TYPE AddRef ()=0
 Increments the number of strong references by 1.
 
virtual ReferenceCounterValueType DILIGENT_CALL_TYPE Release ()=0
 
virtual IReferenceCounters *DILIGENT_CALL_TYPE GetReferenceCounters () const =0
 

Detailed Description

Top-level AS interface.

Defines the methods to manipulate a TLAS object

Member Function Documentation

◆ GetBuildInfo()

virtual TLASBuildInfo DILIGENT_CALL_TYPE Diligent::ITopLevelAS::GetBuildInfo ( ) const
pure virtual

Returns TLAS state after the last build or update operation.

Returns
TLASBuildInfo object, see Diligent::TLASBuildInfo.
Note
Access to the TLAS must be externally synchronized.

◆ GetInstanceDesc()

virtual TLASInstanceDesc DILIGENT_CALL_TYPE Diligent::ITopLevelAS::GetInstanceDesc ( const Char * Name) const
pure virtual

Returns instance description that can be used in shader binding table.

Parameters
[in]Name- Instance name that is specified in TLASBuildInstanceData::InstanceName.
Returns
TLASInstanceDesc object, see Diligent::TLASInstanceDesc. If instance does not exist then TLASInstanceDesc::ContributionToHitGroupIndex and TLASInstanceDesc::InstanceIndex are set to INVALID_INDEX.
Note
Access to the TLAS must be externally synchronized.

◆ GetNativeHandle()

virtual Uint64 DILIGENT_CALL_TYPE Diligent::ITopLevelAS::GetNativeHandle ( )
pure virtual

Returns native acceleration structure handle specific to the underlying graphics API.

Returns
A pointer to ID3D12Resource interface, for D3D12 implementation
VkAccelerationStructure handle, for Vulkan implementation

◆ GetScratchBufferSizes()

virtual ScratchBufferSizes DILIGENT_CALL_TYPE Diligent::ITopLevelAS::GetScratchBufferSizes ( ) const
pure virtual

Returns scratch buffer info for the current acceleration structure.

Returns
ScratchBufferSizes object, see Diligent::ScratchBufferSizes.

◆ SetState()

virtual void DILIGENT_CALL_TYPE Diligent::ITopLevelAS::SetState ( RESOURCE_STATE State)
pure virtual

Sets the acceleration structure usage state.

This method does not perform state transition, but resets the internal acceleration structure state to the given value. This method should be used after the application finished manually managing the acceleration structure state and wants to hand over state management back to the engine.