diff options
Diffstat (limited to 'Runtime/Graphics/Texture.h')
-rw-r--r-- | Runtime/Graphics/Texture.h | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/Runtime/Graphics/Texture.h b/Runtime/Graphics/Texture.h new file mode 100644 index 0000000..ce05ff7 --- /dev/null +++ b/Runtime/Graphics/Texture.h @@ -0,0 +1,59 @@ +#ifndef TEXTURE_H +#define TEXTURE_H + +#include "../Utilities/UtilMacros.h" +#include "OpenGL.h" +#include "ImageData.h" + +enum TextureFormat +{ + TextureFormat_DepthComponent, + TextureFormat_Red, + TextureFormat_Green, + TextureFormat_Blue, + TextureFormat_Alpha, + TextureFormat_Rgb, + TextureFormat_Rgba, +}; + +enum TextureWrap +{ + TextureWrap_Clamp, + TextureWrap_Repeat, +}; + +enum TextureFilter +{ + TextureFilter_Nearest, + TextureFilter_Bilinear, + TextureFilter_Trilinear, +}; + +class Texture +{ +public: + Texture(ImageData* imgData, TextureFormat format); + Texture(ImageData* imgData, TextureFormat format, TextureWrap wrap, TextureFilter filter); + Texture(); + ~Texture(); + + GET(int, Width, m_Width); + GET(int, Height, m_Height); + + GET(TextureFilter, Filter, m_Filter); + GET(TextureWrap, Wrap, m_Wrap); + + GET(GLint, Handle, m_Handle); + +protected: + GLint m_Handle; + int m_Width, m_Height; + TextureFilter m_Filter; + TextureWrap m_Wrap; + +}; + +Texture* CreateTexture(ImageData* imgData, TextureFormat format); +Texture* CreateTexture(ImageData* imgData, TextureFormat format, TextureWrap wrap, TextureFilter filter); + +#endif
\ No newline at end of file |