Eulerian Smoke Simulation on the GPU
|
00001 #ifndef __TEXTURE_2D_H__ 00002 #define __TEXTURE_2D_H__ 00003 00004 //--------------------------------------------------------------------- 00007 //--------------------------------------------------------------------- 00008 00009 #include "Texture.h" 00010 00018 class Texture2D : public Texture 00019 { 00020 public: 00034 Texture2D( 00035 GLenum _target, 00036 int _width, 00037 int _height, 00038 GLint _internalFormat, 00039 GLenum _format, 00040 GLenum _dataType, 00041 GLenum _minFilter, 00042 GLenum _magFilter, 00043 GLenum _wrapMode, 00044 int _samplerIndex, 00045 GLint _mipLevel = 0, 00046 void* _data = 0 00047 ); 00048 00058 bool write( 00059 GLint _mipLevel, 00060 GLint _xOffset, 00061 GLint _yOffset, 00062 GLsizei _width, 00063 GLsizei _height, 00064 GLenum _format, 00065 GLenum _type, 00066 void* _data 00067 ); 00068 00078 bool writeFromPBO( 00079 GLint _mipLevel, 00080 GLint _xOffset, 00081 GLint _yOffset, 00082 GLsizei _width, 00083 GLsizei _height, 00084 GLenum _format, 00085 GLenum _type, 00086 GLuint _pboHandle 00087 ); 00088 00092 bool loadImage( 00093 const std::string &_fileName, 00094 GLint _mipLevel 00095 ); 00096 00098 inline GLsizei getWidth() const {return m_width;} 00100 inline GLsizei getHeight() const {return m_height;} 00101 00102 private: 00104 GLsizei m_width; 00106 GLsizei m_height; 00107 }; 00108 00109 #endif // __TEXTURE_2D_H__