Castor3D 0.16.0
Multiplatform 3D engine
List of all members
castor3d::PassComponentRegister Class Reference

#include <PassComponentRegister.hpp>

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

Public Member Functions

Construction / Destruction.

 PassComponentRegister (PassComponentRegister const &)=delete
 
 PassComponentRegister (PassComponentRegister &&) noexcept=delete
 
PassComponentRegisteroperator= (PassComponentRegister const &)=delete
 
PassComponentRegisteroperator= (PassComponentRegister &&) noexcept=delete
 
C3D_API PassComponentRegister (Engine &engine)
 
C3D_API ~PassComponentRegister () noexcept
 

Pass type registration.

C3D_API PassComponentCombine registerPassComponentCombine (Pass const &pass)
 
C3D_API PassComponentCombineID registerPassComponentCombine (PassComponentCombine &combine)
 
C3D_API PassComponentCombineID getPassComponentCombineID (PassComponentCombine const &combine) const
 
C3D_API TextureCombineID getTextureCombineID (TextureCombine const &combine) const
 
C3D_API PassComponentCombine getPassComponentCombine (Pass const &pass) const
 
C3D_API PassComponentCombine getPassComponentCombine (PassComponentCombineID id) const
 
C3D_API TextureCombine getTextureCombine (Pass const &pass) const
 
C3D_API TextureCombine getTextureCombine (TextureCombineID id) const
 

Shader material components handling.

C3D_API void fillBuffer (Pass const &pass, PassBuffer &buffer) const
 Fills the pass buffer with initialisation values.
 
C3D_API shader::PassMaterialShadergetMaterialShader (castor::String const &componentType) const
 
C3D_API void fillMaterial (sdw::type::BaseStruct &material, sdw::expr::ExprList &inits, uint32_t padIndex) const
 
auto const & getMaterialShaders () const
 
VkDeviceSize getPassBufferStride () const
 

Shader output components handling.

C3D_API castor::Vector< shader::PassComponentsShaderPtrgetComponentsShaders (TextureCombine const &texturesFlags, ComponentModeFlags filter, castor::Vector< UpdateComponent > &updateComponents, castor::Vector< FinishComponent > &finishComponents) const
 
C3D_API castor::Vector< shader::PassComponentsShaderPtrgetComponentsShaders (PipelineFlags const &flags, ComponentModeFlags filter, castor::Vector< UpdateComponent > &updateComponents, castor::Vector< FinishComponent > &finishComponents) const
 

Shader output components handling.

C3D_API shader::PassReflRefrShaderPtr getReflRefrShader (PassComponentCombine const &combine) const
 

Base components handling.

C3D_API PassComponentCombine filterComponentFlags (ComponentModeFlags filter, PassComponentCombine const &combine) const
 
C3D_API bool hasOpacity (PipelineFlags const &flags) const
 
C3D_API bool needsEnvironmentMapping (PassComponentCombineID combineID) const
 
C3D_API bool hasDeferredLighting (PassComponentFlagsSet const &combineID) const
 
PassComponentFlag getAlphaBlendingFlag () const
 
PassComponentFlag getAlphaTestFlag () const
 
PassComponentFlag getTransmissionFlag () const
 
PassComponentFlag getParallaxOcclusionMappingOneFlag () const
 
PassComponentFlag getParallaxOcclusionMappingRepeatFlag () const
 

Texture components handling.

C3D_API void updateMapComponents (castor::Vector< TextureFlagConfiguration > const &texConfigs, Pass &result)
 Adds or removes texture components, whether they are needed or not, from given pass.
 
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.
 
C3D_API void fillChannels (PassComponentTextureFlag const &flags, TextureContext &parsingContext) const
 
C3D_API TextureCombine filterTextureFlags (ComponentModeFlags filter, TextureCombine const &combine) const
 
C3D_API PassComponentTextureFlag getColourMapFlags () const
 
C3D_API PassComponentTextureFlag getOpacityMapFlags () const
 
C3D_API PassComponentTextureFlag getNormalMapFlags () const
 
C3D_API PassComponentTextureFlag getHeightMapFlags () const
 
C3D_API PassComponentTextureFlag getOcclusionMapFlags () const
 
C3D_API void fillTextureConfiguration (PassComponentTextureFlag const &flags, TextureConfiguration &result) const
 
C3D_API bool hasTexcoordModif (PassComponentTextureFlag const &flag, PipelineFlags const *flags) const
 
C3D_API castor::Map< uint32_t, PassComponentTextureFlaggetTexcoordModifs (PipelineFlags const &flags) const
 
C3D_API castor::Map< uint32_t, PassComponentTextureFlaggetTexcoordModifs (TextureCombine const &combine) const
 
castor::UInt32StrMap const & getTextureChannels () const
 

Components registration.

C3D_API PassComponentID registerComponent (castor::String const &componentType, PassComponentPluginUPtr componentPlugin)
 
C3D_API void unregisterComponent (castor::String const &componentType) noexcept
 
C3D_API PassComponentID getNameId (castor::String const &componentType) const
 
C3D_API PassComponentPlugin const & getPlugin (PassComponentID componentId) const
 
PassComponentPlugin const & getPlugin (castor::String const &componentType) const
 
template<typename ComponentT >
PassComponentPlugin const & getPlugin () const
 
template<typename ComponentT >
PassComponentID registerComponent (CreatePassComponentPlugin const &createPlugin=&ComponentT::createPlugin)
 
auto begin () const noexcept
 
auto end () const noexcept
 
- Public Member Functions inherited from castor::OwnedBy< Engine >
Engine * getOwner () const
 

Additional Inherited Members

- Protected Member Functions inherited from castor::OwnedBy< Engine >
 OwnedBy (Engine &owner)
 Constructor.
 

Constructor & Destructor Documentation

◆ PassComponentRegister() [1/3]

castor3d::PassComponentRegister::PassComponentRegister ( PassComponentRegister const & )
delete

◆ PassComponentRegister() [2/3]

castor3d::PassComponentRegister::PassComponentRegister ( PassComponentRegister && )
deletenoexcept

◆ PassComponentRegister() [3/3]

C3D_API castor3d::PassComponentRegister::PassComponentRegister ( Engine & engine)
explicit

◆ ~PassComponentRegister()

C3D_API castor3d::PassComponentRegister::~PassComponentRegister ( )
noexcept

Member Function Documentation

◆ begin()

auto castor3d::PassComponentRegister::begin ( ) const
inlinenoexcept

◆ end()

auto castor3d::PassComponentRegister::end ( ) const
inlinenoexcept

◆ fillBuffer()

C3D_API void castor3d::PassComponentRegister::fillBuffer ( Pass const & pass,
PassBuffer & buffer ) const

Fills the pass buffer with initialisation values.

Parameters
[in,out]bufferThe pass buffer.
[in]passThe pass, to prevent initialising enabled components' data.

◆ fillChannels()

C3D_API void castor3d::PassComponentRegister::fillChannels ( PassComponentTextureFlag const & flags,
TextureContext & parsingContext ) const

◆ fillMaterial()

C3D_API void castor3d::PassComponentRegister::fillMaterial ( sdw::type::BaseStruct & material,
sdw::expr::ExprList & inits,
uint32_t padIndex ) const

◆ fillTextureConfiguration()

C3D_API void castor3d::PassComponentRegister::fillTextureConfiguration ( PassComponentTextureFlag const & flags,
TextureConfiguration & result ) const

◆ filterComponentFlags()

C3D_API PassComponentCombine castor3d::PassComponentRegister::filterComponentFlags ( ComponentModeFlags filter,
PassComponentCombine const & combine ) const

◆ filterTextureFlags()

C3D_API TextureCombine castor3d::PassComponentRegister::filterTextureFlags ( ComponentModeFlags filter,
TextureCombine const & combine ) const

◆ getAlphaBlendingFlag()

PassComponentFlag castor3d::PassComponentRegister::getAlphaBlendingFlag ( ) const
inline

◆ getAlphaTestFlag()

PassComponentFlag castor3d::PassComponentRegister::getAlphaTestFlag ( ) const
inline

◆ getColourMapFlags()

C3D_API PassComponentTextureFlag castor3d::PassComponentRegister::getColourMapFlags ( ) const

◆ getComponentsShaders() [1/2]

C3D_API castor::Vector< shader::PassComponentsShaderPtr > castor3d::PassComponentRegister::getComponentsShaders ( PipelineFlags const & flags,
ComponentModeFlags filter,
castor::Vector< UpdateComponent > & updateComponents,
castor::Vector< FinishComponent > & finishComponents ) const

◆ getComponentsShaders() [2/2]

C3D_API castor::Vector< shader::PassComponentsShaderPtr > castor3d::PassComponentRegister::getComponentsShaders ( TextureCombine const & texturesFlags,
ComponentModeFlags filter,
castor::Vector< UpdateComponent > & updateComponents,
castor::Vector< FinishComponent > & finishComponents ) const

◆ getHeightMapFlags()

C3D_API PassComponentTextureFlag castor3d::PassComponentRegister::getHeightMapFlags ( ) const

◆ getMaterialShader()

C3D_API shader::PassMaterialShader * castor3d::PassComponentRegister::getMaterialShader ( castor::String const & componentType) const

◆ getMaterialShaders()

auto const & castor3d::PassComponentRegister::getMaterialShaders ( ) const
inline

◆ getNameId()

C3D_API PassComponentID castor3d::PassComponentRegister::getNameId ( castor::String const & componentType) const

Referenced by getPlugin(), and getPlugin().

Here is the caller graph for this function:

◆ getNormalMapFlags()

C3D_API PassComponentTextureFlag castor3d::PassComponentRegister::getNormalMapFlags ( ) const

◆ getOcclusionMapFlags()

C3D_API PassComponentTextureFlag castor3d::PassComponentRegister::getOcclusionMapFlags ( ) const

◆ getOpacityMapFlags()

C3D_API PassComponentTextureFlag castor3d::PassComponentRegister::getOpacityMapFlags ( ) const

◆ getParallaxOcclusionMappingOneFlag()

PassComponentFlag castor3d::PassComponentRegister::getParallaxOcclusionMappingOneFlag ( ) const
inline

◆ getParallaxOcclusionMappingRepeatFlag()

PassComponentFlag castor3d::PassComponentRegister::getParallaxOcclusionMappingRepeatFlag ( ) const
inline

◆ getPassBufferStride()

VkDeviceSize castor3d::PassComponentRegister::getPassBufferStride ( ) const
inline

◆ getPassComponentCombine() [1/2]

C3D_API PassComponentCombine castor3d::PassComponentRegister::getPassComponentCombine ( Pass const & pass) const

◆ getPassComponentCombine() [2/2]

C3D_API PassComponentCombine castor3d::PassComponentRegister::getPassComponentCombine ( PassComponentCombineID id) const

◆ getPassComponentCombineID()

C3D_API PassComponentCombineID castor3d::PassComponentRegister::getPassComponentCombineID ( PassComponentCombine const & combine) const

◆ getPlugin() [1/3]

template<typename ComponentT >
PassComponentPlugin const & castor3d::PassComponentRegister::getPlugin ( ) const
inline

References getNameId(), and getPlugin().

Referenced by getPlugin(), and getPlugin().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ getPlugin() [2/3]

PassComponentPlugin const & castor3d::PassComponentRegister::getPlugin ( castor::String const & componentType) const
inline

References getNameId(), and getPlugin().

Here is the call graph for this function:

◆ getPlugin() [3/3]

C3D_API PassComponentPlugin const & castor3d::PassComponentRegister::getPlugin ( PassComponentID componentId) const

◆ getReflRefrShader()

C3D_API shader::PassReflRefrShaderPtr castor3d::PassComponentRegister::getReflRefrShader ( PassComponentCombine const & combine) const

◆ getTexcoordModifs() [1/2]

C3D_API castor::Map< uint32_t, PassComponentTextureFlag > castor3d::PassComponentRegister::getTexcoordModifs ( PipelineFlags const & flags) const

◆ getTexcoordModifs() [2/2]

C3D_API castor::Map< uint32_t, PassComponentTextureFlag > castor3d::PassComponentRegister::getTexcoordModifs ( TextureCombine const & combine) const

◆ getTextureChannels()

castor::UInt32StrMap const & castor3d::PassComponentRegister::getTextureChannels ( ) const
inline

◆ getTextureCombine() [1/2]

C3D_API TextureCombine castor3d::PassComponentRegister::getTextureCombine ( Pass const & pass) const

◆ getTextureCombine() [2/2]

C3D_API TextureCombine castor3d::PassComponentRegister::getTextureCombine ( TextureCombineID id) const

◆ getTextureCombineID()

C3D_API TextureCombineID castor3d::PassComponentRegister::getTextureCombineID ( TextureCombine const & combine) const

◆ getTransmissionFlag()

PassComponentFlag castor3d::PassComponentRegister::getTransmissionFlag ( ) const
inline

◆ hasDeferredLighting()

C3D_API bool castor3d::PassComponentRegister::hasDeferredLighting ( PassComponentFlagsSet const & combineID) const

◆ hasOpacity()

C3D_API bool castor3d::PassComponentRegister::hasOpacity ( PipelineFlags const & flags) const

◆ hasTexcoordModif()

C3D_API bool castor3d::PassComponentRegister::hasTexcoordModif ( PassComponentTextureFlag const & flag,
PipelineFlags const * flags ) const

◆ needsEnvironmentMapping()

C3D_API bool castor3d::PassComponentRegister::needsEnvironmentMapping ( PassComponentCombineID combineID) const

◆ operator=() [1/2]

PassComponentRegister & castor3d::PassComponentRegister::operator= ( PassComponentRegister && )
deletenoexcept

◆ operator=() [2/2]

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

◆ registerComponent() [1/2]

C3D_API PassComponentID castor3d::PassComponentRegister::registerComponent ( castor::String const & componentType,
PassComponentPluginUPtr componentPlugin )

Referenced by registerComponent().

Here is the caller graph for this function:

◆ registerComponent() [2/2]

template<typename ComponentT >
PassComponentID castor3d::PassComponentRegister::registerComponent ( CreatePassComponentPlugin const & createPlugin = &ComponentT::createPlugin)
inline

References registerComponent().

Here is the call graph for this function:

◆ registerPassComponentCombine() [1/2]

C3D_API PassComponentCombine castor3d::PassComponentRegister::registerPassComponentCombine ( Pass const & pass)

◆ registerPassComponentCombine() [2/2]

C3D_API PassComponentCombineID castor3d::PassComponentRegister::registerPassComponentCombine ( PassComponentCombine & combine)

◆ unregisterComponent()

C3D_API void castor3d::PassComponentRegister::unregisterComponent ( castor::String const & componentType)
noexcept

◆ updateMapComponents()

C3D_API void castor3d::PassComponentRegister::updateMapComponents ( castor::Vector< TextureFlagConfiguration > const & texConfigs,
Pass & result )

Adds or removes texture components, whether they are needed or not, from given pass.

Parameters
[in]texConfigsUsed to determine if a map component is needed.
[in,out]resultThe pass.

◆ writeTextureConfig()

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

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.

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