mirror of
https://github.com/edubart/otclient.git
synced 2025-05-03 11:09:20 +02:00
35 lines
853 B
C++
35 lines
853 B
C++
#ifndef TEXTURE_H
|
|
#define TEXTURE_H
|
|
|
|
#include "graphicsdeclarations.h"
|
|
|
|
class Texture : public std::enable_shared_from_this<Texture>
|
|
{
|
|
public:
|
|
/// 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)
|
|
virtual void enableBilinearFilter();
|
|
|
|
/// Get OpenGL texture id
|
|
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; }
|
|
|
|
protected:
|
|
Texture() { }
|
|
uint internalLoadGLTexture(uchar* pixels, int channels, int w, int h);
|
|
|
|
uint m_textureId;
|
|
Size m_size;
|
|
Size m_glSize;
|
|
};
|
|
|
|
#endif
|