summaryrefslogtreecommitdiff
path: root/gfx/models
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2023-03-16 23:21:25 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2023-03-16 23:21:25 +0000
commit393eba5f9f72fdec566b1d6771d40916793c2bc1 (patch)
treefdd342d5f5b5ea153df75a669d841985b8f1e527 /gfx/models
parentPopulate super texture with fragments (diff)
downloadilt-393eba5f9f72fdec566b1d6771d40916793c2bc1.tar.bz2
ilt-393eba5f9f72fdec566b1d6771d40916793c2bc1.tar.xz
ilt-393eba5f9f72fdec566b1d6771d40916793c2bc1.zip
Allow specifiying the texture type/target
Diffstat (limited to 'gfx/models')
-rw-r--r--gfx/models/texture.cpp16
-rw-r--r--gfx/models/texture.h2
2 files changed, 10 insertions, 8 deletions
diff --git a/gfx/models/texture.cpp b/gfx/models/texture.cpp
index 639ae0f..efc76e1 100644
--- a/gfx/models/texture.cpp
+++ b/gfx/models/texture.cpp
@@ -24,24 +24,24 @@ Texture::Texture(const Image & tex, TextureOptions to) :
Texture::Texture(GLsizei width, GLsizei height, TextureOptions to) : Texture {width, height, nullptr, to} { }
-Texture::Texture(GLsizei width, GLsizei height, const void * data, TextureOptions to)
+Texture::Texture(GLsizei width, GLsizei height, const void * data, TextureOptions to) : type {to.type}
{
- glBindTexture(GL_TEXTURE_2D, m_texture);
+ glBindTexture(type, m_texture);
glPixelStorei(GL_UNPACK_ALIGNMENT, 1);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, to.wrap);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, to.wrap);
+ glTexParameteri(type, GL_TEXTURE_WRAP_S, to.wrap);
+ glTexParameteri(type, GL_TEXTURE_WRAP_T, to.wrap);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, to.minFilter);
- glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, to.magFilter);
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);
+ glTexParameteri(type, GL_TEXTURE_MIN_FILTER, to.minFilter);
+ glTexParameteri(type, GL_TEXTURE_MAG_FILTER, to.magFilter);
+ glTexImage2D(type, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data);
}
void
Texture::bind(GLenum unit) const
{
glActiveTexture(unit);
- glBindTexture(GL_TEXTURE_2D, m_texture);
+ glBindTexture(type, m_texture);
}
void
diff --git a/gfx/models/texture.h b/gfx/models/texture.h
index cc0c07e..ffc9a4a 100644
--- a/gfx/models/texture.h
+++ b/gfx/models/texture.h
@@ -11,6 +11,7 @@ class Image;
struct TextureOptions {
GLint wrap {GL_REPEAT};
GLint minFilter {GL_LINEAR}, magFilter {GL_LINEAR};
+ GLenum type {GL_TEXTURE_2D};
};
class Texture {
@@ -34,4 +35,5 @@ private:
const char * path, short tgaFormat);
glTexture m_texture;
+ GLenum type;
};