diff --git a/frontend/src/app/render_wasm/api.cljs b/frontend/src/app/render_wasm/api.cljs index 8be51712a2..39bb2d3c65 100644 --- a/frontend/src/app/render_wasm/api.cljs +++ b/frontend/src/app/render_wasm/api.cljs @@ -8,7 +8,7 @@ "A WASM based render API" (:require ["react-dom/server" :as rds] - [app.common.data :as d] + [app.common.data :as d :refer [not-empty?]] [app.common.data.macros :as dm] [app.common.geom.matrix :as gmt] [app.common.geom.point :as gpt] @@ -240,36 +240,37 @@ (defn set-shape-fills [fills] - (let [fills (take types.fill/MAX-FILLS fills) - image-fills (filter :fill-image fills) - offset (mem/alloc-bytes (* (count fills) sr-fills/FILL-BYTE-SIZE)) - heap (mem/get-heap-u8) - dview (js/DataView. (.-buffer heap))] + (when (not-empty? fills) + (let [fills (take types.fill/MAX-FILLS fills) + image-fills (filter :fill-image fills) + offset (mem/alloc-bytes (* (count fills) sr-fills/FILL-BYTE-SIZE)) + heap (mem/get-heap-u8) + dview (js/DataView. (.-buffer heap))] ;; write fill data to heap - (loop [fills (seq fills) - current-offset 0] - (when-not (empty? fills) - (let [fill (first fills)] - (sr-fills/write-fill! offset dview fill) - (recur (rest fills) (+ current-offset sr-fills/FILL-BYTE-SIZE))))) + (loop [fills (seq fills) + current-offset 0] + (when-not (empty? fills) + (let [fill (first fills)] + (sr-fills/write-fill! offset dview fill) + (recur (rest fills) (+ current-offset sr-fills/FILL-BYTE-SIZE))))) ;; send fills to wasm - (h/call wasm/internal-module "_set_shape_fills") + (h/call wasm/internal-module "_set_shape_fills") ;; load images for image fills if not cached - (keep (fn [fill] - (let [image (:fill-image fill) - id (dm/get-prop image :id) - buffer (uuid/get-u32 id) - cached-image? (h/call wasm/internal-module "_is_image_cached" - (aget buffer 0) - (aget buffer 1) - (aget buffer 2) - (aget buffer 3))] - (when (zero? cached-image?) - (store-image id)))) - image-fills))) + (keep (fn [fill] + (let [image (:fill-image fill) + id (dm/get-prop image :id) + buffer (uuid/get-u32 id) + cached-image? (h/call wasm/internal-module "_is_image_cached" + (aget buffer 0) + (aget buffer 1) + (aget buffer 2) + (aget buffer 3))] + (when (zero? cached-image?) + (store-image id)))) + image-fills)))) (defn set-shape-strokes [strokes]