diff --git a/build.gradle b/build.gradle index 3d3c4d1b..c61734ca 100644 --- a/build.gradle +++ b/build.gradle @@ -15,7 +15,7 @@ buildscript { apply plugin: 'org.jetbrains.dokka' project.ext { - openrndrVersion = "0.3.40-rc.5" + openrndrVersion = "0.3.40" kotlinVersion = "1.3.70" spekVersion = "2.0.10" libfreenectVersion = "0.5.7-1.5.2" diff --git a/orx-fx/src/main/kotlin/FilterTools.kt b/orx-fx/src/main/kotlin/FilterTools.kt index 89cbb5c6..22d39fb8 100644 --- a/orx-fx/src/main/kotlin/FilterTools.kt +++ b/orx-fx/src/main/kotlin/FilterTools.kt @@ -7,9 +7,9 @@ import java.net.URL internal class FilterTools -internal fun filterFragmentCode(resourceId: String): String { - val urlString = resourceUrl("gl3/$resourceId", FilterTools::class.java) - return URL(urlString).readText() + +internal fun filterFragmentUrl(resourceId: String): String { + 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) diff --git a/orx-fx/src/main/kotlin/antialias/FXAA.kt b/orx-fx/src/main/kotlin/antialias/FXAA.kt index 3a924cb6..c3f24149 100644 --- a/orx-fx/src/main/kotlin/antialias/FXAA.kt +++ b/orx-fx/src/main/kotlin/antialias/FXAA.kt @@ -1,8 +1,8 @@ package org.openrndr.extra.fx.antialias import org.openrndr.draw.Filter -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.Description 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 */ @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 */ diff --git a/orx-fx/src/main/kotlin/blend/BlendFilters.kt b/orx-fx/src/main/kotlin/blend/BlendFilters.kt index 1293919c..6545db19 100644 --- a/orx-fx/src/main/kotlin/blend/BlendFilters.kt +++ b/orx-fx/src/main/kotlin/blend/BlendFilters.kt @@ -1,11 +1,11 @@ package org.openrndr.extra.fx.blend import org.openrndr.draw.Filter -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 -class ColorBurn : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/color-burn.frag"))) { +class ColorBurn : Filter(filterShaderFromUrl(filterFragmentUrl("blend/color-burn.frag"))) { @BooleanParameter("source clip") 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") 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") 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") 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") 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") 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") 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") 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") 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 SourceOut : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/source-out.frag"))) -class SourceAtop : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/source-atop.frag"))) -class DestinationIn : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/destination-in.frag"))) -class DestinationOut : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/destination-out.frag"))) -class DestinationAtop : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/destination-atop.frag"))) -class Xor : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/xor.frag"))) +class SourceIn : Filter(filterShaderFromUrl(filterFragmentUrl("blend/source-in.frag"))) +class SourceOut : Filter(filterShaderFromUrl(filterFragmentUrl("blend/source-out.frag"))) +class SourceAtop : Filter(filterShaderFromUrl(filterFragmentUrl("blend/source-atop.frag"))) +class DestinationIn : Filter(filterShaderFromUrl(filterFragmentUrl("blend/destination-in.frag"))) +class DestinationOut : Filter(filterShaderFromUrl(filterFragmentUrl("blend/destination-out.frag"))) +class DestinationAtop : Filter(filterShaderFromUrl(filterFragmentUrl("blend/destination-atop.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 Add : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/add.frag"))) { +class Passthrough : Filter(filterShaderFromUrl(filterFragmentUrl("blend/passthrough.frag"))) +class Add : Filter(filterShaderFromUrl(filterFragmentUrl("blend/add.frag"))) { @BooleanParameter("source clip") var clip: Boolean by parameters @@ -106,7 +106,7 @@ class Add : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragment clip = false } } -class Subtract : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("blend/subtract.frag"))) { +class Subtract : Filter(filterShaderFromUrl(filterFragmentUrl("blend/subtract.frag"))) { @BooleanParameter("source clip") var clip: Boolean by parameters diff --git a/orx-fx/src/main/kotlin/blur/ApproximateGaussianBlur.kt b/orx-fx/src/main/kotlin/blur/ApproximateGaussianBlur.kt index 795d6df1..895667fa 100644 --- a/orx-fx/src/main/kotlin/blur/ApproximateGaussianBlur.kt +++ b/orx-fx/src/main/kotlin/blur/ApproximateGaussianBlur.kt @@ -1,8 +1,8 @@ package org.openrndr.extra.fx.blur import org.openrndr.draw.* -import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.ColorBufferDescription +import org.openrndr.extra.fx.filterFragmentUrl import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.IntParameter @@ -13,8 +13,7 @@ import org.openrndr.math.Vector2 * Approximate separated Gaussian blur */ @Description("Approximate Gaussian blur") -class ApproximateGaussianBlur : Filter(Shader.createFromCode(Filter.filterVertexCode, - filterFragmentCode("blur/approximate-gaussian-blur.frag"))) { +class ApproximateGaussianBlur : Filter(filterShaderFromUrl(filterFragmentUrl(("blur/approximate-gaussian-blur.frag")))) { /** * blur sample window, default value is 5 */ diff --git a/orx-fx/src/main/kotlin/blur/Bloom.kt b/orx-fx/src/main/kotlin/blur/Bloom.kt index 56c448e6..7dce1145 100644 --- a/orx-fx/src/main/kotlin/blur/Bloom.kt +++ b/orx-fx/src/main/kotlin/blur/Bloom.kt @@ -2,13 +2,13 @@ package org.openrndr.extra.fx.blur import org.openrndr.draw.* 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.DoubleParameter import org.openrndr.extra.parameters.IntParameter @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 */ diff --git a/orx-fx/src/main/kotlin/blur/BoxBlur.kt b/orx-fx/src/main/kotlin/blur/BoxBlur.kt index ef23dc8c..586cfa28 100644 --- a/orx-fx/src/main/kotlin/blur/BoxBlur.kt +++ b/orx-fx/src/main/kotlin/blur/BoxBlur.kt @@ -1,7 +1,7 @@ package org.openrndr.extra.fx.blur 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.DoubleParameter import org.openrndr.extra.parameters.IntParameter @@ -12,8 +12,7 @@ import org.openrndr.math.Vector2 * BoxBlur implemented as a separable filter */ @Description("Box-blur") -class BoxBlur : Filter(Shader.createFromCode(Filter.filterVertexCode, - filterFragmentCode("blur/box-blur.frag"))) { +class BoxBlur : Filter(filterShaderFromUrl(filterFragmentUrl("blur/box-blur.frag"))) { data class ColorBufferDescription(val width: Int, val height: Int, val contentScale: Double, val format: ColorFormat, val type: ColorType) diff --git a/orx-fx/src/main/kotlin/blur/FrameBlur.kt b/orx-fx/src/main/kotlin/blur/FrameBlur.kt index 76a2b474..e577bcc5 100644 --- a/orx-fx/src/main/kotlin/blur/FrameBlur.kt +++ b/orx-fx/src/main/kotlin/blur/FrameBlur.kt @@ -1,14 +1,12 @@ package org.openrndr.extra.fx.blur 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.DoubleParameter -import org.openrndr.extra.parameters.IntParameter @Description("Frame blur") -class FrameBlur : Filter(Shader.createFromCode(Filter.filterVertexCode, - filterFragmentCode("blur/frame-blur.frag"))) { +class FrameBlur : Filter(filterShaderFromUrl(filterFragmentUrl("blur/frame-blur.frag"))) { @DoubleParameter("blend", 0.0, 1.0) var blend: Double by parameters diff --git a/orx-fx/src/main/kotlin/blur/GaussianBlur.kt b/orx-fx/src/main/kotlin/blur/GaussianBlur.kt index 61516978..f9befd6c 100644 --- a/orx-fx/src/main/kotlin/blur/GaussianBlur.kt +++ b/orx-fx/src/main/kotlin/blur/GaussianBlur.kt @@ -1,8 +1,9 @@ package org.openrndr.extra.fx.blur import org.openrndr.draw.Filter -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.Description import org.openrndr.extra.parameters.DoubleParameter 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 */ @Description("Gaussian blur") -class GaussianBlur : Filter(Shader.createFromCode(Filter.filterVertexCode, - filterFragmentCode("blur/gaussian-blur.frag"))) { +class GaussianBlur : Filter(filterShaderFromUrl(filterFragmentUrl("blur/gaussian-blur.frag"))) { /** * The sample window, default value is 5 diff --git a/orx-fx/src/main/kotlin/blur/HashBlur.kt b/orx-fx/src/main/kotlin/blur/HashBlur.kt index d43b7d59..699c061a 100644 --- a/orx-fx/src/main/kotlin/blur/HashBlur.kt +++ b/orx-fx/src/main/kotlin/blur/HashBlur.kt @@ -1,15 +1,14 @@ package org.openrndr.extra.fx.blur import org.openrndr.draw.Filter -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.Description import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.IntParameter @Description("Hash blur") -class HashBlur : Filter(Shader.createFromCode(Filter.filterVertexCode, - filterFragmentCode("blur/hash-blur.frag"))) { +class HashBlur : Filter(filterShaderFromUrl(filterFragmentUrl("blur/hash-blur.frag"))) { /** * Blur radius in pixels, default is 5.0 */ diff --git a/orx-fx/src/main/kotlin/blur/MipBloom.kt b/orx-fx/src/main/kotlin/blur/MipBloom.kt index 87913a45..7172c7ec 100644 --- a/orx-fx/src/main/kotlin/blur/MipBloom.kt +++ b/orx-fx/src/main/kotlin/blur/MipBloom.kt @@ -2,7 +2,7 @@ package org.openrndr.extra.fx.blur import org.openrndr.color.ColorRGBa 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.DoubleParameter @@ -10,11 +10,11 @@ import org.openrndr.extra.parameters.IntParameter import org.openrndr.filter.color.delinearize 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 shape: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 bias: ColorRGBa by parameters @@ -37,7 +37,7 @@ class BloomCombine: Filter(Shader.createFromCode(filterVertexCode, filterFragmen } @Description("MipBloom") -open class MipBloom(val blur:T) : Filter(Shader.createFromCode(filterVertexCode, filterFragmentCode("blur/bloom-combine.frag"))) { +open class MipBloom(val blur:T) : Filter(filterShaderFromUrl(filterFragmentUrl("blur/bloom-combine.frag"))) { var passes = 6 @DoubleParameter("shape", 0.0, 4.0) diff --git a/orx-fx/src/main/kotlin/blur/ZoomBlur.kt b/orx-fx/src/main/kotlin/blur/ZoomBlur.kt index 5cbfda01..e8753aaa 100644 --- a/orx-fx/src/main/kotlin/blur/ZoomBlur.kt +++ b/orx-fx/src/main/kotlin/blur/ZoomBlur.kt @@ -1,16 +1,13 @@ package org.openrndr.extra.fx.blur -import org.openrndr.draw.ColorBuffer -import org.openrndr.draw.Filter -import org.openrndr.draw.Shader -import org.openrndr.draw.colorBuffer -import org.openrndr.extra.fx.filterFragmentCode +import org.openrndr.draw.* +import org.openrndr.extra.fx.filterFragmentUrl import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.math.Vector2 @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 @DoubleParameter("strength", 0.0, 1.0) diff --git a/orx-fx/src/main/kotlin/color/ChromaticAberration.kt b/orx-fx/src/main/kotlin/color/ChromaticAberration.kt index 901b0875..556bbb01 100644 --- a/orx-fx/src/main/kotlin/color/ChromaticAberration.kt +++ b/orx-fx/src/main/kotlin/color/ChromaticAberration.kt @@ -1,14 +1,14 @@ package org.openrndr.extra.fx.color 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.DoubleParameter import org.openrndr.math.Vector2 import org.openrndr.resourceUrl @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 */ diff --git a/orx-fx/src/main/kotlin/color/ColorCorrection.kt b/orx-fx/src/main/kotlin/color/ColorCorrection.kt index eb86c2c5..e15c6c21 100644 --- a/orx-fx/src/main/kotlin/color/ColorCorrection.kt +++ b/orx-fx/src/main/kotlin/color/ColorCorrection.kt @@ -1,12 +1,12 @@ package org.openrndr.extra.fx.color 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.DoubleParameter @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) var brightness: Double by parameters diff --git a/orx-fx/src/main/kotlin/color/ColorLookup.kt b/orx-fx/src/main/kotlin/color/ColorLookup.kt index 3274d82e..24b36d69 100644 --- a/orx-fx/src/main/kotlin/color/ColorLookup.kt +++ b/orx-fx/src/main/kotlin/color/ColorLookup.kt @@ -1,9 +1,9 @@ package org.openrndr.extra.fx.color 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 */ var lookup: ColorBuffer by parameters diff --git a/orx-fx/src/main/kotlin/color/ColorMix.kt b/orx-fx/src/main/kotlin/color/ColorMix.kt index 1f4f5b28..3a7c7cd6 100644 --- a/orx-fx/src/main/kotlin/color/ColorMix.kt +++ b/orx-fx/src/main/kotlin/color/ColorMix.kt @@ -2,15 +2,15 @@ package org.openrndr.extra.fx.color import org.openrndr.color.ColorRGBa import org.openrndr.draw.Filter -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.ColorParameter 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") -class ColorTint : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("color/color-tint.frag"))) { +class ColorTint : Filter(filterShaderFromUrl(filterFragmentUrl("color/color-tint.frag"))) { @ColorParameter("tint") var tint: ColorRGBa by parameters diff --git a/orx-fx/src/main/kotlin/color/LumaMap.kt b/orx-fx/src/main/kotlin/color/LumaMap.kt index 1eac3a79..64365475 100644 --- a/orx-fx/src/main/kotlin/color/LumaMap.kt +++ b/orx-fx/src/main/kotlin/color/LumaMap.kt @@ -2,15 +2,14 @@ package org.openrndr.extra.fx.color import org.openrndr.color.ColorRGBa import org.openrndr.draw.Filter -import org.openrndr.draw.Shader -import org.openrndr.extra.fx.filterFragmentCode -import org.openrndr.extra.parameters.BooleanParameter +import org.openrndr.draw.filterShaderFromUrl +import org.openrndr.extra.fx.filterFragmentUrl import org.openrndr.extra.parameters.ColorParameter import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.DoubleParameter @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") var foreground: ColorRGBa by parameters diff --git a/orx-fx/src/main/kotlin/color/LumaOpacity.kt b/orx-fx/src/main/kotlin/color/LumaOpacity.kt index 18ce0191..06376f19 100644 --- a/orx-fx/src/main/kotlin/color/LumaOpacity.kt +++ b/orx-fx/src/main/kotlin/color/LumaOpacity.kt @@ -1,16 +1,13 @@ package org.openrndr.extra.fx.color -import org.openrndr.color.ColorRGBa import org.openrndr.draw.Filter -import org.openrndr.draw.Shader -import org.openrndr.extra.fx.filterFragmentCode -import org.openrndr.extra.parameters.BooleanParameter -import org.openrndr.extra.parameters.ColorParameter +import org.openrndr.draw.filterShaderFromUrl +import org.openrndr.extra.fx.filterFragmentUrl import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.DoubleParameter @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) var foregroundLuma: Double by parameters diff --git a/orx-fx/src/main/kotlin/color/LumaThreshold.kt b/orx-fx/src/main/kotlin/color/LumaThreshold.kt index b44ddaae..5399788a 100644 --- a/orx-fx/src/main/kotlin/color/LumaThreshold.kt +++ b/orx-fx/src/main/kotlin/color/LumaThreshold.kt @@ -2,15 +2,14 @@ package org.openrndr.extra.fx.color import org.openrndr.color.ColorRGBa import org.openrndr.draw.Filter -import org.openrndr.draw.Shader -import org.openrndr.extra.fx.filterFragmentCode -import org.openrndr.extra.parameters.BooleanParameter +import org.openrndr.draw.filterShaderFromUrl +import org.openrndr.extra.fx.filterFragmentUrl import org.openrndr.extra.parameters.ColorParameter import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.DoubleParameter @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) var threshold: Double by parameters diff --git a/orx-fx/src/main/kotlin/color/Sepia.kt b/orx-fx/src/main/kotlin/color/Sepia.kt index b3024d30..066bb746 100644 --- a/orx-fx/src/main/kotlin/color/Sepia.kt +++ b/orx-fx/src/main/kotlin/color/Sepia.kt @@ -1,13 +1,13 @@ package org.openrndr.extra.fx.color import org.openrndr.draw.Filter -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.Description import org.openrndr.extra.parameters.DoubleParameter @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) var amount: Double by parameters diff --git a/orx-fx/src/main/kotlin/color/SetBackground.kt b/orx-fx/src/main/kotlin/color/SetBackground.kt index ea2ba977..27f634e3 100644 --- a/orx-fx/src/main/kotlin/color/SetBackground.kt +++ b/orx-fx/src/main/kotlin/color/SetBackground.kt @@ -2,14 +2,14 @@ package org.openrndr.extra.fx.color import org.openrndr.color.ColorRGBa import org.openrndr.draw.Filter -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.ColorParameter import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.DoubleParameter @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") var background: ColorRGBa by parameters diff --git a/orx-fx/src/main/kotlin/color/SubtractConstant.kt b/orx-fx/src/main/kotlin/color/SubtractConstant.kt index 7650592e..19f3db99 100644 --- a/orx-fx/src/main/kotlin/color/SubtractConstant.kt +++ b/orx-fx/src/main/kotlin/color/SubtractConstant.kt @@ -2,10 +2,10 @@ package org.openrndr.extra.fx.color import org.openrndr.color.ColorRGBa import org.openrndr.draw.Filter -import org.openrndr.draw.Shader -import org.openrndr.extra.fx.filterFragmentCode +import org.openrndr.draw.filterShaderFromUrl +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 init { diff --git a/orx-fx/src/main/kotlin/distort/BlockRepeat.kt b/orx-fx/src/main/kotlin/distort/BlockRepeat.kt index b4979008..773338fa 100644 --- a/orx-fx/src/main/kotlin/distort/BlockRepeat.kt +++ b/orx-fx/src/main/kotlin/distort/BlockRepeat.kt @@ -1,13 +1,13 @@ package org.openrndr.extra.fx.distort import org.openrndr.draw.Filter -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.Description import org.openrndr.extra.parameters.DoubleParameter @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) var blockWidth: Double by parameters diff --git a/orx-fx/src/main/kotlin/distort/DisplaceBlend.kt b/orx-fx/src/main/kotlin/distort/DisplaceBlend.kt index 21d68187..a80fbaa3 100644 --- a/orx-fx/src/main/kotlin/distort/DisplaceBlend.kt +++ b/orx-fx/src/main/kotlin/distort/DisplaceBlend.kt @@ -1,14 +1,13 @@ package org.openrndr.extra.fx.distort import org.openrndr.draw.* -import org.openrndr.extra.fx.filterFragmentCode -import org.openrndr.extra.parameters.BooleanParameter +import org.openrndr.extra.fx.filterFragmentUrl import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.math.Vector3 @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 @DoubleParameter("offset", -1.0, 1.0) diff --git a/orx-fx/src/main/kotlin/distort/Fisheye.kt b/orx-fx/src/main/kotlin/distort/Fisheye.kt index 3f94e835..4f15e909 100644 --- a/orx-fx/src/main/kotlin/distort/Fisheye.kt +++ b/orx-fx/src/main/kotlin/distort/Fisheye.kt @@ -1,12 +1,12 @@ package org.openrndr.extra.fx.distort 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.DoubleParameter @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) var strength: Double by parameters diff --git a/orx-fx/src/main/kotlin/distort/Perturb.kt b/orx-fx/src/main/kotlin/distort/Perturb.kt index 605eee1a..22d920ca 100644 --- a/orx-fx/src/main/kotlin/distort/Perturb.kt +++ b/orx-fx/src/main/kotlin/distort/Perturb.kt @@ -1,7 +1,7 @@ package org.openrndr.extra.fx.distort 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.DoubleParameter import org.openrndr.extra.parameters.IntParameter @@ -9,7 +9,7 @@ import org.openrndr.math.Vector3 import org.openrndr.math.Vector4 @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 /** diff --git a/orx-fx/src/main/kotlin/distort/Raycast.kt b/orx-fx/src/main/kotlin/distort/Raycast.kt index 7ed43e25..e2a38ca0 100644 --- a/orx-fx/src/main/kotlin/distort/Raycast.kt +++ b/orx-fx/src/main/kotlin/distort/Raycast.kt @@ -1,7 +1,7 @@ package org.openrndr.extra.fx.distort 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.DoubleParameter @@ -9,7 +9,7 @@ import org.openrndr.math.Vector3 import org.openrndr.math.transforms.transform @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) var cameraX: Double = 0.0 // @DoubleParameter("camera y", -1.0, 1.0, order = 1) diff --git a/orx-fx/src/main/kotlin/distort/StackRepeat.kt b/orx-fx/src/main/kotlin/distort/StackRepeat.kt index ba71695d..aca11507 100644 --- a/orx-fx/src/main/kotlin/distort/StackRepeat.kt +++ b/orx-fx/src/main/kotlin/distort/StackRepeat.kt @@ -1,13 +1,13 @@ package org.openrndr.extra.fx.distort 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.DoubleParameter import org.openrndr.extra.parameters.IntParameter @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) var zoom: Double by parameters diff --git a/orx-fx/src/main/kotlin/distort/StretchWaves.kt b/orx-fx/src/main/kotlin/distort/StretchWaves.kt index 4445806f..20e31e31 100644 --- a/orx-fx/src/main/kotlin/distort/StretchWaves.kt +++ b/orx-fx/src/main/kotlin/distort/StretchWaves.kt @@ -1,12 +1,12 @@ package org.openrndr.extra.fx.distort 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.DoubleParameter @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) var distortion: Double by parameters diff --git a/orx-fx/src/main/kotlin/distort/Tiles.kt b/orx-fx/src/main/kotlin/distort/Tiles.kt index 377f83b5..c4f18e60 100644 --- a/orx-fx/src/main/kotlin/distort/Tiles.kt +++ b/orx-fx/src/main/kotlin/distort/Tiles.kt @@ -1,13 +1,13 @@ package org.openrndr.extra.fx.distort 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.DoubleParameter import org.openrndr.extra.parameters.IntParameter @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) var rotation: Double by parameters diff --git a/orx-fx/src/main/kotlin/distort/Wave.kt b/orx-fx/src/main/kotlin/distort/Wave.kt index d392ed16..56febc32 100644 --- a/orx-fx/src/main/kotlin/distort/Wave.kt +++ b/orx-fx/src/main/kotlin/distort/Wave.kt @@ -1,13 +1,13 @@ package org.openrndr.extra.fx.distort 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.DoubleParameter import org.openrndr.extra.parameters.IntParameter @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) var frequency: Double by parameters @@ -39,7 +39,7 @@ class HorizontalWave : Filter(Shader.createFromCode(filterVertexCode, filterFrag } @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) var frequency: Double by parameters diff --git a/orx-fx/src/main/kotlin/dither/ADither.kt b/orx-fx/src/main/kotlin/dither/ADither.kt index 5a5fa36a..0215c024 100644 --- a/orx-fx/src/main/kotlin/dither/ADither.kt +++ b/orx-fx/src/main/kotlin/dither/ADither.kt @@ -1,13 +1,13 @@ package org.openrndr.extra.fx.dither import org.openrndr.draw.Filter -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.Description import org.openrndr.extra.parameters.IntParameter @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) var pattern: Int by parameters diff --git a/orx-fx/src/main/kotlin/dither/CMYKHalftone.kt b/orx-fx/src/main/kotlin/dither/CMYKHalftone.kt index aae21e69..3368551d 100644 --- a/orx-fx/src/main/kotlin/dither/CMYKHalftone.kt +++ b/orx-fx/src/main/kotlin/dither/CMYKHalftone.kt @@ -1,13 +1,13 @@ package org.openrndr.extra.fx.dither import org.openrndr.draw.Filter -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.Description import org.openrndr.extra.parameters.DoubleParameter @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) var scale: Double by parameters diff --git a/orx-fx/src/main/kotlin/dither/Crosshatch.kt b/orx-fx/src/main/kotlin/dither/Crosshatch.kt index b4006e2d..57efb4e7 100644 --- a/orx-fx/src/main/kotlin/dither/Crosshatch.kt +++ b/orx-fx/src/main/kotlin/dither/Crosshatch.kt @@ -1,14 +1,14 @@ package org.openrndr.extra.fx.dither import org.openrndr.draw.Filter -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.Description import org.openrndr.extra.parameters.DoubleParameter @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) var t1: Double by parameters diff --git a/orx-fx/src/main/kotlin/edges/Contour.kt b/orx-fx/src/main/kotlin/edges/Contour.kt index 6788a81c..53a65d6c 100644 --- a/orx-fx/src/main/kotlin/edges/Contour.kt +++ b/orx-fx/src/main/kotlin/edges/Contour.kt @@ -2,17 +2,14 @@ package org.openrndr.extra.vfx import org.openrndr.color.ColorRGBa 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.Description import org.openrndr.extra.parameters.DoubleParameter -import org.openrndr.extra.parameters.IntParameter -import org.openrndr.resourceUrl @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) var levels: Double by parameters diff --git a/orx-fx/src/main/kotlin/edges/EdgesWork.kt b/orx-fx/src/main/kotlin/edges/EdgesWork.kt index 73ab6067..8b8e1237 100644 --- a/orx-fx/src/main/kotlin/edges/EdgesWork.kt +++ b/orx-fx/src/main/kotlin/edges/EdgesWork.kt @@ -1,14 +1,14 @@ package org.openrndr.extra.fx.edges import org.openrndr.draw.* -import org.openrndr.extra.fx.filterFragmentCode import org.openrndr.extra.fx.ColorBufferDescription +import org.openrndr.extra.fx.filterFragmentUrl import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.IntParameter 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 init { @@ -17,7 +17,7 @@ internal class EdgesWork1 : Filter(Shader.createFromCode(filterVertexCode, filte } @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 */ diff --git a/orx-fx/src/main/kotlin/edges/LumaSobel.kt b/orx-fx/src/main/kotlin/edges/LumaSobel.kt index f76a5053..899a2fad 100644 --- a/orx-fx/src/main/kotlin/edges/LumaSobel.kt +++ b/orx-fx/src/main/kotlin/edges/LumaSobel.kt @@ -2,14 +2,14 @@ package org.openrndr.extra.fx.edges import org.openrndr.color.ColorRGBa import org.openrndr.draw.Filter -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.ColorParameter import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.DoubleParameter @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") var backgroundColor: ColorRGBa by parameters diff --git a/orx-fx/src/main/kotlin/grain/FilmGrain.kt b/orx-fx/src/main/kotlin/grain/FilmGrain.kt index 355423b1..0e6ab863 100644 --- a/orx-fx/src/main/kotlin/grain/FilmGrain.kt +++ b/orx-fx/src/main/kotlin/grain/FilmGrain.kt @@ -1,6 +1,7 @@ import org.openrndr.draw.Filter 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.Description import org.openrndr.extra.parameters.DoubleParameter @@ -9,7 +10,7 @@ import org.openrndr.extra.parameters.DoubleParameter * Film grain filter */ @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") var useColor: Boolean by parameters diff --git a/orx-fx/src/main/kotlin/patterns/Checkers.kt b/orx-fx/src/main/kotlin/patterns/Checkers.kt index fe0817e7..38d53df4 100644 --- a/orx-fx/src/main/kotlin/patterns/Checkers.kt +++ b/orx-fx/src/main/kotlin/patterns/Checkers.kt @@ -2,13 +2,13 @@ package org.openrndr.extra.fx.patterns import org.openrndr.color.ColorRGBa import org.openrndr.draw.Filter -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.Description import org.openrndr.extra.parameters.DoubleParameter @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 foreground: ColorRGBa by parameters @DoubleParameter("size", 0.0, 1.0) diff --git a/orx-fx/src/main/kotlin/shadow/DropShadow.kt b/orx-fx/src/main/kotlin/shadow/DropShadow.kt index 4df366f2..4ea4dfe6 100644 --- a/orx-fx/src/main/kotlin/shadow/DropShadow.kt +++ b/orx-fx/src/main/kotlin/shadow/DropShadow.kt @@ -2,23 +2,20 @@ package org.openrndr.extra.fx.shadow import org.openrndr.color.ColorRGBa -import org.openrndr.draw.ColorBuffer -import org.openrndr.draw.Filter -import org.openrndr.draw.Shader -import org.openrndr.draw.colorBuffer -import org.openrndr.extra.fx.filterFragmentCode +import org.openrndr.draw.* +import org.openrndr.extra.fx.filterFragmentUrl import org.openrndr.extra.parameters.ColorParameter import org.openrndr.extra.parameters.Description import org.openrndr.extra.parameters.DoubleParameter import org.openrndr.extra.parameters.IntParameter 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 } @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) var window: Int by parameters diff --git a/orx-fx/src/main/kotlin/tonemap/Uncharted2Tonemap.kt b/orx-fx/src/main/kotlin/tonemap/Uncharted2Tonemap.kt index 6f9a667f..5c7ad0e3 100644 --- a/orx-fx/src/main/kotlin/tonemap/Uncharted2Tonemap.kt +++ b/orx-fx/src/main/kotlin/tonemap/Uncharted2Tonemap.kt @@ -1,8 +1,8 @@ package org.openrndr.extra.fx.tonemap import org.openrndr.draw.Filter -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.Description import org.openrndr.extra.parameters.DoubleParameter @@ -10,7 +10,7 @@ import org.openrndr.extra.parameters.DoubleParameter * Uncharted 2 tonemap filter */ @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) var exposureBias:Double by parameters diff --git a/orx-fx/src/main/kotlin/transform/FlipVertically.kt b/orx-fx/src/main/kotlin/transform/FlipVertically.kt index 48d24e41..79a1253b 100644 --- a/orx-fx/src/main/kotlin/transform/FlipVertically.kt +++ b/orx-fx/src/main/kotlin/transform/FlipVertically.kt @@ -2,9 +2,10 @@ package org.openrndr.extra.fx.transform import org.openrndr.draw.Filter 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 */ -class FlipVertically : Filter(Shader.createFromCode(Filter.filterVertexCode, filterFragmentCode("transform/flip-vertically.frag"))) \ No newline at end of file +class FlipVertically : Filter(filterShaderFromUrl(filterFragmentUrl("transform/flip-vertically.frag"))) \ No newline at end of file diff --git a/orx-gui/src/main/kotlin/Gui.kt b/orx-gui/src/main/kotlin/Gui.kt index 141aba11..0e7d07c1 100644 --- a/orx-gui/src/main/kotlin/Gui.kt +++ b/orx-gui/src/main/kotlin/Gui.kt @@ -8,8 +8,10 @@ import org.openrndr.KEY_LEFT_SHIFT import org.openrndr.KeyModifier import org.openrndr.Program import org.openrndr.color.ColorRGBa +import org.openrndr.dialogs.getDefaultPathForContext import org.openrndr.dialogs.openFileDialog import org.openrndr.dialogs.saveFileDialog +import org.openrndr.dialogs.setDefaultPathForContext import org.openrndr.draw.Drawer import org.openrndr.extra.parameters.* import org.openrndr.internal.Driver @@ -222,7 +224,7 @@ class GUI : Extension { button { label = "Load" clicked { - openFileDialog(supportedExtensions = listOf("json")) { + openFileDialog(supportedExtensions = listOf("json"), contextID = "gui.parameters") { loadParameters(it) } } @@ -230,7 +232,24 @@ class GUI : Extension { button { label = "Save" 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) } }