00001 #ifndef X3DTK_GL_IMAGETEXTURE_H 00002 #define X3DTK_GL_IMAGETEXTURE_H 00003 00004 #include "GL_X3DTexture2DNode.h" 00005 #include <map> 00006 00007 namespace X3DTK { 00008 namespace GL { 00009 00010 struct TexInfo 00011 { 00012 GLuint texName; 00013 float textureTransform[16]; 00014 unsigned short refCount; 00015 }; 00016 00017 class ImageTexture; 00018 00024 class ImageTexture : public X3DTexture2DNode 00025 { 00026 public: 00028 ImageTexture(); 00030 virtual ~ImageTexture(); 00031 00033 inline const GLuint &getTexName() const {return _texName;}; 00035 const float (&getTextureTransform() const)[16] {return _textureTransform;}; 00036 00038 virtual void update(); 00039 00040 private: 00042 GLuint _texName; 00043 static std::map<SFString, TexInfo> _texNameMap; 00045 float _textureTransform[16]; 00046 }; 00047 00048 } 00049 } 00050 00051 #endif