Upgrade to OPENRNDR 0.3.40, fix Filters, better default paths for orx-gui

This commit is contained in:
Edwin Jakobs
2020-03-27 19:12:14 +01:00
parent 46d48cd07b
commit 7ea41ddd59
43 changed files with 154 additions and 153 deletions

View File

@@ -15,7 +15,7 @@ buildscript {
apply plugin: 'org.jetbrains.dokka' apply plugin: 'org.jetbrains.dokka'
project.ext { project.ext {
openrndrVersion = "0.3.40-rc.5" openrndrVersion = "0.3.40"
kotlinVersion = "1.3.70" kotlinVersion = "1.3.70"
spekVersion = "2.0.10" spekVersion = "2.0.10"
libfreenectVersion = "0.5.7-1.5.2" libfreenectVersion = "0.5.7-1.5.2"

View File

@@ -7,9 +7,9 @@ import java.net.URL
internal class FilterTools internal class FilterTools
internal fun filterFragmentCode(resourceId: String): String {
val urlString = resourceUrl("gl3/$resourceId", FilterTools::class.java) internal fun filterFragmentUrl(resourceId: String): String {
return URL(urlString).readText() return resourceUrl("gl3/$resourceId", FilterTools::class.java)
} }
internal data class ColorBufferDescription(val width: Int, val height: Int, val contentScale: Double, val format: ColorFormat, val type: ColorType) internal data class ColorBufferDescription(val width: Int, val height: Int, val contentScale: Double, val format: ColorFormat, val type: ColorType)

View File

@@ -1,8 +1,8 @@
package org.openrndr.extra.fx.antialias package org.openrndr.extra.fx.antialias
import org.openrndr.draw.Filter import org.openrndr.draw.Filter
import org.openrndr.draw.Shader import org.openrndr.draw.filterShaderFromUrl
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
@@ -10,7 +10,7 @@ import org.openrndr.extra.parameters.DoubleParameter
* FXAA approximate antialiasing filter. Only works on LDR inputs * FXAA approximate antialiasing filter. Only works on LDR inputs
*/ */
@Description("FXAA") @Description("FXAA")
class FXAA : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("antialias/fxaa.frag"))) { class FXAA : Filter(filterShaderFromUrl(filterFragmentUrl("antialias/fxaa.frag"))) {
/** /**
* luma threshold, default value is 0.5 * luma threshold, default value is 0.5
*/ */

View File

@@ -1,11 +1,11 @@
package org.openrndr.extra.fx.blend package org.openrndr.extra.fx.blend
import org.openrndr.draw.Filter import org.openrndr.draw.Filter
import org.openrndr.draw.Shader import org.openrndr.draw.filterShaderFromUrl
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.BooleanParameter import org.openrndr.extra.parameters.BooleanParameter
class ColorBurn : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/color-burn.frag"))) { class ColorBurn : Filter(filterShaderFromUrl(filterFragmentUrl("blend/color-burn.frag"))) {
@BooleanParameter("source clip") @BooleanParameter("source clip")
var clip: Boolean by parameters var clip: Boolean by parameters
@@ -14,7 +14,7 @@ class ColorBurn : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFr
} }
} }
class ColorDodge : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/color-dodge.frag"))) { class ColorDodge : Filter(filterShaderFromUrl(filterFragmentUrl("blend/color-dodge.frag"))) {
@BooleanParameter("source clip") @BooleanParameter("source clip")
var clip: Boolean by parameters var clip: Boolean by parameters
@@ -23,7 +23,7 @@ class ColorDodge : Filter(Shader.createFromCode(Filter.filterVertexCode, filterF
} }
} }
class Darken : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/darken.frag"))) { class Darken : Filter(filterShaderFromUrl(filterFragmentUrl("blend/darken.frag"))) {
@BooleanParameter("source clip") @BooleanParameter("source clip")
var clip: Boolean by parameters var clip: Boolean by parameters
@@ -32,7 +32,7 @@ class Darken : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragm
} }
} }
class HardLight : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/hard-light.frag"))) { class HardLight : Filter(filterShaderFromUrl(filterFragmentUrl("blend/hard-light.frag"))) {
@BooleanParameter("source clip") @BooleanParameter("source clip")
var clip: Boolean by parameters var clip: Boolean by parameters
@@ -41,7 +41,7 @@ class HardLight : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFr
} }
} }
class Lighten : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/lighten.frag"))) { class Lighten : Filter(filterShaderFromUrl(filterFragmentUrl("blend/lighten.frag"))) {
@BooleanParameter("source clip") @BooleanParameter("source clip")
var clip: Boolean by parameters var clip: Boolean by parameters
@@ -50,7 +50,7 @@ class Lighten : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFrag
} }
} }
class Multiply : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/multiply.frag"))) { class Multiply : Filter(filterShaderFromUrl(filterFragmentUrl("blend/multiply.frag"))) {
@BooleanParameter("source clip") @BooleanParameter("source clip")
var clip: Boolean by parameters var clip: Boolean by parameters
@@ -59,7 +59,7 @@ class Multiply : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFra
} }
} }
class Normal : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/normal.frag"))) { class Normal : Filter(filterShaderFromUrl(filterFragmentUrl("blend/normal.frag"))) {
@BooleanParameter("source clip") @BooleanParameter("source clip")
var clip: Boolean by parameters var clip: Boolean by parameters
@@ -68,7 +68,7 @@ class Normal : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragm
} }
} }
class Overlay : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/overlay.frag"))) { class Overlay : Filter(filterShaderFromUrl(filterFragmentUrl("blend/overlay.frag"))) {
@BooleanParameter("source clip") @BooleanParameter("source clip")
var clip: Boolean by parameters var clip: Boolean by parameters
@@ -77,7 +77,7 @@ class Overlay : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFrag
} }
} }
class Screen : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/screen.frag"))) { class Screen : Filter(filterShaderFromUrl(filterFragmentUrl("blend/screen.frag"))) {
@BooleanParameter("source clip") @BooleanParameter("source clip")
var clip: Boolean by parameters var clip: Boolean by parameters
@@ -87,18 +87,18 @@ class Screen : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragm
} }
class SourceIn : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/source-in.frag"))) class SourceIn : Filter(filterShaderFromUrl(filterFragmentUrl("blend/source-in.frag")))
class SourceOut : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/source-out.frag"))) class SourceOut : Filter(filterShaderFromUrl(filterFragmentUrl("blend/source-out.frag")))
class SourceAtop : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/source-atop.frag"))) class SourceAtop : Filter(filterShaderFromUrl(filterFragmentUrl("blend/source-atop.frag")))
class DestinationIn : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/destination-in.frag"))) class DestinationIn : Filter(filterShaderFromUrl(filterFragmentUrl("blend/destination-in.frag")))
class DestinationOut : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/destination-out.frag"))) class DestinationOut : Filter(filterShaderFromUrl(filterFragmentUrl("blend/destination-out.frag")))
class DestinationAtop : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/destination-atop.frag"))) class DestinationAtop : Filter(filterShaderFromUrl(filterFragmentUrl("blend/destination-atop.frag")))
class Xor : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/xor.frag"))) class Xor : Filter(filterShaderFromUrl(filterFragmentUrl("blend/xor.frag")))
class MultiplyContrast : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/multiply-contrast.frag"))) class MultiplyContrast : Filter(filterShaderFromUrl(filterFragmentUrl("blend/multiply-contrast.frag")))
class Passthrough : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/passthrough.frag"))) class Passthrough : Filter(filterShaderFromUrl(filterFragmentUrl("blend/passthrough.frag")))
class Add : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/add.frag"))) { class Add : Filter(filterShaderFromUrl(filterFragmentUrl("blend/add.frag"))) {
@BooleanParameter("source clip") @BooleanParameter("source clip")
var clip: Boolean by parameters var clip: Boolean by parameters
@@ -106,7 +106,7 @@ class Add : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragment
clip = false clip = false
} }
} }
class Subtract : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/subtract.frag"))) { class Subtract : Filter(filterShaderFromUrl(filterFragmentUrl("blend/subtract.frag"))) {
@BooleanParameter("source clip") @BooleanParameter("source clip")
var clip: Boolean by parameters var clip: Boolean by parameters

View File

@@ -1,8 +1,8 @@
package org.openrndr.extra.fx.blur package org.openrndr.extra.fx.blur
import org.openrndr.draw.* import org.openrndr.draw.*
import org.openrndr.extra.fx.filterFragmentCode
import org.openrndr.extra.fx.ColorBufferDescription import org.openrndr.extra.fx.ColorBufferDescription
import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
import org.openrndr.extra.parameters.IntParameter import org.openrndr.extra.parameters.IntParameter
@@ -13,8 +13,7 @@ import org.openrndr.math.Vector2
* Approximate separated Gaussian blur * Approximate separated Gaussian blur
*/ */
@Description("Approximate Gaussian blur") @Description("Approximate Gaussian blur")
class ApproximateGaussianBlur : Filter(Shader.createFromCode(Filter.filterVertexCode, class ApproximateGaussianBlur : Filter(filterShaderFromUrl(filterFragmentUrl(("blur/approximate-gaussian-blur.frag")))) {
filterFragmentCode("blur/approximate-gaussian-blur.frag"))) {
/** /**
* blur sample window, default value is 5 * blur sample window, default value is 5
*/ */

View File

@@ -2,13 +2,13 @@ package org.openrndr.extra.fx.blur
import org.openrndr.draw.* import org.openrndr.draw.*
import org.openrndr.extra.fx.blend.Add import org.openrndr.extra.fx.blend.Add
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
import org.openrndr.extra.parameters.IntParameter import org.openrndr.extra.parameters.IntParameter
@Description("Bloom") @Description("Bloom")
class Bloom(blur: Filter = ApproximateGaussianBlur()) : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("blur/bloom.frag"))) { class Bloom(blur: Filter = ApproximateGaussianBlur()) : Filter(filterShaderFromUrl(filterFragmentUrl("blur/bloom.frag"))) {
/** /**
* the blur filter to use for the bloom, default is Approximate Gaussian Blur * the blur filter to use for the bloom, default is Approximate Gaussian Blur
*/ */

View File

@@ -1,7 +1,7 @@
package org.openrndr.extra.fx.blur package org.openrndr.extra.fx.blur
import org.openrndr.draw.* import org.openrndr.draw.*
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
import org.openrndr.extra.parameters.IntParameter import org.openrndr.extra.parameters.IntParameter
@@ -12,8 +12,7 @@ import org.openrndr.math.Vector2
* BoxBlur implemented as a separable filter * BoxBlur implemented as a separable filter
*/ */
@Description("Box-blur") @Description("Box-blur")
class BoxBlur : Filter(Shader.createFromCode(Filter.filterVertexCode, class BoxBlur : Filter(filterShaderFromUrl(filterFragmentUrl("blur/box-blur.frag"))) {
filterFragmentCode("blur/box-blur.frag"))) {
data class ColorBufferDescription(val width: Int, val height: Int, val contentScale: Double, val format: ColorFormat, val type: ColorType) data class ColorBufferDescription(val width: Int, val height: Int, val contentScale: Double, val format: ColorFormat, val type: ColorType)

View File

@@ -1,14 +1,12 @@
package org.openrndr.extra.fx.blur package org.openrndr.extra.fx.blur
import org.openrndr.draw.* import org.openrndr.draw.*
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
import org.openrndr.extra.parameters.IntParameter
@Description("Frame blur") @Description("Frame blur")
class FrameBlur : Filter(Shader.createFromCode(Filter.filterVertexCode, class FrameBlur : Filter(filterShaderFromUrl(filterFragmentUrl("blur/frame-blur.frag"))) {
filterFragmentCode("blur/frame-blur.frag"))) {
@DoubleParameter("blend", 0.0, 1.0) @DoubleParameter("blend", 0.0, 1.0)
var blend: Double by parameters var blend: Double by parameters

View File

@@ -1,8 +1,9 @@
package org.openrndr.extra.fx.blur package org.openrndr.extra.fx.blur
import org.openrndr.draw.Filter import org.openrndr.draw.Filter
import org.openrndr.draw.Shader import org.openrndr.draw.filterShaderFromUrl
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
import org.openrndr.extra.parameters.IntParameter import org.openrndr.extra.parameters.IntParameter
@@ -11,8 +12,7 @@ import org.openrndr.extra.parameters.IntParameter
* Exact Gaussian blur, implemented as a single pass filter * Exact Gaussian blur, implemented as a single pass filter
*/ */
@Description("Gaussian blur") @Description("Gaussian blur")
class GaussianBlur : Filter(Shader.createFromCode(Filter.filterVertexCode, class GaussianBlur : Filter(filterShaderFromUrl(filterFragmentUrl("blur/gaussian-blur.frag"))) {
filterFragmentCode("blur/gaussian-blur.frag"))) {
/** /**
* The sample window, default value is 5 * The sample window, default value is 5

View File

@@ -1,15 +1,14 @@
package org.openrndr.extra.fx.blur package org.openrndr.extra.fx.blur
import org.openrndr.draw.Filter import org.openrndr.draw.Filter
import org.openrndr.draw.Shader import org.openrndr.draw.filterShaderFromUrl
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
import org.openrndr.extra.parameters.IntParameter import org.openrndr.extra.parameters.IntParameter
@Description("Hash blur") @Description("Hash blur")
class HashBlur : Filter(Shader.createFromCode(Filter.filterVertexCode, class HashBlur : Filter(filterShaderFromUrl(filterFragmentUrl("blur/hash-blur.frag"))) {
filterFragmentCode("blur/hash-blur.frag"))) {
/** /**
* Blur radius in pixels, default is 5.0 * Blur radius in pixels, default is 5.0
*/ */

View File

@@ -2,7 +2,7 @@ package org.openrndr.extra.fx.blur
import org.openrndr.color.ColorRGBa import org.openrndr.color.ColorRGBa
import org.openrndr.draw.* import org.openrndr.draw.*
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.BooleanParameter import org.openrndr.extra.parameters.BooleanParameter
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
@@ -10,11 +10,11 @@ import org.openrndr.extra.parameters.IntParameter
import org.openrndr.filter.color.delinearize import org.openrndr.filter.color.delinearize
import org.openrndr.filter.color.linearize import org.openrndr.filter.color.linearize
class BloomDownscale : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("blur/bloom-downscale.frag"))) { class BloomDownscale : Filter(filterShaderFromUrl(filterFragmentUrl("blur/bloom-downscale.frag"))) {
} }
class BloomUpscale : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("blur/bloom-upscale.frag"))) { class BloomUpscale : Filter(filterShaderFromUrl(filterFragmentUrl("blur/bloom-upscale.frag"))) {
var gain:Double by parameters var gain:Double by parameters
var shape:Double by parameters var shape:Double by parameters
var seed:Double by parameters var seed:Double by parameters
@@ -26,7 +26,7 @@ class BloomUpscale : Filter(Shader.createFromCode(filterVertexCode, filterFragme
} }
} }
class BloomCombine: Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("blur/bloom-combine.frag"))) { class BloomCombine: Filter(filterShaderFromUrl(filterFragmentUrl("blur/bloom-combine.frag"))) {
var gain: Double by parameters var gain: Double by parameters
var bias: ColorRGBa by parameters var bias: ColorRGBa by parameters
@@ -37,7 +37,7 @@ class BloomCombine: Filter(Shader.createFromCode(filterVertexCode, filterFragmen
} }
@Description("MipBloom") @Description("MipBloom")
open class MipBloom<T:Filter>(val blur:T) : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("blur/bloom-combine.frag"))) { open class MipBloom<T:Filter>(val blur:T) : Filter(filterShaderFromUrl(filterFragmentUrl("blur/bloom-combine.frag"))) {
var passes = 6 var passes = 6
@DoubleParameter("shape", 0.0, 4.0) @DoubleParameter("shape", 0.0, 4.0)

View File

@@ -1,16 +1,13 @@
package org.openrndr.extra.fx.blur package org.openrndr.extra.fx.blur
import org.openrndr.draw.ColorBuffer import org.openrndr.draw.*
import org.openrndr.draw.Filter import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.draw.Shader
import org.openrndr.draw.colorBuffer
import org.openrndr.extra.fx.filterFragmentCode
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
import org.openrndr.math.Vector2 import org.openrndr.math.Vector2
@Description("Zoom Blur") @Description("Zoom Blur")
class ZoomBlur : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blur/zoom-blur.frag"))) { class ZoomBlur : Filter(filterShaderFromUrl(filterFragmentUrl("blur/zoom-blur.frag"))) {
var center: Vector2 by parameters var center: Vector2 by parameters
@DoubleParameter("strength", 0.0, 1.0) @DoubleParameter("strength", 0.0, 1.0)

View File

@@ -1,14 +1,14 @@
package org.openrndr.extra.fx.color package org.openrndr.extra.fx.color
import org.openrndr.draw.* import org.openrndr.draw.*
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
import org.openrndr.math.Vector2 import org.openrndr.math.Vector2
import org.openrndr.resourceUrl import org.openrndr.resourceUrl
@Description("Chromatic Aberration") @Description("Chromatic Aberration")
class ChromaticAberration : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("color/chromatic-aberration.frag"))){ class ChromaticAberration : Filter(filterShaderFromUrl(filterFragmentUrl("color/chromatic-aberration.frag"))){
/** /**
* aberration factor, default value is 8.0 * aberration factor, default value is 8.0
*/ */

View File

@@ -1,12 +1,12 @@
package org.openrndr.extra.fx.color package org.openrndr.extra.fx.color
import org.openrndr.draw.* import org.openrndr.draw.*
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
@Description("Color correction") @Description("Color correction")
class ColorCorrection : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("color/color-correction.frag"))) { class ColorCorrection : Filter(filterShaderFromUrl(filterFragmentUrl("color/color-correction.frag"))) {
@DoubleParameter("brightness", -1.0, 1.0, order = 0) @DoubleParameter("brightness", -1.0, 1.0, order = 0)
var brightness: Double by parameters var brightness: Double by parameters

View File

@@ -1,9 +1,9 @@
package org.openrndr.extra.fx.color package org.openrndr.extra.fx.color
import org.openrndr.draw.* import org.openrndr.draw.*
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
class ColorLookup(lookup: ColorBuffer) : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("color/color-lookup.frag"))) { class ColorLookup(lookup: ColorBuffer) : Filter(filterShaderFromUrl(filterFragmentUrl("color/color-lookup.frag"))) {
/** a color look-up texture */ /** a color look-up texture */
var lookup: ColorBuffer by parameters var lookup: ColorBuffer by parameters

View File

@@ -2,15 +2,15 @@ package org.openrndr.extra.fx.color
import org.openrndr.color.ColorRGBa import org.openrndr.color.ColorRGBa
import org.openrndr.draw.Filter import org.openrndr.draw.Filter
import org.openrndr.draw.Shader import org.openrndr.draw.filterShaderFromUrl
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.ColorParameter import org.openrndr.extra.parameters.ColorParameter
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
class ColorMix : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("color/color-mix.frag"))) class ColorMix : Filter(filterShaderFromUrl(filterFragmentUrl("color/color-mix.frag")))
@Description("Tint") @Description("Tint")
class ColorTint : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("color/color-tint.frag"))) { class ColorTint : Filter(filterShaderFromUrl(filterFragmentUrl("color/color-tint.frag"))) {
@ColorParameter("tint") @ColorParameter("tint")
var tint: ColorRGBa by parameters var tint: ColorRGBa by parameters

View File

@@ -2,15 +2,14 @@ package org.openrndr.extra.fx.color
import org.openrndr.color.ColorRGBa import org.openrndr.color.ColorRGBa
import org.openrndr.draw.Filter import org.openrndr.draw.Filter
import org.openrndr.draw.Shader import org.openrndr.draw.filterShaderFromUrl
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.BooleanParameter
import org.openrndr.extra.parameters.ColorParameter import org.openrndr.extra.parameters.ColorParameter
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
@Description("Luma map ") @Description("Luma map ")
class LumaMap : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("color/luma-map.frag"))) { class LumaMap : Filter(filterShaderFromUrl(filterFragmentUrl("color/luma-map.frag"))) {
@ColorParameter("foreground color") @ColorParameter("foreground color")
var foreground: ColorRGBa by parameters var foreground: ColorRGBa by parameters

View File

@@ -1,16 +1,13 @@
package org.openrndr.extra.fx.color package org.openrndr.extra.fx.color
import org.openrndr.color.ColorRGBa
import org.openrndr.draw.Filter import org.openrndr.draw.Filter
import org.openrndr.draw.Shader import org.openrndr.draw.filterShaderFromUrl
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.BooleanParameter
import org.openrndr.extra.parameters.ColorParameter
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
@Description("Luma map ") @Description("Luma map ")
class LumaOpacity : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("color/luma-opacity.frag"))) { class LumaOpacity : Filter(filterShaderFromUrl(filterFragmentUrl("color/luma-opacity.frag"))) {
@DoubleParameter("foreground luma",0.0, 1.0) @DoubleParameter("foreground luma",0.0, 1.0)
var foregroundLuma: Double by parameters var foregroundLuma: Double by parameters

View File

@@ -2,15 +2,14 @@ package org.openrndr.extra.fx.color
import org.openrndr.color.ColorRGBa import org.openrndr.color.ColorRGBa
import org.openrndr.draw.Filter import org.openrndr.draw.Filter
import org.openrndr.draw.Shader import org.openrndr.draw.filterShaderFromUrl
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.BooleanParameter
import org.openrndr.extra.parameters.ColorParameter import org.openrndr.extra.parameters.ColorParameter
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
@Description("Luma threshold ") @Description("Luma threshold ")
class LumaThreshold : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("color/luma-threshold.frag"))) { class LumaThreshold : Filter(filterShaderFromUrl(filterFragmentUrl("color/luma-threshold.frag"))) {
@DoubleParameter("threshold value", 0.0, 1.0) @DoubleParameter("threshold value", 0.0, 1.0)
var threshold: Double by parameters var threshold: Double by parameters

View File

@@ -1,13 +1,13 @@
package org.openrndr.extra.fx.color package org.openrndr.extra.fx.color
import org.openrndr.draw.Filter import org.openrndr.draw.Filter
import org.openrndr.draw.Shader import org.openrndr.draw.filterShaderFromUrl
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
@Description("Sepia") @Description("Sepia")
class Sepia : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("color/sepia.frag"))) { class Sepia : Filter(filterShaderFromUrl(filterFragmentUrl("color/sepia.frag"))) {
@DoubleParameter("amount", 0.0, 1.0) @DoubleParameter("amount", 0.0, 1.0)
var amount: Double by parameters var amount: Double by parameters

View File

@@ -2,14 +2,14 @@ package org.openrndr.extra.fx.color
import org.openrndr.color.ColorRGBa import org.openrndr.color.ColorRGBa
import org.openrndr.draw.Filter import org.openrndr.draw.Filter
import org.openrndr.draw.Shader import org.openrndr.draw.filterShaderFromUrl
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.ColorParameter import org.openrndr.extra.parameters.ColorParameter
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
@Description("Set background") @Description("Set background")
class SetBackground : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("color/set-background.frag"))) { class SetBackground : Filter(filterShaderFromUrl(filterFragmentUrl("color/set-background.frag"))) {
@ColorParameter("background color") @ColorParameter("background color")
var background: ColorRGBa by parameters var background: ColorRGBa by parameters

View File

@@ -2,10 +2,10 @@ package org.openrndr.extra.fx.color
import org.openrndr.color.ColorRGBa import org.openrndr.color.ColorRGBa
import org.openrndr.draw.Filter import org.openrndr.draw.Filter
import org.openrndr.draw.Shader import org.openrndr.draw.filterShaderFromUrl
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
class SubtractConstant : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("color/subtract-constant.frag"))) { class SubtractConstant : Filter(filterShaderFromUrl(filterFragmentUrl("color/subtract-constant.frag"))) {
var constant: ColorRGBa by parameters var constant: ColorRGBa by parameters
init { init {

View File

@@ -1,13 +1,13 @@
package org.openrndr.extra.fx.distort package org.openrndr.extra.fx.distort
import org.openrndr.draw.Filter import org.openrndr.draw.Filter
import org.openrndr.draw.Shader import org.openrndr.draw.filterShaderFromUrl
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
@Description("Block repeat") @Description("Block repeat")
class BlockRepeat : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("distort/block-repeat.frag"))) { class BlockRepeat : Filter(filterShaderFromUrl(filterFragmentUrl("distort/block-repeat.frag"))) {
@DoubleParameter("block width", 0.0, 1.0, order = 0) @DoubleParameter("block width", 0.0, 1.0, order = 0)
var blockWidth: Double by parameters var blockWidth: Double by parameters

View File

@@ -1,14 +1,13 @@
package org.openrndr.extra.fx.distort package org.openrndr.extra.fx.distort
import org.openrndr.draw.* import org.openrndr.draw.*
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.BooleanParameter
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
import org.openrndr.math.Vector3 import org.openrndr.math.Vector3
@Description("Perturb") @Description("Perturb")
class DisplaceBlend : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("distort/displace-blend.frag"))) { class DisplaceBlend : Filter(filterShaderFromUrl(filterFragmentUrl("distort/displace-blend.frag"))) {
var seed: Vector3 by parameters var seed: Vector3 by parameters
@DoubleParameter("offset", -1.0, 1.0) @DoubleParameter("offset", -1.0, 1.0)

View File

@@ -1,12 +1,12 @@
package org.openrndr.extra.fx.distort package org.openrndr.extra.fx.distort
import org.openrndr.draw.* import org.openrndr.draw.*
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
@Description("Fisheye") @Description("Fisheye")
class Fisheye : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("distort/fisheye.frag"))) { class Fisheye : Filter(filterShaderFromUrl(filterFragmentUrl("distort/fisheye.frag"))) {
@DoubleParameter("strength", -1.0, 1.0, order = 0) @DoubleParameter("strength", -1.0, 1.0, order = 0)
var strength: Double by parameters var strength: Double by parameters

View File

@@ -1,7 +1,7 @@
package org.openrndr.extra.fx.distort package org.openrndr.extra.fx.distort
import org.openrndr.draw.* import org.openrndr.draw.*
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
import org.openrndr.extra.parameters.IntParameter import org.openrndr.extra.parameters.IntParameter
@@ -9,7 +9,7 @@ import org.openrndr.math.Vector3
import org.openrndr.math.Vector4 import org.openrndr.math.Vector4
@Description("Perturb") @Description("Perturb")
class Perturb : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("distort/perturb.frag"))) { class Perturb : Filter(filterShaderFromUrl(filterFragmentUrl("distort/perturb.frag"))) {
var seed: Vector3 by parameters var seed: Vector3 by parameters
/** /**

View File

@@ -1,7 +1,7 @@
package org.openrndr.extra.fx.distort package org.openrndr.extra.fx.distort
import org.openrndr.draw.* import org.openrndr.draw.*
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.BooleanParameter import org.openrndr.extra.parameters.BooleanParameter
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
@@ -9,7 +9,7 @@ import org.openrndr.math.Vector3
import org.openrndr.math.transforms.transform import org.openrndr.math.transforms.transform
@Description("Perspective plane") @Description("Perspective plane")
class PerspectivePlane : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("distort/perspective-plane.frag"))) { class PerspectivePlane : Filter(filterShaderFromUrl(filterFragmentUrl("distort/perspective-plane.frag"))) {
// @DoubleParameter("camera x", -1.0, 1.0, order = 0) // @DoubleParameter("camera x", -1.0, 1.0, order = 0)
var cameraX: Double = 0.0 var cameraX: Double = 0.0
// @DoubleParameter("camera y", -1.0, 1.0, order = 1) // @DoubleParameter("camera y", -1.0, 1.0, order = 1)

View File

@@ -1,13 +1,13 @@
package org.openrndr.extra.fx.distort package org.openrndr.extra.fx.distort
import org.openrndr.draw.* import org.openrndr.draw.*
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
import org.openrndr.extra.parameters.IntParameter import org.openrndr.extra.parameters.IntParameter
@Description("Stack repeat") @Description("Stack repeat")
class StackRepeat : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("distort/stack-repeat.frag"))) { class StackRepeat : Filter(filterShaderFromUrl(filterFragmentUrl("distort/stack-repeat.frag"))) {
@DoubleParameter("zoom", -1.0, 1.0, order = 0) @DoubleParameter("zoom", -1.0, 1.0, order = 0)
var zoom: Double by parameters var zoom: Double by parameters

View File

@@ -1,12 +1,12 @@
package org.openrndr.extra.fx.distort package org.openrndr.extra.fx.distort
import org.openrndr.draw.* import org.openrndr.draw.*
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
@Description("Stretch waves") @Description("Stretch waves")
class StretchWaves : Filter(filterShaderFromCode(filterFragmentCode("distort/stretch-waves.frag"))) { class StretchWaves : Filter(filterShaderFromUrl(filterFragmentUrl("distort/stretch-waves.frag"))) {
@DoubleParameter("distortion", -0.0,1.0, 1) @DoubleParameter("distortion", -0.0,1.0, 1)
var distortion: Double by parameters var distortion: Double by parameters

View File

@@ -1,13 +1,13 @@
package org.openrndr.extra.fx.distort package org.openrndr.extra.fx.distort
import org.openrndr.draw.* import org.openrndr.draw.*
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
import org.openrndr.extra.parameters.IntParameter import org.openrndr.extra.parameters.IntParameter
@Description("Tiles") @Description("Tiles")
class Tiles : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("distort/tiles.frag"))) { class Tiles : Filter(filterShaderFromUrl(filterFragmentUrl("distort/tiles.frag"))) {
@DoubleParameter("rotation", -180.0, 180.0, order = 2) @DoubleParameter("rotation", -180.0, 180.0, order = 2)
var rotation: Double by parameters var rotation: Double by parameters

View File

@@ -1,13 +1,13 @@
package org.openrndr.extra.fx.distort package org.openrndr.extra.fx.distort
import org.openrndr.draw.* import org.openrndr.draw.*
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
import org.openrndr.extra.parameters.IntParameter import org.openrndr.extra.parameters.IntParameter
@Description("Horizontal wave") @Description("Horizontal wave")
class HorizontalWave : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("distort/horizontal-wave.frag"))) { class HorizontalWave : Filter(filterShaderFromUrl(filterFragmentUrl("distort/horizontal-wave.frag"))) {
@DoubleParameter("frequency", 0.0, 64.0, order = 1) @DoubleParameter("frequency", 0.0, 64.0, order = 1)
var frequency: Double by parameters var frequency: Double by parameters
@@ -39,7 +39,7 @@ class HorizontalWave : Filter(Shader.createFromCode(filterVertexCode, filterFrag
} }
@Description("Vertical wave") @Description("Vertical wave")
class VerticalWave : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("distort/vertical-wave.frag"))) { class VerticalWave : Filter(filterShaderFromUrl(filterFragmentUrl("distort/vertical-wave.frag"))) {
@DoubleParameter("frequency", 0.0, 64.0, order = 1) @DoubleParameter("frequency", 0.0, 64.0, order = 1)
var frequency: Double by parameters var frequency: Double by parameters

View File

@@ -1,13 +1,13 @@
package org.openrndr.extra.fx.dither package org.openrndr.extra.fx.dither
import org.openrndr.draw.Filter import org.openrndr.draw.Filter
import org.openrndr.draw.Shader import org.openrndr.draw.filterShaderFromUrl
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.IntParameter import org.openrndr.extra.parameters.IntParameter
@Description("ADither") @Description("ADither")
class ADither: Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("dither/a-dither.frag"))) { class ADither: Filter(filterShaderFromUrl(filterFragmentUrl("dither/a-dither.frag"))) {
@IntParameter("pattern index", 0, 3) @IntParameter("pattern index", 0, 3)
var pattern: Int by parameters var pattern: Int by parameters

View File

@@ -1,13 +1,13 @@
package org.openrndr.extra.fx.dither package org.openrndr.extra.fx.dither
import org.openrndr.draw.Filter import org.openrndr.draw.Filter
import org.openrndr.draw.Shader import org.openrndr.draw.filterShaderFromUrl
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
@Description("CMYK Halftone") @Description("CMYK Halftone")
class CMYKHalftone: Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("dither/cmyk-halftone.frag"))) { class CMYKHalftone: Filter(filterShaderFromUrl(filterFragmentUrl("dither/cmyk-halftone.frag"))) {
@DoubleParameter("scale", 1.0, 30.0, precision = 4) @DoubleParameter("scale", 1.0, 30.0, precision = 4)
var scale: Double by parameters var scale: Double by parameters

View File

@@ -1,14 +1,14 @@
package org.openrndr.extra.fx.dither package org.openrndr.extra.fx.dither
import org.openrndr.draw.Filter import org.openrndr.draw.Filter
import org.openrndr.draw.Shader import org.openrndr.draw.filterShaderFromUrl
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
@Description("Crosshatch") @Description("Crosshatch")
class Crosshatch: Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("dither/crosshatch.frag"))) { class Crosshatch: Filter(filterShaderFromUrl(filterFragmentUrl("dither/crosshatch.frag"))) {
@DoubleParameter("threshold 1", 0.0, 1.0) @DoubleParameter("threshold 1", 0.0, 1.0)
var t1: Double by parameters var t1: Double by parameters

View File

@@ -2,17 +2,14 @@ package org.openrndr.extra.vfx
import org.openrndr.color.ColorRGBa import org.openrndr.color.ColorRGBa
import org.openrndr.draw.Filter import org.openrndr.draw.Filter
import org.openrndr.draw.Shader
import org.openrndr.draw.filterShaderFromUrl import org.openrndr.draw.filterShaderFromUrl
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.ColorParameter import org.openrndr.extra.parameters.ColorParameter
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
import org.openrndr.extra.parameters.IntParameter
import org.openrndr.resourceUrl
@Description("Contour") @Description("Contour")
class Contour : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("edges/contour.frag"))) { class Contour : Filter(filterShaderFromUrl(filterFragmentUrl("edges/contour.frag"))) {
@DoubleParameter("levels", 1.0, 16.0) @DoubleParameter("levels", 1.0, 16.0)
var levels: Double by parameters var levels: Double by parameters

View File

@@ -1,14 +1,14 @@
package org.openrndr.extra.fx.edges package org.openrndr.extra.fx.edges
import org.openrndr.draw.* import org.openrndr.draw.*
import org.openrndr.extra.fx.filterFragmentCode
import org.openrndr.extra.fx.ColorBufferDescription import org.openrndr.extra.fx.ColorBufferDescription
import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.IntParameter import org.openrndr.extra.parameters.IntParameter
import org.openrndr.math.Vector2 import org.openrndr.math.Vector2
internal class EdgesWork1 : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("edges/edges-work-1.frag"))) { internal class EdgesWork1 : Filter(filterShaderFromUrl(filterFragmentUrl("edges/edges-work-1.frag"))) {
var delta: Vector2 by parameters var delta: Vector2 by parameters
init { init {
@@ -17,7 +17,7 @@ internal class EdgesWork1 : Filter(Shader.createFromCode(filterVertexCode, filte
} }
@Description("Edges Work") @Description("Edges Work")
open class EdgesWork : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("edges/edges-work-2.frag"))) { open class EdgesWork : Filter(filterShaderFromUrl(filterFragmentUrl("edges/edges-work-2.frag"))) {
/** /**
* radius, default value is 1.0 * radius, default value is 1.0
*/ */

View File

@@ -2,14 +2,14 @@ package org.openrndr.extra.fx.edges
import org.openrndr.color.ColorRGBa import org.openrndr.color.ColorRGBa
import org.openrndr.draw.Filter import org.openrndr.draw.Filter
import org.openrndr.draw.Shader import org.openrndr.draw.filterShaderFromUrl
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.ColorParameter import org.openrndr.extra.parameters.ColorParameter
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
@Description("Luma Sobel") @Description("Luma Sobel")
class LumaSobel : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("edges/luma-sobel.frag"))) { class LumaSobel : Filter(filterShaderFromUrl(filterFragmentUrl("edges/luma-sobel.frag"))) {
@ColorParameter("background color") @ColorParameter("background color")
var backgroundColor: ColorRGBa by parameters var backgroundColor: ColorRGBa by parameters

View File

@@ -1,6 +1,7 @@
import org.openrndr.draw.Filter import org.openrndr.draw.Filter
import org.openrndr.draw.Shader import org.openrndr.draw.Shader
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.draw.filterShaderFromUrl
import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.BooleanParameter import org.openrndr.extra.parameters.BooleanParameter
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
@@ -9,7 +10,7 @@ import org.openrndr.extra.parameters.DoubleParameter
* Film grain filter * Film grain filter
*/ */
@Description("film grain") @Description("film grain")
class FilmGrain : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("grain/film-grain.frag"))) { class FilmGrain : Filter(filterShaderFromUrl(filterFragmentUrl("grain/film-grain.frag"))) {
@BooleanParameter("use color") @BooleanParameter("use color")
var useColor: Boolean by parameters var useColor: Boolean by parameters

View File

@@ -2,13 +2,13 @@ package org.openrndr.extra.fx.patterns
import org.openrndr.color.ColorRGBa import org.openrndr.color.ColorRGBa
import org.openrndr.draw.Filter import org.openrndr.draw.Filter
import org.openrndr.draw.Shader import org.openrndr.draw.filterShaderFromUrl
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
@Description("Checkers pattern") @Description("Checkers pattern")
class Checkers : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("patterns/checkers.frag"))) { class Checkers : Filter(filterShaderFromUrl(filterFragmentUrl("patterns/checkers.frag"))) {
var background: ColorRGBa by parameters var background: ColorRGBa by parameters
var foreground: ColorRGBa by parameters var foreground: ColorRGBa by parameters
@DoubleParameter("size", 0.0, 1.0) @DoubleParameter("size", 0.0, 1.0)

View File

@@ -2,23 +2,20 @@ package org.openrndr.extra.fx.shadow
import org.openrndr.color.ColorRGBa import org.openrndr.color.ColorRGBa
import org.openrndr.draw.ColorBuffer import org.openrndr.draw.*
import org.openrndr.draw.Filter import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.draw.Shader
import org.openrndr.draw.colorBuffer
import org.openrndr.extra.fx.filterFragmentCode
import org.openrndr.extra.parameters.ColorParameter import org.openrndr.extra.parameters.ColorParameter
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
import org.openrndr.extra.parameters.IntParameter import org.openrndr.extra.parameters.IntParameter
import org.openrndr.math.Vector2 import org.openrndr.math.Vector2
private class Blend : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("shadow/dropshadow-blend.frag"))) { private class Blend : Filter(filterShaderFromUrl(filterFragmentUrl("shadow/dropshadow-blend.frag"))) {
var shift: Vector2 by parameters var shift: Vector2 by parameters
} }
@Description("Drop shadow") @Description("Drop shadow")
class DropShadow : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("shadow/dropshadow-blur.frag"))) { class DropShadow : Filter(filterShaderFromUrl(filterFragmentUrl("shadow/dropshadow-blur.frag"))) {
@IntParameter("blur window", 1, 25) @IntParameter("blur window", 1, 25)
var window: Int by parameters var window: Int by parameters

View File

@@ -1,8 +1,8 @@
package org.openrndr.extra.fx.tonemap package org.openrndr.extra.fx.tonemap
import org.openrndr.draw.Filter import org.openrndr.draw.Filter
import org.openrndr.draw.Shader import org.openrndr.draw.filterShaderFromUrl
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.filterFragmentUrl
import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.Description
import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.DoubleParameter
@@ -10,7 +10,7 @@ import org.openrndr.extra.parameters.DoubleParameter
* Uncharted 2 tonemap filter * Uncharted 2 tonemap filter
*/ */
@Description("Uncharted 2 tonemap") @Description("Uncharted 2 tonemap")
class Uncharted2Tonemap : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("tonemap/uncharted2-tonemap.frag"))) { class Uncharted2Tonemap : Filter(filterShaderFromUrl(filterFragmentUrl("tonemap/uncharted2-tonemap.frag"))) {
@DoubleParameter("exposure bias", 0.0, 128.0) @DoubleParameter("exposure bias", 0.0, 128.0)
var exposureBias:Double by parameters var exposureBias:Double by parameters

View File

@@ -2,9 +2,10 @@ package org.openrndr.extra.fx.transform
import org.openrndr.draw.Filter import org.openrndr.draw.Filter
import org.openrndr.draw.Shader import org.openrndr.draw.Shader
import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.draw.filterShaderFromUrl
import org.openrndr.extra.fx.filterFragmentUrl
/** /**
* Vertically flips in the input image * Vertically flips in the input image
*/ */
class FlipVertically : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("transform/flip-vertically.frag"))) class FlipVertically : Filter(filterShaderFromUrl(filterFragmentUrl("transform/flip-vertically.frag")))

View File

@@ -8,8 +8,10 @@ import org.openrndr.KEY_LEFT_SHIFT
import org.openrndr.KeyModifier import org.openrndr.KeyModifier
import org.openrndr.Program import org.openrndr.Program
import org.openrndr.color.ColorRGBa import org.openrndr.color.ColorRGBa
import org.openrndr.dialogs.getDefaultPathForContext
import org.openrndr.dialogs.openFileDialog import org.openrndr.dialogs.openFileDialog
import org.openrndr.dialogs.saveFileDialog import org.openrndr.dialogs.saveFileDialog
import org.openrndr.dialogs.setDefaultPathForContext
import org.openrndr.draw.Drawer import org.openrndr.draw.Drawer
import org.openrndr.extra.parameters.* import org.openrndr.extra.parameters.*
import org.openrndr.internal.Driver import org.openrndr.internal.Driver
@@ -222,7 +224,7 @@ class GUI : Extension {
button { button {
label = "Load" label = "Load"
clicked { clicked {
openFileDialog(supportedExtensions = listOf("json")) { openFileDialog(supportedExtensions = listOf("json"), contextID = "gui.parameters") {
loadParameters(it) loadParameters(it)
} }
} }
@@ -230,7 +232,24 @@ class GUI : Extension {
button { button {
label = "Save" label = "Save"
clicked { clicked {
saveFileDialog(supportedExtensions = listOf("json")) { val defaultPath = getDefaultPathForContext(contextID ="gui.parameters")
if (defaultPath == null) {
val local = File(".")
val data = File(local, "data")
if (data.exists() && data.isDirectory) {
val parameters = File(data, "parameters")
if (!parameters.exists()) {
if (parameters.mkdirs()) {
setDefaultPathForContext(contextID = "gui.parameters", file = parameters)
}
} else {
setDefaultPathForContext(contextID = "gui.parameters", file = parameters)
}
}
}
saveFileDialog(suggestedFilename = "parameters.json", contextID = "gui.parameters", supportedExtensions = listOf("json")) {
saveParameters(it) saveParameters(it)
} }
} }