From 7d7c26758f75c0fa42e768d870ce67931d9e6d02 Mon Sep 17 00:00:00 2001 From: Edwin Jakobs Date: Mon, 22 Aug 2022 22:22:06 +0200 Subject: [PATCH] Add Post extension --- orx-fx/README.md | 31 +++++++- orx-fx/build.gradle.kts | 2 + orx-fx/src/commonMain/kotlin/Post.kt | 108 +++++++++++++++++++++++++++ orx-fx/src/demo/kotlin/DemoPost01.kt | 27 +++++++ 4 files changed, 167 insertions(+), 1 deletion(-) create mode 100644 orx-fx/src/commonMain/kotlin/Post.kt create mode 100644 orx-fx/src/demo/kotlin/DemoPost01.kt diff --git a/orx-fx/README.md b/orx-fx/README.md index bdbea16e..46fd7175 100644 --- a/orx-fx/README.md +++ b/orx-fx/README.md @@ -108,7 +108,36 @@ All distortion effects are opacity preserving ### Transform - `FlipVertically` - flips the source input vertically. - +## `Post` extension + +The `Post` extension provides an easy way to apply filters to your drawings. Allocating +and resizing color buffers is all taken care of by `Post`. + +To get additional intermediate color buffers one can access `intermediate[x]` +```kotlin +fun main() = application { + configure { + windowResizable = true + } + program { + extend(Post()) { + val blur = ApproximateGaussianBlur() + val add = Add() + post { input, output -> + blur.window = 50 + blur.sigma = 50.0 + blur.apply(input, intermediate[0]) + add.apply(arrayOf(input, intermediate[0]), output) + } + } + extend { + drawer.circle(width / 2.0, height / 2.0, 100.0) + } + } +} +``` + +