aboutsummaryrefslogtreecommitdiff
path: root/src/main/kotlin/phenax/extensions
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main/kotlin/phenax/extensions/CameraManager.kt6
-rw-r--r--src/main/kotlin/phenax/extensions/HeadlessScreenshot.kt30
2 files changed, 33 insertions, 3 deletions
diff --git a/src/main/kotlin/phenax/extensions/CameraManager.kt b/src/main/kotlin/phenax/extensions/CameraManager.kt
index d14205f..5112332 100644
--- a/src/main/kotlin/phenax/extensions/CameraManager.kt
+++ b/src/main/kotlin/phenax/extensions/CameraManager.kt
@@ -7,7 +7,7 @@ import org.openrndr.draw.*
import org.openrndr.math.Quaternion
import org.openrndr.math.Vector2
import org.openrndr.math.Vector3
-import phenax.utils.recordingEnabled
+import phenax.utils.*
enum class ActionType {
PAN,
@@ -35,7 +35,7 @@ class CameraManager(public var cameraPosition: Vector3, public var cameraRotatio
}
override fun setup(program: Program) {
- if (recordingEnabled) return
+ if (recordingEnabled || screenshotEnabled) return
cameraQuaternion = Quaternion.fromAngles(cameraRotation.x, cameraRotation.y, cameraRotation.z)
@@ -99,7 +99,7 @@ class CameraManager(public var cameraPosition: Vector3, public var cameraRotatio
override fun beforeDraw(drawer: Drawer, program: Program) {}
override fun afterDraw(drawer: Drawer, program: Program) {
- if (recordingEnabled) return
+ if (recordingEnabled || screenshotEnabled) return
drawer.fontMap = font
drawer.fill = ColorRGBa.WHITE
diff --git a/src/main/kotlin/phenax/extensions/HeadlessScreenshot.kt b/src/main/kotlin/phenax/extensions/HeadlessScreenshot.kt
new file mode 100644
index 0000000..35de05d
--- /dev/null
+++ b/src/main/kotlin/phenax/extensions/HeadlessScreenshot.kt
@@ -0,0 +1,30 @@
+package phenax.extensions
+
+import org.openrndr.*
+import org.openrndr.draw.*
+import org.openrndr.extensions.SingleScreenshot
+import org.openrndr.ffmpeg.VideoWriter
+
+class HeadlessScreenshot : Extension {
+ override var enabled: Boolean = true
+
+ var screenshots: SingleScreenshot? = null
+ var videoWriter: VideoWriter? = null
+ var maxFrameCount: Int? = null
+
+ override fun setup(program: Program) {
+ val scr = SingleScreenshot()
+ screenshots = scr
+ program.extend(scr) {
+ outputFile = "screenshot/${program.name}.png"
+ }
+ }
+
+ override fun beforeDraw(drawer: Drawer, program: Program) {}
+
+ override fun afterDraw(drawer: Drawer, program: Program) {
+ screenshots?.trigger()
+
+ // program.application.exit()
+ }
+}