Turn render! into a multimethod
This commit is contained in:
@@ -2,17 +2,19 @@
|
|||||||
|
|
||||||
; rendering
|
; rendering
|
||||||
|
|
||||||
(defn render!
|
(defmulti render! #(-> % :renderer type) :default nil)
|
||||||
[{:keys [renderer ^Camera camera delta-time]}]
|
|
||||||
(assert renderer)
|
(defmethod render! nil [screen])
|
||||||
(cond
|
|
||||||
(isa? (type renderer) BatchTiledMapRenderer)
|
(defmethod render! BatchTiledMapRenderer
|
||||||
(doto ^BatchTiledMapRenderer renderer
|
[{:keys [^BatchTiledMapRenderer renderer ^Camera camera]}]
|
||||||
(.setView camera)
|
(when camera (.setView renderer camera))
|
||||||
.render)
|
(.render renderer))
|
||||||
(isa? (type renderer) Stage)
|
|
||||||
(doto ^Stage renderer
|
(defmethod render! Stage
|
||||||
.draw)))
|
[{:keys [^Stage renderer ^Camera camera]}]
|
||||||
|
(when camera (.setCamera renderer camera))
|
||||||
|
(.draw renderer))
|
||||||
|
|
||||||
(defn tiled-map-layers
|
(defn tiled-map-layers
|
||||||
[{:keys [^BatchTiledMapRenderer renderer]}]
|
[{:keys [^BatchTiledMapRenderer renderer]}]
|
||||||
|
|||||||
Reference in New Issue
Block a user