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

void Destroy ()
 Fonction de destruction. Plus de détails...
 
void Cleanup ()
 Fonction de nettoyage. Plus de détails...
 
bool Initialise (eBUFFER_ACCESS_TYPE p_type, eBUFFER_ACCESS_NATURE p_nature)
 Fonction d'initialisation, initialise le GPU tampon. Plus de détails...
 
T * Lock (uint32_t p_offset, uint32_t p_count, uint32_t 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...
 
bool Fill (T const *p_buffer, ptrdiff_t p_size, Castor3D::eBUFFER_ACCESS_TYPE p_type, Castor3D::eBUFFER_ACCESS_NATURE p_nature)
 Transfère des données au tampon GPU à partir de la ram. Plus de détails...
 
bool 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 SetElement (uint32_t p_index, T const &p_value)
 Définit la valeur de l'élément à l'index donné 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 Reserve (uint32_t p_uiIncrement)
 Augmente la taille allouée du tampon. Plus de détails...
 
void Clear ()
 Vide le tampon. Plus de détails...
 
bool IsToDelete () const
 Récupère le statut de suppression du tampon. Plus de détails...
 
bool IsAssigned () const
 Récupère le statut d'affectation du tampon. Plus de détails...
 
GpuBufferSPtr GetGpuBuffer () const
 Récupère le tampon GPU. Plus de détails...
 
void Assign ()
 Définit le status d'affectation à true. Plus de détails...
 
void Unassign ()
 Définit le status d'affectation à false. 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

typedef std::shared_ptr< GpuBuffer< T > > GpuBufferSPtr
 
typedef std::weak_ptr< GpuBuffer< T > > GpuBufferWPtr
 
typedef std::weak_ptr< CpuBuffer< T > > CpuBufferWPtr
 

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

Attributs protégés

bool m_bToDelete
 Dit que le tampon doit être détruit à la prochaîne boucle de rendu. Plus de détails...
 
bool m_bAssigned
 Dit que le tampon s'est vu affecter un tampon GPU. Plus de détails...
 
GpuBufferSPtr m_pBuffer
 Le tampon GPU. Plus de détails...
 
TArray m_arrayData
 Les données du tampon. Plus de détails...
 
uint32_t m_uiSavedSize
 

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

template<typename T>
typedef std::weak_ptr< CpuBuffer< T > > Castor3D::CpuBuffer< T >::CpuBufferWPtr
protected
template<typename T>
typedef std::shared_ptr< GpuBuffer< T > > Castor3D::CpuBuffer< T >::GpuBufferSPtr
protected
template<typename T>
typedef std::weak_ptr< GpuBuffer< T > > Castor3D::CpuBuffer< T >::GpuBufferWPtr
protected

Documentation des constructeurs et destructeur

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

Constructeur.

Paramètres
[in]p_engineLe moteur
template<typename T>
Castor3D::CpuBuffer< T >::~CpuBuffer ( )
inlineprotected

Destructeur.

Documentation des fonctions membres

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
template<typename T>
void Castor3D::CpuBuffer< T >::Assign ( )
inline

Définit le status d'affectation à true.

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

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

Renvoie
true si tout s'est bien passé
template<typename T>
void Castor3D::CpuBuffer< T >::Cleanup ( void  )
inline

Fonction de nettoyage.

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

Vide le tampon.

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 :

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
template<typename T>
Castor3D::CpuBuffer< T >::DECLARE_TPL_VECTOR ( ,
 
)
protected
template<typename T>
void Castor3D::CpuBuffer< T >::Destroy ( )
inline

Fonction de destruction.

template<typename T>
bool Castor3D::CpuBuffer< T >::Fill ( T const *  p_buffer,
ptrdiff_t  p_size,
Castor3D::eBUFFER_ACCESS_TYPE  p_type,
Castor3D::eBUFFER_ACCESS_NATURE  p_nature 
)
inline

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

Paramètres
[in]p_bufferLes données
[in]p_sizeTaille du tampon de données
[in]p_typeType de transfert
[in]p_natureNature du transfert
Renvoie
true si tout s'est bien passé
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 >::Reserve().

+ Voici le graphe des appelants de cette fonction :

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

Récupère la taille remplie du tampon.

Renvoie
La taille
template<typename T>
bool Castor3D::CpuBuffer< T >::Initialise ( eBUFFER_ACCESS_TYPE  p_type,
eBUFFER_ACCESS_NATURE  p_nature 
)
inline

Fonction d'initialisation, initialise le GPU tampon.

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é
template<typename T>
bool Castor3D::CpuBuffer< T >::IsAssigned ( ) const
inline

Récupère le statut d'affectation du tampon.

Renvoie
Le statut d'affectation
template<typename T>
bool Castor3D::CpuBuffer< T >::IsToDelete ( ) const
inline

Récupère le statut de suppression du tampon.

Renvoie
Le statut de suppression
template<typename T>
T* Castor3D::CpuBuffer< T >::Lock ( uint32_t  p_offset,
uint32_t  p_count,
uint32_t  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é
template<typename T>
void Castor3D::CpuBuffer< T >::Reserve ( uint32_t  p_uiIncrement)
inline

Augmente la taille allouée du tampon.

Paramètres
[in]p_uiIncrementL'incrément de taille
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
template<typename T>
void Castor3D::CpuBuffer< T >::SetElement ( uint32_t  p_index,
T const &  p_value 
)
inline

Définit la valeur de l'élément à l'index donné

Paramètres
[in]p_indexL'index
[in]p_valueLa valeur
template<typename T>
void Castor3D::CpuBuffer< T >::Unassign ( )
inline

Définit le status d'affectation à false.

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

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

Renvoie
true si tout s'est bien passé
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

Documentation des données membres

template<typename T>
TArray Castor3D::CpuBuffer< T >::m_arrayData
protected
template<typename T>
bool Castor3D::CpuBuffer< T >::m_bAssigned
protected
template<typename T>
bool Castor3D::CpuBuffer< T >::m_bToDelete
protected

Dit que le tampon doit être détruit à la prochaîne boucle de rendu.

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

template<typename T>
GpuBufferSPtr Castor3D::CpuBuffer< T >::m_pBuffer
protected
template<typename T>
uint32_t Castor3D::CpuBuffer< T >::m_uiSavedSize
protected

La documentation de cette classe a été générée à partir des fichiers suivants :