Skip to content

Commit 1b3bb2a

Browse files
authored
Merge branch 'master' into feature/wasm-support
2 parents b9d9f6b + cf4c744 commit 1b3bb2a

285 files changed

Lines changed: 9241 additions & 1404 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/generate-screenshots.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,13 @@ jobs:
4343
run: ./gradlew publishToMavenLocal snapshot
4444

4545
- name: Build ORX
46-
run: ./gradlew build
46+
run: ./gradlew build -Popenrndr.application.backend=application-glfw
4747

4848
- name: Collect screenshots
49-
run: xvfb-run ./gradlew collectScreenshots
49+
run: xvfb-run ./gradlew collectScreenshots -Popenrndr.application.backend=application-glfw
5050

5151
- name: Build main readme
52-
run: xvfb-run ./gradlew buildMainReadme
52+
run: xvfb-run ./gradlew buildMainReadme -Popenrndr.application.backend=application-glfw
5353

5454
- name: Prepare media branch
5555
run: |

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ A growing library of assorted data structures, algorithms and utilities to
77
complement [OPENRNDR](https://github.com/openrndr/openrndr).
88
Multiplatform, unless they deal with hardware or depend on binary libraries. Those are JVM-only.
99

10+
Find an auto-generated API documentation page at https://orx.openrndr.org/.
11+
1012
## Usage
1113

1214
To make use of these extensions clone the [OPENRNDR template](https://github.com/openrndr/openrndr-template), uncomment the ones you need in its [build.gradle.kts](https://github.com/openrndr/openrndr-template/blob/master/build.gradle.kts) file, and reload Gradle. Cloning this repo is optional but useful to run the demos in each ORX folder, to study the source code, and to contribute to existing or new ORX'es.
@@ -29,6 +31,7 @@ To make use of these extensions clone the [OPENRNDR template](https://github.com
2931
| [`orx-fcurve`](orx-fcurve/) | FCurves are 1 dimensional function curves constructed from 2D bezier functions. They are often used to control a property over time. `x` values don't have any units, but they often represent a duration in seconds. |
3032
| [`orx-fft`](orx-fft/) | Simple forward and inverse FFT routine |
3133
| [`orx-fx`](orx-fx/) | Ready-to-use GPU-based visual effects or filters. Most include [orx-parameters](https://github.com/openrndr/orx/tree/master/orx-parameters) annotations so they can be easily controlled via orx-gui. |
34+
| [`orx-g-code`](orx-g-code/) | Utilities for generating g-code for CNC Machines such as pen plotters, laser engravers, 3D printers, and more. |
3235
| [`orx-gradient-descent`](orx-gradient-descent/) | Finds equation inputs that output a minimum value: easy to use gradient descent based minimizer. |
3336
| [`orx-hash-grid`](orx-hash-grid/) | 2D space partitioning for fast point queries. |
3437
| [`orx-image-fit`](orx-image-fit/) | Draws an image ensuring it fits or covers the specified `Rectangle`. |
@@ -51,7 +54,7 @@ To make use of these extensions clone the [OPENRNDR template](https://github.com
5154
| [`orx-shader-phrases`](orx-shader-phrases/) | A library that provides a `#pragma import` statement for shaders. |
5255
| [`orx-shapes`](orx-shapes/) | Collection of 2D shape generators and modifiers. |
5356
| [`orx-svg`](orx-svg/) | SVG reader and writer library. |
54-
| [`orx-temporal-blur`](orx-temporal-blur/) | Post-processing temporal-blur video effect. CPU intense, therefore not intended for use with the `ScreenRecorder` extension or other real-time uses. |
57+
| [`orx-temporal-blur`](orx-temporal-blur/) | Post-processing temporal-blur video effect. CPU intense, not intended for real-time uses. |
5558
| [`orx-text-on-contour`](orx-text-on-contour/) | Writing texts on contours. |
5659
| [`orx-text-writer`](orx-text-writer/) | Writing texts with layouts |
5760
| [`orx-time-operators`](orx-time-operators/) | A collection of time-sensitive functions aimed at controlling raw data over-time, such as Envelope and LFO. |

build-logic/orx-convention/src/main/kotlin/org/openrndr/extra/convention/CollectScreenShots.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ abstract class CollectScreenshotsTask @Inject constructor() : DefaultTask() {
132132
val codeLines = ktFile.readLines()
133133
val main = codeLines.indexOfFirst { it.startsWith("fun main") }
134134
val head = codeLines.take(main)
135-
val start = head.indexOfLast { it.startsWith("/**") }
135+
val start = head.indexOfLast { it.startsWith("/*") }
136136
val end = head.indexOfLast { it.endsWith("*/") }
137137

138138
if ((start < end) && (end < main)) {

build-logic/orx-convention/src/main/kotlin/org/openrndr/extra/convention/kotlin-jvm.gradle.kts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ val demo: SourceSet by project.sourceSets.creating {
4545
"orx-runway",
4646
"orx-syphon",
4747
"orx-video-profiles",
48+
"orx-crash-handler"
4849
)
4950
if (project.name !in skipDemos) {
5051
collectScreenshots(project, this@creating) { }
@@ -60,7 +61,11 @@ dependencies {
6061
"demoImplementation"(openrndr.findLibrary("application-core").get())
6162
"demoImplementation"(openrndr.findLibrary("orextensions").get())
6263

63-
"demoRuntimeOnly"(openrndr.findLibrary("application-glfw").get())
64+
if (findProperty("openrndr.application.backend") == null) {
65+
"demoRuntimeOnly"(openrndr.findLibrary("application-sdl").get())
66+
} else {
67+
"demoRuntimeOnly"(openrndr.findLibrary(findProperty("openrndr.application.backend") as String).get())
68+
}
6469

6570
"demoRuntimeOnly"(sharedLibs.findLibrary("slf4j-simple").get())
6671
}

build-logic/orx-convention/src/main/kotlin/org/openrndr/extra/convention/kotlin-multiplatform.gradle.kts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,10 +64,11 @@ kotlin {
6464
outputDir.set(project.file(project.projectDir.toString() + "/images"))
6565
dependsOn(compileTaskProvider)
6666
}
67-
dependencies {
68-
runtimeOnly(openrndr.findLibrary("application-glfw").get())
6967

70-
}
68+
// dependencies {
69+
// runtimeOnly(openrndr.findLibrary("application-glfw").get())
70+
//
71+
// }
7172
}
7273
}
7374
testRuns["test"].executionTask {
@@ -117,7 +118,14 @@ kotlin {
117118
dependencies {
118119
implementation(openrndr.findLibrary("application-core").get())
119120
implementation(openrndr.findLibrary("orextensions").get())
120-
runtimeOnly(openrndr.findLibrary("application-glfw").get())
121+
122+
if (findProperty("openrndr.application.backend") == null) {
123+
runtimeOnly(openrndr.findLibrary("application-sdl").get())
124+
} else {
125+
runtimeOnly(openrndr.findLibrary(findProperty("openrndr.application.backend") as String).get())
126+
}
127+
128+
runtimeOnly(openrndr.findLibrary("application-sdl").get())
121129
runtimeOnly(sharedLibs.findLibrary("slf4j-simple").get())
122130
}
123131
}

gradle/libs.versions.toml

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,33 @@
11
[versions]
2-
kotlinApi = "2.2"
3-
kotlinLanguage = "2.2"
4-
kotlin = "2.2.20"
2+
kotlinApi = "2.3"
3+
kotlinLanguage = "2.3"
4+
kotlin = "2.3.10"
55
jvmTarget = "17"
66
openrndr = { require = "[0.5,0.6.0)" }
7-
dokka = "2.0.0"
7+
kotest = "6.1.0"
8+
dokka = "2.1.0"
89
nebulaRelease = "18.0.7"
9-
boofcv = "1.2.3"
10+
boofcv = "1.3.0"
1011
libfreenect = "0.5.7-1.5.9"
1112
librealsense = "2.53.1-1.5.9"
12-
gson = "2.13.1"
13+
gson = "2.13.2"
1314
antlr = "4.13.2"
14-
antlrKotlin = "1.0.3"
15+
antlrKotlin = "1.0.9"
1516
minim = "2.2.2"
16-
netty = "4.2.4.Final"
17+
netty = "4.2.9.Final"
1718
rabbitcontrol = "0.3.39"
18-
zxing = "3.5.3"
19-
ktor = "3.2.3"
19+
zxing = "3.5.4"
20+
ktor = "3.4.0"
2021
jgit = "7.3.0.202506031305-r"
2122
javaosc = "0.9"
22-
jsoup = "1.21.1"
23-
mockk = "1.13.11"
24-
processing = "4.4.6"
25-
nmcp = "1.1.0"
23+
jsoup = "1.22.1"
24+
mockk = "1.14.9"
25+
processing = "4.5.2"
26+
nmcp = "1.2.0"
27+
okhttp = "5.3.2"
2628

2729
[libraries]
30+
okhttp = { group = "com.squareup.okhttp3", name = "okhttp", version.ref = "okhttp" }
2831
kotlin-stdlib = { group = "org.jetbrains.kotlin", name = "kotlin-stdlib", version.ref = "kotlin" }
2932
kotlin-test = { group = "org.jetbrains.kotlin", name = "kotlin-test", version.ref = "kotlin" }
3033
kotlin-scriptingJvm = { group = "org.jetbrains.kotlin", name = "kotlin-scripting-jvm", version.ref = "kotlin" }
@@ -59,4 +62,4 @@ jsoup = { group = "org.jsoup", name = "jsoup", version.ref = "jsoup" }
5962
kotlin-serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin" }
6063
nebula-release = { id = "nebula.release", version.ref = "nebulaRelease" }
6164
antlr-kotlin = { id = "com.strumenta.antlr-kotlin", version.ref = "antlrKotlin" }
62-
nmcp = { id = "com.gradleup.nmcp.aggregation", version.ref = "nmcp" }
65+
nmcp = { id = "com.gradleup.nmcp.aggregation", version.ref = "nmcp" }

gradle/wrapper/gradle-wrapper.jar

718 Bytes
Binary file not shown.

gradle/wrapper/gradle-wrapper.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip
3+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.3.1-bin.zip
44
networkTimeout=10000
55
validateDistributionUrl=true
66
zipStoreBase=GRADLE_USER_HOME

gradlew

Lines changed: 0 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

gradlew.bat

Lines changed: 1 addition & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)