fixed deskop shader stuff.
This commit is contained in:
@@ -13,3 +13,7 @@ sometimes arrow takes override
|
|||||||
hard to leave castle gate
|
hard to leave castle gate
|
||||||
obvious about calculating path? seems to just pause a long time
|
obvious about calculating path? seems to just pause a long time
|
||||||
|
|
||||||
|
Reenable mobile screenshots
|
||||||
|
Static images for mobile screenshots?
|
||||||
|
|
||||||
|
Seems like you can save even though it's gray
|
||||||
|
|||||||
@@ -26,17 +26,17 @@
|
|||||||
:profiles {
|
:profiles {
|
||||||
:dev {
|
:dev {
|
||||||
:source-paths ["src" "src-common" "src-dev"]
|
:source-paths ["src" "src-common" "src-dev"]
|
||||||
:jvm-opts ["-Duse-repl=true" "-Dno-steam=true" #_"-Dclojure.compiler.direct-linking=true" "-Dis-desktop=true"]
|
:jvm-opts ["-Duse-repl=true" "-Dui_scale=1.0" "-Dno-steam=true" "-Dclojure.compiler.direct-linking=true" "-Dis-desktop=true"]
|
||||||
:dependencies [[com.badlogicgames.gdx/gdx-tools "1.5.3"]
|
:dependencies [[com.badlogicgames.gdx/gdx-tools "1.5.3"]
|
||||||
[org.clojure/tools.nrepl "0.2.12"]
|
[org.clojure/tools.nrepl "0.2.12"]
|
||||||
[play-clj-nrepl "0.1.0" :exclusions [play-clj]]
|
[play-clj-nrepl "0.1.0" :exclusions [play-clj]]
|
||||||
[slamhound "1.5.5"]
|
[slamhound "1.5.5"]
|
||||||
[org.clojure/data.csv "0.1.3"]]
|
[org.clojure/data.csv "0.1.3"]]
|
||||||
|
|
||||||
#_#_:warn-on-reflection true}
|
:warn-on-reflection true}
|
||||||
:mobile-dev {
|
:mobile-dev {
|
||||||
:source-paths ["src" "src-common" "src-dev"]
|
:source-paths ["src" "src-common" "src-dev"]
|
||||||
:jvm-opts ["-Duse-repl=true" "-Dno-steam=true" "-Dui_scale=1.5" #_"-Dclojure.compiler.direct-linking=true" "-Dis-desktop=true"]
|
:jvm-opts ["-Duse-repl=true" "-Dno-steam=true" "-Dui_scale=1.5" "-Dclojure.compiler.direct-linking=true" "-Dis-desktop=true"]
|
||||||
:dependencies [[com.badlogicgames.gdx/gdx-tools "1.5.3"]
|
:dependencies [[com.badlogicgames.gdx/gdx-tools "1.5.3"]
|
||||||
[org.clojure/tools.nrepl "0.2.12"]
|
[org.clojure/tools.nrepl "0.2.12"]
|
||||||
[play-clj-nrepl "0.1.0" :exclusions [play-clj]]
|
[play-clj-nrepl "0.1.0" :exclusions [play-clj]]
|
||||||
@@ -46,15 +46,15 @@
|
|||||||
#_#_:warn-on-reflection true}
|
#_#_:warn-on-reflection true}
|
||||||
:app-store {
|
:app-store {
|
||||||
:source-paths ["src" "src-common" "src-dev"]
|
:source-paths ["src" "src-common" "src-dev"]
|
||||||
:jvm-opts ["-Dapp-store=true" "-Dno-steam=true" "-Dis-desktop=true"]
|
:jvm-opts ["-Dapp-store=true" "-Dui_scale=1.0" "-Dno-steam=true" "-Dis-desktop=true"]
|
||||||
:dependencies [[org.clojure/data.csv "0.1.3"]]
|
:dependencies [[org.clojure/data.csv "0.1.3"]]
|
||||||
|
|
||||||
:warn-on-reflection true}
|
:warn-on-reflection true}
|
||||||
:steam {:dependencies [[com.code-disaster.steamworks4j/steamworks4j "1.2.2"]]
|
:steam {:dependencies [[com.code-disaster.steamworks4j/steamworks4j "1.2.2"]]
|
||||||
:jvm-opts ["-Dis-desktop=true"]}
|
:jvm-opts ["-Dis-desktop=true" "-Dui_scale=1.0" ]}
|
||||||
:steam-dev {
|
:steam-dev {
|
||||||
:source-paths ["src" "src-common" "src-dev"]
|
:source-paths ["src" "src-common" "src-dev"]
|
||||||
:jvm-opts ["-Duse-repl=true" "-Dis-desktop=true"]
|
:jvm-opts ["-Duse-repl=true" "-Dui_scale=1.0" "-Dis-desktop=true"]
|
||||||
:dependencies [[com.badlogicgames.gdx/gdx-tools "1.5.3"]
|
:dependencies [[com.badlogicgames.gdx/gdx-tools "1.5.3"]
|
||||||
[org.clojure/tools.nrepl "0.2.7"]
|
[org.clojure/tools.nrepl "0.2.7"]
|
||||||
[play-clj-nrepl "0.1.0" :exclusions [play-clj]]
|
[play-clj-nrepl "0.1.0" :exclusions [play-clj]]
|
||||||
|
|||||||
@@ -102,7 +102,8 @@
|
|||||||
(let [~entities (atom starting-entities#)]
|
(let [~entities (atom starting-entities#)]
|
||||||
(thread (binding [*fg-bg-key* :fg-actions]
|
(thread (binding [*fg-bg-key* :fg-actions]
|
||||||
~@forms
|
~@forms
|
||||||
(change-script-state ~entities false))))))))
|
(change-script-state ~entities false)
|
||||||
|
(utils/save @~entities "autosave" "Autosave"))))))))
|
||||||
|
|
||||||
(defn force-end [entities current-action key]
|
(defn force-end [entities current-action key]
|
||||||
(do (when current-action
|
(do (when current-action
|
||||||
|
|||||||
@@ -31,6 +31,7 @@
|
|||||||
(fn [this]
|
(fn [this]
|
||||||
(log/log-capture! *ns* :warn :error)
|
(log/log-capture! *ns* :warn :error)
|
||||||
(log/info "Starting game on version v" (advent.version/version))
|
(log/info "Starting game on version v" (advent.version/version))
|
||||||
|
(utils/listen-for-screenshots)
|
||||||
(steam/init)
|
(steam/init)
|
||||||
|
|
||||||
(set-screen! @(resolve 'advent.core/advent) splash/splash-screen)))
|
(set-screen! @(resolve 'advent.core/advent) splash/splash-screen)))
|
||||||
|
|||||||
@@ -1439,10 +1439,10 @@
|
|||||||
(when-not (get-in entities [:fg-actions :script-running?])
|
(when-not (get-in entities [:fg-actions :script-running?])
|
||||||
(let [date (.format (java.text.SimpleDateFormat. "MM/dd/yy") (java.util.Date.))
|
(let [date (.format (java.text.SimpleDateFormat. "MM/dd/yy") (java.util.Date.))
|
||||||
save-name (str (-> entities :room :name) " - " date)]
|
save-name (str (-> entities :room :name) " - " date)]
|
||||||
(utils/save entities
|
(go (utils/save entities
|
||||||
(str (.getTime (java.util.Date.)))
|
(str (.getTime (java.util.Date.)))
|
||||||
save-name
|
save-name
|
||||||
date)
|
date))
|
||||||
(screen! toast-screen :on-toast { :message (str "Saved \"" save-name "\"")}))))
|
(screen! toast-screen :on-toast { :message (str "Saved \"" save-name "\"")}))))
|
||||||
|
|
||||||
:on-menu (fn [{:keys [viewport] :as screen} entities options]
|
:on-menu (fn [{:keys [viewport] :as screen} entities options]
|
||||||
|
|||||||
@@ -112,7 +112,6 @@ void main ()
|
|||||||
c3 *= frac.x * (1.0 - frac.y);
|
c3 *= frac.x * (1.0 - frac.y);
|
||||||
c4 *= (1.0 - frac.x) * (1.0 - frac.y);
|
c4 *= (1.0 - frac.x) * (1.0 - frac.y);
|
||||||
vec4 scaledColor = (c1 + c2 + c3 + c4);
|
vec4 scaledColor = (c1 + c2 + c3 + c4);
|
||||||
vec4 scaledColor = texture2D(u_texture, v_texCoords);
|
|
||||||
|
|
||||||
vec4 grayscale = toGrayscale(scaledColor);
|
vec4 grayscale = toGrayscale(scaledColor);
|
||||||
vec4 colorizedOutput = mix(scaledColor, colorize(grayscale, v_color.rgba), hue_amount);
|
vec4 colorizedOutput = mix(scaledColor, colorize(grayscale, v_color.rgba), hue_amount);
|
||||||
@@ -128,6 +127,4 @@ void main ()
|
|||||||
(defn pix-shader []
|
(defn pix-shader []
|
||||||
(if utils/mobile?
|
(if utils/mobile?
|
||||||
mobile-pix-shader
|
mobile-pix-shader
|
||||||
desktop-pix-shader
|
desktop-pix-shader))
|
||||||
|
|
||||||
))
|
|
||||||
|
|||||||
@@ -11,7 +11,8 @@
|
|||||||
[clojure.tools.logging :as log]
|
[clojure.tools.logging :as log]
|
||||||
[clojure.string :as str]
|
[clojure.string :as str]
|
||||||
[advent.saves :as saves]
|
[advent.saves :as saves]
|
||||||
[advent.steam :as steam])
|
[advent.steam :as steam]
|
||||||
|
[clojure.core.async :refer [put! <! <!! >! chan go go-loop thread take! alts!! poll! dropping-buffer]])
|
||||||
(:import [com.badlogic.gdx.graphics Pixmap Pixmap$Format Pixmap$Blending Pixmap$Filter Texture Texture$TextureFilter]
|
(:import [com.badlogic.gdx.graphics Pixmap Pixmap$Format Pixmap$Blending Pixmap$Filter Texture Texture$TextureFilter]
|
||||||
[com.badlogic.gdx.graphics.g2d TextureRegion Animation]
|
[com.badlogic.gdx.graphics.g2d TextureRegion Animation]
|
||||||
[com.badlogic.gdx.utils.viewport FitViewport]
|
[com.badlogic.gdx.utils.viewport FitViewport]
|
||||||
@@ -203,20 +204,40 @@
|
|||||||
:fail))))))
|
:fail))))))
|
||||||
|
|
||||||
(defmacro iosify [mobile-version & [regular-version]]
|
(defmacro iosify [mobile-version & [regular-version]]
|
||||||
(if (= true (System/getProperty "is-desktop"))
|
(if (System/getProperty "is-desktop")
|
||||||
mobile-version
|
regular-version
|
||||||
regular-version))
|
mobile-version))
|
||||||
|
|
||||||
(defn get-screenshot-pm []
|
(def screenshot-chan (chan))
|
||||||
|
|
||||||
|
(defn publish-screenshot-fn []
|
||||||
(iosify
|
(iosify
|
||||||
(do
|
(do
|
||||||
(import '[advent.core Saver])
|
(import '[advent.core Saver])
|
||||||
(Saver/takeScreenshot))
|
(log/info "Taking IOS screenshot...")
|
||||||
|
(let [screenshot-data (advent.core.Saver/takeScreenshot)]
|
||||||
|
(fn []
|
||||||
|
(let [png-data (.getBytes (.toPNGData screenshot-data))
|
||||||
|
_ (.dispose screenshot-data)
|
||||||
|
big (Pixmap. png-data 0 (alength png-data))
|
||||||
|
resized (Pixmap. 160 120 Pixmap$Format/RGB888)]
|
||||||
|
(.drawPixmap resized big 0 0 (.getWidth big) (.getHeight big) 0 0 160 120)
|
||||||
|
(.dispose big)
|
||||||
|
|
||||||
|
(let [result (advent.core.Saver/flipPixmap resized)]
|
||||||
|
(.dispose resized)
|
||||||
|
result)))))
|
||||||
(do
|
(do
|
||||||
|
(log/info "Taking Desktop screenshot...")
|
||||||
(Pixmap/setFilter Pixmap$Filter/BiLinear)
|
(Pixmap/setFilter Pixmap$Filter/BiLinear)
|
||||||
(let [viewport (-> @ (resolve 'advent.screens.scene/scene) :screen deref :viewport)
|
(let [viewport (-> @ (resolve 'advent.screens.scene/scene) :screen deref :viewport)
|
||||||
[x y w h g-l g-r] [(.getScreenX ^FitViewport viewport) (.getScreenY ^FitViewport viewport) (.getScreenWidth ^FitViewport viewport) (.getScreenHeight ^FitViewport viewport)]]
|
[x y w h g-l g-r] [(.getScreenX ^FitViewport viewport) (.getScreenY ^FitViewport viewport) (.getScreenWidth ^FitViewport viewport) (.getScreenHeight ^FitViewport viewport)]
|
||||||
(ScreenUtils/getFrameBufferPixmap x y w h)))))
|
pm (ScreenUtils/getFrameBufferPixmap x y w h)
|
||||||
|
resized (Pixmap. 160 120 Pixmap$Format/RGB888)]
|
||||||
|
(.drawPixmap resized pm 0 0 (.getWidth pm) (.getHeight pm) 0 0 160 120)
|
||||||
|
(.dispose pm)
|
||||||
|
(fn [] resized)))))
|
||||||
|
|
||||||
|
|
||||||
(defn save [entities id name & [blurb]]
|
(defn save [entities id name & [blurb]]
|
||||||
(let [save-fn (fn []
|
(let [save-fn (fn []
|
||||||
@@ -225,21 +246,26 @@
|
|||||||
:id id
|
:id id
|
||||||
:screenshot (steam/save-screenshot-file-name id)
|
:screenshot (steam/save-screenshot-file-name id)
|
||||||
:state (assoc (entities :state)
|
:state (assoc (entities :state)
|
||||||
:x (get-in entities [:room :entities :ego :x])
|
:x (get-in entities [:room :entities :ego :x])
|
||||||
:y (get-in entities [:room :entities :ego :y]))
|
:y (get-in entities [:room :entities :ego :y]))
|
||||||
:blurb (or blurb name)}]
|
:blurb (or blurb name)}]
|
||||||
|
|
||||||
|
(log/info "writing save file...")
|
||||||
(steam/write-bytes (steam/save-file-name id) (.getBytes (pr-str save) "UTF-8"))
|
(steam/write-bytes (steam/save-file-name id) (.getBytes (pr-str save) "UTF-8"))
|
||||||
(on-gl (let [gl-func (fn []
|
#_(on-gl (let [gl-func (fn []
|
||||||
(let [pm (get-screenshot-pm)
|
(log/info "Screenshot captured. Publishing for persistence")
|
||||||
resized (Pixmap. 160 120 Pixmap$Format/RGB888)
|
(put! screenshot-chan [id (publish-screenshot-fn)]))]
|
||||||
_ (.drawPixmap resized pm 0 0 1280 960 0 0 160 120)]
|
(try-times gl-func 3)) )))]
|
||||||
(steam/save-screenshot resized (steam/save-screenshot-file-name id))
|
|
||||||
(.dispose resized)
|
|
||||||
(.dispose pm)))]
|
|
||||||
(try-times gl-func 3)))))]
|
|
||||||
(try-times save-fn 3)))
|
(try-times save-fn 3)))
|
||||||
|
|
||||||
|
(defn listen-for-screenshots []
|
||||||
|
(go-loop [[id ss-fn] (<! screenshot-chan)]
|
||||||
|
(let [screenshot (ss-fn)]
|
||||||
|
(log/info "Persisting Screenshot id" id)
|
||||||
|
(steam/save-screenshot screenshot (steam/save-screenshot-file-name id))
|
||||||
|
(.dispose screenshot)
|
||||||
|
(recur (<! screenshot-chan)))))
|
||||||
|
|
||||||
(defn remove-save [id]
|
(defn remove-save [id]
|
||||||
(doseq [f [(steam/save-screenshot-file-name id)
|
(doseq [f [(steam/save-screenshot-file-name id)
|
||||||
(steam/save-file-name id)]]
|
(steam/save-file-name id)]]
|
||||||
|
|||||||
@@ -21,7 +21,7 @@
|
|||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>94</string>
|
<string>100</string>
|
||||||
<key>MinimumOSVersion</key>
|
<key>MinimumOSVersion</key>
|
||||||
<string>8.0</string>
|
<string>8.0</string>
|
||||||
<key>LSRequiresIPhoneOS</key>
|
<key>LSRequiresIPhoneOS</key>
|
||||||
@@ -36,6 +36,8 @@
|
|||||||
<key>UILauunchImages</key>
|
<key>UILauunchImages</key>
|
||||||
<array>
|
<array>
|
||||||
<string>Default-568h</string>
|
<string>Default-568h</string>
|
||||||
|
<string>Default-568h@2x</string>
|
||||||
|
<string>Default-Portrait~ipad</string>
|
||||||
</array>
|
</array>
|
||||||
<key>UIRequiresFullScreen</key>
|
<key>UIRequiresFullScreen</key>
|
||||||
<true />
|
<true />
|
||||||
|
|||||||
Binary file not shown.
@@ -8,16 +8,13 @@
|
|||||||
[log4j/log4j "1.2.16"]
|
[log4j/log4j "1.2.16"]
|
||||||
[org.clojure/clojure "1.8.0"]
|
[org.clojure/clojure "1.8.0"]
|
||||||
[com.mobidevelop.robovm/robovm-cocoatouch "2.3.0"]
|
[com.mobidevelop.robovm/robovm-cocoatouch "2.3.0"]
|
||||||
[com.mobidevelop.robovm/robovm-objc "2.3.0"]
|
|
||||||
[com.mobidevelop.robovm/robovm-rt "2.3.0"]
|
[com.mobidevelop.robovm/robovm-rt "2.3.0"]
|
||||||
[com.mobidevelop.robovm/robovm-compiler "2.3.0"]
|
|
||||||
[com.mobidevelop.robovm/robovm-dist-compiler "2.3.0"]
|
|
||||||
[play-clj "0.4.6-BRYCE"]]
|
[play-clj "0.4.6-BRYCE"]]
|
||||||
:source-paths ["src/clojure" "../desktop/src-common"]
|
:source-paths ["src/clojure" "../desktop/src-common"]
|
||||||
:java-source-paths ["src/java"]
|
:java-source-paths ["src/java"]
|
||||||
:plugins [[lein-fruit "0.2.4-SNAPSHOT"]]
|
:plugins [[lein-fruit "0.2.4-SNAPSHOT"]]
|
||||||
:javac-options ["-target" "1.7" "-source" "1.7" "-Xlint:-options"]
|
:javac-options ["-target" "1.7" "-source" "1.7" "-Xlint:-options"]
|
||||||
:jvm-opts ["-Dis-desktop=false"]
|
:jvm-opts []
|
||||||
:ios {:robovm-opts ["-config" "robovm.xml"]
|
:ios {:robovm-opts ["-config" "robovm.xml"]
|
||||||
:robovm-path "/Users/brycecovert/.robovm-sdks/robovm-2.2.1-SNAPSHOT"
|
:robovm-path "/Users/brycecovert/.robovm-sdks/robovm-2.2.1-SNAPSHOT"
|
||||||
:version 2.1}
|
:version 2.1}
|
||||||
|
|||||||
@@ -18,6 +18,9 @@
|
|||||||
<includes>
|
<includes>
|
||||||
<include>**</include>
|
<include>**</include>
|
||||||
</includes>
|
</includes>
|
||||||
|
<excludes>
|
||||||
|
<exclude>**/*.ogg</exclude>
|
||||||
|
</excludes>
|
||||||
<skipPngCrush>true</skipPngCrush>
|
<skipPngCrush>true</skipPngCrush>
|
||||||
</resource>
|
</resource>
|
||||||
</resources>
|
</resources>
|
||||||
|
|||||||
@@ -9,30 +9,31 @@ import com.badlogic.gdx.backends.iosrobovm.*;
|
|||||||
|
|
||||||
public class Saver {
|
public class Saver {
|
||||||
|
|
||||||
public static Pixmap takeScreenshot(){
|
public static Pixmap flipPixmap(Pixmap src) {
|
||||||
|
final int width = src.getWidth();
|
||||||
|
final int height = src.getHeight();
|
||||||
|
Pixmap flipped = new Pixmap(width, height, src.getFormat());
|
||||||
|
|
||||||
|
for (int x = 0; x < width; x++) {
|
||||||
|
for (int y = 0; y < height; y++) {
|
||||||
|
flipped.drawPixel(x, y, src.getPixel(x, height - y -1));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return flipped;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static UIImage takeScreenshot(){
|
||||||
|
|
||||||
UIImage newImage;
|
UIImage newImage;
|
||||||
UIGraphics.beginImageContext(new CGSize(1280, 960));
|
//((IOSApplication) Gdx.app).getUIViewController().getView().setTransform(CGAffineTransform.createScale(1, -1));
|
||||||
((IOSApplication) Gdx.app).getUIViewController().getView().drawViewHierarchy(
|
UIView view = ((IOSApplication) Gdx.app).getUIViewController().getView();
|
||||||
new CGRect(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()) , true);
|
UIGraphics.beginImageContext(new CGSize(view.getFrame().getWidth(), view.getFrame().getHeight()), true, 0.0);
|
||||||
|
view.drawViewHierarchy(
|
||||||
|
new CGRect(0, 0, view.getFrame().getWidth(), view.getFrame().getHeight()), true);
|
||||||
newImage = UIGraphics.getImageFromCurrentImageContext();
|
newImage = UIGraphics.getImageFromCurrentImageContext();
|
||||||
UIGraphics.endImageContext();
|
UIGraphics.endImageContext();
|
||||||
|
//((IOSApplication) Gdx.app).getUIViewController().getView().setTransform(CGAffineTransform.createScale(1, 1));
|
||||||
|
return newImage;
|
||||||
|
|
||||||
NSData data = newImage.toPNGData();
|
|
||||||
newImage.dispose();
|
|
||||||
|
|
||||||
PixmapIO.PNG p = new PixmapIO.PNG();
|
|
||||||
Pixmap stepResult = new Pixmap(data.getBytes(), 0, data.getBytes().length);
|
|
||||||
p.setFlipY(true);
|
|
||||||
try {
|
|
||||||
p.write(Gdx.files.local("screenshot.png"), stepResult);
|
|
||||||
stepResult.dispose();
|
|
||||||
p.dispose();
|
|
||||||
|
|
||||||
return new Pixmap(Gdx.files.local("screenshot.png"));
|
|
||||||
|
|
||||||
} catch (Exception e) {
|
|
||||||
return new Pixmap(160, 120, Pixmap.Format.RGBA8888);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user