♻️ Change thumbnail-renderer to rasterizer

This commit is contained in:
Aitor 2023-08-25 11:18:19 +02:00 committed by Andrey Antukh
parent e2812391c4
commit 51a8e8799b
9 changed files with 29 additions and 35 deletions

View file

@ -132,7 +132,7 @@ function readManifest() {
"main": "js/main.js", "main": "js/main.js",
"shared": "js/shared.js", "shared": "js/shared.js",
"worker": "js/worker.js", "worker": "js/worker.js",
"thumbnail-renderer": "js/thumbnail-renderer.js" "rasterizer": "js/rasterizer.js"
}; };
} }
} }
@ -243,9 +243,9 @@ gulp.task("template:render", templatePipeline({
output: paths.output output: paths.output
})); }));
gulp.task("template:thumbnail-renderer", templatePipeline({ gulp.task("template:rasterizer", templatePipeline({
name: "thumbnail-renderer.html", name: "rasterizer.html",
input: paths.resources + "templates/thumbnail-renderer.mustache", input: paths.resources + "templates/rasterizer.mustache",
output: paths.output output: paths.output
})); }));
@ -253,7 +253,7 @@ gulp.task("templates", gulp.series("svg:sprite:icons",
"svg:sprite:cursors", "svg:sprite:cursors",
"template:main", "template:main",
"template:render", "template:render",
"template:thumbnail-renderer")); "template:rasterizer"));
gulp.task("polyfills", function() { gulp.task("polyfills", function() {
return gulp.src(paths.resources + "polyfills/*.js") return gulp.src(paths.resources + "polyfills/*.js")

View file

@ -2,7 +2,7 @@
<html> <html>
<head> <head>
<meta charset="utf-8" /> <meta charset="utf-8" />
<title>Penpot - Thumbnail Renderer</title> <title>Penpot - Rasterizer</title>
<link rel="icon" href="images/favicon.png" /> <link rel="icon" href="images/favicon.png" />
<script> <script>
@ -20,7 +20,7 @@
<body> <body>
{{# manifest}} {{# manifest}}
<script src="{{& shared}}"></script> <script src="{{& shared}}"></script>
<script src="{{& thumbnail-renderer}}"></script> <script src="{{& rasterizer}}"></script>
{{/manifest}} {{/manifest}}
</body> </body>
</html> </html>

View file

@ -31,10 +31,10 @@
:web-worker true :web-worker true
:depends-on #{:shared}} :depends-on #{:shared}}
:thumbnail-renderer :rasterizer
{:entries [app.thumbnail-renderer] {:entries [app.rasterizer]
:depends-on #{:shared} :depends-on #{:shared}
:init-fn app.thumbnail-renderer/init}} :init-fn app.rasterizer/init}}
:compiler-options :compiler-options
{:output-feature-set :es2020 {:output-feature-set :es2020

View file

@ -113,8 +113,8 @@
(normalize-uri (or (obj/get global "penpotPublicURI") (normalize-uri (or (obj/get global "penpotPublicURI")
(obj/get location "origin")))) (obj/get location "origin"))))
(def thumbnail-renderer-uri (def rasterizer-uri
(or (some-> (obj/get global "penpotThumbnailRendererURI") normalize-uri) (or (some-> (obj/get global "penpotRasterizerURI") normalize-uri)
public-uri)) public-uri))
(def worker-uri (def worker-uri

View file

@ -15,8 +15,8 @@
[app.main.data.websocket :as ws] [app.main.data.websocket :as ws]
[app.main.errors] [app.main.errors]
[app.main.features :as feat] [app.main.features :as feat]
[app.main.rasterizer :as thr]
[app.main.store :as st] [app.main.store :as st]
[app.main.thumbnail-renderer :as tr]
[app.main.ui :as ui] [app.main.ui :as ui]
[app.main.ui.alert] [app.main.ui.alert]
[app.main.ui.confirm] [app.main.ui.confirm]
@ -112,7 +112,7 @@
(i18n/init! cf/translations) (i18n/init! cf/translations)
(theme/init! cf/themes) (theme/init! cf/themes)
(cur/init-styles) (cur/init-styles)
(tr/init!) (thr/init!)
(init-ui) (init-ui)
(st/emit! (initialize))) (st/emit! (initialize)))

View file

@ -4,8 +4,8 @@
;; ;;
;; Copyright (c) KALEIDOS INC ;; Copyright (c) KALEIDOS INC
(ns app.main.thumbnail-renderer (ns app.main.rasterizer
"A main entry point for the thumbnail renderer API interface. "A main entry point for the rasterizer API interface.
This ns is responsible to provide an API for create thumbnail This ns is responsible to provide an API for create thumbnail
renderer iframes and interact with them using asyncrhonous renderer iframes and interact with them using asyncrhonous
@ -23,7 +23,7 @@
(defonce instance nil) (defonce instance nil)
(defonce msgbus (rx/subject)) (defonce msgbus (rx/subject))
(defonce origin (defonce origin
(dm/str (assoc cf/thumbnail-renderer-uri :path "/thumbnail-renderer.html"))) (dm/str (assoc cf/rasterizer-uri :path "/rasterizer.html")))
(declare send-message!) (declare send-message!)
@ -43,7 +43,7 @@
(when (and (object? evdata) (str/starts-with? origin evorigin)) (when (and (object? evdata) (str/starts-with? origin evorigin))
(let [scope (unchecked-get evdata "scope") (let [scope (unchecked-get evdata "scope")
type (unchecked-get evdata "type")] type (unchecked-get evdata "type")]
(when (= "penpot/thumbnail-renderer" scope) (when (= "penpot/rasterizer" scope)
(when (= type "ready") (when (= type "ready")
(set! ready? true) (set! ready? true)
(process-queued-messages!)) (process-queued-messages!))
@ -66,7 +66,7 @@
(let [id (dm/str (uuid/next)) (let [id (dm/str (uuid/next))
payload #js {:data data :styles styles :width width} payload #js {:data data :styles styles :width width}
message #js {:id id message #js {:id id
:scope "penpot/thumbnail-renderer" :scope "penpot/rasterizer"
:payload payload}] :payload payload}]
(if ^boolean ready? (if ^boolean ready?

View file

@ -14,11 +14,11 @@
[app.main.data.messages :as msg] [app.main.data.messages :as msg]
[app.main.features :as features] [app.main.features :as features]
[app.main.fonts :as fonts] [app.main.fonts :as fonts]
[app.main.rasterizer :as thr]
[app.main.refs :as refs] [app.main.refs :as refs]
[app.main.render :refer [component-svg]] [app.main.render :refer [component-svg]]
[app.main.repo :as rp] [app.main.repo :as rp]
[app.main.store :as st] [app.main.store :as st]
[app.main.thumbnail-renderer :as thr]
[app.main.ui.components.color-bullet :as bc] [app.main.ui.components.color-bullet :as bc]
[app.main.ui.dashboard.file-menu :refer [file-menu]] [app.main.ui.dashboard.file-menu :refer [file-menu]]
[app.main.ui.dashboard.import :refer [use-import-file]] [app.main.ui.dashboard.import :refer [use-import-file]]

View file

@ -121,14 +121,12 @@
(mf/use-fn (mf/use-fn
(mf/deps thumbnail-uri) (mf/deps thumbnail-uri)
(fn [] (fn []
(let [image-node (mf/ref-val frame-image-ref)] ;; If we don't have the thumbnail data saved (normally the first load) we update the data
(dom/set-data! image-node "ready" "true") ;; when available
;; If we don't have the thumbnail data saved (normally the first load) we update the data (when-not (some? thumbnail-uri)
;; when available (st/emit! (dwt/update-thumbnail page-id id)))
(when-not (some? thumbnail-uri)
(st/emit! (dwt/update-thumbnail page-id id)))
(reset! render-frame* false)))) (reset! render-frame* false)))
generate-thumbnail generate-thumbnail
(mf/use-fn (mf/use-fn
@ -175,10 +173,6 @@
on-update-frame on-update-frame
(mf/use-fn (mf/use-fn
(fn [] (fn []
(let [image-node (mf/ref-val frame-image-ref)]
(when (not= "false" (dom/get-data image-node "ready"))
(dom/set-data! image-node "ready" "false")))
(when-not ^boolean (mf/ref-val disable-ref) (when-not ^boolean (mf/ref-val disable-ref)
(reset! svg-uri* nil) (reset! svg-uri* nil)
(reset! bitmap-uri* nil) (reset! bitmap-uri* nil)

View file

@ -4,8 +4,8 @@
;; ;;
;; Copyright (c) KALEIDOS INC ;; Copyright (c) KALEIDOS INC
(ns app.thumbnail-renderer (ns app.rasterizer
"A main entry point for the thumbnail renderer process that is "A main entry point for the rasterizer process that is
executed on a separated iframe." executed on a separated iframe."
(:require (:require
[app.common.data :as d] [app.common.data :as d]
@ -205,7 +205,7 @@
payload (unchecked-get evdata "payload") payload (unchecked-get evdata "payload")
scope (unchecked-get evdata "scope")] scope (unchecked-get evdata "scope")]
(when (and (some? payload) (when (and (some? payload)
(= scope "penpot/thumbnail-renderer")) (= scope "penpot/rasterizer"))
(->> (render payload) (->> (render payload)
(rx/subs (partial send-success! id) (rx/subs (partial send-success! id)
(partial send-failure! id)))))))) (partial send-failure! id))))))))
@ -220,7 +220,7 @@
[id type payload] [id type payload]
(let [message #js {:id id (let [message #js {:id id
:type type :type type
:scope "penpot/thumbnail-renderer" :scope "penpot/rasterizer"
:payload payload}] :payload payload}]
(when-not (identical? js/window js/parent) (when-not (identical? js/window js/parent)
(.postMessage js/parent message parent-origin)))) (.postMessage js/parent message parent-origin))))