Castor3D  ..
Fonctions membres publiques | 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 offset, uint32_t count, AccessTypes const &flags) const
 Locke le tampon, càd le mappe en mémoire ram afin d'y autoriser des modifications. Plus de détails...
 
void unlock () const
 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 offset, uint32_t count, T const *buffer) const
 Transfère des données au tampon GPU à partir de la RAM. Plus de détails...
 
void upload () const
 Transfère toutes les données du tampon CPU vers le GPU. Plus de détails...
 
void download (uint32_t offset, uint32_t count, T *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 () const
 Fonction d'activation, pour dire au GPU qu'il est activé. Plus de détails...
 
void unbind () const
 Fonction de désactivation, pour dire au GPU qu'il est désactivé. Plus de détails...
 
void copy (GpuBuffer const &src, uint32_t srcOffset, uint32_t size)
 Copie les données du tampon donné dans celui-ci. Plus de détails...
 
void copy (CpuBuffer< T > const &src, uint32_t size)
 Copie les données du tampon donné dans celui-ci. Plus de détails...
 
GpuBuffer const & getGpuBuffer () const
 
T const & operator[] (uint32_t index) const
 Opérateur d'indexation. Plus de détails...
 
T & operator[] (uint32_t index)
 Opérateur d'indexation. Plus de détails...
 
void addElement (T const &value)
 Ajoute une valeur à la fin du tampon. Plus de détails...
 
uint32_t getSize () const
 
uint32_t isEmpty () const
 
void resize (uint32_t value)
 Définit la taille allouée du tampon. Plus de détails...
 
void clear ()
 Vide le tampon. Plus de détails...
 
T const * getData () const
 
T * getData ()
 
auto begin ()
 
auto begin () const
 
auto end ()
 
auto end () const
 
uint32_t getOffset () const
 

Fonctions membres protégées

 DECLARE_TPL_VECTOR (T, T)
 
 CpuBuffer (Engine &engine)
 Constructeur. Plus de détails...
 
 ~CpuBuffer ()
 Destructeur. Plus de détails...
 
void doInitialise (BufferAccessType accessType, BufferAccessNature accessNature)
 

Attributs protégés

GpuBufferSPtr m_gpuBuffer
 
TArray m_data
 
uint32_t m_offset { 0u }
 
uint32_t m_savedSize { 0u }
 
BufferAccessType m_accessType
 
BufferAccessNature m_accessNature
 

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 constructeurs et destructeur

◆ CpuBuffer()

template<typename T>
castor3d::CpuBuffer< T >::CpuBuffer ( Engine engine)
inlineexplicitprotected

Constructeur.

Paramètres
[in]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 &  value)
inline

Ajoute une valeur à la fin du tampon.

Paramètres
[in]valueLa valeur.

◆ begin() [1/2]

template<typename T>
auto castor3d::CpuBuffer< T >::begin ( )
inline
Renvoie
Un itérateur sur le début des éléments.

◆ begin() [2/2]

template<typename T>
auto castor3d::CpuBuffer< T >::begin ( ) const
inline
Renvoie
Un itérateur sur le début des éléments.

◆ bind()

template<typename T>
void castor3d::CpuBuffer< T >::bind ( ) const
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 const &  src,
uint32_t  srcOffset,
uint32_t  size 
)
inline

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

Paramètres
[in]srcLe tampon source.
[in]srcOffsetLe décalage dans le tampon source.
[in]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 &  src,
uint32_t  size 
)
inline

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

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

◆ DECLARE_TPL_VECTOR()

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

◆ doInitialise()

template<typename T>
void castor3d::CpuBuffer< T >::doInitialise ( BufferAccessType  accessType,
BufferAccessNature  accessNature 
)
inlineprotected

◆ download() [1/2]

template<typename T>
void castor3d::CpuBuffer< T >::download ( uint32_t  offset,
uint32_t  count,
T *  buffer 
)
inline

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

Remarques
Transfère les données de tampon[offset*sizeof( T )] à tampon[(offset+count-1) * sizeof( T )].
Paramètres
[in]offsetL'offset de départ.
[in]countNombre d'éléments.
[out]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 :

◆ end() [1/2]

template<typename T>
auto castor3d::CpuBuffer< T >::end ( )
inline
Renvoie
Un itérateur sur la fin des éléments.

◆ end() [2/2]

template<typename T>
auto castor3d::CpuBuffer< T >::end ( ) const
inline
Renvoie
Un itérateur sur la fin des éléments.

◆ getData() [1/2]

template<typename T>
T const* castor3d::CpuBuffer< T >::getData ( ) const
inline
Renvoie
Le pointeur sur les données.

Référencé par castor3d::VertexBuffer::linkCoords().

+ Voici le graphe des appelants de cette fonction :

◆ getData() [2/2]

template<typename T>
T* castor3d::CpuBuffer< T >::getData ( )
inline
Renvoie
Le pointeur sur les données.

◆ getGpuBuffer()

template<typename T>
GpuBuffer const& castor3d::CpuBuffer< T >::getGpuBuffer ( ) const
inline
Renvoie
Le tampon GPU.

◆ getOffset()

template<typename T>
uint32_t castor3d::CpuBuffer< T >::getOffset ( ) const
inline
Renvoie
L'offset dans le tampon GPU.

◆ getSize()

template<typename T>
uint32_t castor3d::CpuBuffer< T >::getSize ( ) const
inline
Renvoie
La taille du tampon.

◆ isEmpty()

template<typename T>
uint32_t castor3d::CpuBuffer< T >::isEmpty ( ) const
inline
Renvoie
true si le tampon est vide.

◆ lock()

template<typename T>
T* castor3d::CpuBuffer< T >::lock ( uint32_t  offset,
uint32_t  count,
AccessTypes const &  flags 
) const
inline

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

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

◆ operator[]() [1/2]

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

Opérateur d'indexation.

Paramètres
[in]indexL'index.

◆ operator[]() [2/2]

template<typename T>
T& castor3d::CpuBuffer< T >::operator[] ( uint32_t  index)
inline

Opérateur d'indexation.

Paramètres
[in]indexL'index.

◆ resize()

template<typename T>
void castor3d::CpuBuffer< T >::resize ( uint32_t  value)
inline

Définit la taille allouée du tampon.

Paramètres
[in]valueLa nouvelle taille.

◆ unbind()

template<typename T>
void castor3d::CpuBuffer< T >::unbind ( ) const
inline

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

◆ unlock()

template<typename T>
void castor3d::CpuBuffer< T >::unlock ( ) const
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  offset,
uint32_t  count,
T const *  buffer 
) const
inline

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

Remarques
Transfère les données de tampon[offset*sizeof( T )] à tampon[(offset+count-1) * sizeof( T )].
Paramètres
[in]offsetL'offset de départ.
[in]countNombre d'éléments.
[in]bufferLes données.

◆ upload() [2/2]

template<typename T>
void castor3d::CpuBuffer< T >::upload ( ) const
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_accessNature

template<typename T>
BufferAccessNature castor3d::CpuBuffer< T >::m_accessNature
protected

◆ m_accessType

template<typename T>
BufferAccessType castor3d::CpuBuffer< T >::m_accessType
protected

Nature d'accès du tampon.

Référencé par castor3d::CpuBuffer< uint8_t >::doInitialise().

◆ m_data

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

◆ m_gpuBuffer

template<typename T>
GpuBufferSPtr castor3d::CpuBuffer< T >::m_gpuBuffer
protected

◆ m_offset

template<typename T>
uint32_t castor3d::CpuBuffer< T >::m_offset { 0u }
protected

◆ m_savedSize

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

Type d'accès du tampon.


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