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.
Important
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.
Important
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.
Warning
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 | |
|---|---|---|
| InitializationFlags |
Optional flags to control the renderer initialization process
|
|
| Options |
Optional renderer features, which can be requested at the time the renderer is created.
|
Structures
| Name | Description | |
|---|---|---|
| WindowSystemInfoBase |
Base structure for platform-specific window system information structures. See the Initialize
method for more information.
|
Members
Initialization methods
| Name | Description | |
|---|---|---|
| Initialize |
Initializes the renderer. This method must be called before any other methods are called.
|
|
| Delete |
Deletes the object. After calling this method, the object is destroyed.
|
Geometry buffer methods
| Name | Description | |
|---|---|---|
| CreateVertexBuffer |
Creates and returns a new IVertexBuffer object
|
|
| CreateIndexBuffer |
Creates and returns a new IIndexBuffer object
|
Image buffer methods
| Name | Description | |
|---|---|---|
| CreateTextureBuffer1D |
Creates and returns a new ITextureBuffer1D object
|
|
| CreateTextureBuffer2D |
Creates and returns a new ITextureBuffer2D object
|
|
| CreateTextureBuffer3D |
Creates and returns a new ITextureBuffer3D object
|
|
| CreateTextureBufferCube |
Creates and returns a new ITextureBufferCube object
|
|
| CreateTextureBuffer1DArray |
Creates and returns a new ITextureBuffer1DArray object
|
|
| CreateTextureBuffer2DArray |
Creates and returns a new ITextureBuffer2DArray object
|
|
| CreateTextureBufferCubeArray |
Creates and returns a new ITextureBufferCubeArray object
|
Image sampler methods
| Name | Description | |
|---|---|---|
| CreateTextureSampler1D |
Creates and returns a new ITextureSampler1D object
|
|
| CreateTextureSampler2D |
Creates and returns a new ITextureSampler2D object
|
|
| CreateTextureSampler3D |
Creates and returns a new ITextureSampler3D object
|
|
| CreateTextureSamplerCube |
Creates and returns a new ITextureSamplerCube object
|
|
| CreateTextureSampler1DArray |
Creates and returns a new ITextureSampler1DArray object
|
|
| CreateTextureSampler2DArray |
Creates and returns a new ITextureSampler2DArray object
|
|
| CreateTextureSamplerCubeArray |
Creates and returns a new ITextureSamplerCubeArray object
|
Data array methods
| Name | Description | |
|---|---|---|
| CreateDataArray |
Creates and returns a new IDataArray object
|
|
| CreateDataArrayOutput |
Creates and returns a new IDataArrayOutput object
|
|
| CreateTexelArray |
Creates and returns a new ITexelArray object
|
|
| CreateTexelArrayOutput |
Creates and returns a new ITexelArrayOutput object
|
Batch methods
| Name | Description | |
|---|---|---|
| CreateTransferBatch |
Creates and returns a new ITransferBatch object
|
Frame buffer methods
| Name | Description | |
|---|---|---|
| CreateFrameBuffer |
Creates and returns a new IFrameBuffer object
|
|
| CreateFrameBufferOutput |
Creates and returns a new IFrameBufferOutput object
|
State buffer methods
| Name | Description | |
|---|---|---|
| CreateStateBuffer |
Creates and returns a new IStateBuffer object
|
|
| CreateStateBufferLayout |
Creates and returns a new IStateBufferLayout object
|
Render tree node methods
| Name | Description | |
|---|---|---|
| CreateRenderPassNode |
Creates and returns a new IRenderPassNode object
|
|
| CreateProgramNode |
Creates and returns a new IProgramNode object
|
|
| CreateStateGroupNode |
Creates and returns a new IStateGroupNode object
|
|
| CreateRenderableNode |
Creates and returns a new IRenderableNode object
|
|
| CreateDefaultState |
Creates and returns a new IDefaultState object
|
Program methods
| Name | Description | |
|---|---|---|
| CreateShaderProgram |
Creates and returns a new IShaderProgram object
|
Scene content methods
| Name | Description | |
|---|---|---|
| SetRenderPasses |
Sets the scene content for the next frame to the set of supplied IRenderPassNode objects
|
|
| RemoveAllRenderPasses |
Removes all IRenderPassNode objects currently assigned as scene content for the next frame
|
Render methods
| Name | Description | |
|---|---|---|
| StartNewFrame |
Begins the process of drawing the next frame
|
|
| WaitForDrawComplete |
Blocks the calling thread until no draw operation is in progress
|
|
| WaitForOutputCaptureComplete |
Blocks the calling thread until no draw process is in progress, and any output capture processes from the previous frame are complete.
|
|
| 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.
|