From 3bddaf509d4ea8d22e8e16d462bc2bb035be4bf4 Mon Sep 17 00:00:00 2001 From: checkraisefold Date: Sun, 21 Jul 2024 11:33:05 -0700 Subject: [PATCH] fix: Textures provided through the pattern language not rendering in the 3D visualizer (#1819) ### Problem description Because of `s_drawTexture` never being set to true, textures rarely or never drew in the 3D visualizer. ### Implementation description Set `s_drawTexture` to true when correct (valid texture file/object). --- .../source/content/pl_visualizers/3d_model.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/plugins/visualizers/source/content/pl_visualizers/3d_model.cpp b/plugins/visualizers/source/content/pl_visualizers/3d_model.cpp index 3e958b547..be5bad1fd 100644 --- a/plugins/visualizers/source/content/pl_visualizers/3d_model.cpp +++ b/plugins/visualizers/source/content/pl_visualizers/3d_model.cpp @@ -634,10 +634,12 @@ namespace hex::plugin::visualizers { if (s_renderingWindowSize.x <= 0 || s_renderingWindowSize.y <= 0) s_renderingWindowSize = { minSize, minSize }; - if (!textureFile.empty()) + if (!textureFile.empty()) { s_texturePath = textureFile; - else + s_drawTexture = true; + } else { s_drawTexture = false; + } s_renderingWindowSize.x = std::max(s_renderingWindowSize.x, minSize); s_renderingWindowSize.y = std::max(s_renderingWindowSize.y, minSize); @@ -795,6 +797,9 @@ namespace hex::plugin::visualizers { if (s_shouldUpdateTexture) { s_shouldUpdateTexture = false; s_modelTexture = ImGuiExt::Texture::fromImage(s_texturePath, ImGuiExt::Texture::Filter::Nearest); + if (s_modelTexture.isValid()) { + s_drawTexture = true; + } } if (s_drawTexture)