summaryrefslogtreecommitdiff
path: root/Runtime/Graphics/Texture.h
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2020-10-19 09:13:58 +0800
committerchai <chaifix@163.com>2020-10-19 09:13:58 +0800
commitf0807fc44dde14531759306317611bab87c8fccf (patch)
tree6e78fed61c16a70cda5fa732635f89f9faac9720 /Runtime/Graphics/Texture.h
parent639b34294ffc20721c66db46e59e07d9100ac4b8 (diff)
+gamelab proj
Diffstat (limited to 'Runtime/Graphics/Texture.h')
-rw-r--r--Runtime/Graphics/Texture.h59
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