Added the option to choose a specific server server / application to SyphonClient

Also updated the preview gif to the right colors and added orx-syphon to the README
This commit is contained in:
Rein van der Woerd
2020-02-26 13:29:11 +01:00
parent 8d2b622cbb
commit ff442da068
6 changed files with 43 additions and 6 deletions

View File

@@ -23,6 +23,7 @@ A growing library of assorted data structures, algorithms and utilities.
- [`orx-olive`](orx-olive/README.md), extensions that turns OPENRNDR in to a live coding environment - [`orx-olive`](orx-olive/README.md), extensions that turns OPENRNDR in to a live coding environment
- [`orx-osc`](orx-osc/README.md), open sound control interface - [`orx-osc`](orx-osc/README.md), open sound control interface
- [`orx-palette`](orx-palette/README.md), manage color palettes - [`orx-palette`](orx-palette/README.md), manage color palettes
- [`orx-syphon`](orx-syphon/README.md), send frames to- and from OPENRNDR and other applications in real time using Syphon
- [`orx-temporal-blur`](orx-temporal-blur/README.md), temporal (motion) blur for video production. - [`orx-temporal-blur`](orx-temporal-blur/README.md), temporal (motion) blur for video production.
# Developer notes # Developer notes

Binary file not shown.

Before

Width:  |  Height:  |  Size: 662 KiB

After

Width:  |  Height:  |  Size: 743 KiB

View File

@@ -10,7 +10,7 @@ import org.openrndr.draw.*
import org.openrndr.internal.gl3.ColorBufferGL3 import org.openrndr.internal.gl3.ColorBufferGL3
class SyphonClient: Extension { class SyphonClient(private val appName: String? = null, private val serverName: String? = null): Extension {
override var enabled = true override var enabled = true
private val client = JSyphonClient() private val client = JSyphonClient()
@@ -18,7 +18,12 @@ class SyphonClient: Extension {
override fun setup(program: Program) { override fun setup(program: Program) {
buffer = colorBuffer(program.width, program.height) buffer = colorBuffer(program.width, program.height)
client.init() client.init()
// Choosing a different server
if (appName != null) client.setApplicationName(appName)
if (serverName != null) client.setServerName(serverName)
} }
override fun beforeDraw(drawer: Drawer, program: Program) { override fun beforeDraw(drawer: Drawer, program: Program) {
@@ -43,6 +48,10 @@ class SyphonClient: Extension {
rectBuffer.copyTo(buffer) rectBuffer.copyTo(buffer)
} }
} }
override fun shutdown(program: Program) {
client.stop()
}
} }

View File

@@ -0,0 +1,25 @@
import org.openrndr.application
import org.openrndr.color.ColorRGBa
import org.openrndr.extra.syphon.SyphonClient
/**
* This example uses After Effects and OPENRNDR connected via Syphon
*/
fun main() = application {
configure {
// The maximum resolution supported by the free
// version of AESyphon
width = 1024
height = 768
}
program {
val syphonClient = SyphonClient("Adobe After Effects", "Live Preview")
extend(syphonClient)
extend {
drawer.background(ColorRGBa.BLACK)
drawer.image(syphonClient.buffer)
}
}
}

View File

@@ -1,7 +1,7 @@
import org.openrndr.application import org.openrndr.application
import org.openrndr.color.ColorRGBa import org.openrndr.color.ColorRGBa
import org.openrndr.extra.syphon.SyphonServer import org.openrndr.extra.syphon.SyphonServer
import kotlin.math.sin import kotlin.math.*
fun main() = application { fun main() = application {
@@ -14,8 +14,9 @@ fun main() = application {
extend(SyphonServer("Test")) extend(SyphonServer("Test"))
extend { extend {
drawer.background(ColorRGBa.RED) drawer.background(ColorRGBa.PINK)
drawer.circle(width/2.0, height/2.0, sin(seconds) * width / 2.0) drawer.fill = ColorRGBa.WHITE
drawer.circle(drawer.bounds.center, abs(cos(seconds)) * height * 0.5)
} }
} }
} }

View File

@@ -28,8 +28,9 @@ fun main() = application {
drawer.background(ColorRGBa(sin(seconds), cos(seconds / 2.0), 0.5, 1.0)) drawer.background(ColorRGBa(sin(seconds), cos(seconds / 2.0), 0.5, 1.0))
} }
drawer.background(ColorRGBa.GRAY) drawer.background(ColorRGBa.PINK)
drawer.circle(width/2.0, height/2.0, sin(seconds) * width / 2.0) drawer.fill = ColorRGBa.WHITE
drawer.circle(drawer.bounds.center, abs(cos(seconds)) * height * 0.5)
drawer.image(rt.colorBuffer(0)) drawer.image(rt.colorBuffer(0))
} }
} }