Files
orx/orx-fx/src/commonMain/kotlin/distort/Fisheye.kt
Edwin Jakobs 750b5ef67e [orx-fx] Use the appropriate FilterNto1 interfaces
* Fix webgl 2 compatibility
 * Add LumaLaplacian, ACESTonemap, ReinhardTonemap, DirectionalHashBlur
2022-12-28 14:18:37 +01:00

39 lines
1.2 KiB
Kotlin

package org.openrndr.extra.fx.distort
import org.openrndr.draw.*
import org.openrndr.extra.fx.fx_fisheye
import org.openrndr.extra.fx.mppFilterShader
import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter
@Description("Fisheye")
class Fisheye : Filter1to1(mppFilterShader(fx_fisheye, "fisheye")) {
@DoubleParameter("strength", -1.0, 1.0, order = 0)
var strength: Double by parameters
@DoubleParameter("scale", 0.0, 2.0, order = 0)
var scale: Double by parameters
@DoubleParameter("feather", 0.0, 100.0, order = 1)
var feather: Double by parameters
@DoubleParameter("rotation", -180.0, 180.0, order = 1)
var rotation: Double by parameters
init {
strength = 0.1
feather = 1.0
scale = 1.0
rotation = 0.0
}
var bicubicFiltering = true
override fun apply(source: Array<ColorBuffer>, target: Array<ColorBuffer>) {
if (bicubicFiltering && source.isNotEmpty()) {
source[0].generateMipmaps()
source[0].filter(MinifyingFilter.LINEAR_MIPMAP_LINEAR, MagnifyingFilter.LINEAR)
}
super.apply(source, target)
}
}