51 lines
1.6 KiB
Kotlin
51 lines
1.6 KiB
Kotlin
import org.openrndr.application
|
|
import org.openrndr.color.ColorRGBa
|
|
import org.openrndr.draw.BufferMultisample
|
|
import org.openrndr.extra.compositor.blend
|
|
import org.openrndr.extra.compositor.compose
|
|
import org.openrndr.extra.compositor.draw
|
|
import org.openrndr.extra.compositor.layer
|
|
import org.openrndr.extra.fx.blend.Normal
|
|
import org.openrndr.math.Vector2
|
|
import org.openrndr.shape.Rectangle
|
|
|
|
/**
|
|
* Demonstration of using [BufferMultisample] on a per layer basis.
|
|
* Try changing which layer has multisampling applied and observe the results.
|
|
*/
|
|
fun main() = application {
|
|
System.setProperty("org.openrndr.gl3.debug", "true")
|
|
configure {
|
|
width = 800
|
|
height = 800
|
|
}
|
|
|
|
program {
|
|
val layers = compose {
|
|
layer(multisample = BufferMultisample.SampleCount(4)) {
|
|
draw {
|
|
drawer.translate(drawer.bounds.center)
|
|
drawer.rotate(seconds)
|
|
drawer.fill = ColorRGBa.PINK
|
|
drawer.rectangle(Rectangle.fromCenter(Vector2.ZERO, 200.0))
|
|
}
|
|
|
|
layer {
|
|
blend(Normal()) {
|
|
clip = true
|
|
}
|
|
draw {
|
|
drawer.rotate(seconds * -2)
|
|
drawer.fill = ColorRGBa.WHITE
|
|
drawer.rectangle(Rectangle.fromCenter(Vector2.ZERO, 200.0))
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
extend {
|
|
drawer.clear(ColorRGBa.WHITE)
|
|
layers.draw(drawer)
|
|
}
|
|
}
|
|
} |