Screen capture demo (#123)
* Add screen capture demo * Tweak build.gradle ffmpeg dependency
This commit is contained in:
@@ -14,7 +14,7 @@ buildscript {
|
||||
apply plugin: 'org.jetbrains.dokka'
|
||||
|
||||
project.ext {
|
||||
openrndrVersion = "0.3.43-rc.5"
|
||||
openrndrVersion = "0.3.43-rc.11"
|
||||
kotlinVersion = "1.3.72"
|
||||
spekVersion = "2.0.10"
|
||||
libfreenectVersion = "0.5.7-1.5.3"
|
||||
|
||||
@@ -13,9 +13,12 @@ def boofcvVersion = "0.34"
|
||||
dependencies {
|
||||
demoImplementation(project(":orx-mesh-generators"))
|
||||
demoImplementation(project(":orx-camera"))
|
||||
demoImplementation(project(":orx-parameters"))
|
||||
|
||||
demoImplementation("org.openrndr:openrndr-core:$openrndrVersion")
|
||||
demoImplementation("org.openrndr:openrndr-extensions:$openrndrVersion")
|
||||
demoImplementation("org.openrndr:openrndr-ffmpeg:$openrndrVersion")
|
||||
demoRuntimeOnly("org.openrndr:openrndr-ffmpeg-natives-$openrndrOS:$openrndrVersion")
|
||||
demoRuntimeOnly("org.openrndr:openrndr-gl3:$openrndrVersion")
|
||||
demoRuntimeOnly("org.openrndr:openrndr-gl3-natives-$openrndrOS:$openrndrVersion")
|
||||
demoImplementation(sourceSets.getByName("main").output)
|
||||
|
||||
44
openrndr-demos/src/demo/kotlin/DemoScreenCapture01.kt
Normal file
44
openrndr-demos/src/demo/kotlin/DemoScreenCapture01.kt
Normal file
@@ -0,0 +1,44 @@
|
||||
import org.openrndr.application
|
||||
import org.openrndr.color.ColorRGBa
|
||||
import org.openrndr.draw.DepthTestPass
|
||||
import org.openrndr.draw.DrawPrimitive
|
||||
import org.openrndr.draw.isolated
|
||||
import org.openrndr.draw.shadeStyle
|
||||
import org.openrndr.extras.meshgenerators.boxMesh
|
||||
import org.openrndr.ffmpeg.VideoPlayerFFMPEG
|
||||
import org.openrndr.math.Vector3
|
||||
|
||||
fun main() {
|
||||
application {
|
||||
program {
|
||||
val cube = boxMesh()
|
||||
val screen = VideoPlayerFFMPEG.fromScreen(
|
||||
frameRate = 15.0,
|
||||
imageWidth = 300,
|
||||
imageHeight = 300
|
||||
)
|
||||
|
||||
screen.play()
|
||||
extend {
|
||||
screen.draw(drawer, true) // update the screen grabber
|
||||
drawer.isolated {
|
||||
clear(ColorRGBa.WHITE)
|
||||
perspective(60.0, width * 1.0 / height, 0.01, 1000.0)
|
||||
depthWrite = true
|
||||
depthTestPass = DepthTestPass.LESS_OR_EQUAL
|
||||
shadeStyle = shadeStyle {
|
||||
fragmentTransform = "x_fill = texture(p_tex, vec2(1.0-va_texCoord0.x, va_texCoord0.y));"
|
||||
screen.colorBuffer?.run {
|
||||
parameter("tex", this)
|
||||
}
|
||||
}
|
||||
rotate(Vector3.UNIT_Z, 90.0)
|
||||
translate(0.0, 0.0, -120.0)
|
||||
rotate(Vector3.UNIT_X, seconds * 10)
|
||||
scale(90.0)
|
||||
vertexBuffer(cube, DrawPrimitive.TRIANGLES)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user