You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

35 lines
853 B

#ifndef TEXTURE_H
#define TEXTURE_H
#include "graphicsdeclarations.h"
class Texture : public std::enable_shared_from_this<Texture>
{
public:
14 years ago
/// Create a texture, width and height must be a multiple of 2
Texture(int width, int height, int channels, uchar* pixels = NULL);
virtual ~Texture();
/// Enable texture bilinear filter (smooth scaled textures)
13 years ago
virtual void enableBilinearFilter();
/// Get OpenGL texture id
13 years ago
virtual uint getTextureId() const { return m_textureId; }
/// Copy pixels from OpenGL texture
uchar* getPixels();
const Size& getSize() const { return m_size; }
const Size& getGlSize() const { return m_glSize; }
13 years ago
protected:
Texture() { }
uint internalLoadGLTexture(uchar* pixels, int channels, int w, int h);
13 years ago
uint m_textureId;
Size m_size;
Size m_glSize;
};
#endif