Files
orx/orx-no-clear
2018-11-25 09:51:41 +00:00
..
2018-11-25 09:51:41 +00:00
2018-11-25 09:51:41 +00:00

orx-no-clear

A simple OPENRNDR Extension that provides the classical drawing-without-clearing-the-screen functionality that OPENRNDR does not support natively.

Usage

fun main() = application {
    configure {
        title = "NoClearProgram"
    }
    program {
        backgroundColor = ColorRGBa.PINK
        extend(NoClear())
        extend {
            drawer.circle(Math.cos(seconds) * width / 2.0 + width / 2.0, Math.sin(seconds * 0.24) * height / 2.0 + height / 2.0, 20.0)
        }
    }
}

Usage with a Lambda Expression Parameter

Optionally, the static backdrop may be initialised by passing a custom code block to the NoClear() function.

  • Example 1. Customising the backdrop with an image
val img = loadImage("file:data\\myImage.png")
val bgImage = {
        drawer.image(img, 0.0, 0.0, width * 1.0, height * 1.0)
    }
extend(NoClear(bgImage))
  • Example 2. Customising the backdrop with a checker-board pattern
val bgBoard = {
    val xw = width / 8.0
    val yh = height / 8.0
    drawer.fill = ColorRGBa.RED
    (0..7).forEach { row ->
        (0..7).forEach { col ->
            if ((row + col) % 2 == 0) {
                drawer.rectangle(row * xw, col * yh, xw, yh)
            }
        }
    }
}
extend(NoClear(bgBoard))

NB! any submitted lambda expression must be valid within the renderTarget context.