Nebula
Loading...
Searching...
No Matches
CoreGraphics Namespace Reference

Detailed Description

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

Window related stuff.

Implements a shader loader from stream into a Vulkan shader.

Implements a Vulkan command buffer.

Vertex layout declares the interface between application and vertex shader.

A texture view is used on a texture to change the format, mip or layer range used to sample from in a shader.

Texture related functions.

A swapchain represents a set of backbuffers which the monitor fetches it's framebuffer from.

Virtually mapped buffer.

A pipeline object describes the GPU state required to perform a compute or graphics job.

A pinned buffer is a type of GPU buffer which handles virtual paging automatically.

Container type for meshes.

Implements a mesh loader from stream into Vulkan.

The Graphics Device is the engine which drives the graphics abstraction layer.

Implements a window using GLFW.

An event is a signal and wait type object which is used for in-queue GPU sync.

CmdBuffer contains general functions related to command buffer management.

GPU side buffer.

A barrier is a memory barrier between two GPU operations, and thus allows for a guarantee of concurrency.

The structure is split into two objects, bottom level meant for geometry data, and top level meant for scene representation.

Bottom level acceleration structures are setup with pointers to geometry data and should update if Build is called after vertices are transformed, assuming that the transformation of the vertices pointed to by the mesh are actually written to the buffer.

Top level acceleration structures are setup with references to bottom level structures, and can be updated every frame, or as needed.

Doubtful this is Vulkan specific...

Namespaces

namespace  GpuBufferTypes
 
namespace  Nvx3
 

Classes

struct  __Mesh
 
struct  AccelerationStructureBarrierInfo
 
class  Adapter
 Display adapter enum. More...
 
class  AdapterInfo
 Contains information about a given display adapter. More...
 
struct  Alloc
 
struct  AllocRange
 
class  AntiAliasQuality
 Anti-alias quality levels. More...
 
struct  BarrierCreateInfo
 
struct  BarrierId
 
struct  BarrierScope
 
struct  BarrierStackEntry
 
struct  BaseVertex
 
struct  BlasCreateInfo
 
struct  BlasId
 
struct  BlasInstanceCreateInfo
 
struct  BlasInstanceId
 
struct  BufferBarrier
 
struct  BufferBarrierInfo
 
struct  BufferCopy
 
struct  BufferCreateInfo
 
struct  BufferId
 
struct  BufferSet
 Set of buffers which creates a buffer per each buffered frame. More...
 
struct  BufferSparsePage
 
struct  BufferSubresourceInfo
 
struct  BufferWithStaging
 
struct  CmdBufferBeginInfo
 
struct  CmdBufferClearInfo
 
struct  CmdBufferCreateInfo
 
struct  CmdBufferId
 
struct  CmdBufferMarkerBundle
 
struct  CmdBufferPoolCreateInfo
 
struct  CmdBufferPoolId
 
struct  ColorVertex
 
struct  DepthStencilClear
 
struct  DerivativeStateId
 
class  DisplayEvent
 Display events are sent by the display device to registered display event handlers. More...
 
class  DisplayEventHandler
 A display event handler object is notified by the DisplayDevice about noteworthy window events, for instance when the mouse is moved, the window is minimized, and so on. More...
 
class  DisplayMode
 Describe a fullscreen display mode or window dimensions. More...
 
class  DrawThread
 A CoreGraphics thread meant to only record draw commands to command buffers. More...
 
struct  DrawThreadResult
 
struct  EventCreateInfo
 
struct  EventId
 
struct  FenceCreateInfo
 
struct  FenceId
 
class  Gliml
 
struct  GraphicsDeviceCreateInfo
 
struct  GraphicsDeviceState
 
struct  GraphicsDeviceThreadState
 
struct  ImageCreateInfoData
 
struct  ImageCreateInfoFile
 
struct  ImageDimensions
 
class  ImageFileFormat
 Image file formats supported by StreamTextureSaver. More...
 
struct  ImageId
 
struct  ImageLoadInfo
 
class  IndexType
 Data type of vertex indices (16 bit or 32 bit). More...
 
union  InputAssemblyKey
 
struct  MemoryHeap
 
struct  MemoryPool
 
struct  MeshCreateInfo
 Mesh collects vertex and index buffers with primitive groups which can be used to render with. More...
 
struct  MeshId
 
class  MeshLoader
 
struct  MeshResource
 
struct  MeshResourceId
 
struct  NormalVertex
 
struct  Nvx2Group
 
struct  Nvx2Header
 NVX2 file format structs. More...
 
struct  Nvx3Elements
 
struct  Nvx3Group
 
struct  Nvx3Header
 NVX3 file format structs. More...
 
struct  Nvx3Meshlet
 
class  Nvx3StreamReader
 
struct  Nvx3VertexRange
 
struct  PassCreateInfo
 
struct  PassId
 
struct  PinnedBuffer
 
struct  PipelineCreateInfo
 
struct  PipelineId
 
struct  PipelineRayTracingTable
 
class  PixelFormat
 Pixel format enumeration. More...
 
class  PrimitiveGroup
 Defines a group of primitives as a subset of a vertex buffer and index buffer plus the primitive topology (triangle list, etc...). More...
 
class  PrimitiveTopology
 The primitive topology for a draw call. More...
 
struct  RayDispatchTable
 
union  RayTracingBits
 Get shader program raytracing bits. More...
 
class  RenderEvent
 Render events are sent by the RenderDevice to registered render event handlers. More...
 
class  RenderEventHandler
 A render event handler object is notified by the RenderDevice about noteworthy events. More...
 
class  RenderShape
 Describes a shape which is rendered through the ShapeRenderer singleton. More...
 
struct  ResizeInfo
 
struct  ResourcePipelineCreateInfo
 
struct  ResourcePipelineId
 
struct  ResourcePipelinePushConstantRange
 
struct  ResourceTableBuffer
 
struct  ResourceTableCreateInfo
 
struct  ResourceTableId
 
struct  ResourceTableInputAttachment
 
struct  ResourceTableLayoutAccelerationStructure
 
struct  ResourceTableLayoutConstantBuffer
 
struct  ResourceTableLayoutCreateInfo
 
struct  ResourceTableLayoutId
 
struct  ResourceTableLayoutInputAttachment
 
struct  ResourceTableLayoutSampler
 
struct  ResourceTableLayoutShaderRWBuffer
 
struct  ResourceTableLayoutTexture
 
struct  ResourceTableSampler
 
struct  ResourceTableSet
 Set of buffers which creates a resource table per each buffered frame. More...
 
struct  ResourceTableTexture
 
struct  ResourceTableTextureView
 
struct  ResourceTableTlas
 
struct  SamplerCreateInfo
 
struct  SamplerId
 
struct  SecondUVVertex
 
struct  SemaphoreCreateInfo
 
struct  SemaphoreId
 
struct  ShaderCreateInfo
 
class  ShaderFeature
 Wrapper class for shader permutations by name. More...
 
struct  ShaderId
 
class  ShaderIdentifier
 The ShaderIdentifier is a zero-indexed registry which is used to identify shaders in a constant time (instead of using dictionaries) which can be used to select variables and whatnot using a FixedArray, which is guaranteed to retain the same index during the execution of the application. More...
 
class  ShaderLoader
 
struct  SkinVertex
 
struct  SparseBufferCreateInfo
 
struct  SparseBufferId
 sparse buffer type More...
 
struct  SubmissionWaitEvent
 
struct  Subpass
 
struct  SubpassInfo
 
struct  SwapchainCreateInfo
 
struct  SwapchainId
 
class  TextElement
 Describes a text element for the text renderer. More...
 
struct  TextureBarrier
 
struct  TextureBarrierInfo
 
struct  TextureCopy
 struct for texture copies More...
 
struct  TextureCreateInfo
 
struct  TextureCreateInfoAdjusted
 
struct  TextureDimensions
 
struct  TextureId
 texture type More...
 
class  TextureLoader
 
struct  TextureRelativeDimensions
 
struct  TextureSparsePage
 
struct  TextureSparsePageOffset
 
struct  TextureSparsePageSize
 
struct  TextureStreamData
 
struct  TextureSubresourceInfo
 
struct  TextureSwizzle
 
struct  TextureViewCreateInfo
 
struct  TextureViewId
 
class  ThreadSafeDisplayEventHandler
 A thread-safe subclass of DisplayEventHandler. More...
 
class  ThreadSafeRenderEventHandler
 A thread-safe subclass of RenderEventHandler. More...
 
struct  TlasCreateInfo
 
struct  TlasId
 
struct  VertexAlloc
 
class  VertexComponent
 Describes a single vertex component in a vertex layout description. More...
 
struct  VertexLayoutCreateInfo
 
struct  VertexLayoutId
 
struct  VertexLayoutInfo
 
struct  VertexStream
 
struct  WindowCreateInfo
 
struct  WindowId
 

Typedefs

typedef uint BufferUsageFlags
 
typedef uint BufferQueueSupportFlags
 
typedef uint ConstantBufferOffset
 
typedef Ids::IdAllocator< GLFWwindow *, CoreGraphics::DisplayMode, IndexT, WindowCreateInfo, ResizeInfo, SwapchainIdGLFWWindowAllocatorType
 
typedef Ids::IdAllocator< ImageLoadInfoImageAllocator
 
typedef Ids::IdAllocatorSafe< 0xFFFF, Resources::ResourceName, __MeshMeshAllocator
 
typedef Ids::IdAllocator< Util::FixedArray< MeshId > > MeshResourceAllocator
 

Enumerations

enum class  AccelerationStructureBuildFlags {
  FastBuild = 0x1 , FastTrace = 0x2 , Dynamic = 0x4 , Compact = 0x8 ,
  Small = 0x10
}
 
enum  BlasInstanceFlags {
  NoFlags = 0x0 , FaceCullingDisabled = 0x1 , InvertFace = 0x2 , ForceOpaque = 0x4 ,
  NoOpaque = 0x8
}
 
enum  BufferAccessMode { DeviceLocal , HostLocal , HostCached , DeviceAndHost }
 
enum  BufferUsageFlag {
  InvalidBufferUsage = 0x0 , TransferBufferSource = 0x1 , TransferBufferDestination = 0x2 , ConstantBuffer = 0x4 ,
  ConstantTexelBuffer = 0x8 , ReadWriteBuffer = 0x10 , ReadWriteTexelBuffer = 0x20 , VertexBuffer = 0x40 ,
  IndexBuffer = 0x80 , IndirectBuffer = 0x100 , ShaderAddress = 0x200 , AccelerationStructureData = 0x400 ,
  AccelerationStructureScratch = 0x800 , AccelerationStructureInput = 0x1000 , AccelerationStructureInstances = 0x2000 , ShaderTable = 0x4000
}
 
enum  BufferQueueSupport { AutomaticQueueSupport = 0x0 , GraphicsQueueSupport = 0x1 , ComputeQueueSupport = 0x2 , TransferQueueSupport = 0x4 }
 
enum  CmdBufferQueryBits {
  NoQueries = 0x0 , Occlusion = 0x1 , Statistics = 0x2 , Timestamps = 0x4 ,
  NumBits = 3
}
 
enum class  CmdPipelineBuildBits : uint {
  NoInfoSet = 0 , ShaderInfoSet = N_BIT(0) , FramebufferLayoutInfoSet = N_BIT(1) , InputAssemblyInfoSet = N_BIT(2) ,
  AllInfoSet = ShaderInfoSet | FramebufferLayoutInfoSet | InputAssemblyInfoSet , PipelineBuilt = N_BIT(3)
}
 
enum  QueueType {
  GraphicsQueueType , ComputeQueueType , TransferQueueType , SparseQueueType ,
  NumQueueTypes , InvalidQueueType
}
 
enum  QueryType { OcclusionQueryType , StatisticsQueryType , TimestampsQueryType , NumQueryTypes }
 
enum  ShaderVisibility {
  InvalidVisibility = 0 , VertexShaderVisibility = 1 << 0 , HullShaderVisibility = 1 << 2 , DomainShaderVisibility = 1 << 3 ,
  GeometryShaderVisibility = 1 << 4 , PixelShaderVisibility = 1 << 5 , AllGraphicsVisibility = VertexShaderVisibility | HullShaderVisibility | DomainShaderVisibility | GeometryShaderVisibility | PixelShaderVisibility , TaskShaderVisibility = 1 << 6 ,
  MeshShaderVisibility = 1 << 7 , ComputeShaderVisibility = 1 << 8 , RayGenerationShaderVisibility = 1 << 9 , RayAnyHitShaderVisibility = 1 << 10 ,
  RayClosestHitShaderVisibility = 1 << 11 , RayMissShaderVisibility = 1 << 12 , RayIntersectionShaderVisibility = 1 << 13 , CallableShaderVisibility = 1 << 14 ,
  AllVisibility = (1 << 15) - 1
}
 
enum class  ImageBits {
  None = 0 , Auto = 1 , ColorBits = (1 << 1) , DepthBits = (1 << 2) ,
  StencilBits = (1 << 3) , MetaBits = (1 << 4) , Plane0Bits = (1 << 5) , Plane1Bits = (1 << 6) ,
  Plane2Bits = (1 << 7)
}
 
enum class  ImageLayout {
  Undefined , General , ColorRenderTexture , DepthStencilRenderTexture ,
  DepthStencilRead , ShaderRead , TransferSource , TransferDestination ,
  Preinitialized , Present
}
 
enum  ShaderPipeline { InvalidPipeline , GraphicsPipeline , ComputePipeline , RayTracingPipeline }
 
enum class  BarrierDomain { Global , Pass }
 
enum class  PipelineStage {
  InvalidStage , Top , Bottom , Indirect ,
  Index , Vertex , UniformGraphics , UniformCompute ,
  InputAttachment , ReadOnlyAccess = InputAttachment , VertexShaderRead , VertexShaderWrite ,
  HullShaderRead , HullShaderWrite , DomainShaderRead , DomainShaderWrite ,
  GeometryShaderRead , GeometryShaderWrite , PixelShaderRead , PixelShaderWrite ,
  GraphicsShadersRead , GraphicsShadersWrite , ComputeShaderRead , ComputeShaderWrite ,
  AllShadersRead , AllShadersWrite , ColorRead , ColorWrite ,
  DepthStencilRead , DepthStencilWrite , RayTracingShaderRead , RayTracingShaderWrite ,
  TaskShaderRead , TaskShaderWrite , MeshShaderRead , MeshShaderWrite ,
  TransferRead , TransferWrite , HostRead , HostWrite ,
  MemoryRead , MemoryWrite , AccelerationStructureRead , AccelerationStructureWrite ,
  ImageInitial , Present
}
 
enum  {
  GLFW_Window , GLFW_DisplayMode , GLFW_SwapFrame , GLFW_SetupInfo ,
  GLFW_ResizeInfo , GLFW_Swapchain
}
 
enum  ImageChannelPrimitive {
  Bit8Uint , Bit16Uint , Bit16Float , Bit32Uint ,
  Bit32Float
}
 
enum  ImageContainer { PNG , JPEG , DDS }
 
enum  MemoryPoolType {
  MemoryPool_DeviceLocal , MemoryPool_HostLocal , MemoryPool_HostCached , MemoryPool_DeviceAndHost ,
  NumMemoryPoolTypes
}
 
enum  { Mesh_Name , Mesh_Internals }
 
enum class  AttachmentFlagBits : uint16 {
  NoFlags = 0 , Clear = N_BIT(0) , ClearStencil = N_BIT(1) , Load = N_BIT(2) ,
  LoadStencil = N_BIT(3) , Store = N_BIT(4) , StoreStencil = N_BIT(6) , Discard = N_BIT(7) ,
  DiscardStencil = N_BIT(8)
}
 
enum class  PassRecordMode : uint8 { Record , ExecuteRecorded , ExecuteInline }
 
enum  SamplerFilter { NearestFilter , LinearFilter , CubicFilter }
 
enum  SamplerMipMode { NearestMipMode , LinearMipMode }
 
enum  SamplerAddressMode {
  RepeatAddressMode , MirroredRepeatAddressMode , ClampToEdgeAddressMode , ClampToBorderAddressMode ,
  MirrorClampToEdgeAddressMode
}
 
enum  SamplerCompareOperation {
  NeverCompare , LessCompare , EqualCompare , LessOrEqualCompare ,
  GreaterCompare , GreaterOrEqualCompare , NotEqualCompare , AlwaysCompare
}
 
enum  SamplerBorderMode {
  FloatTransparentBlackBorder , IntTransparentBlackBorder , FloatOpaqueBlackBorder , IntOpaqueBlackBorder ,
  FloatOpaqueWhiteBorder , IntOpaqueWhiteBorder
}
 
enum  SemaphoreType { Binary , Timeline }
 
enum  ShaderConstantType {
  UnknownVariableType , IntVariableType , FloatVariableType , VectorVariableType ,
  Vector2VariableType , MatrixVariableType , BoolVariableType , TextureVariableType ,
  SamplerVariableType , ConstantBufferVariableType , ImageReadWriteVariableType , BufferReadWriteVariableType ,
  TextureHandleType , ImageHandleType , SamplerHandleType
}
 
enum  TextureType {
  InvalidTextureType , Texture1D , Texture2D , Texture3D ,
  TextureCube , Texture1DArray , Texture2DArray , TextureCubeArray
}
 texture types More...
 
enum  TextureCubeFace {
  PosX = 0 , NegX , PosY , NegY ,
  PosZ , NegZ
}
 cube map face More...
 
enum  TextureUsage {
  InvalidTextureUsage = 0x0 , SampleTexture = 0x1 , RenderTexture = 0x2 , ReadWriteTexture = 0x4 ,
  TransferSourceTexture = 0x8 , TransferDestinationTexture = 0x10 , DeviceExclusive = 0x20
}
 type of texture usage More...
 
enum class  TextureChannelMapping {
  None , Red , Green , Blue ,
  Alpha , Zero , One
}
 
enum class  VertexLayoutType {
  Invalid , Normal , Colors , SecondUV ,
  Skin , Particle , NumTypes
}
 

Functions

 __ImplementEnumBitOperators (AccelerationStructureBuildFlags)
 
 __ImplementEnumComparisonOperators (AccelerationStructureBuildFlags)
 
 _DECL_ACQUIRE_RELEASE (BlasId)
 
BlasId CreateBlas (const BlasCreateInfo &info)
 Create bottom level acceleration structure.
 
void DestroyBlas (const BlasId blac)
 Destroy bottom level acceleration structure.
 
 __ImplementEnumBitOperators (BlasInstanceFlags)
 
 _DECL_ACQUIRE_RELEASE (BlasInstanceId)
 
BlasInstanceId CreateBlasInstance (const BlasInstanceCreateInfo &info)
 Create an instance to a bottom level acceleration structure.
 
void DestroyBlasInstance (const BlasInstanceId id)
 Destroy blas instance.
 
void BlasInstanceUpdate (const BlasInstanceId id, const Math::mat4 &transform, CoreGraphics::BufferId buf, uint offset)
 Update blas instance and write to buffer.
 
void BlasInstanceUpdate (const BlasInstanceId id, CoreGraphics::BufferId buf, uint offset)
 Update blas instance and write to buffer.
 
void BlasInstanceSetMask (const BlasInstanceId id, uint mask)
 Set blas instance mask, setting it to 0x0 will disable it.
 
const SizeT BlasInstanceGetSize ()
 Get instance size (platform dependent)
 
TlasId CreateTlas (const TlasCreateInfo &info)
 Create top level acceleration structure.
 
void DestroyTlas (const TlasId tlas)
 Destroy top level acceleration structure.
 
void TlasInitBuild (const TlasId tlas)
 Initiate Tlas for build.
 
void TlasInitUpdate (const TlasId tlas)
 Initiate Tlas for update.
 
BarrierId CreateBarrier (const BarrierCreateInfo &info)
 create barrier object
 
void DestroyBarrier (const BarrierId id)
 destroy barrier object
 
void BarrierReset (const BarrierId id)
 reset resources previously set in barrier
 
void BarrierPush (const CoreGraphics::CmdBufferId buf, CoreGraphics::PipelineStage fromStage, CoreGraphics::PipelineStage toStage, CoreGraphics::BarrierDomain domain, const Util::FixedArray< TextureBarrierInfo, true > &textures, const Util::FixedArray< BufferBarrierInfo, true > &buffers)
 Push barrier to stack.
 
void BarrierPush (const CoreGraphics::CmdBufferId buf, CoreGraphics::PipelineStage fromStage, CoreGraphics::PipelineStage toStage, CoreGraphics::BarrierDomain domain, const Util::FixedArray< TextureBarrierInfo, true > &textures)
 Push barrier to stack.
 
void BarrierPush (const CoreGraphics::CmdBufferId buf, CoreGraphics::PipelineStage fromStage, CoreGraphics::PipelineStage toStage, CoreGraphics::BarrierDomain domain, const Util::FixedArray< BufferBarrierInfo, true > &buffers)
 Push barrier to stack.
 
void BarrierPop (const CoreGraphics::CmdBufferId buf)
 pop barrier, reverses the from-to stages and any access flags in the buffers and texture barriers
 
void BarrierRepeat (const CoreGraphics::CmdBufferId buf)
 repeat barrier in queue
 
CoreGraphics::ImageBits ImageBitsFromString (const Util::String &str)
 
CoreGraphics::ImageLayout ImageLayoutFromString (const Util::String &str)
 
const VertexLayoutId CreateVertexLayout (const VertexLayoutCreateInfo &info)
 create new vertex layout
 
 _DECL_ACQUIRE_RELEASE (BufferId)
 
const BufferId CreateBuffer (const BufferCreateInfo &info)
 create buffer
 
void DestroyBuffer (const BufferId id)
 destroy buffer
 
const BufferUsageFlags BufferGetType (const BufferId id)
 get type of buffer
 
const SizeT BufferGetSize (const BufferId id)
 get buffer size, which is the number of elements
 
const SizeT BufferGetElementSize (const BufferId id)
 get buffer element size, this is the size of a single element, like a vertex or index, and is multiplied with the size
 
const SizeT BufferGetByteSize (const BufferId id)
 get buffer total byte size
 
const SizeT BufferGetUploadMaxSize ()
 get maximum size of upload for BufferUpload
 
void * BufferMap (const BufferId id)
 map memory
 
template<class T >
T * BufferMap (const BufferId id)
 map memory and cast to type
 
void BufferUnmap (const BufferId id)
 unmap memory
 
void BufferUpdate (const BufferId id, const void *data, const uint size, const uint offset=0)
 update buffer data
 
void BufferUpload (const CoreGraphics::CmdBufferId cmdBuf, const BufferId id, const void *data, const uint size, const uint offset)
 update buffer directly on command buffer during frame update, asserts if size is too big
 
template<class TYPE >
void BufferUpdate (const BufferId id, const TYPE &data, const uint offset=0)
 update buffer data
 
template<class TYPE >
void BufferUpdateArray (const BufferId id, const TYPE *data, const uint count, const uint offset=0)
 update buffer data as array
 
template<class TYPE >
void BufferUpdateArray (const BufferId id, const Util::Array< TYPE > &data, const uint offset=0)
 Update buffer data as array.
 
template<class TYPE >
void BufferUpdateArray (const BufferId id, const Util::FixedArray< TYPE > &data, const uint offset=0)
 Update buffer data as array.
 
template<class TYPE >
void BufferUpload (const CoreGraphics::CmdBufferId cmdBuf, const BufferId id, const TYPE *data, const uint count=1, const uint offset=0)
 upload data from pointer directly to buffer through submission context
 
void BufferFill (const CoreGraphics::CmdBufferId cmdBuf, const BufferId id, char pattern)
 fill buffer with data much like memset
 
void BufferFlush (const BufferId id, IndexT offset=0, SizeT size=NEBULA_WHOLE_BUFFER_SIZE)
 flush any changes done to the buffer on the CPU side so they are visible on the GPU
 
void BufferInvalidate (const BufferId id, IndexT offset=0, SizeT size=NEBULA_WHOLE_BUFFER_SIZE)
 invalidate buffer CPU side, such that any GPU changes will be made visible
 
void BufferSparseEvict (const BufferId id, IndexT pageIndex)
 Evict a page.
 
void BufferSparseMakeResident (const BufferId id, IndexT pageIndex)
 Make a page resident.
 
IndexT BufferSparseGetPageIndex (const BufferId id, SizeT offset)
 Get the page index given an offset.
 
SizeT BufferSparseGetPageSize (const BufferId id)
 Get the buffer page size.
 
void BufferSparseCommitChanges (const BufferId id)
 Commit sparse bindings.
 
CoreGraphics::DeviceAddress BufferGetDeviceAddress (const BufferId id)
 Get buffer device address.
 
void BufferCopyWithStaging (const CoreGraphics::BufferId dest, const uint offset, const void *data, const uint size)
 Shortcut for creating a staging buffer and copy.
 
void CmdBarrier (const CmdBufferId id, CoreGraphics::PipelineStage fromStage, CoreGraphics::PipelineStage toStage, CoreGraphics::BarrierDomain domain, const Util::FixedArray< TextureBarrierInfo, true > &textures, const IndexT fromQueue=InvalidIndex, const IndexT toQueue=InvalidIndex, const char *name=nullptr)
 Insert pipeline barrier.
 
void CmdBarrier (const CmdBufferId id, CoreGraphics::PipelineStage fromStage, CoreGraphics::PipelineStage toStage, CoreGraphics::BarrierDomain domain, const Util::FixedArray< BufferBarrierInfo, true > &buffers, const IndexT fromQueue=InvalidIndex, const IndexT toQueue=InvalidIndex, const char *name=nullptr)
 Insert pipeline barrier.
 
void CmdBarrier (const CmdBufferId id, CoreGraphics::PipelineStage fromStage, CoreGraphics::PipelineStage toStage, CoreGraphics::BarrierDomain domain, const Util::FixedArray< AccelerationStructureBarrierInfo, true > &accelerationStructures, const IndexT fromQueue=InvalidIndex, const IndexT toQueue=InvalidIndex, const char *name=nullptr)
 Insert pipeline barrier.
 
void CmdBarrier (const CmdBufferId id, CoreGraphics::PipelineStage fromStage, CoreGraphics::PipelineStage toStage, CoreGraphics::BarrierDomain domain, const IndexT fromQueue=InvalidIndex, const IndexT toQueue=InvalidIndex, const char *name=nullptr)
 Insert pipeline barrier.
 
 __ImplementEnumBitOperators (CmdBufferQueryBits)
 
 __ImplementEnumComparisonOperators (CmdBufferQueryBits)
 
 __ImplementEnumBitOperators (CmdPipelineBuildBits)
 
 __ImplementEnumComparisonOperators (CmdPipelineBuildBits)
 
const CmdBufferPoolId CreateCmdBufferPool (const CmdBufferPoolCreateInfo &info)
 create new command buffer pool
 
void DestroyCmdBufferPool (const CmdBufferPoolId pool)
 destroy command buffer pool
 
 _DECL_ACQUIRE_RELEASE (CmdBufferId)
 
const CmdBufferId CreateCmdBuffer (const CmdBufferCreateInfo &info)
 create new command buffer
 
void DestroyCmdBuffer (const CmdBufferId id)
 Destroy the command buffer immediately (use with caution as buffer might be in use by GPU)
 
void DeferredDestroyCmdBuffer (const CmdBufferId id)
 Issue command buffer for deletion (happens when GPU is finished with it)
 
void CmdBeginRecord (const CmdBufferId id, const CmdBufferBeginInfo &info)
 begin recording to command buffer
 
void CmdEndRecord (const CmdBufferId id)
 end recording command buffer, it may be submitted after this is done
 
void CmdReset (const CmdBufferId id, const CmdBufferClearInfo &info)
 clear the command buffer to be empty
 
void CmdSetVertexBuffer (const CmdBufferId id, IndexT streamIndex, const CoreGraphics::BufferId &buffer, SizeT bufferOffset)
 Set vertex buffer.
 
void CmdSetVertexLayout (const CmdBufferId id, const CoreGraphics::VertexLayoutId &vl)
 Set vertex layout.
 
void CmdSetIndexBuffer (const CmdBufferId id, const IndexType::Code indexType, const CoreGraphics::BufferId &buffer, SizeT bufferOffset)
 Set index buffer.
 
void CmdSetPrimitiveTopology (const CmdBufferId id, const CoreGraphics::PrimitiveTopology::Code topo)
 Set the type of topology used.
 
void CmdSetShaderProgram (const CmdBufferId id, const CoreGraphics::ShaderProgramId pro, bool bindGlobals=true)
 Set shader program.
 
void CmdSetResourceTable (const CmdBufferId id, const CoreGraphics::ResourceTableId table, const IndexT slot, CoreGraphics::ShaderPipeline pipeline, const Util::FixedArray< uint > &offsets)
 Set resource table.
 
void CmdSetResourceTable (const CmdBufferId id, const CoreGraphics::ResourceTableId table, const IndexT slot, CoreGraphics::ShaderPipeline pipeline, uint32 numOffsets, uint32 *offsets)
 Set resource table using raw offsets.
 
void CmdPushConstants (const CmdBufferId id, ShaderPipeline pipeline, uint offset, uint size, const void *data)
 Set push constants.
 
void CmdSetGraphicsPipeline (const CmdBufferId id)
 Create (if necessary) and bind pipeline based on state thus far.
 
void CmdSetGraphicsPipeline (const CmdBufferId buf, const PipelineId pipeline)
 Set graphics pipeline directly.
 
void CmdSetRayTracingPipeline (const CmdBufferId buf, const PipelineId pipeline)
 Set ray tracing pipeline.
 
void CmdBarrier (const CmdBufferId id, CoreGraphics::PipelineStage fromStage, CoreGraphics::PipelineStage toStage, CoreGraphics::BarrierDomain domain, const Util::FixedArray< TextureBarrierInfo, true > &textures, const Util::FixedArray< BufferBarrierInfo, true > &buffers, const Util::FixedArray< AccelerationStructureBarrierInfo, true > &accelerationStructures, const IndexT fromQueue=InvalidIndex, const IndexT toQueue=InvalidIndex, const char *name=nullptr)
 Insert pipeline barrier.
 
void CmdHandover (const CmdBufferId from, const CmdBufferId to, CoreGraphics::PipelineStage fromStage, CoreGraphics::PipelineStage toStage, const Util::FixedArray< TextureBarrierInfo, true > &textures, const Util::FixedArray< BufferBarrierInfo, true > &buffers, const IndexT fromQueue=InvalidIndex, const IndexT toQueue=InvalidIndex, const char *name=nullptr)
 Handover.
 
void CmdBarrier (const CmdBufferId id, const CoreGraphics::BarrierId barrier)
 Insert execution barrier.
 
void CmdSignalEvent (const CmdBufferId id, const CoreGraphics::EventId ev, const CoreGraphics::PipelineStage stage)
 Signals an event.
 
void CmdWaitEvent (const CmdBufferId id, const EventId ev, const CoreGraphics::PipelineStage waitStage, const CoreGraphics::PipelineStage signalStage)
 Signals an event.
 
void CmdResetEvent (const CmdBufferId id, const CoreGraphics::EventId ev, const CoreGraphics::PipelineStage stage)
 Signals an event.
 
void CmdBeginPass (const CmdBufferId id, const CoreGraphics::PassId pass)
 Begin pass.
 
void CmdNextSubpass (const CmdBufferId id)
 Progress to next subpass.
 
void CmdEndPass (const CmdBufferId id)
 End pass.
 
void CmdDraw (const CmdBufferId id, const CoreGraphics::PrimitiveGroup &pg)
 Draw primitives.
 
void CmdDraw (const CmdBufferId id, SizeT numInstances, const CoreGraphics::PrimitiveGroup &pg)
 Draw primitives instanced.
 
void CmdDraw (const CmdBufferId id, SizeT numInstances, IndexT baseInstance, const CoreGraphics::PrimitiveGroup &pg)
 Draw primitives instanced with base instance.
 
void CmdDrawIndirect (const CmdBufferId id, const CoreGraphics::BufferId buffer, IndexT bufferOffset, SizeT numDraws, SizeT stride)
 Draw indirect, draws is the amount of draws in the buffer, and stride is the byte offset between each call.
 
void CmdDrawIndirectIndexed (const CmdBufferId id, const CoreGraphics::BufferId buffer, IndexT bufferOffset, SizeT numDraws, SizeT stride)
 Draw indirect, draws is the amount of draws in the buffer, and stride is the byte offset between each call.
 
void CmdDispatch (const CmdBufferId id, int dimX, int dimY, int dimZ)
 Perform computation.
 
void CmdResolve (const CmdBufferId id, const CoreGraphics::TextureId source, const CoreGraphics::TextureCopy sourceCopy, const CoreGraphics::TextureId dest, const CoreGraphics::TextureCopy destCopy)
 Resolve MSAA source to non-MSAA target.
 
void CmdBuildBlas (const CmdBufferId id, const CoreGraphics::BlasId blas)
 Build BLAS.
 
void CmdBuildTlas (const CmdBufferId id, const CoreGraphics::TlasId tlas)
 Build TLAS.
 
void CmdRaysDispatch (const CmdBufferId id, const RayDispatchTable &table, int dimX, int dimY, int dimZ)
 Fire rays.
 
void CmdDrawMeshlets (const CmdBufferId id, int dimX, int dimY, int dimZ)
 Draw meshlets.
 
void CmdCopy (const CmdBufferId id, const CoreGraphics::TextureId fromTexture, const Util::Array< CoreGraphics::TextureCopy, 4 > &from, const CoreGraphics::TextureId toTexture, const Util::Array< CoreGraphics::TextureCopy, 4 > &to)
 Copy between textures.
 
void CmdCopy (const CmdBufferId id, const CoreGraphics::TextureId fromTexture, const Util::Array< CoreGraphics::TextureCopy, 4 > &from, const CoreGraphics::BufferId toBuffer, const Util::Array< CoreGraphics::BufferCopy, 4 > &to)
 Copy from texture to buffer.
 
void CmdCopy (const CmdBufferId id, const CoreGraphics::BufferId fromBuffer, const Util::Array< CoreGraphics::BufferCopy, 4 > &from, const CoreGraphics::BufferId toBuffer, const Util::Array< CoreGraphics::BufferCopy, 4 > &to, const SizeT size)
 Copy between buffers.
 
void CmdCopy (const CmdBufferId id, const CoreGraphics::BufferId fromBuffer, const Util::Array< CoreGraphics::BufferCopy, 4 > &from, const CoreGraphics::TextureId toTexture, const Util::Array< CoreGraphics::TextureCopy, 4 > &to)
 Copy from buffer to texture.
 
void CmdBlit (const CmdBufferId id, const CoreGraphics::TextureId fromTexture, const CoreGraphics::TextureCopy &from, const CoreGraphics::TextureId toTexture, const CoreGraphics::TextureCopy &to)
 Blit textures.
 
void CmdSetViewports (const CmdBufferId id, const Util::FixedArray< Math::rectangle< int > > &viewports)
 Set viewport array.
 
void CmdSetScissors (const CmdBufferId id, const Util::FixedArray< Math::rectangle< int > > &rects)
 Set scissor array.
 
void CmdSetViewport (const CmdBufferId id, const Math::rectangle< int > &rect, int index)
 Sets a viewport for a certain index.
 
void CmdSetScissorRect (const CmdBufferId id, const Math::rectangle< int > &rect, int index)
 Sets a scissor rect for a certain index.
 
void CmdSetStencilRef (const CmdBufferId id, const uint frontRef, const uint backRef)
 Set the stencil reference values.
 
void CmdSetStencilReadMask (const CmdBufferId id, const uint readMask)
 Set the stencil read mask (compare mask(.
 
void CmdSetStencilWriteMask (const CmdBufferId id, const uint writeMask)
 Set the stencil write mask.
 
void CmdUpdateBuffer (const CmdBufferId id, const CoreGraphics::BufferId buffer, uint offset, uint size, const void *data)
 Update buffer using memory pointer in command buffer.
 
void CmdStartOcclusionQueries (const CmdBufferId id)
 Start occlusion queries.
 
void CmdEndOcclusionQueries (const CmdBufferId id)
 End occlusion queries.
 
void CmdStartPipelineQueries (const CmdBufferId id)
 Start pipeline statistics.
 
void CmdEndPipelineQueries (const CmdBufferId id)
 End pipeline statistics.
 
void CmdFinishQueries (const CmdBufferId id)
 Finish queries.
 
 __ImplementEnumBitOperators (CoreGraphics::ShaderVisibility)
 
 __ImplementEnumBitOperators (CoreGraphics::ImageBits)
 
 __ImplementEnumComparisonOperators (CoreGraphics::ImageBits)
 
ShaderVisibility ShaderVisibilityFromString (const Util::String &str)
 
QueueType QueueTypeFromString (const Util::String &str)
 
const char * QueueNameFromQueueType (const QueueType type)
 
 __ImplementEnumBitOperators (PipelineStage)
 
PipelineStage PipelineStageFromString (const Util::String &str)
 
bool PipelineStageWrites (const PipelineStage stage)
 
 __ImplementClass (CoreGraphics::DisplayEventHandler, 'DSEH', Core::RefCounted)
 
DrawThreadCreateDrawThread ()
 create new draw thread, define in implementation thread
 
EventId CreateEvent (const EventCreateInfo &info)
 create new event
 
void DestroyEvent (const EventId id)
 destroy even
 
void EventSignal (const EventId id, const CoreGraphics::CmdBufferId buf, const CoreGraphics::PipelineStage stage)
 insert event in command buffer to be signaled
 
void EventWait (const EventId id, const CoreGraphics::QueueType queue, const CoreGraphics::PipelineStage waitStage, const CoreGraphics::PipelineStage signalStage)
 insert event in queue to wait for
 
void EventWait (const EventId id, const CoreGraphics::CmdBufferId buf, const CoreGraphics::PipelineStage waitStage, const CoreGraphics::PipelineStage signalStage)
 insert event in command buffer to wait for
 
void EventReset (const EventId id, const CoreGraphics::CmdBufferId buf, const CoreGraphics::PipelineStage stage)
 insert reset event
 
void EventWaitAndReset (const EventId id, const CoreGraphics::CmdBufferId buf, const CoreGraphics::PipelineStage waitStage, const CoreGraphics::PipelineStage signalStage)
 insert both a wait and reset
 
bool EventPoll (const EventId id)
 get event status on host
 
void EventHostReset (const EventId id)
 unset event on host
 
void EventHostSignal (const EventId id)
 signal event on host
 
void EventHostWait (const EventId id)
 wait for event to be signaled on host
 
FenceId CreateFence (const FenceCreateInfo &info)
 create a new fence
 
void DestroyFence (const FenceId id)
 destroy a fence
 
bool FencePeek (const FenceId id)
 peek fence status
 
bool FenceReset (const FenceId id)
 reset fence status
 
bool FenceWait (const FenceId id, const uint64 time)
 wait for fence
 
bool FenceWaitAndReset (const FenceId id, const uint64 time)
 wait for fence and reset
 
const WindowId CreateWindow (const WindowCreateInfo &info)
 create new window
 
const WindowId EmbedWindow (const Util::Blob &windowData)
 embed window in another window
 
void DestroyWindow (const WindowId id)
 destroy window
 
void WindowResize (const WindowId id, SizeT newWidth, SizeT newHeight)
 resize window
 
void WindowSetTitle (const WindowId id, const Util::String &title)
 set title for window
 
void WindowApplyFullscreen (const WindowId id, Adapter::Code monitor, bool b)
 toggle fullscreen
 
void WindowSetCursorVisible (const WindowId id, bool b)
 set if the cursor should be visible
 
void WindowSetCursorLocked (const WindowId id, bool b)
 set if the cursor should be locked to the window
 
void WindowMakeCurrent (const WindowId id)
 make window 'current'
 
void WindowPresent (const WindowId id, const IndexT frameIndex)
 present window
 
void WindowPollEvents ()
 poll events for window
 
void WindowNewFrame (const WindowId id)
 Do new frame stuff for window.
 
const CoreGraphics::DisplayMode WindowGetDisplayMode (const WindowId id)
 get display mode from window
 
const CoreGraphics::AntiAliasQuality::Code WindowGetAAQuality (const WindowId id)
 get display antialias quality
 
const bool WindowIsFullscreen (const WindowId id)
 get if fullscreen
 
const bool WindowIsDecorated (const WindowId id)
 get if window is modal
 
const bool WindowIsResizable (const WindowId id)
 get if we are allowed to switch the display mode
 
const Util::StringAtomWindowGetTitle (const WindowId id)
 get window title
 
const Util::StringAtomWindowGetIcon (const WindowId id)
 get window icon
 
const CoreGraphics::SwapchainId WindowGetSwapchain (const WindowId id)
 Get swapchain associated with this window.
 
bool CreateGraphicsDevice (const GraphicsDeviceCreateInfo &info)
 create graphics device
 
void DestroyGraphicsDevice ()
 destroy graphics device
 
SizeT GetNumBufferedFrames ()
 get number of buffered frames
 
IndexT GetBufferedFrameIndex ()
 get current frame index, which is between 0 and GetNumBufferedFrames
 
void AttachEventHandler (const Ptr< CoreGraphics::RenderEventHandler > &h)
 attach a render event handler
 
void RemoveEventHandler (const Ptr< CoreGraphics::RenderEventHandler > &h)
 remove a render event handler
 
bool NotifyEventHandlers (const CoreGraphics::RenderEvent &e)
 notify event handlers about an event
 
void AddBackBufferTexture (const CoreGraphics::TextureId tex)
 add a render texture used by the back buffer
 
void RemoveBackBufferTexture (const CoreGraphics::TextureId tex)
 remove a render texture
 
const CoreGraphics::CmdBufferId LockTransferSetupCommandBuffer ()
 Lock resource command buffer.
 
void UnlockTransferSetupCommandBuffer (CoreGraphics::CmdBufferId cmdBuf)
 Release lock on resource command buffer.
 
const CoreGraphics::CmdBufferId LockGraphicsSetupCommandBuffer (const char *name=nullptr)
 Lock immediate graphics command buffer.
 
void UnlockGraphicsSetupCommandBuffer (CoreGraphics::CmdBufferId cmdBuf)
 Release lock on immediate graphics command buffer.
 
const CoreGraphics::CmdBufferId LockTransferHandoverSetupCommandBuffer ()
 Lock handover transfer command buffer.
 
void UnlockTransferHandoverSetupCommandBuffer (CoreGraphics::CmdBufferId cmdBuf)
 Release lock on handover command buffer.
 
bool PollSubmissionIndex (const CoreGraphics::QueueType queue, uint64 index)
 Poll a submission for completion.
 
SubmissionWaitEvent SubmitCommandBuffers (const Util::Array< CoreGraphics::CmdBufferId, 8 > &cmds, CoreGraphics::QueueType type, Util::Array< CoreGraphics::SubmissionWaitEvent, 8 > waitEvents=nullptr)
 Submit a command buffer, but doesn't necessarily execute it immediately.
 
void SubmitImmediateCommandBuffers ()
 Submit immediate command buffers.
 
void UnlockConstantUpdates ()
 Unlock constants.
 
template<class TYPE >
uint SetConstants (const TYPE &data)
 Allocate range of memory and set data, return offset (thread safe)
 
template<class TYPE >
uint SetConstants (const TYPE *data, SizeT elements)
 Allocate range of memory and set data as an array of elements, return offset (thread safe)
 
template<class TYPE >
void SetConstants (ConstantBufferOffset offset, const TYPE &data)
 Set constants based on pre-allocated memory (thread safe)
 
template<class TYPE >
void SetConstants (ConstantBufferOffset offset, const TYPE *data, SizeT numElements)
 Set constants based on pre-allocated memory (thread safe)
 
void LockConstantUpdates ()
 Lock constant updates.
 
void SetConstantsInternal (ConstantBufferOffset offset, const void *data, SizeT size)
 Use pre-allocated range of memory to update graphics constants.
 
ConstantBufferOffset AllocateConstantBufferMemory (uint size)
 Reserve range of constant buffer memory and return offset.
 
CoreGraphics::BufferId GetConstantBuffer (IndexT i)
 return id to global graphics constant buffer
 
const VertexAlloc AllocateVertices (const SizeT numVertices, const SizeT vertexSize)
 Allocate vertices from the global vertex pool.
 
const VertexAlloc AllocateVertices (const SizeT bytes)
 Allocate vertices from the global vertex pool by bytes.
 
void DeallocateVertices (const VertexAlloc &alloc)
 Deallocate vertices.
 
const CoreGraphics::BufferId GetVertexBuffer ()
 Get vertex buffer.
 
const VertexAlloc AllocateIndices (const SizeT numIndices, const IndexType::Code indexType)
 Allocate indices from the global index pool.
 
const VertexAlloc AllocateIndices (const SizeT bytes)
 Allocate indices from the global index pool by bytes.
 
void DeallocateIndices (const VertexAlloc &alloc)
 Deallocate indices.
 
const CoreGraphics::BufferId GetIndexBuffer ()
 Get index buffer.
 
Util::Pair< Memory::RangeAllocation, CoreGraphics::BufferIdAllocateUpload (const SizeT numBytes, const SizeT alignment=1)
 Allocate upload memory.
 
template<class TYPE >
Util::Pair< Memory::RangeAllocation, CoreGraphics::BufferIdUpload (const TYPE &data, const SizeT alignment=1)
 Upload single item to GPU source buffer.
 
template<class TYPE >
Util::Pair< Memory::RangeAllocation, CoreGraphics::BufferIdUploadArray (const TYPE *data, SizeT elements, const SizeT alignment=1)
 Upload array of items to GPU source buffer.
 
template<class TYPE >
void Upload (const CoreGraphics::BufferId buffer, uint offset, const TYPE &data)
 Upload item to GPU source buffer with preallocated memory.
 
template<class TYPE >
void Upload (const CoreGraphics::BufferId buffer, uint offset, const TYPE *data, SizeT elements)
 Upload array of items GPU source buffer with preallocated memory.
 
void UploadInternal (const CoreGraphics::BufferId buffer, uint offset, const void *data, SizeT size)
 Upload memory to upload buffer with given offset, return offset.
 
void FreeUploads (const Util::Array< Memory::RangeAllocation > &allocations)
 Free upload allocations directly.
 
void FlushUploads (const Util::Array< Memory::RangeAllocation > &allocations)
 Flush upload allocations directly.
 
void EnqueueUploadsFlushAndFree (const Util::Array< Memory::RangeAllocation > &allocations)
 Queue uploads to flush and free at immediate submit.
 
void ReloadShaderProgram (const CoreGraphics::ShaderProgramId &pro)
 trigger reloading a shader
 
void WaitForQueue (CoreGraphics::QueueType queue)
 wait for an individual queue to finish
 
void WaitAndClearPendingCommands ()
 wait for all queues to finish
 
void DelayedDeleteBuffer (const CoreGraphics::BufferId id)
 Add buffer to delete queue.
 
void DelayedDeleteTexture (const CoreGraphics::TextureId id)
 Add texture to delete queue.
 
void DelayedDeleteTextureView (const CoreGraphics::TextureViewId id)
 Add texture view to delete queue.
 
void DelayedDeleteCommandBuffer (const CoreGraphics::CmdBufferId id)
 Add command buffer to late deletion.
 
void DelayedFreeMemory (const CoreGraphics::Alloc alloc)
 Add memory allocation to delete queue.
 
void DelayedDeleteDescriptorSet (const CoreGraphics::ResourceTableId id)
 Add a descriptor set to delete queue.
 
void DelayedDeletePass (const CoreGraphics::PassId id)
 Add a pass to delayed delete.
 
void DelayedDeleteBlas (const CoreGraphics::BlasId id)
 Add a blas for delayed delete.
 
void DelayedDeleteTlas (const CoreGraphics::TlasId id)
 Add a tlas for delayed delete.
 
uint AllocateQueries (const CoreGraphics::QueryType type, uint numQueries)
 Allocate a range of queries.
 
void FinishQueries (const CoreGraphics::CmdBufferId cmdBuf, const CoreGraphics::QueryType type, IndexT *starts, SizeT *counts, SizeT numCopies)
 Copy query results to buffer.
 
IndexT GetQueueIndex (const QueueType queue)
 Get queue index.
 
const Util::Set< uint32_t > & GetQueueIndices ()
 Get queue indices.
 
void FinishFrame (IndexT frameIndex)
 Finish current frame.
 
void NewFrame ()
 Progress to next frame.
 
CoreGraphics::ImageFileFormat::Code SaveScreenshot (CoreGraphics::ImageFileFormat::Code fmt, const Ptr< IO::Stream > &outStream)
 save a screenshot to the provided stream
 
CoreGraphics::ImageFileFormat::Code SaveScreenshot (CoreGraphics::ImageFileFormat::Code fmt, const Ptr< IO::Stream > &outStream, const Math::rectangle< int > &rect, int x, int y)
 save a region of the screen to the provided stream
 
bool GetVisualizeMipMaps ()
 get visualization of mipmaps flag

 
void SetVisualizeMipMaps (bool val)
 set visualization of mipmaps flag

 
bool GetRenderWireframe ()
 get the render as wireframe flag
 
void SetRenderWireframe (bool b)
 set the render as wireframe flag
 
template<class TYPE >
ConstantBufferOffset SetConstants (const TYPE &data)
 Allocate range of memory and set data, return offset (thread safe)
 
template<class TYPE >
ConstantBufferOffset SetConstants (const TYPE *data, SizeT numElements)
 Allocate range of memory and set data as an array of elements, return offset (thread safe)
 
template<>
Util::Pair< Memory::RangeAllocation, CoreGraphics::BufferIdUploadArray (const void *data, SizeT numBytes, SizeT alignment)
 
ImageId CreateImage (const ImageCreateInfoFile &info)
 create image from file path
 
ImageId CreateImage (const ImageCreateInfoData &info)
 create image from data buffer
 
void DestroyImage (const ImageId id)
 destroy image
 
ImageDimensions ImageGetDimensions (const ImageId id)
 get image dimensions
 
const byte * ImageGetBuffer (const ImageId id)
 get pointer to buffer
 
const byte * ImageGetRedPtr (const ImageId id)
 get pointer to first element of red channel
 
const byte * ImageGetGreenPtr (const ImageId id)
 get pointer to first element of green channel
 
const byte * ImageGetBluePtr (const ImageId id)
 get pointer to first element of blue channel
 
const byte * ImageGetAlphaPtr (const ImageId id)
 get pointer to first element if alpha channel
 
const SizeT ImageGetPixelStride (const ImageId id)
 get pixel stride, using the above pointers makes it possible to get all reds, blues, greens, etc.
 
ImageChannelPrimitive ImageGetChannelPrimitive (const ImageId id)
 get channel primitive
 
void SetupMemoryPools (DeviceSize deviceLocalMemory, DeviceSize hostLocalMemory, DeviceSize hostToDeviceMemory, DeviceSize deviceToHostMemory)
 setup memory pools
 
void DiscardMemoryPools (VkDevice dev)
 discard memory pools
 
void FreeMemory (const CoreGraphics::Alloc &alloc)
 free memory
 
void * GetMappedMemory (const CoreGraphics::Alloc &alloc)
 get mapped memory pointer
 
 _IMPL_ACQUIRE_RELEASE (MeshId, meshAllocator)
 
const MeshId CreateMesh (const MeshCreateInfo &info)
 create new mesh
 
void DestroyMesh (const MeshId id)
 destroy mesh
 
const Util::Array< CoreGraphics::PrimitiveGroup > & MeshGetPrimitiveGroups (const MeshId id)
 get number of primitive groups
 
const CoreGraphics::PrimitiveGroup MeshGetPrimitiveGroup (const MeshId id, const IndexT group)
 get primitive group
 
const BufferId MeshGetVertexBuffer (const MeshId id, const IndexT stream)
 get vertex buffer
 
const void MeshSetVertexBuffer (const MeshId id, const BufferId buffer, const IndexT stream)
 Set vertex buffer.
 
const uint MeshGetVertexOffset (const MeshId id, const IndexT stream)
 Get mesh vertex offset.
 
const BufferId MeshGetIndexBuffer (const MeshId id)
 get index buffer
 
const uint MeshGetIndexOffset (const MeshId id)
 Get index buffer base offset.
 
const IndexType::Code MeshGetIndexType (const MeshId id)
 Get index type.
 
const CoreGraphics::PrimitiveTopology::Code MeshGetTopology (const MeshId id)
 Get topology.
 
const CoreGraphics::VertexLayoutId MeshGetVertexLayout (const MeshId id)
 Get vertex layout.
 
const void MeshBind (const MeshId id, const CoreGraphics::CmdBufferId cmd)
 Bind mesh on command buffer.
 
 _DECL_ACQUIRE_RELEASE (MeshId)
 
 __ImplementClass (CoreGraphics::MeshLoader, 'VKML', Resources::ResourceLoader)
 
const MeshId MeshResourceGetMesh (const MeshResourceId id, const IndexT index)
 Get mesh.
 
const SizeT MeshResourceGetNumMeshes (const MeshResourceId id)
 Get number of meshes.
 
void DestroyMeshResource (const MeshResourceId id)
 Destroy.
 
 __ImplementClass (CoreGraphics::Nvx3StreamReader, 'N3SR', IO::StreamReader)
 
 __ImplementEnumBitOperators (AttachmentFlagBits)
 
 __ImplementEnumComparisonOperators (AttachmentFlagBits)
 
static AttachmentFlagBits AttachmentFlagsFromString (const Util::String &string)
 
const PassId CreatePass (const PassCreateInfo &info)
 create pass
 
void DestroyPass (const PassId id)
 discard pass
 
void PassWindowResizeCallback (const PassId id)
 called when window is resized
 
void PassSetRenderTargetParameters (const PassId id, const Util::FixedArray< Shared::RenderTargetParameters > &viewports)
 Set viewports.
 
const Util::Array< CoreGraphics::TextureViewId > & PassGetAttachments (const CoreGraphics::PassId id)
 get number of color attachments for entire pass (attachment list)
 
const uint32_t PassGetNumSubpassAttachments (const CoreGraphics::PassId id, const IndexT subpass)
 get number of color attachments for a subpass
 
const CoreGraphics::ResourceTableId PassGetResourceTable (const CoreGraphics::PassId id)
 Get pass resource table.
 
const Util::StringAtom PassGetName (const CoreGraphics::PassId id)
 get name
 
PipelineId CreateGraphicsPipeline (const PipelineCreateInfo &info)
 Create new pipeline.
 
void DestroyGraphicsPipeline (const PipelineId pipeline)
 Destroy pipeline.
 
const PipelineRayTracingTable CreateRaytracingPipeline (const Util::Array< CoreGraphics::ShaderProgramId > programs)
 Create raytacing pipeline using multiple shader programs.
 
void DestroyRaytracingPipeline (const PipelineRayTracingTable &table)
 Destroy raytracing pipeline.
 
 __ImplementClass (CoreGraphics::RenderEventHandler, 'RDEH', Core::RefCounted)
 
ResourceTableLayoutId CreateResourceTableLayout (const ResourceTableLayoutCreateInfo &info)
 create resource table layout
 
void DestroyResourceTableLayout (const ResourceTableLayoutId &id)
 destroy resource table layout
 
ResourceTableId CreateResourceTable (const ResourceTableCreateInfo &info)
 create resource table
 
void DestroyResourceTable (const ResourceTableId id)
 destroy resource table
 
const ResourceTableLayoutIdResourceTableGetLayout (CoreGraphics::ResourceTableId id)
 Get resource table layout.
 
void ResourceTableSetTexture (const ResourceTableId id, const ResourceTableTexture &tex)
 set resource table texture
 
void ResourceTableSetTexture (const ResourceTableId id, const ResourceTableTextureView &tex)
 set resource table texture
 
void ResourceTableSetInputAttachment (const ResourceTableId id, const ResourceTableInputAttachment &tex)
 set resource table input attachment
 
void ResourceTableSetRWTexture (const ResourceTableId id, const ResourceTableTexture &tex)
 set resource table texture as read-write
 
void ResourceTableSetRWTexture (const ResourceTableId id, const ResourceTableTextureView &tex)
 set resource table texture as read-write
 
void ResourceTableSetConstantBuffer (const ResourceTableId id, const ResourceTableBuffer &buf)
 set resource table constant buffer
 
void ResourceTableSetRWBuffer (const ResourceTableId id, const ResourceTableBuffer &buf)
 set resource table shader rw buffer
 
void ResourceTableSetSampler (const ResourceTableId id, const ResourceTableSampler &samp)
 set resource table sampler
 
void ResourceTableSetAccelerationStructure (const ResourceTableId id, const ResourceTableTlas &tlas)
 Set resource table acceleration structure.
 
void 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 ResourceTableBlock (bool b)
 disallow the resource table system to make modifications
 
void ResourceTableCommitChanges (const ResourceTableId id)
 apply updates of previous sets
 
ResourcePipelineId CreateResourcePipeline (const ResourcePipelineCreateInfo &info)
 create resource pipeline
 
void DestroyResourcePipeline (const ResourcePipelineId &id)
 destroy resource pipeline
 
SamplerId CreateSampler (const SamplerCreateInfo &info)
 create sampler
 
void DestroySampler (const SamplerId &id)
 destroy sampler
 
SemaphoreId CreateSemaphore (const SemaphoreCreateInfo &info)
 create semaphore
 
void DestroySemaphore (const SemaphoreId &semaphore)
 destroy semaphore
 
uint64 SemaphoreGetValue (const SemaphoreId &semaphore)
 get semaphore index
 
void SemaphoreSignal (const SemaphoreId &semaphore)
 signal semaphore
 
void SemaphoreReset (const SemaphoreId &semaphore)
 reset semaphore
 
const ShaderId ShaderGet (const Resources::ResourceName &name)
 get shader by name
 
CoreGraphics::ShaderFeature::Mask ShaderFeatureMask (const Util::String &mask)
 Get shader feature mask from string.
 
const Util::String ConstantTypeToString (const ShaderConstantType &type)
 Get constant type as string.
 
 ID_24_8_24_8_NAMED_TYPE (ShaderProgramId, programId, programGeneration, shaderId, shaderGeneration, program, shader)
 
const ShaderId CreateShader (const ShaderCreateInfo &info)
 Create new shader.
 
void DestroyShader (const ShaderId id)
 Destroy shader.
 
void ReloadShader (const ShaderId id, const AnyFX::ShaderEffect *effect)
 Reload shader.
 
const ResourceTableId ShaderCreateResourceTable (const ShaderId id, const IndexT group, const uint overallocationSize=1)
 create resource table from shader
 
ResourceTableSet ShaderCreateResourceTableSet (const ShaderId id, const IndexT group, const uint overallocationSize=1)
 create resource table set from shader
 
const bool ShaderHasResourceTable (const ShaderId id, const IndexT group)
 Returns true if there is a resource table for the given group in the shader.
 
const BufferId ShaderCreateConstantBuffer (const ShaderId id, const Util::StringAtom &name, BufferAccessMode mode=BufferAccessMode::HostCached)
 create constant buffer from shader using name (don't use too frequently)
 
const BufferId ShaderCreateConstantBuffer (const ShaderId id, const IndexT cbIndex, BufferAccessMode mode=BufferAccessMode::HostCached)
 create constant buffer from index
 
const BufferId ShaderCreateConstantBuffer (const ShaderId id, const IndexT group, const IndexT cbIndex, BufferAccessMode mode=BufferAccessMode::HostCached)
 create constant buffer from index
 
const uint ShaderCalculateConstantBufferIndex (const uint64 bindingMask, const IndexT slot)
 Calculate buffer index using binding mask and slot.
 
const Resources::ResourceName ShaderGetName (const ShaderId id)
 Get name of shader.
 
const SizeT ShaderGetConstantCount (const ShaderId id)
 get the number of constants from shader
 
const ShaderConstantType ShaderGetConstantType (const ShaderId id, const IndexT i)
 get type of variable by index
 
const ShaderConstantType ShaderGetConstantType (const ShaderId id, const Util::StringAtom &name)
 get type of variable by index
 
const Util::StringAtom ShaderGetConstantName (const ShaderId id, const IndexT i)
 get name of variable by index
 
const IndexT ShaderGetConstantBinding (const ShaderId id, const Util::StringAtom &name)
 get constant buffer binding by name
 
const IndexT ShaderGetConstantBinding (const ShaderId id, const IndexT cIndex)
 get constant buffer binding by index
 
const Util::StringAtom ShaderGetConstantBlockName (const ShaderId id, const Util::StringAtom &name)
 get name of constant buffer wherein constant with name resides
 
const Util::StringAtom ShaderGetConstantBlockName (const ShaderId id, const IndexT cIndex)
 get name of constant buffer where in constant with index resides
 
const SizeT ShaderGetConstantBindingsCount (const ShaderId id)
 get count of constant buffer bindings (for iteration)
 
const IndexT ShaderGetConstantGroup (const ShaderId id, const Util::StringAtom &name)
 get group to which constant is bound (the constant buffer which it resides in)
 
const IndexT ShaderGetConstantSlot (const ShaderId id, const Util::StringAtom &name)
 get binding inside group of the constant buffer the constant lies in
 
CoreGraphics::ResourceTableLayoutId ShaderGetResourceTableLayout (const ShaderId id, const IndexT group)
 get resource table layout
 
CoreGraphics::ResourcePipelineId ShaderGetResourcePipeline (const ShaderId id)
 get pipeline layout for shader
 
const SizeT ShaderGetConstantBufferCount (const ShaderId id)
 get the number of constant buffers from shader
 
const SizeT ShaderGetConstantBufferSize (const ShaderId id, const IndexT i)
 get size of constant buffer
 
const Util::StringAtom ShaderGetConstantBufferName (const ShaderId id, const IndexT i)
 get name of constant buffer
 
const IndexT ShaderGetConstantBufferResourceSlot (const ShaderId id, const IndexT i)
 get binding inside group of constant buffer
 
const IndexT ShaderGetConstantBufferResourceGroup (const ShaderId id, const IndexT i)
 get group of constant buffer
 
const uint64 ShaderGetConstantBufferBindingMask (const ShaderId id, const IndexT group)
 Get mask of constant buffers.
 
const uint64 ShaderGetConstantBufferSize (const ShaderId id, const IndexT group, const IndexT i)
 Get size of constant buffer at binding point.
 
const IndexT ShaderGetResourceSlot (const ShaderId id, const Util::StringAtom &name)
 get slot of any shader resource
 
const Util::Dictionary< ShaderFeature::Mask, ShaderProgramId > & ShaderGetPrograms (const ShaderId id)
 get programs
 
const Util::StringAtom ShaderProgramGetName (const ShaderProgramId id)
 get name of program
 
const CoreGraphics::ShaderProgramId ShaderGetProgram (const ShaderId id, const CoreGraphics::ShaderFeature::Mask mask)
 get shader program id from masks, this allows us to apply a shader program directly in the future
 
RayTracingBits ShaderProgramGetRaytracingBits (const ShaderProgramId id)
 
 __ImplementClass (CoreGraphics::ShaderLoader, 'VKSL', Resources::ResourceLoader)
 
 __ImplementSingleton (CoreGraphics::ShapeRenderer)
 
SparseBufferId CreateSparseBuffer (const SparseBufferCreateInfo &info)
 create sparse buffer
 
void DestroySparseBuffer (const SparseBufferId id)
 destroy sparse buffers
 
bool SaveTexture (const Resources::ResourceId &id, const IO::URI &path, IndexT mip, CoreGraphics::ImageFileFormat::Code code)
 Save texture to path with wanted image format, and select mip map.
 
bool SaveTexture (const Resources::ResourceId &id, const Ptr< IO::Stream > &stream, IndexT mip, CoreGraphics::ImageFileFormat::Code code)
 
SwapchainId CreateSwapchain (const SwapchainCreateInfo &info)
 Create swapchain.
 
void DestroySwapchain (const SwapchainId id)
 Destroy swapchain.
 
void SwapchainSwap (const SwapchainId id)
 Swap buffers.
 
CoreGraphics::QueueType SwapchainGetQueueType (const SwapchainId id)
 Get queue to use for swapchain.
 
CoreGraphics::CmdBufferId SwapchainAllocateCmds (const SwapchainId id)
 Allocate command buffer for swapchain operations.
 
void SwapchainCopy (const SwapchainId id, const CoreGraphics::CmdBufferId cmdBuf, const CoreGraphics::TextureId source)
 Copy to current backbuffer (call after swap)
 
void SwapchainPresent (const SwapchainId id)
 Present.
 
 __ImplementSingleton (CoreGraphics::TextRenderer)
 
void TextureGenerateMipmaps (const CoreGraphics::CmdBufferId cmdBuf, const TextureId id)
 generate mipmaps for texture
 
bool TextureUpdate (const CoreGraphics::CmdBufferId cmd, CoreGraphics::TextureId tex, const SizeT width, SizeT height, SizeT mip, SizeT layer, const void *data, SizeT dataSize)
 Update texture from data buffer, returns true if there is enough upload heap space.
 
TextureCreateInfoAdjusted TextureGetAdjustedInfo (const TextureCreateInfo &info)
 helper function to setup RenderTextureInfo, already implemented
 
const Util::Array< CoreGraphics::TextureId > & TextureGetCreated ()
 
 _DECL_ACQUIRE_RELEASE (TextureId)
 
 __ImplementEnumBitOperators (CoreGraphics::TextureUsage)
 
const TextureId CreateTexture (const TextureCreateInfo &info)
 create new vertex buffer with intended usage, access and CPU syncing parameters, together with size of buffer
 
void DestroyTexture (const TextureId id)
 destroy vertex buffer
 
Util::StringAtom TextureGetName (const TextureId id)
 Get name of texture.
 
TextureDimensions TextureGetDimensions (const TextureId id)
 get texture dimensions
 
TextureRelativeDimensions TextureGetRelativeDimensions (const TextureId id)
 get texture relative dimensions
 
CoreGraphics::PixelFormat::Code TextureGetPixelFormat (const TextureId id)
 get texture pixel format
 
TextureType TextureGetType (const TextureId id)
 get texture type
 
SizeT TextureGetNumMips (const TextureId id)
 get number of mips
 
SizeT TextureGetNumLayers (const TextureId id)
 get number of layers
 
SizeT TextureGetNumSamples (const TextureId id)
 get sample count
 
const CoreGraphics::TextureId TextureGetAlias (const TextureId id)
 get texture alias, returns invalid id if not aliased
 
const CoreGraphics::TextureUsage TextureGetUsage (const TextureId id)
 get texture usage
 
const CoreGraphics::ImageLayout TextureGetDefaultLayout (const TextureId id)
 get default texture layout
 
uint TextureGetBindlessHandle (const TextureId id)
 get bindless texture handle
 
uint TextureGetStencilBindlessHandle (const TextureId id)
 get bindless texture handle
 
void TextureWindowResized (const TextureId id)
 If texture is bound to the window resolution, reset the internal texture without mucking with the texture id.
 
TextureSparsePageSize TextureSparseGetPageSize (const CoreGraphics::TextureId id)
 get the texture page size, which is constant for the whole texture
 
IndexT TextureSparseGetPageIndex (const CoreGraphics::TextureId id, IndexT layer, IndexT mip, IndexT x, IndexT y, IndexT z)
 get the page index at a given coordinate
 
const TextureSparsePageTextureSparseGetPage (const CoreGraphics::TextureId id, IndexT layer, IndexT mip, IndexT pageIndex)
 get texture page
 
SizeT TextureSparseGetNumPages (const CoreGraphics::TextureId id, IndexT layer, IndexT mip)
 get the number of pages for a given layer and mip
 
IndexT TextureSparseGetMaxMip (const CoreGraphics::TextureId id)
 get highest sparse mip
 
void TextureSparseEvict (const CoreGraphics::TextureId id, IndexT layer, IndexT mip, IndexT pageIndex)
 evict a page
 
void TextureSparseMakeResident (const CoreGraphics::TextureId id, IndexT layer, IndexT mip, IndexT pageIndex)
 make a page resident
 
void TextureSparseEvictMip (const CoreGraphics::TextureId id, IndexT layer, IndexT mip)
 evict a whole mip
 
void TextureSparseMakeMipResident (const CoreGraphics::TextureId id, IndexT layer, IndexT mip)
 make a whole mip resident
 
void TextureSparseCommitChanges (const CoreGraphics::TextureId id)
 commit texture sparse page updates
 
void TextureClearColor (const CoreGraphics::CmdBufferId cmd, const CoreGraphics::TextureId id, Math::vec4 color, const CoreGraphics::ImageLayout layout, const CoreGraphics::TextureSubresourceInfo &subres)
 clear texture with color
 
void TextureClearDepthStencil (const CoreGraphics::CmdBufferId cmd, const CoreGraphics::TextureId id, float depth, uint stencil, const CoreGraphics::ImageLayout layout, const CoreGraphics::TextureSubresourceInfo &subres)
 clear texture with depth-stencil
 
void TextureSetHighestLod (const CoreGraphics::TextureId id, uint lod)
 Set highest LOD on texture.
 
TextureType TextureTypeFromString (const Util::String &string)
 
TextureUsage TextureUsageFromString (const Util::String &string)
 
 __ImplementClass (CoreGraphics::TextureLoader, 'TXLO', Resources::ResourceLoader)
 
bool UploadToTexture (const CoreGraphics::TextureId texture, const CoreGraphics::CmdBufferId cmdBuf, gliml::context &ctx, uchar layer, uint mip, Memory::RangeAllocation &outAlloc)
 Attempt to upload texture data to GPU memory May fail if the upload buffer is full, in which case the function returns false.
 
uint LoadMips (CoreGraphics::CmdBufferId cmdBuf, TextureStreamData *streamData, uint bitsToLoad, const CoreGraphics::TextureId texture, Util::Array< Memory::RangeAllocation > &rangesToFlush)
 
void FinishMips (CoreGraphics::CmdBufferId transferCommands, CoreGraphics::CmdBufferId handoverCommands, TextureStreamData *streamData, uint mipBits, const CoreGraphics::TextureId texture, const char *name)
 
TextureViewId CreateTextureView (const TextureViewCreateInfo &info)
 create texture view
 
void DestroyTextureView (const TextureViewId id)
 destroy texture view
 
void TextureViewReload (const TextureViewId id)
 reload texture view by creating a new backend view with the old texture (assuming it's changed)
 
TextureId TextureViewGetTexture (const TextureViewId id)
 get texture
 
 __ImplementClass (CoreGraphics::ThreadSafeDisplayEventHandler, 'TDEH', CoreGraphics::DisplayEventHandler)
 
 __ImplementClass (CoreGraphics::ThreadSafeRenderEventHandler, 'TREH', CoreGraphics::RenderEventHandler)
 
void DestroyVertexLayout (const VertexLayoutId id)
 destroy vertex layout
 
const SizeT VertexLayoutGetSize (const VertexLayoutId id)
 Get byte size.
 
const SizeT VertexLayoutGetStreamSize (const VertexLayoutId id, IndexT stream)
 Get byte size per stream.
 
const Util::Array< VertexComponent > & VertexLayoutGetComponents (const VertexLayoutId id)
 get components
 
const Util::StringAtomVertexLayoutGetName (const VertexLayoutId id)
 Get name.
 
 _IMPL_ACQUIRE_RELEASE (BlasInstanceId, Vulkan::blasInstanceAllocator)
 
 _IMPL_ACQUIRE_RELEASE (BlasId, Vulkan::blasAllocator)
 
 _IMPL_ACQUIRE_RELEASE (BufferId, bufferAllocator)
 
 _IMPL_ACQUIRE_RELEASE (CmdBufferId, commandBuffers)
 
void CmdSetIndexBuffer (const CmdBufferId id, const CoreGraphics::BufferId &buffer, CoreGraphics::IndexType::Code indexSize, SizeT bufferOffset)
 
void CmdPushGraphicsConstants (const CmdBufferId id, uint offset, uint size, const void *data)
 
void CmdPushComputeConstants (const CmdBufferId id, uint offset, uint size, const void *data)
 
 N_DECLARE_COUNTER (N_CONSTANT_MEMORY, Graphics Constant Memory)
 
 N_DECLARE_COUNTER (N_VERTEX_MEMORY, Vertex Memory)
 
 N_DECLARE_COUNTER (N_INDEX_MEMORY, Index Memory)
 
 N_DECLARE_COUNTER (N_UPLOAD_MEMORY, Upload Memory)
 
void AddSubmissionEvent (const CoreGraphics::SubmissionWaitEvent &event)
 
void ParseMarkersAndTime (CoreGraphics::FrameProfilingMarker &marker, uint64 *data, const uint64 &offset)
 
 N_DECLARE_COUNTER (N_DEVICE_ONLY_GPU_MEMORY, Device Only GPU Memory)
 
 N_DECLARE_COUNTER (N_HOST_ONLY_GPU_MEMORY, Host Only GPU Memory)
 
 N_DECLARE_COUNTER (N_DEVICE_TO_HOST_GPU_MEMORY, Device To Host GPU Memory)
 
 N_DECLARE_COUNTER (N_HOST_TO_DEVICE_GPU_MEMORY, Host To Device GPU Memory)
 
Math::rectangle< int > VkViewportToRect (const VkViewport &vp)
 
Math::rectangle< int > VkScissorToRect (const VkRect2D &sc)
 
void GetSubpassInfo (const VkPassLoadInfo &loadInfo, Util::FixedArray< VkSubpassDescription > &outDescs, Util::Array< VkSubpassDependency > &outDeps, Util::FixedArray< VkAttachmentDescription > &outAttachments, Util::Array< uint32 > &usedAttachmentCounts, Util::FixedArray< VkPipelineViewportStateCreateInfo > &outPipelineInfos, uint32 &numUsedAttachmentsTotal)
 
void SetupPass (const PassId pid)
 
void AddBinding (Util::HashTable< uint32_t, VkDescriptorSetLayoutBinding > &bindings, const VkDescriptorSetLayoutBinding &binding)
 
void CountDescriptors (Util::HashTable< uint32_t, uint32_t > &counters, const VkDescriptorSetLayoutBinding &binding)
 
void SetupDescriptorSize (VkDescriptorPoolSize &size, Util::HashTable< uint32_t, uint32_t > &counter, Util::Array< VkDescriptorPoolSize > &outSizes)
 
VkFilter ToVkSamplerFilter (SamplerFilter filter)
 
VkSamplerMipmapMode ToVkSamplerMipMapMode (SamplerMipMode mode)
 
VkSamplerAddressMode ToVkSamplerAddressMode (SamplerAddressMode mode)
 
VkCompareOp ToVkCompareOperation (SamplerCompareOperation op)
 
VkBorderColor ToVkBorderMode (SamplerBorderMode mode)
 
SamplerFilter FromVkSamplerFilter (VkFilter filter)
 
SamplerMipMode FromVkSamplerMipMapMode (VkSamplerMipmapMode mode)
 
SamplerAddressMode FromVkSamplerAddressMode (VkSamplerAddressMode mode)
 
SamplerCompareOperation FromVkCompareOperation (VkCompareOp op)
 
SamplerBorderMode FromVkBorderMode (VkBorderColor mode)
 
SamplerCreateInfo ToNebulaSamplerCreateInfo (const VkSamplerCreateInfo &info)
 use vulkan sampler create info to create Nebula sampler create info
 
void DeleteShader (const ShaderId id)
 
CoreGraphics::ShaderProgramId ShaderGetShaderProgram (const CoreGraphics::ShaderId shaderId, const CoreGraphics::ShaderFeature::Mask mask)
 
Util::StringAtom ShaderGetProgramName (CoreGraphics::ShaderProgramId id)
 
void SetShaderProgram (const CoreGraphics::ShaderProgramId pro, const CoreGraphics::QueueType queue, const bool bindSharedResources)
 
 _IMPL_ACQUIRE_RELEASE (TextureId, textureAllocator)
 
void SetupTexture (const TextureId id)
 
void DeleteTexture (const TextureId id)
 
void TextureSparseUpdate (const CoreGraphics::CmdBufferId cmdBuf, const CoreGraphics::TextureId id, const Math::rectangle< uint > &region, IndexT mip, IndexT layer, const CoreGraphics::TextureId source)
 
void TextureSparseUpdate (const CoreGraphics::CmdBufferId cmdBuf, const CoreGraphics::TextureId id, const Math::rectangle< uint > &region, IndexT mip, IndexT layer, char *buf)
 
void TextureSparseUpdate (const CoreGraphics::CmdBufferId cmdBuf, const CoreGraphics::TextureId id, IndexT mip, IndexT layer, char *buf)
 
Math::vec2 WindowGetContentScale (const WindowId id)
 retrieve window content scaling (ratio between current DPI and platform default DPI)
 

Variables

WindowId CurrentWindow
 
GLFWWindowAllocatorType glfwWindowAllocator (0x00FFFFFF)
 
bool RayTracingSupported = false
 
bool DynamicVertexInputSupported = false
 
bool VariableRateShadingSupported = false
 
bool MeshShadersSupported = false
 
bool NvidiaCheckpointsSupported = false
 
uint ReadWriteBufferAlignment = UINT_MAX
 
uint ConstantBufferAlignment = UINT_MAX
 
uint64 MaxConstantBufferSize = UINT_MAX
 
uint MaxPushConstantSize = UINT_MAX
 
uint64 SparseAddressSize = UINT_MAX
 
uint MaxPerStageConstantBuffers = UINT_MAX
 
uint MaxPerStageReadWriteBuffers = UINT_MAX
 
uint MaxPerStageSampledImages = UINT_MAX
 
uint MaxPerStageReadWriteImages = UINT_MAX
 
uint MaxPerStageSamplers = UINT_MAX
 
uint MaxPerStageInputAttachments = UINT_MAX
 
uint MaxResourceTableConstantBuffers = UINT_MAX
 
uint MaxResourceTableDynamicOffsetConstantBuffers = UINT_MAX
 
uint MaxResourceTableReadWriteBuffers = UINT_MAX
 
uint MaxResourceTableDynamicOffsetReadWriteBuffers = UINT_MAX
 
uint MaxResourceTableSampledImages = UINT_MAX
 
uint MaxResourceTableReadWriteImages = UINT_MAX
 
uint MaxResourceTableSamplers = UINT_MAX
 
uint MaxResourceTableInputAttachments = UINT_MAX
 
uint MemoryRangeGranularity = UINT_MAX
 
uint TimestampPeriod = UINT_MAX
 
uint AccelerationStructureScratchAlignment = UINT_MAX
 Raytracing properties.
 
uint ShaderGroupAlignment = UINT_MAX
 
uint64 ShaderGroupSize = UINT_MAX
 
uint MaxRecursionDepth = UINT_MAX
 
ImageAllocator imageAllocator
 
Util::Array< MemoryPoolPools
 
Util::Array< MemoryHeapHeaps
 
Threading::CriticalSection AllocationLock
 
MeshId RectangleMesh
 
MeshId DiskMesh
 
MeshAllocator meshAllocator
 
CoreGraphics::VertexLayoutId Layouts [(uint) CoreGraphics::VertexLayoutType::NumTypes]
 
MeshResourceAllocator meshResourceAllocator
 
Util::Array< CoreGraphics::ResourceTableIdPendingTableCommits
 
bool ResourceTableBlocked = false
 
Threading::CriticalSection PendingTableCommitsLock
 
TextureId White1D
 
TextureId Black2D
 
TextureId White2D
 
TextureId WhiteCube
 
TextureId White3D
 
TextureId White1DArray
 
TextureId White2DArray
 
TextureId WhiteCubeArray
 
TextureId Red2D
 
TextureId Green2D
 
TextureId Blue2D
 
static const ubyte TextureAutoMips = 0xFF
 
static const IndexT MaxNumVertexStreams = 16
 max number of vertex streams
 
static Util::Stack< BarrierStackEntryBarrierStack
 
Threading::CriticalSection vertexAllocationMutex
 
Threading::CriticalSection UploadLock
 
Util::FixedArray< SubpassInfosubpassInfos
 
Util::Dictionary< uint32_t, Ids::Id32UniqueSamplerHashes
 

Typedef Documentation

◆ BufferQueueSupportFlags

◆ BufferUsageFlags

◆ ConstantBufferOffset

◆ GLFWWindowAllocatorType

◆ ImageAllocator

◆ MeshAllocator

◆ MeshResourceAllocator

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
GLFW_Window 
GLFW_DisplayMode 
GLFW_SwapFrame 
GLFW_SetupInfo 
GLFW_ResizeInfo 
GLFW_Swapchain 

◆ anonymous enum

anonymous enum
Enumerator
Mesh_Name 
Mesh_Internals 

◆ AccelerationStructureBuildFlags

Enumerator
FastBuild 
FastTrace 
Dynamic 
Compact 
Small 

◆ AttachmentFlagBits

Enumerator
NoFlags 
Clear 
ClearStencil 
Load 
LoadStencil 
Store 
StoreStencil 
Discard 
DiscardStencil 

◆ BarrierDomain

enum class CoreGraphics::BarrierDomain
strong
Enumerator
Global 
Pass 

◆ BlasInstanceFlags

Enumerator
NoFlags 
FaceCullingDisabled 
InvertFace 
ForceOpaque 
NoOpaque 

◆ BufferAccessMode

Enumerator
DeviceLocal 
HostLocal 
HostCached 
DeviceAndHost 

◆ BufferQueueSupport

Enumerator
AutomaticQueueSupport 
GraphicsQueueSupport 
ComputeQueueSupport 
TransferQueueSupport 

◆ BufferUsageFlag

Enumerator
InvalidBufferUsage 
TransferBufferSource 
TransferBufferDestination 
ConstantBuffer 
ConstantTexelBuffer 
ReadWriteBuffer 
ReadWriteTexelBuffer 
VertexBuffer 
IndexBuffer 
IndirectBuffer 
ShaderAddress 
AccelerationStructureData 
AccelerationStructureScratch 
AccelerationStructureInput 
AccelerationStructureInstances 
ShaderTable 

◆ CmdBufferQueryBits

Enumerator
NoQueries 
Occlusion 
Statistics 
Timestamps 
NumBits 

◆ CmdPipelineBuildBits

Enumerator
NoInfoSet 
ShaderInfoSet 
FramebufferLayoutInfoSet 
InputAssemblyInfoSet 
AllInfoSet 
PipelineBuilt 

◆ ImageBits

enum class CoreGraphics::ImageBits
strong
Enumerator
None 
Auto 
ColorBits 
DepthBits 
StencilBits 
MetaBits 
Plane0Bits 
Plane1Bits 
Plane2Bits 

◆ ImageChannelPrimitive

Enumerator
Bit8Uint 
Bit16Uint 
Bit16Float 
Bit32Uint 
Bit32Float 

◆ ImageContainer

Enumerator
PNG 
JPEG 
DDS 

◆ ImageLayout

enum class CoreGraphics::ImageLayout
strong
Enumerator
Undefined 
General 
ColorRenderTexture 
DepthStencilRenderTexture 
DepthStencilRead 
ShaderRead 
TransferSource 
TransferDestination 
Preinitialized 
Present 

◆ MemoryPoolType

Enumerator
MemoryPool_DeviceLocal 
MemoryPool_HostLocal 

Memory which should reside solely on the GPU.

MemoryPool_HostCached 

Memory which should reside solely on the CPU and is coherent, requires no flush/invalidate.

MemoryPool_DeviceAndHost 

Memory which is cached on host, meaning memory is flushed with a call to Flush or Invalidate.

NumMemoryPoolTypes 

Memory which is visible on both device and host side.

◆ PassRecordMode

enum class CoreGraphics::PassRecordMode : uint8
strong
Enumerator
Record 
ExecuteRecorded 
ExecuteInline 

◆ PipelineStage

enum class CoreGraphics::PipelineStage
strong
Enumerator
InvalidStage 
Top 
Bottom 
Indirect 
Index 
Vertex 
UniformGraphics 
UniformCompute 
InputAttachment 
ReadOnlyAccess 
VertexShaderRead 
VertexShaderWrite 
HullShaderRead 
HullShaderWrite 
DomainShaderRead 
DomainShaderWrite 
GeometryShaderRead 
GeometryShaderWrite 
PixelShaderRead 
PixelShaderWrite 
GraphicsShadersRead 
GraphicsShadersWrite 
ComputeShaderRead 
ComputeShaderWrite 
AllShadersRead 
AllShadersWrite 
ColorRead 
ColorWrite 
DepthStencilRead 
DepthStencilWrite 
RayTracingShaderRead 
RayTracingShaderWrite 
TaskShaderRead 
TaskShaderWrite 
MeshShaderRead 
MeshShaderWrite 
TransferRead 
TransferWrite 
HostRead 
HostWrite 
MemoryRead 
MemoryWrite 
AccelerationStructureRead 
AccelerationStructureWrite 
ImageInitial 
Present 

◆ QueryType

Enumerator
OcclusionQueryType 
StatisticsQueryType 
TimestampsQueryType 
NumQueryTypes 

◆ QueueType

Enumerator
GraphicsQueueType 
ComputeQueueType 
TransferQueueType 
SparseQueueType 
NumQueueTypes 
InvalidQueueType 

◆ SamplerAddressMode

Enumerator
RepeatAddressMode 
MirroredRepeatAddressMode 
ClampToEdgeAddressMode 
ClampToBorderAddressMode 
MirrorClampToEdgeAddressMode 

◆ SamplerBorderMode

Enumerator
FloatTransparentBlackBorder 
IntTransparentBlackBorder 
FloatOpaqueBlackBorder 
IntOpaqueBlackBorder 
FloatOpaqueWhiteBorder 
IntOpaqueWhiteBorder 

◆ SamplerCompareOperation

Enumerator
NeverCompare 
LessCompare 
EqualCompare 
LessOrEqualCompare 
GreaterCompare 
GreaterOrEqualCompare 
NotEqualCompare 
AlwaysCompare 

◆ SamplerFilter

Enumerator
NearestFilter 
LinearFilter 
CubicFilter 

◆ SamplerMipMode

Enumerator
NearestMipMode 
LinearMipMode 

◆ SemaphoreType

Enumerator
Binary 
Timeline 

◆ ShaderConstantType

Enumerator
UnknownVariableType 
IntVariableType 
FloatVariableType 
VectorVariableType 
Vector2VariableType 
MatrixVariableType 
BoolVariableType 
TextureVariableType 
SamplerVariableType 
ConstantBufferVariableType 
ImageReadWriteVariableType 
BufferReadWriteVariableType 
TextureHandleType 
ImageHandleType 
SamplerHandleType 

◆ ShaderPipeline

Enumerator
InvalidPipeline 
GraphicsPipeline 
ComputePipeline 
RayTracingPipeline 

◆ ShaderVisibility

Enumerator
InvalidVisibility 
VertexShaderVisibility 
HullShaderVisibility 
DomainShaderVisibility 
GeometryShaderVisibility 
PixelShaderVisibility 
AllGraphicsVisibility 
TaskShaderVisibility 
MeshShaderVisibility 
ComputeShaderVisibility 
RayGenerationShaderVisibility 
RayAnyHitShaderVisibility 
RayClosestHitShaderVisibility 
RayMissShaderVisibility 
RayIntersectionShaderVisibility 
CallableShaderVisibility 
AllVisibility 

◆ TextureChannelMapping

Enumerator
None 
Red 
Green 
Blue 
Alpha 
Zero 
One 

◆ TextureCubeFace

cube map face

Enumerator
PosX 
NegX 
PosY 
NegY 
PosZ 
NegZ 

◆ TextureType

texture types

Enumerator
InvalidTextureType 
Texture1D 
Texture2D 
Texture3D 
TextureCube 
Texture1DArray 
Texture2DArray 
TextureCubeArray 

◆ TextureUsage

type of texture usage

Enumerator
InvalidTextureUsage 
SampleTexture 
RenderTexture 
ReadWriteTexture 
TransferSourceTexture 
TransferDestinationTexture 
DeviceExclusive 

◆ VertexLayoutType

enum class CoreGraphics::VertexLayoutType
strong
Enumerator
Invalid 
Normal 
Colors 
SecondUV 
Skin 
Particle 
NumTypes 

Function Documentation

◆ __ImplementClass() [1/8]

CoreGraphics::__ImplementClass ( CoreGraphics::DisplayEventHandler ,
'DSEH' ,
Core::RefCounted  )

◆ __ImplementClass() [2/8]

CoreGraphics::__ImplementClass ( CoreGraphics::MeshLoader ,
'VKML' ,
Resources::ResourceLoader  )

◆ __ImplementClass() [3/8]

CoreGraphics::__ImplementClass ( CoreGraphics::Nvx3StreamReader ,
'N3SR' ,
IO::StreamReader  )

◆ __ImplementClass() [4/8]

CoreGraphics::__ImplementClass ( CoreGraphics::RenderEventHandler ,
'RDEH' ,
Core::RefCounted  )

◆ __ImplementClass() [5/8]

CoreGraphics::__ImplementClass ( CoreGraphics::ShaderLoader ,
'VKSL' ,
Resources::ResourceLoader  )

◆ __ImplementClass() [6/8]

CoreGraphics::__ImplementClass ( CoreGraphics::TextureLoader ,
'TXLO' ,
Resources::ResourceLoader  )

◆ __ImplementClass() [7/8]

CoreGraphics::__ImplementClass ( CoreGraphics::ThreadSafeDisplayEventHandler ,
'TDEH' ,
CoreGraphics::DisplayEventHandler  )

◆ __ImplementClass() [8/8]

CoreGraphics::__ImplementClass ( CoreGraphics::ThreadSafeRenderEventHandler ,
'TREH' ,
CoreGraphics::RenderEventHandler  )

◆ __ImplementEnumBitOperators() [1/9]

CoreGraphics::__ImplementEnumBitOperators ( AccelerationStructureBuildFlags )

◆ __ImplementEnumBitOperators() [2/9]

CoreGraphics::__ImplementEnumBitOperators ( AttachmentFlagBits )

◆ __ImplementEnumBitOperators() [3/9]

CoreGraphics::__ImplementEnumBitOperators ( BlasInstanceFlags )

◆ __ImplementEnumBitOperators() [4/9]

CoreGraphics::__ImplementEnumBitOperators ( CmdBufferQueryBits )

◆ __ImplementEnumBitOperators() [5/9]

CoreGraphics::__ImplementEnumBitOperators ( CmdPipelineBuildBits )

◆ __ImplementEnumBitOperators() [6/9]

CoreGraphics::__ImplementEnumBitOperators ( CoreGraphics::ImageBits )

◆ __ImplementEnumBitOperators() [7/9]

CoreGraphics::__ImplementEnumBitOperators ( CoreGraphics::ShaderVisibility )

◆ __ImplementEnumBitOperators() [8/9]

CoreGraphics::__ImplementEnumBitOperators ( CoreGraphics::TextureUsage )

◆ __ImplementEnumBitOperators() [9/9]

CoreGraphics::__ImplementEnumBitOperators ( PipelineStage )

◆ __ImplementEnumComparisonOperators() [1/5]

CoreGraphics::__ImplementEnumComparisonOperators ( AccelerationStructureBuildFlags )

◆ __ImplementEnumComparisonOperators() [2/5]

CoreGraphics::__ImplementEnumComparisonOperators ( AttachmentFlagBits )

◆ __ImplementEnumComparisonOperators() [3/5]

CoreGraphics::__ImplementEnumComparisonOperators ( CmdBufferQueryBits )

◆ __ImplementEnumComparisonOperators() [4/5]

CoreGraphics::__ImplementEnumComparisonOperators ( CmdPipelineBuildBits )

◆ __ImplementEnumComparisonOperators() [5/5]

CoreGraphics::__ImplementEnumComparisonOperators ( CoreGraphics::ImageBits )

◆ __ImplementSingleton() [1/2]

CoreGraphics::__ImplementSingleton ( CoreGraphics::ShapeRenderer )

◆ __ImplementSingleton() [2/2]

CoreGraphics::__ImplementSingleton ( CoreGraphics::TextRenderer )

◆ _DECL_ACQUIRE_RELEASE() [1/6]

CoreGraphics::_DECL_ACQUIRE_RELEASE ( BlasId )

◆ _DECL_ACQUIRE_RELEASE() [2/6]

CoreGraphics::_DECL_ACQUIRE_RELEASE ( BlasInstanceId )

◆ _DECL_ACQUIRE_RELEASE() [3/6]

CoreGraphics::_DECL_ACQUIRE_RELEASE ( BufferId )

◆ _DECL_ACQUIRE_RELEASE() [4/6]

CoreGraphics::_DECL_ACQUIRE_RELEASE ( CmdBufferId )

◆ _DECL_ACQUIRE_RELEASE() [5/6]

CoreGraphics::_DECL_ACQUIRE_RELEASE ( MeshId )

◆ _DECL_ACQUIRE_RELEASE() [6/6]

CoreGraphics::_DECL_ACQUIRE_RELEASE ( TextureId )

◆ _IMPL_ACQUIRE_RELEASE() [1/6]

CoreGraphics::_IMPL_ACQUIRE_RELEASE ( BlasId ,
Vulkan::blasAllocator  )

◆ _IMPL_ACQUIRE_RELEASE() [2/6]

CoreGraphics::_IMPL_ACQUIRE_RELEASE ( BlasInstanceId ,
Vulkan::blasInstanceAllocator  )

◆ _IMPL_ACQUIRE_RELEASE() [3/6]

CoreGraphics::_IMPL_ACQUIRE_RELEASE ( BufferId ,
bufferAllocator  )

◆ _IMPL_ACQUIRE_RELEASE() [4/6]

CoreGraphics::_IMPL_ACQUIRE_RELEASE ( CmdBufferId ,
commandBuffers  )

◆ _IMPL_ACQUIRE_RELEASE() [5/6]

CoreGraphics::_IMPL_ACQUIRE_RELEASE ( MeshId ,
meshAllocator  )

◆ _IMPL_ACQUIRE_RELEASE() [6/6]

CoreGraphics::_IMPL_ACQUIRE_RELEASE ( TextureId ,
textureAllocator  )

◆ AddBackBufferTexture()

void CoreGraphics::AddBackBufferTexture ( const CoreGraphics::TextureId tex)

add a render texture used by the back buffer

◆ AddBinding()

void CoreGraphics::AddBinding ( Util::HashTable< uint32_t, VkDescriptorSetLayoutBinding > & bindings,
const VkDescriptorSetLayoutBinding & binding )

◆ AddSubmissionEvent()

void CoreGraphics::AddSubmissionEvent ( const CoreGraphics::SubmissionWaitEvent & event)

◆ AllocateConstantBufferMemory()

ConstantBufferOffset CoreGraphics::AllocateConstantBufferMemory ( uint size)

Reserve range of constant buffer memory and return offset.

◆ AllocateIndices() [1/2]

const VertexAlloc CoreGraphics::AllocateIndices ( const SizeT bytes)

Allocate indices from the global index pool by bytes.

◆ AllocateIndices() [2/2]

const VertexAlloc CoreGraphics::AllocateIndices ( const SizeT numIndices,
const IndexType::Code indexType )

Allocate indices from the global index pool.

◆ AllocateQueries()

uint CoreGraphics::AllocateQueries ( const CoreGraphics::QueryType type,
uint numQueries )

Allocate a range of queries.

◆ AllocateUpload()

Util::Pair< Memory::RangeAllocation, CoreGraphics::BufferId > CoreGraphics::AllocateUpload ( const SizeT numBytes,
const SizeT alignment = 1 )

Allocate upload memory.

◆ AllocateVertices() [1/2]

const VertexAlloc CoreGraphics::AllocateVertices ( const SizeT bytes)

Allocate vertices from the global vertex pool by bytes.

◆ AllocateVertices() [2/2]

const VertexAlloc CoreGraphics::AllocateVertices ( const SizeT numVertices,
const SizeT vertexSize )

Allocate vertices from the global vertex pool.

◆ AttachEventHandler()

void CoreGraphics::AttachEventHandler ( const Ptr< CoreGraphics::RenderEventHandler > & h)

attach a render event handler

◆ AttachmentFlagsFromString()

static AttachmentFlagBits CoreGraphics::AttachmentFlagsFromString ( const Util::String & string)
static

◆ BarrierPop()

void CoreGraphics::BarrierPop ( const CoreGraphics::CmdBufferId buf)

pop barrier, reverses the from-to stages and any access flags in the buffers and texture barriers

◆ BarrierPush() [1/3]

void CoreGraphics::BarrierPush ( const CoreGraphics::CmdBufferId buf,
CoreGraphics::PipelineStage fromStage,
CoreGraphics::PipelineStage toStage,
CoreGraphics::BarrierDomain domain,
const Util::FixedArray< BufferBarrierInfo, true > & buffers )

Push barrier to stack.

◆ BarrierPush() [2/3]

void CoreGraphics::BarrierPush ( const CoreGraphics::CmdBufferId buf,
CoreGraphics::PipelineStage fromStage,
CoreGraphics::PipelineStage toStage,
CoreGraphics::BarrierDomain domain,
const Util::FixedArray< TextureBarrierInfo, true > & textures )

Push barrier to stack.

◆ BarrierPush() [3/3]

void CoreGraphics::BarrierPush ( const CoreGraphics::CmdBufferId buf,
CoreGraphics::PipelineStage fromStage,
CoreGraphics::PipelineStage toStage,
CoreGraphics::BarrierDomain domain,
const Util::FixedArray< TextureBarrierInfo, true > & textures,
const Util::FixedArray< BufferBarrierInfo, true > & buffers )

Push barrier to stack.

◆ BarrierRepeat()

void CoreGraphics::BarrierRepeat ( const CoreGraphics::CmdBufferId buf)

repeat barrier in queue

◆ BarrierReset()

void CoreGraphics::BarrierReset ( const BarrierId id)

reset resources previously set in barrier

◆ BlasInstanceGetSize()

const SizeT CoreGraphics::BlasInstanceGetSize ( )

Get instance size (platform dependent)

◆ BlasInstanceSetMask()

void CoreGraphics::BlasInstanceSetMask ( const BlasInstanceId id,
uint mask )

Set blas instance mask, setting it to 0x0 will disable it.

◆ BlasInstanceUpdate() [1/2]

void CoreGraphics::BlasInstanceUpdate ( const BlasInstanceId id,
const Math::mat4 & transform,
CoreGraphics::BufferId buf,
uint offset )

Update blas instance and write to buffer.

◆ BlasInstanceUpdate() [2/2]

void CoreGraphics::BlasInstanceUpdate ( const BlasInstanceId id,
CoreGraphics::BufferId buf,
uint offset )

Update blas instance and write to buffer.

◆ BufferCopyWithStaging()

void CoreGraphics::BufferCopyWithStaging ( const CoreGraphics::BufferId dest,
const uint offset,
const void * data,
const uint size )

Shortcut for creating a staging buffer and copy.

◆ BufferFill()

void CoreGraphics::BufferFill ( const CoreGraphics::CmdBufferId cmdBuf,
const BufferId id,
char pattern )

fill buffer with data much like memset

◆ BufferFlush()

void CoreGraphics::BufferFlush ( const BufferId id,
IndexT offset = 0,
SizeT size = NEBULA_WHOLE_BUFFER_SIZE )

flush any changes done to the buffer on the CPU side so they are visible on the GPU

◆ BufferGetByteSize()

const SizeT CoreGraphics::BufferGetByteSize ( const BufferId id)

get buffer total byte size

◆ BufferGetDeviceAddress()

CoreGraphics::DeviceAddress CoreGraphics::BufferGetDeviceAddress ( const BufferId id)

Get buffer device address.

◆ BufferGetElementSize()

const SizeT CoreGraphics::BufferGetElementSize ( const BufferId id)

get buffer element size, this is the size of a single element, like a vertex or index, and is multiplied with the size

◆ BufferGetSize()

const SizeT CoreGraphics::BufferGetSize ( const BufferId id)

get buffer size, which is the number of elements

◆ BufferGetType()

const BufferUsageFlags CoreGraphics::BufferGetType ( const BufferId id)

get type of buffer

◆ BufferGetUploadMaxSize()

const SizeT CoreGraphics::BufferGetUploadMaxSize ( )

get maximum size of upload for BufferUpload

◆ BufferInvalidate()

void CoreGraphics::BufferInvalidate ( const BufferId id,
IndexT offset = 0,
SizeT size = NEBULA_WHOLE_BUFFER_SIZE )

invalidate buffer CPU side, such that any GPU changes will be made visible

◆ BufferMap() [1/2]

template<class T >
T * CoreGraphics::BufferMap ( const BufferId id)
inline

map memory and cast to type

◆ BufferMap() [2/2]

void * CoreGraphics::BufferMap ( const BufferId id)

map memory

◆ BufferSparseCommitChanges()

void CoreGraphics::BufferSparseCommitChanges ( const BufferId id)

Commit sparse bindings.

◆ BufferSparseEvict()

void CoreGraphics::BufferSparseEvict ( const BufferId id,
IndexT pageIndex )

Evict a page.

◆ BufferSparseGetPageIndex()

IndexT CoreGraphics::BufferSparseGetPageIndex ( const BufferId id,
SizeT offset )

Get the page index given an offset.

◆ BufferSparseGetPageSize()

SizeT CoreGraphics::BufferSparseGetPageSize ( const BufferId id)

Get the buffer page size.

◆ BufferSparseMakeResident()

void CoreGraphics::BufferSparseMakeResident ( const BufferId id,
IndexT pageIndex )

Make a page resident.

◆ BufferUnmap()

void CoreGraphics::BufferUnmap ( const BufferId id)

unmap memory

◆ BufferUpdate() [1/2]

template<class TYPE >
void CoreGraphics::BufferUpdate ( const BufferId id,
const TYPE & data,
const uint offset = 0 )
inline

update buffer data

◆ BufferUpdate() [2/2]

void CoreGraphics::BufferUpdate ( const BufferId id,
const void * data,
const uint size,
const uint offset = 0 )

update buffer data

◆ BufferUpdateArray() [1/3]

template<class TYPE >
void CoreGraphics::BufferUpdateArray ( const BufferId id,
const TYPE * data,
const uint count,
const uint offset = 0 )
inline

update buffer data as array

◆ BufferUpdateArray() [2/3]

template<class TYPE >
void CoreGraphics::BufferUpdateArray ( const BufferId id,
const Util::Array< TYPE > & data,
const uint offset = 0 )

Update buffer data as array.

◆ BufferUpdateArray() [3/3]

template<class TYPE >
void CoreGraphics::BufferUpdateArray ( const BufferId id,
const Util::FixedArray< TYPE > & data,
const uint offset = 0 )

Update buffer data as array.

◆ BufferUpload() [1/2]

template<class TYPE >
void CoreGraphics::BufferUpload ( const CoreGraphics::CmdBufferId cmdBuf,
const BufferId id,
const TYPE * data,
const uint count = 1,
const uint offset = 0 )
inline

upload data from pointer directly to buffer through submission context

◆ BufferUpload() [2/2]

void CoreGraphics::BufferUpload ( const CoreGraphics::CmdBufferId cmdBuf,
const BufferId id,
const void * data,
const uint size,
const uint offset )

update buffer directly on command buffer during frame update, asserts if size is too big

◆ CmdBarrier() [1/6]

void CoreGraphics::CmdBarrier ( const CmdBufferId id,
const CoreGraphics::BarrierId barrier )

Insert execution barrier.

◆ CmdBarrier() [2/6]

void CoreGraphics::CmdBarrier ( const CmdBufferId id,
CoreGraphics::PipelineStage fromStage,
CoreGraphics::PipelineStage toStage,
CoreGraphics::BarrierDomain domain,
const IndexT fromQueue,
const IndexT toQueue,
const char * name )

Insert pipeline barrier.

◆ CmdBarrier() [3/6]

void CoreGraphics::CmdBarrier ( const CmdBufferId id,
CoreGraphics::PipelineStage fromStage,
CoreGraphics::PipelineStage toStage,
CoreGraphics::BarrierDomain domain,
const Util::FixedArray< AccelerationStructureBarrierInfo, true > & accelerationStructures,
const IndexT fromQueue,
const IndexT toQueue,
const char * name )

Insert pipeline barrier.

◆ CmdBarrier() [4/6]

void CoreGraphics::CmdBarrier ( const CmdBufferId id,
CoreGraphics::PipelineStage fromStage,
CoreGraphics::PipelineStage toStage,
CoreGraphics::BarrierDomain domain,
const Util::FixedArray< BufferBarrierInfo, true > & buffers,
const IndexT fromQueue,
const IndexT toQueue,
const char * name )

Insert pipeline barrier.

◆ CmdBarrier() [5/6]

void CoreGraphics::CmdBarrier ( const CmdBufferId id,
CoreGraphics::PipelineStage fromStage,
CoreGraphics::PipelineStage toStage,
CoreGraphics::BarrierDomain domain,
const Util::FixedArray< TextureBarrierInfo, true > & textures,
const IndexT fromQueue,
const IndexT toQueue,
const char * name )

Insert pipeline barrier.

◆ CmdBarrier() [6/6]

void CoreGraphics::CmdBarrier ( const CmdBufferId id,
CoreGraphics::PipelineStage fromStage,
CoreGraphics::PipelineStage toStage,
CoreGraphics::BarrierDomain domain,
const Util::FixedArray< TextureBarrierInfo, true > & textures,
const Util::FixedArray< BufferBarrierInfo, true > & buffers,
const Util::FixedArray< AccelerationStructureBarrierInfo, true > & accelerationStructures,
const IndexT fromQueue = InvalidIndex,
const IndexT toQueue = InvalidIndex,
const char * name = nullptr )

Insert pipeline barrier.

◆ CmdBeginPass()

void CoreGraphics::CmdBeginPass ( const CmdBufferId id,
const CoreGraphics::PassId pass )

Begin pass.

◆ CmdBeginRecord()

void CoreGraphics::CmdBeginRecord ( const CmdBufferId id,
const CmdBufferBeginInfo & info )

begin recording to command buffer

◆ CmdBlit()

void CoreGraphics::CmdBlit ( const CmdBufferId id,
const CoreGraphics::TextureId fromTexture,
const CoreGraphics::TextureCopy & from,
const CoreGraphics::TextureId toTexture,
const CoreGraphics::TextureCopy & to )

Blit textures.

◆ CmdBuildBlas()

void CoreGraphics::CmdBuildBlas ( const CmdBufferId id,
const CoreGraphics::BlasId blas )

Build BLAS.

◆ CmdBuildTlas()

void CoreGraphics::CmdBuildTlas ( const CmdBufferId id,
const CoreGraphics::TlasId tlas )

Build TLAS.

◆ CmdCopy() [1/4]

void CoreGraphics::CmdCopy ( const CmdBufferId id,
const CoreGraphics::BufferId fromBuffer,
const Util::Array< CoreGraphics::BufferCopy, 4 > & from,
const CoreGraphics::BufferId toBuffer,
const Util::Array< CoreGraphics::BufferCopy, 4 > & to,
const SizeT size )

Copy between buffers.

◆ CmdCopy() [2/4]

void CoreGraphics::CmdCopy ( const CmdBufferId id,
const CoreGraphics::BufferId fromBuffer,
const Util::Array< CoreGraphics::BufferCopy, 4 > & from,
const CoreGraphics::TextureId toTexture,
const Util::Array< CoreGraphics::TextureCopy, 4 > & to )

Copy from buffer to texture.

◆ CmdCopy() [3/4]

void CoreGraphics::CmdCopy ( const CmdBufferId id,
const CoreGraphics::TextureId fromTexture,
const Util::Array< CoreGraphics::TextureCopy, 4 > & from,
const CoreGraphics::BufferId toBuffer,
const Util::Array< CoreGraphics::BufferCopy, 4 > & to )

Copy from texture to buffer.

◆ CmdCopy() [4/4]

void CoreGraphics::CmdCopy ( const CmdBufferId id,
const CoreGraphics::TextureId fromTexture,
const Util::Array< CoreGraphics::TextureCopy, 4 > & from,
const CoreGraphics::TextureId toTexture,
const Util::Array< CoreGraphics::TextureCopy, 4 > & to )

Copy between textures.

◆ CmdDispatch()

void CoreGraphics::CmdDispatch ( const CmdBufferId id,
int dimX,
int dimY,
int dimZ )

Perform computation.

◆ CmdDraw() [1/3]

void CoreGraphics::CmdDraw ( const CmdBufferId id,
const CoreGraphics::PrimitiveGroup & pg )

Draw primitives.

◆ CmdDraw() [2/3]

void CoreGraphics::CmdDraw ( const CmdBufferId id,
SizeT numInstances,
const CoreGraphics::PrimitiveGroup & pg )

Draw primitives instanced.

◆ CmdDraw() [3/3]

void CoreGraphics::CmdDraw ( const CmdBufferId id,
SizeT numInstances,
IndexT baseInstance,
const CoreGraphics::PrimitiveGroup & pg )

Draw primitives instanced with base instance.

◆ CmdDrawIndirect()

void CoreGraphics::CmdDrawIndirect ( const CmdBufferId id,
const CoreGraphics::BufferId buffer,
IndexT bufferOffset,
SizeT numDraws,
SizeT stride )

Draw indirect, draws is the amount of draws in the buffer, and stride is the byte offset between each call.

◆ CmdDrawIndirectIndexed()

void CoreGraphics::CmdDrawIndirectIndexed ( const CmdBufferId id,
const CoreGraphics::BufferId buffer,
IndexT bufferOffset,
SizeT numDraws,
SizeT stride )

Draw indirect, draws is the amount of draws in the buffer, and stride is the byte offset between each call.

◆ CmdDrawMeshlets()

void CoreGraphics::CmdDrawMeshlets ( const CmdBufferId id,
int dimX,
int dimY,
int dimZ )

Draw meshlets.

◆ CmdEndOcclusionQueries()

void CoreGraphics::CmdEndOcclusionQueries ( const CmdBufferId id)

End occlusion queries.

◆ CmdEndPass()

void CoreGraphics::CmdEndPass ( const CmdBufferId id)

End pass.

◆ CmdEndPipelineQueries()

void CoreGraphics::CmdEndPipelineQueries ( const CmdBufferId id)

End pipeline statistics.

◆ CmdEndRecord()

void CoreGraphics::CmdEndRecord ( const CmdBufferId id)

end recording command buffer, it may be submitted after this is done

◆ CmdFinishQueries()

void CoreGraphics::CmdFinishQueries ( const CmdBufferId id)

Finish queries.

◆ CmdHandover()

void CoreGraphics::CmdHandover ( const CmdBufferId from,
const CmdBufferId to,
CoreGraphics::PipelineStage fromStage,
CoreGraphics::PipelineStage toStage,
const Util::FixedArray< TextureBarrierInfo, true > & textures,
const Util::FixedArray< BufferBarrierInfo, true > & buffers,
const IndexT fromQueue = InvalidIndex,
const IndexT toQueue = InvalidIndex,
const char * name = nullptr )

Handover.

◆ CmdNextSubpass()

void CoreGraphics::CmdNextSubpass ( const CmdBufferId id)

Progress to next subpass.

◆ CmdPushComputeConstants()

void CoreGraphics::CmdPushComputeConstants ( const CmdBufferId id,
uint offset,
uint size,
const void * data )

◆ CmdPushConstants()

void CoreGraphics::CmdPushConstants ( const CmdBufferId id,
ShaderPipeline pipeline,
uint offset,
uint size,
const void * data )

Set push constants.

◆ CmdPushGraphicsConstants()

void CoreGraphics::CmdPushGraphicsConstants ( const CmdBufferId id,
uint offset,
uint size,
const void * data )

◆ CmdRaysDispatch()

void CoreGraphics::CmdRaysDispatch ( const CmdBufferId id,
const RayDispatchTable & table,
int dimX,
int dimY,
int dimZ )

Fire rays.

◆ CmdReset()

void CoreGraphics::CmdReset ( const CmdBufferId id,
const CmdBufferClearInfo & info )

clear the command buffer to be empty

◆ CmdResetEvent()

void CoreGraphics::CmdResetEvent ( const CmdBufferId id,
const CoreGraphics::EventId ev,
const CoreGraphics::PipelineStage stage )

Signals an event.

◆ CmdResolve()

void CoreGraphics::CmdResolve ( const CmdBufferId id,
const CoreGraphics::TextureId source,
const CoreGraphics::TextureCopy sourceCopy,
const CoreGraphics::TextureId dest,
const CoreGraphics::TextureCopy destCopy )

Resolve MSAA source to non-MSAA target.

◆ CmdSetGraphicsPipeline() [1/2]

void CoreGraphics::CmdSetGraphicsPipeline ( const CmdBufferId buf,
const PipelineId pipeline )

Set graphics pipeline directly.

◆ CmdSetGraphicsPipeline() [2/2]

void CoreGraphics::CmdSetGraphicsPipeline ( const CmdBufferId id)

Create (if necessary) and bind pipeline based on state thus far.

◆ CmdSetIndexBuffer() [1/2]

void CoreGraphics::CmdSetIndexBuffer ( const CmdBufferId id,
const CoreGraphics::BufferId & buffer,
CoreGraphics::IndexType::Code indexSize,
SizeT bufferOffset )

◆ CmdSetIndexBuffer() [2/2]

void CoreGraphics::CmdSetIndexBuffer ( const CmdBufferId id,
const IndexType::Code indexType,
const CoreGraphics::BufferId & buffer,
SizeT bufferOffset )

Set index buffer.

◆ CmdSetPrimitiveTopology()

void CoreGraphics::CmdSetPrimitiveTopology ( const CmdBufferId id,
const CoreGraphics::PrimitiveTopology::Code topo )

Set the type of topology used.

◆ CmdSetRayTracingPipeline()

void CoreGraphics::CmdSetRayTracingPipeline ( const CmdBufferId buf,
const PipelineId pipeline )

Set ray tracing pipeline.

◆ CmdSetResourceTable() [1/2]

void CoreGraphics::CmdSetResourceTable ( const CmdBufferId id,
const CoreGraphics::ResourceTableId table,
const IndexT slot,
CoreGraphics::ShaderPipeline pipeline,
const Util::FixedArray< uint > & offsets )

Set resource table.

◆ CmdSetResourceTable() [2/2]

void CoreGraphics::CmdSetResourceTable ( const CmdBufferId id,
const CoreGraphics::ResourceTableId table,
const IndexT slot,
CoreGraphics::ShaderPipeline pipeline,
uint32 numOffsets,
uint32 * offsets )

Set resource table using raw offsets.

◆ CmdSetScissorRect()

void CoreGraphics::CmdSetScissorRect ( const CmdBufferId id,
const Math::rectangle< int > & rect,
int index )

Sets a scissor rect for a certain index.

◆ CmdSetScissors()

void CoreGraphics::CmdSetScissors ( const CmdBufferId id,
const Util::FixedArray< Math::rectangle< int > > & rects )

Set scissor array.

◆ CmdSetShaderProgram()

void CoreGraphics::CmdSetShaderProgram ( const CmdBufferId id,
const CoreGraphics::ShaderProgramId pro,
bool bindGlobals = true )

Set shader program.

◆ CmdSetStencilReadMask()

void CoreGraphics::CmdSetStencilReadMask ( const CmdBufferId id,
const uint readMask )

Set the stencil read mask (compare mask(.

◆ CmdSetStencilRef()

void CoreGraphics::CmdSetStencilRef ( const CmdBufferId id,
const uint frontRef,
const uint backRef )

Set the stencil reference values.

◆ CmdSetStencilWriteMask()

void CoreGraphics::CmdSetStencilWriteMask ( const CmdBufferId id,
const uint writeMask )

Set the stencil write mask.

◆ CmdSetVertexBuffer()

void CoreGraphics::CmdSetVertexBuffer ( const CmdBufferId id,
IndexT streamIndex,
const CoreGraphics::BufferId & buffer,
SizeT bufferOffset )

Set vertex buffer.

◆ CmdSetVertexLayout()

void CoreGraphics::CmdSetVertexLayout ( const CmdBufferId id,
const CoreGraphics::VertexLayoutId & vl )

Set vertex layout.

◆ CmdSetViewport()

void CoreGraphics::CmdSetViewport ( const CmdBufferId id,
const Math::rectangle< int > & rect,
int index )

Sets a viewport for a certain index.

◆ CmdSetViewports()

void CoreGraphics::CmdSetViewports ( const CmdBufferId id,
const Util::FixedArray< Math::rectangle< int > > & viewports )

Set viewport array.

◆ CmdSignalEvent()

void CoreGraphics::CmdSignalEvent ( const CmdBufferId id,
const CoreGraphics::EventId ev,
const CoreGraphics::PipelineStage stage )

Signals an event.

◆ CmdStartOcclusionQueries()

void CoreGraphics::CmdStartOcclusionQueries ( const CmdBufferId id)

Start occlusion queries.

◆ CmdStartPipelineQueries()

void CoreGraphics::CmdStartPipelineQueries ( const CmdBufferId id)

Start pipeline statistics.

◆ CmdUpdateBuffer()

void CoreGraphics::CmdUpdateBuffer ( const CmdBufferId id,
const CoreGraphics::BufferId buffer,
uint offset,
uint size,
const void * data )

Update buffer using memory pointer in command buffer.

◆ CmdWaitEvent()

void CoreGraphics::CmdWaitEvent ( const CmdBufferId id,
const EventId ev,
const CoreGraphics::PipelineStage waitStage,
const CoreGraphics::PipelineStage signalStage )

Signals an event.

◆ ConstantTypeToString()

const Util::String CoreGraphics::ConstantTypeToString ( const ShaderConstantType & type)

Get constant type as string.

◆ CountDescriptors()

void CoreGraphics::CountDescriptors ( Util::HashTable< uint32_t, uint32_t > & counters,
const VkDescriptorSetLayoutBinding & binding )

◆ CreateBarrier()

BarrierId CoreGraphics::CreateBarrier ( const BarrierCreateInfo & info)

create barrier object

◆ CreateBlas()

BlasId CoreGraphics::CreateBlas ( const BlasCreateInfo & info)

Create bottom level acceleration structure.

◆ CreateBlasInstance()

BlasInstanceId CoreGraphics::CreateBlasInstance ( const BlasInstanceCreateInfo & info)

Create an instance to a bottom level acceleration structure.

◆ CreateBuffer()

const BufferId CoreGraphics::CreateBuffer ( const BufferCreateInfo & info)

create buffer

◆ CreateCmdBuffer()

const CmdBufferId CoreGraphics::CreateCmdBuffer ( const CmdBufferCreateInfo & info)

create new command buffer

◆ CreateCmdBufferPool()

const CmdBufferPoolId CoreGraphics::CreateCmdBufferPool ( const CmdBufferPoolCreateInfo & info)

create new command buffer pool

◆ CreateDrawThread()

DrawThread * CoreGraphics::CreateDrawThread ( )
extern

create new draw thread, define in implementation thread

◆ CreateEvent()

EventId CoreGraphics::CreateEvent ( const EventCreateInfo & info)

create new event

◆ CreateFence()

FenceId CoreGraphics::CreateFence ( const FenceCreateInfo & info)

create a new fence

◆ CreateGraphicsDevice()

bool CoreGraphics::CreateGraphicsDevice ( const GraphicsDeviceCreateInfo & info)

create graphics device

◆ CreateGraphicsPipeline()

PipelineId CoreGraphics::CreateGraphicsPipeline ( const PipelineCreateInfo & info)

Create new pipeline.

◆ CreateImage() [1/2]

ImageId CoreGraphics::CreateImage ( const ImageCreateInfoData & info)

create image from data buffer

◆ CreateImage() [2/2]

ImageId CoreGraphics::CreateImage ( const ImageCreateInfoFile & info)

create image from file path

◆ CreateMesh()

const MeshId CoreGraphics::CreateMesh ( const MeshCreateInfo & info)

create new mesh

◆ CreatePass()

const PassId CoreGraphics::CreatePass ( const PassCreateInfo & info)

create pass

◆ CreateRaytracingPipeline()

const PipelineRayTracingTable CoreGraphics::CreateRaytracingPipeline ( const Util::Array< CoreGraphics::ShaderProgramId > programs)

Create raytacing pipeline using multiple shader programs.

◆ CreateResourcePipeline()

ResourcePipelineId CoreGraphics::CreateResourcePipeline ( const ResourcePipelineCreateInfo & info)

create resource pipeline

◆ CreateResourceTable()

ResourceTableId CoreGraphics::CreateResourceTable ( const ResourceTableCreateInfo & info)

create resource table

◆ CreateResourceTableLayout()

ResourceTableLayoutId CoreGraphics::CreateResourceTableLayout ( const ResourceTableLayoutCreateInfo & info)

create resource table layout

Textures and Texture-Sampler pairs

RW texture

Constant buffers

RW buffers

Acceleration structures

Samplers

Input attachments

Textures and Texture-Sampler pairs

RW texture

Constant buffers

RW buffers

Acceleration structures

Samplers

Input attachments

◆ CreateSampler()

SamplerId CoreGraphics::CreateSampler ( const SamplerCreateInfo & info)

create sampler

◆ CreateSemaphore()

SemaphoreId CoreGraphics::CreateSemaphore ( const SemaphoreCreateInfo & info)

create semaphore

◆ CreateShader()

const ShaderId CoreGraphics::CreateShader ( const ShaderCreateInfo & info)

Create new shader.

◆ CreateSparseBuffer()

SparseBufferId CoreGraphics::CreateSparseBuffer ( const SparseBufferCreateInfo & info)

create sparse buffer

◆ CreateSwapchain()

SwapchainId CoreGraphics::CreateSwapchain ( const SwapchainCreateInfo & info)

Create swapchain.

◆ CreateTexture()

const TextureId CoreGraphics::CreateTexture ( const TextureCreateInfo & info)

create new vertex buffer with intended usage, access and CPU syncing parameters, together with size of buffer

during the load-phase, we can safetly get the structs

during the load-phase, we can safetly get the structs

◆ CreateTextureView()

TextureViewId CoreGraphics::CreateTextureView ( const TextureViewCreateInfo & info)

create texture view

◆ CreateTlas()

TlasId CoreGraphics::CreateTlas ( const TlasCreateInfo & info)

Create top level acceleration structure.

◆ CreateVertexLayout()

const VertexLayoutId CoreGraphics::CreateVertexLayout ( const VertexLayoutCreateInfo & info)

create new vertex layout

◆ CreateWindow()

const WindowId CoreGraphics::CreateWindow ( const WindowCreateInfo & info)

create new window

◆ DeallocateIndices()

void CoreGraphics::DeallocateIndices ( const VertexAlloc & alloc)

Deallocate indices.

◆ DeallocateVertices()

void CoreGraphics::DeallocateVertices ( const VertexAlloc & alloc)

Deallocate vertices.

◆ DeferredDestroyCmdBuffer()

void CoreGraphics::DeferredDestroyCmdBuffer ( const CmdBufferId id)

Issue command buffer for deletion (happens when GPU is finished with it)

◆ DelayedDeleteBlas()

void CoreGraphics::DelayedDeleteBlas ( const CoreGraphics::BlasId id)

Add a blas for delayed delete.

◆ DelayedDeleteBuffer()

void CoreGraphics::DelayedDeleteBuffer ( const CoreGraphics::BufferId id)

Add buffer to delete queue.

◆ DelayedDeleteCommandBuffer()

void CoreGraphics::DelayedDeleteCommandBuffer ( const CoreGraphics::CmdBufferId id)

Add command buffer to late deletion.

◆ DelayedDeleteDescriptorSet()

void CoreGraphics::DelayedDeleteDescriptorSet ( const CoreGraphics::ResourceTableId id)

Add a descriptor set to delete queue.

◆ DelayedDeletePass()

void CoreGraphics::DelayedDeletePass ( const CoreGraphics::PassId id)

Add a pass to delayed delete.

◆ DelayedDeleteTexture()

void CoreGraphics::DelayedDeleteTexture ( const CoreGraphics::TextureId id)

Add texture to delete queue.

◆ DelayedDeleteTextureView()

void CoreGraphics::DelayedDeleteTextureView ( const CoreGraphics::TextureViewId id)

Add texture view to delete queue.

◆ DelayedDeleteTlas()

void CoreGraphics::DelayedDeleteTlas ( const CoreGraphics::TlasId id)

Add a tlas for delayed delete.

◆ DelayedFreeMemory()

void CoreGraphics::DelayedFreeMemory ( const CoreGraphics::Alloc alloc)

Add memory allocation to delete queue.

◆ DeleteShader()

void CoreGraphics::DeleteShader ( const ShaderId id)

◆ DeleteTexture()

void CoreGraphics::DeleteTexture ( const TextureId id)

◆ DestroyBarrier()

void CoreGraphics::DestroyBarrier ( const BarrierId id)

destroy barrier object

◆ DestroyBlas()

void CoreGraphics::DestroyBlas ( const BlasId blac)

Destroy bottom level acceleration structure.

◆ DestroyBlasInstance()

void CoreGraphics::DestroyBlasInstance ( const BlasInstanceId id)

Destroy blas instance.

◆ DestroyBuffer()

void CoreGraphics::DestroyBuffer ( const BufferId id)

destroy buffer

◆ DestroyCmdBuffer()

void CoreGraphics::DestroyCmdBuffer ( const CmdBufferId id)

Destroy the command buffer immediately (use with caution as buffer might be in use by GPU)

◆ DestroyCmdBufferPool()

void CoreGraphics::DestroyCmdBufferPool ( const CmdBufferPoolId pool)

destroy command buffer pool

◆ DestroyEvent()

void CoreGraphics::DestroyEvent ( const EventId id)

destroy even

◆ DestroyFence()

void CoreGraphics::DestroyFence ( const FenceId id)

destroy a fence

◆ DestroyGraphicsDevice()

void CoreGraphics::DestroyGraphicsDevice ( )

destroy graphics device

◆ DestroyGraphicsPipeline()

void CoreGraphics::DestroyGraphicsPipeline ( const PipelineId pipeline)

Destroy pipeline.

◆ DestroyImage()

void CoreGraphics::DestroyImage ( const ImageId id)

destroy image

◆ DestroyMesh()

void CoreGraphics::DestroyMesh ( const MeshId id)

destroy mesh

◆ DestroyMeshResource()

void CoreGraphics::DestroyMeshResource ( const MeshResourceId id)

Destroy.

◆ DestroyPass()

void CoreGraphics::DestroyPass ( const PassId id)

discard pass

◆ DestroyRaytracingPipeline()

void CoreGraphics::DestroyRaytracingPipeline ( const PipelineRayTracingTable & table)

Destroy raytracing pipeline.

◆ DestroyResourcePipeline()

void CoreGraphics::DestroyResourcePipeline ( const ResourcePipelineId & id)

destroy resource pipeline

◆ DestroyResourceTable()

void CoreGraphics::DestroyResourceTable ( const ResourceTableId id)

destroy resource table

◆ DestroyResourceTableLayout()

void CoreGraphics::DestroyResourceTableLayout ( const ResourceTableLayoutId & id)

destroy resource table layout

◆ DestroySampler()

void CoreGraphics::DestroySampler ( const SamplerId & id)

destroy sampler

◆ DestroySemaphore()

void CoreGraphics::DestroySemaphore ( const SemaphoreId & semaphore)

destroy semaphore

◆ DestroyShader()

void CoreGraphics::DestroyShader ( const ShaderId id)

Destroy shader.

◆ DestroySparseBuffer()

void CoreGraphics::DestroySparseBuffer ( const SparseBufferId id)

destroy sparse buffers

◆ DestroySwapchain()

void CoreGraphics::DestroySwapchain ( const SwapchainId id)

Destroy swapchain.

◆ DestroyTexture()

void CoreGraphics::DestroyTexture ( const TextureId id)

destroy vertex buffer

◆ DestroyTextureView()

void CoreGraphics::DestroyTextureView ( const TextureViewId id)

destroy texture view

◆ DestroyTlas()

void CoreGraphics::DestroyTlas ( const TlasId tlas)

Destroy top level acceleration structure.

◆ DestroyVertexLayout()

void CoreGraphics::DestroyVertexLayout ( const VertexLayoutId id)

destroy vertex layout

◆ DestroyWindow()

void CoreGraphics::DestroyWindow ( const WindowId id)

destroy window

◆ DiscardMemoryPools()

void CoreGraphics::DiscardMemoryPools ( VkDevice dev)

discard memory pools

◆ EmbedWindow()

const WindowId CoreGraphics::EmbedWindow ( const Util::Blob & windowData)

embed window in another window

◆ EnqueueUploadsFlushAndFree()

void CoreGraphics::EnqueueUploadsFlushAndFree ( const Util::Array< Memory::RangeAllocation > & allocations)

Queue uploads to flush and free at immediate submit.

◆ EventHostReset()

void CoreGraphics::EventHostReset ( const EventId id)

unset event on host

◆ EventHostSignal()

void CoreGraphics::EventHostSignal ( const EventId id)

signal event on host

◆ EventHostWait()

void CoreGraphics::EventHostWait ( const EventId id)

wait for event to be signaled on host

◆ EventPoll()

bool CoreGraphics::EventPoll ( const EventId id)

get event status on host

◆ EventReset()

void CoreGraphics::EventReset ( const EventId id,
const CoreGraphics::CmdBufferId buf,
const CoreGraphics::PipelineStage stage )

insert reset event

◆ EventSignal()

void CoreGraphics::EventSignal ( const EventId id,
const CoreGraphics::CmdBufferId buf,
const CoreGraphics::PipelineStage stage )

insert event in command buffer to be signaled

◆ EventWait() [1/2]

void CoreGraphics::EventWait ( const EventId id,
const CoreGraphics::CmdBufferId buf,
const CoreGraphics::PipelineStage waitStage,
const CoreGraphics::PipelineStage signalStage )

insert event in command buffer to wait for

◆ EventWait() [2/2]

void CoreGraphics::EventWait ( const EventId id,
const CoreGraphics::QueueType queue,
const CoreGraphics::PipelineStage waitStage,
const CoreGraphics::PipelineStage signalStage )

insert event in queue to wait for

◆ EventWaitAndReset()

void CoreGraphics::EventWaitAndReset ( const EventId id,
const CoreGraphics::CmdBufferId buf,
const CoreGraphics::PipelineStage waitStage,
const CoreGraphics::PipelineStage signalStage )

insert both a wait and reset

◆ FencePeek()

bool CoreGraphics::FencePeek ( const FenceId id)

peek fence status

◆ FenceReset()

bool CoreGraphics::FenceReset ( const FenceId id)

reset fence status

◆ FenceWait()

bool CoreGraphics::FenceWait ( const FenceId id,
const uint64 time )

wait for fence

◆ FenceWaitAndReset()

bool CoreGraphics::FenceWaitAndReset ( const FenceId id,
const uint64 time )

wait for fence and reset

◆ FinishFrame()

void CoreGraphics::FinishFrame ( IndexT frameIndex)

Finish current frame.

◆ FinishMips()

void CoreGraphics::FinishMips ( CoreGraphics::CmdBufferId transferCommands,
CoreGraphics::CmdBufferId handoverCommands,
TextureStreamData * streamData,
uint mipBits,
const CoreGraphics::TextureId texture,
const char * name )

◆ FinishQueries()

void CoreGraphics::FinishQueries ( const CoreGraphics::CmdBufferId cmdBuf,
const CoreGraphics::QueryType type,
IndexT * starts,
SizeT * counts,
SizeT numCopies )

Copy query results to buffer.

◆ FlushUploads()

void CoreGraphics::FlushUploads ( const Util::Array< Memory::RangeAllocation > & allocations)

Flush upload allocations directly.

◆ FreeMemory()

void CoreGraphics::FreeMemory ( const CoreGraphics::Alloc & alloc)

free memory

◆ FreeUploads()

void CoreGraphics::FreeUploads ( const Util::Array< Memory::RangeAllocation > & allocations)

Free upload allocations directly.

◆ FromVkBorderMode()

SamplerBorderMode CoreGraphics::FromVkBorderMode ( VkBorderColor mode)

◆ FromVkCompareOperation()

SamplerCompareOperation CoreGraphics::FromVkCompareOperation ( VkCompareOp op)

◆ FromVkSamplerAddressMode()

SamplerAddressMode CoreGraphics::FromVkSamplerAddressMode ( VkSamplerAddressMode mode)

◆ FromVkSamplerFilter()

SamplerFilter CoreGraphics::FromVkSamplerFilter ( VkFilter filter)

◆ FromVkSamplerMipMapMode()

SamplerMipMode CoreGraphics::FromVkSamplerMipMapMode ( VkSamplerMipmapMode mode)

◆ GetBufferedFrameIndex()

IndexT CoreGraphics::GetBufferedFrameIndex ( )

get current frame index, which is between 0 and GetNumBufferedFrames

◆ GetConstantBuffer()

CoreGraphics::BufferId CoreGraphics::GetConstantBuffer ( IndexT i)

return id to global graphics constant buffer

◆ GetIndexBuffer()

const CoreGraphics::BufferId CoreGraphics::GetIndexBuffer ( )

Get index buffer.

◆ GetMappedMemory()

void * CoreGraphics::GetMappedMemory ( const CoreGraphics::Alloc & alloc)

get mapped memory pointer

◆ GetNumBufferedFrames()

SizeT CoreGraphics::GetNumBufferedFrames ( )

get number of buffered frames

◆ GetQueueIndex()

IndexT CoreGraphics::GetQueueIndex ( const QueueType queue)

Get queue index.

◆ GetQueueIndices()

const Util::Set< uint32_t > & CoreGraphics::GetQueueIndices ( )

Get queue indices.

◆ GetRenderWireframe()

bool CoreGraphics::GetRenderWireframe ( )

get the render as wireframe flag

◆ GetSubpassInfo()

void CoreGraphics::GetSubpassInfo ( const VkPassLoadInfo & loadInfo,
Util::FixedArray< VkSubpassDescription > & outDescs,
Util::Array< VkSubpassDependency > & outDeps,
Util::FixedArray< VkAttachmentDescription > & outAttachments,
Util::Array< uint32 > & usedAttachmentCounts,
Util::FixedArray< VkPipelineViewportStateCreateInfo > & outPipelineInfos,
uint32 & numUsedAttachmentsTotal )

◆ GetVertexBuffer()

const CoreGraphics::BufferId CoreGraphics::GetVertexBuffer ( )

Get vertex buffer.

◆ GetVisualizeMipMaps()

bool CoreGraphics::GetVisualizeMipMaps ( )

get visualization of mipmaps flag

◆ ID_24_8_24_8_NAMED_TYPE()

CoreGraphics::ID_24_8_24_8_NAMED_TYPE ( ShaderProgramId ,
programId ,
programGeneration ,
shaderId ,
shaderGeneration ,
program ,
shader  )

◆ ImageBitsFromString()

CoreGraphics::ImageBits CoreGraphics::ImageBitsFromString ( const Util::String & str)
inline

◆ ImageGetAlphaPtr()

const byte * CoreGraphics::ImageGetAlphaPtr ( const ImageId id)

get pointer to first element if alpha channel

◆ ImageGetBluePtr()

const byte * CoreGraphics::ImageGetBluePtr ( const ImageId id)

get pointer to first element of blue channel

◆ ImageGetBuffer()

const byte * CoreGraphics::ImageGetBuffer ( const ImageId id)

get pointer to buffer

◆ ImageGetChannelPrimitive()

ImageChannelPrimitive CoreGraphics::ImageGetChannelPrimitive ( const ImageId id)

get channel primitive

◆ ImageGetDimensions()

ImageDimensions CoreGraphics::ImageGetDimensions ( const ImageId id)

get image dimensions

◆ ImageGetGreenPtr()

const byte * CoreGraphics::ImageGetGreenPtr ( const ImageId id)

get pointer to first element of green channel

◆ ImageGetPixelStride()

const SizeT CoreGraphics::ImageGetPixelStride ( const ImageId id)

get pixel stride, using the above pointers makes it possible to get all reds, blues, greens, etc.

◆ ImageGetRedPtr()

const byte * CoreGraphics::ImageGetRedPtr ( const ImageId id)

get pointer to first element of red channel

◆ ImageLayoutFromString()

CoreGraphics::ImageLayout CoreGraphics::ImageLayoutFromString ( const Util::String & str)
inline

◆ LoadMips()

uint CoreGraphics::LoadMips ( CoreGraphics::CmdBufferId cmdBuf,
TextureStreamData * streamData,
uint bitsToLoad,
const CoreGraphics::TextureId texture,
Util::Array< Memory::RangeAllocation > & rangesToFlush )

◆ LockConstantUpdates()

void CoreGraphics::LockConstantUpdates ( )

Lock constant updates.

◆ LockGraphicsSetupCommandBuffer()

const CoreGraphics::CmdBufferId CoreGraphics::LockGraphicsSetupCommandBuffer ( const char * name = nullptr)

Lock immediate graphics command buffer.

◆ LockTransferHandoverSetupCommandBuffer()

const CoreGraphics::CmdBufferId CoreGraphics::LockTransferHandoverSetupCommandBuffer ( )

Lock handover transfer command buffer.

◆ LockTransferSetupCommandBuffer()

const CoreGraphics::CmdBufferId CoreGraphics::LockTransferSetupCommandBuffer ( )

Lock resource command buffer.

◆ MeshBind()

const void CoreGraphics::MeshBind ( const MeshId id,
const CoreGraphics::CmdBufferId cmd )

Bind mesh on command buffer.

◆ MeshGetIndexBuffer()

const BufferId CoreGraphics::MeshGetIndexBuffer ( const MeshId id)

get index buffer

◆ MeshGetIndexOffset()

const uint CoreGraphics::MeshGetIndexOffset ( const MeshId id)

Get index buffer base offset.

◆ MeshGetIndexType()

const IndexType::Code CoreGraphics::MeshGetIndexType ( const MeshId id)

Get index type.

◆ MeshGetPrimitiveGroup()

const CoreGraphics::PrimitiveGroup CoreGraphics::MeshGetPrimitiveGroup ( const MeshId id,
const IndexT group )

get primitive group

◆ MeshGetPrimitiveGroups()

const Util::Array< CoreGraphics::PrimitiveGroup > & CoreGraphics::MeshGetPrimitiveGroups ( const MeshId id)

get number of primitive groups

◆ MeshGetTopology()

const CoreGraphics::PrimitiveTopology::Code CoreGraphics::MeshGetTopology ( const MeshId id)

Get topology.

◆ MeshGetVertexBuffer()

const BufferId CoreGraphics::MeshGetVertexBuffer ( const MeshId id,
const IndexT stream )

get vertex buffer

◆ MeshGetVertexLayout()

const CoreGraphics::VertexLayoutId CoreGraphics::MeshGetVertexLayout ( const MeshId id)

Get vertex layout.

◆ MeshGetVertexOffset()

const uint CoreGraphics::MeshGetVertexOffset ( const MeshId id,
const IndexT stream )

Get mesh vertex offset.

◆ MeshResourceGetMesh()

const MeshId CoreGraphics::MeshResourceGetMesh ( const MeshResourceId id,
const IndexT index )

Get mesh.

◆ MeshResourceGetNumMeshes()

const SizeT CoreGraphics::MeshResourceGetNumMeshes ( const MeshResourceId id)

Get number of meshes.

◆ MeshSetVertexBuffer()

const void CoreGraphics::MeshSetVertexBuffer ( const MeshId id,
const BufferId buffer,
const IndexT stream )

Set vertex buffer.

◆ N_DECLARE_COUNTER() [1/8]

CoreGraphics::N_DECLARE_COUNTER ( N_CONSTANT_MEMORY ,
Graphics Constant Memory )

◆ N_DECLARE_COUNTER() [2/8]

CoreGraphics::N_DECLARE_COUNTER ( N_DEVICE_ONLY_GPU_MEMORY ,
Device Only GPU Memory )

◆ N_DECLARE_COUNTER() [3/8]

CoreGraphics::N_DECLARE_COUNTER ( N_DEVICE_TO_HOST_GPU_MEMORY ,
Device To Host GPU Memory )

◆ N_DECLARE_COUNTER() [4/8]

CoreGraphics::N_DECLARE_COUNTER ( N_HOST_ONLY_GPU_MEMORY ,
Host Only GPU Memory )

◆ N_DECLARE_COUNTER() [5/8]

CoreGraphics::N_DECLARE_COUNTER ( N_HOST_TO_DEVICE_GPU_MEMORY ,
Host To Device GPU Memory )

◆ N_DECLARE_COUNTER() [6/8]

CoreGraphics::N_DECLARE_COUNTER ( N_INDEX_MEMORY ,
Index Memory )

◆ N_DECLARE_COUNTER() [7/8]

CoreGraphics::N_DECLARE_COUNTER ( N_UPLOAD_MEMORY ,
Upload Memory )

◆ N_DECLARE_COUNTER() [8/8]

CoreGraphics::N_DECLARE_COUNTER ( N_VERTEX_MEMORY ,
Vertex Memory )

◆ NewFrame()

void CoreGraphics::NewFrame ( )

Progress to next frame.

◆ NotifyEventHandlers()

bool CoreGraphics::NotifyEventHandlers ( const CoreGraphics::RenderEvent & e)

notify event handlers about an event

◆ ParseMarkersAndTime()

void CoreGraphics::ParseMarkersAndTime ( CoreGraphics::FrameProfilingMarker & marker,
uint64 * data,
const uint64 & offset )

◆ PassGetAttachments()

const Util::Array< CoreGraphics::TextureViewId > & CoreGraphics::PassGetAttachments ( const CoreGraphics::PassId id)

get number of color attachments for entire pass (attachment list)

◆ PassGetName()

const Util::StringAtom CoreGraphics::PassGetName ( const CoreGraphics::PassId id)

get name

◆ PassGetNumSubpassAttachments()

const uint32_t CoreGraphics::PassGetNumSubpassAttachments ( const CoreGraphics::PassId id,
const IndexT subpass )

get number of color attachments for a subpass

◆ PassGetResourceTable()

const CoreGraphics::ResourceTableId CoreGraphics::PassGetResourceTable ( const CoreGraphics::PassId id)

Get pass resource table.

◆ PassSetRenderTargetParameters()

void CoreGraphics::PassSetRenderTargetParameters ( const PassId id,
const Util::FixedArray< Shared::RenderTargetParameters > & viewports )

Set viewports.

◆ PassWindowResizeCallback()

void CoreGraphics::PassWindowResizeCallback ( const PassId id)

called when window is resized

◆ PipelineStageFromString()

PipelineStage CoreGraphics::PipelineStageFromString ( const Util::String & str)
inline

◆ PipelineStageWrites()

bool CoreGraphics::PipelineStageWrites ( const PipelineStage stage)
inline

◆ PollSubmissionIndex()

bool CoreGraphics::PollSubmissionIndex ( const CoreGraphics::QueueType queue,
uint64 index )

Poll a submission for completion.

◆ QueueNameFromQueueType()

const char * CoreGraphics::QueueNameFromQueueType ( const QueueType type)
inline

◆ QueueTypeFromString()

QueueType CoreGraphics::QueueTypeFromString ( const Util::String & str)
inline

◆ ReloadShader()

void CoreGraphics::ReloadShader ( const ShaderId id,
const AnyFX::ShaderEffect * effect )

Reload shader.

◆ ReloadShaderProgram()

void CoreGraphics::ReloadShaderProgram ( const CoreGraphics::ShaderProgramId & pro)

trigger reloading a shader

◆ RemoveBackBufferTexture()

void CoreGraphics::RemoveBackBufferTexture ( const CoreGraphics::TextureId tex)

remove a render texture

◆ RemoveEventHandler()

void CoreGraphics::RemoveEventHandler ( const Ptr< CoreGraphics::RenderEventHandler > & h)

remove a render event handler

◆ ResourceTableBlock()

void CoreGraphics::ResourceTableBlock ( bool b)

disallow the resource table system to make modifications

◆ ResourceTableCommitChanges()

void CoreGraphics::ResourceTableCommitChanges ( const ResourceTableId id)

apply updates of previous sets

◆ ResourceTableCopy()

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

◆ ResourceTableGetLayout()

const ResourceTableLayoutId & CoreGraphics::ResourceTableGetLayout ( CoreGraphics::ResourceTableId id)

Get resource table layout.

◆ ResourceTableSetAccelerationStructure()

void CoreGraphics::ResourceTableSetAccelerationStructure ( const ResourceTableId id,
const ResourceTableTlas & tlas )

Set resource table acceleration structure.

◆ ResourceTableSetConstantBuffer()

void CoreGraphics::ResourceTableSetConstantBuffer ( const ResourceTableId id,
const ResourceTableBuffer & buf )

set resource table constant buffer

◆ ResourceTableSetInputAttachment()

void CoreGraphics::ResourceTableSetInputAttachment ( const ResourceTableId id,
const ResourceTableInputAttachment & tex )

set resource table input attachment

◆ ResourceTableSetRWBuffer()

void CoreGraphics::ResourceTableSetRWBuffer ( const ResourceTableId id,
const ResourceTableBuffer & buf )

set resource table shader rw buffer

◆ ResourceTableSetRWTexture() [1/2]

void CoreGraphics::ResourceTableSetRWTexture ( const ResourceTableId id,
const ResourceTableTexture & tex )

set resource table texture as read-write

◆ ResourceTableSetRWTexture() [2/2]

void CoreGraphics::ResourceTableSetRWTexture ( const ResourceTableId id,
const ResourceTableTextureView & tex )

set resource table texture as read-write

◆ ResourceTableSetSampler()

void CoreGraphics::ResourceTableSetSampler ( const ResourceTableId id,
const ResourceTableSampler & samp )

set resource table sampler

◆ ResourceTableSetTexture() [1/2]

void CoreGraphics::ResourceTableSetTexture ( const ResourceTableId id,
const ResourceTableTexture & tex )

set resource table texture

◆ ResourceTableSetTexture() [2/2]

void CoreGraphics::ResourceTableSetTexture ( const ResourceTableId id,
const ResourceTableTextureView & tex )

set resource table texture

◆ SaveScreenshot() [1/2]

CoreGraphics::ImageFileFormat::Code CoreGraphics::SaveScreenshot ( CoreGraphics::ImageFileFormat::Code fmt,
const Ptr< IO::Stream > & outStream )

save a screenshot to the provided stream

◆ SaveScreenshot() [2/2]

CoreGraphics::ImageFileFormat::Code CoreGraphics::SaveScreenshot ( CoreGraphics::ImageFileFormat::Code fmt,
const Ptr< IO::Stream > & outStream,
const Math::rectangle< int > & rect,
int x,
int y )

save a region of the screen to the provided stream

◆ SaveTexture() [1/2]

bool CoreGraphics::SaveTexture ( const Resources::ResourceId & id,
const IO::URI & path,
IndexT mip,
CoreGraphics::ImageFileFormat::Code code )

Save texture to path with wanted image format, and select mip map.

◆ SaveTexture() [2/2]

bool CoreGraphics::SaveTexture ( const Resources::ResourceId & id,
const Ptr< IO::Stream > & stream,
IndexT mip,
CoreGraphics::ImageFileFormat::Code code )

◆ SemaphoreGetValue()

uint64 CoreGraphics::SemaphoreGetValue ( const SemaphoreId & semaphore)

get semaphore index

◆ SemaphoreReset()

void CoreGraphics::SemaphoreReset ( const SemaphoreId & semaphore)

reset semaphore

◆ SemaphoreSignal()

void CoreGraphics::SemaphoreSignal ( const SemaphoreId & semaphore)

signal semaphore

◆ SetConstants() [1/6]

template<class TYPE >
uint CoreGraphics::SetConstants ( const TYPE & data)
inline

Allocate range of memory and set data, return offset (thread safe)

◆ SetConstants() [2/6]

template<class TYPE >
ConstantBufferOffset CoreGraphics::SetConstants ( const TYPE & data)
inline

Allocate range of memory and set data, return offset (thread safe)

◆ SetConstants() [3/6]

template<class TYPE >
uint CoreGraphics::SetConstants ( const TYPE * data,
SizeT elements )
inline

Allocate range of memory and set data as an array of elements, return offset (thread safe)

◆ SetConstants() [4/6]

template<class TYPE >
ConstantBufferOffset CoreGraphics::SetConstants ( const TYPE * data,
SizeT numElements )
inline

Allocate range of memory and set data as an array of elements, return offset (thread safe)

◆ SetConstants() [5/6]

template<class TYPE >
void CoreGraphics::SetConstants ( ConstantBufferOffset offset,
const TYPE & data )
inline

Set constants based on pre-allocated memory (thread safe)

◆ SetConstants() [6/6]

template<class TYPE >
void CoreGraphics::SetConstants ( ConstantBufferOffset offset,
const TYPE * data,
SizeT numElements )
inline

Set constants based on pre-allocated memory (thread safe)

◆ SetConstantsInternal()

void CoreGraphics::SetConstantsInternal ( ConstantBufferOffset offset,
const void * data,
SizeT size )

Use pre-allocated range of memory to update graphics constants.

Set constants for preallocated memory.

◆ SetRenderWireframe()

void CoreGraphics::SetRenderWireframe ( bool b)

set the render as wireframe flag

◆ SetShaderProgram()

void CoreGraphics::SetShaderProgram ( const CoreGraphics::ShaderProgramId pro,
const CoreGraphics::QueueType queue,
const bool bindSharedResources )

◆ SetupDescriptorSize()

void CoreGraphics::SetupDescriptorSize ( VkDescriptorPoolSize & size,
Util::HashTable< uint32_t, uint32_t > & counter,
Util::Array< VkDescriptorPoolSize > & outSizes )

◆ SetupMemoryPools()

void CoreGraphics::SetupMemoryPools ( DeviceSize deviceLocalMemory,
DeviceSize hostLocalMemory,
DeviceSize hostToDeviceMemory,
DeviceSize deviceToHostMemory )

setup memory pools

◆ SetupPass()

void CoreGraphics::SetupPass ( const PassId pid)

◆ SetupTexture()

void CoreGraphics::SetupTexture ( const TextureId id)

◆ SetVisualizeMipMaps()

void CoreGraphics::SetVisualizeMipMaps ( bool val)

set visualization of mipmaps flag

◆ ShaderCalculateConstantBufferIndex()

const uint CoreGraphics::ShaderCalculateConstantBufferIndex ( const uint64 bindingMask,
const IndexT slot )

Calculate buffer index using binding mask and slot.

◆ ShaderCreateConstantBuffer() [1/3]

const CoreGraphics::BufferId CoreGraphics::ShaderCreateConstantBuffer ( const ShaderId id,
const IndexT cbIndex,
CoreGraphics::BufferAccessMode mode = BufferAccessMode::HostCached )

create constant buffer from index

◆ ShaderCreateConstantBuffer() [2/3]

const BufferId CoreGraphics::ShaderCreateConstantBuffer ( const ShaderId id,
const IndexT group,
const IndexT cbIndex,
BufferAccessMode mode = BufferAccessMode::HostCached )

create constant buffer from index

◆ ShaderCreateConstantBuffer() [3/3]

const CoreGraphics::BufferId CoreGraphics::ShaderCreateConstantBuffer ( const ShaderId id,
const Util::StringAtom & name,
CoreGraphics::BufferAccessMode mode = BufferAccessMode::HostCached )

create constant buffer from shader using name (don't use too frequently)

◆ ShaderCreateResourceTable()

const CoreGraphics::ResourceTableId CoreGraphics::ShaderCreateResourceTable ( const ShaderId id,
const IndexT group,
const uint overallocationSize = 1 )

create resource table from shader

◆ ShaderCreateResourceTableSet()

ResourceTableSet CoreGraphics::ShaderCreateResourceTableSet ( const ShaderId id,
const IndexT group,
const uint overallocationSize = 1 )

create resource table set from shader

◆ ShaderFeatureMask()

CoreGraphics::ShaderFeature::Mask CoreGraphics::ShaderFeatureMask ( const Util::String & mask)

Get shader feature mask from string.

◆ ShaderGet()

const ShaderId CoreGraphics::ShaderGet ( const Resources::ResourceName & name)

get shader by name

◆ ShaderGetConstantBinding() [1/2]

const IndexT CoreGraphics::ShaderGetConstantBinding ( const ShaderId id,
const IndexT cIndex )

get constant buffer binding by index

◆ ShaderGetConstantBinding() [2/2]

const IndexT CoreGraphics::ShaderGetConstantBinding ( const ShaderId id,
const Util::StringAtom & name )

get constant buffer binding by name

◆ ShaderGetConstantBindingsCount()

const SizeT CoreGraphics::ShaderGetConstantBindingsCount ( const ShaderId id)

get count of constant buffer bindings (for iteration)

◆ ShaderGetConstantBlockName() [1/2]

const Util::StringAtom CoreGraphics::ShaderGetConstantBlockName ( const ShaderId id,
const IndexT cIndex )

get name of constant buffer where in constant with index resides

◆ ShaderGetConstantBlockName() [2/2]

const Util::StringAtom CoreGraphics::ShaderGetConstantBlockName ( const ShaderId id,
const Util::StringAtom & name )

get name of constant buffer wherein constant with name resides

◆ ShaderGetConstantBufferBindingMask()

const uint64 CoreGraphics::ShaderGetConstantBufferBindingMask ( const ShaderId id,
const IndexT group )

Get mask of constant buffers.

◆ ShaderGetConstantBufferCount()

const SizeT CoreGraphics::ShaderGetConstantBufferCount ( const ShaderId id)

get the number of constant buffers from shader

◆ ShaderGetConstantBufferName()

const Util::StringAtom CoreGraphics::ShaderGetConstantBufferName ( const ShaderId id,
const IndexT i )

get name of constant buffer

◆ ShaderGetConstantBufferResourceGroup()

const IndexT CoreGraphics::ShaderGetConstantBufferResourceGroup ( const ShaderId id,
const IndexT i )

get group of constant buffer

◆ ShaderGetConstantBufferResourceSlot()

const IndexT CoreGraphics::ShaderGetConstantBufferResourceSlot ( const ShaderId id,
const IndexT i )

get binding inside group of constant buffer

◆ ShaderGetConstantBufferSize() [1/2]

const uint64 CoreGraphics::ShaderGetConstantBufferSize ( const ShaderId id,
const IndexT group,
const IndexT i )

Get size of constant buffer at binding point.

◆ ShaderGetConstantBufferSize() [2/2]

const SizeT CoreGraphics::ShaderGetConstantBufferSize ( const ShaderId id,
const IndexT i )

get size of constant buffer

◆ ShaderGetConstantCount()

const SizeT CoreGraphics::ShaderGetConstantCount ( const ShaderId id)

get the number of constants from shader

◆ ShaderGetConstantGroup()

const IndexT CoreGraphics::ShaderGetConstantGroup ( const ShaderId id,
const Util::StringAtom & name )

get group to which constant is bound (the constant buffer which it resides in)

◆ ShaderGetConstantName()

const Util::StringAtom CoreGraphics::ShaderGetConstantName ( const ShaderId id,
const IndexT i )

get name of variable by index

◆ ShaderGetConstantSlot()

const IndexT CoreGraphics::ShaderGetConstantSlot ( const ShaderId id,
const Util::StringAtom & name )

get binding inside group of the constant buffer the constant lies in

◆ ShaderGetConstantType() [1/2]

const CoreGraphics::ShaderConstantType CoreGraphics::ShaderGetConstantType ( const ShaderId id,
const IndexT i )

get type of variable by index

◆ ShaderGetConstantType() [2/2]

const CoreGraphics::ShaderConstantType CoreGraphics::ShaderGetConstantType ( const ShaderId id,
const Util::StringAtom & name )

get type of variable by index

◆ ShaderGetName()

const Resources::ResourceName CoreGraphics::ShaderGetName ( const ShaderId id)

Get name of shader.

◆ ShaderGetProgram()

const CoreGraphics::ShaderProgramId CoreGraphics::ShaderGetProgram ( const ShaderId id,
const CoreGraphics::ShaderFeature::Mask mask )

get shader program id from masks, this allows us to apply a shader program directly in the future

◆ ShaderGetProgramName()

Util::StringAtom CoreGraphics::ShaderGetProgramName ( CoreGraphics::ShaderProgramId id)

◆ ShaderGetPrograms()

const Util::Dictionary< CoreGraphics::ShaderFeature::Mask, CoreGraphics::ShaderProgramId > & CoreGraphics::ShaderGetPrograms ( const ShaderId id)

get programs

◆ ShaderGetResourcePipeline()

CoreGraphics::ResourcePipelineId CoreGraphics::ShaderGetResourcePipeline ( const ShaderId id)

get pipeline layout for shader

◆ ShaderGetResourceSlot()

const IndexT CoreGraphics::ShaderGetResourceSlot ( const ShaderId id,
const Util::StringAtom & name )

get slot of any shader resource

◆ ShaderGetResourceTableLayout()

CoreGraphics::ResourceTableLayoutId CoreGraphics::ShaderGetResourceTableLayout ( const ShaderId id,
const IndexT group )

get resource table layout

◆ ShaderGetShaderProgram()

CoreGraphics::ShaderProgramId CoreGraphics::ShaderGetShaderProgram ( const CoreGraphics::ShaderId shaderId,
const CoreGraphics::ShaderFeature::Mask mask )

◆ ShaderHasResourceTable()

const bool CoreGraphics::ShaderHasResourceTable ( const ShaderId id,
const IndexT group )

Returns true if there is a resource table for the given group in the shader.

◆ ShaderProgramGetName()

const Util::StringAtom CoreGraphics::ShaderProgramGetName ( const ShaderProgramId id)

get name of program

◆ ShaderProgramGetRaytracingBits()

RayTracingBits CoreGraphics::ShaderProgramGetRaytracingBits ( const ShaderProgramId id)

◆ ShaderVisibilityFromString()

ShaderVisibility CoreGraphics::ShaderVisibilityFromString ( const Util::String & str)
inline

◆ SubmitCommandBuffers()

CoreGraphics::SubmissionWaitEvent CoreGraphics::SubmitCommandBuffers ( const Util::Array< CoreGraphics::CmdBufferId, 8 > & cmds,
CoreGraphics::QueueType type,
Util::Array< CoreGraphics::SubmissionWaitEvent, 8 > waitEvents = nullptr )

Submit a command buffer, but doesn't necessarily execute it immediately.

◆ SubmitImmediateCommandBuffers()

void CoreGraphics::SubmitImmediateCommandBuffers ( )

Submit immediate command buffers.

◆ SwapchainAllocateCmds()

CoreGraphics::CmdBufferId CoreGraphics::SwapchainAllocateCmds ( const SwapchainId id)

Allocate command buffer for swapchain operations.

◆ SwapchainCopy()

void CoreGraphics::SwapchainCopy ( const SwapchainId id,
const CoreGraphics::CmdBufferId cmdBuf,
const CoreGraphics::TextureId source )

Copy to current backbuffer (call after swap)

◆ SwapchainGetQueueType()

CoreGraphics::QueueType CoreGraphics::SwapchainGetQueueType ( const SwapchainId id)

Get queue to use for swapchain.

◆ SwapchainPresent()

void CoreGraphics::SwapchainPresent ( const SwapchainId id)

Present.

◆ SwapchainSwap()

void CoreGraphics::SwapchainSwap ( const SwapchainId id)

Swap buffers.

◆ TextureClearColor()

void CoreGraphics::TextureClearColor ( const CoreGraphics::CmdBufferId cmd,
const CoreGraphics::TextureId id,
Math::vec4 color,
const CoreGraphics::ImageLayout layout,
const CoreGraphics::TextureSubresourceInfo & subres )

clear texture with color

◆ TextureClearDepthStencil()

void CoreGraphics::TextureClearDepthStencil ( const CoreGraphics::CmdBufferId cmd,
const CoreGraphics::TextureId id,
float depth,
uint stencil,
const CoreGraphics::ImageLayout layout,
const CoreGraphics::TextureSubresourceInfo & subres )

clear texture with depth-stencil

◆ TextureGenerateMipmaps()

void CoreGraphics::TextureGenerateMipmaps ( const CoreGraphics::CmdBufferId cmdBuf,
const TextureId id )

generate mipmaps for texture

◆ TextureGetAdjustedInfo()

TextureCreateInfoAdjusted CoreGraphics::TextureGetAdjustedInfo ( const TextureCreateInfo & info)

helper function to setup RenderTextureInfo, already implemented

◆ TextureGetAlias()

const CoreGraphics::TextureId CoreGraphics::TextureGetAlias ( const TextureId id)

get texture alias, returns invalid id if not aliased

◆ TextureGetBindlessHandle()

uint CoreGraphics::TextureGetBindlessHandle ( const TextureId id)

get bindless texture handle

◆ TextureGetCreated()

const Util::Array< CoreGraphics::TextureId > & CoreGraphics::TextureGetCreated ( )

◆ TextureGetDefaultLayout()

const CoreGraphics::ImageLayout CoreGraphics::TextureGetDefaultLayout ( const TextureId id)

get default texture layout

◆ TextureGetDimensions()

CoreGraphics::TextureDimensions CoreGraphics::TextureGetDimensions ( const TextureId id)

get texture dimensions

◆ TextureGetName()

Util::StringAtom CoreGraphics::TextureGetName ( const TextureId id)

Get name of texture.

◆ TextureGetNumLayers()

SizeT CoreGraphics::TextureGetNumLayers ( const TextureId id)

get number of layers

◆ TextureGetNumMips()

SizeT CoreGraphics::TextureGetNumMips ( const TextureId id)

get number of mips

◆ TextureGetNumSamples()

SizeT CoreGraphics::TextureGetNumSamples ( const TextureId id)

get sample count

◆ TextureGetPixelFormat()

CoreGraphics::PixelFormat::Code CoreGraphics::TextureGetPixelFormat ( const TextureId id)

get texture pixel format

◆ TextureGetRelativeDimensions()

CoreGraphics::TextureRelativeDimensions CoreGraphics::TextureGetRelativeDimensions ( const TextureId id)

get texture relative dimensions

◆ TextureGetStencilBindlessHandle()

uint CoreGraphics::TextureGetStencilBindlessHandle ( const TextureId id)

get bindless texture handle

◆ TextureGetType()

CoreGraphics::TextureType CoreGraphics::TextureGetType ( const TextureId id)

get texture type

◆ TextureGetUsage()

const CoreGraphics::TextureUsage CoreGraphics::TextureGetUsage ( const TextureId id)

get texture usage

◆ TextureSetHighestLod()

void CoreGraphics::TextureSetHighestLod ( const CoreGraphics::TextureId id,
uint lod )

Set highest LOD on texture.

◆ TextureSparseCommitChanges()

void CoreGraphics::TextureSparseCommitChanges ( const CoreGraphics::TextureId id)

commit texture sparse page updates

◆ TextureSparseEvict()

void CoreGraphics::TextureSparseEvict ( const CoreGraphics::TextureId id,
IndexT layer,
IndexT mip,
IndexT pageIndex )

evict a page

◆ TextureSparseEvictMip()

void CoreGraphics::TextureSparseEvictMip ( const CoreGraphics::TextureId id,
IndexT layer,
IndexT mip )

evict a whole mip

◆ TextureSparseGetMaxMip()

IndexT CoreGraphics::TextureSparseGetMaxMip ( const CoreGraphics::TextureId id)

get highest sparse mip

◆ TextureSparseGetNumPages()

SizeT CoreGraphics::TextureSparseGetNumPages ( const CoreGraphics::TextureId id,
IndexT layer,
IndexT mip )

get the number of pages for a given layer and mip

◆ TextureSparseGetPage()

const CoreGraphics::TextureSparsePage & CoreGraphics::TextureSparseGetPage ( const CoreGraphics::TextureId id,
IndexT layer,
IndexT mip,
IndexT pageIndex )

get texture page

◆ TextureSparseGetPageIndex()

IndexT CoreGraphics::TextureSparseGetPageIndex ( const CoreGraphics::TextureId id,
IndexT layer,
IndexT mip,
IndexT x,
IndexT y,
IndexT z )

get the page index at a given coordinate

◆ TextureSparseGetPageSize()

CoreGraphics::TextureSparsePageSize CoreGraphics::TextureSparseGetPageSize ( const CoreGraphics::TextureId id)

get the texture page size, which is constant for the whole texture

◆ TextureSparseMakeMipResident()

void CoreGraphics::TextureSparseMakeMipResident ( const CoreGraphics::TextureId id,
IndexT layer,
IndexT mip )

make a whole mip resident

◆ TextureSparseMakeResident()

void CoreGraphics::TextureSparseMakeResident ( const CoreGraphics::TextureId id,
IndexT layer,
IndexT mip,
IndexT pageIndex )

make a page resident

◆ TextureSparseUpdate() [1/3]

void CoreGraphics::TextureSparseUpdate ( const CoreGraphics::CmdBufferId cmdBuf,
const CoreGraphics::TextureId id,
const Math::rectangle< uint > & region,
IndexT mip,
IndexT layer,
char * buf )

◆ TextureSparseUpdate() [2/3]

void CoreGraphics::TextureSparseUpdate ( const CoreGraphics::CmdBufferId cmdBuf,
const CoreGraphics::TextureId id,
const Math::rectangle< uint > & region,
IndexT mip,
IndexT layer,
const CoreGraphics::TextureId source )

◆ TextureSparseUpdate() [3/3]

void CoreGraphics::TextureSparseUpdate ( const CoreGraphics::CmdBufferId cmdBuf,
const CoreGraphics::TextureId id,
IndexT mip,
IndexT layer,
char * buf )

◆ TextureTypeFromString()

TextureType CoreGraphics::TextureTypeFromString ( const Util::String & string)
inline

◆ TextureUpdate()

bool CoreGraphics::TextureUpdate ( const CoreGraphics::CmdBufferId cmd,
CoreGraphics::TextureId tex,
const SizeT width,
SizeT height,
SizeT mip,
SizeT layer,
const void * data,
SizeT dataSize )

Update texture from data buffer, returns true if there is enough upload heap space.

◆ TextureUsageFromString()

TextureUsage CoreGraphics::TextureUsageFromString ( const Util::String & string)
inline

◆ TextureViewGetTexture()

TextureId CoreGraphics::TextureViewGetTexture ( const TextureViewId id)

get texture

◆ TextureViewReload()

void CoreGraphics::TextureViewReload ( const TextureViewId id)

reload texture view by creating a new backend view with the old texture (assuming it's changed)

◆ TextureWindowResized()

void CoreGraphics::TextureWindowResized ( const TextureId id)

If texture is bound to the window resolution, reset the internal texture without mucking with the texture id.

◆ TlasInitBuild()

void CoreGraphics::TlasInitBuild ( const TlasId tlas)

Initiate Tlas for build.

◆ TlasInitUpdate()

void CoreGraphics::TlasInitUpdate ( const TlasId tlas)

Initiate Tlas for update.

◆ ToNebulaSamplerCreateInfo()

SamplerCreateInfo CoreGraphics::ToNebulaSamplerCreateInfo ( const VkSamplerCreateInfo & info)

use vulkan sampler create info to create Nebula sampler create info

◆ ToVkBorderMode()

VkBorderColor CoreGraphics::ToVkBorderMode ( SamplerBorderMode mode)

◆ ToVkCompareOperation()

VkCompareOp CoreGraphics::ToVkCompareOperation ( SamplerCompareOperation op)

◆ ToVkSamplerAddressMode()

VkSamplerAddressMode CoreGraphics::ToVkSamplerAddressMode ( SamplerAddressMode mode)

◆ ToVkSamplerFilter()

VkFilter CoreGraphics::ToVkSamplerFilter ( SamplerFilter filter)

◆ ToVkSamplerMipMapMode()

VkSamplerMipmapMode CoreGraphics::ToVkSamplerMipMapMode ( SamplerMipMode mode)

◆ UnlockConstantUpdates()

void CoreGraphics::UnlockConstantUpdates ( )

Unlock constants.

◆ UnlockGraphicsSetupCommandBuffer()

void CoreGraphics::UnlockGraphicsSetupCommandBuffer ( CoreGraphics::CmdBufferId cmdBuf)

Release lock on immediate graphics command buffer.

◆ UnlockTransferHandoverSetupCommandBuffer()

void CoreGraphics::UnlockTransferHandoverSetupCommandBuffer ( CoreGraphics::CmdBufferId cmdBuf)

Release lock on handover command buffer.

◆ UnlockTransferSetupCommandBuffer()

void CoreGraphics::UnlockTransferSetupCommandBuffer ( CoreGraphics::CmdBufferId cmdBuf)

Release lock on resource command buffer.

◆ Upload() [1/3]

template<class TYPE >
void CoreGraphics::Upload ( const CoreGraphics::BufferId buffer,
uint offset,
const TYPE & data )
inline

Upload item to GPU source buffer with preallocated memory.

◆ Upload() [2/3]

template<class TYPE >
void CoreGraphics::Upload ( const CoreGraphics::BufferId buffer,
uint offset,
const TYPE * data,
SizeT elements )
inline

Upload array of items GPU source buffer with preallocated memory.

◆ Upload() [3/3]

template<class TYPE >
Util::Pair< Memory::RangeAllocation, CoreGraphics::BufferId > CoreGraphics::Upload ( const TYPE & data,
const SizeT alignment = 1 )
inline

Upload single item to GPU source buffer.

◆ UploadArray() [1/2]

template<class TYPE >
Util::Pair< Memory::RangeAllocation, CoreGraphics::BufferId > CoreGraphics::UploadArray ( const TYPE * data,
SizeT elements,
const SizeT alignment = 1 )
inline

Upload array of items to GPU source buffer.

◆ UploadArray() [2/2]

template<>
Util::Pair< Memory::RangeAllocation, CoreGraphics::BufferId > CoreGraphics::UploadArray ( const void * data,
SizeT numBytes,
SizeT alignment )
inline

◆ UploadInternal()

void CoreGraphics::UploadInternal ( const CoreGraphics::BufferId buffer,
uint offset,
const void * data,
SizeT size )

Upload memory to upload buffer with given offset, return offset.

◆ UploadToTexture()

bool CoreGraphics::UploadToTexture ( const CoreGraphics::TextureId texture,
const CoreGraphics::CmdBufferId cmdBuf,
gliml::context & ctx,
uchar layer,
uint mip,
Memory::RangeAllocation & outAlloc )

Attempt to upload texture data to GPU memory May fail if the upload buffer is full, in which case the function returns false.

◆ VertexLayoutGetComponents()

const Util::Array< VertexComponent > & CoreGraphics::VertexLayoutGetComponents ( const VertexLayoutId id)

get components

◆ VertexLayoutGetName()

const Util::StringAtom & CoreGraphics::VertexLayoutGetName ( const VertexLayoutId id)

Get name.

◆ VertexLayoutGetSize()

const SizeT CoreGraphics::VertexLayoutGetSize ( const VertexLayoutId id)

Get byte size.

◆ VertexLayoutGetStreamSize()

const SizeT CoreGraphics::VertexLayoutGetStreamSize ( const VertexLayoutId id,
IndexT stream )

Get byte size per stream.

◆ VkScissorToRect()

Math::rectangle< int > CoreGraphics::VkScissorToRect ( const VkRect2D & sc)

◆ VkViewportToRect()

Math::rectangle< int > CoreGraphics::VkViewportToRect ( const VkViewport & vp)

◆ WaitAndClearPendingCommands()

void CoreGraphics::WaitAndClearPendingCommands ( )

wait for all queues to finish

◆ WaitForQueue()

void CoreGraphics::WaitForQueue ( CoreGraphics::QueueType queue)

wait for an individual queue to finish

◆ WindowApplyFullscreen()

void CoreGraphics::WindowApplyFullscreen ( const WindowId id,
Adapter::Code monitor,
bool b )

toggle fullscreen

◆ WindowGetAAQuality()

const CoreGraphics::AntiAliasQuality::Code CoreGraphics::WindowGetAAQuality ( const WindowId id)

get display antialias quality

◆ WindowGetContentScale()

Math::vec2 CoreGraphics::WindowGetContentScale ( const WindowId id)

retrieve window content scaling (ratio between current DPI and platform default DPI)

◆ WindowGetDisplayMode()

const CoreGraphics::DisplayMode CoreGraphics::WindowGetDisplayMode ( const WindowId id)

get display mode from window

◆ WindowGetIcon()

const Util::StringAtom & CoreGraphics::WindowGetIcon ( const WindowId id)

get window icon

◆ WindowGetSwapchain()

const CoreGraphics::SwapchainId CoreGraphics::WindowGetSwapchain ( const WindowId id)

Get swapchain associated with this window.

◆ WindowGetTitle()

const Util::StringAtom & CoreGraphics::WindowGetTitle ( const WindowId id)

get window title

◆ WindowIsDecorated()

const bool CoreGraphics::WindowIsDecorated ( const WindowId id)

get if window is modal

◆ WindowIsFullscreen()

const bool CoreGraphics::WindowIsFullscreen ( const WindowId id)

get if fullscreen

◆ WindowIsResizable()

const bool CoreGraphics::WindowIsResizable ( const WindowId id)

get if we are allowed to switch the display mode

◆ WindowMakeCurrent()

void CoreGraphics::WindowMakeCurrent ( const WindowId id)

make window 'current'

◆ WindowNewFrame()

void CoreGraphics::WindowNewFrame ( const WindowId id)

Do new frame stuff for window.

◆ WindowPollEvents()

void CoreGraphics::WindowPollEvents ( )

poll events for window

◆ WindowPresent()

void CoreGraphics::WindowPresent ( const WindowId id,
const IndexT frameIndex )

present window

◆ WindowResize()

void CoreGraphics::WindowResize ( const WindowId id,
SizeT newWidth,
SizeT newHeight )

resize window

◆ WindowSetCursorLocked()

void CoreGraphics::WindowSetCursorLocked ( const WindowId id,
bool b )

set if the cursor should be locked to the window

◆ WindowSetCursorVisible()

void CoreGraphics::WindowSetCursorVisible ( const WindowId id,
bool b )

set if the cursor should be visible

◆ WindowSetTitle()

void CoreGraphics::WindowSetTitle ( const WindowId id,
const Util::String & title )

set title for window

Variable Documentation

◆ AccelerationStructureScratchAlignment

uint CoreGraphics::AccelerationStructureScratchAlignment = UINT_MAX

Raytracing properties.

◆ AllocationLock

Threading::CriticalSection CoreGraphics::AllocationLock

◆ BarrierStack

Util::Stack<BarrierStackEntry> CoreGraphics::BarrierStack
static

◆ Black2D

TextureId CoreGraphics::Black2D

◆ Blue2D

TextureId CoreGraphics::Blue2D

◆ ConstantBufferAlignment

uint CoreGraphics::ConstantBufferAlignment = UINT_MAX

◆ CurrentWindow

WindowId CoreGraphics::CurrentWindow

◆ DiskMesh

MeshId CoreGraphics::DiskMesh

◆ DynamicVertexInputSupported

bool CoreGraphics::DynamicVertexInputSupported = false

◆ glfwWindowAllocator

GLFWWindowAllocatorType CoreGraphics::glfwWindowAllocator ( 0x00FFFFFF )

◆ Green2D

TextureId CoreGraphics::Green2D

◆ Heaps

Util::Array< MemoryHeap > CoreGraphics::Heaps

◆ imageAllocator

ImageAllocator CoreGraphics::imageAllocator

◆ Layouts

◆ MaxConstantBufferSize

uint64 CoreGraphics::MaxConstantBufferSize = UINT_MAX

◆ MaxNumVertexStreams

const IndexT CoreGraphics::MaxNumVertexStreams = 16
static

max number of vertex streams

◆ MaxPerStageConstantBuffers

uint CoreGraphics::MaxPerStageConstantBuffers = UINT_MAX

◆ MaxPerStageInputAttachments

uint CoreGraphics::MaxPerStageInputAttachments = UINT_MAX

◆ MaxPerStageReadWriteBuffers

uint CoreGraphics::MaxPerStageReadWriteBuffers = UINT_MAX

◆ MaxPerStageReadWriteImages

uint CoreGraphics::MaxPerStageReadWriteImages = UINT_MAX

◆ MaxPerStageSampledImages

uint CoreGraphics::MaxPerStageSampledImages = UINT_MAX

◆ MaxPerStageSamplers

uint CoreGraphics::MaxPerStageSamplers = UINT_MAX

◆ MaxPushConstantSize

uint CoreGraphics::MaxPushConstantSize = UINT_MAX

◆ MaxRecursionDepth

uint CoreGraphics::MaxRecursionDepth = UINT_MAX

◆ MaxResourceTableConstantBuffers

uint CoreGraphics::MaxResourceTableConstantBuffers = UINT_MAX

◆ MaxResourceTableDynamicOffsetConstantBuffers

uint CoreGraphics::MaxResourceTableDynamicOffsetConstantBuffers = UINT_MAX

◆ MaxResourceTableDynamicOffsetReadWriteBuffers

uint CoreGraphics::MaxResourceTableDynamicOffsetReadWriteBuffers = UINT_MAX

◆ MaxResourceTableInputAttachments

uint CoreGraphics::MaxResourceTableInputAttachments = UINT_MAX

◆ MaxResourceTableReadWriteBuffers

uint CoreGraphics::MaxResourceTableReadWriteBuffers = UINT_MAX

◆ MaxResourceTableReadWriteImages

uint CoreGraphics::MaxResourceTableReadWriteImages = UINT_MAX

◆ MaxResourceTableSampledImages

uint CoreGraphics::MaxResourceTableSampledImages = UINT_MAX

◆ MaxResourceTableSamplers

uint CoreGraphics::MaxResourceTableSamplers = UINT_MAX

◆ MemoryRangeGranularity

uint CoreGraphics::MemoryRangeGranularity = UINT_MAX

◆ meshAllocator

MeshAllocator CoreGraphics::meshAllocator

◆ meshResourceAllocator

MeshResourceAllocator CoreGraphics::meshResourceAllocator

◆ MeshShadersSupported

bool CoreGraphics::MeshShadersSupported = false

◆ NvidiaCheckpointsSupported

bool CoreGraphics::NvidiaCheckpointsSupported = false

◆ PendingTableCommits

Util::Array< CoreGraphics::ResourceTableId > CoreGraphics::PendingTableCommits

◆ PendingTableCommitsLock

Threading::CriticalSection CoreGraphics::PendingTableCommitsLock

◆ Pools

Util::Array< MemoryPool > CoreGraphics::Pools

◆ RayTracingSupported

bool CoreGraphics::RayTracingSupported = false

◆ ReadWriteBufferAlignment

uint CoreGraphics::ReadWriteBufferAlignment = UINT_MAX

◆ RectangleMesh

MeshId CoreGraphics::RectangleMesh

◆ Red2D

TextureId CoreGraphics::Red2D

◆ ResourceTableBlocked

bool CoreGraphics::ResourceTableBlocked = false

◆ ShaderGroupAlignment

uint CoreGraphics::ShaderGroupAlignment = UINT_MAX

◆ ShaderGroupSize

uint64 CoreGraphics::ShaderGroupSize = UINT_MAX

◆ SparseAddressSize

uint64 CoreGraphics::SparseAddressSize = UINT_MAX

◆ subpassInfos

Util::FixedArray<SubpassInfo> CoreGraphics::subpassInfos

◆ TextureAutoMips

const ubyte CoreGraphics::TextureAutoMips = 0xFF
static

◆ TimestampPeriod

uint CoreGraphics::TimestampPeriod = UINT_MAX

◆ UniqueSamplerHashes

Util::Dictionary<uint32_t, Ids::Id32> CoreGraphics::UniqueSamplerHashes

◆ UploadLock

Threading::CriticalSection CoreGraphics::UploadLock

◆ VariableRateShadingSupported

bool CoreGraphics::VariableRateShadingSupported = false

◆ vertexAllocationMutex

Threading::CriticalSection CoreGraphics::vertexAllocationMutex

◆ White1D

TextureId CoreGraphics::White1D

◆ White1DArray

TextureId CoreGraphics::White1DArray

◆ White2D

TextureId CoreGraphics::White2D

◆ White2DArray

TextureId CoreGraphics::White2DArray

◆ White3D

TextureId CoreGraphics::White3D

◆ WhiteCube

TextureId CoreGraphics::WhiteCube

◆ WhiteCubeArray

TextureId CoreGraphics::WhiteCubeArray