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