[orx-temporal-blur] Fix TemporalBlur compatibility with ProgramImplementation

This commit is contained in:
Edwin Jakobs
2023-01-18 16:34:16 +01:00
parent e8640989b5
commit b4e2f6a212
3 changed files with 3 additions and 14 deletions

View File

@@ -5,16 +5,10 @@ import org.openrndr.math.Polar
fun main() = application { fun main() = application {
program { program {
if (System.getProperty("takeScreenshot") == "true") {
extend(SingleScreenshot()) {
this.outputFile = System.getProperty("screenshotPath")
}
}
extend(TemporalBlur()) { extend(TemporalBlur()) {
samples = 10 samples = 10
duration = 0.9 duration = 0.9
} }
extend { extend {
drawer.circle(Polar(seconds * 360.0, 200.0).cartesian + drawer.bounds.center, 50.0) drawer.circle(Polar(seconds * 360.0, 200.0).cartesian + drawer.bounds.center, 50.0)
} }

View File

@@ -1,18 +1,12 @@
import org.openrndr.application import org.openrndr.application
import org.openrndr.color.ColorRGBa import org.openrndr.color.ColorRGBa
import org.openrndr.draw.tint import org.openrndr.draw.tint
import org.openrndr.extensions.SingleScreenshot
import org.openrndr.extra.temporalblur.TemporalBlur import org.openrndr.extra.temporalblur.TemporalBlur
import org.openrndr.math.Polar import org.openrndr.math.Polar
import kotlin.math.cos import kotlin.math.cos
fun main() = application { fun main() = application {
program { program {
if (System.getProperty("takeScreenshot") == "true") {
extend(SingleScreenshot()) {
this.outputFile = System.getProperty("screenshotPath")
}
}
extend(TemporalBlur()) { extend(TemporalBlur()) {
samples = 100 samples = 100
duration = 10.0 duration = 10.0

View File

@@ -3,6 +3,7 @@ package org.openrndr.extra.temporalblur
import org.intellij.lang.annotations.Language import org.intellij.lang.annotations.Language
import org.openrndr.Extension import org.openrndr.Extension
import org.openrndr.Program import org.openrndr.Program
import org.openrndr.ProgramImplementation
import org.openrndr.color.ColorRGBa import org.openrndr.color.ColorRGBa
import org.openrndr.draw.* import org.openrndr.draw.*
import org.openrndr.extra.noise.uniformRing import org.openrndr.extra.noise.uniformRing
@@ -179,7 +180,7 @@ class TemporalBlur : Extension {
program.clock = { oldClockValue - (i * duration) / (fps * samples) } program.clock = { oldClockValue - (i * duration) / (fps * samples) }
// I guess we need something better here. // I guess we need something better here.
val fsf = Program::class.java.getDeclaredField("frameSeconds") val fsf = ProgramImplementation::class.java.getDeclaredField("frameSeconds")
fsf.isAccessible = true fsf.isAccessible = true
fsf.setDouble(program, program.clock()) fsf.setDouble(program, program.clock())
@@ -229,7 +230,7 @@ class TemporalBlur : Extension {
// restore clock // restore clock
program.clock = oldClock program.clock = oldClock
val fsf = Program::class.java.getDeclaredField("frameSeconds") val fsf = ProgramImplementation::class.java.getDeclaredField("frameSeconds")
fsf.isAccessible = true fsf.isAccessible = true
fsf.setDouble(program, oldClockTime) fsf.setDouble(program, oldClockTime)
} }