diff --git a/build.gradle b/build.gradle index 3335af4b..c0078fb7 100644 --- a/build.gradle +++ b/build.gradle @@ -14,7 +14,7 @@ buildscript { apply plugin: 'org.jetbrains.dokka' project.ext { - openrndrVersion = "0.3.44-rc.2" + openrndrVersion = "0.3.44-rc.3" kotlinVersion = "1.3.72" spekVersion = "2.0.11" libfreenectVersion = "0.5.7-1.5.3" diff --git a/openrndr-demos/src/demo/kotlin/DemoShaderStorageBuffer01.kt b/openrndr-demos/src/demo/kotlin/DemoShaderStorageBuffer01.kt new file mode 100644 index 00000000..ca58c693 --- /dev/null +++ b/openrndr-demos/src/demo/kotlin/DemoShaderStorageBuffer01.kt @@ -0,0 +1,39 @@ +import org.openrndr.application +import org.openrndr.draw.VertexElementType +import org.openrndr.draw.shadeStyle +import org.openrndr.draw.shaderStorageBuffer +import org.openrndr.draw.shaderStorageFormat +import java.nio.ByteBuffer +import java.nio.ByteOrder + +fun main() = application { + program { + + val ssb = shaderStorageBuffer(shaderStorageFormat { + attribute("foo", VertexElementType.FLOAT32, 1000) + + }) + val ss = shadeStyle { + buffer("someBuffer", ssb) + fragmentTransform = "float a = b_someBuffer.foo[0]; b_someBuffer.foo[1] += 2.0;" + } + + val bb = ByteBuffer.allocateDirect(ssb.format.size) + bb.order(ByteOrder.nativeOrder()) + + extend { + ssb.clear() + + drawer.shadeStyle = ss + drawer.circle(100.0, 100.0, 200.0) + bb.rewind() + ssb.read(bb) + bb.rewind() + val f0 = bb.float + val f1 = bb.float + println(f1) + + } + + } +} \ No newline at end of file