working on changes to support mobile with performance.

This commit is contained in:
Bryce Covert
2018-01-23 20:38:55 -08:00
parent 27691ae11b
commit 2b1e4ae817
3 changed files with 18 additions and 15 deletions

View File

@@ -485,14 +485,12 @@ with the tiled map file at `path` and `unit` scale.
(.end batch)) (.end batch))
entities) entities)
(defmethod draw! Stage (def reset-color ^Color (color 1 1 1 1))
[{:keys [^Stage renderer ^Camera camera ^ShaderProgram shader] :as screen} entities]
(defn render-one [{:keys [^Stage renderer ^Camera camera ^ShaderProgram shader] :as screen} {:keys [additive? opacity ^float r ^float g ^float b ^float hue-amount ^float multiply-amount] :as entity :or {opacity 1.0}}]
(let [^Batch batch (.getBatch renderer)] (let [^Batch batch (.getBatch renderer)]
(.setProjectionMatrix batch (.combined camera)) (.setProjectionMatrix batch (.combined camera))
#_(.begin batch) (when (> opacity 0.0)
(doseq [{:keys [additive? opacity ^float r ^float g ^float b ^float hue-amount ^float multiply-amount] :as entity :or {opacity 1.0}} entities
:when (> opacity 0.0)]
(when shader (when shader
(.setShader batch shader) (.setShader batch shader)
(.setUniformf shader "multiply_amount" (float (or multiply-amount 1.0))) (.setUniformf shader "multiply_amount" (float (or multiply-amount 1.0)))
@@ -500,15 +498,21 @@ with the tiled map file at `path` and `unit` scale.
(when additive? (when additive?
(.setBlendFunction ^Batch batch (gl :gl-src-alpha) (gl :gl-one))) (.setBlendFunction ^Batch batch (gl :gl-src-alpha) (gl :gl-one)))
(do (.setColor batch (color (or r 1.0) (or g 1.0) (or b 1.0) opacity)) (do (.setColor batch (float (or r 1.0)) (float (or g 1.0)) (float (or b 1.0)) (float opacity))
(e/draw! entity screen batch) (e/draw! entity screen batch)
(.setColor batch (color 1 1 1 1))) (.setColor batch ^Color reset-color))
(when (or additive?) (when (or additive?)
(.setBlendFunction ^Batch batch (gl :gl-src-alpha) (gl :gl-one-minus-src-alpha)))) (.setBlendFunction ^Batch batch (gl :gl-src-alpha) (gl :gl-one-minus-src-alpha))))))
#_(.end batch))
(defmethod draw! Stage
[screen entities]
(doseq [entity entities]
(render-one screen entity))
entities) entities)
(defmethod draw! ModelBatch (defmethod draw! ModelBatch
[{:keys [^ModelBatch renderer ^Camera camera] :as screen} entities] [{:keys [^ModelBatch renderer ^Camera camera] :as screen} entities]
(.begin renderer camera) (.begin renderer camera)

View File

@@ -221,10 +221,9 @@ in the `screen`."
(defn ^:private update-screen! (defn ^:private update-screen!
([{:keys [renderer world] :as screen}] ([{:keys [renderer world] :as screen}]
(when (instance? Stage renderer) (when (instance? Stage renderer)
(update-stage! screen)) (update-stage! screen)))
(update-physics! screen))
([{:keys [renderer world] :as screen} entities] ([{:keys [renderer world] :as screen} entities]
(when (instance? Stage renderer) (when (instance? Stage renderer)
(update-stage! screen entities)) (update-stage! screen entities))
(update-physics! screen entities)
entities)) entities))

View File

@@ -175,7 +175,7 @@ found."
(set-loaders! am (InternalFileHandleResolver.))) (set-loaders! am (InternalFileHandleResolver.)))
([^AssetManager am res] ([^AssetManager am res]
(.setLoader am TiledMap (TmxMapLoader. res)) (.setLoader am TiledMap (TmxMapLoader. res))
(.setLoader am ParticleEffect (proxy [ParticleEffectLoader] [res] #_(.setLoader am ParticleEffect (proxy [ParticleEffectLoader] [res]
(load [am file-name fh param] (load [am file-name fh param]
(doto (ParticleEffect.) (doto (ParticleEffect.)
(.load fh (.parent fh)))))))) (.load fh (.parent fh))))))))