import org.openrndr.Extension import org.openrndr.Program import org.openrndr.application import org.openrndr.extensions.SingleScreenshot import org.openrndr.extra.olive.Olive /** * Live-coding with [Olive], an older, not recommended, way to do things */ fun main() = application { configure { width = 768 height = 576 } program { extend(Olive()) { script = "orx-olive/src/demo/kotlin/demo-olive-01.kts" // -- this block is for automation purposes only if (System.getProperty("takeScreenshot") == "true") { scriptLoaded.listen { // -- this is a bit of hack, we need to push the screenshot extension in front of the olive one fun Program.extendHead(extension: T, configure: T.() -> Unit): T { extensions.add(0, extension) extension.configure() extension.setup(this) return extension } extendHead(SingleScreenshot()) { this.outputFile = System.getProperty("screenshotPath") } } } } } }