Castor3D 0.16.0
Multiplatform 3D engine
Types publics | Fonctions membres publiques | Fonctions membres publiques statiques | Attributs protégés | Amis | Liste de tous les membres
Référence de la classe castor3d::Pass

#include <Pass.hpp>

Graphe d'héritage de castor3d::Pass:
Inheritance graph
[légende]
Graphe de collaboration de castor3d::Pass:
Collaboration graph
[légende]

Types publics

using UnitArray = castor::Vector< TextureUnitRPtr >
 
using PassTextureSource = castor::Pair< TextureSourceInfo, PassTextureConfig >
 
using TextureSourceArray = castor::Vector< PassTextureSource >
 
using UnitDataSources = castor::Map< TextureUnitDataRPtr, castor::Vector< TextureSourceInfo > >
 

Fonctions membres publiques

C3D_API Pass (Material &parent, LightingModelID lightingModelId)
 Constructeur.
 
C3D_API Pass (Material &parent, Pass const &rhs)
 Constructeur par copie.
 
C3D_API ~Pass () noexcept
 Destructeur.
 
C3D_API void initialise ()
 Initialise la passe et toutes ses dépendances.
 
C3D_API void cleanup ()
 Nettoie la passe et toutes ses dépendances.
 
C3D_API void update ()
 Met à jour la passe de rendu, au niveau CPU.
 
C3D_API TextureUnitRPtr getTextureUnit (uint32_t index) const
 Récupère la TextureUnit à l'index donné.
 
C3D_API void registerTexture (TextureSourceInfo sourceInfo, PassTextureConfig configuration)
 Ajoute une texture.
 
C3D_API void registerTexture (TextureSourceInfo sourceInfo, PassTextureConfig configuration, TextureAnimationUPtr animation)
 Ajoute une texture animée.
 
C3D_API void unregisterTexture (TextureSourceInfo const &sourceInfo) noexcept
 Supprime une unité de texture.
 
C3D_API void resetTexture (TextureSourceInfo const &srcSourceInfo, TextureSourceInfo dstSourceInfo)
 Remplace la source d'une texture.
 
C3D_API void updateConfig (TextureSourceInfo const &sourceInfo, TextureConfiguration configuration)
 Met à jour la configuration d'une texture.
 
C3D_API void prepareTextures ()
 Réduit les textures.
 
C3D_API void setColour (castor::HdrRgbColour const &value)
 Définit la couleur basique de la passe.
 
C3D_API castor::HdrRgbColour const & getColour () const
 
C3D_API PassComponentCombine getPassFlags () const noexcept
 
C3D_API void accept (ConfigurationVisitorBase &vis)
 Fonction d'acceptation de ConfigurationVisitorBase.
 
C3D_API void fillBuffer (PassBuffer &buffer) const
 Remplit le pass buffer aves les données de cette passe.
 
C3D_API bool writeText (castor::String const &tabs, castor::Path const &folder, castor::String const &subfolder, castor::StringStream &file) const
 Ecrit le contenu du composant en texte.
 
C3D_API void fillConfig (TextureConfiguration &config, ConfigurationVisitorBase &vis)
 Fonction d'acceptation de ConfigurationVisitorBase, pour une configuration de texture.
 

Gestion des composants.

C3D_API void addComponent (PassComponentUPtr component)
 
C3D_API bool hasComponent (castor::String const &name) const noexcept
 
C3D_API PassComponentgetComponent (castor::String const &name) const
 
C3D_API castor::Vector< PassComponentUPtr > removeComponent (castor::String const &name)
 
C3D_API shader::PassMaterialShadergetMaterialShader (castor::String const &componentType) const
 
C3D_API PassComponentID getComponentId (castor::String const &componentType) const
 
C3D_API PassComponentPlugin const & getComponentPlugin (PassComponentID componentId) const
 
C3D_API PassComponentCombineID getComponentCombineID () const
 
C3D_API TextureCombineID getTextureCombineID () const
 
uint32_t getHash () const noexcept
 
PassComponentPlugin const & getComponentPlugin (castor::String const &componentType) const
 
template<typename ComponentT >
PassComponentPlugin const & getComponentPlugin () const
 
template<typename ComponentT >
void removeComponent ()
 
template<typename ComponentT , typename ... ParamsT>
ComponentT * createComponent (ParamsT &&... params)
 
template<typename ComponentT >
bool hasComponent () const noexcept
 
template<typename ComponentT >
ComponentT * getComponent () const noexcept
 
PassComponentMap const & getComponents () const
 
C3D_API bool needsAlphaProcessing () const
 
C3D_API bool hasAlphaBlending () const
 
C3D_API bool hasOnlyAlphaBlending () const
 
C3D_API bool hasAlphaTest () const
 
C3D_API bool hasBlendAlphaTest () const
 
C3D_API BlendMode getAlphaBlendMode () const
 
C3D_API BlendMode getColourBlendMode () const
 
C3D_API VkCompareOp getAlphaFunc () const
 
C3D_API VkCompareOp getBlendAlphaFunc () const
 
C3D_API bool hasEnvironmentMapping () const
 
C3D_API bool hasSubsurfaceScattering () const
 
C3D_API bool isTwoSided () const
 
C3D_API UnitArray getTextureUnits () const
 
C3D_API uint32_t getTextureUnitsCount () const
 
C3D_API TextureCombine getTexturesMask () const noexcept
 
C3D_API bool hasLighting () const
 
C3D_API PassComponentRegistergetPassComponentsRegister () const
 
C3D_API castor::String getTextureFlagsName (PassComponentTextureFlag flags) const
 
C3D_API LightingModelID getLightingModelId () const
 
bool isInitialised () const noexcept
 
bool isInitialising () const noexcept
 
bool hasAutomaticShader () const noexcept
 
uint32_t getId () const noexcept
 
bool isImplicit () const noexcept
 
RenderPassRegisterInfogetRenderPassInfo () const noexcept
 
uint32_t getIndex () const noexcept
 
uint32_t getMaxTexCoordSet () const noexcept
 
PassComponentTextureFlag getColourMapFlags () const noexcept
 
PassComponentTextureFlag getOpacityMapFlags () const noexcept
 
PassComponentTextureFlag getNormalMapFlags () const noexcept
 
PassComponentTextureFlag getHeightMapFlags () const noexcept
 
PassComponentTextureFlag getOcclusionMapFlags () const noexcept
 
PassComponentTextureFlag getReflRefrFlags () const noexcept
 
auto begin () const noexcept
 
auto begin () noexcept
 
auto end () const noexcept
 
auto end () noexcept
 
C3D_API void enableLighting (bool value) const
 
C3D_API void enablePicking (bool value) const
 
void setId (uint32_t value) noexcept
 
void setImplicit (bool value=true) noexcept
 
void setColour (castor::RgbColour const &v, float gamma=2.2f)
 
void setColour (castor::Coords3f const &v)
 
void setColour (castor::Point3f const &v)
 
void reset () const noexcept
 
- Fonctions membres publiques hérités de castor::OwnedBy< Material >
Material * getOwner () const
 L'objet propriétaire.
 

Fonctions membres publiques statiques

static C3D_API void addParsers (castor::AttributeParsers &result, castor::UInt32StrMap const &textureChannels)
 
static C3D_API float computeRoughnessFromGlossiness (float glossiness)
 
static C3D_API float computeGlossinessFromRoughness (float roughness)
 
static C3D_API float computeGlossinessFromShininess (float shininess)
 
static C3D_API float computeShininessFromGlossiness (float glossiness)
 
static float computeRoughnessFromShininess (float const &shininess)
 
static float computeShininessFromRoughness (float const &roughness)
 

Attributs publics

OnPassChanged onChanged
 

Attributs protégés

std::atomic_bool m_dirty { true }
 

Amis

struct PassComponent
 

Membres hérités additionnels

- Fonctions membres protégées hérités de castor::OwnedBy< Material >
 OwnedBy (Material &owner)
 Constructeur.
 

Documentation des définitions de type membres

◆ PassTextureSource

◆ TextureSourceArray

◆ UnitArray

using castor3d::Pass::UnitArray = castor::Vector< TextureUnitRPtr >

◆ UnitDataSources

Documentation des constructeurs et destructeur

◆ Pass() [1/2]

C3D_API castor3d::Pass::Pass ( Material & parent,
LightingModelID lightingModelId )

Constructeur.

Paramètres
[in]parentLe matériau parent.
[in]lightingModelIdL'ID du modèle d'éclairage du matériau.

◆ Pass() [2/2]

C3D_API castor3d::Pass::Pass ( Material & parent,
Pass const & rhs )

Constructeur par copie.

Paramètres
[in]parentLe matériau parent.
[in]rhsLa passe à copier.

◆ ~Pass()

C3D_API castor3d::Pass::~Pass ( )
noexcept

Destructeur.

Documentation des fonctions membres

◆ accept()

C3D_API void castor3d::Pass::accept ( ConfigurationVisitorBase & vis)

Fonction d'acceptation de ConfigurationVisitorBase.

Paramètres
visLe ... visiteur.

◆ addComponent()

C3D_API void castor3d::Pass::addComponent ( PassComponentUPtr component)

Référencé par createComponent().

Voici le graphe des appelants de cette fonction :

◆ addParsers()

static C3D_API void castor3d::Pass::addParsers ( castor::AttributeParsers & result,
castor::UInt32StrMap const & textureChannels )
static

◆ begin() [1/2]

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

name Itération sur les textures.

◆ begin() [2/2]

auto castor3d::Pass::begin ( )
inlinenoexcept

◆ cleanup()

C3D_API void castor3d::Pass::cleanup ( )

Nettoie la passe et toutes ses dépendances.

◆ computeGlossinessFromRoughness()

static C3D_API float castor3d::Pass::computeGlossinessFromRoughness ( float roughness)
static

Référencé par computeShininessFromRoughness().

Voici le graphe des appelants de cette fonction :

◆ computeGlossinessFromShininess()

static C3D_API float castor3d::Pass::computeGlossinessFromShininess ( float shininess)
static

Référencé par computeRoughnessFromShininess().

Voici le graphe des appelants de cette fonction :

◆ computeRoughnessFromGlossiness()

static C3D_API float castor3d::Pass::computeRoughnessFromGlossiness ( float glossiness)
static

Référencé par computeRoughnessFromShininess().

Voici le graphe des appelants de cette fonction :

◆ computeRoughnessFromShininess()

static float castor3d::Pass::computeRoughnessFromShininess ( float const & shininess)
inlinestatic

Références computeGlossinessFromShininess(), et computeRoughnessFromGlossiness().

Voici le graphe d'appel pour cette fonction :

◆ computeShininessFromGlossiness()

static C3D_API float castor3d::Pass::computeShininessFromGlossiness ( float glossiness)
static

Référencé par computeShininessFromRoughness().

Voici le graphe des appelants de cette fonction :

◆ computeShininessFromRoughness()

static float castor3d::Pass::computeShininessFromRoughness ( float const & roughness)
inlinestatic

Références computeGlossinessFromRoughness(), et computeShininessFromGlossiness().

Voici le graphe d'appel pour cette fonction :

◆ createComponent()

template<typename ComponentT , typename ... ParamsT>
ComponentT * castor3d::Pass::createComponent ( ParamsT &&... params)
inline

Références addComponent().

Voici le graphe d'appel pour cette fonction :

◆ enableLighting()

C3D_API void castor3d::Pass::enableLighting ( bool value) const

name Mutateurs.

◆ enablePicking()

C3D_API void castor3d::Pass::enablePicking ( bool value) const

◆ end() [1/2]

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

◆ end() [2/2]

auto castor3d::Pass::end ( )
inlinenoexcept

◆ fillBuffer()

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

Remplit le pass buffer aves les données de cette passe.

Paramètres
[in,out]bufferLe pass buffer.

◆ fillConfig()

C3D_API void castor3d::Pass::fillConfig ( TextureConfiguration & config,
ConfigurationVisitorBase & vis )

Fonction d'acceptation de ConfigurationVisitorBase, pour une configuration de texture.

Paramètres
configLa configuration de texture.
visLe ... visiteur.

◆ getAlphaBlendMode()

C3D_API BlendMode castor3d::Pass::getAlphaBlendMode ( ) const

◆ getAlphaFunc()

C3D_API VkCompareOp castor3d::Pass::getAlphaFunc ( ) const

◆ getBlendAlphaFunc()

C3D_API VkCompareOp castor3d::Pass::getBlendAlphaFunc ( ) const

◆ getColour()

C3D_API castor::HdrRgbColour const & castor3d::Pass::getColour ( ) const
Renvoie
La couleur basique de la passe.

◆ getColourBlendMode()

C3D_API BlendMode castor3d::Pass::getColourBlendMode ( ) const

◆ getColourMapFlags()

PassComponentTextureFlag castor3d::Pass::getColourMapFlags ( ) const
inlinenoexcept

◆ getComponent() [1/2]

template<typename ComponentT >
ComponentT * castor3d::Pass::getComponent ( ) const
inlinenoexcept

Références getComponent().

Référencé par getComponent().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ getComponent() [2/2]

C3D_API PassComponent * castor3d::Pass::getComponent ( castor::String const & name) const

◆ getComponentCombineID()

C3D_API PassComponentCombineID castor3d::Pass::getComponentCombineID ( ) const

Référencé par getHash().

Voici le graphe des appelants de cette fonction :

◆ getComponentId()

C3D_API PassComponentID castor3d::Pass::getComponentId ( castor::String const & componentType) const

Référencé par getComponentPlugin(), et getComponentPlugin().

Voici le graphe des appelants de cette fonction :

◆ getComponentPlugin() [1/3]

template<typename ComponentT >
PassComponentPlugin const & castor3d::Pass::getComponentPlugin ( ) const
inline

Références getComponentId(), et getComponentPlugin().

Référencé par getComponentPlugin(), et getComponentPlugin().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ getComponentPlugin() [2/3]

PassComponentPlugin const & castor3d::Pass::getComponentPlugin ( castor::String const & componentType) const
inline

Références getComponentId(), et getComponentPlugin().

Voici le graphe d'appel pour cette fonction :

◆ getComponentPlugin() [3/3]

C3D_API PassComponentPlugin const & castor3d::Pass::getComponentPlugin ( PassComponentID componentId) const

◆ getComponents()

PassComponentMap const & castor3d::Pass::getComponents ( ) const
inline

◆ getHash()

uint32_t castor3d::Pass::getHash ( ) const
inlinenoexcept

Références getComponentCombineID(), et getTextureCombineID().

Voici le graphe d'appel pour cette fonction :

◆ getHeightMapFlags()

PassComponentTextureFlag castor3d::Pass::getHeightMapFlags ( ) const
inlinenoexcept

◆ getId()

uint32_t castor3d::Pass::getId ( ) const
inlinenoexcept

◆ getIndex()

uint32_t castor3d::Pass::getIndex ( ) const
inlinenoexcept

◆ getLightingModelId()

C3D_API LightingModelID castor3d::Pass::getLightingModelId ( ) const

◆ getMaterialShader()

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

◆ getMaxTexCoordSet()

uint32_t castor3d::Pass::getMaxTexCoordSet ( ) const
inlinenoexcept

◆ getNormalMapFlags()

PassComponentTextureFlag castor3d::Pass::getNormalMapFlags ( ) const
inlinenoexcept

◆ getOcclusionMapFlags()

PassComponentTextureFlag castor3d::Pass::getOcclusionMapFlags ( ) const
inlinenoexcept

◆ getOpacityMapFlags()

PassComponentTextureFlag castor3d::Pass::getOpacityMapFlags ( ) const
inlinenoexcept

◆ getPassComponentsRegister()

C3D_API PassComponentRegister & castor3d::Pass::getPassComponentsRegister ( ) const

◆ getPassFlags()

C3D_API PassComponentCombine castor3d::Pass::getPassFlags ( ) const
noexcept
Renvoie
La combinaison d'indicateurs de passe.

◆ getReflRefrFlags()

PassComponentTextureFlag castor3d::Pass::getReflRefrFlags ( ) const
inlinenoexcept

◆ getRenderPassInfo()

RenderPassRegisterInfo * castor3d::Pass::getRenderPassInfo ( ) const
inlinenoexcept

◆ getTextureCombineID()

C3D_API TextureCombineID castor3d::Pass::getTextureCombineID ( ) const

Référencé par getHash().

Voici le graphe des appelants de cette fonction :

◆ getTextureFlagsName()

C3D_API castor::String castor3d::Pass::getTextureFlagsName ( PassComponentTextureFlag flags) const

◆ getTexturesMask()

C3D_API TextureCombine castor3d::Pass::getTexturesMask ( ) const
noexcept

◆ getTextureUnit()

C3D_API TextureUnitRPtr castor3d::Pass::getTextureUnit ( uint32_t index) const

Récupère la TextureUnit à l'index donné.

Paramètres
[in]indexL'index voulu.
Renvoie
nullptr si index était hors bornes.

◆ getTextureUnits()

C3D_API UnitArray castor3d::Pass::getTextureUnits ( ) const

◆ getTextureUnitsCount()

C3D_API uint32_t castor3d::Pass::getTextureUnitsCount ( ) const

◆ hasAlphaBlending()

C3D_API bool castor3d::Pass::hasAlphaBlending ( ) const

◆ hasAlphaTest()

C3D_API bool castor3d::Pass::hasAlphaTest ( ) const

◆ hasAutomaticShader()

bool castor3d::Pass::hasAutomaticShader ( ) const
inlinenoexcept

◆ hasBlendAlphaTest()

C3D_API bool castor3d::Pass::hasBlendAlphaTest ( ) const

◆ hasComponent() [1/2]

template<typename ComponentT >
bool castor3d::Pass::hasComponent ( ) const
inlinenoexcept

Références hasComponent().

Référencé par hasComponent().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ hasComponent() [2/2]

C3D_API bool castor3d::Pass::hasComponent ( castor::String const & name) const
noexcept

◆ hasEnvironmentMapping()

C3D_API bool castor3d::Pass::hasEnvironmentMapping ( ) const

◆ hasLighting()

C3D_API bool castor3d::Pass::hasLighting ( ) const

◆ hasOnlyAlphaBlending()

C3D_API bool castor3d::Pass::hasOnlyAlphaBlending ( ) const

◆ hasSubsurfaceScattering()

C3D_API bool castor3d::Pass::hasSubsurfaceScattering ( ) const

◆ initialise()

C3D_API void castor3d::Pass::initialise ( )

Initialise la passe et toutes ses dépendances.

◆ isImplicit()

bool castor3d::Pass::isImplicit ( ) const
inlinenoexcept

◆ isInitialised()

bool castor3d::Pass::isInitialised ( ) const
inlinenoexcept

◆ isInitialising()

bool castor3d::Pass::isInitialising ( ) const
inlinenoexcept

◆ isTwoSided()

C3D_API bool castor3d::Pass::isTwoSided ( ) const

◆ needsAlphaProcessing()

C3D_API bool castor3d::Pass::needsAlphaProcessing ( ) const

name Accesseurs.

◆ prepareTextures()

C3D_API void castor3d::Pass::prepareTextures ( )

Réduit les textures.

◆ registerTexture() [1/2]

C3D_API void castor3d::Pass::registerTexture ( TextureSourceInfo sourceInfo,
PassTextureConfig configuration )

Ajoute une texture.

Paramètres
[in]sourceInfoLa source de la texture.
[in]configurationLa configuration de la texture.

◆ registerTexture() [2/2]

C3D_API void castor3d::Pass::registerTexture ( TextureSourceInfo sourceInfo,
PassTextureConfig configuration,
TextureAnimationUPtr animation )

Ajoute une texture animée.

Paramètres
[in]sourceInfoLa source de la texture.
[in]configurationLa configuration de la texture.
[in]animationL'animation de la texture.

◆ removeComponent() [1/2]

template<typename ComponentT >
void castor3d::Pass::removeComponent ( )
inline

Références removeComponent().

Référencé par removeComponent().

Voici le graphe d'appel pour cette fonction :
Voici le graphe des appelants de cette fonction :

◆ removeComponent() [2/2]

C3D_API castor::Vector< PassComponentUPtr > castor3d::Pass::removeComponent ( castor::String const & name)

◆ reset()

void castor3d::Pass::reset ( ) const
inlinenoexcept

Références m_dirty.

◆ resetTexture()

C3D_API void castor3d::Pass::resetTexture ( TextureSourceInfo const & srcSourceInfo,
TextureSourceInfo dstSourceInfo )

Remplace la source d'une texture.

Paramètres
[in]srcSourceInfoLa source d'origine de la texture.
[in]dstSourceInfoLa source de remplacement de la texture.

◆ setColour() [1/4]

void castor3d::Pass::setColour ( castor::Coords3f const & v)
inline

Références setColour().

Voici le graphe d'appel pour cette fonction :

◆ setColour() [2/4]

C3D_API void castor3d::Pass::setColour ( castor::HdrRgbColour const & value)

Définit la couleur basique de la passe.

Paramètres
[in]valueLa nouvelle valeur.

Référencé par setColour(), setColour(), et setColour().

Voici le graphe des appelants de cette fonction :

◆ setColour() [3/4]

void castor3d::Pass::setColour ( castor::Point3f const & v)
inline

Références setColour().

Voici le graphe d'appel pour cette fonction :

◆ setColour() [4/4]

void castor3d::Pass::setColour ( castor::RgbColour const & v,
float gamma = 2.2f )
inline

Références setColour().

Voici le graphe d'appel pour cette fonction :

◆ setId()

void castor3d::Pass::setId ( uint32_t value)
inlinenoexcept

◆ setImplicit()

void castor3d::Pass::setImplicit ( bool value = true)
inlinenoexcept

◆ unregisterTexture()

C3D_API void castor3d::Pass::unregisterTexture ( TextureSourceInfo const & sourceInfo)
noexcept

Supprime une unité de texture.

Paramètres
[in]sourceInfoLa source de la texture.

◆ update()

C3D_API void castor3d::Pass::update ( )

Met à jour la passe de rendu, au niveau CPU.

◆ updateConfig()

C3D_API void castor3d::Pass::updateConfig ( TextureSourceInfo const & sourceInfo,
TextureConfiguration configuration )

Met à jour la configuration d'une texture.

Paramètres
[in]sourceInfoLa source de la texture.
[in]configurationLa nouvelle configuration de la texture.

◆ writeText()

C3D_API bool castor3d::Pass::writeText ( castor::String const & tabs,
castor::Path const & folder,
castor::String const & subfolder,
castor::StringStream & file ) const

Ecrit le contenu du composant en texte.

Paramètres
[in]tabsLe niveau actuel de tabulation.
[in]folderLe dossier de ressources.
[in]subfolderLe sous-dossier de ressources.
[in,out]fileLe fichier de sortie.

Documentation des fonctions amies et associées

◆ PassComponent

friend struct PassComponent
friend

Documentation des données membres

◆ m_dirty

std::atomic_bool castor3d::Pass::m_dirty { true }
mutableprotected

Référencé par reset().

◆ onChanged

OnPassChanged castor3d::Pass::onChanged

name Signals.


La documentation de cette classe a été générée à partir du fichier suivant :