Fix demos (#331)
This commit is contained in:
@@ -26,7 +26,7 @@ fun main() = application {
|
|||||||
|
|
||||||
circlePositions.put {
|
circlePositions.put {
|
||||||
for (i in 0 until circlePositions.vertexCount) {
|
for (i in 0 until circlePositions.vertexCount) {
|
||||||
write(Vector3.uniformRing(0.0, 3.0))
|
write(Vector3.uniformRing(2.0, 3.0))
|
||||||
write(Math.random().toFloat()*0.1f)
|
write(Math.random().toFloat()*0.1f)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -36,8 +36,7 @@ fun main() = application {
|
|||||||
drawer.perspective(90.0, width*1.0/height*1.0, 0.1, 100.0)
|
drawer.perspective(90.0, width*1.0/height*1.0, 0.1, 100.0)
|
||||||
|
|
||||||
drawer.fill = ColorRGBa.PINK
|
drawer.fill = ColorRGBa.PINK
|
||||||
drawer.stroke = ColorRGBa.GREEN
|
drawer.stroke = null
|
||||||
drawer.strokeWeight = 0.05
|
|
||||||
drawer.drawStyle.alphaToCoverage = true
|
drawer.drawStyle.alphaToCoverage = true
|
||||||
|
|
||||||
drawer.depthWrite = true
|
drawer.depthWrite = true
|
||||||
@@ -52,6 +51,14 @@ fun main() = application {
|
|||||||
x_position = viewOffset + vec3(a_position.xy * i_scale, 0.0);
|
x_position = viewOffset + vec3(a_position.xy * i_scale, 0.0);
|
||||||
vi_radius = vec2(i_scale);
|
vi_radius = vec2(i_scale);
|
||||||
""".trimIndent()
|
""".trimIndent()
|
||||||
|
|
||||||
|
// The circle bounds can be used to calculate a color or to sample a texture
|
||||||
|
fragmentTransform = """
|
||||||
|
float r = length(c_boundsPosition.xy - 0.5) * 2.0;
|
||||||
|
x_fill.rg = c_boundsPosition.xy;
|
||||||
|
x_fill.a = 1.0 - step(1.0, r);
|
||||||
|
""".trimIndent()
|
||||||
|
|
||||||
attributes(circlePositions)
|
attributes(circlePositions)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,37 +0,0 @@
|
|||||||
import org.openrndr.application
|
|
||||||
import org.openrndr.color.ColorRGBa
|
|
||||||
import org.openrndr.math.Vector2
|
|
||||||
import org.openrndr.shape.drawComposition
|
|
||||||
//import org.openrndr.svg.svgNamespaceInkscape
|
|
||||||
import org.openrndr.svg.toSVG
|
|
||||||
import org.openrndr.svg.writeSVG
|
|
||||||
|
|
||||||
fun main() {
|
|
||||||
application {
|
|
||||||
program {
|
|
||||||
extend {
|
|
||||||
drawer.clear(ColorRGBa.WHITE)
|
|
||||||
|
|
||||||
val composition = drawComposition {
|
|
||||||
val layer = group {
|
|
||||||
fill = ColorRGBa.PINK
|
|
||||||
stroke = ColorRGBa.BLACK
|
|
||||||
strokeWeight = 10.0
|
|
||||||
circle(Vector2(width / 2.0, height / 2.0), 100.0)
|
|
||||||
circle(Vector2(200.0, 200.0), 50.0)
|
|
||||||
}
|
|
||||||
// demonstrating how to set custom attributes on the CompositionNode
|
|
||||||
// these are stored in SVG
|
|
||||||
// layer.id = "Layer_2"
|
|
||||||
// layer.attributes["inkscape:label"] = "Layer 1"
|
|
||||||
// layer.attributes["inkscape:groupmode"] = "layer"
|
|
||||||
}
|
|
||||||
// draw the composition to the screen
|
|
||||||
drawer.composition(composition)
|
|
||||||
|
|
||||||
// print the svg to the console
|
|
||||||
// println(composition.toSVG(namespaces = listOf(svgNamespaceInkscape)))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,39 +1,51 @@
|
|||||||
//import org.openrndr.application
|
import org.openrndr.application
|
||||||
//import org.openrndr.draw.VertexElementType
|
import org.openrndr.draw.*
|
||||||
//import org.openrndr.draw.shadeStyle
|
import java.nio.ByteBuffer
|
||||||
//import org.openrndr.draw.shaderStorageBuffer
|
import java.nio.ByteOrder
|
||||||
//import org.openrndr.draw.shaderStorageFormat
|
|
||||||
//import java.nio.ByteBuffer
|
// A demo of shaderStorageBuffer doing no useful work
|
||||||
//import java.nio.ByteOrder
|
|
||||||
//
|
fun main() = application {
|
||||||
//fun main() = application {
|
program {
|
||||||
// program {
|
|
||||||
//
|
// Construct a SSB
|
||||||
// val ssb = shaderStorageBuffer(shaderStorageFormat {
|
val ssb = shaderStorageBuffer(shaderStorageFormat {
|
||||||
// //member("foo", VertexElementType.FLOAT32, 1000)
|
primitive("foo", BufferPrimitiveType.FLOAT32, 1000)
|
||||||
//
|
})
|
||||||
// })
|
|
||||||
// val ss = shadeStyle {
|
// A ShadeStyle that reads from and writes into an SSB
|
||||||
// buffer("someBuffer", ssb)
|
val ss = shadeStyle {
|
||||||
// fragmentTransform = "float a = b_someBuffer.foo[0]; b_someBuffer.foo[1] += 2.0;"
|
buffer("someBuffer", ssb)
|
||||||
// }
|
fragmentTransform = """
|
||||||
//
|
float a = b_someBuffer.foo[0];
|
||||||
// val bb = ByteBuffer.allocateDirect(ssb.format.size)
|
b_someBuffer.foo[1] += 2.0;
|
||||||
// bb.order(ByteOrder.nativeOrder())
|
""".trimIndent()
|
||||||
//
|
}
|
||||||
// extend {
|
|
||||||
// ssb.clear()
|
// A ByteBuffer in RAM to download the GPU data into
|
||||||
//
|
val bb = ByteBuffer.allocateDirect(ssb.format.size)
|
||||||
// drawer.shadeStyle = ss
|
bb.order(ByteOrder.nativeOrder())
|
||||||
// drawer.circle(100.0, 100.0, 200.0)
|
|
||||||
// bb.rewind()
|
extend {
|
||||||
// ssb.read(bb)
|
// Clear the SSB
|
||||||
// bb.rewind()
|
ssb.clear()
|
||||||
// val f0 = bb.float
|
|
||||||
// val f1 = bb.float
|
drawer.shadeStyle = ss
|
||||||
// println(f1)
|
drawer.circle(100.0, 100.0, 200.0)
|
||||||
//
|
|
||||||
// }
|
// Download the SSB into RAM
|
||||||
//
|
bb.rewind()
|
||||||
// }
|
ssb.read(bb)
|
||||||
//}
|
|
||||||
|
bb.rewind()
|
||||||
|
val f0 = bb.float
|
||||||
|
val f1 = bb.float
|
||||||
|
println(f1)
|
||||||
|
// The shade style runs for every pix el in the circle.
|
||||||
|
// The order in which the pixels are processed is not known
|
||||||
|
// Therefore the value of `f1` can vary from frame to frame,
|
||||||
|
// because we don't know how many times `+= 2.0` was executed.
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -44,6 +44,7 @@ kotlin {
|
|||||||
implementation(project(":orx-mesh-generators"))
|
implementation(project(":orx-mesh-generators"))
|
||||||
implementation(project(":orx-color"))
|
implementation(project(":orx-color"))
|
||||||
implementation(project(":orx-jvm:orx-gui"))
|
implementation(project(":orx-jvm:orx-gui"))
|
||||||
|
implementation(project(":orx-shade-styles"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -22,8 +22,8 @@ kotlin {
|
|||||||
@Suppress("UNUSED_VARIABLE")
|
@Suppress("UNUSED_VARIABLE")
|
||||||
val jvmDemo by getting {
|
val jvmDemo by getting {
|
||||||
dependencies {
|
dependencies {
|
||||||
implementation(project(":orx-shapes"))
|
implementation(project(":orx-svg"))
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,42 @@
|
|||||||
|
import org.openrndr.application
|
||||||
|
import org.openrndr.color.ColorRGBa
|
||||||
|
import org.openrndr.extra.composition.composition
|
||||||
|
import org.openrndr.extra.composition.drawComposition
|
||||||
|
import org.openrndr.extra.svg.saveToFile
|
||||||
|
import org.openrndr.extra.svg.toSVG
|
||||||
|
import org.openrndr.math.Vector2
|
||||||
|
import java.io.File
|
||||||
|
|
||||||
|
fun main() {
|
||||||
|
application {
|
||||||
|
program {
|
||||||
|
val composition = drawComposition {
|
||||||
|
val layer = group {
|
||||||
|
fill = ColorRGBa.PINK
|
||||||
|
stroke = ColorRGBa.BLACK
|
||||||
|
strokeWeight = 10.0
|
||||||
|
circle(Vector2(width / 2.0, height / 2.0), 100.0)
|
||||||
|
circle(Vector2(200.0, 200.0), 50.0)
|
||||||
|
}
|
||||||
|
// demonstrating how to set custom attributes on the CompositionNode
|
||||||
|
// these are stored in SVG
|
||||||
|
//layer.id = "Layer_2"
|
||||||
|
//layer.attributes["inkscape:label"] = "Layer 1"
|
||||||
|
//layer.attributes["inkscape:groupmode"] = "layer"
|
||||||
|
}
|
||||||
|
|
||||||
|
// print the svg to the console
|
||||||
|
println(composition.toSVG())
|
||||||
|
|
||||||
|
// save svg to a File
|
||||||
|
//composition.saveToFile(File("/path/to/design.svg"))
|
||||||
|
|
||||||
|
extend {
|
||||||
|
drawer.clear(ColorRGBa.WHITE)
|
||||||
|
|
||||||
|
// draw the composition to the screen
|
||||||
|
drawer.composition(composition)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,7 +1,8 @@
|
|||||||
import org.openrndr.application
|
import org.openrndr.application
|
||||||
import org.openrndr.color.ColorRGBa
|
import org.openrndr.color.ColorRGBa
|
||||||
import org.openrndr.shape.ClipMode
|
import org.openrndr.extra.composition.ClipMode
|
||||||
import org.openrndr.shape.drawComposition
|
import org.openrndr.extra.composition.composition
|
||||||
|
import org.openrndr.extra.composition.drawComposition
|
||||||
|
|
||||||
fun main() {
|
fun main() {
|
||||||
application {
|
application {
|
||||||
@@ -1,7 +1,8 @@
|
|||||||
import org.openrndr.application
|
import org.openrndr.application
|
||||||
import org.openrndr.color.ColorRGBa
|
import org.openrndr.color.ColorRGBa
|
||||||
import org.openrndr.shape.ClipMode
|
import org.openrndr.extra.composition.ClipMode
|
||||||
import org.openrndr.shape.drawComposition
|
import org.openrndr.extra.composition.composition
|
||||||
|
import org.openrndr.extra.composition.drawComposition
|
||||||
|
|
||||||
fun main() {
|
fun main() {
|
||||||
application {
|
application {
|
||||||
@@ -63,6 +63,7 @@ fun main() {
|
|||||||
is HashBlur -> {
|
is HashBlur -> {
|
||||||
blur.samples = 50
|
blur.samples = 50
|
||||||
blur.radius = 5.0
|
blur.radius = 5.0
|
||||||
|
blur.time = seconds
|
||||||
}
|
}
|
||||||
is GaussianBlur -> {
|
is GaussianBlur -> {
|
||||||
blur.window = 25
|
blur.window = 25
|
||||||
|
|||||||
Reference in New Issue
Block a user