/** SGX

The   sss    gggg x   x   
     s      g      x x    Engine
      sss   g  gg   x
         s  g   g  x x          Copyright 1995-2008.
     ssss    gggg x   x         Steven Goodwin. All Rights Reserved.
    
This version has been released under the GNU Public License v2.0.

Please see the license files for details.

File: include/drivers/common/opengl/ogltexture.hpp

*/

#ifndef SGX_OPENGL_TEXTURE
#define SGX_OPENGL_TEXTURE

class CSGXOpenGLSurface : public CSGXSurface {
public:
	CSGXOpenGLSurface(const tUINT32 width, const tUINT32 height, const CImageData::tFormat format, void *bitmap, const CSGXSurface::tReason reason);
	virtual ~CSGXOpenGLSurface();

	
	virtual void	set() const;
	virtual void	setRegion(const tUINT32 region);
	virtual void	setRegion(const sgxUV &uv);	
	virtual void	setWrapped(const tWrapped wrapped);
	virtual void	rebuild(void *pBitmap=NULL);
	virtual tBOOL	lock(CImageData &img);

	virtual tBOOL	setTextureProperty(const sgxString &property, const sgxTexturePropertyParams *pParams);

	// Our property functions can be public because only the driver
	// knows about them
	sgxOpenGLTextureProperty	*m_pProperty;

private:
	GLuint			m_id;
	GLenum			m_GL_format;
};

#endif /* SGX_OPENGL_TEXTURE */
