From c2791fb8514c071032931a8c9dd1c162a60de0b6 Mon Sep 17 00:00:00 2001 From: Edwin Jakobs Date: Fri, 14 Feb 2020 14:31:26 +0100 Subject: [PATCH] Fix fragmentTransform of linearGradient --- orx-gui/src/main/kotlin/Gui.kt | 22 ++++++++++++++++--- .../src/main/kotlin/LinearGradient.kt | 9 ++++---- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/orx-gui/src/main/kotlin/Gui.kt b/orx-gui/src/main/kotlin/Gui.kt index c0385f76..a8020e01 100644 --- a/orx-gui/src/main/kotlin/Gui.kt +++ b/orx-gui/src/main/kotlin/Gui.kt @@ -97,8 +97,20 @@ class GUI : Extension { this.height = 100.percent } + styleSheet(has class_ "collapse-border") { + this.display = Display.FLEX + this.flexDirection = FlexDirection.Column + this.height = 5.px + this.width = 100.percent + this.background = Color.RGBa(ColorRGBa.GRAY.shade(0.9)) + + and(has state "hover") { + this.background = Color.RGBa(ColorRGBa.GRAY.shade(1.1)) + } + } + styleSheet(has class_ "toolbar") { - this.height = 50.px + this.height = 42.px this.width = 100.percent this.display = Display.FLEX this.flexDirection = FlexDirection.Row @@ -124,6 +136,7 @@ class GUI : Extension { this.background = Color.RGBa(ColorRGBa.GRAY.copy(a = 0.99)) this.overflow = Overflow.Scroll + /* 1) setup control style */ descendant(has type "colorpicker-button") { this.width = 175.px @@ -178,6 +191,9 @@ class GUI : Extension { } } } + val collapseBorder = div("collapse-border") { + + } val collapsibles = mutableSetOf
() val sidebar = div("sidebar") { @@ -230,11 +246,11 @@ class GUI : Extension { } } } - header.mouse.pressed.subscribe { + collapseBorder.mouse.pressed.subscribe { it.cancelPropagation() } - header.mouse.clicked.subscribe { + collapseBorder.mouse.clicked.subscribe { val collapsed = ElementClass("collapsed") if (collapsed in sidebar.classes) { sidebar.classes.remove(collapsed) diff --git a/orx-shade-styles/src/main/kotlin/LinearGradient.kt b/orx-shade-styles/src/main/kotlin/LinearGradient.kt index 02e3192e..67d64df1 100644 --- a/orx-shade-styles/src/main/kotlin/LinearGradient.kt +++ b/orx-shade-styles/src/main/kotlin/LinearGradient.kt @@ -8,7 +8,7 @@ import org.openrndr.math.Vector2 fun linearGradient(color0: ColorRGBa, color1: ColorRGBa, offset : Vector2 = Vector2.ZERO, rotation:Double = 0.0) : ShadeStyle { return shadeStyle { fragmentTransform = """ - vec2 coord = (c_boundsPosition.xy - vec2(0.5) + offset); + vec2 coord = (c_boundsPosition.xy - vec2(0.5) + p_offset); float cr = cos(p_rotation); float sr = sin(p_rotation); mat2 rm = mat2(cr, -sr, sr, cr); @@ -30,7 +30,7 @@ fun linearGradient(color0: ColorRGBa, color1: ColorRGBa, offset : Vector2 = Vect } } -fun radialGradient(color0: ColorRGBa, color1: ColorRGBa, offset: Vector2 = Vector2.ZERO, rotation:Double = 0.0) : ShadeStyle { +fun radialGradient(color0: ColorRGBa, color1: ColorRGBa, offset: Vector2 = Vector2.ZERO, rotation:Double = 0.0, length: Double = 1.0) : ShadeStyle { return shadeStyle { fragmentTransform = """ vec2 coord = (c_boundsPosition.xy - vec2(0.5) + p_offset/2.0) * 2.0; @@ -38,7 +38,7 @@ fun radialGradient(color0: ColorRGBa, color1: ColorRGBa, offset: Vector2 = Vecto float cr = cos(p_rotation); float sr = sin(p_rotation); mat2 rm = mat2(cr, -sr, sr, cr); - float f = clamp(length(rm * coord), 0.0, 1.0); + float f = clamp(p_length * length(rm * coord), 0.0, 1.0); vec4 gradient = p_color0 * (1.0-f) + p_color1 * f; @@ -52,7 +52,8 @@ fun radialGradient(color0: ColorRGBa, color1: ColorRGBa, offset: Vector2 = Vecto parameter("offset", offset) parameter("color0", color0.alphaMultiplied) parameter("color1", color1.alphaMultiplied) - parameter("rotation", Math.toRadians(rotation) ) + parameter("rotation", Math.toRadians(rotation)) + parameter("length", length) } }