Castor3D 0.14.0
Multiplatform 3D engine
Types publics | Fonctions membres publiques | Fonctions membres publiques statiques | Attributs publics | Fonctions membres protégées 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 PassTextureSource = std::pair< TextureSourceInfo, PassTextureConfig >
 

Fonctions membres publiques

C3D_API Pass (Material &parent, PassTypeID typeID)
 Constructeur. Plus de détails...
 
C3D_API ~Pass ()
 Destructeur. Plus de détails...
 
C3D_API void initialise ()
 Initialise la passe et toutes ses dépendances. Plus de détails...
 
C3D_API void cleanup ()
 Nettoie la passe et toutes ses dépendances. Plus de détails...
 
C3D_API void update ()
 Met à jour la passe de rendu, au niveau CPU. Plus de détails...
 
C3D_API TextureUnitSPtr getTextureUnit (uint32_t index) const
 Récupère la TextureUnit à l'index donné. Plus de détails...
 
C3D_API void registerTexture (TextureSourceInfo sourceInfo, PassTextureConfig configuration)
 Ajoute une texture. Plus de détails...
 
C3D_API void registerTexture (TextureSourceInfo sourceInfo, PassTextureConfig configuration, AnimationUPtr animation)
 Ajoute une texture animée. Plus de détails...
 
C3D_API void unregisterTexture (TextureSourceInfo sourceInfo)
 Supprime une unité de texture. Plus de détails...
 
C3D_API void resetTexture (TextureSourceInfo const &srcSourceInfo, TextureSourceInfo dstSourceInfo)
 Remplace la source d'une texture. Plus de détails...
 
C3D_API void updateConfig (TextureSourceInfo const &sourceInfo, TextureConfiguration configuration)
 Met à jour la configuration d'une texture. Plus de détails...
 
C3D_API void prepareTextures ()
 Réduit les textures. Plus de détails...
 
C3D_API void mergeImages (PassTextureSource lhs, uint32_t lhsDstMask, PassTextureSource rhs, uint32_t rhsDstMask, TextureUnitDataSet &result)
 
C3D_API void prepareImage (PassTextureSource cfg, TextureUnitDataSet &result)
 
C3D_API void setColour (castor::HdrRgbColour const &value)
 Définit la couleur basique de la passe. Plus de détails...
 
C3D_API castor::HdrRgbColour const & getColour () const
 
C3D_API PassComponentCombine getPassFlags () const
 
C3D_API void accept (PassVisitorBase &vis)
 Fonction d'acceptation de PassVisitor. Plus de détails...
 
C3D_API void fillBuffer (PassBuffer &buffer, uint16_t passTypeIndex) const
 Remplit le pass buffer aves les données de cette passe. Plus de détails...
 
C3D_API PassSPtr clone (Material &material) const
 Clone cette pass. Plus de détails...
 
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. Plus de détails...
 
C3D_API void fillConfig (TextureConfiguration &config, PassVisitorBase &vis)
 Fonction d'acceptation de PassVisitor, pour une configuration de texture. Plus de détails...
 

Gestion des composants.

C3D_API void addComponent (PassComponentUPtr component)
 
C3D_API bool hasComponent (castor::String const &name) const
 
C3D_API PassComponentgetComponent (castor::String const &name) const
 
C3D_API void 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
 
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
 
template<typename ComponentT >
ComponentT * getComponent () const
 
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 TextureUnitPtrArray getTextureUnits () const
 
C3D_API uint32_t getTextureUnitsCount () const
 
C3D_API TextureCombine getTexturesMask () const
 
C3D_API bool hasLighting () const
 
C3D_API PassComponentRegistergetPassComponentsRegister () 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 castor::String getTextureFlagsName (PassComponentTextureFlag flags) const
 
bool hasAutomaticShader () const
 
uint32_t getId () const
 
bool isImplicit () const
 
PassTypeID getTypeID () const
 
RenderPassRegisterInfogetRenderPassInfo () const
 
uint32_t getIndex () const
 
uint32_t getMaxTexCoordSet () const
 
auto begin () const
 
auto begin ()
 
auto end () const
 
auto end ()
 
C3D_API void enableLighting (bool value)
 
C3D_API void enablePicking (bool value)
 
void setId (uint32_t value)
 
void setImplicit (bool value=true)
 
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
 

Fonctions membres publiques statiques

static C3D_API castor::AttributeParsers createParsers (Engine const &engine)
 
static C3D_API castor::RgbColour computeF0 (castor::HdrRgbColour const &albedo, float metalness)
 
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
 

Fonctions membres protégées statiques

static C3D_API void parseError (castor::String const &error)
 

Attributs protégés

std::atomic_bool m_dirty { true }
 

Amis

struct PassComponent
 

Documentation des définitions de type membres

◆ PassTextureSource

Documentation des constructeurs et destructeur

◆ Pass()

C3D_API castor3d::Pass::Pass ( Material parent,
PassTypeID  typeID 
)
explicit

Constructeur.

Paramètres
[in]parentLe matériau parent.
[in]typeIDL'ID du type de la passe.

◆ ~Pass()

C3D_API castor3d::Pass::~Pass ( )

Destructeur.

Documentation des fonctions membres

◆ accept()

C3D_API void castor3d::Pass::accept ( PassVisitorBase vis)

Fonction d'acceptation de PassVisitor.

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 :

◆ begin() [1/2]

auto castor3d::Pass::begin ( )
inline

◆ begin() [2/2]

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

name Itération sur les textures.

◆ cleanup()

C3D_API void castor3d::Pass::cleanup ( )

Nettoie la passe et toutes ses dépendances.

◆ clone()

C3D_API PassSPtr castor3d::Pass::clone ( Material material) const

Clone cette pass.

Renvoie
Le clone.

◆ computeF0()

static C3D_API castor::RgbColour castor3d::Pass::computeF0 ( castor::HdrRgbColour const &  albedo,
float  metalness 
)
static

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

◆ createParsers()

static C3D_API castor::AttributeParsers castor3d::Pass::createParsers ( Engine const &  engine)
static

◆ enableLighting()

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

name Mutateurs.

◆ enablePicking()

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

◆ end() [1/2]

auto castor3d::Pass::end ( )
inline

◆ end() [2/2]

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

◆ fillBuffer()

C3D_API void castor3d::Pass::fillBuffer ( PassBuffer buffer,
uint16_t  passTypeIndex 
) const

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

Paramètres
[in,out]bufferLe pass buffer.
[in]passTypeIndexL'indice du type de passe.

◆ fillConfig()

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

Fonction d'acceptation de PassVisitor, 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()

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

◆ getComponent() [1/2]

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

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

◆ getComponentId()

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

Référencé par 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().

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

◆ getHeightMapFlags()

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

◆ getId()

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

◆ getIndex()

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

◆ getMaterialShader()

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

◆ getMaxTexCoordSet()

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

◆ getNormalMapFlags()

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

◆ getOcclusionMapFlags()

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

◆ getOpacityMapFlags()

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

◆ getPassComponentsRegister()

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

◆ getPassFlags()

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

◆ getRenderPassInfo()

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

◆ getTextureCombineID()

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

◆ getTextureFlagsName()

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

◆ getTexturesMask()

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

◆ getTextureUnit()

C3D_API TextureUnitSPtr 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 TextureUnitPtrArray castor3d::Pass::getTextureUnits ( ) const

◆ getTextureUnitsCount()

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

◆ getTypeID()

PassTypeID castor3d::Pass::getTypeID ( ) const
inline

◆ hasAlphaBlending()

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

◆ hasAlphaTest()

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

◆ hasAutomaticShader()

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

◆ hasBlendAlphaTest()

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

◆ hasComponent() [1/2]

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

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

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

◆ isTwoSided()

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

◆ mergeImages()

C3D_API void castor3d::Pass::mergeImages ( PassTextureSource  lhs,
uint32_t  lhsDstMask,
PassTextureSource  rhs,
uint32_t  rhsDstMask,
TextureUnitDataSet result 
)

◆ needsAlphaProcessing()

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

name Accesseurs.

◆ parseError()

static C3D_API void castor3d::Pass::parseError ( castor::String const &  error)
staticprotected

◆ prepareImage()

C3D_API void castor3d::Pass::prepareImage ( PassTextureSource  cfg,
TextureUnitDataSet result 
)

◆ 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,
AnimationUPtr  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 void castor3d::Pass::removeComponent ( castor::String const &  name)

◆ reset()

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

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().

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)
inline

◆ setImplicit()

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

◆ unregisterTexture()

C3D_API void castor3d::Pass::unregisterTexture ( TextureSourceInfo  sourceInfo)

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

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