gKitGL
TextureManager.h
00001 
00002 #ifndef _GKTEXTURE_MANAGER_H
00003 #define _GKTEXTURE_MANAGER_H
00004 
00005 #include "GLManager.h"
00006 #include "GL/GLPlatform.h"
00007 #include "GL/TPTexture.h"
00008 
00009 
00010 namespace gk {
00011 
00012 //! \ingroup openGL
00013 //@{
00014 
00015 //! gestion 'auto' des ressources openGL : pour les textures couleurs.
00016 inline
00017 GLTexture2D *createTexture2D( const int unit, const int w, const int h, const TextureFormat& format= TextureRGBA )
00018 {
00019     return GLManager<GLTexture2D>::manager().insert( 
00020         new GLTexture2D(unit, w, h, format) );
00021 }
00022 
00023 //! gestion 'auto' des ressources openGL : pour les textures couleurs.
00024 inline
00025 GLTexture2D *createTexture2D( const int unit, const HDRImage *image, const TextureFormat& format= TextureRGBA32F )
00026 {
00027     return GLManager<GLTexture2D>::manager().insert(
00028         new GLTexture2D(unit, image, format) );
00029 }
00030 
00031 //! gestion 'auto' des ressources openGL : pour les textures couleurs.
00032 inline
00033 GLTexture2D *createTexture2D( const int unit, const Image *image, const TextureFormat& format= TextureRGBA )
00034 {
00035     return GLManager<GLTexture2D>::manager().insert(
00036         new GLTexture2D(unit, image, format) );
00037 }
00038 
00039 //! gestion 'auto' des ressources openGL : pour les textures profondeur.
00040 inline
00041 GLDepthTexture *createDepthTexture( const int unit, const int w, const int h, const TextureFormat& format= TextureDepth )
00042 {
00043     return GLManager<GLDepthTexture>::manager().insert(
00044         new GLDepthTexture(unit, w, h, format) );
00045 }
00046 
00047     
00048 //! gestion 'auto' des ressources openGL : pour les tableaux de textures 2d.
00049 inline
00050 GLTexture2DArray *createTexture2DArray( const int unit, const int w, const int h, const int count, const TextureFormat& format= TextureRGBA )
00051 {
00052     return GLManager<GLTexture2DArray>::manager().insert(
00053         new GLTexture2DArray(unit, w, h, count, format) );
00054 }
00055 
00056 //! gestion 'auto' des ressources openGL : pour les tableaux de textures 2d.
00057 inline
00058 GLTexture2DArray *createTexture2DArray( const int unit, const HDRImageArray *images, const TextureFormat& format= TextureRGBA32F )
00059 {
00060     return GLManager<GLTexture2DArray>::manager().insert(
00061         new GLTexture2DArray(unit, images, format) );
00062 }
00063     
00064 //! gestion 'auto' des ressources openGL : pour les tableaux de textures 2d.
00065 inline
00066 GLTexture2DArray *createTexture2DArray( const int unit, const ImageArray *images, const TextureFormat& format= TextureRGBA )
00067 {
00068     return GLManager<GLTexture2DArray>::manager().insert(
00069         new GLTexture2DArray(unit, images, format) );
00070 }
00071 
00072 //! \todo other types of textures declared in GL/TPTexture.h
00073 
00074 //@}
00075 }
00076 
00077 #endif
 All Classes Namespaces Functions Variables Typedefs Enumerator Friends