Castor3D 0.12.0
Multiplatform 3D engine
Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
castor3d::RenderTechnique Class Reference

#include <RenderTechnique.hpp>

Inheritance diagram for castor3d::RenderTechnique:
Inheritance graph
[legend]
Collaboration diagram for castor3d::RenderTechnique:
Collaboration graph
[legend]

Public Types

using ShadowMapArray = std::vector< ShadowMapUPtr >
 

Public Member Functions

C3D_API RenderTechnique (castor::String const &name, RenderTarget &renderTarget, RenderDevice const &device, QueueData const &queueData, Parameters const &parameters, SsaoConfig const &ssaoConfig, ProgressBar *progress)
 Constructor. More...
 
C3D_API ~RenderTechnique ()
 Destructor. More...
 
C3D_API void listIntermediates (std::vector< IntermediateView > &intermediates)
 Lists the intermediate view used by the whole technique. More...
 
C3D_API void update (CpuUpdater &updater)
 Updates the render pass, CPU wise. More...
 
C3D_API void update (GpuUpdater &updater)
 Updates the render pass, GPU wise. More...
 
C3D_API crg::SemaphoreWaitArray preRender (crg::SemaphoreWaitArray const &toWait, ashes::Queue const &queue)
 Renders maps needed for the actual rendering. More...
 
C3D_API bool writeInto (castor::TextFile &file)
 Writes the technique into a text file. More...
 
C3D_API void accept (RenderTechniqueVisitor &visitor)
 Visitor acceptance function. More...
 
C3D_API crg::FramePass const & getLastPass () const
 
C3D_API SsaoConfig const & getSsaoConfig () const
 
C3D_API SsaoConfiggetSsaoConfig ()
 
C3D_API Texture const & getSsaoResult () const
 
C3D_API Texture const & getFirstVctBounce () const
 
C3D_API Texture const & getSecondaryVctBounce () const
 
C3D_API crg::ImageViewId const & getLightDepthImgView () const
 
C3D_API TechniquePassVector getCustomRenderPasses () const
 
C3D_API Texture const & getDiffuseLightingResult () const
 
C3D_API Texture const & getBaseColourResult () const
 
castor::Size const & getSize () const
 
TextureLayout const & getResult () const
 
Texture const & getResultTexture () const
 
crg::ImageId const & getResultImg () const
 
crg::ImageViewId const & getResultImgView () const
 
crg::ImageViewId const & getResultTargetView () const
 
Texture const & getNormalTexture () const
 
crg::ImageViewId const & getNormalImgView () const
 
Texture const & getDepthTexture () const
 
crg::ImageId const & getDepthImg () const
 
crg::ImageViewId const & getDepthWholeView () const
 
crg::ImageViewId const & getDepthSampledView () const
 
crg::ImageViewId const & getDepthTargetView () const
 
crg::ImageViewId const & getDepthObjImgView () const
 
TextureLayout const & getDepth () const
 
TextureLayoutSPtr getDepthPtr () const
 
ashes::Buffer< int32_t > const & getDepthRange () const
 
bool needsDepthRange () const
 
void setNeedsDepthRange (bool value)
 
LightVolumePassResult const & getLpvResult () const
 
LightVolumePassResultArray const & getLlpvResult () const
 
MatrixUbo const & getMatrixUbo () const
 
MatrixUbogetMatrixUbo ()
 
SceneUbo const & getSceneUbo () const
 
SceneUbogetSceneUbo ()
 
LpvGridConfigUbo const & getLpvConfigUbo () const
 
LayeredLpvGridConfigUbo const & getLlpvConfigUbo () const
 
VoxelizerUbo const & getVctConfigUbo () const
 
ShadowMapLightTypeArray const & getShadowMaps () const
 
ashes::Semaphore const & getSemaphore () const
 
RenderTarget const & getRenderTarget () const
 
RenderTargetgetRenderTarget ()
 
bool isMultisampling () const
 

Static Public Member Functions

static C3D_API uint32_t countInitialisationSteps ()
 

Friends

class RenderTechniquePass
 

Member Typedef Documentation

◆ ShadowMapArray

using castor3d::RenderTechnique::ShadowMapArray = std::vector< ShadowMapUPtr >

Constructor & Destructor Documentation

◆ RenderTechnique()

C3D_API castor3d::RenderTechnique::RenderTechnique ( castor::String const &  name,
RenderTarget renderTarget,
RenderDevice const &  device,
QueueData const &  queueData,
Parameters const &  parameters,
SsaoConfig const &  ssaoConfig,
ProgressBar progress 
)

Constructor.

Parameters
[in]nameThe technique name.
[in]renderTargetThe render target for this technique.
[in]deviceThe GPU device.
[in]queueDataThe queue receiving the GPU commands.
[in]parametersThe technique parameters.
[in]ssaoConfigThe SSAO configuration.
[in]progressThe optional progress bar.

◆ ~RenderTechnique()

C3D_API castor3d::RenderTechnique::~RenderTechnique ( )

Destructor.

Member Function Documentation

◆ accept()

C3D_API void castor3d::RenderTechnique::accept ( RenderTechniqueVisitor visitor)

Visitor acceptance function.

Parameters
visitorThe ... visitor.

◆ countInitialisationSteps()

static C3D_API uint32_t castor3d::RenderTechnique::countInitialisationSteps ( )
static
Returns
The number of steps needed for initialisation, to show progression.

◆ getBaseColourResult()

C3D_API Texture const & castor3d::RenderTechnique::getBaseColourResult ( ) const

◆ getCustomRenderPasses()

C3D_API TechniquePassVector castor3d::RenderTechnique::getCustomRenderPasses ( ) const

◆ getDepth()

TextureLayout const & castor3d::RenderTechnique::getDepth ( ) const
inline

◆ getDepthImg()

crg::ImageId const & castor3d::RenderTechnique::getDepthImg ( ) const
inline

◆ getDepthObjImgView()

crg::ImageViewId const & castor3d::RenderTechnique::getDepthObjImgView ( ) const
inline

◆ getDepthPtr()

TextureLayoutSPtr castor3d::RenderTechnique::getDepthPtr ( ) const
inline

◆ getDepthRange()

ashes::Buffer< int32_t > const & castor3d::RenderTechnique::getDepthRange ( ) const
inline

◆ getDepthSampledView()

crg::ImageViewId const & castor3d::RenderTechnique::getDepthSampledView ( ) const
inline

◆ getDepthTargetView()

crg::ImageViewId const & castor3d::RenderTechnique::getDepthTargetView ( ) const
inline

◆ getDepthTexture()

Texture const & castor3d::RenderTechnique::getDepthTexture ( ) const
inline

◆ getDepthWholeView()

crg::ImageViewId const & castor3d::RenderTechnique::getDepthWholeView ( ) const
inline

◆ getDiffuseLightingResult()

C3D_API Texture const & castor3d::RenderTechnique::getDiffuseLightingResult ( ) const

◆ getFirstVctBounce()

C3D_API Texture const & castor3d::RenderTechnique::getFirstVctBounce ( ) const

◆ getLastPass()

C3D_API crg::FramePass const & castor3d::RenderTechnique::getLastPass ( ) const

name Getters.

◆ getLightDepthImgView()

C3D_API crg::ImageViewId const & castor3d::RenderTechnique::getLightDepthImgView ( ) const

◆ getLlpvConfigUbo()

LayeredLpvGridConfigUbo const & castor3d::RenderTechnique::getLlpvConfigUbo ( ) const
inline

◆ getLlpvResult()

LightVolumePassResultArray const & castor3d::RenderTechnique::getLlpvResult ( ) const
inline

◆ getLpvConfigUbo()

LpvGridConfigUbo const & castor3d::RenderTechnique::getLpvConfigUbo ( ) const
inline

◆ getLpvResult()

LightVolumePassResult const & castor3d::RenderTechnique::getLpvResult ( ) const
inline

◆ getMatrixUbo() [1/2]

MatrixUbo & castor3d::RenderTechnique::getMatrixUbo ( )
inline

◆ getMatrixUbo() [2/2]

MatrixUbo const & castor3d::RenderTechnique::getMatrixUbo ( ) const
inline

◆ getNormalImgView()

crg::ImageViewId const & castor3d::RenderTechnique::getNormalImgView ( ) const
inline

◆ getNormalTexture()

Texture const & castor3d::RenderTechnique::getNormalTexture ( ) const
inline

◆ getRenderTarget() [1/2]

RenderTarget & castor3d::RenderTechnique::getRenderTarget ( )
inline

◆ getRenderTarget() [2/2]

RenderTarget const & castor3d::RenderTechnique::getRenderTarget ( ) const
inline

◆ getResult()

TextureLayout const & castor3d::RenderTechnique::getResult ( ) const
inline

◆ getResultImg()

crg::ImageId const & castor3d::RenderTechnique::getResultImg ( ) const
inline

◆ getResultImgView()

crg::ImageViewId const & castor3d::RenderTechnique::getResultImgView ( ) const
inline

◆ getResultTargetView()

crg::ImageViewId const & castor3d::RenderTechnique::getResultTargetView ( ) const
inline

◆ getResultTexture()

Texture const & castor3d::RenderTechnique::getResultTexture ( ) const
inline

◆ getSceneUbo() [1/2]

SceneUbo & castor3d::RenderTechnique::getSceneUbo ( )
inline

◆ getSceneUbo() [2/2]

SceneUbo const & castor3d::RenderTechnique::getSceneUbo ( ) const
inline

◆ getSecondaryVctBounce()

C3D_API Texture const & castor3d::RenderTechnique::getSecondaryVctBounce ( ) const

◆ getSemaphore()

ashes::Semaphore const & castor3d::RenderTechnique::getSemaphore ( ) const
inline

◆ getShadowMaps()

ShadowMapLightTypeArray const & castor3d::RenderTechnique::getShadowMaps ( ) const
inline

◆ getSize()

castor::Size const & castor3d::RenderTechnique::getSize ( ) const
inline

◆ getSsaoConfig() [1/2]

C3D_API SsaoConfig & castor3d::RenderTechnique::getSsaoConfig ( )

◆ getSsaoConfig() [2/2]

C3D_API SsaoConfig const & castor3d::RenderTechnique::getSsaoConfig ( ) const

◆ getSsaoResult()

C3D_API Texture const & castor3d::RenderTechnique::getSsaoResult ( ) const

◆ getVctConfigUbo()

VoxelizerUbo const & castor3d::RenderTechnique::getVctConfigUbo ( ) const
inline

◆ isMultisampling()

bool castor3d::RenderTechnique::isMultisampling ( ) const
inline

◆ listIntermediates()

C3D_API void castor3d::RenderTechnique::listIntermediates ( std::vector< IntermediateView > &  intermediates)

Lists the intermediate view used by the whole technique.

Parameters
[out]intermediatesReceives the intermediate views.

◆ needsDepthRange()

bool castor3d::RenderTechnique::needsDepthRange ( ) const
inline

◆ preRender()

C3D_API crg::SemaphoreWaitArray castor3d::RenderTechnique::preRender ( crg::SemaphoreWaitArray const &  toWait,
ashes::Queue const &  queue 
)

Renders maps needed for the actual rendering.

Parameters
[in]toWaitThe semaphores to wait.
[in]queueThe queue receiving the render commands.
Returns
The semaphores signaled by this render.

◆ setNeedsDepthRange()

void castor3d::RenderTechnique::setNeedsDepthRange ( bool  value)
inline

◆ update() [1/2]

C3D_API void castor3d::RenderTechnique::update ( CpuUpdater updater)

Updates the render pass, CPU wise.

Parameters
[in,out]updaterThe update data.

◆ update() [2/2]

C3D_API void castor3d::RenderTechnique::update ( GpuUpdater updater)

Updates the render pass, GPU wise.

Parameters
[in,out]updaterThe update data.

◆ writeInto()

C3D_API bool castor3d::RenderTechnique::writeInto ( castor::TextFile &  file)

Writes the technique into a text file.

Parameters
[in]fileThe file.

Friends And Related Function Documentation

◆ RenderTechniquePass

friend class RenderTechniquePass
friend

The documentation for this class was generated from the following file: