diff options
author | chai <chaifix@163.com> | 2020-10-19 09:13:58 +0800 |
---|---|---|
committer | chai <chaifix@163.com> | 2020-10-19 09:13:58 +0800 |
commit | f0807fc44dde14531759306317611bab87c8fccf (patch) | |
tree | 6e78fed61c16a70cda5fa732635f89f9faac9720 /Runtime/Graphics/Texture.h | |
parent | 639b34294ffc20721c66db46e59e07d9100ac4b8 (diff) |
+gamelab proj
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 |