Castor3D
..
|
Buffer de variables de shader. Plus de détails...
Classes | |
class | TextWriter |
Loader de UniformBuffer. Plus de détails... | |
Fonctions membres publiques | |
UniformBuffer (UniformBuffer const &)=delete | |
UniformBuffer (UniformBuffer &&)=default | |
UniformBuffer & | operator= (UniformBuffer const &)=delete |
UniformBuffer & | operator= (UniformBuffer &&)=default |
C3D_API | UniformBuffer (Castor::String const &p_name, RenderSystem &p_renderSystem) |
Constructeur. Plus de détails... | |
virtual C3D_API | ~UniformBuffer () |
Destructeur. Plus de détails... | |
C3D_API void | Cleanup () |
Nettoie toutes les variables et le tampon GPU associé. Plus de détails... | |
C3D_API void | Update () |
Met à jour le stockage GPU. Plus de détails... | |
C3D_API UniformBufferBinding & | CreateBinding (ShaderProgram &p_program) |
Crée un binding entre ce tampon d'uniformes et le porgramme donné. Plus de détails... | |
C3D_API UniformBufferBinding & | GetBinding (ShaderProgram &p_program) const |
Récupère le binding pour le programme donné. Plus de détails... | |
C3D_API UniformSPtr | CreateUniform (UniformType p_type, Castor::String const &p_name, uint32_t p_occurences=1) |
Crée une variable du type demandé. Plus de détails... | |
template<UniformType Type> | |
std::shared_ptr< typename uniform_type< Type >::type > | CreateUniform (Castor::String const &p_name, int p_occurences=1) |
Crée une variable. Plus de détails... | |
C3D_API void | RemoveUniform (Castor::String const &p_name) |
Supprime une variable de ce tampon. Plus de détails... | |
template<UniformType Type> | |
std::shared_ptr< TUniform< Type > > | GetUniform (Castor::String const &p_name) const |
Récupère une variable par son nom. Plus de détails... | |
GpuBuffer< uint8_t > & | GetStorage () const |
UniformList::iterator | begin () |
UniformList::const_iterator | begin () const |
UniformList::iterator | end () |
UniformList::const_iterator | end () const |
Fonctions membres publiques statiques | |
static C3D_API void | FillMatrixBuffer (UniformBuffer &p_ubo) |
Remplit un UBO avec les variable relatives aux matrices. Plus de détails... | |
static C3D_API void | FillModelMatrixBuffer (UniformBuffer &p_ubo) |
Remplit un UBO avec les variable relatives aux matrices modèle. Plus de détails... | |
static C3D_API void | FillSceneBuffer (UniformBuffer &p_ubo) |
Remplit un UBO avec les variable relatives à la scène. Plus de détails... | |
static C3D_API void | FillPassBuffer (UniformBuffer &p_ubo) |
Remplit un UBO avec les variable relatives à la passe. Plus de détails... | |
static C3D_API void | FillModelBuffer (UniformBuffer &p_ubo) |
Remplit un UBO avec les variable relatives au modèle. Plus de détails... | |
static C3D_API void | FillSkinningBuffer (UniformBuffer &p_ubo) |
Remplit un UBO avec les variable relatives aux animations de skinning. Plus de détails... | |
static C3D_API void | FillMorphingBuffer (UniformBuffer &p_ubo) |
Remplit un UBO avec les variable relatives aux animations de morphing. Plus de détails... | |
static C3D_API void | FillBillboardBuffer (UniformBuffer &p_ubo) |
Remplit un UBO avec les variable relatives au billboard. Plus de détails... | |
static C3D_API void | FillOverlayBuffer (UniformBuffer &p_ubo) |
Remplit un UBO avec les variable relatives aux incrustations. Plus de détails... | |
Attributs protégés | |
UniformList | m_listVariables |
UniformMap | m_mapVariables |
Castor::ByteArray | m_buffer |
std::unique_ptr< GpuBuffer< uint8_t > > | m_storage |
UniformBufferBindingMap | m_bindings |
Amis | |
class | Castor::TextWriter< Castor3D::UniformBuffer > |
Buffer de variables de shader.
|
delete |
|
default |
C3D_API Castor3D::UniformBuffer::UniformBuffer | ( | Castor::String const & | p_name, |
RenderSystem & | p_renderSystem | ||
) |
Constructeur.
[in] | p_name | Le nom du tampon. |
[in] | p_renderSystem | Le render system. |
|
virtual |
Destructeur.
|
inline |
Références m_listVariables.
|
inline |
Références m_listVariables.
C3D_API void Castor3D::UniformBuffer::Cleanup | ( | ) |
Nettoie toutes les variables et le tampon GPU associé.
C3D_API UniformBufferBinding& Castor3D::UniformBuffer::CreateBinding | ( | ShaderProgram & | p_program | ) |
Crée un binding entre ce tampon d'uniformes et le porgramme donné.
[in] | p_program | Le programme. |
C3D_API UniformSPtr Castor3D::UniformBuffer::CreateUniform | ( | UniformType | p_type, |
Castor::String const & | p_name, | ||
uint32_t | p_occurences = 1 |
||
) |
Crée une variable du type demandé.
[in] | p_type | Le type voulu. |
[in] | p_name | Le nom de la variable. |
[in] | p_occurences | Les dimensions du tableau. |
Référencé par CreateUniform().
|
inline |
Crée une variable.
[in] | p_name | Le nom de la variable. |
[in] | p_occurences | Les dimensions du tableau. |
Références C3D_API, CreateUniform(), FillBillboardBuffer(), FillMatrixBuffer(), FillModelBuffer(), FillModelMatrixBuffer(), FillMorphingBuffer(), FillOverlayBuffer(), FillPassBuffer(), FillSceneBuffer(), FillSkinningBuffer(), GetUniform(), et RemoveUniform().
|
inline |
Références m_listVariables.
|
inline |
Références m_listVariables.
|
static |
Remplit un UBO avec les variable relatives au billboard.
[in] | p_ubo | L'UBO à remplir. |
Référencé par CreateUniform().
|
static |
Remplit un UBO avec les variable relatives aux matrices.
[in] | p_ubo | L'UBO à remplir. |
Référencé par CreateUniform().
|
static |
Remplit un UBO avec les variable relatives au modèle.
[in] | p_ubo | L'UBO à remplir. |
Référencé par CreateUniform().
|
static |
Remplit un UBO avec les variable relatives aux matrices modèle.
[in] | p_ubo | L'UBO à remplir. |
Référencé par CreateUniform().
|
static |
Remplit un UBO avec les variable relatives aux animations de morphing.
[in] | p_ubo | L'UBO à remplir. |
Référencé par CreateUniform().
|
static |
Remplit un UBO avec les variable relatives aux incrustations.
[in] | p_ubo | L'UBO à remplir. |
Référencé par CreateUniform().
|
static |
Remplit un UBO avec les variable relatives à la passe.
[in] | p_ubo | L'UBO à remplir. |
Référencé par CreateUniform().
|
static |
Remplit un UBO avec les variable relatives à la scène.
[in] | p_ubo | L'UBO à remplir. |
Référencé par CreateUniform().
|
static |
Remplit un UBO avec les variable relatives aux animations de skinning.
[in] | p_ubo | L'UBO à remplir. |
Référencé par CreateUniform().
C3D_API UniformBufferBinding& Castor3D::UniformBuffer::GetBinding | ( | ShaderProgram & | p_program | ) | const |
Récupère le binding pour le programme donné.
[in] | p_program | Le programme. |
|
inline |
Références m_storage.
|
inline |
Récupère une variable par son nom.
[in] | p_name | Le nom de la variable. |
Référencé par CreateUniform().
|
delete |
|
default |
C3D_API void Castor3D::UniformBuffer::RemoveUniform | ( | Castor::String const & | p_name | ) |
Supprime une variable de ce tampon.
[in] | p_name | Le nom de la variable. |
Référencé par CreateUniform().
C3D_API void Castor3D::UniformBuffer::Update | ( | ) |
Met à jour le stockage GPU.
Référencé par Castor3D::DoBindPass(), et Castor3D::DoRenderNodeNoPass().
|
friend |
|
protected |
Les bindings par programme.
|
protected |
Le tampon de données.
|
protected |
|
protected |
Les variables, triées par nom.
|
protected |
Le tampon GPU.
Référencé par GetStorage().