fixed deskop shader stuff.
This commit is contained in:
@@ -13,3 +13,7 @@ sometimes arrow takes override
|
||||
hard to leave castle gate
|
||||
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 {
|
||||
: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"]
|
||||
[org.clojure/tools.nrepl "0.2.12"]
|
||||
[play-clj-nrepl "0.1.0" :exclusions [play-clj]]
|
||||
[slamhound "1.5.5"]
|
||||
[org.clojure/data.csv "0.1.3"]]
|
||||
|
||||
#_#_:warn-on-reflection true}
|
||||
:warn-on-reflection true}
|
||||
:mobile-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"]
|
||||
[org.clojure/tools.nrepl "0.2.12"]
|
||||
[play-clj-nrepl "0.1.0" :exclusions [play-clj]]
|
||||
@@ -46,15 +46,15 @@
|
||||
#_#_:warn-on-reflection true}
|
||||
:app-store {
|
||||
: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"]]
|
||||
|
||||
:warn-on-reflection true}
|
||||
: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 {
|
||||
: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"]
|
||||
[org.clojure/tools.nrepl "0.2.7"]
|
||||
[play-clj-nrepl "0.1.0" :exclusions [play-clj]]
|
||||
|
||||
@@ -102,7 +102,8 @@
|
||||
(let [~entities (atom starting-entities#)]
|
||||
(thread (binding [*fg-bg-key* :fg-actions]
|
||||
~@forms
|
||||
(change-script-state ~entities false))))))))
|
||||
(change-script-state ~entities false)
|
||||
(utils/save @~entities "autosave" "Autosave"))))))))
|
||||
|
||||
(defn force-end [entities current-action key]
|
||||
(do (when current-action
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
(fn [this]
|
||||
(log/log-capture! *ns* :warn :error)
|
||||
(log/info "Starting game on version v" (advent.version/version))
|
||||
(utils/listen-for-screenshots)
|
||||
(steam/init)
|
||||
|
||||
(set-screen! @(resolve 'advent.core/advent) splash/splash-screen)))
|
||||
|
||||
@@ -1439,10 +1439,10 @@
|
||||
(when-not (get-in entities [:fg-actions :script-running?])
|
||||
(let [date (.format (java.text.SimpleDateFormat. "MM/dd/yy") (java.util.Date.))
|
||||
save-name (str (-> entities :room :name) " - " date)]
|
||||
(utils/save entities
|
||||
(str (.getTime (java.util.Date.)))
|
||||
save-name
|
||||
date)
|
||||
(go (utils/save entities
|
||||
(str (.getTime (java.util.Date.)))
|
||||
save-name
|
||||
date))
|
||||
(screen! toast-screen :on-toast { :message (str "Saved \"" save-name "\"")}))))
|
||||
|
||||
:on-menu (fn [{:keys [viewport] :as screen} entities options]
|
||||
|
||||
@@ -112,7 +112,6 @@ void main ()
|
||||
c3 *= frac.x * (1.0 - frac.y);
|
||||
c4 *= (1.0 - frac.x) * (1.0 - frac.y);
|
||||
vec4 scaledColor = (c1 + c2 + c3 + c4);
|
||||
vec4 scaledColor = texture2D(u_texture, v_texCoords);
|
||||
|
||||
vec4 grayscale = toGrayscale(scaledColor);
|
||||
vec4 colorizedOutput = mix(scaledColor, colorize(grayscale, v_color.rgba), hue_amount);
|
||||
@@ -128,6 +127,4 @@ void main ()
|
||||
(defn pix-shader []
|
||||
(if utils/mobile?
|
||||
mobile-pix-shader
|
||||
desktop-pix-shader
|
||||
|
||||
))
|
||||
desktop-pix-shader))
|
||||
|
||||
@@ -11,7 +11,8 @@
|
||||
[clojure.tools.logging :as log]
|
||||
[clojure.string :as str]
|
||||
[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]
|
||||
[com.badlogic.gdx.graphics.g2d TextureRegion Animation]
|
||||
[com.badlogic.gdx.utils.viewport FitViewport]
|
||||
@@ -203,20 +204,40 @@
|
||||
:fail))))))
|
||||
|
||||
(defmacro iosify [mobile-version & [regular-version]]
|
||||
(if (= true (System/getProperty "is-desktop"))
|
||||
mobile-version
|
||||
regular-version))
|
||||
(if (System/getProperty "is-desktop")
|
||||
regular-version
|
||||
mobile-version))
|
||||
|
||||
(defn get-screenshot-pm []
|
||||
(def screenshot-chan (chan))
|
||||
|
||||
(defn publish-screenshot-fn []
|
||||
(iosify
|
||||
(do
|
||||
(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
|
||||
(log/info "Taking Desktop screenshot...")
|
||||
(Pixmap/setFilter Pixmap$Filter/BiLinear)
|
||||
(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)]]
|
||||
(ScreenUtils/getFrameBufferPixmap x y w h)))))
|
||||
[x y w h g-l g-r] [(.getScreenX ^FitViewport viewport) (.getScreenY ^FitViewport viewport) (.getScreenWidth ^FitViewport viewport) (.getScreenHeight ^FitViewport viewport)]
|
||||
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]]
|
||||
(let [save-fn (fn []
|
||||
@@ -225,21 +246,26 @@
|
||||
:id id
|
||||
:screenshot (steam/save-screenshot-file-name id)
|
||||
:state (assoc (entities :state)
|
||||
:x (get-in entities [:room :entities :ego :x])
|
||||
:y (get-in entities [:room :entities :ego :y]))
|
||||
:x (get-in entities [:room :entities :ego :x])
|
||||
:y (get-in entities [:room :entities :ego :y]))
|
||||
:blurb (or blurb name)}]
|
||||
|
||||
(log/info "writing save file...")
|
||||
(steam/write-bytes (steam/save-file-name id) (.getBytes (pr-str save) "UTF-8"))
|
||||
(on-gl (let [gl-func (fn []
|
||||
(let [pm (get-screenshot-pm)
|
||||
resized (Pixmap. 160 120 Pixmap$Format/RGB888)
|
||||
_ (.drawPixmap resized pm 0 0 1280 960 0 0 160 120)]
|
||||
(steam/save-screenshot resized (steam/save-screenshot-file-name id))
|
||||
(.dispose resized)
|
||||
(.dispose pm)))]
|
||||
(try-times gl-func 3)))))]
|
||||
#_(on-gl (let [gl-func (fn []
|
||||
(log/info "Screenshot captured. Publishing for persistence")
|
||||
(put! screenshot-chan [id (publish-screenshot-fn)]))]
|
||||
(try-times gl-func 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]
|
||||
(doseq [f [(steam/save-screenshot-file-name id)
|
||||
(steam/save-file-name id)]]
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>94</string>
|
||||
<string>100</string>
|
||||
<key>MinimumOSVersion</key>
|
||||
<string>8.0</string>
|
||||
<key>LSRequiresIPhoneOS</key>
|
||||
@@ -36,6 +36,8 @@
|
||||
<key>UILauunchImages</key>
|
||||
<array>
|
||||
<string>Default-568h</string>
|
||||
<string>Default-568h@2x</string>
|
||||
<string>Default-Portrait~ipad</string>
|
||||
</array>
|
||||
<key>UIRequiresFullScreen</key>
|
||||
<true />
|
||||
|
||||
Binary file not shown.
@@ -8,16 +8,13 @@
|
||||
[log4j/log4j "1.2.16"]
|
||||
[org.clojure/clojure "1.8.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-compiler "2.3.0"]
|
||||
[com.mobidevelop.robovm/robovm-dist-compiler "2.3.0"]
|
||||
[play-clj "0.4.6-BRYCE"]]
|
||||
:source-paths ["src/clojure" "../desktop/src-common"]
|
||||
:java-source-paths ["src/java"]
|
||||
:plugins [[lein-fruit "0.2.4-SNAPSHOT"]]
|
||||
:javac-options ["-target" "1.7" "-source" "1.7" "-Xlint:-options"]
|
||||
:jvm-opts ["-Dis-desktop=false"]
|
||||
:jvm-opts []
|
||||
:ios {:robovm-opts ["-config" "robovm.xml"]
|
||||
:robovm-path "/Users/brycecovert/.robovm-sdks/robovm-2.2.1-SNAPSHOT"
|
||||
:version 2.1}
|
||||
|
||||
@@ -18,6 +18,9 @@
|
||||
<includes>
|
||||
<include>**</include>
|
||||
</includes>
|
||||
<excludes>
|
||||
<exclude>**/*.ogg</exclude>
|
||||
</excludes>
|
||||
<skipPngCrush>true</skipPngCrush>
|
||||
</resource>
|
||||
</resources>
|
||||
|
||||
@@ -9,30 +9,31 @@ import com.badlogic.gdx.backends.iosrobovm.*;
|
||||
|
||||
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;
|
||||
UIGraphics.beginImageContext(new CGSize(1280, 960));
|
||||
((IOSApplication) Gdx.app).getUIViewController().getView().drawViewHierarchy(
|
||||
new CGRect(0, 0, Gdx.graphics.getWidth(), Gdx.graphics.getHeight()) , true);
|
||||
//((IOSApplication) Gdx.app).getUIViewController().getView().setTransform(CGAffineTransform.createScale(1, -1));
|
||||
UIView view = ((IOSApplication) Gdx.app).getUIViewController().getView();
|
||||
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();
|
||||
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