diff --git a/build.gradle b/build.gradle index f5e5df41..7fd97579 100644 --- a/build.gradle +++ b/build.gradle @@ -4,7 +4,6 @@ buildscript { } dependencies { - classpath "org.jetbrains.dokka:dokka-gradle-plugin:0.9.17" classpath "org.jetbrains.dokka:dokka-gradle-plugin:0.9.17" classpath "com.netflix.nebula:nebula-kotlin-plugin:1.3.61" classpath "com.netflix.nebula:nebula-publishing-plugin:17.0.5" @@ -13,17 +12,7 @@ buildscript { } } - - -//allprojects { -// group 'org.openrndr.extra' -// version '0.0.30' -//} -// -//repositories { -// mavenLocal() -// mavenCentral() -//} +apply plugin: 'org.jetbrains.dokka' project.ext { openrndrVersion = "0.3.39" @@ -34,6 +23,15 @@ project.ext { gsonVersion = "2.8.6" } +dokka { + moduleName = "$rootProject.name" + outputDirectory = "$buildDir/docs" + outputFormat = "html" + includes = ['Module.md'] + sourceDirs = files(subprojects.collect { p -> new File(p.projectDir, "/src/main/kotlin") }) + } + + allprojects { apply plugin: 'idea' apply plugin: 'java' @@ -43,17 +41,10 @@ allprojects { apply plugin: 'nebula.release' apply plugin: 'nebula.maven-publish' - apply plugin: 'nebula.nebula-bintray-publishing' apply plugin: 'nebula.source-jar' apply plugin: 'nebula.javadoc-jar' apply plugin: 'nebula.nebula-bintray-publishing' - - // selectively apply only the bintray plugin, snapshots are not published - // nebula-bintray needs to happened after nebula-release since version isn't lazy in the bintray extension - apply plugin: 'nebula.nebula-bintray-publishing' - apply plugin: 'nebula.source-jar' - group 'org.openrndr.extra' repositories { @@ -82,6 +73,17 @@ allprojects { runtimeOnly "org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion" } + + java { + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 + } + + + javadoc { + options.addBooleanOption 'Xdoclint:none', true + } + contacts { 'edwin@openrndr.org' { moniker 'Edwin Jakobs' @@ -98,10 +100,10 @@ allprojects { gppSign = false syncToMavenCentral = false licenses = ['BSD-2-Clause'] - vcsUrl = 'https://github.com/openrndr/openrndr-panel.git' + vcsUrl = 'https://github.com/openrndr/orx.git' websiteUrl = 'https://www.openrndr.org' - issueTrackerUrl = 'https://github.com/openrndr/openrndr-panel/issues' - labels = ['creative-coding', 'realtime-rendering', 'opengl', 'gui'] + issueTrackerUrl = 'https://github.com/openrndr/orx/issues' + labels = ['creative-coding', 'realtime-rendering', 'opengl'] } diff --git a/orx-compositor/build.gradle b/orx-compositor/build.gradle index fff268b1..7afc9b60 100644 --- a/orx-compositor/build.gradle +++ b/orx-compositor/build.gradle @@ -1,3 +1,3 @@ dependencies { - compile project(":orx-parameters") + api project(":orx-parameters") } \ No newline at end of file diff --git a/orx-fx/build.gradle b/orx-fx/build.gradle index fff268b1..7afc9b60 100644 --- a/orx-fx/build.gradle +++ b/orx-fx/build.gradle @@ -1,3 +1,3 @@ dependencies { - compile project(":orx-parameters") + api project(":orx-parameters") } \ No newline at end of file diff --git a/orx-gui/build.gradle b/orx-gui/build.gradle index 063fc58f..c6fddf2a 100644 --- a/orx-gui/build.gradle +++ b/orx-gui/build.gradle @@ -1,6 +1,6 @@ dependencies { - compile project(":orx-parameters") - compile "org.openrndr.panel:openrndr-panel:$panelVersion" - compile "org.openrndr:openrndr-dialogs:$openrndrVersion" - compile "com.google.code.gson:gson:$gsonVersion" + api project(":orx-parameters") + api "org.openrndr.panel:openrndr-panel:$panelVersion" + implementation "org.openrndr:openrndr-dialogs:$openrndrVersion" + implementation "com.google.code.gson:gson:$gsonVersion" } \ No newline at end of file diff --git a/orx-integral-image/build.gradle b/orx-integral-image/build.gradle index cee4a518..217cbae4 100644 --- a/orx-integral-image/build.gradle +++ b/orx-integral-image/build.gradle @@ -1,3 +1,3 @@ dependencies { - compile project(":orx-fx") + implementation project(":orx-fx") } \ No newline at end of file diff --git a/orx-jumpflood/build.gradle b/orx-jumpflood/build.gradle index cee4a518..217cbae4 100644 --- a/orx-jumpflood/build.gradle +++ b/orx-jumpflood/build.gradle @@ -1,3 +1,3 @@ dependencies { - compile project(":orx-fx") + implementation project(":orx-fx") } \ No newline at end of file diff --git a/orx-kinect-v1-demo/build.gradle b/orx-kinect-v1-demo/build.gradle index 9ef36ea1..b1964fde 100644 --- a/orx-kinect-v1-demo/build.gradle +++ b/orx-kinect-v1-demo/build.gradle @@ -5,9 +5,9 @@ else if (os.macOsX) { openrndrOs = "macos" } else if (os.linux) { openrndrOs = "linux-x64" } dependencies { - compile project(":orx-kinect-v1") - runtime project(":orx-kinect-v1-natives-$openrndrOs") - runtime "org.openrndr:openrndr-gl3:$openrndrVersion" - runtime "org.openrndr:openrndr-gl3-natives-$openrndrOs:$openrndrVersion" - runtime "ch.qos.logback:logback-classic:1.2.3" + implementation project(":orx-kinect-v1") + runtimeOnly project(":orx-kinect-v1-natives-$openrndrOs") + runtimeOnly "org.openrndr:openrndr-gl3:$openrndrVersion" + runtimeOnly "org.openrndr:openrndr-gl3-natives-$openrndrOs:$openrndrVersion" + runtimeOnly "ch.qos.logback:logback-classic:1.2.3" } diff --git a/orx-kinect-v1-natives-linux-arm64/build.gradle b/orx-kinect-v1-natives-linux-arm64/build.gradle index 7e6e2e17..00e68b07 100644 --- a/orx-kinect-v1-natives-linux-arm64/build.gradle +++ b/orx-kinect-v1-natives-linux-arm64/build.gradle @@ -1,3 +1,3 @@ dependencies { - runtime "org.bytedeco:libfreenect:$libfreenectVersion:linux-arm64" + runtimeOnly "org.bytedeco:libfreenect:$libfreenectVersion:linux-arm64" } diff --git a/orx-kinect-v1-natives-linux-x64/build.gradle b/orx-kinect-v1-natives-linux-x64/build.gradle index 0f456c2f..5590b7fd 100644 --- a/orx-kinect-v1-natives-linux-x64/build.gradle +++ b/orx-kinect-v1-natives-linux-x64/build.gradle @@ -1,3 +1,3 @@ dependencies { - runtime "org.bytedeco:libfreenect:$libfreenectVersion:linux-x86_64" + runtimeOnly "org.bytedeco:libfreenect:$libfreenectVersion:linux-x86_64" } diff --git a/orx-kinect-v1-natives-macos/build.gradle b/orx-kinect-v1-natives-macos/build.gradle index 711dae42..407b5bf2 100644 --- a/orx-kinect-v1-natives-macos/build.gradle +++ b/orx-kinect-v1-natives-macos/build.gradle @@ -1,3 +1,3 @@ dependencies { - runtime "org.bytedeco:libfreenect:$libfreenectVersion:macosx-x86_64" + runtimeOnly "org.bytedeco:libfreenect:$libfreenectVersion:macosx-x86_64" } diff --git a/orx-kinect-v1-natives-windows/build.gradle b/orx-kinect-v1-natives-windows/build.gradle index 15c9ecd2..b1acfd76 100644 --- a/orx-kinect-v1-natives-windows/build.gradle +++ b/orx-kinect-v1-natives-windows/build.gradle @@ -1,3 +1,3 @@ dependencies { - runtime "org.bytedeco:libfreenect:$libfreenectVersion:windows-x86_64" + runtimeOnly "org.bytedeco:libfreenect:$libfreenectVersion:windows-x86_64" } diff --git a/orx-kinect-v1/build.gradle b/orx-kinect-v1/build.gradle index dcbf0ad5..6f6c62e0 100644 --- a/orx-kinect-v1/build.gradle +++ b/orx-kinect-v1/build.gradle @@ -1,5 +1,5 @@ dependencies { - compile project(":orx-kinect-common") - compile "io.github.microutils:kotlin-logging:1.7.2" - compile "org.bytedeco:libfreenect:$libfreenectVersion" + api project(":orx-kinect-common") + implementation "io.github.microutils:kotlin-logging:1.7.2" + api "org.bytedeco:libfreenect:$libfreenectVersion" } diff --git a/orx-olive/README.md b/orx-olive/README.md index 5a9c85fb..1d546d8e 100644 --- a/orx-olive/README.md +++ b/orx-olive/README.md @@ -6,7 +6,7 @@ Live coding extension for OPENRNDR make sure that you add the following to your list of dependencies (next to orx-olive) ``` -compile "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.3.31" +implementation "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:1.3.31" ``` Then a simple live setup can created as follows: diff --git a/orx-olive/build.gradle b/orx-olive/build.gradle index 64043e6a..e91fe5a4 100644 --- a/orx-olive/build.gradle +++ b/orx-olive/build.gradle @@ -1,15 +1,15 @@ dependencies { - compile project(":orx-file-watcher") + implementation project(":orx-file-watcher") // -- JSR 223, old style script loader - compile "org.jetbrains.kotlin:kotlin-scripting-jsr223:$kotlinVersion" + implementation "org.jetbrains.kotlin:kotlin-scripting-jsr223:$kotlinVersion" - compile "org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion" - compile "org.jetbrains.kotlin:kotlin-scripting-jvm-host-embeddable:$kotlinVersion" - compile "org.jetbrains.kotlin:kotlin-scripting-common:$kotlinVersion" - compile "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:$kotlinVersion" - compile "org.jetbrains.kotlin:kotlin-compiler-embeddable:$kotlinVersion" - compile "org.jetbrains.kotlin:kotlin-compiler:$kotlinVersion" + implementation "org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion" + implementation "org.jetbrains.kotlin:kotlin-scripting-jvm-host-embeddable:$kotlinVersion" + implementation "org.jetbrains.kotlin:kotlin-scripting-common:$kotlinVersion" + implementation "org.jetbrains.kotlin:kotlin-scripting-compiler-embeddable:$kotlinVersion" + implementation "org.jetbrains.kotlin:kotlin-compiler-embeddable:$kotlinVersion" + implementation "org.jetbrains.kotlin:kotlin-compiler:$kotlinVersion" // compile "org.jetbrains.kotlin:kotlin-script-util:$kotlinVersion" // compile "org.jetbrains.kotlin:kotlin-main-kts:$kotlinVersion" // compile "org.jetbrains.kotlin:kotlin-scripting-dependencies:$kotlinVersion" diff --git a/orx-osc/build.gradle b/orx-osc/build.gradle index 9f2daaa2..8dd740d4 100644 --- a/orx-osc/build.gradle +++ b/orx-osc/build.gradle @@ -1,5 +1,5 @@ dependencies { def withoutSlf4j = { exclude group: 'org.slf4j' } - compile "com.illposed.osc:javaosc-core:0.6", withoutSlf4j + implementation "com.illposed.osc:javaosc-core:0.6", withoutSlf4j } \ No newline at end of file diff --git a/orx-palette/build.gradle b/orx-palette/build.gradle index 2acf5ee7..667ff26b 100644 --- a/orx-palette/build.gradle +++ b/orx-palette/build.gradle @@ -1,5 +1,5 @@ dependencies { - compile "com.google.code.gson:gson:$gsonVersion" + implementation "com.google.code.gson:gson:$gsonVersion" implementation project(":orx-noise") } diff --git a/orx-poisson-fill/build.gradle b/orx-poisson-fill/build.gradle index cee4a518..217cbae4 100644 --- a/orx-poisson-fill/build.gradle +++ b/orx-poisson-fill/build.gradle @@ -1,3 +1,3 @@ dependencies { - compile project(":orx-fx") + implementation project(":orx-fx") } \ No newline at end of file diff --git a/orx-poisson-fill/src/main/kotlin/ConvolutionPyramid.kt b/orx-poisson-fill/src/main/kotlin/ConvolutionPyramid.kt index 20bac87b..c5a72490 100644 --- a/orx-poisson-fill/src/main/kotlin/ConvolutionPyramid.kt +++ b/orx-poisson-fill/src/main/kotlin/ConvolutionPyramid.kt @@ -120,4 +120,15 @@ internal class ConvolutionPyramid(width: Int, height: Int, passthrough.padding = 0 return result } + + fun destroy() { + result.destroy() + (levelsIn+levelsOut).forEach { + it.colorBuffers.forEach { it.destroy() } + it.detachColorBuffers() + it.destroy() + } + } + + } \ No newline at end of file diff --git a/orx-poisson-fill/src/main/kotlin/PoissonFiller.kt b/orx-poisson-fill/src/main/kotlin/PoissonFiller.kt index f4f06f5d..3bbe0589 100644 --- a/orx-poisson-fill/src/main/kotlin/PoissonFiller.kt +++ b/orx-poisson-fill/src/main/kotlin/PoissonFiller.kt @@ -6,7 +6,7 @@ import org.openrndr.resourceUrl internal class FillBoundary : Filter(filterShaderFromUrl(resourceUrl("/shaders/gl3/poisson/fill-boundary.frag"))) internal class FillCombine : Filter(filterShaderFromUrl(resourceUrl("/shaders/gl3/poisson/fill-combine.frag"))) -class PoissonFiller(width: Int, height: Int, type: ColorType = ColorType.FLOAT32) { +class PoissonFiller(val width: Int, val height: Int, type: ColorType = ColorType.FLOAT32) { private val pyramid = ConvolutionPyramid(width, height, 0, type = type) private val preproc = colorBuffer(width, height, type = type) private val combined = colorBuffer(width, height, type = type) @@ -29,4 +29,36 @@ class PoissonFiller(width: Int, height: Int, type: ColorType = ColorType.FLOAT32 fillCombine.apply(arrayOf(result, input), arrayOf(combined)) return combined } + + fun destroy() { + preproc.destroy() + combined.destroy() + + } + +} + +class PoissonFill : Filter() { + private var filler: PoissonFiller? = null + override fun apply(source: Array, target: Array) { + + if (target.isNotEmpty()) { + + filler?.let { + if (it.width != target[0].width || it.height != target[0].height) { + it.destroy() + filler = null + } + } + + if (filler == null) { + filler = PoissonFiller(target[0].width, target[0].height) + } + + filler?.let { + val result = it.process(source[0]) + result.copyTo(target[0]) + } + } + } } \ No newline at end of file diff --git a/orx-runway/build.gradle b/orx-runway/build.gradle index 58aee255..12340b5f 100644 --- a/orx-runway/build.gradle +++ b/orx-runway/build.gradle @@ -1,3 +1,3 @@ dependencies { - compile "com.google.code.gson:gson:$gsonVersion" + implementation "com.google.code.gson:gson:$gsonVersion" } \ No newline at end of file diff --git a/orx-temporal-blur/build.gradle b/orx-temporal-blur/build.gradle index 2fcfea76..6f2ad602 100644 --- a/orx-temporal-blur/build.gradle +++ b/orx-temporal-blur/build.gradle @@ -1,4 +1,4 @@ dependencies { - compile project(":orx-noise") - compile project(":orx-fx") + implementation project(":orx-noise") + implementation project(":orx-fx") } \ No newline at end of file