Castor3D 0.16.0
Multiplatform 3D engine
Public Member Functions | Public Attributes | Friends | List of all members
castor3d::PassComponentPlugin Class Referenceabstract

#include <PassComponent.hpp>

Inheritance diagram for castor3d::PassComponentPlugin:
Inheritance graph
[legend]

Public Member Functions

virtual C3D_API PassComponentUPtr createComponent (Pass &pass) const =0
 

Construction / Desctruction.

 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)
 

Scene file registration.

virtual C3D_API void createParsers (castor::AttributeParsers &parsers, ChannelFillers &channelFillers) const
 Fills the given lists with this component's parsers.
 
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.
 

Pass buffer zeroing (when component is not present in the pass).

virtual C3D_API void zeroBuffer (Pass const &pass, shader::PassMaterialShader const &materialShader, PassBuffer &buffer) const
 Fills the material buffer with zero values fot the component data.
 

Pass flags handling.

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
 

Shader functions.

virtual C3D_API bool isComponentNeeded (TextureCombine const &textures, ComponentModeFlags const &filter) const
 Tells if the component's lighting shaders are needed.
 
virtual C3D_API shader::PassComponentsShaderPtr createComponentsShader () const
 Creates the component's lighting shaders.
 
virtual C3D_API shader::PassReflRefrShaderPtr createReflRefrShader () const
 Creates the component's reflection and refraction shader.
 
virtual C3D_API shader::PassMaterialShaderPtr createMaterialShader () const
 Creates the component's material shaders.
 

Getters.

PassComponentID getId () const
 
PassComponentRegister const & getRegister () const
 

Public Attributes

FinishComponent finishComponent
 Applies component's transformations before lighting happens.
 

Friends

class PassComponentRegister
 

Textures handling.

UpdateComponent updateComponent
 
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
 

Constructor & Destructor Documentation

◆ PassComponentPlugin() [1/3]

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

◆ ~PassComponentPlugin()

virtual C3D_API castor3d::PassComponentPlugin::~PassComponentPlugin ( )
virtualdefault

◆ PassComponentPlugin() [2/3]

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

◆ 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.

Member Function Documentation

◆ createComponent()

virtual C3D_API PassComponentUPtr castor3d::PassComponentPlugin::createComponent ( Pass & pass) const
pure virtual

Creates a component for given pass.

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

Implemented in castor3d::BlendComponent::Plugin, castor3d::FractalMappingComponent::Plugin, castor3d::NormalComponent::Plugin, castor3d::PassHeaderComponent::Plugin, castor3d::PickableComponent::Plugin, castor3d::TexturesComponent::Plugin, castor3d::TwoSidedComponent::Plugin, castor3d::UntileMappingComponent::Plugin, castor3d::AmbientComponent::Plugin, castor3d::AttenuationComponent::Plugin, castor3d::ClearcoatComponent::Plugin, castor3d::EmissiveComponent::Plugin, castor3d::IridescenceComponent::Plugin, castor3d::LightingModelComponent::Plugin, castor3d::MetalnessComponent::Plugin, castor3d::RoughnessComponent::Plugin, castor3d::SheenComponent::Plugin, castor3d::SpecularComponent::Plugin, castor3d::SpecularFactorComponent::Plugin, castor3d::SubsurfaceScatteringComponent::Plugin, castor3d::ThicknessComponent::Plugin, castor3d::TransmissionComponent::Plugin, castor3d::TransmittanceComponent::Plugin, castor3d::AttenuationMapComponent::Plugin, castor3d::ClearcoatMapComponent::Plugin, castor3d::ClearcoatNormalMapComponent::Plugin, castor3d::ClearcoatRoughnessMapComponent::Plugin, castor3d::ColourMapComponent::Plugin, castor3d::EmissiveMapComponent::Plugin, castor3d::GlossinessMapComponent::Plugin, castor3d::HeightMapComponent::Plugin, castor3d::IridescenceMapComponent::Plugin, castor3d::IridescenceThicknessMapComponent::Plugin, castor3d::MetalnessMapComponent::Plugin, castor3d::NormalMapComponent::Plugin, castor3d::OcclusionMapComponent::Plugin, castor3d::OpacityMapComponent::Plugin, castor3d::RoughnessMapComponent::Plugin, castor3d::SheenMapComponent::Plugin, castor3d::SheenRoughnessMapComponent::Plugin, castor3d::SpecularFactorMapComponent::Plugin, castor3d::SpecularMapComponent::Plugin, castor3d::TransmissionMapComponent::Plugin, castor3d::TransmittanceMapComponent::Plugin, castor3d::AlphaTestComponent::Plugin, castor3d::ColourComponent::Plugin, castor3d::DefaultReflRefrComponent::Plugin, castor3d::HeightComponent::Plugin, castor3d::OpacityComponent::Plugin, castor3d::ReflectionComponent::Plugin, and castor3d::RefractionComponent::Plugin.

◆ createComponentsShader()

virtual C3D_API shader::PassComponentsShaderPtr castor3d::PassComponentPlugin::createComponentsShader ( ) const
inlinevirtual

Creates the component's lighting shaders.

Reimplemented in castor3d::FractalMappingComponent::Plugin, castor3d::NormalComponent::Plugin, castor3d::TexturesComponent::Plugin, castor3d::UntileMappingComponent::Plugin, castor3d::AmbientComponent::Plugin, castor3d::AttenuationComponent::Plugin, castor3d::ClearcoatComponent::Plugin, castor3d::EmissiveComponent::Plugin, castor3d::IridescenceComponent::Plugin, castor3d::MetalnessComponent::Plugin, castor3d::RoughnessComponent::Plugin, castor3d::SheenComponent::Plugin, castor3d::SpecularComponent::Plugin, castor3d::SpecularFactorComponent::Plugin, castor3d::SubsurfaceScatteringComponent::Plugin, castor3d::ThicknessComponent::Plugin, castor3d::TransmissionComponent::Plugin, castor3d::TransmittanceComponent::Plugin, castor3d::AttenuationMapComponent::Plugin, castor3d::ClearcoatMapComponent::Plugin, castor3d::ClearcoatNormalMapComponent::Plugin, castor3d::ClearcoatRoughnessMapComponent::Plugin, castor3d::ColourMapComponent::Plugin, castor3d::EmissiveMapComponent::Plugin, castor3d::GlossinessMapComponent::Plugin, castor3d::HeightMapComponent::Plugin, castor3d::IridescenceMapComponent::Plugin, castor3d::IridescenceThicknessMapComponent::Plugin, castor3d::MetalnessMapComponent::Plugin, castor3d::NormalMapComponent::Plugin, castor3d::OcclusionMapComponent::Plugin, castor3d::OpacityMapComponent::Plugin, castor3d::RoughnessMapComponent::Plugin, castor3d::SheenMapComponent::Plugin, castor3d::SheenRoughnessMapComponent::Plugin, castor3d::SpecularFactorMapComponent::Plugin, castor3d::SpecularMapComponent::Plugin, castor3d::TransmissionMapComponent::Plugin, castor3d::TransmittanceMapComponent::Plugin, castor3d::AlphaTestComponent::Plugin, castor3d::ColourComponent::Plugin, castor3d::HeightComponent::Plugin, castor3d::OpacityComponent::Plugin, castor3d::ReflectionComponent::Plugin, and castor3d::RefractionComponent::Plugin.

◆ createMapComponent()

virtual C3D_API void castor3d::PassComponentPlugin::createMapComponent ( Pass & pass,
castor::Vector< PassComponentUPtr > & result ) const
inlinevirtual

◆ createMaterialShader()

virtual C3D_API shader::PassMaterialShaderPtr castor3d::PassComponentPlugin::createMaterialShader ( ) const
inlinevirtual

Creates the component's material shaders.

Reimplemented in castor3d::PassHeaderComponent::Plugin, castor3d::AmbientComponent::Plugin, castor3d::AttenuationComponent::Plugin, castor3d::ClearcoatComponent::Plugin, castor3d::EmissiveComponent::Plugin, castor3d::IridescenceComponent::Plugin, castor3d::LightingModelComponent::Plugin, castor3d::MetalnessComponent::Plugin, castor3d::RoughnessComponent::Plugin, castor3d::SheenComponent::Plugin, castor3d::SpecularComponent::Plugin, castor3d::SpecularFactorComponent::Plugin, castor3d::SubsurfaceScatteringComponent::Plugin, castor3d::ThicknessComponent::Plugin, castor3d::TransmissionComponent::Plugin, castor3d::TransmittanceComponent::Plugin, castor3d::AttenuationMapComponent::Plugin, castor3d::ClearcoatMapComponent::Plugin, castor3d::ClearcoatNormalMapComponent::Plugin, castor3d::ClearcoatRoughnessMapComponent::Plugin, castor3d::ColourMapComponent::Plugin, castor3d::EmissiveMapComponent::Plugin, castor3d::GlossinessMapComponent::Plugin, castor3d::HeightMapComponent::Plugin, castor3d::IridescenceMapComponent::Plugin, castor3d::IridescenceThicknessMapComponent::Plugin, castor3d::MetalnessMapComponent::Plugin, castor3d::NormalMapComponent::Plugin, castor3d::OcclusionMapComponent::Plugin, castor3d::OpacityMapComponent::Plugin, castor3d::RoughnessMapComponent::Plugin, castor3d::SheenMapComponent::Plugin, castor3d::SheenRoughnessMapComponent::Plugin, castor3d::SpecularFactorMapComponent::Plugin, castor3d::SpecularMapComponent::Plugin, castor3d::TransmissionMapComponent::Plugin, castor3d::TransmittanceMapComponent::Plugin, castor3d::AlphaTestComponent::Plugin, castor3d::ColourComponent::Plugin, castor3d::OpacityComponent::Plugin, castor3d::ReflectionComponent::Plugin, and castor3d::RefractionComponent::Plugin.

◆ createParsers()

virtual C3D_API void castor3d::PassComponentPlugin::createParsers ( castor::AttributeParsers & parsers,
ChannelFillers & channelFillers ) const
inlinevirtual

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 in castor3d::BlendComponent::Plugin, castor3d::FractalMappingComponent::Plugin, castor3d::PassHeaderComponent::Plugin, castor3d::PickableComponent::Plugin, castor3d::TwoSidedComponent::Plugin, castor3d::UntileMappingComponent::Plugin, castor3d::AmbientComponent::Plugin, castor3d::AttenuationComponent::Plugin, castor3d::ClearcoatComponent::Plugin, castor3d::EmissiveComponent::Plugin, castor3d::IridescenceComponent::Plugin, castor3d::LightingModelComponent::Plugin, castor3d::MetalnessComponent::Plugin, castor3d::RoughnessComponent::Plugin, castor3d::SheenComponent::Plugin, castor3d::SpecularComponent::Plugin, castor3d::SpecularFactorComponent::Plugin, castor3d::SubsurfaceScatteringComponent::Plugin, castor3d::ThicknessComponent::Plugin, castor3d::TransmissionComponent::Plugin, castor3d::TransmittanceComponent::Plugin, castor3d::AttenuationMapComponent::Plugin, castor3d::ClearcoatMapComponent::Plugin, castor3d::ClearcoatNormalMapComponent::Plugin, castor3d::ClearcoatRoughnessMapComponent::Plugin, castor3d::ColourMapComponent::Plugin, castor3d::EmissiveMapComponent::Plugin, castor3d::GlossinessMapComponent::Plugin, castor3d::HeightMapComponent::Plugin, castor3d::IridescenceMapComponent::Plugin, castor3d::IridescenceThicknessMapComponent::Plugin, castor3d::MetalnessMapComponent::Plugin, castor3d::NormalMapComponent::Plugin, castor3d::OcclusionMapComponent::Plugin, castor3d::OpacityMapComponent::Plugin, castor3d::RoughnessMapComponent::Plugin, castor3d::SheenMapComponent::Plugin, castor3d::SheenRoughnessMapComponent::Plugin, castor3d::SpecularFactorMapComponent::Plugin, castor3d::SpecularMapComponent::Plugin, castor3d::TransmissionMapComponent::Plugin, castor3d::TransmittanceMapComponent::Plugin, castor3d::AlphaTestComponent::Plugin, castor3d::ColourComponent::Plugin, castor3d::HeightComponent::Plugin, castor3d::OpacityComponent::Plugin, castor3d::ReflectionComponent::Plugin, and castor3d::RefractionComponent::Plugin.

◆ createReflRefrShader()

virtual C3D_API shader::PassReflRefrShaderPtr castor3d::PassComponentPlugin::createReflRefrShader ( ) const
inlinevirtual

Creates the component's reflection and refraction shader.

Reimplemented in castor3d::DefaultReflRefrComponent::Plugin.

◆ createSections()

virtual C3D_API void castor3d::PassComponentPlugin::createSections ( castor::StrUInt32Map & sections) const
inlinevirtual

Fills the sections list with the ones created by this component.

Parameters
[in,out]sectionsReceives the sections.

Reimplemented in castor3d::SubsurfaceScatteringComponent::Plugin.

◆ fillTextureConfiguration()

virtual C3D_API void castor3d::PassComponentPlugin::fillTextureConfiguration ( TextureConfiguration & configuration,
uint32_t mask = 0 ) const
inlinevirtual

◆ filterComponentFlags()

virtual C3D_API void castor3d::PassComponentPlugin::filterComponentFlags ( ComponentModeFlags filter,
PassComponentCombine & componentsFlags ) const
inlinevirtual

◆ filterTextureFlags()

virtual C3D_API void castor3d::PassComponentPlugin::filterTextureFlags ( ComponentModeFlags filter,
TextureCombine & texturesFlags ) const
inlinevirtual

◆ getAlphaBlendingFlag()

virtual C3D_API PassComponentFlag castor3d::PassComponentPlugin::getAlphaBlendingFlag ( ) const
inlinevirtual
Returns
The flags for alpha blending.

Reimplemented in castor3d::BlendComponent::Plugin.

◆ getAlphaTestFlag()

virtual C3D_API PassComponentFlag castor3d::PassComponentPlugin::getAlphaTestFlag ( ) const
inlinevirtual
Returns
The flags for alpha test.

Reimplemented in castor3d::AlphaTestComponent::Plugin.

◆ getBaseTextureConfiguration()

TextureConfiguration castor3d::PassComponentPlugin::getBaseTextureConfiguration ( ) const
inline
Returns
The texture configuration with default configuration for this component.

References fillTextureConfiguration().

Here is the call graph for this function:

◆ getColourMapFlags()

virtual C3D_API PassComponentTextureFlag castor3d::PassComponentPlugin::getColourMapFlags ( ) const
inlinevirtual
Returns
The flags for the colour map.

Reimplemented in castor3d::ColourMapComponent::Plugin.

◆ getComponentFlags()

virtual C3D_API PassComponentFlag castor3d::PassComponentPlugin::getComponentFlags ( ) const
inlinevirtual

◆ getDeferredDiffuseLightingFlag()

virtual C3D_API PassComponentFlag castor3d::PassComponentPlugin::getDeferredDiffuseLightingFlag ( ) const
inlinevirtual
Returns
The flags for pass that need deferred diffuse lighting (such as subsurface scattering).

Reimplemented in castor3d::SubsurfaceScatteringComponent::Plugin.

◆ getHeightMapFlags()

virtual C3D_API PassComponentTextureFlag castor3d::PassComponentPlugin::getHeightMapFlags ( ) const
inlinevirtual
Returns
The flags for the height map.

Reimplemented in castor3d::HeightMapComponent::Plugin.

◆ getId()

PassComponentID castor3d::PassComponentPlugin::getId ( ) const
inline

Referenced by getComponentFlags(), castor3d::BlendComponent::Plugin::getComponentFlags(), castor3d::FractalMappingComponent::Plugin::getComponentFlags(), castor3d::PickableComponent::Plugin::getComponentFlags(), castor3d::UntileMappingComponent::Plugin::getComponentFlags(), castor3d::SubsurfaceScatteringComponent::Plugin::getComponentFlags(), castor3d::AlphaTestComponent::Plugin::getComponentFlags(), castor3d::HeightComponent::Plugin::getComponentFlags(), castor3d::SubsurfaceScatteringComponent::Plugin::getDeferredDiffuseLightingFlag(), castor3d::HeightComponent::Plugin::getParallaxOcclusionMappingOneFlag(), castor3d::HeightComponent::Plugin::getParallaxOcclusionMappingRepeatFlag(), castor3d::AttenuationMapComponent::Plugin::getTextureFlags(), castor3d::ClearcoatMapComponent::Plugin::getTextureFlags(), castor3d::ClearcoatNormalMapComponent::Plugin::getTextureFlags(), castor3d::ClearcoatRoughnessMapComponent::Plugin::getTextureFlags(), castor3d::ColourMapComponent::Plugin::getTextureFlags(), castor3d::EmissiveMapComponent::Plugin::getTextureFlags(), castor3d::GlossinessMapComponent::Plugin::getTextureFlags(), castor3d::HeightMapComponent::Plugin::getTextureFlags(), castor3d::IridescenceMapComponent::Plugin::getTextureFlags(), castor3d::IridescenceThicknessMapComponent::Plugin::getTextureFlags(), castor3d::MetalnessMapComponent::Plugin::getTextureFlags(), castor3d::NormalMapComponent::Plugin::getTextureFlags(), castor3d::OcclusionMapComponent::Plugin::getTextureFlags(), castor3d::OpacityMapComponent::Plugin::getTextureFlags(), castor3d::RoughnessMapComponent::Plugin::getTextureFlags(), castor3d::SheenMapComponent::Plugin::getTextureFlags(), castor3d::SheenRoughnessMapComponent::Plugin::getTextureFlags(), castor3d::SpecularFactorMapComponent::Plugin::getTextureFlags(), castor3d::SpecularMapComponent::Plugin::getTextureFlags(), castor3d::TransmissionMapComponent::Plugin::getTextureFlags(), castor3d::TransmittanceMapComponent::Plugin::getTextureFlags(), castor3d::AttenuationMapComponent::Plugin::getTextureFlagsName(), castor3d::ClearcoatMapComponent::Plugin::getTextureFlagsName(), castor3d::ClearcoatNormalMapComponent::Plugin::getTextureFlagsName(), castor3d::ClearcoatRoughnessMapComponent::Plugin::getTextureFlagsName(), castor3d::ColourMapComponent::Plugin::getTextureFlagsName(), castor3d::EmissiveMapComponent::Plugin::getTextureFlagsName(), castor3d::GlossinessMapComponent::Plugin::getTextureFlagsName(), castor3d::HeightMapComponent::Plugin::getTextureFlagsName(), castor3d::IridescenceMapComponent::Plugin::getTextureFlagsName(), castor3d::IridescenceThicknessMapComponent::Plugin::getTextureFlagsName(), castor3d::MetalnessMapComponent::Plugin::getTextureFlagsName(), castor3d::NormalMapComponent::Plugin::getTextureFlagsName(), castor3d::OcclusionMapComponent::Plugin::getTextureFlagsName(), castor3d::OpacityMapComponent::Plugin::getTextureFlagsName(), castor3d::RoughnessMapComponent::Plugin::getTextureFlagsName(), castor3d::SheenMapComponent::Plugin::getTextureFlagsName(), castor3d::SheenRoughnessMapComponent::Plugin::getTextureFlagsName(), castor3d::SpecularFactorMapComponent::Plugin::getTextureFlagsName(), castor3d::SpecularMapComponent::Plugin::getTextureFlagsName(), castor3d::TransmissionMapComponent::Plugin::getTextureFlagsName(), and castor3d::TransmittanceMapComponent::Plugin::getTextureFlagsName().

Here is the caller graph for this function:

◆ getNormalMapFlags()

virtual C3D_API PassComponentTextureFlag castor3d::PassComponentPlugin::getNormalMapFlags ( ) const
inlinevirtual
Returns
The flags for the normal map.

Reimplemented in castor3d::NormalMapComponent::Plugin.

◆ getOcclusionMapFlags()

virtual C3D_API PassComponentTextureFlag castor3d::PassComponentPlugin::getOcclusionMapFlags ( ) const
inlinevirtual
Returns
The flags for the occlusion map.

Reimplemented in castor3d::OcclusionMapComponent::Plugin.

◆ getOpacityMapFlags()

virtual C3D_API PassComponentTextureFlag castor3d::PassComponentPlugin::getOpacityMapFlags ( ) const
inlinevirtual
Returns
The flags for the opacity map.

Reimplemented in castor3d::OpacityMapComponent::Plugin.

◆ getParallaxOcclusionMappingOneFlag()

virtual C3D_API PassComponentFlag castor3d::PassComponentPlugin::getParallaxOcclusionMappingOneFlag ( ) const
inlinevirtual
Returns
The flags for non repeated parallax occlusion mapping.

Reimplemented in castor3d::HeightComponent::Plugin.

◆ getParallaxOcclusionMappingRepeatFlag()

virtual C3D_API PassComponentFlag castor3d::PassComponentPlugin::getParallaxOcclusionMappingRepeatFlag ( ) const
inlinevirtual
Returns
The flags for repeated parallax occlusion mapping.

Reimplemented in castor3d::HeightComponent::Plugin.

◆ getRegister()

PassComponentRegister const & castor3d::PassComponentPlugin::getRegister ( ) const
inline

◆ getTextureFlags()

virtual C3D_API PassComponentTextureFlag castor3d::PassComponentPlugin::getTextureFlags ( ) const
inlinevirtual

◆ getTextureFlagsName()

virtual C3D_API castor::String castor3d::PassComponentPlugin::getTextureFlagsName ( PassComponentTextureFlag const & flags) const
inlinevirtual

◆ getTransmissionFlag()

virtual C3D_API PassComponentFlag castor3d::PassComponentPlugin::getTransmissionFlag ( ) const
inlinevirtual
Returns
The flags for transmission.

Reimplemented in castor3d::TransmissionComponent::Plugin.

◆ hasTexcoordModif()

virtual C3D_API bool castor3d::PassComponentPlugin::hasTexcoordModif ( PassComponentRegister const & passComponents,
PipelineFlags const * flags ) const
inlinevirtual
Returns
true if this component modifies texture coordinates.

Reimplemented in castor3d::HeightMapComponent::Plugin.

◆ isComponentNeeded()

virtual C3D_API bool castor3d::PassComponentPlugin::isComponentNeeded ( TextureCombine const & textures,
ComponentModeFlags const & filter ) const
inlinevirtual

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 in castor3d::BlendComponent::Plugin, castor3d::FractalMappingComponent::Plugin, castor3d::NormalComponent::Plugin, castor3d::PassHeaderComponent::Plugin, castor3d::PickableComponent::Plugin, castor3d::TexturesComponent::Plugin, castor3d::TwoSidedComponent::Plugin, castor3d::UntileMappingComponent::Plugin, castor3d::AmbientComponent::Plugin, castor3d::AttenuationComponent::Plugin, castor3d::ClearcoatComponent::Plugin, castor3d::EmissiveComponent::Plugin, castor3d::IridescenceComponent::Plugin, castor3d::LightingModelComponent::Plugin, castor3d::MetalnessComponent::Plugin, castor3d::RoughnessComponent::Plugin, castor3d::SheenComponent::Plugin, castor3d::SpecularComponent::Plugin, castor3d::SpecularFactorComponent::Plugin, castor3d::SubsurfaceScatteringComponent::Plugin, castor3d::ThicknessComponent::Plugin, castor3d::TransmissionComponent::Plugin, castor3d::TransmittanceComponent::Plugin, castor3d::AttenuationMapComponent::Plugin, castor3d::ClearcoatMapComponent::Plugin, castor3d::ClearcoatNormalMapComponent::Plugin, castor3d::ClearcoatRoughnessMapComponent::Plugin, castor3d::ColourMapComponent::Plugin, castor3d::EmissiveMapComponent::Plugin, castor3d::GlossinessMapComponent::Plugin, castor3d::HeightMapComponent::Plugin, castor3d::IridescenceMapComponent::Plugin, castor3d::IridescenceThicknessMapComponent::Plugin, castor3d::MetalnessMapComponent::Plugin, castor3d::NormalMapComponent::Plugin, castor3d::OcclusionMapComponent::Plugin, castor3d::OpacityMapComponent::Plugin, castor3d::RoughnessMapComponent::Plugin, castor3d::SheenMapComponent::Plugin, castor3d::SheenRoughnessMapComponent::Plugin, castor3d::SpecularFactorMapComponent::Plugin, castor3d::SpecularMapComponent::Plugin, castor3d::TransmissionMapComponent::Plugin, castor3d::TransmittanceMapComponent::Plugin, castor3d::AlphaTestComponent::Plugin, castor3d::ColourComponent::Plugin, castor3d::HeightComponent::Plugin, castor3d::OpacityComponent::Plugin, castor3d::ReflectionComponent::Plugin, and castor3d::RefractionComponent::Plugin.

◆ isMapComponent()

virtual C3D_API bool castor3d::PassComponentPlugin::isMapComponent ( ) const
inlinevirtual

◆ isReflRefrComponent()

virtual C3D_API bool castor3d::PassComponentPlugin::isReflRefrComponent ( ) const
inlinevirtual
Returns
true if this component processes reflection/refraction.

Reimplemented in castor3d::DefaultReflRefrComponent::Plugin.

◆ operator=() [1/2]

PassComponentPlugin & castor3d::PassComponentPlugin::operator= ( PassComponentPlugin && rhs)
deletenoexcept

◆ operator=() [2/2]

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

◆ replacesMapSampling()

virtual C3D_API bool castor3d::PassComponentPlugin::replacesMapSampling ( ) const
inlinevirtual
Returns
true if the component replaces regular map sampling.

Reimplemented in castor3d::FractalMappingComponent::Plugin, and castor3d::UntileMappingComponent::Plugin.

◆ writeTextureConfig()

virtual C3D_API bool castor3d::PassComponentPlugin::writeTextureConfig ( TextureConfiguration const & configuration,
castor::String const & tabs,
castor::StringStream & file ) const
inlinevirtual

Writes the texture configuration for this component in a scene file.

Parameters
[in]configurationHolds the texture configuration data for this component.
[in]tabsThe current indentation in the output file.
[in]fileThe output file.

Reimplemented in castor3d::PassMapComponentPlugin.

◆ zeroBuffer()

virtual C3D_API void castor3d::PassComponentPlugin::zeroBuffer ( Pass const & pass,
shader::PassMaterialShader const & materialShader,
PassBuffer & buffer ) const
inlinevirtual

Friends And Related Symbol Documentation

◆ PassComponentRegister

friend class PassComponentRegister
friend

Member Data Documentation

◆ finishComponent

FinishComponent castor3d::PassComponentPlugin::finishComponent

Applies component's transformations before lighting happens.

◆ updateComponent

UpdateComponent castor3d::PassComponentPlugin::updateComponent

Adjust the component data after textures have been parsed.


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