Shade style presets
The orx-shade-styles
library provides a number of preset shade styles
Prerequisites
Assuming you are working on an openrndr-template
based project, all you have to do is enable orx-shade-styles
in the orxFeatures
set in build.gradle.kts
and reimport the gradle project.
linearGradient
fun main() = application {
program {
val image = loadImage("data/images/cheeta.jpg")
val font = loadFont("data/fonts/default.otf", 144.0)
extend {
drawer.shadeStyle = linearGradient(ColorRGBa.PINK, ColorRGBa.RED, rotation = seconds * 60.0)
drawer.rectangle(80.0, 40.0, 200.0, 200.0)
drawer.circle(180.0, 340.0, 90.0)
drawer.image(image, 300.0, 40.0, 640 * (200 / 480.0), 200.0)
drawer.fontMap = font
drawer.text("OPEN", 300.0, 340.0)
drawer.text("RNDR", 300.0, 420.0)
}
}
}
radialGradient
fun main() = application {
program {
val image = loadImage("data/images/cheeta.jpg")
val font = loadFont("data/fonts/default.otf", 144.0)
extend {
drawer.shadeStyle = radialGradient(ColorRGBa.RED, ColorRGBa.PINK, length = 0.5, offset = Vector2(cos(seconds), sin(seconds * 0.5)))
drawer.rectangle(80.0, 40.0, 200.0, 200.0)
drawer.circle(180.0, 340.0, 90.0)
drawer.image(image, 300.0, 40.0, 640 * (200 / 480.0), 200.0)
drawer.fontMap = font
drawer.text("OPEN", 300.0, 340.0)
drawer.text("RNDR", 300.0, 420.0)
}
}
}
angularGradient
fun main() = application {
program {
val image = loadImage("data/images/cheeta.jpg")
val font = loadFont("data/fonts/default.otf", 144.0)
extend {
drawer.shadeStyle = angularGradient(ColorRGBa.RED, ColorRGBa.PINK, rotation = seconds * 60.0)
drawer.rectangle(80.0, 40.0, 200.0, 200.0)
drawer.circle(180.0, 340.0, 90.0)
drawer.image(image, 300.0, 40.0, 640 * (200 / 480.0), 200.0)
drawer.fontMap = font
drawer.text("OPEN", 300.0, 340.0)
drawer.text("RNDR", 300.0, 420.0)
}
}
}
halfAngularGradient
fun main() = application {
program {
val image = loadImage("data/images/cheeta.jpg")
val font = loadFont("data/fonts/default.otf", 144.0)
extend {
drawer.shadeStyle = halfAngularGradient(ColorRGBa.RED, ColorRGBa.PINK, rotation = seconds * 60.0)
drawer.rectangle(80.0, 40.0, 200.0, 200.0)
drawer.circle(180.0, 340.0, 90.0)
drawer.image(image, 300.0, 40.0, 640 * (200 / 480.0), 200.0)
drawer.fontMap = font
drawer.text("OPEN", 300.0, 340.0)
drawer.text("RNDR", 300.0, 420.0)
}
}
}