Castor3D  ..
Fonctions membres publiques | Types protégés | Fonctions membres protégées | Attributs protégés | Liste de tous les membres
Référence du modèle de la classe Castor3D::CpuBuffer< T >

Classe de gestion de tampon 3D. Plus de détails...

+ Graphe d'héritage de Castor3D::CpuBuffer< T >:
+ Graphe de collaboration de Castor3D::CpuBuffer< T >:

Fonctions membres publiques

T * Lock (uint32_t p_offset, uint32_t p_count, AccessTypes const &p_flags)
 Locke le tampon, càd le mappe en mémoire ram afin d'y autoriser des modifications. Plus de détails...
 
void Unlock ()
 Un locke le tampon, càd l'unmappe de la mémoire ram afin de ne plus autoriser de modifications dessus. Plus de détails...
 
void Upload (uint32_t p_offset, uint32_t p_count, T const *p_buffer)
 Transfère des données au tampon GPU à partir de la RAM. Plus de détails...
 
void Upload ()
 Transfère toutes les données du tampon CPU vers le GPU. Plus de détails...
 
void Download (uint32_t p_offset, uint32_t p_count, T *p_buffer)
 Transfère des données du tampon GPU vers la RAM. Plus de détails...
 
void Download ()
 Transfère toutes les données du tampon GPU vers le CPU. Plus de détails...
 
void Bind ()
 Fonction d'activation, pour dire au GPU qu'il est activé. Plus de détails...
 
void Unbind ()
 Fonction de désactivation, pour dire au GPU qu'il est désactivé. Plus de détails...
 
void Copy (GpuBuffer< T > const &p_src, uint32_t p_size)
 Copie les données du tampon donné dans celui-ci. Plus de détails...
 
void Copy (CpuBuffer< T > const &p_src, uint32_t p_size)
 Copie les données du tampon donné dans celui-ci. Plus de détails...
 
MyGpuBuffer const & GetGpuBuffer () const
 
T const & operator[] (uint32_t p_index) const
 Opérateur d'indexation. Plus de détails...
 
T & operator[] (uint32_t p_index)
 Opérateur d'indexation. Plus de détails...
 
void AddElement (T const &p_value)
 Ajoute une valeur à la fin du tampon. Plus de détails...
 
uint32_t GetSize () const
 Récupère la taille remplie du tampon. Plus de détails...
 
uint32_t GetCapacity () const
 Récupère la taille allouée du tampon. Plus de détails...
 
void Resize (uint32_t p_uiNewSize)
 Définit la taille allouée du tampon. Plus de détails...
 
void Grow (uint32_t p_uiIncrement)
 Augmente la taille allouée du tampon. Plus de détails...
 
void Clear ()
 Vide le tampon. Plus de détails...
 
T const * data () const
 Récupère le pointeur sur les données. Plus de détails...
 
T * data ()
 Récupère le pointeur sur les données. Plus de détails...
 

Types protégés

using MyGpuBuffer = GpuBuffer< T >
 
using GpuBufferUPtr = std::unique_ptr< MyGpuBuffer >
 

Fonctions membres protégées

 DECLARE_TPL_VECTOR (T, T)
 
 CpuBuffer (Engine &p_engine)
 Constructeur. Plus de détails...
 
 ~CpuBuffer ()
 Destructeur. Plus de détails...
 
bool DoInitialise (BufferAccessType p_type, BufferAccessNature p_nature)
 Initialise le tampon GPU. Plus de détails...
 
void DoCleanup ()
 Nettoie le tampon GPU. Plus de détails...
 

Attributs protégés

GpuBufferUPtr m_gpuBuffer
 
TArray m_data
 
uint32_t m_savedSize { 0u }
 

Description détaillée

template<typename T>
class Castor3D::CpuBuffer< T >

Classe de gestion de tampon 3D.

Auteur
Sylvain DOREMUS
Version
0.1
Date
09/02/2010
Remarques
A ne pas utiliser pour gérer des buffers de données, utiliser Castor::Buffer pour cela

Documentation des définitions de type membres

◆ GpuBufferUPtr

template<typename T>
using Castor3D::CpuBuffer< T >::GpuBufferUPtr = std::unique_ptr< MyGpuBuffer >
protected

◆ MyGpuBuffer

template<typename T>
using Castor3D::CpuBuffer< T >::MyGpuBuffer = GpuBuffer< T >
protected

Documentation des constructeurs et destructeur

◆ CpuBuffer()

template<typename T>
Castor3D::CpuBuffer< T >::CpuBuffer ( Engine p_engine)
inlineexplicitprotected

Constructeur.

Paramètres
[in]p_engineLe moteur.

◆ ~CpuBuffer()

template<typename T>
Castor3D::CpuBuffer< T >::~CpuBuffer ( )
inlineprotected

Destructeur.

Documentation des fonctions membres

◆ AddElement()

template<typename T>
void Castor3D::CpuBuffer< T >::AddElement ( T const &  p_value)
inline

Ajoute une valeur à la fin du tampon.

Paramètres
[in]p_valueLa valeur.

◆ Bind()

template<typename T>
void Castor3D::CpuBuffer< T >::Bind ( )
inline

Fonction d'activation, pour dire au GPU qu'il est activé.

◆ Clear()

template<typename T>
void Castor3D::CpuBuffer< T >::Clear ( )
inline

Vide le tampon.

◆ Copy() [1/2]

template<typename T>
void Castor3D::CpuBuffer< T >::Copy ( GpuBuffer< T > const &  p_src,
uint32_t  p_size 
)
inline

Copie les données du tampon donné dans celui-ci.

Paramètres
[in]p_srcLe tampon source.
[in]p_sizeLe nombre d'éléments à copier.

Référencé par Castor3D::CpuBuffer< uint8_t >::Copy().

+ Voici le graphe des appelants de cette fonction :

◆ Copy() [2/2]

template<typename T>
void Castor3D::CpuBuffer< T >::Copy ( CpuBuffer< T > const &  p_src,
uint32_t  p_size 
)
inline

Copie les données du tampon donné dans celui-ci.

Paramètres
[in]p_srcLe tampon source.
[in]p_sizeLe nombre d'éléments à copier.

◆ data() [1/2]

template<typename T>
T const* Castor3D::CpuBuffer< T >::data ( ) const
inline

Récupère le pointeur sur les données.

Renvoie
Le pointeur sur les données.

Référencé par Castor3D::VertexBuffer::LinkCoords().

+ Voici le graphe des appelants de cette fonction :

◆ data() [2/2]

template<typename T>
T* Castor3D::CpuBuffer< T >::data ( )
inline

Récupère le pointeur sur les données.

Renvoie
Le pointeur sur les données.

◆ DECLARE_TPL_VECTOR()

template<typename T>
Castor3D::CpuBuffer< T >::DECLARE_TPL_VECTOR ( ,
 
)
protected

◆ DoCleanup()

template<typename T>
void Castor3D::CpuBuffer< T >::DoCleanup ( )
inlineprotected

Nettoie le tampon GPU.

◆ DoInitialise()

template<typename T>
bool Castor3D::CpuBuffer< T >::DoInitialise ( BufferAccessType  p_type,
BufferAccessNature  p_nature 
)
inlineprotected

Initialise le tampon GPU.

Paramètres
[in]p_typeType d'accès du tampon.
[in]p_natureNature d'accès du tampon.
Renvoie
true si tout s'est bien passé.

◆ Download() [1/2]

template<typename T>
void Castor3D::CpuBuffer< T >::Download ( uint32_t  p_offset,
uint32_t  p_count,
T *  p_buffer 
)
inline

Transfère des données du tampon GPU vers la RAM.

Remarques
Transfère les données de tampon[p_offset*sizeof( T )] à tampon[(p_offset+p_count-1) * sizeof( T )].
Paramètres
[in]p_offsetL'offset de départ.
[in]p_countNombre d'éléments.
[out]p_bufferLes données.

◆ Download() [2/2]

template<typename T>
void Castor3D::CpuBuffer< T >::Download ( )
inline

Transfère toutes les données du tampon GPU vers le CPU.

Référencé par Castor3D::CpuBuffer< uint8_t >::Download().

+ Voici le graphe des appelants de cette fonction :

◆ GetCapacity()

template<typename T>
uint32_t Castor3D::CpuBuffer< T >::GetCapacity ( ) const
inline

Récupère la taille allouée du tampon.

Renvoie
La taille.

Référencé par Castor3D::CpuBuffer< uint8_t >::Grow().

+ Voici le graphe des appelants de cette fonction :

◆ GetGpuBuffer()

template<typename T>
MyGpuBuffer const& Castor3D::CpuBuffer< T >::GetGpuBuffer ( ) const
inline
Renvoie
Le tampon GPU.

◆ GetSize()

template<typename T>
uint32_t Castor3D::CpuBuffer< T >::GetSize ( ) const
inline

Récupère la taille remplie du tampon.

Renvoie
La taille.

◆ Grow()

template<typename T>
void Castor3D::CpuBuffer< T >::Grow ( uint32_t  p_uiIncrement)
inline

Augmente la taille allouée du tampon.

Paramètres
[in]p_uiIncrementL'incrément de taille.

◆ Lock()

template<typename T>
T* Castor3D::CpuBuffer< T >::Lock ( uint32_t  p_offset,
uint32_t  p_count,
AccessTypes const &  p_flags 
)
inline

Locke le tampon, càd le mappe en mémoire ram afin d'y autoriser des modifications.

Remarques
Mappe de tampon[p_offset*sizeof( T )] à tampon[(p_offset+p_uiSize-1) * sizeof( T )].
Paramètres
[in]p_offsetL'offset de départ.
[in]p_countLe nombre d'éléments à mapper.
[in]p_flagsLes flags de lock.
Renvoie
L'adresse du tampon mappé.

◆ operator[]() [1/2]

template<typename T>
T const& Castor3D::CpuBuffer< T >::operator[] ( uint32_t  p_index) const
inline

Opérateur d'indexation.

Paramètres
[in]p_indexL'index.

◆ operator[]() [2/2]

template<typename T>
T& Castor3D::CpuBuffer< T >::operator[] ( uint32_t  p_index)
inline

Opérateur d'indexation.

Paramètres
[in]p_indexL'index.

◆ Resize()

template<typename T>
void Castor3D::CpuBuffer< T >::Resize ( uint32_t  p_uiNewSize)
inline

Définit la taille allouée du tampon.

Paramètres
[in]p_uiNewSizeLa nouvelle taille.

◆ Unbind()

template<typename T>
void Castor3D::CpuBuffer< T >::Unbind ( )
inline

Fonction de désactivation, pour dire au GPU qu'il est désactivé.

◆ Unlock()

template<typename T>
void Castor3D::CpuBuffer< T >::Unlock ( )
inline

Un locke le tampon, càd l'unmappe de la mémoire ram afin de ne plus autoriser de modifications dessus.

Remarques
Toutes les modifications qui avaient été effectuées sur le tampon mappé sont rapatriées dans la mémoire GPU.

◆ Upload() [1/2]

template<typename T>
void Castor3D::CpuBuffer< T >::Upload ( uint32_t  p_offset,
uint32_t  p_count,
T const *  p_buffer 
)
inline

Transfère des données au tampon GPU à partir de la RAM.

Remarques
Transfère les données de tampon[p_offset*sizeof( T )] à tampon[(p_offset+p_count-1) * sizeof( T )].
Paramètres
[in]p_offsetL'offset de départ.
[in]p_countNombre d'éléments.
[in]p_bufferLes données.

◆ Upload() [2/2]

template<typename T>
void Castor3D::CpuBuffer< T >::Upload ( )
inline

Transfère toutes les données du tampon CPU vers le GPU.

Référencé par Castor3D::CpuBuffer< uint8_t >::Upload().

+ Voici le graphe des appelants de cette fonction :

Documentation des données membres

◆ m_data

template<typename T>
TArray Castor3D::CpuBuffer< T >::m_data
protected

◆ m_gpuBuffer

template<typename T>
GpuBufferUPtr Castor3D::CpuBuffer< T >::m_gpuBuffer
protected

◆ m_savedSize

template<typename T>
uint32_t Castor3D::CpuBuffer< T >::m_savedSize { 0u }
protected

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