Ogre::TexturePtr Class Reference

Specialisation of SharedPtr to allow SharedPtr to be assigned to TexturePtr. More...

#include <OgreTexture.h>

Inheritance diagram for Ogre::TexturePtr:

Inheritance graph
[legend]

List of all members.

Public Member Functions

 TexturePtr ()
 TexturePtr (Texture *rep)
 TexturePtr (const TexturePtr &r)
 TexturePtr (const ResourcePtr &r)
TexturePtroperator= (const ResourcePtr &r)
 Operator used to convert a ResourcePtr to a TexturePtr.
T & operator * () const
T * operator-> () const
T * get () const
void bind (T *rep, SharedPtrFreeMethod freeMethod=SPFM_DELETE)
 Binds rep to the SharedPtr.
bool unique () const
unsigned int useCount () const
unsigned int * useCountPointer () const
T * getPointer () const
SharedPtrFreeMethod freeMethod () const
bool isNull (void) const
void setNull (void)

Protected Member Functions

void release (void)
virtual void destroy (void)
virtual void swap (SharedPtr< T > &other)

Protected Attributes

T * pRep
unsigned int * pUseCount
SharedPtrFreeMethod useFreeMethod


Detailed Description

Specialisation of SharedPtr to allow SharedPtr to be assigned to TexturePtr.

Note:
Has to be a subclass since we need operator=. We could templatise this instead of repeating per Resource subclass, except to do so requires a form VC6 does not support i.e. ResourceSubclassPtr<T> : public SharedPtr<T>

Definition at line 412 of file OgreTexture.h.


Constructor & Destructor Documentation

Ogre::TexturePtr::TexturePtr (  ) 

Definition at line 415 of file OgreTexture.h.

Ogre::TexturePtr::TexturePtr ( Texture rep  )  [explicit]

Definition at line 416 of file OgreTexture.h.

Ogre::TexturePtr::TexturePtr ( const TexturePtr r  ) 

Definition at line 417 of file OgreTexture.h.

Ogre::TexturePtr::TexturePtr ( const ResourcePtr r  ) 

Definition at line 418 of file OgreTexture.h.

References Ogre::SharedPtr< T >::getPointer(), OGRE_COPY_AUTO_SHARED_MUTEX, OGRE_LOCK_MUTEX, OGRE_MUTEX_CONDITIONAL, and Ogre::SharedPtr< T >::useCountPointer().


Member Function Documentation

TexturePtr& Ogre::TexturePtr::operator= ( const ResourcePtr r  ) 

Operator used to convert a ResourcePtr to a TexturePtr.

Definition at line 435 of file OgreTexture.h.

References Ogre::SharedPtr< T >::getPointer(), Ogre::SharedPtr< T >::isNull(), OGRE_COPY_AUTO_SHARED_MUTEX, OGRE_LOCK_MUTEX, OGRE_MUTEX_CONDITIONAL, and Ogre::SharedPtr< T >::useCountPointer().

template<class T>
T& Ogre::SharedPtr< T >::operator * (  )  const [inherited]

Definition at line 151 of file OgreSharedPtr.h.

template<class T>
T* Ogre::SharedPtr< T >::operator-> (  )  const [inherited]

Definition at line 152 of file OgreSharedPtr.h.

template<class T>
T* Ogre::SharedPtr< T >::get ( void   )  const [inherited]

Definition at line 153 of file OgreSharedPtr.h.

Referenced by Ogre::operator!=(), and Ogre::operator==().

template<class T>
void Ogre::SharedPtr< T >::bind ( T *  rep,
SharedPtrFreeMethod  freeMethod = SPFM_DELETE 
) [inherited]

Binds rep to the SharedPtr.

Remarks:
Assumes that the SharedPtr is uninitialised!

Definition at line 159 of file OgreSharedPtr.h.

template<class T>
bool Ogre::SharedPtr< T >::unique (  )  const [inherited]

Definition at line 168 of file OgreSharedPtr.h.

template<class T>
unsigned int Ogre::SharedPtr< T >::useCount (  )  const [inherited]

Definition at line 169 of file OgreSharedPtr.h.

template<class T>
unsigned int* Ogre::SharedPtr< T >::useCountPointer (  )  const [inherited]

Definition at line 170 of file OgreSharedPtr.h.

Referenced by Ogre::CompositorPtr::CompositorPtr(), Ogre::FontPtr::FontPtr(), Ogre::GpuProgramPtr::GpuProgramPtr(), Ogre::HighLevelGpuProgramPtr::HighLevelGpuProgramPtr(), Ogre::MaterialPtr::MaterialPtr(), operator=(), Ogre::SkeletonPtr::operator=(), Ogre::PatchMeshPtr::operator=(), Ogre::MaterialPtr::operator=(), Ogre::HighLevelGpuProgramPtr::operator=(), Ogre::GpuProgramPtr::operator=(), Ogre::FontPtr::operator=(), Ogre::CompositorPtr::operator=(), Ogre::PatchMeshPtr::PatchMeshPtr(), Ogre::SharedPtr< Ogre::PatchMesh >::SharedPtr(), Ogre::SkeletonPtr::SkeletonPtr(), and TexturePtr().

template<class T>
T* Ogre::SharedPtr< T >::getPointer (  )  const [inherited]

Definition at line 172 of file OgreSharedPtr.h.

Referenced by Ogre::CompositorPtr::CompositorPtr(), Ogre::FontPtr::FontPtr(), Ogre::GpuProgramPtr::GpuProgramPtr(), Ogre::HighLevelGpuProgramPtr::HighLevelGpuProgramPtr(), Ogre::MaterialPtr::MaterialPtr(), operator=(), Ogre::SkeletonPtr::operator=(), Ogre::PatchMeshPtr::operator=(), Ogre::MaterialPtr::operator=(), Ogre::HighLevelGpuProgramPtr::operator=(), Ogre::GpuProgramPtr::operator=(), Ogre::FontPtr::operator=(), Ogre::CompositorPtr::operator=(), Ogre::PatchMeshPtr::PatchMeshPtr(), Ogre::SharedPtr< Ogre::PatchMesh >::SharedPtr(), Ogre::SkeletonPtr::SkeletonPtr(), and TexturePtr().

template<class T>
SharedPtrFreeMethod Ogre::SharedPtr< T >::freeMethod (  )  const [inherited]

Definition at line 173 of file OgreSharedPtr.h.

Referenced by Ogre::SharedPtr< Ogre::PatchMesh >::bind(), and Ogre::SharedPtr< Ogre::PatchMesh >::SharedPtr().

template<class T>
bool Ogre::SharedPtr< T >::isNull ( void   )  const [inherited]

Definition at line 175 of file OgreSharedPtr.h.

Referenced by operator=(), Ogre::SkeletonPtr::operator=(), Ogre::PatchMeshPtr::operator=(), Ogre::MaterialPtr::operator=(), Ogre::HighLevelGpuProgramPtr::operator=(), Ogre::GpuProgramPtr::operator=(), Ogre::FontPtr::operator=(), and Ogre::CompositorPtr::operator=().

template<class T>
void Ogre::SharedPtr< T >::setNull ( void   )  [inherited]

Definition at line 177 of file OgreSharedPtr.h.

template<class T>
void Ogre::SharedPtr< T >::release ( void   )  [protected, inherited]

Definition at line 189 of file OgreSharedPtr.h.

Referenced by Ogre::SharedPtr< Ogre::PatchMesh >::setNull(), and Ogre::SharedPtr< Ogre::PatchMesh >::~SharedPtr().

template<class T>
virtual void Ogre::SharedPtr< T >::destroy ( void   )  [protected, virtual, inherited]

Reimplemented in Ogre::MeshPtr.

Definition at line 215 of file OgreSharedPtr.h.

Referenced by Ogre::SharedPtr< Ogre::PatchMesh >::release().

template<class T>
virtual void Ogre::SharedPtr< T >::swap ( SharedPtr< T > &  other  )  [protected, virtual, inherited]

Definition at line 239 of file OgreSharedPtr.h.

Referenced by Ogre::SharedPtr< Ogre::PatchMesh >::operator=().


Member Data Documentation

template<class T>
T* Ogre::SharedPtr< T >::pRep [protected, inherited]

Definition at line 58 of file OgreSharedPtr.h.

Referenced by Ogre::SharedPtr< Ogre::PatchMesh >::bind(), Ogre::SharedPtr< Ogre::PatchMesh >::destroy(), Ogre::SharedPtr< Ogre::PatchMesh >::get(), Ogre::SharedPtr< Ogre::PatchMesh >::getPointer(), Ogre::SharedPtr< Ogre::PatchMesh >::isNull(), Ogre::SharedPtr< Ogre::PatchMesh >::operator *(), Ogre::SharedPtr< Ogre::PatchMesh >::operator->(), Ogre::SharedPtr< Ogre::PatchMesh >::operator=(), Ogre::SharedPtr< Ogre::PatchMesh >::setNull(), Ogre::SharedPtr< Ogre::PatchMesh >::SharedPtr(), and Ogre::SharedPtr< Ogre::PatchMesh >::swap().

template<class T>
unsigned int* Ogre::SharedPtr< T >::pUseCount [protected, inherited]

Definition at line 59 of file OgreSharedPtr.h.

Referenced by Ogre::SharedPtr< Ogre::PatchMesh >::bind(), Ogre::SharedPtr< Ogre::PatchMesh >::destroy(), Ogre::SharedPtr< Ogre::PatchMesh >::release(), Ogre::SharedPtr< Ogre::PatchMesh >::setNull(), Ogre::SharedPtr< Ogre::PatchMesh >::SharedPtr(), Ogre::SharedPtr< Ogre::PatchMesh >::swap(), Ogre::SharedPtr< Ogre::PatchMesh >::unique(), Ogre::SharedPtr< Ogre::PatchMesh >::useCount(), and Ogre::SharedPtr< Ogre::PatchMesh >::useCountPointer().

template<class T>
SharedPtrFreeMethod Ogre::SharedPtr< T >::useFreeMethod [protected, inherited]

Definition at line 60 of file OgreSharedPtr.h.

Referenced by Ogre::SharedPtr< Ogre::PatchMesh >::bind(), Ogre::SharedPtr< Ogre::PatchMesh >::destroy(), Ogre::SharedPtr< Ogre::PatchMesh >::freeMethod(), Ogre::SharedPtr< Ogre::PatchMesh >::SharedPtr(), and Ogre::SharedPtr< Ogre::PatchMesh >::swap().


The documentation for this class was generated from the following file:

Copyright © 2008 Torus Knot Software Ltd
Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 2.5 License.
Last modified Tue Nov 4 11:10:57 2008