Castor3D 0.16.0
Multiplatform 3D engine
Public Member Functions | List of all members
castor3d::ReflectionComponent::Plugin Class Reference

#include <ReflectionComponent.hpp>

Inheritance diagram for castor3d::ReflectionComponent::Plugin:
Inheritance graph
[legend]
Collaboration diagram for castor3d::ReflectionComponent::Plugin:
Collaboration graph
[legend]

Public Member Functions

PassComponentUPtr createComponent (Pass &pass) const override
 
void createParsers (castor::AttributeParsers &parsers, ChannelFillers &channelFillers) const override
 Fills the given lists with this component's parsers.
 
void zeroBuffer (Pass const &pass, shader::PassMaterialShader const &materialShader, PassBuffer &buffer) const override
 Fills the material buffer with zero values fot the component data.
 
bool isComponentNeeded (TextureCombine const &textures, ComponentModeFlags const &filter) const override
 Tells if the component's lighting shaders are needed.
 
shader::PassComponentsShaderPtr createComponentsShader () const override
 Creates the component's lighting shaders.
 
shader::PassMaterialShaderPtr createMaterialShader () const override
 Creates the component's material shaders.
 
 PassComponentPlugin (PassComponentPlugin const &)=delete
 
C3D_API PassComponentPlugin (PassComponentPlugin &&rhs) noexcept=default
 
C3D_API PassComponentPlugin (PassComponentRegister const &passComponents, UpdateComponent const &pupdateComponent=nullptr, FinishComponent const &pfinishComponent=nullptr)
 
- Public Member Functions inherited from castor3d::PassComponentPlugin
 PassComponentPlugin (PassComponentPlugin const &)=delete
 
PassComponentPluginoperator= (PassComponentPlugin const &)=delete
 
PassComponentPluginoperator= (PassComponentPlugin &&rhs) noexcept=delete
 
virtual C3D_API ~PassComponentPlugin ()=default
 
C3D_API PassComponentPlugin (PassComponentPlugin &&rhs) noexcept=default
 
C3D_API PassComponentPlugin (PassComponentRegister const &passComponents, UpdateComponent const &pupdateComponent=nullptr, FinishComponent const &pfinishComponent=nullptr)
 
virtual C3D_API void createSections (castor::StrUInt32Map &sections) const
 Fills the sections list with the ones created by this component.
 
virtual C3D_API bool writeTextureConfig (TextureConfiguration const &configuration, castor::String const &tabs, castor::StringStream &file) const
 Writes the texture configuration for this component in a scene file.
 
virtual C3D_API void filterComponentFlags (ComponentModeFlags filter, PassComponentCombine &componentsFlags) const
 Removes from given component flags the ones that are useless given the provided filter.
 
virtual C3D_API PassComponentFlag getComponentFlags () const
 
virtual C3D_API PassComponentFlag getAlphaBlendingFlag () const
 
virtual C3D_API PassComponentFlag getAlphaTestFlag () const
 
virtual C3D_API PassComponentFlag getTransmissionFlag () const
 
virtual C3D_API PassComponentFlag getParallaxOcclusionMappingOneFlag () const
 
virtual C3D_API PassComponentFlag getParallaxOcclusionMappingRepeatFlag () const
 
virtual C3D_API PassComponentFlag getDeferredDiffuseLightingFlag () const
 
virtual C3D_API shader::PassReflRefrShaderPtr createReflRefrShader () const
 Creates the component's reflection and refraction shader.
 
PassComponentID getId () const
 
PassComponentRegister const & getRegister () const
 
virtual C3D_API void createMapComponent (Pass &pass, castor::Vector< PassComponentUPtr > &result) const
 Creates the map component.
 
virtual C3D_API bool isMapComponent () const
 
virtual C3D_API bool isReflRefrComponent () const
 
virtual C3D_API bool replacesMapSampling () const
 
virtual C3D_API bool hasTexcoordModif (PassComponentRegister const &passComponents, PipelineFlags const *flags) const
 
virtual C3D_API void filterTextureFlags (ComponentModeFlags filter, TextureCombine &texturesFlags) const
 Removes from given texture flags the ones that are useless given the provided filter.
 
virtual C3D_API void fillTextureConfiguration (TextureConfiguration &configuration, uint32_t mask=0) const
 Fills the texture configuration for use with this component.
 
TextureConfiguration getBaseTextureConfiguration () const
 
virtual C3D_API PassComponentTextureFlag getTextureFlags () const
 
virtual C3D_API castor::String getTextureFlagsName (PassComponentTextureFlag const &flags) const
 
virtual C3D_API PassComponentTextureFlag getColourMapFlags () const
 
virtual C3D_API PassComponentTextureFlag getOpacityMapFlags () const
 
virtual C3D_API PassComponentTextureFlag getNormalMapFlags () const
 
virtual C3D_API PassComponentTextureFlag getHeightMapFlags () const
 
virtual C3D_API PassComponentTextureFlag getOcclusionMapFlags () const
 

Additional Inherited Members

- Public Attributes inherited from castor3d::PassComponentPlugin
FinishComponent finishComponent
 Applies component's transformations before lighting happens.
 
UpdateComponent updateComponent
 

Member Function Documentation

◆ createComponent()

PassComponentUPtr castor3d::ReflectionComponent::Plugin::createComponent ( Pass & pass) const
inlineoverridevirtual

Creates a component for given pass.

Remarks
Doesn't add the component to the pass.
Parameters
[in]passThe pass.

Implements castor3d::PassComponentPlugin.

◆ createComponentsShader()

shader::PassComponentsShaderPtr castor3d::ReflectionComponent::Plugin::createComponentsShader ( ) const
inlineoverridevirtual

Creates the component's lighting shaders.

Reimplemented from castor3d::PassComponentPlugin.

◆ createMaterialShader()

shader::PassMaterialShaderPtr castor3d::ReflectionComponent::Plugin::createMaterialShader ( ) const
inlineoverridevirtual

Creates the component's material shaders.

Reimplemented from castor3d::PassComponentPlugin.

◆ createParsers()

void castor3d::ReflectionComponent::Plugin::createParsers ( castor::AttributeParsers & parsers,
ChannelFillers & channelFillers ) const
overridevirtual

Fills the given lists with this component's parsers.

Parameters
[in,out]parsersReceives the parsers.
[in,out]channelFillersReceives the texture channels and the way to fill them.

Reimplemented from castor3d::PassComponentPlugin.

◆ isComponentNeeded()

bool castor3d::ReflectionComponent::Plugin::isComponentNeeded ( TextureCombine const & textures,
ComponentModeFlags const & filter ) const
overridevirtual

Tells if the component's lighting shaders are needed.

Parameters
[in]texturesTo check from texturing viewpoint.
[in,out]filterTo check from render pass viewpoint.

Reimplemented from castor3d::PassComponentPlugin.

◆ PassComponentPlugin() [1/3]

C3D_API castor3d::PassComponentPlugin::PassComponentPlugin ( PassComponentPlugin && rhs)
defaultnoexcept

◆ PassComponentPlugin() [2/3]

castor3d::PassComponentPlugin::PassComponentPlugin ( PassComponentPlugin const & )
delete

◆ PassComponentPlugin() [3/3]

C3D_API castor3d::PassComponentPlugin::PassComponentPlugin ( PassComponentRegister const & passComponents,
UpdateComponent const & pupdateComponent = nullptr,
FinishComponent const & pfinishComponent = nullptr )
inlineexplicit
Parameters
[in]passComponentsThe components registrar.
[in]pupdateComponentThe function to adjust the component data after textures have been parsed.
[in]pfinishComponentThe function to adjust the component data after materials are blended.

◆ zeroBuffer()

void castor3d::ReflectionComponent::Plugin::zeroBuffer ( Pass const & pass,
shader::PassMaterialShader const & materialShader,
PassBuffer & buffer ) const
overridevirtual

Fills the material buffer with zero values fot the component data.

Parameters
[in]passTo find its data in the buffer.
[in]materialShaderTo find the component's data in the pass entry into the buffer.
[in]bufferThe buffer.

Reimplemented from castor3d::PassComponentPlugin.


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