[orx-shapes] Fix buffer resizing code in drawer.bezierPatches

This commit is contained in:
Edwin Jakobs
2021-08-30 15:35:22 +02:00
parent a6d08467fa
commit c5a95f8d17
2 changed files with 48 additions and 4 deletions

View File

@@ -162,7 +162,7 @@ class BezierPatchDrawer {
internal fun ensureVertexCount(count: Int) {
if (vertices.vertexCount < count) {
vertices.destroy()
vertexBuffer(
vertices = vertexBuffer(
vertexFormat {
position(3)
color(4)
@@ -213,7 +213,7 @@ class BezierPatchDrawer {
shader.end()
}
@JvmName("drawBezierPatchOKLab")
@JvmName("drawBezierPatchesOKLab")
fun drawBezierPatches(
context: DrawContext,
drawStyle: DrawStyle,
@@ -260,7 +260,7 @@ class BezierPatchDrawer {
shader.end()
}
@JvmName("drawBezierPatch3D")
@JvmName("drawBezierPatches3D")
fun drawBezierPatches(
context: DrawContext,
drawStyle: DrawStyle,
@@ -304,7 +304,7 @@ class BezierPatchDrawer {
shader.end()
}
@JvmName("drawBezierPatch3DOKLab")
@JvmName("drawBezierPatches3DOKLab")
fun drawBezierPatches(
context: DrawContext,
drawStyle: DrawStyle,

View File

@@ -0,0 +1,44 @@
import org.openrndr.application
import org.openrndr.color.ColorRGBa
import org.openrndr.extensions.SingleScreenshot
import org.openrndr.extra.shapes.bezierPatch
import org.openrndr.shape.Circle
import org.openrndr.shape.ShapeContour
import org.openrndr.extra.shapes.drawers.bezierPatch
import org.openrndr.extra.shapes.drawers.bezierPatches
/**
* Shows how to create a [bezierPatch] out of a
* closed [ShapeContour] with 4 curved segments.
*
* Calling [Circle.contour] is one way of producing
* such a contour with vertices at the cardinal points
* but one can manually create any other 4-segment closed contour
* to use in bezier patches.
*/
suspend fun main() {
application {
configure {
width = 800
height = 800
}
program {
if (System.getProperty("takeScreenshot") == "true") {
extend(SingleScreenshot()) {
this.outputFile = System.getProperty("screenshotPath")
}
}
val c0 = Circle(width / 3.0, height / 2.0, 150.0).contour
val bp0 = bezierPatch(c0)
val c1 = Circle(2.0*width / 3.0, height / 2.0, 150.0).contour
val bp1 = bezierPatch(c1)
extend {
drawer.bezierPatches(listOf(bp0, bp1))
}
}
}
}