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

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

+ Graphe de collaboration de Castor3D::CpuBuffer< T >:

Fonctions membres publiques

 CpuBuffer (RenderSystem *p_pRenderSystem)
 Constructeur. Plus de détails...
 
virtual ~CpuBuffer ()
 Destructeur. Plus de détails...
 
virtual bool Create ()
 Fonction de création. Plus de détails...
 
virtual void Destroy ()
 Fonction de destruction. Plus de détails...
 
virtual void Cleanup ()
 Fonction de nettoyage. Plus de détails...
 
virtual bool Initialise (eBUFFER_ACCESS_TYPE p_eType, eBUFFER_ACCESS_NATURE p_eNature, Castor3D::ShaderProgramBaseSPtr p_pProgram=nullptr)
 Fonction d'initialisation, initialise le GPU tampon. Plus de détails...
 
virtual T * Lock (uint32_t p_uiOffset, uint32_t p_uiCount, uint32_t p_uiFlags)
 Locke le tampon, càd le mappe en mémoire ram afin d'y autoriser des modifications. Plus de détails...
 
virtual 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...
 
virtual bool Fill (T const *p_pBuffer, ptrdiff_t p_iSize, Castor3D::eBUFFER_ACCESS_TYPE p_eType, Castor3D::eBUFFER_ACCESS_NATURE p_eNature)
 Transfère des données au tampon GPU à partir de la ram. Plus de détails...
 
virtual bool Bind ()
 Fonction d'activation, pour dire au GPU qu'il est activé Plus de détails...
 
virtual void Unbind ()
 Fonction de désactivation, pour dire au GPU qu'il est désactivé Plus de détails...
 
virtual void SetElement (uint32_t p_uiIndex, T const &p_tValue)
 Définit la valeur de l'élément à l'index donné Plus de détails...
 
virtual void AddElement (T const &p_tValue)
 Ajoute une valeur à la fin du tampon. Plus de détails...
 
virtual uint32_t GetSize () const
 Récupère la taille remplie du tampon. Plus de détails...
 
virtual uint32_t GetCapacity () const
 Récupère la taille allouée du tampon. Plus de détails...
 
virtual void Resize (uint32_t p_uiNewSize)
 Définit la taille allouée du tampon. Plus de détails...
 
virtual void Reserve (uint32_t p_uiIncrement)
 Augmente la taille allouée du tampon. Plus de détails...
 
virtual void Clear ()
 Vide le tampon. Plus de détails...
 
virtual bool IsToDelete () const
 Récupère le statut de suppression du tampon. Plus de détails...
 
virtual bool IsAssigned () const
 Récupère le statut d'affectation du tampon. Plus de détails...
 
virtual GpuBufferSPtr GetGpuBuffer () const
 Récupère le tampon GPU. Plus de détails...
 
virtual void Assign ()
 Définit le status d'affectation à true. Plus de détails...
 
virtual void Unassign ()
 Définit le status d'affectation à false. Plus de détails...
 
virtual RenderSystemGetRenderSystem () const
 Récupère le RenderSystem. Plus de détails...
 
virtual T const * data () const
 Récupère le pointeur sur les données. Plus de détails...
 
virtual 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)
 
virtual bool DoCreateBuffer ()=0
 Récupère le shared pointer sur this. 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...
 
RenderSystemm_pRenderSystem
 Le RenderSystem, utilisée pour affecter un tampon GPU. 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 ( RenderSystem p_pRenderSystem)
inline

Constructeur.

Paramètres
[in]p_pRenderSystemThe RenderSystem
[in]p_uiCountLe compte des éléments
template<typename T>
virtual Castor3D::CpuBuffer< T >::~CpuBuffer ( )
inlinevirtual

Destructeur.

Documentation des fonctions membres

template<typename T>
virtual void Castor3D::CpuBuffer< T >::AddElement ( T const &  p_tValue)
inlinevirtual

Ajoute une valeur à la fin du tampon.

Paramètres
[in]p_tValueLa valeur
template<typename T>
virtual void Castor3D::CpuBuffer< T >::Assign ( )
inlinevirtual

Définit le status d'affectation à true.

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

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

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

Fonction de nettoyage.

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

Vide le tampon.

template<typename T>
virtual bool Castor3D::CpuBuffer< T >::Create ( )
inlinevirtual

Fonction de création.

Renvoie
true si tout s'est bien passé
template<typename T>
virtual T const* Castor3D::CpuBuffer< T >::data ( ) const
inlinevirtual

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

Renvoie
Le pointeur sur les données
template<typename T>
virtual T* Castor3D::CpuBuffer< T >::data ( )
inlinevirtual

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>
virtual void Castor3D::CpuBuffer< T >::Destroy ( )
inlinevirtual

Fonction de destruction.

template<typename T>
virtual bool Castor3D::CpuBuffer< T >::DoCreateBuffer ( )
protectedpure virtual

Récupère le shared pointer sur this.

Renvoie
Le shared pointer

Fonction d'initialisation

template<typename T>
virtual bool Castor3D::CpuBuffer< T >::Fill ( T const *  p_pBuffer,
ptrdiff_t  p_iSize,
Castor3D::eBUFFER_ACCESS_TYPE  p_eType,
Castor3D::eBUFFER_ACCESS_NATURE  p_eNature 
)
inlinevirtual

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

Paramètres
[in]p_pBufferLes données
[in]p_iSizeTaille du tampon de données
[in]p_eTypeType de transfert
[in]p_eNatureNature du transfert
Renvoie
true si tout s'est bien passé
template<typename T>
virtual uint32_t Castor3D::CpuBuffer< T >::GetCapacity ( ) const
inlinevirtual

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

Renvoie
La taille
template<typename T>
virtual GpuBufferSPtr Castor3D::CpuBuffer< T >::GetGpuBuffer ( ) const
inlinevirtual

Récupère le tampon GPU.

Renvoie
Le tampon GPU
template<typename T>
virtual RenderSystem* Castor3D::CpuBuffer< T >::GetRenderSystem ( ) const
inlinevirtual

Récupère le RenderSystem.

Renvoie
Le RenderSystem
template<typename T>
virtual uint32_t Castor3D::CpuBuffer< T >::GetSize ( ) const
inlinevirtual

Récupère la taille remplie du tampon.

Renvoie
La taille
template<typename T>
virtual bool Castor3D::CpuBuffer< T >::Initialise ( eBUFFER_ACCESS_TYPE  p_eType,
eBUFFER_ACCESS_NATURE  p_eNature,
Castor3D::ShaderProgramBaseSPtr  p_pProgram = nullptr 
)
inlinevirtual

Fonction d'initialisation, initialise le GPU tampon.

Paramètres
[in]p_eTypeType d'accès du tampon
[in]p_eNatureNature d'accès du tampon
[in]p_pProgramLe programme shader
template<typename T>
virtual bool Castor3D::CpuBuffer< T >::IsAssigned ( ) const
inlinevirtual

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

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

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

Renvoie
Le statut de suppression
template<typename T>
virtual T* Castor3D::CpuBuffer< T >::Lock ( uint32_t  p_uiOffset,
uint32_t  p_uiCount,
uint32_t  p_uiFlags 
)
inlinevirtual

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

Remarques
Mappe de tampon[p_uiOffset*sizeof( T )] à tampon[(p_uiOffset+p_uiSize-1) * sizeof( T )]
Paramètres
[in]p_uiOffsetL'offset de départ
[in]p_uiCountLe nombre d'éléments à mapper
[in]p_uiFlagsLes flags de lock
Renvoie
L'adresse du tampon mappé
template<typename T>
virtual void Castor3D::CpuBuffer< T >::Reserve ( uint32_t  p_uiIncrement)
inlinevirtual

Augmente la taille allouée du tampon.

Paramètres
[in]p_uiIncrementL'incrément de taille
template<typename T>
virtual void Castor3D::CpuBuffer< T >::Resize ( uint32_t  p_uiNewSize)
inlinevirtual

Définit la taille allouée du tampon.

Paramètres
[in]p_uiNewSizeLa nouvelle taille
template<typename T>
virtual void Castor3D::CpuBuffer< T >::SetElement ( uint32_t  p_uiIndex,
T const &  p_tValue 
)
inlinevirtual

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

Paramètres
[in]p_uiIndexL'index
[in]p_tValueLa valeur
template<typename T>
virtual void Castor3D::CpuBuffer< T >::Unassign ( )
inlinevirtual

Définit le status d'affectation à false.

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

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

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

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

Les données du tampon.

template<typename T>
bool Castor3D::CpuBuffer< T >::m_bAssigned
protected

Dit que le tampon s'est vu affecter un tampon GPU.

template<typename T>
bool Castor3D::CpuBuffer< T >::m_bToDelete
protected

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

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

Le tampon GPU.

template<typename T>
RenderSystem* Castor3D::CpuBuffer< T >::m_pRenderSystem
protected

Le RenderSystem, utilisée pour affecter un tampon GPU.

La taille sauvegardée, afin de toujours l'avoir après un clear

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 :