Nebula
|
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, SwapchainId > | GLFWWindowAllocatorType |
typedef Ids::IdAllocator< ImageLoadInfo > | ImageAllocator |
typedef Ids::IdAllocatorSafe< 0xFFFF, Resources::ResourceName, __Mesh > | MeshAllocator |
typedef Ids::IdAllocator< Util::FixedArray< MeshId > > | MeshResourceAllocator |
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) | |
DrawThread * | CreateDrawThread () |
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::StringAtom & | WindowGetTitle (const WindowId id) |
get window title | |
const Util::StringAtom & | WindowGetIcon (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::BufferId > | AllocateUpload (const SizeT numBytes, const SizeT alignment=1) |
Allocate upload memory. | |
template<class TYPE > | |
Util::Pair< Memory::RangeAllocation, CoreGraphics::BufferId > | Upload (const TYPE &data, const SizeT alignment=1) |
Upload single item to GPU source buffer. | |
template<class TYPE > | |
Util::Pair< Memory::RangeAllocation, CoreGraphics::BufferId > | UploadArray (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::BufferId > | UploadArray (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 ResourceTableLayoutId & | ResourceTableGetLayout (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 TextureSparsePage & | TextureSparseGetPage (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::StringAtom & | VertexLayoutGetName (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 > ®ion, IndexT mip, IndexT layer, const CoreGraphics::TextureId source) |
void | TextureSparseUpdate (const CoreGraphics::CmdBufferId cmdBuf, const CoreGraphics::TextureId id, const Math::rectangle< uint > ®ion, 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) | |
typedef uint CoreGraphics::BufferUsageFlags |
typedef Ids::IdAllocator< GLFWwindow* , CoreGraphics::DisplayMode , IndexT , WindowCreateInfo , ResizeInfo , SwapchainId> CoreGraphics::GLFWWindowAllocatorType |
typedef Ids::IdAllocatorSafe< 0xFFFF, Resources::ResourceName, __Mesh> CoreGraphics::MeshAllocator |
anonymous enum |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
|
strong |
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. |
|
strong |
|
strong |
|
strong |
|
strong |
CoreGraphics::__ImplementClass | ( | CoreGraphics::DisplayEventHandler | , |
'DSEH' | , | ||
Core::RefCounted | ) |
CoreGraphics::__ImplementClass | ( | CoreGraphics::MeshLoader | , |
'VKML' | , | ||
Resources::ResourceLoader | ) |
CoreGraphics::__ImplementClass | ( | CoreGraphics::Nvx3StreamReader | , |
'N3SR' | , | ||
IO::StreamReader | ) |
CoreGraphics::__ImplementClass | ( | CoreGraphics::RenderEventHandler | , |
'RDEH' | , | ||
Core::RefCounted | ) |
CoreGraphics::__ImplementClass | ( | CoreGraphics::ShaderLoader | , |
'VKSL' | , | ||
Resources::ResourceLoader | ) |
CoreGraphics::__ImplementClass | ( | CoreGraphics::TextureLoader | , |
'TXLO' | , | ||
Resources::ResourceLoader | ) |
CoreGraphics::__ImplementClass | ( | CoreGraphics::ThreadSafeDisplayEventHandler | , |
'TDEH' | , | ||
CoreGraphics::DisplayEventHandler | ) |
CoreGraphics::__ImplementClass | ( | CoreGraphics::ThreadSafeRenderEventHandler | , |
'TREH' | , | ||
CoreGraphics::RenderEventHandler | ) |
CoreGraphics::__ImplementEnumBitOperators | ( | AccelerationStructureBuildFlags | ) |
CoreGraphics::__ImplementEnumBitOperators | ( | AttachmentFlagBits | ) |
CoreGraphics::__ImplementEnumBitOperators | ( | BlasInstanceFlags | ) |
CoreGraphics::__ImplementEnumBitOperators | ( | CmdBufferQueryBits | ) |
CoreGraphics::__ImplementEnumBitOperators | ( | CmdPipelineBuildBits | ) |
CoreGraphics::__ImplementEnumBitOperators | ( | CoreGraphics::ImageBits | ) |
CoreGraphics::__ImplementEnumBitOperators | ( | CoreGraphics::ShaderVisibility | ) |
CoreGraphics::__ImplementEnumBitOperators | ( | CoreGraphics::TextureUsage | ) |
CoreGraphics::__ImplementEnumBitOperators | ( | PipelineStage | ) |
CoreGraphics::__ImplementEnumComparisonOperators | ( | AccelerationStructureBuildFlags | ) |
CoreGraphics::__ImplementEnumComparisonOperators | ( | AttachmentFlagBits | ) |
CoreGraphics::__ImplementEnumComparisonOperators | ( | CmdBufferQueryBits | ) |
CoreGraphics::__ImplementEnumComparisonOperators | ( | CmdPipelineBuildBits | ) |
CoreGraphics::__ImplementEnumComparisonOperators | ( | CoreGraphics::ImageBits | ) |
CoreGraphics::__ImplementSingleton | ( | CoreGraphics::ShapeRenderer | ) |
CoreGraphics::__ImplementSingleton | ( | CoreGraphics::TextRenderer | ) |
CoreGraphics::_DECL_ACQUIRE_RELEASE | ( | BlasId | ) |
CoreGraphics::_DECL_ACQUIRE_RELEASE | ( | BlasInstanceId | ) |
CoreGraphics::_DECL_ACQUIRE_RELEASE | ( | BufferId | ) |
CoreGraphics::_DECL_ACQUIRE_RELEASE | ( | CmdBufferId | ) |
CoreGraphics::_DECL_ACQUIRE_RELEASE | ( | MeshId | ) |
CoreGraphics::_DECL_ACQUIRE_RELEASE | ( | TextureId | ) |
CoreGraphics::_IMPL_ACQUIRE_RELEASE | ( | BlasId | , |
Vulkan::blasAllocator | ) |
CoreGraphics::_IMPL_ACQUIRE_RELEASE | ( | BlasInstanceId | , |
Vulkan::blasInstanceAllocator | ) |
CoreGraphics::_IMPL_ACQUIRE_RELEASE | ( | BufferId | , |
bufferAllocator | ) |
CoreGraphics::_IMPL_ACQUIRE_RELEASE | ( | CmdBufferId | , |
commandBuffers | ) |
CoreGraphics::_IMPL_ACQUIRE_RELEASE | ( | MeshId | , |
meshAllocator | ) |
CoreGraphics::_IMPL_ACQUIRE_RELEASE | ( | TextureId | , |
textureAllocator | ) |
void CoreGraphics::AddBackBufferTexture | ( | const CoreGraphics::TextureId | tex | ) |
add a render texture used by the back buffer
void CoreGraphics::AddBinding | ( | Util::HashTable< uint32_t, VkDescriptorSetLayoutBinding > & | bindings, |
const VkDescriptorSetLayoutBinding & | binding ) |
void CoreGraphics::AddSubmissionEvent | ( | const CoreGraphics::SubmissionWaitEvent & | event | ) |
ConstantBufferOffset CoreGraphics::AllocateConstantBufferMemory | ( | uint | size | ) |
Reserve range of constant buffer memory and return offset.
const VertexAlloc CoreGraphics::AllocateIndices | ( | const SizeT | bytes | ) |
Allocate indices from the global index pool by bytes.
const VertexAlloc CoreGraphics::AllocateIndices | ( | const SizeT | numIndices, |
const IndexType::Code | indexType ) |
Allocate indices from the global index pool.
uint CoreGraphics::AllocateQueries | ( | const CoreGraphics::QueryType | type, |
uint | numQueries ) |
Allocate a range of queries.
Util::Pair< Memory::RangeAllocation, CoreGraphics::BufferId > CoreGraphics::AllocateUpload | ( | const SizeT | numBytes, |
const SizeT | alignment = 1 ) |
Allocate upload memory.
const VertexAlloc CoreGraphics::AllocateVertices | ( | const SizeT | bytes | ) |
Allocate vertices from the global vertex pool by bytes.
const VertexAlloc CoreGraphics::AllocateVertices | ( | const SizeT | numVertices, |
const SizeT | vertexSize ) |
Allocate vertices from the global vertex pool.
void CoreGraphics::AttachEventHandler | ( | const Ptr< CoreGraphics::RenderEventHandler > & | h | ) |
attach a render event handler
|
static |
void CoreGraphics::BarrierPop | ( | const CoreGraphics::CmdBufferId | buf | ) |
pop barrier, reverses the from-to stages and any access flags in the buffers and texture barriers
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.
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.
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.
void CoreGraphics::BarrierRepeat | ( | const CoreGraphics::CmdBufferId | buf | ) |
repeat barrier in queue
void CoreGraphics::BarrierReset | ( | const BarrierId | id | ) |
reset resources previously set in barrier
const SizeT CoreGraphics::BlasInstanceGetSize | ( | ) |
Get instance size (platform dependent)
void CoreGraphics::BlasInstanceSetMask | ( | const BlasInstanceId | id, |
uint | mask ) |
Set blas instance mask, setting it to 0x0 will disable it.
void CoreGraphics::BlasInstanceUpdate | ( | const BlasInstanceId | id, |
const Math::mat4 & | transform, | ||
CoreGraphics::BufferId | buf, | ||
uint | offset ) |
Update blas instance and write to buffer.
void CoreGraphics::BlasInstanceUpdate | ( | const BlasInstanceId | id, |
CoreGraphics::BufferId | buf, | ||
uint | offset ) |
Update blas instance and write to buffer.
void CoreGraphics::BufferCopyWithStaging | ( | const CoreGraphics::BufferId | dest, |
const uint | offset, | ||
const void * | data, | ||
const uint | size ) |
Shortcut for creating a staging buffer and copy.
void CoreGraphics::BufferFill | ( | const CoreGraphics::CmdBufferId | cmdBuf, |
const BufferId | id, | ||
char | pattern ) |
fill buffer with data much like memset
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
CoreGraphics::DeviceAddress CoreGraphics::BufferGetDeviceAddress | ( | const BufferId | id | ) |
Get buffer device address.
get buffer element size, this is the size of a single element, like a vertex or index, and is multiplied with the size
get buffer size, which is the number of elements
const BufferUsageFlags CoreGraphics::BufferGetType | ( | const BufferId | id | ) |
get type of buffer
const SizeT CoreGraphics::BufferGetUploadMaxSize | ( | ) |
get maximum size of upload for BufferUpload
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
|
inline |
map memory and cast to type
void * CoreGraphics::BufferMap | ( | const BufferId | id | ) |
map memory
void CoreGraphics::BufferSparseCommitChanges | ( | const BufferId | id | ) |
Commit sparse bindings.
Get the page index given an offset.
Make a page resident.
void CoreGraphics::BufferUnmap | ( | const BufferId | id | ) |
unmap memory
|
inline |
update buffer data
void CoreGraphics::BufferUpdate | ( | const BufferId | id, |
const void * | data, | ||
const uint | size, | ||
const uint | offset = 0 ) |
update buffer data
|
inline |
update buffer data as array
void CoreGraphics::BufferUpdateArray | ( | const BufferId | id, |
const Util::Array< TYPE > & | data, | ||
const uint | offset = 0 ) |
Update buffer data as array.
void CoreGraphics::BufferUpdateArray | ( | const BufferId | id, |
const Util::FixedArray< TYPE > & | data, | ||
const uint | offset = 0 ) |
Update buffer data as array.
|
inline |
upload data from pointer directly to buffer through submission context
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
void CoreGraphics::CmdBarrier | ( | const CmdBufferId | id, |
const CoreGraphics::BarrierId | barrier ) |
Insert execution barrier.
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.
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.
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.
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.
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.
void CoreGraphics::CmdBeginPass | ( | const CmdBufferId | id, |
const CoreGraphics::PassId | pass ) |
Begin pass.
void CoreGraphics::CmdBeginRecord | ( | const CmdBufferId | id, |
const CmdBufferBeginInfo & | info ) |
begin recording to command buffer
void CoreGraphics::CmdBlit | ( | const CmdBufferId | id, |
const CoreGraphics::TextureId | fromTexture, | ||
const CoreGraphics::TextureCopy & | from, | ||
const CoreGraphics::TextureId | toTexture, | ||
const CoreGraphics::TextureCopy & | to ) |
Blit textures.
void CoreGraphics::CmdBuildBlas | ( | const CmdBufferId | id, |
const CoreGraphics::BlasId | blas ) |
Build BLAS.
void CoreGraphics::CmdBuildTlas | ( | const CmdBufferId | id, |
const CoreGraphics::TlasId | tlas ) |
Build TLAS.
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.
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.
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.
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.
void CoreGraphics::CmdDispatch | ( | const CmdBufferId | id, |
int | dimX, | ||
int | dimY, | ||
int | dimZ ) |
Perform computation.
void CoreGraphics::CmdDraw | ( | const CmdBufferId | id, |
const CoreGraphics::PrimitiveGroup & | pg ) |
Draw primitives.
void CoreGraphics::CmdDraw | ( | const CmdBufferId | id, |
SizeT | numInstances, | ||
const CoreGraphics::PrimitiveGroup & | pg ) |
Draw primitives instanced.
void CoreGraphics::CmdDraw | ( | const CmdBufferId | id, |
SizeT | numInstances, | ||
IndexT | baseInstance, | ||
const CoreGraphics::PrimitiveGroup & | pg ) |
Draw primitives instanced with base instance.
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.
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.
void CoreGraphics::CmdDrawMeshlets | ( | const CmdBufferId | id, |
int | dimX, | ||
int | dimY, | ||
int | dimZ ) |
Draw meshlets.
void CoreGraphics::CmdEndOcclusionQueries | ( | const CmdBufferId | id | ) |
End occlusion queries.
void CoreGraphics::CmdEndPass | ( | const CmdBufferId | id | ) |
End pass.
void CoreGraphics::CmdEndPipelineQueries | ( | const CmdBufferId | id | ) |
End pipeline statistics.
void CoreGraphics::CmdEndRecord | ( | const CmdBufferId | id | ) |
end recording command buffer, it may be submitted after this is done
void CoreGraphics::CmdFinishQueries | ( | const CmdBufferId | id | ) |
Finish queries.
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.
void CoreGraphics::CmdNextSubpass | ( | const CmdBufferId | id | ) |
Progress to next subpass.
void CoreGraphics::CmdPushComputeConstants | ( | const CmdBufferId | id, |
uint | offset, | ||
uint | size, | ||
const void * | data ) |
void CoreGraphics::CmdPushConstants | ( | const CmdBufferId | id, |
ShaderPipeline | pipeline, | ||
uint | offset, | ||
uint | size, | ||
const void * | data ) |
Set push constants.
void CoreGraphics::CmdPushGraphicsConstants | ( | const CmdBufferId | id, |
uint | offset, | ||
uint | size, | ||
const void * | data ) |
void CoreGraphics::CmdRaysDispatch | ( | const CmdBufferId | id, |
const RayDispatchTable & | table, | ||
int | dimX, | ||
int | dimY, | ||
int | dimZ ) |
Fire rays.
void CoreGraphics::CmdReset | ( | const CmdBufferId | id, |
const CmdBufferClearInfo & | info ) |
clear the command buffer to be empty
void CoreGraphics::CmdResetEvent | ( | const CmdBufferId | id, |
const CoreGraphics::EventId | ev, | ||
const CoreGraphics::PipelineStage | stage ) |
Signals an event.
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.
void CoreGraphics::CmdSetGraphicsPipeline | ( | const CmdBufferId | buf, |
const PipelineId | pipeline ) |
Set graphics pipeline directly.
void CoreGraphics::CmdSetGraphicsPipeline | ( | const CmdBufferId | id | ) |
Create (if necessary) and bind pipeline based on state thus far.
void CoreGraphics::CmdSetIndexBuffer | ( | const CmdBufferId | id, |
const CoreGraphics::BufferId & | buffer, | ||
CoreGraphics::IndexType::Code | indexSize, | ||
SizeT | bufferOffset ) |
void CoreGraphics::CmdSetIndexBuffer | ( | const CmdBufferId | id, |
const IndexType::Code | indexType, | ||
const CoreGraphics::BufferId & | buffer, | ||
SizeT | bufferOffset ) |
Set index buffer.
void CoreGraphics::CmdSetPrimitiveTopology | ( | const CmdBufferId | id, |
const CoreGraphics::PrimitiveTopology::Code | topo ) |
Set the type of topology used.
void CoreGraphics::CmdSetRayTracingPipeline | ( | const CmdBufferId | buf, |
const PipelineId | pipeline ) |
Set ray tracing pipeline.
void CoreGraphics::CmdSetResourceTable | ( | const CmdBufferId | id, |
const CoreGraphics::ResourceTableId | table, | ||
const IndexT | slot, | ||
CoreGraphics::ShaderPipeline | pipeline, | ||
const Util::FixedArray< uint > & | offsets ) |
Set resource table.
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.
void CoreGraphics::CmdSetScissorRect | ( | const CmdBufferId | id, |
const Math::rectangle< int > & | rect, | ||
int | index ) |
Sets a scissor rect for a certain index.
void CoreGraphics::CmdSetScissors | ( | const CmdBufferId | id, |
const Util::FixedArray< Math::rectangle< int > > & | rects ) |
Set scissor array.
void CoreGraphics::CmdSetShaderProgram | ( | const CmdBufferId | id, |
const CoreGraphics::ShaderProgramId | pro, | ||
bool | bindGlobals = true ) |
Set shader program.
void CoreGraphics::CmdSetStencilReadMask | ( | const CmdBufferId | id, |
const uint | readMask ) |
Set the stencil read mask (compare mask(.
void CoreGraphics::CmdSetStencilRef | ( | const CmdBufferId | id, |
const uint | frontRef, | ||
const uint | backRef ) |
Set the stencil reference values.
void CoreGraphics::CmdSetStencilWriteMask | ( | const CmdBufferId | id, |
const uint | writeMask ) |
Set the stencil write mask.
void CoreGraphics::CmdSetVertexBuffer | ( | const CmdBufferId | id, |
IndexT | streamIndex, | ||
const CoreGraphics::BufferId & | buffer, | ||
SizeT | bufferOffset ) |
Set vertex buffer.
void CoreGraphics::CmdSetVertexLayout | ( | const CmdBufferId | id, |
const CoreGraphics::VertexLayoutId & | vl ) |
Set vertex layout.
void CoreGraphics::CmdSetViewport | ( | const CmdBufferId | id, |
const Math::rectangle< int > & | rect, | ||
int | index ) |
Sets a viewport for a certain index.
void CoreGraphics::CmdSetViewports | ( | const CmdBufferId | id, |
const Util::FixedArray< Math::rectangle< int > > & | viewports ) |
Set viewport array.
void CoreGraphics::CmdSignalEvent | ( | const CmdBufferId | id, |
const CoreGraphics::EventId | ev, | ||
const CoreGraphics::PipelineStage | stage ) |
Signals an event.
void CoreGraphics::CmdStartOcclusionQueries | ( | const CmdBufferId | id | ) |
Start occlusion queries.
void CoreGraphics::CmdStartPipelineQueries | ( | const CmdBufferId | id | ) |
Start pipeline statistics.
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.
void CoreGraphics::CmdWaitEvent | ( | const CmdBufferId | id, |
const EventId | ev, | ||
const CoreGraphics::PipelineStage | waitStage, | ||
const CoreGraphics::PipelineStage | signalStage ) |
Signals an event.
const Util::String CoreGraphics::ConstantTypeToString | ( | const ShaderConstantType & | type | ) |
Get constant type as string.
void CoreGraphics::CountDescriptors | ( | Util::HashTable< uint32_t, uint32_t > & | counters, |
const VkDescriptorSetLayoutBinding & | binding ) |
BarrierId CoreGraphics::CreateBarrier | ( | const BarrierCreateInfo & | info | ) |
create barrier object
BlasId CoreGraphics::CreateBlas | ( | const BlasCreateInfo & | info | ) |
Create bottom level acceleration structure.
BlasInstanceId CoreGraphics::CreateBlasInstance | ( | const BlasInstanceCreateInfo & | info | ) |
Create an instance to a bottom level acceleration structure.
const BufferId CoreGraphics::CreateBuffer | ( | const BufferCreateInfo & | info | ) |
create buffer
const CmdBufferId CoreGraphics::CreateCmdBuffer | ( | const CmdBufferCreateInfo & | info | ) |
create new command buffer
const CmdBufferPoolId CoreGraphics::CreateCmdBufferPool | ( | const CmdBufferPoolCreateInfo & | info | ) |
create new command buffer pool
|
extern |
create new draw thread, define in implementation thread
EventId CoreGraphics::CreateEvent | ( | const EventCreateInfo & | info | ) |
create new event
FenceId CoreGraphics::CreateFence | ( | const FenceCreateInfo & | info | ) |
create a new fence
bool CoreGraphics::CreateGraphicsDevice | ( | const GraphicsDeviceCreateInfo & | info | ) |
create graphics device
PipelineId CoreGraphics::CreateGraphicsPipeline | ( | const PipelineCreateInfo & | info | ) |
Create new pipeline.
ImageId CoreGraphics::CreateImage | ( | const ImageCreateInfoData & | info | ) |
create image from data buffer
ImageId CoreGraphics::CreateImage | ( | const ImageCreateInfoFile & | info | ) |
create image from file path
const MeshId CoreGraphics::CreateMesh | ( | const MeshCreateInfo & | info | ) |
create new mesh
const PassId CoreGraphics::CreatePass | ( | const PassCreateInfo & | info | ) |
create pass
const PipelineRayTracingTable CoreGraphics::CreateRaytracingPipeline | ( | const Util::Array< CoreGraphics::ShaderProgramId > | programs | ) |
Create raytacing pipeline using multiple shader programs.
ResourcePipelineId CoreGraphics::CreateResourcePipeline | ( | const ResourcePipelineCreateInfo & | info | ) |
create resource pipeline
ResourceTableId CoreGraphics::CreateResourceTable | ( | const ResourceTableCreateInfo & | info | ) |
create resource table
ResourceTableLayoutId CoreGraphics::CreateResourceTableLayout | ( | const ResourceTableLayoutCreateInfo & | info | ) |
SamplerId CoreGraphics::CreateSampler | ( | const SamplerCreateInfo & | info | ) |
create sampler
SemaphoreId CoreGraphics::CreateSemaphore | ( | const SemaphoreCreateInfo & | info | ) |
create semaphore
const ShaderId CoreGraphics::CreateShader | ( | const ShaderCreateInfo & | info | ) |
Create new shader.
SparseBufferId CoreGraphics::CreateSparseBuffer | ( | const SparseBufferCreateInfo & | info | ) |
create sparse buffer
SwapchainId CoreGraphics::CreateSwapchain | ( | const SwapchainCreateInfo & | info | ) |
Create swapchain.
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
TextureViewId CoreGraphics::CreateTextureView | ( | const TextureViewCreateInfo & | info | ) |
create texture view
TlasId CoreGraphics::CreateTlas | ( | const TlasCreateInfo & | info | ) |
Create top level acceleration structure.
const VertexLayoutId CoreGraphics::CreateVertexLayout | ( | const VertexLayoutCreateInfo & | info | ) |
create new vertex layout
const WindowId CoreGraphics::CreateWindow | ( | const WindowCreateInfo & | info | ) |
create new window
void CoreGraphics::DeallocateIndices | ( | const VertexAlloc & | alloc | ) |
Deallocate indices.
void CoreGraphics::DeallocateVertices | ( | const VertexAlloc & | alloc | ) |
Deallocate vertices.
void CoreGraphics::DeferredDestroyCmdBuffer | ( | const CmdBufferId | id | ) |
Issue command buffer for deletion (happens when GPU is finished with it)
void CoreGraphics::DelayedDeleteBlas | ( | const CoreGraphics::BlasId | id | ) |
Add a blas for delayed delete.
void CoreGraphics::DelayedDeleteBuffer | ( | const CoreGraphics::BufferId | id | ) |
Add buffer to delete queue.
void CoreGraphics::DelayedDeleteCommandBuffer | ( | const CoreGraphics::CmdBufferId | id | ) |
Add command buffer to late deletion.
void CoreGraphics::DelayedDeleteDescriptorSet | ( | const CoreGraphics::ResourceTableId | id | ) |
Add a descriptor set to delete queue.
void CoreGraphics::DelayedDeletePass | ( | const CoreGraphics::PassId | id | ) |
Add a pass to delayed delete.
void CoreGraphics::DelayedDeleteTexture | ( | const CoreGraphics::TextureId | id | ) |
Add texture to delete queue.
void CoreGraphics::DelayedDeleteTextureView | ( | const CoreGraphics::TextureViewId | id | ) |
Add texture view to delete queue.
void CoreGraphics::DelayedDeleteTlas | ( | const CoreGraphics::TlasId | id | ) |
Add a tlas for delayed delete.
void CoreGraphics::DelayedFreeMemory | ( | const CoreGraphics::Alloc | alloc | ) |
Add memory allocation to delete queue.
void CoreGraphics::DeleteShader | ( | const ShaderId | id | ) |
void CoreGraphics::DeleteTexture | ( | const TextureId | id | ) |
void CoreGraphics::DestroyBarrier | ( | const BarrierId | id | ) |
destroy barrier object
void CoreGraphics::DestroyBlas | ( | const BlasId | blac | ) |
Destroy bottom level acceleration structure.
void CoreGraphics::DestroyBlasInstance | ( | const BlasInstanceId | id | ) |
Destroy blas instance.
void CoreGraphics::DestroyBuffer | ( | const BufferId | id | ) |
destroy buffer
void CoreGraphics::DestroyCmdBuffer | ( | const CmdBufferId | id | ) |
Destroy the command buffer immediately (use with caution as buffer might be in use by GPU)
void CoreGraphics::DestroyCmdBufferPool | ( | const CmdBufferPoolId | pool | ) |
destroy command buffer pool
void CoreGraphics::DestroyEvent | ( | const EventId | id | ) |
destroy even
void CoreGraphics::DestroyFence | ( | const FenceId | id | ) |
destroy a fence
void CoreGraphics::DestroyGraphicsDevice | ( | ) |
destroy graphics device
void CoreGraphics::DestroyGraphicsPipeline | ( | const PipelineId | pipeline | ) |
Destroy pipeline.
void CoreGraphics::DestroyImage | ( | const ImageId | id | ) |
destroy image
void CoreGraphics::DestroyMesh | ( | const MeshId | id | ) |
destroy mesh
void CoreGraphics::DestroyMeshResource | ( | const MeshResourceId | id | ) |
Destroy.
void CoreGraphics::DestroyPass | ( | const PassId | id | ) |
discard pass
void CoreGraphics::DestroyRaytracingPipeline | ( | const PipelineRayTracingTable & | table | ) |
Destroy raytracing pipeline.
void CoreGraphics::DestroyResourcePipeline | ( | const ResourcePipelineId & | id | ) |
destroy resource pipeline
void CoreGraphics::DestroyResourceTable | ( | const ResourceTableId | id | ) |
destroy resource table
void CoreGraphics::DestroyResourceTableLayout | ( | const ResourceTableLayoutId & | id | ) |
destroy resource table layout
void CoreGraphics::DestroySampler | ( | const SamplerId & | id | ) |
destroy sampler
void CoreGraphics::DestroySemaphore | ( | const SemaphoreId & | semaphore | ) |
destroy semaphore
void CoreGraphics::DestroyShader | ( | const ShaderId | id | ) |
Destroy shader.
void CoreGraphics::DestroySparseBuffer | ( | const SparseBufferId | id | ) |
destroy sparse buffers
void CoreGraphics::DestroySwapchain | ( | const SwapchainId | id | ) |
Destroy swapchain.
void CoreGraphics::DestroyTexture | ( | const TextureId | id | ) |
destroy vertex buffer
void CoreGraphics::DestroyTextureView | ( | const TextureViewId | id | ) |
destroy texture view
void CoreGraphics::DestroyTlas | ( | const TlasId | tlas | ) |
Destroy top level acceleration structure.
void CoreGraphics::DestroyVertexLayout | ( | const VertexLayoutId | id | ) |
destroy vertex layout
void CoreGraphics::DestroyWindow | ( | const WindowId | id | ) |
destroy window
void CoreGraphics::DiscardMemoryPools | ( | VkDevice | dev | ) |
discard memory pools
const WindowId CoreGraphics::EmbedWindow | ( | const Util::Blob & | windowData | ) |
embed window in another window
void CoreGraphics::EnqueueUploadsFlushAndFree | ( | const Util::Array< Memory::RangeAllocation > & | allocations | ) |
Queue uploads to flush and free at immediate submit.
void CoreGraphics::EventHostReset | ( | const EventId | id | ) |
unset event on host
void CoreGraphics::EventHostSignal | ( | const EventId | id | ) |
signal event on host
void CoreGraphics::EventHostWait | ( | const EventId | id | ) |
wait for event to be signaled on host
bool CoreGraphics::EventPoll | ( | const EventId | id | ) |
get event status on host
void CoreGraphics::EventReset | ( | const EventId | id, |
const CoreGraphics::CmdBufferId | buf, | ||
const CoreGraphics::PipelineStage | stage ) |
insert reset event
void CoreGraphics::EventSignal | ( | const EventId | id, |
const CoreGraphics::CmdBufferId | buf, | ||
const CoreGraphics::PipelineStage | stage ) |
insert event in command buffer to be signaled
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
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
void CoreGraphics::EventWaitAndReset | ( | const EventId | id, |
const CoreGraphics::CmdBufferId | buf, | ||
const CoreGraphics::PipelineStage | waitStage, | ||
const CoreGraphics::PipelineStage | signalStage ) |
insert both a wait and reset
bool CoreGraphics::FencePeek | ( | const FenceId | id | ) |
peek fence status
bool CoreGraphics::FenceReset | ( | const FenceId | id | ) |
reset fence status
wait for fence and reset
void CoreGraphics::FinishFrame | ( | IndexT | frameIndex | ) |
Finish current frame.
void CoreGraphics::FinishMips | ( | CoreGraphics::CmdBufferId | transferCommands, |
CoreGraphics::CmdBufferId | handoverCommands, | ||
TextureStreamData * | streamData, | ||
uint | mipBits, | ||
const CoreGraphics::TextureId | texture, | ||
const char * | name ) |
void CoreGraphics::FinishQueries | ( | const CoreGraphics::CmdBufferId | cmdBuf, |
const CoreGraphics::QueryType | type, | ||
IndexT * | starts, | ||
SizeT * | counts, | ||
SizeT | numCopies ) |
Copy query results to buffer.
void CoreGraphics::FlushUploads | ( | const Util::Array< Memory::RangeAllocation > & | allocations | ) |
Flush upload allocations directly.
void CoreGraphics::FreeMemory | ( | const CoreGraphics::Alloc & | alloc | ) |
free memory
void CoreGraphics::FreeUploads | ( | const Util::Array< Memory::RangeAllocation > & | allocations | ) |
Free upload allocations directly.
SamplerBorderMode CoreGraphics::FromVkBorderMode | ( | VkBorderColor | mode | ) |
SamplerCompareOperation CoreGraphics::FromVkCompareOperation | ( | VkCompareOp | op | ) |
SamplerAddressMode CoreGraphics::FromVkSamplerAddressMode | ( | VkSamplerAddressMode | mode | ) |
SamplerFilter CoreGraphics::FromVkSamplerFilter | ( | VkFilter | filter | ) |
SamplerMipMode CoreGraphics::FromVkSamplerMipMapMode | ( | VkSamplerMipmapMode | mode | ) |
IndexT CoreGraphics::GetBufferedFrameIndex | ( | ) |
get current frame index, which is between 0 and GetNumBufferedFrames
CoreGraphics::BufferId CoreGraphics::GetConstantBuffer | ( | IndexT | i | ) |
return id to global graphics constant buffer
const CoreGraphics::BufferId CoreGraphics::GetIndexBuffer | ( | ) |
Get index buffer.
void * CoreGraphics::GetMappedMemory | ( | const CoreGraphics::Alloc & | alloc | ) |
get mapped memory pointer
SizeT CoreGraphics::GetNumBufferedFrames | ( | ) |
get number of buffered frames
const Util::Set< uint32_t > & CoreGraphics::GetQueueIndices | ( | ) |
Get queue indices.
bool CoreGraphics::GetRenderWireframe | ( | ) |
get the render as wireframe flag
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 ) |
const CoreGraphics::BufferId CoreGraphics::GetVertexBuffer | ( | ) |
Get vertex buffer.
bool CoreGraphics::GetVisualizeMipMaps | ( | ) |
get visualization of mipmaps flag
CoreGraphics::ID_24_8_24_8_NAMED_TYPE | ( | ShaderProgramId | , |
programId | , | ||
programGeneration | , | ||
shaderId | , | ||
shaderGeneration | , | ||
program | , | ||
shader | ) |
|
inline |
const byte * CoreGraphics::ImageGetAlphaPtr | ( | const ImageId | id | ) |
get pointer to first element if alpha channel
const byte * CoreGraphics::ImageGetBluePtr | ( | const ImageId | id | ) |
get pointer to first element of blue channel
const byte * CoreGraphics::ImageGetBuffer | ( | const ImageId | id | ) |
get pointer to buffer
ImageChannelPrimitive CoreGraphics::ImageGetChannelPrimitive | ( | const ImageId | id | ) |
get channel primitive
ImageDimensions CoreGraphics::ImageGetDimensions | ( | const ImageId | id | ) |
get image dimensions
const byte * CoreGraphics::ImageGetGreenPtr | ( | const ImageId | id | ) |
get pointer to first element of green channel
get pixel stride, using the above pointers makes it possible to get all reds, blues, greens, etc.
const byte * CoreGraphics::ImageGetRedPtr | ( | const ImageId | id | ) |
get pointer to first element of red channel
|
inline |
uint CoreGraphics::LoadMips | ( | CoreGraphics::CmdBufferId | cmdBuf, |
TextureStreamData * | streamData, | ||
uint | bitsToLoad, | ||
const CoreGraphics::TextureId | texture, | ||
Util::Array< Memory::RangeAllocation > & | rangesToFlush ) |
void CoreGraphics::LockConstantUpdates | ( | ) |
Lock constant updates.
const CoreGraphics::CmdBufferId CoreGraphics::LockGraphicsSetupCommandBuffer | ( | const char * | name = nullptr | ) |
Lock immediate graphics command buffer.
const CoreGraphics::CmdBufferId CoreGraphics::LockTransferHandoverSetupCommandBuffer | ( | ) |
Lock handover transfer command buffer.
const CoreGraphics::CmdBufferId CoreGraphics::LockTransferSetupCommandBuffer | ( | ) |
Lock resource command buffer.
const void CoreGraphics::MeshBind | ( | const MeshId | id, |
const CoreGraphics::CmdBufferId | cmd ) |
Bind mesh on command buffer.
const IndexType::Code CoreGraphics::MeshGetIndexType | ( | const MeshId | id | ) |
Get index type.
const CoreGraphics::PrimitiveGroup CoreGraphics::MeshGetPrimitiveGroup | ( | const MeshId | id, |
const IndexT | group ) |
get primitive group
const Util::Array< CoreGraphics::PrimitiveGroup > & CoreGraphics::MeshGetPrimitiveGroups | ( | const MeshId | id | ) |
get number of primitive groups
const CoreGraphics::PrimitiveTopology::Code CoreGraphics::MeshGetTopology | ( | const MeshId | id | ) |
Get topology.
get vertex buffer
const CoreGraphics::VertexLayoutId CoreGraphics::MeshGetVertexLayout | ( | const MeshId | id | ) |
Get vertex layout.
Get mesh vertex offset.
const MeshId CoreGraphics::MeshResourceGetMesh | ( | const MeshResourceId | id, |
const IndexT | index ) |
Get mesh.
const SizeT CoreGraphics::MeshResourceGetNumMeshes | ( | const MeshResourceId | id | ) |
Get number of meshes.
const void CoreGraphics::MeshSetVertexBuffer | ( | const MeshId | id, |
const BufferId | buffer, | ||
const IndexT | stream ) |
Set vertex buffer.
CoreGraphics::N_DECLARE_COUNTER | ( | N_CONSTANT_MEMORY | , |
Graphics Constant | Memory ) |
CoreGraphics::N_DECLARE_COUNTER | ( | N_DEVICE_ONLY_GPU_MEMORY | , |
Device Only GPU | Memory ) |
CoreGraphics::N_DECLARE_COUNTER | ( | N_DEVICE_TO_HOST_GPU_MEMORY | , |
Device To Host GPU | Memory ) |
CoreGraphics::N_DECLARE_COUNTER | ( | N_HOST_ONLY_GPU_MEMORY | , |
Host Only GPU | Memory ) |
CoreGraphics::N_DECLARE_COUNTER | ( | N_HOST_TO_DEVICE_GPU_MEMORY | , |
Host To Device GPU | Memory ) |
CoreGraphics::N_DECLARE_COUNTER | ( | N_INDEX_MEMORY | , |
Index | Memory ) |
CoreGraphics::N_DECLARE_COUNTER | ( | N_UPLOAD_MEMORY | , |
Upload | Memory ) |
CoreGraphics::N_DECLARE_COUNTER | ( | N_VERTEX_MEMORY | , |
Vertex | Memory ) |
void CoreGraphics::NewFrame | ( | ) |
Progress to next frame.
bool CoreGraphics::NotifyEventHandlers | ( | const CoreGraphics::RenderEvent & | e | ) |
notify event handlers about an event
void CoreGraphics::ParseMarkersAndTime | ( | CoreGraphics::FrameProfilingMarker & | marker, |
uint64 * | data, | ||
const uint64 & | offset ) |
const Util::Array< CoreGraphics::TextureViewId > & CoreGraphics::PassGetAttachments | ( | const CoreGraphics::PassId | id | ) |
get number of color attachments for entire pass (attachment list)
const Util::StringAtom CoreGraphics::PassGetName | ( | const CoreGraphics::PassId | id | ) |
get name
const uint32_t CoreGraphics::PassGetNumSubpassAttachments | ( | const CoreGraphics::PassId | id, |
const IndexT | subpass ) |
get number of color attachments for a subpass
const CoreGraphics::ResourceTableId CoreGraphics::PassGetResourceTable | ( | const CoreGraphics::PassId | id | ) |
Get pass resource table.
void CoreGraphics::PassSetRenderTargetParameters | ( | const PassId | id, |
const Util::FixedArray< Shared::RenderTargetParameters > & | viewports ) |
Set viewports.
void CoreGraphics::PassWindowResizeCallback | ( | const PassId | id | ) |
called when window is resized
|
inline |
|
inline |
bool CoreGraphics::PollSubmissionIndex | ( | const CoreGraphics::QueueType | queue, |
uint64 | index ) |
Poll a submission for completion.
|
inline |
|
inline |
void CoreGraphics::ReloadShader | ( | const ShaderId | id, |
const AnyFX::ShaderEffect * | effect ) |
Reload shader.
void CoreGraphics::ReloadShaderProgram | ( | const CoreGraphics::ShaderProgramId & | pro | ) |
trigger reloading a shader
void CoreGraphics::RemoveBackBufferTexture | ( | const CoreGraphics::TextureId | tex | ) |
remove a render texture
void CoreGraphics::RemoveEventHandler | ( | const Ptr< CoreGraphics::RenderEventHandler > & | h | ) |
remove a render event handler
void CoreGraphics::ResourceTableBlock | ( | bool | b | ) |
disallow the resource table system to make modifications
void CoreGraphics::ResourceTableCommitChanges | ( | const ResourceTableId | id | ) |
apply updates of previous sets
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
const ResourceTableLayoutId & CoreGraphics::ResourceTableGetLayout | ( | CoreGraphics::ResourceTableId | id | ) |
Get resource table layout.
void CoreGraphics::ResourceTableSetAccelerationStructure | ( | const ResourceTableId | id, |
const ResourceTableTlas & | tlas ) |
Set resource table acceleration structure.
void CoreGraphics::ResourceTableSetConstantBuffer | ( | const ResourceTableId | id, |
const ResourceTableBuffer & | buf ) |
set resource table constant buffer
void CoreGraphics::ResourceTableSetInputAttachment | ( | const ResourceTableId | id, |
const ResourceTableInputAttachment & | tex ) |
set resource table input attachment
void CoreGraphics::ResourceTableSetRWBuffer | ( | const ResourceTableId | id, |
const ResourceTableBuffer & | buf ) |
set resource table shader rw buffer
void CoreGraphics::ResourceTableSetRWTexture | ( | const ResourceTableId | id, |
const ResourceTableTexture & | tex ) |
set resource table texture as read-write
void CoreGraphics::ResourceTableSetRWTexture | ( | const ResourceTableId | id, |
const ResourceTableTextureView & | tex ) |
set resource table texture as read-write
void CoreGraphics::ResourceTableSetSampler | ( | const ResourceTableId | id, |
const ResourceTableSampler & | samp ) |
set resource table sampler
void CoreGraphics::ResourceTableSetTexture | ( | const ResourceTableId | id, |
const ResourceTableTexture & | tex ) |
set resource table texture
void CoreGraphics::ResourceTableSetTexture | ( | const ResourceTableId | id, |
const ResourceTableTextureView & | tex ) |
set resource table texture
CoreGraphics::ImageFileFormat::Code CoreGraphics::SaveScreenshot | ( | CoreGraphics::ImageFileFormat::Code | fmt, |
const Ptr< IO::Stream > & | outStream ) |
save a screenshot to the provided stream
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
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.
bool CoreGraphics::SaveTexture | ( | const Resources::ResourceId & | id, |
const Ptr< IO::Stream > & | stream, | ||
IndexT | mip, | ||
CoreGraphics::ImageFileFormat::Code | code ) |
uint64 CoreGraphics::SemaphoreGetValue | ( | const SemaphoreId & | semaphore | ) |
get semaphore index
void CoreGraphics::SemaphoreReset | ( | const SemaphoreId & | semaphore | ) |
reset semaphore
void CoreGraphics::SemaphoreSignal | ( | const SemaphoreId & | semaphore | ) |
signal semaphore
|
inline |
Allocate range of memory and set data, return offset (thread safe)
|
inline |
Allocate range of memory and set data, return offset (thread safe)
Allocate range of memory and set data as an array of elements, return offset (thread safe)
|
inline |
Allocate range of memory and set data as an array of elements, return offset (thread safe)
|
inline |
Set constants based on pre-allocated memory (thread safe)
|
inline |
Set constants based on pre-allocated memory (thread safe)
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.
void CoreGraphics::SetRenderWireframe | ( | bool | b | ) |
set the render as wireframe flag
void CoreGraphics::SetShaderProgram | ( | const CoreGraphics::ShaderProgramId | pro, |
const CoreGraphics::QueueType | queue, | ||
const bool | bindSharedResources ) |
void CoreGraphics::SetupDescriptorSize | ( | VkDescriptorPoolSize & | size, |
Util::HashTable< uint32_t, uint32_t > & | counter, | ||
Util::Array< VkDescriptorPoolSize > & | outSizes ) |
void CoreGraphics::SetupMemoryPools | ( | DeviceSize | deviceLocalMemory, |
DeviceSize | hostLocalMemory, | ||
DeviceSize | hostToDeviceMemory, | ||
DeviceSize | deviceToHostMemory ) |
setup memory pools
void CoreGraphics::SetupPass | ( | const PassId | pid | ) |
void CoreGraphics::SetupTexture | ( | const TextureId | id | ) |
void CoreGraphics::SetVisualizeMipMaps | ( | bool | val | ) |
set visualization of mipmaps flag
const uint CoreGraphics::ShaderCalculateConstantBufferIndex | ( | const uint64 | bindingMask, |
const IndexT | slot ) |
Calculate buffer index using binding mask and slot.
const CoreGraphics::BufferId CoreGraphics::ShaderCreateConstantBuffer | ( | const ShaderId | id, |
const IndexT | cbIndex, | ||
CoreGraphics::BufferAccessMode | mode = BufferAccessMode::HostCached ) |
create constant buffer from index
const BufferId CoreGraphics::ShaderCreateConstantBuffer | ( | const ShaderId | id, |
const IndexT | group, | ||
const IndexT | cbIndex, | ||
BufferAccessMode | mode = BufferAccessMode::HostCached ) |
create constant buffer from index
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)
const CoreGraphics::ResourceTableId CoreGraphics::ShaderCreateResourceTable | ( | const ShaderId | id, |
const IndexT | group, | ||
const uint | overallocationSize = 1 ) |
create resource table from shader
ResourceTableSet CoreGraphics::ShaderCreateResourceTableSet | ( | const ShaderId | id, |
const IndexT | group, | ||
const uint | overallocationSize = 1 ) |
create resource table set from shader
CoreGraphics::ShaderFeature::Mask CoreGraphics::ShaderFeatureMask | ( | const Util::String & | mask | ) |
Get shader feature mask from string.
const ShaderId CoreGraphics::ShaderGet | ( | const Resources::ResourceName & | name | ) |
get shader by name
get constant buffer binding by index
const IndexT CoreGraphics::ShaderGetConstantBinding | ( | const ShaderId | id, |
const Util::StringAtom & | name ) |
get constant buffer binding by name
get count of constant buffer bindings (for iteration)
const Util::StringAtom CoreGraphics::ShaderGetConstantBlockName | ( | const ShaderId | id, |
const IndexT | cIndex ) |
get name of constant buffer where in constant with index resides
const Util::StringAtom CoreGraphics::ShaderGetConstantBlockName | ( | const ShaderId | id, |
const Util::StringAtom & | name ) |
get name of constant buffer wherein constant with name resides
const uint64 CoreGraphics::ShaderGetConstantBufferBindingMask | ( | const ShaderId | id, |
const IndexT | group ) |
Get mask of constant buffers.
get the number of constant buffers from shader
const Util::StringAtom CoreGraphics::ShaderGetConstantBufferName | ( | const ShaderId | id, |
const IndexT | i ) |
get name of constant buffer
const IndexT CoreGraphics::ShaderGetConstantBufferResourceGroup | ( | const ShaderId | id, |
const IndexT | i ) |
get group of constant buffer
const IndexT CoreGraphics::ShaderGetConstantBufferResourceSlot | ( | const ShaderId | id, |
const IndexT | i ) |
get binding inside group of constant buffer
const uint64 CoreGraphics::ShaderGetConstantBufferSize | ( | const ShaderId | id, |
const IndexT | group, | ||
const IndexT | i ) |
Get size of constant buffer at binding point.
get size of constant buffer
get the number of constants from shader
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)
const Util::StringAtom CoreGraphics::ShaderGetConstantName | ( | const ShaderId | id, |
const IndexT | i ) |
get name of variable by index
const IndexT CoreGraphics::ShaderGetConstantSlot | ( | const ShaderId | id, |
const Util::StringAtom & | name ) |
get binding inside group of the constant buffer the constant lies in
const CoreGraphics::ShaderConstantType CoreGraphics::ShaderGetConstantType | ( | const ShaderId | id, |
const IndexT | i ) |
get type of variable by index
const CoreGraphics::ShaderConstantType CoreGraphics::ShaderGetConstantType | ( | const ShaderId | id, |
const Util::StringAtom & | name ) |
get type of variable by index
const Resources::ResourceName CoreGraphics::ShaderGetName | ( | const ShaderId | id | ) |
Get name of shader.
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
Util::StringAtom CoreGraphics::ShaderGetProgramName | ( | CoreGraphics::ShaderProgramId | id | ) |
const Util::Dictionary< CoreGraphics::ShaderFeature::Mask, CoreGraphics::ShaderProgramId > & CoreGraphics::ShaderGetPrograms | ( | const ShaderId | id | ) |
get programs
CoreGraphics::ResourcePipelineId CoreGraphics::ShaderGetResourcePipeline | ( | const ShaderId | id | ) |
get pipeline layout for shader
const IndexT CoreGraphics::ShaderGetResourceSlot | ( | const ShaderId | id, |
const Util::StringAtom & | name ) |
get slot of any shader resource
CoreGraphics::ResourceTableLayoutId CoreGraphics::ShaderGetResourceTableLayout | ( | const ShaderId | id, |
const IndexT | group ) |
get resource table layout
CoreGraphics::ShaderProgramId CoreGraphics::ShaderGetShaderProgram | ( | const CoreGraphics::ShaderId | shaderId, |
const CoreGraphics::ShaderFeature::Mask | mask ) |
Returns true if there is a resource table for the given group in the shader.
const Util::StringAtom CoreGraphics::ShaderProgramGetName | ( | const ShaderProgramId | id | ) |
get name of program
RayTracingBits CoreGraphics::ShaderProgramGetRaytracingBits | ( | const ShaderProgramId | id | ) |
|
inline |
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.
void CoreGraphics::SubmitImmediateCommandBuffers | ( | ) |
Submit immediate command buffers.
CoreGraphics::CmdBufferId CoreGraphics::SwapchainAllocateCmds | ( | const SwapchainId | id | ) |
Allocate command buffer for swapchain operations.
void CoreGraphics::SwapchainCopy | ( | const SwapchainId | id, |
const CoreGraphics::CmdBufferId | cmdBuf, | ||
const CoreGraphics::TextureId | source ) |
Copy to current backbuffer (call after swap)
CoreGraphics::QueueType CoreGraphics::SwapchainGetQueueType | ( | const SwapchainId | id | ) |
Get queue to use for swapchain.
void CoreGraphics::SwapchainPresent | ( | const SwapchainId | id | ) |
Present.
void CoreGraphics::SwapchainSwap | ( | const SwapchainId | id | ) |
Swap buffers.
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
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
void CoreGraphics::TextureGenerateMipmaps | ( | const CoreGraphics::CmdBufferId | cmdBuf, |
const TextureId | id ) |
generate mipmaps for texture
TextureCreateInfoAdjusted CoreGraphics::TextureGetAdjustedInfo | ( | const TextureCreateInfo & | info | ) |
helper function to setup RenderTextureInfo, already implemented
const CoreGraphics::TextureId CoreGraphics::TextureGetAlias | ( | const TextureId | id | ) |
get texture alias, returns invalid id if not aliased
const Util::Array< CoreGraphics::TextureId > & CoreGraphics::TextureGetCreated | ( | ) |
const CoreGraphics::ImageLayout CoreGraphics::TextureGetDefaultLayout | ( | const TextureId | id | ) |
get default texture layout
CoreGraphics::TextureDimensions CoreGraphics::TextureGetDimensions | ( | const TextureId | id | ) |
get texture dimensions
Util::StringAtom CoreGraphics::TextureGetName | ( | const TextureId | id | ) |
Get name of texture.
CoreGraphics::PixelFormat::Code CoreGraphics::TextureGetPixelFormat | ( | const TextureId | id | ) |
get texture pixel format
CoreGraphics::TextureRelativeDimensions CoreGraphics::TextureGetRelativeDimensions | ( | const TextureId | id | ) |
get texture relative dimensions
get bindless texture handle
CoreGraphics::TextureType CoreGraphics::TextureGetType | ( | const TextureId | id | ) |
get texture type
const CoreGraphics::TextureUsage CoreGraphics::TextureGetUsage | ( | const TextureId | id | ) |
get texture usage
void CoreGraphics::TextureSetHighestLod | ( | const CoreGraphics::TextureId | id, |
uint | lod ) |
Set highest LOD on texture.
void CoreGraphics::TextureSparseCommitChanges | ( | const CoreGraphics::TextureId | id | ) |
commit texture sparse page updates
void CoreGraphics::TextureSparseEvict | ( | const CoreGraphics::TextureId | id, |
IndexT | layer, | ||
IndexT | mip, | ||
IndexT | pageIndex ) |
evict a page
void CoreGraphics::TextureSparseEvictMip | ( | const CoreGraphics::TextureId | id, |
IndexT | layer, | ||
IndexT | mip ) |
evict a whole mip
IndexT CoreGraphics::TextureSparseGetMaxMip | ( | const CoreGraphics::TextureId | id | ) |
get highest sparse mip
SizeT CoreGraphics::TextureSparseGetNumPages | ( | const CoreGraphics::TextureId | id, |
IndexT | layer, | ||
IndexT | mip ) |
get the number of pages for a given layer and mip
const CoreGraphics::TextureSparsePage & CoreGraphics::TextureSparseGetPage | ( | const CoreGraphics::TextureId | id, |
IndexT | layer, | ||
IndexT | mip, | ||
IndexT | pageIndex ) |
get texture page
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
CoreGraphics::TextureSparsePageSize CoreGraphics::TextureSparseGetPageSize | ( | const CoreGraphics::TextureId | id | ) |
get the texture page size, which is constant for the whole texture
void CoreGraphics::TextureSparseMakeMipResident | ( | const CoreGraphics::TextureId | id, |
IndexT | layer, | ||
IndexT | mip ) |
make a whole mip resident
void CoreGraphics::TextureSparseMakeResident | ( | const CoreGraphics::TextureId | id, |
IndexT | layer, | ||
IndexT | mip, | ||
IndexT | pageIndex ) |
make a page resident
void CoreGraphics::TextureSparseUpdate | ( | const CoreGraphics::CmdBufferId | cmdBuf, |
const CoreGraphics::TextureId | id, | ||
const Math::rectangle< uint > & | region, | ||
IndexT | mip, | ||
IndexT | layer, | ||
char * | buf ) |
void CoreGraphics::TextureSparseUpdate | ( | const CoreGraphics::CmdBufferId | cmdBuf, |
const CoreGraphics::TextureId | id, | ||
const Math::rectangle< uint > & | region, | ||
IndexT | mip, | ||
IndexT | layer, | ||
const CoreGraphics::TextureId | source ) |
void CoreGraphics::TextureSparseUpdate | ( | const CoreGraphics::CmdBufferId | cmdBuf, |
const CoreGraphics::TextureId | id, | ||
IndexT | mip, | ||
IndexT | layer, | ||
char * | buf ) |
|
inline |
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.
|
inline |
TextureId CoreGraphics::TextureViewGetTexture | ( | const TextureViewId | id | ) |
get texture
void CoreGraphics::TextureViewReload | ( | const TextureViewId | id | ) |
reload texture view by creating a new backend view with the old texture (assuming it's changed)
void CoreGraphics::TextureWindowResized | ( | const TextureId | id | ) |
If texture is bound to the window resolution, reset the internal texture without mucking with the texture id.
void CoreGraphics::TlasInitBuild | ( | const TlasId | tlas | ) |
Initiate Tlas for build.
void CoreGraphics::TlasInitUpdate | ( | const TlasId | tlas | ) |
Initiate Tlas for update.
SamplerCreateInfo CoreGraphics::ToNebulaSamplerCreateInfo | ( | const VkSamplerCreateInfo & | info | ) |
use vulkan sampler create info to create Nebula sampler create info
VkBorderColor CoreGraphics::ToVkBorderMode | ( | SamplerBorderMode | mode | ) |
VkCompareOp CoreGraphics::ToVkCompareOperation | ( | SamplerCompareOperation | op | ) |
VkSamplerAddressMode CoreGraphics::ToVkSamplerAddressMode | ( | SamplerAddressMode | mode | ) |
VkFilter CoreGraphics::ToVkSamplerFilter | ( | SamplerFilter | filter | ) |
VkSamplerMipmapMode CoreGraphics::ToVkSamplerMipMapMode | ( | SamplerMipMode | mode | ) |
void CoreGraphics::UnlockConstantUpdates | ( | ) |
Unlock constants.
void CoreGraphics::UnlockGraphicsSetupCommandBuffer | ( | CoreGraphics::CmdBufferId | cmdBuf | ) |
Release lock on immediate graphics command buffer.
void CoreGraphics::UnlockTransferHandoverSetupCommandBuffer | ( | CoreGraphics::CmdBufferId | cmdBuf | ) |
Release lock on handover command buffer.
void CoreGraphics::UnlockTransferSetupCommandBuffer | ( | CoreGraphics::CmdBufferId | cmdBuf | ) |
Release lock on resource command buffer.
|
inline |
Upload item to GPU source buffer with preallocated memory.
|
inline |
Upload array of items GPU source buffer with preallocated memory.
|
inline |
Upload single item to GPU source buffer.
|
inline |
Upload array of items to GPU source buffer.
|
inline |
void CoreGraphics::UploadInternal | ( | const CoreGraphics::BufferId | buffer, |
uint | offset, | ||
const void * | data, | ||
SizeT | size ) |
Upload memory to upload buffer with given offset, return offset.
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.
const Util::Array< VertexComponent > & CoreGraphics::VertexLayoutGetComponents | ( | const VertexLayoutId | id | ) |
get components
const Util::StringAtom & CoreGraphics::VertexLayoutGetName | ( | const VertexLayoutId | id | ) |
Get name.
const SizeT CoreGraphics::VertexLayoutGetSize | ( | const VertexLayoutId | id | ) |
Get byte size.
const SizeT CoreGraphics::VertexLayoutGetStreamSize | ( | const VertexLayoutId | id, |
IndexT | stream ) |
Get byte size per stream.
Math::rectangle< int > CoreGraphics::VkScissorToRect | ( | const VkRect2D & | sc | ) |
Math::rectangle< int > CoreGraphics::VkViewportToRect | ( | const VkViewport & | vp | ) |
void CoreGraphics::WaitAndClearPendingCommands | ( | ) |
wait for all queues to finish
void CoreGraphics::WaitForQueue | ( | CoreGraphics::QueueType | queue | ) |
wait for an individual queue to finish
void CoreGraphics::WindowApplyFullscreen | ( | const WindowId | id, |
Adapter::Code | monitor, | ||
bool | b ) |
toggle fullscreen
const CoreGraphics::AntiAliasQuality::Code CoreGraphics::WindowGetAAQuality | ( | const WindowId | id | ) |
get display antialias quality
Math::vec2 CoreGraphics::WindowGetContentScale | ( | const WindowId | id | ) |
retrieve window content scaling (ratio between current DPI and platform default DPI)
const CoreGraphics::DisplayMode CoreGraphics::WindowGetDisplayMode | ( | const WindowId | id | ) |
get display mode from window
const Util::StringAtom & CoreGraphics::WindowGetIcon | ( | const WindowId | id | ) |
get window icon
const CoreGraphics::SwapchainId CoreGraphics::WindowGetSwapchain | ( | const WindowId | id | ) |
Get swapchain associated with this window.
const Util::StringAtom & CoreGraphics::WindowGetTitle | ( | const WindowId | id | ) |
get window title
const bool CoreGraphics::WindowIsDecorated | ( | const WindowId | id | ) |
get if window is modal
const bool CoreGraphics::WindowIsFullscreen | ( | const WindowId | id | ) |
get if fullscreen
const bool CoreGraphics::WindowIsResizable | ( | const WindowId | id | ) |
get if we are allowed to switch the display mode
void CoreGraphics::WindowMakeCurrent | ( | const WindowId | id | ) |
make window 'current'
void CoreGraphics::WindowNewFrame | ( | const WindowId | id | ) |
Do new frame stuff for window.
void CoreGraphics::WindowPollEvents | ( | ) |
poll events for window
resize window
void CoreGraphics::WindowSetCursorLocked | ( | const WindowId | id, |
bool | b ) |
set if the cursor should be locked to the window
void CoreGraphics::WindowSetCursorVisible | ( | const WindowId | id, |
bool | b ) |
set if the cursor should be visible
void CoreGraphics::WindowSetTitle | ( | const WindowId | id, |
const Util::String & | title ) |
set title for window
uint CoreGraphics::AccelerationStructureScratchAlignment = UINT_MAX |
Raytracing properties.
Threading::CriticalSection CoreGraphics::AllocationLock |
|
static |
TextureId CoreGraphics::Black2D |
TextureId CoreGraphics::Blue2D |
uint CoreGraphics::ConstantBufferAlignment = UINT_MAX |
WindowId CoreGraphics::CurrentWindow |
MeshId CoreGraphics::DiskMesh |
bool CoreGraphics::DynamicVertexInputSupported = false |
GLFWWindowAllocatorType CoreGraphics::glfwWindowAllocator | ( | 0x00FFFFFF | ) |
TextureId CoreGraphics::Green2D |
Util::Array< MemoryHeap > CoreGraphics::Heaps |
ImageAllocator CoreGraphics::imageAllocator |
CoreGraphics::VertexLayoutId CoreGraphics::Layouts[(uint) CoreGraphics::VertexLayoutType::NumTypes] |
uint64 CoreGraphics::MaxConstantBufferSize = UINT_MAX |
|
static |
max number of vertex streams
uint CoreGraphics::MaxPerStageConstantBuffers = UINT_MAX |
uint CoreGraphics::MaxPerStageInputAttachments = UINT_MAX |
uint CoreGraphics::MaxPerStageReadWriteBuffers = UINT_MAX |
uint CoreGraphics::MaxPerStageReadWriteImages = UINT_MAX |
uint CoreGraphics::MaxPerStageSampledImages = UINT_MAX |
uint CoreGraphics::MaxPerStageSamplers = UINT_MAX |
uint CoreGraphics::MaxPushConstantSize = UINT_MAX |
uint CoreGraphics::MaxRecursionDepth = UINT_MAX |
uint CoreGraphics::MaxResourceTableConstantBuffers = UINT_MAX |
uint CoreGraphics::MaxResourceTableDynamicOffsetConstantBuffers = UINT_MAX |
uint CoreGraphics::MaxResourceTableDynamicOffsetReadWriteBuffers = UINT_MAX |
uint CoreGraphics::MaxResourceTableInputAttachments = UINT_MAX |
uint CoreGraphics::MaxResourceTableReadWriteBuffers = UINT_MAX |
uint CoreGraphics::MaxResourceTableReadWriteImages = UINT_MAX |
uint CoreGraphics::MaxResourceTableSampledImages = UINT_MAX |
uint CoreGraphics::MaxResourceTableSamplers = UINT_MAX |
uint CoreGraphics::MemoryRangeGranularity = UINT_MAX |
MeshAllocator CoreGraphics::meshAllocator |
MeshResourceAllocator CoreGraphics::meshResourceAllocator |
bool CoreGraphics::MeshShadersSupported = false |
bool CoreGraphics::NvidiaCheckpointsSupported = false |
Util::Array< CoreGraphics::ResourceTableId > CoreGraphics::PendingTableCommits |
Threading::CriticalSection CoreGraphics::PendingTableCommitsLock |
Util::Array< MemoryPool > CoreGraphics::Pools |
bool CoreGraphics::RayTracingSupported = false |
uint CoreGraphics::ReadWriteBufferAlignment = UINT_MAX |
MeshId CoreGraphics::RectangleMesh |
TextureId CoreGraphics::Red2D |
bool CoreGraphics::ResourceTableBlocked = false |
uint CoreGraphics::ShaderGroupAlignment = UINT_MAX |
uint64 CoreGraphics::ShaderGroupSize = UINT_MAX |
uint64 CoreGraphics::SparseAddressSize = UINT_MAX |
Util::FixedArray<SubpassInfo> CoreGraphics::subpassInfos |
|
static |
uint CoreGraphics::TimestampPeriod = UINT_MAX |
Util::Dictionary<uint32_t, Ids::Id32> CoreGraphics::UniqueSamplerHashes |
Threading::CriticalSection CoreGraphics::UploadLock |
bool CoreGraphics::VariableRateShadingSupported = false |
Threading::CriticalSection CoreGraphics::vertexAllocationMutex |
TextureId CoreGraphics::White1D |
TextureId CoreGraphics::White1DArray |
TextureId CoreGraphics::White2D |
TextureId CoreGraphics::White2DArray |
TextureId CoreGraphics::White3D |
TextureId CoreGraphics::WhiteCube |
TextureId CoreGraphics::WhiteCubeArray |