mirror of
https://github.com/penpot/penpot.git
synced 2025-04-14 07:51:35 -05:00
fix vbox being nil when calling translate
This commit is contained in:
parent
e0a9f63015
commit
739b8d7c02
2 changed files with 23 additions and 10 deletions
|
@ -130,6 +130,7 @@
|
|||
hover-top-frame-id (mf/use-state nil)
|
||||
frame-hover (mf/use-state nil)
|
||||
active-frames (mf/use-state #{})
|
||||
canvas-set? (mf/use-state false)
|
||||
|
||||
;; REFS
|
||||
[viewport-ref
|
||||
|
@ -269,13 +270,14 @@
|
|||
|
||||
rule-area-size (/ rulers/ruler-area-size zoom)]
|
||||
|
||||
|
||||
(when (render-v2/is-enabled?)
|
||||
(mf/with-effect
|
||||
[canvas-ref base-objects]
|
||||
[canvas-ref vbox' @canvas-set? base-objects]
|
||||
(let [canvas (mf/ref-val canvas-ref)]
|
||||
(p/then (render-v2/init)
|
||||
#(render-v2/set-canvas canvas vbox base-objects)))))
|
||||
(when (and (some? vbox') (not @canvas-set?))
|
||||
(swap! canvas-set? true)
|
||||
(p/then (render-v2/init)
|
||||
#(render-v2/set-canvas canvas vbox' 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)
|
||||
|
|
|
@ -14,6 +14,19 @@
|
|||
[promesa.core :as p]))
|
||||
|
||||
(defonce ^:dynamic internal-module #js {})
|
||||
(defonce ^:dynamic gpu-state #js {})
|
||||
|
||||
(defn draw-canvas [vbox objects]
|
||||
(let [draw_rect (gobj/get ^js internal-module "_draw_rect")
|
||||
translate (gobj/get ^js internal-module "_translate")
|
||||
_ (js/console.log "vbox " (clj->js vbox))
|
||||
scale (gobj/get ^js internal-module "_scale")]
|
||||
|
||||
(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))))))
|
||||
|
||||
(defn set-canvas
|
||||
[canvas vbox objects]
|
||||
|
@ -22,7 +35,6 @@
|
|||
"depth" true
|
||||
"stencil" true
|
||||
"alpha" true})
|
||||
_ (js/console.log "context" context)
|
||||
;; Register the context with emscripten
|
||||
handle (.registerContext gl context {"majorVersion" 2})
|
||||
_ (.makeContextCurrent gl handle)
|
||||
|
@ -35,16 +47,15 @@
|
|||
|
||||
(set! (.-width canvas) (.-clientWidth canvas))
|
||||
(set! (.-height canvas) (.-clientHeight canvas))
|
||||
(set! gpu-state state)
|
||||
|
||||
(translate state (- (:x vbox)) (- (:y vbox)))
|
||||
(doseq [shape (vals objects)]
|
||||
(let [sr (:selrect shape)]
|
||||
(println "-----" (:x1 sr) (:y1 sr) (:x2 sr) (:y2 sr))
|
||||
(draw_rect state (:x1 sr) (:y1 sr) (:x2 sr) (:y2 sr))))
|
||||
(draw-canvas vbox objects)
|
||||
|
||||
#_(draw_rect state 100 100 500 500)
|
||||
(println "set-canvas ok" (.-width canvas) (.-height canvas))))
|
||||
|
||||
|
||||
|
||||
(defn on-init
|
||||
[module']
|
||||
(set! internal-module module')
|
||||
|
|
Loading…
Add table
Reference in a new issue