00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef GLIFT_EMPTY_TEXTURE_H__
00020 #define GLIFT_EMPTY_TEXTURE_H__
00021
00022 #include "singleTex.h"
00023 #include <GL/glew.h>
00024
00025 namespace glift {
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 class _export_ EmptyTex : public CoreTex
00036 {
00037 public:
00038 EmptyTex();
00039 EmptyTex( GLenum texDimenName, int texUnit );
00040 EmptyTex( const EmptyTex& rhs );
00041 EmptyTex& operator=(const EmptyTex& rhs);
00042 virtual ~EmptyTex();
00043
00044
00045 void texUnit(int t) {m_texUnit = t;}
00046
00047
00048 int texUnit() const {return m_texUnit;}
00049 virtual PBuffGlift* pbuff() const {return NULL; }
00050 virtual gutz::vec3i dimen() const {return gutz::vec3i(); }
00051 virtual bool tryToBindPbuff() const {return false; }
00052
00053
00054 virtual void setTexData( TexData* texData, int mipLevel=0, bool setTexSize=true );
00055 virtual void resetTexState( const VecTexState& texState );
00056 virtual void tryToBindPbuff( bool tryToUsePbuff );
00057 virtual void copyToTex( int mipLevel, const gutz::vec3i& texOrig,
00058 const gutz::vec2i& screenOrig, const gutz::vec2i& copySize );
00059
00060
00061 protected:
00062 virtual void bindDef();
00063 virtual void releaseDef();
00064
00065 private:
00066 int m_texUnit;
00067
00068 void initMembers( int texUnit );
00069 void initMembers( const EmptyTex& rhs );
00070 void checkTexUnit( GLuint texUnit );
00071 };
00072
00073 }
00074
00075 #endif