easily swappable fullscreen.

This commit is contained in:
Bryce Covert
2015-09-04 16:31:45 -07:00
parent a63a5352c1
commit fc258628c8
5 changed files with 40 additions and 30 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 5.1 KiB

View File

@@ -953,6 +953,12 @@ void main()
:on-resume (fn [screen [entities]]
(doseq [[k [start time fn]] (get-in entities [:room :timers])]
(add-timer! screen k start time)))
:on-key-up
(fn [screen entities]
(when (= (key-code :escape) (:key screen))
(utils/toggle-fullscreen!))
nil)
:on-render
(fn [{:keys [camera ^FitViewport viewport] :as screen} [entities]]

View File

@@ -160,13 +160,16 @@
(fn [{:keys [^FitViewport viewport] :as screen} [entities]]
(.apply viewport)
(clear!)
(when-not (:paused? entities)
(let [entities (utils/apply-tweens screen entities (:tweens entities))
entities (fly-ego screen entities)]
(music! (:music entities) :set-volume (utils/current-music-volume (:volume entities)))
(render! screen [(:background entities) (:particle-clouds entities) (:cloud-background entities) (:ego-jet entities) (:flying-ego entities) (:logo entities) (:toolbox entities) (:start-playing entities) (:quit entities) (:fullscreen entities) (:music-label entities) (:music-volume-slider entities) (:sound-label entities) (:sound-volume-slider entities) (:copyright entities) (:fade entities) ])
entities)))
(let [entities (utils/apply-tweens screen entities (:tweens entities))
entities (fly-ego screen entities)
]
(label! (:fullscreen entities) :set-text (if (.isFullscreen Gdx/graphics)
"Fullscreen"
"Windowed"))
(music! (:music entities) :set-volume (utils/current-music-volume (:volume entities)))
(render! screen [(:background entities) (:particle-clouds entities) (:cloud-background entities) (:ego-jet entities) (:flying-ego entities) (:logo entities) (:toolbox entities) (:start-playing entities) (:quit entities) (:fullscreen entities) (:music-label entities) (:music-volume-slider entities) (:sound-label entities) (:sound-volume-slider entities) (:copyright entities) (:fade entities) ])
entities))
:show-screen (fn [entities]
entities)
@@ -179,6 +182,12 @@
(style-slider (:music-volume-slider entities) [x y])
(style-slider (:sound-volume-slider entities) [x y])
entities))
:on-key-up
(fn [screen entities]
(when (= (key-code :escape) (:key screen))
(utils/toggle-fullscreen!))
nil)
:on-ui-changed
(fn [screen [entities]]
(swap! utils/settings
@@ -217,31 +226,12 @@
:ease tween/ease-in-cubic))))
(utils/intersects? (:fullscreen entities) [x y])
(if (.isFullscreen Gdx/graphics)
(on-gl (.setDisplayMode Gdx/graphics 1280 960 false)
(label! (:fullscreen entities) set-text "Windowed"))
(on-gl (.setDisplayMode Gdx/graphics
(doto (.width (.getDesktopDisplayMode Gdx/graphics)) println)
(doto (.height (.getDesktopDisplayMode Gdx/graphics)) println)
true)
(set! (.foregroundFPS (-> (class Gdx/graphics)
(.getDeclaredField (name "config"))
(doto (.setAccessible true))
(.get Gdx/graphics))) 60 )
(label! (:fullscreen entities) set-text "Fullscreen")))
(utils/toggle-fullscreen!)
:else
nil))))
:on-resize (fn [{:keys [viewport width height]} [entities]]
(.update viewport width height false)
nil)
:on-pause (fn [{:keys [viewport] :as screen} [entities]]
(assoc entities :paused? true))
:on-resume (fn [{:keys [viewport] :as screen} [entities]]
(utils/setup-viewport screen 1280 960)
(assoc entities :paused? false))
)
nil))

View File

@@ -12,6 +12,8 @@
[com.badlogic.gdx.graphics.g2d TextureRegion]
[com.badlogic.gdx.utils.viewport FitViewport]
[com.badlogic.gdx.scenes.scene2d Actor Stage]
[com.badlogic.gdx Application Audio Files Game Gdx Graphics Input
InputMultiplexer InputProcessor Net Preferences Screen]
[java.lang Object]))
(defn log-coords [screen entities]
@@ -316,3 +318,15 @@
(particle-effect! p :update 10.0)
(dotimes [_ 160]
(particle-effect! p :update 0.2)))
(defn toggle-fullscreen! []
(if (.isFullscreen Gdx/graphics)
(on-gl (.setDisplayMode Gdx/graphics 1280 960 false))
(on-gl (.setDisplayMode Gdx/graphics
(doto (.width (.getDesktopDisplayMode Gdx/graphics)) println)
(doto (.height (.getDesktopDisplayMode Gdx/graphics)) println)
true)
(set! (.foregroundFPS (-> (class Gdx/graphics)
(.getDeclaredField (name "config"))
(doto (.setAccessible true))
(.get Gdx/graphics))) 60))))

View File

@@ -23,7 +23,7 @@
(when port (start-nrepl-expr (Integer/parseInt port)))
(catch Exception e))
(let [cfg (LwjglApplicationConfiguration.)]
(if true
(if false
(do
(set! (.width cfg) (doto (.width (LwjglApplicationConfiguration/getDesktopDisplayMode)) println))
(set! (.height cfg) (doto (.height (LwjglApplicationConfiguration/getDesktopDisplayMode)) println))