diff --git a/src/core/shaders/webgl/Border.ts b/src/core/shaders/webgl/Border.ts index acf3018..1618870 100644 --- a/src/core/shaders/webgl/Border.ts +++ b/src/core/shaders/webgl/Border.ts @@ -47,10 +47,12 @@ export const Border: WebGlShaderType = { vec2 screenSpace = vec2(2.0 / u_resolution.x, -2.0 / u_resolution.y); vec2 edge = clamp(a_nodeCoords * 2.0 - vec2(1.0), -1.0, 1.0); - float borderTop = u_borderWidth.x; - float borderRight = u_borderWidth.y; - float borderBottom = u_borderWidth.z; - float borderLeft = u_borderWidth.w; + vec4 adjustedBorderWidth = u_borderWidth - 1.0 + clamp(u_borderWidth, -1.0, 1.0); + + float borderTop = adjustedBorderWidth.x; + float borderRight = adjustedBorderWidth.y; + float borderBottom = adjustedBorderWidth.z; + float borderLeft = adjustedBorderWidth.w; v_outerBorderUv = vec2(0.0); v_innerBorderUv = vec2(0.0); diff --git a/src/core/shaders/webgl/RoundedWithBorder.ts b/src/core/shaders/webgl/RoundedWithBorder.ts index b38ffdf..ac66fc9 100644 --- a/src/core/shaders/webgl/RoundedWithBorder.ts +++ b/src/core/shaders/webgl/RoundedWithBorder.ts @@ -65,10 +65,12 @@ export const RoundedWithBorder: WebGlShaderType = { v_outerSize = vec2(0.0); if(borderZero == 0.0) { - float borderTop = u_borderWidth.x; - float borderRight = u_borderWidth.y; - float borderBottom = u_borderWidth.z; - float borderLeft = u_borderWidth.w; + vec4 adjustedBorderWidth = u_borderWidth - 1.0 + clamp(u_borderWidth, -1.0, 1.0); + + float borderTop = adjustedBorderWidth.x; + float borderRight = adjustedBorderWidth.y; + float borderBottom = adjustedBorderWidth.z; + float borderLeft = adjustedBorderWidth.w; v_outerBorderUv = vec2(0.0); v_innerBorderUv = vec2(0.0); diff --git a/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts b/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts index c41339f..a2d17e0 100644 --- a/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +++ b/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts @@ -72,10 +72,12 @@ export const RoundedWithBorderAndShadow: WebGlShaderType