0
Fork 0
mirror of https://github.com/penpot/penpot.git synced 2025-03-09 06:11:23 -05:00

♻️ 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",
"shared": "js/shared.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
}));
gulp.task("template:thumbnail-renderer", templatePipeline({
name: "thumbnail-renderer.html",
input: paths.resources + "templates/thumbnail-renderer.mustache",
gulp.task("template:rasterizer", templatePipeline({
name: "rasterizer.html",
input: paths.resources + "templates/rasterizer.mustache",
output: paths.output
}));
@ -253,7 +253,7 @@ gulp.task("templates", gulp.series("svg:sprite:icons",
"svg:sprite:cursors",
"template:main",
"template:render",
"template:thumbnail-renderer"));
"template:rasterizer"));
gulp.task("polyfills", function() {
return gulp.src(paths.resources + "polyfills/*.js")

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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