Fixes and move to jvmDemo (#286)
This commit is contained in:
5
.github/workflows/build.yml
vendored
5
.github/workflows/build.yml
vendored
@@ -21,7 +21,7 @@ jobs:
|
||||
path: ./orx
|
||||
|
||||
- name: Validate Gradle wrapper
|
||||
uses: gradle/wrapper-validation-action@v1.0.4
|
||||
uses: gradle/wrapper-validation-action@v1.0.5
|
||||
|
||||
- name: Checkout OPENRNDR repository
|
||||
uses: actions/checkout@v3
|
||||
@@ -33,10 +33,11 @@ jobs:
|
||||
|
||||
- name: Test glxinfo
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y mesa-utils xvfb
|
||||
xvfb-run glxinfo
|
||||
|
||||
- uses: actions/setup-java@v2
|
||||
- uses: actions/setup-java@v3
|
||||
with:
|
||||
distribution: temurin
|
||||
java-version: 17
|
||||
|
||||
5
.github/workflows/generate-screenshots.yml
vendored
5
.github/workflows/generate-screenshots.yml
vendored
@@ -17,7 +17,7 @@ jobs:
|
||||
path: ./orx
|
||||
|
||||
- name: Validate Gradle wrapper
|
||||
uses: gradle/wrapper-validation-action@v1.0.4
|
||||
uses: gradle/wrapper-validation-action@v1.0.5
|
||||
|
||||
- name: Checkout OPENRNDR repository
|
||||
uses: actions/checkout@v3
|
||||
@@ -29,10 +29,11 @@ jobs:
|
||||
|
||||
- name: Test glxinfo
|
||||
run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y mesa-utils xvfb
|
||||
xvfb-run glxinfo
|
||||
|
||||
- uses: actions/setup-java@v2
|
||||
- uses: actions/setup-java@v3
|
||||
with:
|
||||
distribution: temurin
|
||||
java-version: 17
|
||||
|
||||
@@ -13,7 +13,7 @@ jobs:
|
||||
- name: Get the version
|
||||
id: get_version
|
||||
run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\/v/}
|
||||
- uses: actions/setup-java@v2
|
||||
- uses: actions/setup-java@v3
|
||||
with:
|
||||
distribution: temurin
|
||||
java-version: 17
|
||||
|
||||
@@ -14,7 +14,7 @@ jobs:
|
||||
- name: Get the version
|
||||
id: get_version
|
||||
run: echo ::set-output name=VERSION::${GITHUB_REF/refs\/tags\/v/}
|
||||
- uses: actions/setup-java@v2
|
||||
- uses: actions/setup-java@v3
|
||||
with:
|
||||
distribution: temurin
|
||||
java-version: 17
|
||||
|
||||
@@ -7,17 +7,17 @@ import org.gradle.api.provider.ListProperty
|
||||
import org.gradle.api.provider.Property
|
||||
import org.gradle.api.tasks.*
|
||||
import org.gradle.kotlin.dsl.register
|
||||
import org.gradle.process.ExecOperations
|
||||
import org.gradle.work.Incremental
|
||||
import org.gradle.work.InputChanges
|
||||
import org.jetbrains.kotlin.gradle.plugin.mpp.KotlinJvmCompilation
|
||||
import java.io.File
|
||||
import java.net.URLClassLoader
|
||||
import javax.inject.Inject
|
||||
|
||||
abstract class CollectScreenshotsTask @Inject constructor() : DefaultTask() {
|
||||
@get:Incremental
|
||||
@get:PathSensitive(PathSensitivity.NAME_ONLY)
|
||||
@get:InputDirectory
|
||||
@get:PathSensitive(PathSensitivity.NAME_ONLY)
|
||||
@get:SkipWhenEmpty
|
||||
abstract val inputDir: DirectoryProperty
|
||||
|
||||
@get:Input
|
||||
@@ -27,54 +27,55 @@ abstract class CollectScreenshotsTask @Inject constructor() : DefaultTask() {
|
||||
abstract val outputDir: DirectoryProperty
|
||||
|
||||
@get:Input
|
||||
@get:Optional
|
||||
abstract val ignore: ListProperty<String>
|
||||
|
||||
@get:Inject
|
||||
abstract val execOperations: ExecOperations
|
||||
|
||||
init {
|
||||
ignore.set(emptyList())
|
||||
}
|
||||
@TaskAction
|
||||
fun execute(inputChanges: InputChanges) {
|
||||
val preloadClass = File(project.rootProject.projectDir, "buildSrc/build/classes/kotlin/preload")
|
||||
require(preloadClass.exists()) {
|
||||
"preload class not found: '${preloadClass.absolutePath}'"
|
||||
|
||||
}
|
||||
inputChanges.getFileChanges(inputDir).forEach { change ->
|
||||
println(change)
|
||||
if (change.fileType == FileType.DIRECTORY) return@forEach
|
||||
if (change.file.extension == "class") {
|
||||
val klassName = change.file.nameWithoutExtension
|
||||
if (klassName.dropLast(2) in ignore.get())
|
||||
if (klassName.dropLast(2) in ignore.get()) {
|
||||
return@forEach
|
||||
|
||||
val cp = (runtimeDependencies.get().map { it.toURI().toURL() } +
|
||||
inputDir.get().asFile.toURI().toURL()
|
||||
)
|
||||
.toTypedArray()
|
||||
|
||||
val ucl = URLClassLoader(cp)
|
||||
val klass = ucl.loadClass(klassName)
|
||||
println("Collecting screenshot for ${klassName} ${klass}")
|
||||
}
|
||||
|
||||
try {
|
||||
val mainMethod = klass.getMethod("main")
|
||||
project.javaexec {
|
||||
val cp = (runtimeDependencies.get().map { it.toURI().toURL() } + inputDir.get().asFile.toURI()
|
||||
.toURL()).toTypedArray()
|
||||
val ucl = URLClassLoader(cp)
|
||||
val klass = ucl.loadClass(klassName)
|
||||
klass.getMethod("main")
|
||||
} catch (e: NoSuchMethodException) {
|
||||
return@forEach
|
||||
}
|
||||
|
||||
println("Collecting screenshot for ${klassName}")
|
||||
|
||||
execOperations.javaexec {
|
||||
this.classpath += project.files(inputDir.get().asFile, preloadClass)
|
||||
this.classpath += runtimeDependencies.get()
|
||||
this.mainClass.set(klassName)
|
||||
this.workingDir(project.rootProject.projectDir)
|
||||
jvmArgs("-DtakeScreenshot=true", "-DscreenshotPath=${outputDir.get().asFile}/$klassName.png", "-Dorg.openrndr.exceptions=JVM")
|
||||
}
|
||||
} catch (e: NoSuchMethodException) {
|
||||
// silently ignore
|
||||
this.jvmArgs(
|
||||
"-DtakeScreenshot=true",
|
||||
"-DscreenshotPath=${outputDir.get().asFile}/$klassName.png",
|
||||
"-Dorg.openrndr.exceptions=JVM"
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
// this is only executed if there are changes in the inputDir
|
||||
val runDemos = outputDir.get().asFile.listFiles { file: File ->
|
||||
file.extension == "png"
|
||||
}.map { it.nameWithoutExtension }.sorted()
|
||||
}!!.map { it.nameWithoutExtension }.sorted()
|
||||
val readme = File(project.projectDir, "README.md")
|
||||
if (readme.exists()) {
|
||||
var lines = readme.readLines().toMutableList()
|
||||
@@ -84,10 +85,18 @@ abstract class CollectScreenshotsTask @Inject constructor() : DefaultTask() {
|
||||
}
|
||||
lines.add("<!-- __demos__ -->")
|
||||
lines.add("## Demos")
|
||||
|
||||
// Find out if current project is MPP
|
||||
val demoModuleName = if (project.plugins.hasPlugin("org.jetbrains.kotlin.multiplatform")) {
|
||||
"jvmDemo"
|
||||
} else {
|
||||
"demo"
|
||||
}
|
||||
|
||||
for (demo in runDemos) {
|
||||
val projectPath = project.projectDir.relativeTo(project.rootDir)
|
||||
lines.add("### ${demo.dropLast(2)}")
|
||||
lines.add("[source code](src/demo/kotlin/${demo.dropLast(2)}.kt)")
|
||||
lines.add("[source code](src/${demoModuleName}/kotlin/${demo.dropLast(2)}.kt)")
|
||||
lines.add("")
|
||||
lines.add("")
|
||||
lines.add("")
|
||||
@@ -99,18 +108,11 @@ abstract class CollectScreenshotsTask @Inject constructor() : DefaultTask() {
|
||||
}
|
||||
|
||||
object ScreenshotsHelper {
|
||||
fun KotlinJvmCompilation.collectScreenshots(config: CollectScreenshotsTask.() -> Unit): CollectScreenshotsTask {
|
||||
val task = this.project.tasks.register<CollectScreenshotsTask>("collectScreenshots").get()
|
||||
task.outputDir.set(project.file(project.projectDir.toString() + "/images"))
|
||||
task.inputDir.set(output.classesDirs.first())
|
||||
task.runtimeDependencies.set(runtimeDependencyFiles)
|
||||
task.config()
|
||||
task.dependsOn(this.compileKotlinTask)
|
||||
return task
|
||||
|
||||
}
|
||||
|
||||
fun collectScreenshots(project: Project, sourceSet: SourceSet, config: CollectScreenshotsTask.() -> Unit): CollectScreenshotsTask {
|
||||
fun collectScreenshots(
|
||||
project: Project,
|
||||
sourceSet: SourceSet,
|
||||
config: CollectScreenshotsTask.() -> Unit
|
||||
): CollectScreenshotsTask {
|
||||
val task = project.tasks.register<CollectScreenshotsTask>("collectScreenshots").get()
|
||||
task.outputDir.set(project.file(project.projectDir.toString() + "/images"))
|
||||
task.inputDir.set(File(project.buildDir, "classes/kotlin/${sourceSet.name}"))
|
||||
|
||||
@@ -17,10 +17,6 @@ plugins {
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven {
|
||||
// This is needed to resolve `com.github.ricardomatias:delaunator`
|
||||
url = URI("https://maven.openrndr.org")
|
||||
}
|
||||
mavenLocal()
|
||||
}
|
||||
|
||||
@@ -39,6 +35,7 @@ dependencies {
|
||||
"demoImplementation"(libs.openrndr.application)
|
||||
"demoImplementation"(libs.openrndr.extensions)
|
||||
"demoRuntimeOnly"(libs.openrndr.gl3.core)
|
||||
"demoRuntimeOnly"(libs.slf4j.simple)
|
||||
}
|
||||
|
||||
kotlin {
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.openrndr.extra.convention
|
||||
|
||||
import CollectScreenshotsTask
|
||||
import org.gradle.accessors.dm.LibrariesForLibs
|
||||
import org.gradle.api.tasks.testing.logging.TestExceptionFormat
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||
@@ -16,10 +17,6 @@ plugins {
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven {
|
||||
// This is needed to resolve `com.github.ricardomatias:delaunator`
|
||||
url = URI("https://maven.openrndr.org")
|
||||
}
|
||||
mavenLocal()
|
||||
}
|
||||
|
||||
@@ -37,10 +34,12 @@ kotlin {
|
||||
val main by getting
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val demo by creating {
|
||||
defaultSourceSet {
|
||||
dependencies {
|
||||
implementation(main.output.allOutputs)
|
||||
}
|
||||
associateWith(main)
|
||||
tasks.register<CollectScreenshotsTask>("collectScreenshots") {
|
||||
inputDir.set(output.classesDirs.singleFile)
|
||||
runtimeDependencies.set(runtimeDependencyFiles)
|
||||
outputDir.set(project.file(project.projectDir.toString() + "/images"))
|
||||
dependsOn(compileKotlinTask)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -84,6 +83,7 @@ kotlin {
|
||||
implementation(libs.openrndr.application)
|
||||
implementation(libs.openrndr.extensions)
|
||||
runtimeOnly(libs.openrndr.gl3.core)
|
||||
runtimeOnly(libs.slf4j.simple)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -30,7 +30,6 @@ ktor = "2.0.3"
|
||||
jgit = "5.12.0.202106070339-r"
|
||||
javaosc = "0.8"
|
||||
javaparser = "3.15.21"
|
||||
delaunator = "1.0.2"
|
||||
|
||||
[libraries]
|
||||
kotlin-logging = { group = "io.github.microutils", name = "kotlin-logging", version.ref = "kotlinLogging" }
|
||||
@@ -77,7 +76,6 @@ javaparser-core = { group = "com.github.javaparser", name = "javaparser-core", v
|
||||
gson = { group = "com.google.code.gson", name = "gson", version.ref = "gson" }
|
||||
antlr-core = { group = "org.antlr", name = "antlr4", version.ref = "antlr" }
|
||||
antlr-runtime = { group = "org.antlr", name = "antlr4-runtime", version.ref = "antlr" }
|
||||
delaunator = { group = "com.github.ricardomatias", name = "delaunator", version.ref = "delaunator" }
|
||||
|
||||
jupiter-api = { group = "org.junit.jupiter", name = "junit-jupiter-api", version.ref = "junitJupiter" }
|
||||
jupiter-engine = { group = "org.junit.jupiter", name = "junit-jupiter-engine", version.ref = "junitJupiter" }
|
||||
|
||||
@@ -1,19 +1,9 @@
|
||||
import ScreenshotsHelper.collectScreenshots
|
||||
|
||||
plugins {
|
||||
org.openrndr.extra.convention.`kotlin-multiplatform`
|
||||
}
|
||||
|
||||
kotlin {
|
||||
jvm {
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val demo by compilations.getting {
|
||||
// TODO: Move demos to /jvmDemo
|
||||
defaultSourceSet {
|
||||
kotlin.srcDir("src/demo/kotlin")
|
||||
}
|
||||
collectScreenshots { }
|
||||
}
|
||||
testRuns["test"].executionTask {
|
||||
useJUnitPlatform {
|
||||
includeEngines("spek2")
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import ScreenshotsHelper.collectScreenshots
|
||||
|
||||
@Suppress("DSL_SCOPE_VIOLATION")
|
||||
plugins {
|
||||
org.openrndr.extra.convention.`kotlin-multiplatform`
|
||||
@@ -11,14 +9,6 @@ plugins {
|
||||
|
||||
kotlin {
|
||||
jvm {
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val demo by compilations.getting {
|
||||
// TODO: Move demos to /jvmDemo
|
||||
defaultSourceSet {
|
||||
kotlin.srcDir("src/demo/kotlin")
|
||||
}
|
||||
collectScreenshots { }
|
||||
}
|
||||
testRuns["test"].executionTask {
|
||||
useJUnitPlatform {
|
||||
includeEngines("spek2")
|
||||
|
||||
@@ -1,21 +1,8 @@
|
||||
import ScreenshotsHelper.collectScreenshots
|
||||
|
||||
plugins {
|
||||
org.openrndr.extra.convention.`kotlin-multiplatform`
|
||||
}
|
||||
|
||||
kotlin {
|
||||
jvm {
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val demo by compilations.getting {
|
||||
// TODO: Move demos to /jvmDemo
|
||||
defaultSourceSet {
|
||||
kotlin.srcDir("src/demo/kotlin")
|
||||
}
|
||||
collectScreenshots { }
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val commonMain by getting {
|
||||
@@ -30,15 +17,6 @@ kotlin {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val jvmTest by getting {
|
||||
dependencies {
|
||||
implementation(libs.spek.dsl)
|
||||
implementation(libs.kluent)
|
||||
}
|
||||
}
|
||||
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val jvmDemo by getting {
|
||||
dependencies {
|
||||
|
||||
@@ -1,21 +1,8 @@
|
||||
import ScreenshotsHelper.collectScreenshots
|
||||
|
||||
plugins {
|
||||
org.openrndr.extra.convention.`kotlin-multiplatform`
|
||||
}
|
||||
|
||||
kotlin {
|
||||
jvm {
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val demo by compilations.getting {
|
||||
// TODO: Move demos to /jvmDemo
|
||||
defaultSourceSet {
|
||||
kotlin.srcDir("src/demo/kotlin")
|
||||
}
|
||||
collectScreenshots { }
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val commonMain by getting {
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import ScreenshotsHelper.collectScreenshots
|
||||
|
||||
plugins {
|
||||
org.openrndr.extra.convention.`kotlin-multiplatform`
|
||||
}
|
||||
@@ -14,17 +12,6 @@ val embedShaders = tasks.register<EmbedShadersTask>("embedShaders") {
|
||||
|
||||
|
||||
kotlin {
|
||||
jvm {
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val demo by compilations.getting {
|
||||
// TODO: Move demos to /jvmDemo
|
||||
defaultSourceSet {
|
||||
kotlin.srcDir("src/demo/kotlin")
|
||||
}
|
||||
collectScreenshots { }
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
val shaderKotlin by creating {
|
||||
this.kotlin.srcDir(embedShaders.outputDir)
|
||||
@@ -45,15 +32,6 @@ kotlin {
|
||||
dependsOn(shaderKotlin)
|
||||
}
|
||||
|
||||
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val jvmTest by getting {
|
||||
dependencies {
|
||||
implementation(libs.spek.dsl)
|
||||
implementation(libs.kluent)
|
||||
}
|
||||
}
|
||||
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val jvmDemo by getting {
|
||||
dependencies {
|
||||
|
||||
@@ -1,21 +1,8 @@
|
||||
import ScreenshotsHelper.collectScreenshots
|
||||
|
||||
plugins {
|
||||
org.openrndr.extra.convention.`kotlin-multiplatform`
|
||||
}
|
||||
|
||||
kotlin {
|
||||
jvm {
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val demo by compilations.getting {
|
||||
// TODO: Move demos to /jvmDemo
|
||||
defaultSourceSet {
|
||||
kotlin.srcDir("src/demo/kotlin")
|
||||
}
|
||||
collectScreenshots { }
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val commonMain by getting {
|
||||
|
||||
@@ -1,5 +1,3 @@
|
||||
import ScreenshotsHelper.collectScreenshots
|
||||
|
||||
plugins {
|
||||
org.openrndr.extra.convention.`kotlin-multiplatform`
|
||||
}
|
||||
@@ -12,19 +10,7 @@ val embedShaders = tasks.register<EmbedShadersTask>("embedShaders") {
|
||||
namePrefix.set("jf_")
|
||||
}.get()
|
||||
|
||||
|
||||
kotlin {
|
||||
jvm {
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val demo by compilations.getting {
|
||||
// TODO: Move demos to /jvmDemo
|
||||
defaultSourceSet {
|
||||
kotlin.srcDir("src/demo/kotlin")
|
||||
}
|
||||
collectScreenshots { }
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
val shaderKotlin by creating {
|
||||
this.kotlin.srcDir(embedShaders.outputDir)
|
||||
@@ -44,15 +30,6 @@ kotlin {
|
||||
dependsOn(shaderKotlin)
|
||||
}
|
||||
|
||||
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val jvmTest by getting {
|
||||
dependencies {
|
||||
implementation(libs.spek.dsl)
|
||||
implementation(libs.kluent)
|
||||
}
|
||||
}
|
||||
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val jvmDemo by getting {
|
||||
dependencies {
|
||||
|
||||
@@ -2,7 +2,6 @@ import org.openrndr.application
|
||||
import org.openrndr.draw.ColorFormat
|
||||
import org.openrndr.draw.ColorType
|
||||
import org.openrndr.draw.colorBuffer
|
||||
import org.openrndr.extensions.SingleScreenshot
|
||||
import org.openrndr.extra.jumpfill.ShapeSDF
|
||||
import org.openrndr.svg.loadSVG
|
||||
|
||||
@@ -16,7 +15,7 @@ fun main() {
|
||||
val sdf = ShapeSDF()
|
||||
val df = colorBuffer(width, height, format = ColorFormat.RGBa, type = ColorType.FLOAT32)
|
||||
|
||||
val shapes = loadSVG("orx-jumpflood/src/demo/resources/name.svg").findShapes().map { it.shape }
|
||||
val shapes = loadSVG("orx-jumpflood/src/jvmDemo/resources/name.svg").findShapes().map { it.shape }
|
||||
sdf.setShapes(shapes)
|
||||
sdf.apply(emptyArray(), df)
|
||||
|
||||
@@ -3,10 +3,10 @@ import org.openrndr.color.ColorRGBa
|
||||
import org.openrndr.draw.ColorFormat
|
||||
import org.openrndr.draw.ColorType
|
||||
import org.openrndr.draw.colorBuffer
|
||||
import org.openrndr.extensions.SingleScreenshot
|
||||
import org.openrndr.extra.jumpfill.ShapeSDF
|
||||
import org.openrndr.extra.jumpfill.draw.SDFStrokeFill
|
||||
import org.openrndr.extra.jumpfill.ops.*
|
||||
import org.openrndr.extra.jumpfill.ops.SDFOnion
|
||||
import org.openrndr.extra.jumpfill.ops.SDFSmoothIntersection
|
||||
import org.openrndr.math.Vector3
|
||||
import org.openrndr.math.transforms.transform
|
||||
import org.openrndr.svg.loadSVG
|
||||
@@ -25,7 +25,7 @@ fun main() {
|
||||
val sdf1 = ShapeSDF()
|
||||
val df1 = colorBuffer(width, height, format = ColorFormat.RGBa, type = ColorType.FLOAT32)
|
||||
|
||||
val shapes = loadSVG("orx-jumpflood/src/demo/resources/name.svg").findShapes().map { it.shape }
|
||||
val shapes = loadSVG("orx-jumpflood/src/jvmDemo/resources/name.svg").findShapes().map { it.shape }
|
||||
|
||||
val union = SDFSmoothIntersection()
|
||||
val onion = SDFOnion()
|
||||
@@ -53,7 +53,7 @@ fun main() {
|
||||
onion.radius = 20.0
|
||||
onion.apply(df0, df0)
|
||||
strokeFill.strokeWeight = 2.0
|
||||
strokeFill.apply(df0, df0);
|
||||
strokeFill.apply(df0, df0)
|
||||
drawer.image(df0)
|
||||
}
|
||||
}
|
||||
@@ -3,11 +3,10 @@ import org.openrndr.color.ColorRGBa
|
||||
import org.openrndr.draw.ColorFormat
|
||||
import org.openrndr.draw.ColorType
|
||||
import org.openrndr.draw.colorBuffer
|
||||
import org.openrndr.extensions.SingleScreenshot
|
||||
import org.openrndr.extra.fx.distort.FluidDistort
|
||||
import org.openrndr.extra.jumpfill.ShapeSDF
|
||||
import org.openrndr.extra.jumpfill.draw.SDFStrokeFill
|
||||
import org.openrndr.extra.jumpfill.ops.*
|
||||
import org.openrndr.extra.jumpfill.ops.SDFSmoothDifference
|
||||
import org.openrndr.svg.loadSVG
|
||||
|
||||
fun main() {
|
||||
@@ -27,7 +26,7 @@ fun main() {
|
||||
|
||||
val uvmap = colorBuffer(width, height, type = ColorType.FLOAT16)
|
||||
|
||||
val shapes = loadSVG("orx-jumpflood/src/demo/resources/name.svg").findShapes().map { it.shape }
|
||||
val shapes = loadSVG("orx-jumpflood/src/jvmDemo/resources/name.svg").findShapes().map { it.shape }
|
||||
val union = SDFSmoothDifference()
|
||||
|
||||
sdf0.setShapes(shapes)
|
||||
@@ -47,7 +46,7 @@ fun main() {
|
||||
union.apply(arrayOf(df0, df1), df0)
|
||||
|
||||
strokeFill.strokeWeight = 10.0
|
||||
strokeFill.apply(df0, df0);
|
||||
strokeFill.apply(df0, df0)
|
||||
drawer.image(df0)
|
||||
}
|
||||
}
|
||||
@@ -3,12 +3,11 @@ import org.openrndr.color.ColorRGBa
|
||||
import org.openrndr.draw.ColorFormat
|
||||
import org.openrndr.draw.ColorType
|
||||
import org.openrndr.draw.colorBuffer
|
||||
import org.openrndr.extensions.SingleScreenshot
|
||||
import org.openrndr.extra.fx.distort.Perturb
|
||||
import org.openrndr.extra.gui.GUI
|
||||
import org.openrndr.extra.jumpfill.ShapeSDF
|
||||
import org.openrndr.extra.jumpfill.draw.SDFStrokeFill
|
||||
import org.openrndr.extra.jumpfill.ops.*
|
||||
import org.openrndr.extra.jumpfill.ops.SDFSmoothDifference
|
||||
import org.openrndr.shape.Circle
|
||||
import org.openrndr.svg.loadSVG
|
||||
|
||||
@@ -31,7 +30,7 @@ fun main() {
|
||||
val uvmap = colorBuffer(width, height, type = ColorType.FLOAT16)
|
||||
|
||||
val circleShapes = List(1) { Circle(width/2.0, height/2.0, 200.0).shape}
|
||||
val shapes = loadSVG("orx-jumpflood/src/demo/resources/name.svg").findShapes().map { it.shape }
|
||||
val shapes = loadSVG("orx-jumpflood/src/jvmDemo/resources/name.svg").findShapes().map { it.shape }
|
||||
|
||||
sdf0.setShapes(circleShapes)
|
||||
sdf1.setShapes(shapes)
|
||||
@@ -54,7 +53,7 @@ fun main() {
|
||||
difference.apply(arrayOf(df0, df1), df0)
|
||||
|
||||
strokeFill.strokeWeight = 10.0
|
||||
strokeFill.apply(df0, df0);
|
||||
strokeFill.apply(df0, df0)
|
||||
drawer.image(df0)
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,7 @@ import org.openrndr.extra.fx.distort.Perturb
|
||||
import org.openrndr.extra.gui.GUI
|
||||
import org.openrndr.extra.jumpfill.ShapeSDF
|
||||
import org.openrndr.extra.jumpfill.draw.SDFStrokeFill
|
||||
import org.openrndr.extra.jumpfill.ops.*
|
||||
import org.openrndr.extra.jumpfill.ops.SDFSmoothDifference
|
||||
import org.openrndr.math.Vector2
|
||||
import org.openrndr.shape.Circle
|
||||
import org.openrndr.svg.loadSVG
|
||||
@@ -35,7 +35,7 @@ fun main() {
|
||||
val uvmap2 = colorBuffer(width, height, type = ColorType.FLOAT16)
|
||||
|
||||
val circleShapes = List(1) { Circle(width/2.0, height/2.0, 200.0).shape}
|
||||
val shapes = loadSVG("orx-jumpflood/src/demo/resources/name.svg").findShapes().map { it.shape }
|
||||
val shapes = loadSVG("orx-jumpflood/src/jvmDemo/resources/name.svg").findShapes().map { it.shape }
|
||||
|
||||
sdf0.setShapes(circleShapes)
|
||||
sdf1.setShapes(shapes)
|
||||
@@ -67,7 +67,7 @@ fun main() {
|
||||
|
||||
difference.apply(arrayOf(df0, df1), df0)
|
||||
|
||||
strokeFill.apply(df0, df0);
|
||||
strokeFill.apply(df0, df0)
|
||||
drawer.image(df0)
|
||||
}
|
||||
}
|
||||
|
Before Width: | Height: | Size: 1.2 KiB After Width: | Height: | Size: 1.2 KiB |
@@ -3,16 +3,6 @@ plugins {
|
||||
}
|
||||
|
||||
kotlin {
|
||||
jvm {
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val demo by compilations.getting {
|
||||
// TODO: Move demos to /jvmDemo
|
||||
defaultSourceSet {
|
||||
kotlin.srcDir("src/demo/kotlin")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val commonMain by getting {
|
||||
|
||||
@@ -2,7 +2,6 @@ import org.openrndr.application
|
||||
import org.openrndr.color.ColorHSLa
|
||||
import org.openrndr.color.rgb
|
||||
import org.openrndr.draw.isolated
|
||||
import org.openrndr.extensions.SingleScreenshot
|
||||
import org.openrndr.extra.noclear.NoClear
|
||||
import org.openrndr.math.Polar
|
||||
import org.openrndr.shape.contour
|
||||
@@ -1,5 +1,3 @@
|
||||
import ScreenshotsHelper.collectScreenshots
|
||||
|
||||
plugins {
|
||||
org.openrndr.extra.convention.`kotlin-multiplatform`
|
||||
}
|
||||
@@ -14,14 +12,6 @@ val embedShaders = tasks.register<EmbedShadersTask>("embedShaders") {
|
||||
|
||||
kotlin {
|
||||
jvm {
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val demo by compilations.getting {
|
||||
// TODO: Move demos to /jvmDemo
|
||||
defaultSourceSet {
|
||||
kotlin.srcDir("src/demo/kotlin")
|
||||
}
|
||||
collectScreenshots { }
|
||||
}
|
||||
testRuns["test"].executionTask {
|
||||
useJUnitPlatform {
|
||||
includeEngines("spek2")
|
||||
|
||||
@@ -1,21 +1,8 @@
|
||||
import ScreenshotsHelper.collectScreenshots
|
||||
|
||||
plugins {
|
||||
org.openrndr.extra.convention.`kotlin-multiplatform`
|
||||
}
|
||||
|
||||
kotlin {
|
||||
jvm {
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val demo by compilations.getting {
|
||||
// TODO: Move demos to /jvmDemo
|
||||
defaultSourceSet {
|
||||
kotlin.srcDir("src/demo/kotlin")
|
||||
}
|
||||
collectScreenshots { }
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val commonMain by getting {
|
||||
|
||||
@@ -1,21 +1,8 @@
|
||||
import ScreenshotsHelper.collectScreenshots
|
||||
|
||||
plugins {
|
||||
org.openrndr.extra.convention.`kotlin-multiplatform`
|
||||
}
|
||||
|
||||
kotlin {
|
||||
jvm {
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val demo by compilations.getting {
|
||||
// TODO: Move demos to /jvmDemo
|
||||
defaultSourceSet {
|
||||
kotlin.srcDir("src/demo/kotlin")
|
||||
}
|
||||
collectScreenshots { }
|
||||
}
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val commonMain by getting {
|
||||
@@ -30,7 +17,6 @@ kotlin {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val jvmDemo by getting {
|
||||
dependencies {
|
||||
|
||||
@@ -1,19 +1,9 @@
|
||||
import ScreenshotsHelper.collectScreenshots
|
||||
|
||||
plugins {
|
||||
org.openrndr.extra.convention.`kotlin-multiplatform`
|
||||
}
|
||||
|
||||
kotlin {
|
||||
jvm {
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val demo by compilations.getting {
|
||||
// TODO: Move demos to /jvmDemo
|
||||
defaultSourceSet {
|
||||
kotlin.srcDir("src/demo/kotlin")
|
||||
}
|
||||
collectScreenshots { }
|
||||
}
|
||||
testRuns["test"].executionTask {
|
||||
useJUnitPlatform {
|
||||
includeEngines("spek2")
|
||||
@@ -42,7 +32,6 @@ kotlin {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Suppress("UNUSED_VARIABLE")
|
||||
val jvmTest by getting {
|
||||
dependencies {
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user