diff options
| author | Stanislaw Halik <sthalik@misaki.pl> | 2021-09-26 19:42:36 +0200 | 
|---|---|---|
| committer | Stanislaw Halik <sthalik@misaki.pl> | 2021-09-26 21:10:13 +0200 | 
| commit | f837647d6159941526ac479050bf317ae13a41a1 (patch) | |
| tree | 0f711ed525fc83075f58deee5788cfc1bd3da59a | |
| parent | 69d068a7da4f46eab4e2437b5dbf237b1c1d7bed (diff) | |
video/widget, tracker/pt: skip widget processing in more cases
| -rw-r--r-- | tracker-pt/ftnoir_tracker_pt.cpp | 6 | ||||
| -rw-r--r-- | video/video-widget.hpp | 2 | 
2 files changed, 4 insertions, 4 deletions
| diff --git a/tracker-pt/ftnoir_tracker_pt.cpp b/tracker-pt/ftnoir_tracker_pt.cpp index dabd48b4..2911a217 100644 --- a/tracker-pt/ftnoir_tracker_pt.cpp +++ b/tracker-pt/ftnoir_tracker_pt.cpp @@ -71,10 +71,10 @@ void Tracker_PT::run()          {              const bool preview_visible = check_is_visible(); -            if (preview_visible) +            if (preview_visible && !widget->fresh())                  preview_frame->set_last_frame(*frame); -            point_extractor->extract_points(*frame, *preview_frame, preview_visible, points); +            point_extractor->extract_points(*frame, *preview_frame, preview_visible && !widget->fresh(), points);              point_count.store(points.size(), std::memory_order_relaxed);              const bool success = points.size() >= PointModel::N_POINTS; @@ -99,7 +99,7 @@ void Tracker_PT::run()                  X_CM = point_tracker.pose();              } -            if (preview_visible) +            if (preview_visible && !widget->fresh())              {                  const f fx = pt_camera_info::get_focal_length(info.fov, info.res_x, info.res_y);                  Affine X_MH(mat33::eye(), vec3(s.t_MH_x, s.t_MH_y, s.t_MH_z)); diff --git a/video/video-widget.hpp b/video/video-widget.hpp index bb218c69..4f54b2b9 100644 --- a/video/video-widget.hpp +++ b/video/video-widget.hpp @@ -29,12 +29,12 @@ struct OTR_VIDEO_EXPORT video_widget : QWidget      void resizeEvent(QResizeEvent*) override;      void paintEvent(QPaintEvent*) override;      void draw_image(); +    bool fresh() const;  protected:      mutable QMutex mtx { QMutex::NonRecursive };      QImage texture;      std::vector<unsigned char> vec; -    bool fresh() const;      void set_fresh(bool x);      void set_image(const unsigned char* src, int width, int height, int stride, QImage::Format fmt); | 
