From 305de33200f2d998af756f7e30d2fdb5f9ffa5c6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bel=C3=A9n=20Albeza?= Date: Wed, 2 Oct 2024 16:10:56 +0200 Subject: [PATCH] fix zoom drawing glitch (rust) --- frontend/src/app/main/ui/workspace/viewport.cljs | 4 ++-- frontend/src/app/render_v2/rs.cljs | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index be3d0627d2..6dfc735b6e 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -281,9 +281,9 @@ (swap! canvas-set? true)))))) ;; redraw when vbox or shapes change (mf/with-effect - [vbox' base-objects canvas-set? zoom] + [vbox base-objects canvas-set? zoom] (when @canvas-set? - (render-v2/draw-canvas vbox' zoom base-objects)))) + (render-v2/draw-canvas vbox zoom base-objects)))) (hooks/setup-dom-events zoom disable-paste in-viewport? workspace-read-only? drawing-tool drawing-path?) (hooks/setup-viewport-size vport viewport-ref) diff --git a/frontend/src/app/render_v2/rs.cljs b/frontend/src/app/render_v2/rs.cljs index f5aa21debc..234bdeaabf 100644 --- a/frontend/src/app/render_v2/rs.cljs +++ b/frontend/src/app/render_v2/rs.cljs @@ -22,13 +22,13 @@ reset-canvas (gobj/get ^js internal-module "_reset_canvas") scale (gobj/get ^js internal-module "_scale")] - (reset-canvas gpu-state) - (scale gpu-state zoom zoom) - (translate gpu-state (- (:x vbox)) (- (:y vbox))) - (doseq [shape (vals objects)] - (let [sr (:selrect shape)] - (println "*****" (:x1 sr) (:y1 sr) (:x2 sr) (:y2 sr)) - (draw-rect gpu-state (:x1 sr) (:y1 sr) (:x2 sr) (:y2 sr)))))) + (js/requestAnimationFrame (fn []) + (reset-canvas gpu-state) + (scale gpu-state zoom zoom) + (translate gpu-state (- (:x vbox)) (- (:y vbox))) + (doseq [shape (vals objects)] + (let [sr (:selrect shape)] + (draw-rect gpu-state (:x1 sr) (:y1 sr) (:x2 sr) (:y2 sr))))))) (defn set-canvas [canvas vbox zoom objects]