[orx-temporal-blur] Fix issues with clock
This commit is contained in:
@@ -6,7 +6,6 @@ import org.openrndr.Program
|
|||||||
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
|
||||||
import org.openrndr.extra.fx.blend.Add
|
|
||||||
import org.openrndr.filter.color.delinearize
|
import org.openrndr.filter.color.delinearize
|
||||||
import org.openrndr.filter.color.linearize
|
import org.openrndr.filter.color.linearize
|
||||||
import org.openrndr.math.Matrix44
|
import org.openrndr.math.Matrix44
|
||||||
@@ -45,6 +44,7 @@ private val add by lazy { PlainAdd() }
|
|||||||
*/
|
*/
|
||||||
class TemporalBlur : Extension {
|
class TemporalBlur : Extension {
|
||||||
private var oldClock: () -> Double = { 0.0 }
|
private var oldClock: () -> Double = { 0.0 }
|
||||||
|
var oldClockTime = 0.0
|
||||||
override var enabled: Boolean = true
|
override var enabled: Boolean = true
|
||||||
|
|
||||||
private var accumulator: RenderTarget? = null
|
private var accumulator: RenderTarget? = null
|
||||||
@@ -166,6 +166,7 @@ class TemporalBlur : Extension {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
oldClock = program.clock
|
oldClock = program.clock
|
||||||
|
oldClockTime = program.clock()
|
||||||
val oldClockValue = oldClock()
|
val oldClockValue = oldClock()
|
||||||
|
|
||||||
for (i in samples - 1 downTo 1) {
|
for (i in samples - 1 downTo 1) {
|
||||||
@@ -221,11 +222,15 @@ class TemporalBlur : Extension {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
image?.bind()
|
image?.bind()
|
||||||
|
|
||||||
|
// restore clock
|
||||||
|
program.clock = oldClock
|
||||||
|
val fsf = Program::class.java.getDeclaredField("frameSeconds")
|
||||||
|
fsf.isAccessible = true
|
||||||
|
fsf.setDouble(program, oldClockTime)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun afterDraw(drawer: Drawer, program: Program) {
|
override fun afterDraw(drawer: Drawer, program: Program) {
|
||||||
// restore clock
|
|
||||||
program.clock = oldClock
|
|
||||||
// -- we receive one last frame here
|
// -- we receive one last frame here
|
||||||
image?.unbind()
|
image?.unbind()
|
||||||
image!!.colorBuffer(0).copyTo(imageResolved!!.colorBuffer(0))
|
image!!.colorBuffer(0).copyTo(imageResolved!!.colorBuffer(0))
|
||||||
|
|||||||
Reference in New Issue
Block a user