diff --git a/resources/images/fit_camera_dark.svg b/resources/images/fit_camera_dark.svg new file mode 100644 index 000000000..0904169d8 --- /dev/null +++ b/resources/images/fit_camera_dark.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/resources/images/fit_camera_dark_hover.svg b/resources/images/fit_camera_dark_hover.svg new file mode 100644 index 000000000..2ee9361da --- /dev/null +++ b/resources/images/fit_camera_dark_hover.svg @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/src/slic3r/GUI/GLCanvas3D.cpp b/src/slic3r/GUI/GLCanvas3D.cpp index 196cda1ce..919b7e258 100644 --- a/src/slic3r/GUI/GLCanvas3D.cpp +++ b/src/slic3r/GUI/GLCanvas3D.cpp @@ -8374,12 +8374,8 @@ void GLCanvas3D::_render_fit_camera_toolbar() imgui.begin(_L("Fit camera"), ImGuiWindowFlags_NoResize | ImGuiWindowFlags_NoBackground | ImGuiWindowFlags_NoScrollbar | ImGuiWindowFlags_NoMove | ImGuiWindowFlags_NoTitleBar | ImGuiWindowFlags_NoCollapse);// - ImTextureID normal_id = m_gizmos.get_icon_texture_id(GLGizmosManager::MENU_ICON_NAME::IC_FIT_CAMERA); - if (normal_id == 0) { - m_gizmos.init_icon_textures(); - } - normal_id = m_gizmos.get_icon_texture_id(GLGizmosManager::MENU_ICON_NAME::IC_FIT_CAMERA); - ImTextureID hover_id = m_gizmos.get_icon_texture_id(GLGizmosManager::MENU_ICON_NAME::IC_FIT_CAMERA_HOVER); // IC_FIT_CAMERA_HOVER + ImTextureID normal_id = m_gizmos.get_icon_texture_id(m_is_dark ? GLGizmosManager::MENU_ICON_NAME::IC_FIT_CAMERA_DARK : GLGizmosManager::MENU_ICON_NAME::IC_FIT_CAMERA); + ImTextureID hover_id = m_gizmos.get_icon_texture_id(m_is_dark ? GLGizmosManager::MENU_ICON_NAME::IC_FIT_CAMERA_DARK_HOVER : GLGizmosManager::MENU_ICON_NAME::IC_FIT_CAMERA_HOVER); ImGui::PushStyleVar(ImGuiStyleVar_FrameBorderSize, 0.0f); ImGui::PushStyleVar(ImGuiStyleVar_FramePadding, {0, 0}); diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp index 0b933d02d..d59f8aa87 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.cpp @@ -195,8 +195,9 @@ void GLGizmosManager::switch_gizmos_icon_filename() bool GLGizmosManager::init() { - bool result = init_icon_textures(); - if (!result) return result; + if (!m_gizmos.empty()) + return true; + init_icon_textures(); m_background_texture.metadata.filename = m_is_dark ? "toolbar_background_dark.png" : "toolbar_background.png"; m_background_texture.metadata.left = 16; @@ -253,8 +254,12 @@ bool GLGizmosManager::init() return true; } +std::map GLGizmosManager::icon_list = {}; bool GLGizmosManager::init_icon_textures() { + if (icon_list.size() > 0) { + return true; + } ImTextureID texture_id; icon_list.clear(); @@ -288,16 +293,26 @@ bool GLGizmosManager::init_icon_textures() else return false; - if (IMTexture::load_from_svg_file(Slic3r::resources_dir() + "/images/fit_camera.svg", 32, 32, texture_id)) + if (IMTexture::load_from_svg_file(Slic3r::resources_dir() + "/images/fit_camera.svg", 64, 64, texture_id)) icon_list.insert(std::make_pair((int) IC_FIT_CAMERA, texture_id)); else return false; - if (IMTexture::load_from_svg_file(Slic3r::resources_dir() + "/images/fit_camera_hover.svg", 32, 32, texture_id)) + if (IMTexture::load_from_svg_file(Slic3r::resources_dir() + "/images/fit_camera_hover.svg", 64, 64, texture_id)) icon_list.insert(std::make_pair((int) IC_FIT_CAMERA_HOVER, texture_id)); else return false; + if (IMTexture::load_from_svg_file(Slic3r::resources_dir() + "/images/fit_camera_dark.svg", 64, 64, texture_id)) + icon_list.insert(std::make_pair((int) IC_FIT_CAMERA_DARK, texture_id)); + else + return false; + + if (IMTexture::load_from_svg_file(Slic3r::resources_dir() + "/images/fit_camera_dark_hover.svg", 64, 64, texture_id)) + icon_list.insert(std::make_pair((int) IC_FIT_CAMERA_DARK_HOVER, texture_id)); + else + return false; + if (IMTexture::load_from_svg_file(Slic3r::resources_dir() + "/images/text_B.svg", 20, 20, texture_id)) icon_list.insert(std::make_pair((int)IC_TEXT_B, texture_id)); else diff --git a/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp b/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp index 5e3d9161f..bf8518736 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp +++ b/src/slic3r/GUI/Gizmos/GLGizmosManager.hpp @@ -154,7 +154,7 @@ private: void on_set_color_timer(wxTimerEvent& evt); // key MENU_ICON_NAME, value = ImtextureID - std::map icon_list; + static std::map icon_list; bool m_is_dark = false; public: @@ -174,6 +174,8 @@ public: IC_NAME_COUNT, IC_FIT_CAMERA, IC_FIT_CAMERA_HOVER, + IC_FIT_CAMERA_DARK, + IC_FIT_CAMERA_DARK_HOVER, }; explicit GLGizmosManager(GLCanvas3D& parent);