00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef LIBPROCTERCTEXTURE_H
00018 #define LIBPROCTERCTEXTURE_H
00019
00020 #include <libprocter/cthread.h>
00021
00022 namespace libProcTer {
00023
00033 class CTexture : private CCriticalSection {
00034 public:
00036 CTexture();
00038 virtual ~CTexture();
00039
00041 inline unsigned int getW() const
00042 {return m_W;}
00044 inline unsigned int getH() const
00045 {return m_H;}
00047 inline unsigned int getBPP() const
00048 {return m_BPP;}
00049
00051
00052
00057 virtual void lock();
00064 virtual void unlock();
00066
00068
00069
00073 virtual void resize(unsigned int w, unsigned int h, unsigned int bpp=0);
00078 virtual unsigned char *getDataPointer();
00080
00081
00083 typedef CTexture * (*fpTextureCreate)(void);
00084
00096 static void setTextureCreateFunction(fpTextureCreate func);
00097
00104 static fpTextureCreate getTextureCreateFunction();
00105
00106 protected:
00108
00109 unsigned int m_W, m_H, m_BPP;
00111
00113 bool reallocData();
00115 unsigned char *m_Data;
00116
00117 private:
00118 static fpTextureCreate m_TextureCreateFunction;
00119 };
00120
00121 }
00122
00123 #endif