should be a fullscreen that pleases everyone.
This commit is contained in:
@@ -96,10 +96,6 @@
|
||||
:the-end (assoc (utils/get-texture "the-end.png") :x 0 :y 0 :scale-x 4 :scale-y 4 :origin-x 0 :origin-y 0)
|
||||
:tweens {:fade-in
|
||||
(tween/tween :fade-in screen [:fade :opacity] 1.0 0.0 5.0 :ease tween/ease-out-cubic)}}))
|
||||
|
||||
:on-pause (fn [_ _]
|
||||
(utils/set-fullscreen! false)
|
||||
nil)
|
||||
|
||||
:on-render
|
||||
(fn [{:keys [^FitViewport viewport] :as screen} [entities]]
|
||||
|
||||
@@ -1169,9 +1169,6 @@ void main ()
|
||||
(doseq [[k [start time fn]] (get-in entities [:room :timers])]
|
||||
(add-timer! screen k start time)))
|
||||
|
||||
:on-pause (fn [_ _]
|
||||
(utils/set-fullscreen! false)
|
||||
nil)
|
||||
|
||||
:on-key-up
|
||||
(fn [screen entities]
|
||||
|
||||
@@ -371,10 +371,7 @@
|
||||
:ease tween/ease-in-quadratic)}}
|
||||
]
|
||||
(merge entities (:main-menu entities)))))
|
||||
|
||||
:on-pause (fn [_ _]
|
||||
(utils/set-fullscreen! false)
|
||||
nil)
|
||||
|
||||
|
||||
:on-render
|
||||
(fn [{:keys [^FitViewport viewport] :as screen} [entities]]
|
||||
@@ -387,7 +384,7 @@
|
||||
entities (update-in entities [:banner-back] merge (animation->texture screen (:anim (:banner-back entities))))]
|
||||
(when (:fullscreen-button (:settings-menu entities))
|
||||
(text-button! (:fullscreen-button (:settings-menu entities))
|
||||
:set-text (if (.isFullscreen Gdx/graphics)
|
||||
:set-text (if (utils/is-fullscreen?)
|
||||
"Windowed"
|
||||
"Fullscreen")))
|
||||
|
||||
|
||||
@@ -432,19 +432,73 @@
|
||||
(dotimes [_ 160]
|
||||
(particle-effect! p :update 0.2)))
|
||||
|
||||
(defn os->key []
|
||||
(let [os-name (System/getProperty "os.name")]
|
||||
(cond
|
||||
(or (.startsWith os-name "Linux") (.startsWith os-name "LINUX")) :linux
|
||||
(.startsWith os-name "Mac") :mac
|
||||
:else :windows)))
|
||||
|
||||
(defmulti make-windowed os->key)
|
||||
(defmulti make-fullscreen os->key)
|
||||
(defmulti is-fullscreen? os->key)
|
||||
|
||||
|
||||
(defmethod make-windowed :linux []
|
||||
(do
|
||||
(log/info "Making windowed 800x600 decorated window")
|
||||
(System/setProperty "org.lwjgl.opengl.Window.undecorated", "false")
|
||||
(.setDisplayMode Gdx/graphics 800 600 false)))
|
||||
|
||||
(defmethod make-fullscreen :linux []
|
||||
(let [width (-> Gdx/graphics .getDesktopDisplayMode .width)
|
||||
height (-> Gdx/graphics .getDesktopDisplayMode .height)]
|
||||
(log/info "Making fullscreen " width "x" height " as undecorated window")
|
||||
(System/setProperty "org.lwjgl.opengl.Window.undecorated", "true")
|
||||
(.setDisplayMode Gdx/graphics
|
||||
width
|
||||
height
|
||||
false)))
|
||||
|
||||
(defmethod is-fullscreen? :linux []
|
||||
(= "true" (System/getProperty "org.lwjgl.opengl.Window.undecorated")))
|
||||
|
||||
(defn make-fullscreen-normal []
|
||||
(let [width (-> Gdx/graphics .getDesktopDisplayMode .width)
|
||||
height (-> Gdx/graphics .getDesktopDisplayMode .height)]
|
||||
(log/info "Making fullscreen " width "x" height " as true fullscreen")
|
||||
(.setDisplayMode Gdx/graphics
|
||||
width
|
||||
height
|
||||
true)
|
||||
(set! (.foregroundFPS (-> (class Gdx/graphics)
|
||||
(.getDeclaredField (name "config"))
|
||||
(doto (.setAccessible true))
|
||||
(.get Gdx/graphics))) 60)))
|
||||
|
||||
(defn make-windowed-normal []
|
||||
(do
|
||||
(log/info "Making windowed 1280x960 decorated window")
|
||||
(System/setProperty "org.lwjgl.opengl.Window.undecorated", "false")
|
||||
(.setDisplayMode Gdx/graphics 1280 960 false)))
|
||||
|
||||
(defn is-fullscreen?-normal []
|
||||
(.isFullscreen Gdx/graphics))
|
||||
|
||||
|
||||
(defmethod make-windowed :mac [] (make-windowed-normal))
|
||||
(defmethod make-fullscreen :mac [] (make-fullscreen-normal))
|
||||
(defmethod is-fullscreen? :mac [] (is-fullscreen?-normal))
|
||||
|
||||
(defmethod make-windowed :windows [] (make-windowed-normal))
|
||||
(defmethod make-fullscreen :windows [] (make-fullscreen-normal))
|
||||
(defmethod is-fullscreen? :windows [] (is-fullscreen?-normal))
|
||||
|
||||
(defn set-fullscreen! [val]
|
||||
(try
|
||||
(if val
|
||||
(on-gl (.setDisplayMode Gdx/graphics
|
||||
(doto (.width (.getDesktopDisplayMode Gdx/graphics)) log/info)
|
||||
(doto (.height (.getDesktopDisplayMode Gdx/graphics)) log/info)
|
||||
true)
|
||||
(set! (.foregroundFPS (-> (class Gdx/graphics)
|
||||
(.getDeclaredField (name "config"))
|
||||
(doto (.setAccessible true))
|
||||
(.get Gdx/graphics))) 60))
|
||||
(on-gl (.setDisplayMode Gdx/graphics 1280 960 false)))
|
||||
(on-gl (make-fullscreen))
|
||||
(on-gl (make-windowed)))
|
||||
(on-gl
|
||||
(swap! settings assoc :fullscreen val)
|
||||
(save-settings!))
|
||||
@@ -453,7 +507,7 @@
|
||||
(log/error e))))
|
||||
|
||||
(defn toggle-fullscreen! []
|
||||
(if (.isFullscreen Gdx/graphics)
|
||||
(if (is-fullscreen?)
|
||||
(set-fullscreen! false)
|
||||
(set-fullscreen! true)))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user