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:
@@ -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 |
@@ -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()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
25
orx-syphon/src/test/kotlin/ClientExampleSpecificServer.kt
Normal file
25
orx-syphon/src/test/kotlin/ClientExampleSpecificServer.kt
Normal 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)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -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))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user