From 94dab945a3859a410bb3f207440ed866f0f65b75 Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Mon, 2 Nov 2015 17:57:01 -0800 Subject: [PATCH] autosave images. --- desktop/src-common/advent/screens/scene.clj | 5 +++-- desktop/src-common/advent/utils.clj | 19 +++++++++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/desktop/src-common/advent/screens/scene.clj b/desktop/src-common/advent/screens/scene.clj index df522b8c..c56304e9 100644 --- a/desktop/src-common/advent/screens/scene.clj +++ b/desktop/src-common/advent/screens/scene.clj @@ -38,7 +38,7 @@ [advent.screens.dialogue :refer [talking-screen]] [advent.screens.inventory :refer [inventory-screen]] [clojure.core.async :refer [put! ! chan go thread take! alts!! dropping-buffer]]) - (:import [com.badlogic.gdx.graphics Pixmap Pixmap$Filter Texture Texture$TextureFilter GL20 GL30] + (:import [com.badlogic.gdx.graphics Pixmap$Format Pixmap Pixmap$Filter Texture Texture$TextureFilter GL20 GL30] [com.badlogic.gdx.graphics.g2d TextureRegion Animation Batch] [com.badlogic.gdx.math Vector3 Matrix4] [com.badlogic.gdx.utils.viewport FitViewport] @@ -1245,9 +1245,10 @@ void main () :on-show-inventory (fn [screen [entities]] (click-inventory screen entities)) - :on-menu (fn [screen [entities]] + :on-menu (fn [{:keys [viewport] :as screen} [entities]] (when-not (or (get-in entities [:tweens :fade-out]) (get-in entities [:tweens :fade-in])) + (input! :set-cursor-image (utils/cursor "cursor.png" :hourglass) 0 0) (-> entities (assoc-in [:closing? :value] true) diff --git a/desktop/src-common/advent/utils.clj b/desktop/src-common/advent/utils.clj index cc39c342..d18f40c6 100644 --- a/desktop/src-common/advent/utils.clj +++ b/desktop/src-common/advent/utils.clj @@ -10,9 +10,12 @@ [clojure.edn :as edn] [clojure.string :as str] [advent.saves :as saves]) - (:import [com.badlogic.gdx.graphics Pixmap 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.utils.viewport FitViewport] + [com.badlogic.gdx.utils ScreenUtils] + [com.badlogic.gdx.files FileHandle] + [com.badlogic.gdx.graphics PixmapIO$PNG] [com.badlogic.gdx.scenes.scene2d Actor Stage] [com.badlogic.gdx.math CatmullRomSpline] [com.badlogic.gdx Application Audio Files Game Gdx Graphics Input @@ -73,7 +76,19 @@ (cons (saves/saves name) (filter (complement #{(saves/saves name)}) (snapshot-list)))))) - .flush)) + .flush) + (on-gl (let [f (FileHandle. (str "screenshot-" (clojure.core/name name) ".png" )) + _ (Pixmap/setFilter Pixmap$Filter/BiLinear) + #_#_[x y w h g-l g-r] [(.getScreenX viewport) (.getScreenY viewport) (.getScreenWidth viewport) (.getScreenHeight viewport)] + [x y w h] [0 0 1400 900] + pm (ScreenUtils/getFrameBufferPixmap x y w h) + + resized (Pixmap. 128 96 Pixmap$Format/RGB888) + _ (.drawPixmap resized pm 0 0 w h 0 0 128 96) + png (PixmapIO$PNG. (* w h 1.5))] + (.write png f resized) + (.dispose png) + ))) (defn save [entities] (snapshot-state entities :autosave))