0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-03-12 07:41:43 -05:00

WIP refactor rerender render-v2

This commit is contained in:
Alejandro Alonso 2024-10-02 12:01:49 +02:00
parent 5f8d56b366
commit dd9185e058
22 changed files with 50 additions and 45 deletions

View file

@ -74,7 +74,6 @@
[app.main.repo :as rp] [app.main.repo :as rp]
[app.main.streams :as ms] [app.main.streams :as ms]
[app.main.worker :as uw] [app.main.worker :as uw]
[app.renderer :as renderer]
[app.util.dom :as dom] [app.util.dom :as dom]
[app.util.globals :as ug] [app.util.globals :as ug]
[app.util.http :as http] [app.util.http :as http]

View file

@ -48,7 +48,7 @@
[app.main.ui.workspace.viewport.utils :as utils] [app.main.ui.workspace.viewport.utils :as utils]
[app.main.ui.workspace.viewport.viewport-ref :refer [create-viewport-ref]] [app.main.ui.workspace.viewport.viewport-ref :refer [create-viewport-ref]]
[app.main.ui.workspace.viewport.widgets :as widgets] [app.main.ui.workspace.viewport.widgets :as widgets]
[app.renderer :as renderer] [app.render-v2 :as render-v2]
[app.util.debug :as dbg] [app.util.debug :as dbg]
[beicon.v2.core :as rx] [beicon.v2.core :as rx]
[promesa.core :as p] [promesa.core :as p]
@ -270,12 +270,12 @@
rule-area-size (/ rulers/ruler-area-size zoom)] rule-area-size (/ rulers/ruler-area-size zoom)]
(when (renderer/is-enabled?) (when (render-v2/is-enabled?)
(mf/with-effect (mf/with-effect
[canvas-ref] [canvas-ref]
(let [canvas (mf/ref-val canvas-ref)] (let [canvas (mf/ref-val canvas-ref)]
(p/then (renderer/init) (p/then (render-v2/init)
#(renderer/set-canvas canvas vbox base-objects))))) #(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-dom-events zoom disable-paste in-viewport? workspace-read-only? drawing-tool drawing-path?)
(hooks/setup-viewport-size vport viewport-ref) (hooks/setup-viewport-size vport viewport-ref)
@ -318,8 +318,8 @@
:layout layout :layout layout
:viewport-ref viewport-ref}])] :viewport-ref viewport-ref}])]
(if (or (contains? cf/flags :renderer-v2-cpp) (if (or (contains? cf/flags :render-v2-v2-cpp)
(contains? cf/flags :renderer-v2-rs)) (contains? cf/flags :render-v2-v2-rs))
[:canvas {:id "render" [:canvas {:id "render"
:ref canvas-ref :ref canvas-ref
:class (stl/css :render-shapes) :class (stl/css :render-shapes)

View file

@ -0,0 +1,38 @@
;; This Source Code Form is subject to the terms of the Mozilla Public
;; License, v. 2.0. If a copy of the MPL was not distributed with this
;; file, You can obtain one at http://mozilla.org/MPL/2.0/.
;;
;; Copyright (c) KALEIDOS INC
(ns app.render-v2
(:require
[app.config :as cf]
[app.render-v2.cpp :as render-v2-cpp]
[app.render-v2.rs :as render-v2-rs]))
(defn is-enabled?
[]
(or (contains? cf/flags :render-v2-cpp)
(contains? cf/flags :render-v2-rs)))
(defn init
[]
(cond
;; CPP
(contains? cf/flags :render-v2-cpp)
(render-v2-cpp/init)
;; Rust
(contains? cf/flags :render-v2-rs)
(render-v2-rs/init)))
(defn set-canvas
[canvas vbox base-objects]
(cond
;; CPP
(contains? cf/flags :render-v2-cpp)
(render-v2-cpp/set-canvas canvas)
;; Rust
(contains? cf/flags :render-v2-rs)
(render-v2-rs/set-canvas canvas vbox base-objects)))

View file

@ -4,9 +4,9 @@
;; ;;
;; Copyright (c) KALEIDOS INC ;; Copyright (c) KALEIDOS INC
(ns app.renderer.cpp (ns app.render-v2.cpp
(:require (:require
["./cpp.js" :as renderer] ["./cpp.js" :as render-v2]
[beicon.v2.core :as rx] [beicon.v2.core :as rx]
[potok.v2.core :as ptk] [potok.v2.core :as ptk]
[promesa.core :as p])) [promesa.core :as p]))
@ -26,4 +26,4 @@
(defn init (defn init
[] []
(p/then (renderer) #(on-init %))) (p/then (render-v2) #(on-init %)))

View file

@ -4,9 +4,9 @@
;; ;;
;; Copyright (c) KALEIDOS INC ;; Copyright (c) KALEIDOS INC
(ns app.renderer.rs (ns app.render-v2.rs
(:require (:require
["./rs.js" :as renderer] ["./rs.js" :as render-v2]
[app.config :as cf] [app.config :as cf]
[beicon.v2.core :as rx] [beicon.v2.core :as rx]
[goog.object :as gobj] [goog.object :as gobj]
@ -52,4 +52,4 @@
(defn init (defn init
[] []
(p/then (renderer) #(on-init %))) (p/then (render-v2) #(on-init %)))

View file

@ -1,32 +0,0 @@
(ns app.renderer
(:require
[app.config :as cf]
[app.renderer.cpp :as renderer-cpp]
[app.renderer.rs :as renderer-rs]))
(defn is-enabled?
[]
(or (contains? cf/flags :renderer-v2-cpp)
(contains? cf/flags :renderer-v2-rs)))
(defn init
[]
(cond
;; CPP
(contains? cf/flags :renderer-v2-cpp)
(renderer-cpp/init)
;; Rust
(contains? cf/flags :renderer-v2-rs)
(renderer-rs/init)))
(defn set-canvas
[canvas vbox base-objects]
(cond
;; CPP
(contains? cf/flags :renderer-v2-cpp)
(renderer-cpp/set-canvas canvas)
;; Rust
(contains? cf/flags :renderer-v2-rs)
(renderer-rs/set-canvas canvas vbox base-objects)))