|
Castor3D
..
|
Render technique base class. More...
Inheritance diagram for Castor3D::RenderTechnique:
Collaboration diagram for Castor3D::RenderTechnique:Classes | |
| struct | stFRAME_BUFFER |
| Internal struct holding a complete frame buffer. More... | |
| struct | stRENDER_NODES |
| The render nodes for a specific scene. More... | |
| struct | stSCENE_RENDER_NODES |
| The render nodes for a specific scene. More... | |
Public Member Functions | |
| virtual C3D_API | ~RenderTechnique () |
| Destructor. More... | |
| C3D_API bool | Create () |
| Creation function. More... | |
| C3D_API void | Destroy () |
| Destruction function. More... | |
| C3D_API bool | Initialise (uint32_t &p_index) |
| Initialisation function. More... | |
| C3D_API void | Cleanup () |
| Cleanup function. More... | |
| C3D_API void | Update () |
| Update function. More... | |
| C3D_API void | AddScene (Scene &p_scene) |
| Adds a scene rendered through this technique. More... | |
| C3D_API void | Render (Scene &p_scene, Camera &p_camera, uint32_t p_frameTime) |
| Render function. More... | |
| C3D_API Castor::String | GetPixelShaderSource (uint32_t p_flags) const |
| Retrieves the pixel shader source matching the given flags. More... | |
| Castor::String const & | GetName () const |
| Castor::Size const & | GetSize () const |
| DynamicTexture const & | GetResult () const |
Protected Member Functions | |
| C3D_API | RenderTechnique (Castor::String const &p_name, RenderTarget &p_renderTarget, RenderSystem *p_renderSystem, Parameters const &p_params) |
| Constructor. More... | |
| virtual C3D_API Castor::String | DoGetPixelShaderSource (uint32_t p_flags) const |
| Retrieves the pixel shader source matching the given flags. More... | |
| virtual C3D_API bool | DoCreate ()=0 |
| Creation function. More... | |
| virtual C3D_API void | DoDestroy ()=0 |
| Destruction function. More... | |
| virtual C3D_API bool | DoInitialise (uint32_t &p_index)=0 |
| Initialisation function. More... | |
| virtual C3D_API void | DoCleanup ()=0 |
| Cleanup function. More... | |
| virtual C3D_API bool | DoBeginRender (Scene &p_scene)=0 |
| Render begin function. More... | |
| virtual C3D_API void | DoRender (stSCENE_RENDER_NODES &p_nodes, Camera &p_camera, uint32_t p_frameTime)=0 |
| Render function. More... | |
| virtual C3D_API void | DoEndRender (Scene &p_scene)=0 |
| Render end function. More... | |
| C3D_API void | DoSortRenderNodes (stSCENE_RENDER_NODES &p_nodes) |
| Sorts scene render nodes. More... | |
| C3D_API void | DoBindPass (Scene &p_scene, Pipeline &p_pipeline, GeometryRenderNode &p_node, uint64_t p_excludedMtxFlags) |
| Binds the given pass. More... | |
| C3D_API void | DoUnbindPass (Scene &p_scene, GeometryRenderNode &p_renderNode) |
| Unbinds the render node's pass. More... | |
| C3D_API void | DoBindPass (Scene &p_scene, Pipeline &p_pipeline, BillboardRenderNode &p_node, uint64_t p_excludedMtxFlags) |
| Binds the given pass. More... | |
| C3D_API void | DoUnbindPass (Scene &p_scene, BillboardRenderNode &p_renderNode) |
| Unbinds the render node's pass. More... | |
| C3D_API void | DoRenderSubmeshesNonInstanced (Scene &p_scene, Camera const &p_camera, Pipeline &p_pipeline, SubmeshRenderNodesByProgramMap &p_nodes) |
| Renders non instanced submeshes. More... | |
| C3D_API void | DoRenderSubmeshesInstanced (Scene &p_scene, Camera const &p_camera, Pipeline &p_pipeline, SubmeshRenderNodesByProgramMap &p_nodes) |
| Renders instanced submeshes. More... | |
| C3D_API void | DoRenderSubmeshesNonInstanced (Scene &p_scene, Camera const &p_camera, Pipeline &p_pipeline, GeometryRenderNodeByDistanceMMap &p_nodes) |
| Renders distance sorted submeshes. More... | |
| C3D_API void | DoRenderSubmeshes (Scene &p_scene, Camera const &p_camera, Pipeline &p_pipeline, SubmeshRenderNodesByProgramMap &p_nodes) |
| Renders submeshes. More... | |
| C3D_API void | DoRenderBillboards (Scene &p_scene, Camera const &p_camera, Pipeline &p_pipeline, BillboardRenderNodeByDistanceMMap &p_nodes) |
| Renders billboards. More... | |
| C3D_API void | DoRenderBillboards (Scene &p_scene, Camera const &p_camera, Pipeline &p_pipeline, BillboardRenderNodesByProgramMap &p_nodes) |
| Renders billboards. More... | |
| C3D_API void | DoResortAlpha (SubmeshRenderNodesByProgramMap p_input, Camera const &p_camera, GeometryRenderNodeByDistanceMMap &p_output) |
| Sorts the given render nodes by distance to the camera. More... | |
| C3D_API void | DoResortAlpha (BillboardRenderNodesByProgramMap p_input, Camera const &p_camera, BillboardRenderNodeByDistanceMMap &p_output) |
| Sorts the given render nodes by distance to the camera. More... | |
| C3D_API void | DoRender (Castor::Size const &p_size, stSCENE_RENDER_NODES &p_nodes, Camera &p_camera, uint32_t p_frameTime) |
| Render function. More... | |
Protected Attributes | |
| Castor::String | m_name |
| The technique name. More... | |
| bool | m_initialised |
| The technique intialisation status. More... | |
| RenderTarget * | m_renderTarget |
| The parent render target. More... | |
| RenderSystem * | m_renderSystem |
| The render system. More... | |
| Castor::Size | m_size |
| The render area dimension. More... | |
| std::map< Castor::String, stSCENE_RENDER_NODES > | m_scenesRenderNodes |
| The scenes rendered through this technique. More... | |
| stFRAME_BUFFER | m_frameBuffer |
| The HDR frame buffer. More... | |
| RasteriserStateWPtr | m_wpFrontRasteriserState |
| The rasteriser state to cull front faces. More... | |
| RasteriserStateWPtr | m_wpBackRasteriserState |
| The rasteriser state to cull back faces. More... | |
Render technique base class.
|
protected |
Constructor.
| [in] | p_name | The technique name |
| [in] | p_renderTarget | The render target for this technique |
| [in] | p_renderSystem | The render system |
| [in] | p_params | The technique parameters |
|
virtual |
Destructor.
| C3D_API void Castor3D::RenderTechnique::AddScene | ( | Scene & | p_scene | ) |
Adds a scene rendered through this technique.
| [in] | p_scene | The scene. |
| C3D_API void Castor3D::RenderTechnique::Cleanup | ( | ) |
Cleanup function.
| C3D_API bool Castor3D::RenderTechnique::Create | ( | ) |
Creation function.
true if OK | C3D_API void Castor3D::RenderTechnique::Destroy | ( | ) |
Destruction function.
|
protectedpure virtual |
Render begin function.
| [in] | p_scene | The scene to render |
true if ok.
|
protected |
Binds the given pass.
| [in] | p_scene | The rendered scene. |
| [in] | p_pipeline | The render pipeline. |
| [in] | p_node | The render node. |
| [in] | p_excludedMtxFlags | Combination of MASK_MTXMODE, to be excluded from matrices used in program. |
|
protected |
Binds the given pass.
| [in] | p_scene | The rendered scene. |
| [in] | p_pipeline | The render pipeline. |
| [in] | p_node | The render node. |
| [in] | p_excludedMtxFlags | Combination of MASK_MTXMODE, to be excluded from matrices used in program. |
|
protectedpure virtual |
Cleanup function.
|
protectedpure virtual |
Creation function.
true if OK
|
protectedpure virtual |
Destruction function.
|
protectedpure virtual |
Render end function.
| [in] | p_scene | The scene to render |
|
protectedvirtual |
Retrieves the pixel shader source matching the given flags.
| [in] | p_flags | A combination of eTEXTURE_CHANNEL |
|
protectedpure virtual |
Initialisation function.
| [in] | p_index | The base texture index |
true if ok
|
protectedpure virtual |
Render function.
| [in] | p_nodes | The nodes to render. |
| [in] | p_camera | The camera through which the scene is viewed. |
| [in] | p_frameTime | The time elapsed since last frame was rendered. |
true if ok
|
protected |
Render function.
| [in] | p_size | The render target dimensions. |
| [in] | p_nodes | The scene render nodes. |
| [in] | p_camera | The camera through which the scene is viewed. |
| [in] | p_frameTime | The time elapsed since last frame was rendered. |
true if ok
|
protected |
Renders billboards.
| [in] | p_scene | The rendered scene. |
| [in] | p_camera | The camera through which the scene is viewed. |
| [in] | p_pipeline | The render pipeline. |
| [in] | p_nodes | The render nodes. |
|
protected |
Renders billboards.
| [in] | p_scene | The rendered scene. |
| [in] | p_camera | The camera through which the scene is viewed. |
| [in] | p_pipeline | The render pipeline. |
| [in] | p_nodes | The render nodes. |
|
protected |
Renders submeshes.
| [in] | p_scene | The rendered scene. |
| [in] | p_camera | The camera through which the scene is viewed. |
| [in] | p_pipeline | The render pipeline. |
| [in] | p_nodes | The render nodes. |
|
protected |
Renders instanced submeshes.
| [in] | p_scene | The rendered scene. |
| [in] | p_camera | The camera through which the scene is viewed. |
| [in] | p_pipeline | The render pipeline. |
| [in] | p_nodes | The render nodes. |
|
protected |
Renders non instanced submeshes.
| [in] | p_scene | The rendered scene. |
| [in] | p_camera | The camera through which the scene is viewed. |
| [in] | p_pipeline | The render pipeline. |
| [in] | p_nodes | The render nodes. |
|
protected |
Renders distance sorted submeshes.
| [in] | p_scene | The rendered scene. |
| [in] | p_camera | The camera through which the scene is viewed. |
| [in] | p_pipeline | The render pipeline. |
| [in] | p_nodes | The render nodes. |
|
protected |
Sorts the given render nodes by distance to the camera.
| [in] | p_input | The unsorted render nodes. |
| [in] | p_camera | The camera. |
| [out] | p_output | The sorted render nodes. |
|
protected |
Sorts the given render nodes by distance to the camera.
| [in] | p_input | The unsorted render nodes. |
| [in] | p_camera | The camera. |
| [out] | p_output | The sorted render nodes. |
|
protected |
Sorts scene render nodes.
| [in,out] | p_nodes | The nodes. |
|
protected |
Unbinds the render node's pass.
| [in] | p_scene | The scene. |
| [in] | p_renderNode | The render node. |
|
protected |
Unbinds the render node's pass.
| [in] | p_scene | The scene. |
| [in] | p_renderNode | The render node. |
|
inline |
References m_name.
| C3D_API Castor::String Castor3D::RenderTechnique::GetPixelShaderSource | ( | uint32_t | p_flags | ) | const |
Retrieves the pixel shader source matching the given flags.
| [in] | p_flags | A combination of eTEXTURE_CHANNEL |
|
inline |
References Castor3D::RenderTechnique::stFRAME_BUFFER::m_colourTexture, and m_frameBuffer.
|
inline |
References m_size.
| C3D_API bool Castor3D::RenderTechnique::Initialise | ( | uint32_t & | p_index | ) |
Initialisation function.
| [in] | p_index | The base texture index |
true if ok | C3D_API void Castor3D::RenderTechnique::Render | ( | Scene & | p_scene, |
| Camera & | p_camera, | ||
| uint32_t | p_frameTime | ||
| ) |
Render function.
| [in] | p_scene | The scene to render |
| [in] | p_camera | The camera through which the scene is viewed |
| [in] | p_frameTime | The time elapsed since last frame was rendered |
| C3D_API void Castor3D::RenderTechnique::Update | ( | ) |
Update function.
|
protected |
The HDR frame buffer.
Referenced by GetResult().
|
protected |
The technique intialisation status.
|
protected |
The technique name.
Referenced by GetName().
|
protected |
The render system.
|
protected |
The parent render target.
|
protected |
The scenes rendered through this technique.
|
protected |
The render area dimension.
Referenced by GetSize().
|
protected |
The rasteriser state to cull back faces.
|
protected |
The rasteriser state to cull front faces.
1.8.15