From 507b2c4f5958054c1d726548a95455930045e964 Mon Sep 17 00:00:00 2001 From: Dan Paulat Date: Thu, 6 Oct 2022 00:40:36 -0500 Subject: [PATCH] Removing unused texture loading routines from GL context --- scwx-qt/source/scwx/qt/gl/gl_context.cpp | 110 +---------------------- scwx-qt/source/scwx/qt/gl/gl_context.hpp | 1 - 2 files changed, 2 insertions(+), 109 deletions(-) diff --git a/scwx-qt/source/scwx/qt/gl/gl_context.cpp b/scwx-qt/source/scwx/qt/gl/gl_context.cpp index e7657b03..d0e0fd80 100644 --- a/scwx-qt/source/scwx/qt/gl/gl_context.cpp +++ b/scwx-qt/source/scwx/qt/gl/gl_context.cpp @@ -1,17 +1,8 @@ #include -#include #include #include #include -#pragma warning(push, 0) -#pragma warning(disable : 4714) -#include -#include -#include -#include -#pragma warning(pop) - namespace scwx { namespace qt @@ -20,7 +11,6 @@ namespace gl { static const std::string logPrefix_ = "scwx::qt::gl::gl_context"; -static const auto logger_ = scwx::util::Logger::Create(logPrefix_); class GlContext::Impl { @@ -29,15 +19,12 @@ public: gl_ {}, shaderProgramMap_ {}, shaderProgramMutex_ {}, - textureMap_ {}, textureAtlas_ {GL_INVALID_INDEX}, textureMutex_ {} { } ~Impl() {} - GLuint CreateTexture(const std::string& texturePath); - gl::OpenGLFunctions gl_; std::unordered_map, @@ -46,9 +33,8 @@ public: shaderProgramMap_; std::mutex shaderProgramMutex_; - std::unordered_map textureMap_; - GLuint textureAtlas_; - std::mutex textureMutex_; + GLuint textureAtlas_; + std::mutex textureMutex_; }; GlContext::GlContext() : p(std::make_unique()) {} @@ -99,98 +85,6 @@ GLuint GlContext::GetTextureAtlas() return p->textureAtlas_; } -GLuint GlContext::GetTexture(const std::string& texturePath) -{ - GLuint texture = GL_INVALID_INDEX; - - std::unique_lock lock(p->textureMutex_); - - auto it = p->textureMap_.find(texturePath); - - if (it == p->textureMap_.end()) - { - texture = p->CreateTexture(texturePath); - p->textureMap_[texturePath] = texture; - } - else - { - texture = it->second; - } - - return texture; -} - -// TODO: Move to dedicated file -GLuint GlContext::Impl::CreateTexture(const std::string& texturePath) -{ - logger_->warn("Create Texture: {}", texturePath); - - GLuint texture; - - QFile textureFile(texturePath.c_str()); - - textureFile.open(QIODevice::ReadOnly); - - if (!textureFile.isOpen()) - { - logger_->error("Could not load texture: {}", texturePath); - return GL_INVALID_INDEX; - } - - boost::iostreams::stream dataStream(textureFile); - - boost::gil::rgba8_image_t image; - - try - { - boost::gil::read_and_convert_image( - dataStream, image, boost::gil::png_tag()); - } - catch (const std::exception& ex) - { - logger_->error("Error reading texture: {}", ex.what()); - return GL_INVALID_INDEX; - } - - boost::gil::rgba8_view_t view = boost::gil::view(image); - - std::vector pixelData(view.width() * - view.height()); - - boost::gil::copy_pixels( - view, - boost::gil::interleaved_view(view.width(), - view.height(), - pixelData.data(), - view.width() * - sizeof(boost::gil::rgba8_pixel_t))); - - OpenGLFunctions& gl = gl_; - - gl.glGenTextures(1, &texture); - gl.glBindTexture(GL_TEXTURE_2D, texture); - - // TODO: Change to GL_REPEAT once a texture atlas is used - gl.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); - gl.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); - gl.glTexParameteri( - GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR); - gl.glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); - - gl.glTexImage2D(GL_TEXTURE_2D, - 0, - GL_RGBA, - view.width(), - view.height(), - 0, - GL_RGBA, - GL_UNSIGNED_BYTE, - pixelData.data()); - gl.glGenerateMipmap(GL_TEXTURE_2D); - - return texture; -} - } // namespace gl } // namespace qt } // namespace scwx diff --git a/scwx-qt/source/scwx/qt/gl/gl_context.hpp b/scwx-qt/source/scwx/qt/gl/gl_context.hpp index 69802534..623b5855 100644 --- a/scwx-qt/source/scwx/qt/gl/gl_context.hpp +++ b/scwx-qt/source/scwx/qt/gl/gl_context.hpp @@ -29,7 +29,6 @@ public: const std::string& fragmentPath); GLuint GetTextureAtlas(); - GLuint GetTexture(const std::string& texturePath); private: class Impl;