Files
orx/orx-fx/src/main/kotlin/distort/BlockRepeat.kt

45 lines
1.4 KiB
Kotlin

package org.openrndr.extra.fx.distort
import org.openrndr.draw.Filter
import org.openrndr.draw.Shader
import org.openrndr.extra.fx.filterFragmentCode
import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter
@Description("Block repeat")
class BlockRepeat : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("distort/block-repeat.frag"))) {
@DoubleParameter("block width", 0.0, 1.0, order = 0)
var blockWidth: Double by parameters
@DoubleParameter("block height", 0.0, 1.0, order = 1)
var blockHeight: Double by parameters
@DoubleParameter("block x-offset", -0.5, 0.5, order = 2)
var blockOffsetX: Double by parameters
@DoubleParameter("block y-offset", -0.5, 0.5, order = 3)
var blockOffsetY: Double by parameters
/**
* Source scale, 0.0 is a 1:1 mapping, 1.0 fits entire source image in block
*/
@DoubleParameter("source scale", 0.0, 1.0, order = 4)
var sourceScale: Double by parameters
@DoubleParameter("source x-offset", -0.5, 0.5, order = 5)
var sourceOffsetX: Double by parameters
@DoubleParameter("source y-offset", -.5, .5, order = 6)
var sourceOffsetY: Double by parameters
init {
blockWidth = 0.25
blockHeight = 0.25
blockOffsetX = 0.0
blockOffsetY = 0.0
sourceOffsetX = 0.0
sourceOffsetY = 0.0
sourceScale = 0.0
}
}