aboutsummaryrefslogtreecommitdiff
path: root/src/RenderBackend/OpenGL/Texture2D.cpp
diff options
context:
space:
mode:
authordec05eba <dec05eba@protonmail.com>2017-12-28 02:24:34 +0100
committerdec05eba <dec05eba@protonmail.com>2021-11-18 15:21:48 +0100
commitcf1aee508dca530141bda66277ac5075fcec1f70 (patch)
tree0b058ce11f8e85374d6e23be3d67bd355fe17cff /src/RenderBackend/OpenGL/Texture2D.cpp
parentff4daae11db0ab811cac66e262d289a4107bba4a (diff)
Add texture loading (not usage) using SOIL
Add soil add dependency
Diffstat (limited to 'src/RenderBackend/OpenGL/Texture2D.cpp')
-rw-r--r--src/RenderBackend/OpenGL/Texture2D.cpp26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/RenderBackend/OpenGL/Texture2D.cpp b/src/RenderBackend/OpenGL/Texture2D.cpp
new file mode 100644
index 0000000..07d807a
--- /dev/null
+++ b/src/RenderBackend/OpenGL/Texture2D.cpp
@@ -0,0 +1,26 @@
+#include "../../../include/RenderBackend/OpenGL/Texture2D.hpp"
+#include "../../../include/RenderBackend/OpenGL/Image.hpp"
+#include "../../../include/RenderBackend/OpenGL/opengl.hpp"
+#include <cassert>
+
+namespace amalgine
+{
+ Texture2D::Texture2D(Image *image)
+ {
+ assert(image);
+ glGenTextures(1, &textureId);
+ glBindTexture(GL_TEXTURE_2D, textureId);
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, image->getWidth(), image->getHeight(), 0, GL_RGB, GL_UNSIGNED_BYTE, image->getData());
+
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE);
+ glGenerateMipmap(GL_TEXTURE_2D);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR);
+ glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR_MIPMAP_LINEAR);
+ }
+
+ Texture2D::~Texture2D()
+ {
+ glDeleteTextures(1, &textureId);
+ }
+}