Castor3D
..
|
Render technique base class. More...
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.