Home -> RendererInterface

Description

The RendererInterface.pkg header is the platform-neutral entry point for the Cobalt Renderer graphics API. It includes the renderer, graphics device, render tree, resource, shader program, helper, token, vector, matrix, and shader source information types used to build rendering work.

This package deliberately avoids native window system and dynamic library loading bindings. Include PlatformBindings.pkg as well when an application needs SDK helpers for renderer plugin discovery, module lifetime management, SDL3 integration, or native window binding structures.

ImportantImportant

Applications that use the C++ SDK normally include this package instead of including individual renderer interface headers directly.

Usage

#include <Cobalt/RendererInterface/RendererInterface.pkg>

Types

Renderer Types

Name Description
Public Interface IGraphicsDeviceEnumerator
Allows compatible graphics devices to be discovered and retrieved as IGraphicsDevice objects
Public Interface IGraphicsDevice
Returns specific information on a single graphics device, and allows IRenderer instances to be created.
Public Interface IRenderer
Manages the rendering process, holds the scene tree, and creates all render tree and resource types for the application.

Render Tree Types

Name Description
Public Interface IRenderPassNode
Top level node in the scene tree, binding a frame buffer to the scene.
Public Interface IProgramNode
Second level node in the scene tree, binding a shader program to the scene.
Public Interface IStateGroupNode
Third level node in the scene tree, binding various state values and resources, and optionally performing compute tasks.
Public Interface IRenderableNode
Fourth level node in the scene tree, defining an object to draw.
Public Interface IStateContainer
Base interface for all tree elements that allow bindings and state changes to be applied.
Public Interface IDefaultState
Defines a set of attached bindings and state changes, to allow tree node elements to be reused.

Resource Types

Geometry Types

Name Description
Public Interface IIndexBuffer
Holds index attribute data for renderable objects
Public Interface IVertexBuffer
Holds vertex attribute data for renderable objects
Public Class IndexAttribute
A single index attribute
Public Class RawIndexAttribute
An untyped raw index attribute
Public Class ReadOnlyIndexAttribute
A read-only view of an index attribute
Public Class VertexAttribute
A single vertex attribute
Public Class RawVertexAttribute
An untyped raw vertex attribute
Public Class ReadOnlyVertexAttribute
A read-only view of a vertex attribute

Image Types

Name Description
Public Interface ITextureBuffer
Base interface for all textures
Public Interface ITextureBuffer1D
A one dimensional texture resource
Public Interface ITextureBuffer2D
A two dimensional texture resource
Public Interface ITextureBuffer3D
A three dimensional texture resource
Public Interface ITextureBufferCube
A cubemap texture resource
Public Interface ITextureBuffer1DArray
An array of one dimensional texture resources
Public Interface ITextureBuffer2DArray
An array of two dimensional texture resources
Public Interface ITextureBufferCubeArray
An array of cubemap texture resources

Sampler Types

Name Description
Public Interface ITextureSampler
Base interface for all texture samplers
Public Interface ITextureSampler1D
A one dimensional texture sampler
Public Interface ITextureSampler2D
A two dimensional texture sampler
Public Interface ITextureSampler3D
A three dimensional texture sampler
Public Interface ITextureSamplerCube
A cubemap texture sampler
Public Interface ITextureSampler1DArray
A sampler for an array of one dimensional texture resources
Public Interface ITextureSampler2DArray
A sampler for an array of two dimensional texture resources
Public Interface ITextureSamplerCubeArray
A sampler for an array of cubemap texture resources

Data Types

Name Description
Public Interface IResourceArray
Base interface for IDataArray and ITexelArray types
Public Interface IDataArray
Allows arrays of complex data structures to be read and written from shaders
Public Interface IDataArrayOutput
Enables applications to capture the final state of an IDataArray and return it to system memory
Public Interface ITexelArray
Allows arrays of simple vector types to be read and written from shaders
Public Interface ITexelArrayOutput
Enables applications to capture the final state of an ITexelArray and return it to system memory
Public Interface IStateBuffer
Holds a set of state values in a shared buffer, which can be shared across multiple shader programs.
Public Interface IStateBufferLayout
Defines the physical layout in memory of an IStateBuffer

Batch Types

Name Description
Public Interface ITransferBatch
Manages advanced batching and scheduling of writes to buffers

FrameBuffer Types

Name Description
Public Interface IFrameBuffer
Defines a framebuffer for output from render operations
Public Interface IFrameBufferOutput
Enables applications to capture content written to an IFrameBuffer during rendering and return it to system memory

Program Types

Name Description
Public Interface IShaderProgram
Defines a complete shader program to control tasks on the render pipeline

Helper Types

Name Description
Public Class SuccessToken
A helper type to assist applications in implementing comprehensive error handling
Public Class ReadWriteMutex
A helper type to assist applications in following threading requirements

Token Types

Name Description
Public Enum VertexAttributeId
Identifies a shader vertex attribute binding.
Public Enum TextureId
Identifies a shader texture binding.
Public Enum SamplerId
Identifies a shader sampler binding.
Public Enum StateValueId
Identifies a shader state value binding.
Public Enum StateBufferId
Identifies a shader state buffer binding.
Public Enum ResourceArrayId
Identifies a shader resource array binding.

See also