summaryrefslogtreecommitdiff
path: root/Runtime/Graphics/Texture.h
diff options
context:
space:
mode:
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