Screen capture demo (#123)

* Add screen capture demo
* Tweak build.gradle ffmpeg dependency
This commit is contained in:
Abe Pazos
2020-06-09 16:33:03 +02:00
committed by GitHub
parent dd2bd348e3
commit 412c3fe314
3 changed files with 48 additions and 1 deletions

View File

@@ -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"

View File

@@ -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)

View 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)
}
}
}
}
}