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
00013 inline
00014 GLTexture2D *createTexture2D( const int unit, const int w, const int h, const GLenum format= GL_RGBA,
00015 const GLenum data_format= GL_RGBA, const GLenum data_type= GL_UNSIGNED_BYTE )
00016 {
00017 return GLManager<GLTexture2D>::manager().insert(
00018 new GLTexture2D(unit, w, h, format, data_format, data_type) );
00019 }
00020
00021
00022 inline
00023 GLTexture2D *createTexture2D( const int unit, const HDRImage *image, const GLenum format= GL_RGBA32F,
00024 const GLenum data_format= GL_RGBA, const GLenum data_type= GL_FLOAT )
00025 {
00026 return GLManager<GLTexture2D>::manager().insert(
00027 new GLTexture2D(unit, image, format, data_format, data_type) );
00028 }
00029
00030
00031 inline
00032 GLTexture2D *createTexture2D( const int unit, const Image *image, const GLenum format= GL_RGBA,
00033 const GLenum data_format= GL_RGBA, const GLenum data_type=GL_UNSIGNED_BYTE )
00034 {
00035 return GLManager<GLTexture2D>::manager().insert(
00036 new GLTexture2D(unit, image, format, data_format, data_type) );
00037 }
00038
00039
00040 inline
00041 GLDepthTexture *createDepthTexture( const int unit, const int w, const int h, const GLenum format= GL_DEPTH_COMPONENT,
00042 const GLenum data_format= GL_DEPTH_COMPONENT, const GLenum data_type= GL_FLOAT)
00043 {
00044 return GLManager<GLDepthTexture>::manager().insert(
00045 new GLDepthTexture(unit, w, h, format, data_format, data_type) );
00046 }
00047
00048
00049
00050 inline
00051 GLTexture2DArray *createTexture2DArray( const int unit, const int w, const int h, const int count, const GLenum format= GL_RGBA,
00052 const GLenum data_format= GL_RGBA, const GLenum data_type= GL_UNSIGNED_BYTE )
00053 {
00054 return GLManager<GLTexture2DArray>::manager().insert(
00055 new GLTexture2DArray(unit, w, h, count, format, data_format, data_type) );
00056 }
00057
00058
00059 inline
00060 GLTexture2DArray *createTexture2DArray( const int unit, const HDRImageArray *images, const GLenum format= GL_RGBA32F,
00061 const GLenum data_format= GL_RGBA, const GLenum data_type= GL_FLOAT )
00062 {
00063 return GLManager<GLTexture2DArray>::manager().insert(
00064 new GLTexture2DArray(unit, images, format, data_format, data_type) );
00065 }
00066
00067
00068 inline
00069 GLTexture2DArray *createTexture2DArray( const int unit, const ImageArray *images, const GLenum format= GL_RGBA,
00070 const GLenum data_format= GL_RGBA, const GLenum data_type=GL_UNSIGNED_BYTE )
00071 {
00072 return GLManager<GLTexture2DArray>::manager().insert(
00073 new GLTexture2DArray(unit, images, format, data_format, data_type) );
00074 }
00075
00076
00077
00078 }
00079
00080 #endif