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)
|
: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
|
:tweens {:fade-in
|
||||||
(tween/tween :fade-in screen [:fade :opacity] 1.0 0.0 5.0 :ease tween/ease-out-cubic)}}))
|
(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
|
:on-render
|
||||||
(fn [{:keys [^FitViewport viewport] :as screen} [entities]]
|
(fn [{:keys [^FitViewport viewport] :as screen} [entities]]
|
||||||
|
|||||||
@@ -1169,9 +1169,6 @@ void main ()
|
|||||||
(doseq [[k [start time fn]] (get-in entities [:room :timers])]
|
(doseq [[k [start time fn]] (get-in entities [:room :timers])]
|
||||||
(add-timer! screen k start time)))
|
(add-timer! screen k start time)))
|
||||||
|
|
||||||
:on-pause (fn [_ _]
|
|
||||||
(utils/set-fullscreen! false)
|
|
||||||
nil)
|
|
||||||
|
|
||||||
:on-key-up
|
:on-key-up
|
||||||
(fn [screen entities]
|
(fn [screen entities]
|
||||||
|
|||||||
@@ -371,10 +371,7 @@
|
|||||||
:ease tween/ease-in-quadratic)}}
|
:ease tween/ease-in-quadratic)}}
|
||||||
]
|
]
|
||||||
(merge entities (:main-menu entities)))))
|
(merge entities (:main-menu entities)))))
|
||||||
|
|
||||||
:on-pause (fn [_ _]
|
|
||||||
(utils/set-fullscreen! false)
|
|
||||||
nil)
|
|
||||||
|
|
||||||
:on-render
|
:on-render
|
||||||
(fn [{:keys [^FitViewport viewport] :as screen} [entities]]
|
(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))))]
|
entities (update-in entities [:banner-back] merge (animation->texture screen (:anim (:banner-back entities))))]
|
||||||
(when (:fullscreen-button (:settings-menu entities))
|
(when (:fullscreen-button (:settings-menu entities))
|
||||||
(text-button! (: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"
|
"Windowed"
|
||||||
"Fullscreen")))
|
"Fullscreen")))
|
||||||
|
|
||||||
|
|||||||
@@ -432,19 +432,73 @@
|
|||||||
(dotimes [_ 160]
|
(dotimes [_ 160]
|
||||||
(particle-effect! p :update 0.2)))
|
(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]
|
(defn set-fullscreen! [val]
|
||||||
(try
|
(try
|
||||||
(if val
|
(if val
|
||||||
(on-gl (.setDisplayMode Gdx/graphics
|
(on-gl (make-fullscreen))
|
||||||
(doto (.width (.getDesktopDisplayMode Gdx/graphics)) log/info)
|
(on-gl (make-windowed)))
|
||||||
(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
|
(on-gl
|
||||||
(swap! settings assoc :fullscreen val)
|
(swap! settings assoc :fullscreen val)
|
||||||
(save-settings!))
|
(save-settings!))
|
||||||
@@ -453,7 +507,7 @@
|
|||||||
(log/error e))))
|
(log/error e))))
|
||||||
|
|
||||||
(defn toggle-fullscreen! []
|
(defn toggle-fullscreen! []
|
||||||
(if (.isFullscreen Gdx/graphics)
|
(if (is-fullscreen?)
|
||||||
(set-fullscreen! false)
|
(set-fullscreen! false)
|
||||||
(set-fullscreen! true)))
|
(set-fullscreen! true)))
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user