♻️ Avoid using get-prop when unneeded in serializers

This commit is contained in:
Belén Albeza 2025-04-15 14:22:42 +02:00
parent b41a7b8547
commit 4bf9e24d43

View file

@ -1,6 +1,5 @@
(ns app.render-wasm.serializers.fills
(:require
[app.common.data.macros :as dm]
[app.render-wasm.serializers.color :as clr]))
(def GRADIENT-STOP-SIZE 8)
@ -13,13 +12,13 @@
(defn serialize-gradient-fill
[gradient opacity heap offset]
(let [dview (js/DataView. (.-buffer heap))
start-x (dm/get-prop gradient :start-x)
start-y (dm/get-prop gradient :start-y)
end-x (dm/get-prop gradient :end-x)
end-y (dm/get-prop gradient :end-y)
width (or (dm/get-prop gradient :width) 0)
stops (dm/get-prop gradient :stops)]
(let [dview (js/DataView. (.-buffer heap))
start-x (:start-x gradient)
start-y (:start-y gradient)
end-x (:end-x gradient)
end-y (:end-y gradient)
width (or (:width gradient) 0)
stops (:stops gradient)]
(.setFloat32 dview offset start-x true)
(.setFloat32 dview (+ offset 4) start-y true)
(.setFloat32 dview (+ offset 8) end-x true)
@ -29,10 +28,10 @@
(loop [stops (seq stops) offset (+ offset GRADIENT-BASE-SIZE)]
(when-not (empty? stops)
(let [stop (first stops)
hex-color (dm/get-prop stop :color)
opacity (dm/get-prop stop :opacity)
hex-color (:color stop)
opacity (:opacity stop)
argb (clr/hex->u32argb hex-color opacity)
stop-offset (dm/get-prop stop :offset)]
stop-offset (:offset stop)]
(.setUint32 dview offset argb true)
(.setFloat32 dview (+ offset 4) stop-offset true)
(recur (rest stops) (+ offset GRADIENT-STOP-SIZE)))))))