From fe90a88b4d3b6c51e28161ff06bc8f8deb6fb592 Mon Sep 17 00:00:00 2001 From: Filip Sykala - NTB T15p Date: Thu, 13 Oct 2022 15:05:28 +0200 Subject: [PATCH] Log time for loading fonts --- src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp | 14 +++++++++++++- src/slic3r/GUI/Jobs/CreateFontNameImageJob.cpp | 15 +++++++++++++++ src/slic3r/GUI/Jobs/PlaterWorker.hpp | 2 +- 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp b/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp index 80bf6592c..66be8d68a 100644 --- a/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp +++ b/src/slic3r/GUI/Gizmos/GLGizmoEmboss.cpp @@ -34,6 +34,7 @@ #include #include +#include // measure enumeration of fonts // uncomment for easier debug //#define ALLOW_DEBUG_MODE @@ -1294,7 +1295,18 @@ void GLGizmoEmboss::init_face_names() { wxFontEncoding encoding = wxFontEncoding::wxFONTENCODING_SYSTEM; MyFontEnumerator fontEnumerator(encoding); bool fixed_width_only = false; - fontEnumerator.EnumerateFacenames(encoding, fixed_width_only); + + { using namespace std::chrono; + steady_clock::time_point enumerate_start = steady_clock::now(); + ScopeGuard sg([&enumerate_start]() { + steady_clock::time_point enumerate_end = steady_clock::now(); + long long enumerate_duration = duration_cast(enumerate_end - enumerate_start).count(); + BOOST_LOG_TRIVIAL(info) << "OS Fonts Enumeration " << enumerate_duration << "ms"; + }); + + fontEnumerator.EnumerateFacenames(encoding, fixed_width_only); + }// End Time measures + m_face_names.encoding = encoding; std::vector &names = fontEnumerator.m_facenames; std::sort(names.begin(), names.end()); diff --git a/src/slic3r/GUI/Jobs/CreateFontNameImageJob.cpp b/src/slic3r/GUI/Jobs/CreateFontNameImageJob.cpp index 0893cd95b..54172a270 100644 --- a/src/slic3r/GUI/Jobs/CreateFontNameImageJob.cpp +++ b/src/slic3r/GUI/Jobs/CreateFontNameImageJob.cpp @@ -9,6 +9,8 @@ #include "wx/fontenum.h" +#include + using namespace Slic3r; using namespace Slic3r::GUI; @@ -96,6 +98,11 @@ void CreateFontImageJob::process(Ctl &ctl) r->encode(encoder); } +// ability to request new frame after finish rendering +#include "slic3r/GUI/GUI_App.hpp" +#include "slic3r/GUI/Plater.hpp" +#include "slic3r/GUI/GLCanvas3D.hpp" + void CreateFontImageJob::finalize(bool canceled, std::exception_ptr &) { if (m_input.count_opened_font_files) @@ -118,4 +125,12 @@ void CreateFontImageJob::finalize(bool canceled, std::exception_ptr &) // bind default texture GLuint no_texture_id = 0; glsafe(::glBindTexture(target, no_texture_id)); + + // show rendered texture + //wxGetApp().plater()->get_current_canvas3D()->schedule_extra_frame(0); + + BOOST_LOG_TRIVIAL(info) + << "Generate Preview font('" << m_input.font_name << "' id:" << m_input.index << ") " + << "with text: '" << m_input.text << "' " + << "texture_size " << m_input.size.x() << " x " << m_input.size.y(); } \ No newline at end of file diff --git a/src/slic3r/GUI/Jobs/PlaterWorker.hpp b/src/slic3r/GUI/Jobs/PlaterWorker.hpp index c0ae470df..a3559869a 100644 --- a/src/slic3r/GUI/Jobs/PlaterWorker.hpp +++ b/src/slic3r/GUI/Jobs/PlaterWorker.hpp @@ -77,7 +77,7 @@ class PlaterWorker: public Worker { << std::fixed // do not use scientific notations << "Job '" << typeid(*m_job).name() << "' " << "spend " << m_process_duration + finalize_duration << "ms " - << "(process " << m_process_duration << "ms + finalize " << finalize_duration << "ms)" << std::endl; + << "(process " << m_process_duration << "ms + finalize " << finalize_duration << "ms)"; if (eptr) try { std::rethrow_exception(eptr);