Home -> IRenderer

Declaration

class IRenderer;

Description

The IRenderer interface is responsible for the creation of all objects related to building and rendering tasks in the shared renderer. In addition to this, it holds the root content for the render tree to use when drawing, and provides methods to advance and synchronize with the draw process.

ImportantImportant

Resources created under the IRenderer interface can only be used with the same IRenderer that created them. Although more than one instance of a renderer can exist at any one time, resources must not be mixed between different renderer instances.

ImportantImportant

All objects which are created through the IRenderer interface can be freed by the application at any time, even if they are currently being used by the draw process for a previously submitted frame. The renderer performs deferred destruction of all objects internally, so there is no requirement for the application to hold onto objects which are no longer required. The renderer will keep the objects alive until any previously submitted frame is complete before the objects are destroyed.

WarningWarning

Although the IRenderer interface itself has a unique_ptr object returned to the application to manage its lifetime, all objects allocated through the IRenderer interface must be destroyed before the IRenderer object itself is destroyed. It is up to the application to ensure this occurs. You must only dispose of the IRenderer object after all objects created through it are destroyed.

Enumerations

Name Description
Public Enum InitializationFlags
Optional flags to control the renderer initialization process
Public Enum Options
Optional renderer features, which can be requested at the time the renderer is created.

Structures

Name Description
Public Struct WindowSystemInfoBase
Base structure for platform-specific window system information structures. See the Initialize method for more information.

Members

Initialization methods

Name Description
Public member Initialize
Initializes the renderer. This method must be called before any other methods are called.
Public member Delete
Deletes the object. After calling this method, the object is destroyed.

Geometry buffer methods

Name Description
Public member CreateVertexBuffer
Creates and returns a new IVertexBuffer object
Public member CreateIndexBuffer
Creates and returns a new IIndexBuffer object

Image buffer methods

Name Description
Public member CreateTextureBuffer1D
Creates and returns a new ITextureBuffer1D object
Public member CreateTextureBuffer2D
Creates and returns a new ITextureBuffer2D object
Public member CreateTextureBuffer3D
Creates and returns a new ITextureBuffer3D object
Public member CreateTextureBufferCube
Creates and returns a new ITextureBufferCube object
Public member CreateTextureBuffer1DArray
Creates and returns a new ITextureBuffer1DArray object
Public member CreateTextureBuffer2DArray
Creates and returns a new ITextureBuffer2DArray object
Public member CreateTextureBufferCubeArray
Creates and returns a new ITextureBufferCubeArray object

Image sampler methods

Name Description
Public member CreateTextureSampler1D
Creates and returns a new ITextureSampler1D object
Public member CreateTextureSampler2D
Creates and returns a new ITextureSampler2D object
Public member CreateTextureSampler3D
Creates and returns a new ITextureSampler3D object
Public member CreateTextureSamplerCube
Creates and returns a new ITextureSamplerCube object
Public member CreateTextureSampler1DArray
Creates and returns a new ITextureSampler1DArray object
Public member CreateTextureSampler2DArray
Creates and returns a new ITextureSampler2DArray object
Public member CreateTextureSamplerCubeArray
Creates and returns a new ITextureSamplerCubeArray object

Data array methods

Name Description
Public member CreateDataArray
Creates and returns a new IDataArray object
Public member CreateDataArrayOutput
Creates and returns a new IDataArrayOutput object
Public member CreateTexelArray
Creates and returns a new ITexelArray object
Public member CreateTexelArrayOutput
Creates and returns a new ITexelArrayOutput object

Batch methods

Name Description
Public member CreateTransferBatch
Creates and returns a new ITransferBatch object

Frame buffer methods

Name Description
Public member CreateFrameBuffer
Creates and returns a new IFrameBuffer object
Public member CreateFrameBufferOutput
Creates and returns a new IFrameBufferOutput object

State buffer methods

Name Description
Public member CreateStateBuffer
Creates and returns a new IStateBuffer object
Public member CreateStateBufferLayout
Creates and returns a new IStateBufferLayout object

Render tree node methods

Name Description
Public member CreateRenderPassNode
Creates and returns a new IRenderPassNode object
Public member CreateProgramNode
Creates and returns a new IProgramNode object
Public member CreateStateGroupNode
Creates and returns a new IStateGroupNode object
Public member CreateRenderableNode
Creates and returns a new IRenderableNode object
Public member CreateDefaultState
Creates and returns a new IDefaultState object

Program methods

Name Description
Public member CreateShaderProgram
Creates and returns a new IShaderProgram object

Scene content methods

Name Description
Public member SetRenderPasses
Sets the scene content for the next frame to the set of supplied IRenderPassNode objects
Public member RemoveAllRenderPasses
Removes all IRenderPassNode objects currently assigned as scene content for the next frame

Render methods

Name Description
Public member StartNewFrame
Begins the process of drawing the next frame
Public member WaitForDrawComplete
Blocks the calling thread until no draw operation is in progress
Public member WaitForOutputCaptureComplete
Blocks the calling thread until no draw process is in progress, and any output capture processes from the previous frame are complete.
Public member WaitForDeferredDeletionComplete
Blocks the calling thread until no draw process is in progress, and any resources which became eligible for deletion during the current build process are fully removed. Note that this can be important when deleting a window you were drawing to in the previous frame.

See also