[orx-compositor] Add BufferMultisample support (#236)

Co-authored-by: Yvee1 <stevenvdb@live.nl>
This commit is contained in:
Vechro
2022-06-09 14:20:24 +03:00
committed by GitHub
parent 621fd2bdf2
commit 34914b5a47
2 changed files with 117 additions and 26 deletions

View File

@@ -0,0 +1,50 @@
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 {
configure {
width = 800
height = 800
}
program {
val layers = compose {
layer(BufferMultisample.SampleCount(16)) {
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)
}
}
}