From 5f92863a5e2e7ad51665198d188fbfecb5db64ea Mon Sep 17 00:00:00 2001 From: Bryce Covert Date: Sat, 25 Feb 2017 09:27:34 -0800 Subject: [PATCH] ios saving screenshots --- ios/src/java/advent/core/Saver.java | 38 +++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 ios/src/java/advent/core/Saver.java diff --git a/ios/src/java/advent/core/Saver.java b/ios/src/java/advent/core/Saver.java new file mode 100644 index 00000000..83f36087 --- /dev/null +++ b/ios/src/java/advent/core/Saver.java @@ -0,0 +1,38 @@ +package advent.core; + +import org.robovm.apple.uikit.*; +import org.robovm.apple.coregraphics.*; +import org.robovm.apple.foundation.*; +import com.badlogic.gdx.*; +import com.badlogic.gdx.graphics.*; +import com.badlogic.gdx.backends.iosrobovm.*; + +public class Saver { + + public static Pixmap 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); + newImage = UIGraphics.getImageFromCurrentImageContext(); + UIGraphics.endImageContext(); + + 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); + } + } +}