From bde4a9f40bb4af39270a124d5ef9571a83305d0a Mon Sep 17 00:00:00 2001 From: Dan Goodliffe Date: Sat, 30 Jan 2021 20:36:42 +0000 Subject: Restructure to allow a resource path and testing --- gfx/models/texture.cpp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) (limited to 'gfx/models/texture.cpp') diff --git a/gfx/models/texture.cpp b/gfx/models/texture.cpp index bc80a1c..342f890 100644 --- a/gfx/models/texture.cpp +++ b/gfx/models/texture.cpp @@ -1,18 +1,14 @@ #include "texture.h" #include "stb_image.h" #include -#include +#include +#include Cache Texture::cachedTexture; -Texture::Texture(const std::string & fileName) : m_texture {} +Texture::Texture(const std::filesystem::path & fileName) : m_texture {} { - int width, height, numComponents; - unsigned char * data = stbi_load((fileName).c_str(), &width, &height, &numComponents, STBI_rgb_alpha); - - if (!data) { - throw std::runtime_error {"Unable to load texture: " + fileName}; - } + const Image tex {Resource::mapPath(fileName).c_str(), STBI_rgb_alpha}; glGenTextures(1, &m_texture); glBindTexture(GL_TEXTURE_2D, m_texture); @@ -22,8 +18,7 @@ Texture::Texture(const std::string & fileName) : m_texture {} glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, data); - stbi_image_free(data); + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, tex.width, tex.height, 0, GL_RGBA, GL_UNSIGNED_BYTE, tex.data.data()); } Texture::~Texture() -- cgit v1.2.3