Nebula
Loading...
Searching...
No Matches
resourcetable.h File Reference

Detailed Description

A resource table declares a list of resources (ResourceTable in DX12, DescriptorSet in Vulkan)

#include "ids/id.h"
#include "ids/idpool.h"
#include "texture.h"
#include "textureview.h"
#include "buffer.h"
#include "sampler.h"
#include "accelerationstructure.h"
#include "coregraphics/config.h"

Go to the source code of this file.

Classes

struct  CoreGraphics::ResourceTableLayoutId
 
struct  CoreGraphics::ResourceTableLayoutTexture
 
struct  CoreGraphics::ResourceTableLayoutConstantBuffer
 
struct  CoreGraphics::ResourceTableLayoutShaderRWBuffer
 
struct  CoreGraphics::ResourceTableLayoutAccelerationStructure
 
struct  CoreGraphics::ResourceTableLayoutSampler
 
struct  CoreGraphics::ResourceTableLayoutInputAttachment
 
struct  CoreGraphics::ResourceTableLayoutCreateInfo
 
struct  CoreGraphics::ResourceTableId
 
struct  CoreGraphics::ResourceTableTexture
 
struct  CoreGraphics::ResourceTableTextureView
 
struct  CoreGraphics::ResourceTableInputAttachment
 
struct  CoreGraphics::ResourceTableBuffer
 
struct  CoreGraphics::ResourceTableSampler
 
struct  CoreGraphics::ResourceTableTlas
 
struct  CoreGraphics::ResourceTableCreateInfo
 
struct  CoreGraphics::ResourceTableSet
 Set of buffers which creates a resource table per each buffered frame. More...
 
struct  CoreGraphics::ResourcePipelineId
 
struct  CoreGraphics::ResourcePipelinePushConstantRange
 
struct  CoreGraphics::ResourcePipelineCreateInfo
 

Namespaces

namespace  CoreGraphics
 Acceleration structures are used to enable ray tracing on the GPU by dividing the scene into a BVH.
 

Functions

ResourceTableLayoutId CoreGraphics::CreateResourceTableLayout (const ResourceTableLayoutCreateInfo &info)
 create resource table layout
 
void CoreGraphics::DestroyResourceTableLayout (const ResourceTableLayoutId &id)
 destroy resource table layout
 
ResourceTableId CoreGraphics::CreateResourceTable (const ResourceTableCreateInfo &info)
 create resource table
 
void CoreGraphics::DestroyResourceTable (const ResourceTableId id)
 destroy resource table
 
const ResourceTableLayoutIdCoreGraphics::ResourceTableGetLayout (CoreGraphics::ResourceTableId id)
 Get resource table layout.
 
void CoreGraphics::ResourceTableSetTexture (const ResourceTableId id, const ResourceTableTexture &tex)
 set resource table texture
 
void CoreGraphics::ResourceTableSetTexture (const ResourceTableId id, const ResourceTableTextureView &tex)
 set resource table texture
 
void CoreGraphics::ResourceTableSetInputAttachment (const ResourceTableId id, const ResourceTableInputAttachment &tex)
 set resource table input attachment
 
void CoreGraphics::ResourceTableSetRWTexture (const ResourceTableId id, const ResourceTableTexture &tex)
 set resource table texture as read-write
 
void CoreGraphics::ResourceTableSetRWTexture (const ResourceTableId id, const ResourceTableTextureView &tex)
 set resource table texture as read-write
 
void CoreGraphics::ResourceTableSetConstantBuffer (const ResourceTableId id, const ResourceTableBuffer &buf)
 set resource table constant buffer
 
void CoreGraphics::ResourceTableSetRWBuffer (const ResourceTableId id, const ResourceTableBuffer &buf)
 set resource table shader rw buffer
 
void CoreGraphics::ResourceTableSetSampler (const ResourceTableId id, const ResourceTableSampler &samp)
 set resource table sampler
 
void CoreGraphics::ResourceTableSetAccelerationStructure (const ResourceTableId id, const ResourceTableTlas &tlas)
 Set resource table acceleration structure.
 
void CoreGraphics::ResourceTableCopy (const ResourceTableId from, const IndexT fromSlot, const IndexT fromIndex, const ResourceTableId to, const IndexT toSlot, const IndexT toIndex, const SizeT numResources)
 copy resources from a slot, index and array size between resource tables
 
void CoreGraphics::ResourceTableBlock (bool b)
 disallow the resource table system to make modifications
 
void CoreGraphics::ResourceTableCommitChanges (const ResourceTableId id)
 apply updates of previous sets
 
ResourcePipelineId CoreGraphics::CreateResourcePipeline (const ResourcePipelineCreateInfo &info)
 create resource pipeline
 
void CoreGraphics::DestroyResourcePipeline (const ResourcePipelineId &id)
 destroy resource pipeline
 

Variables

Util::Array< CoreGraphics::ResourceTableIdCoreGraphics::PendingTableCommits
 
bool CoreGraphics::ResourceTableBlocked = false
 
Threading::CriticalSection CoreGraphics::PendingTableCommitsLock