From 25a5ecf378a24e55d8ad43dae2a247a118f7336a Mon Sep 17 00:00:00 2001 From: Pontus Andersson Date: Mon, 7 Apr 2025 10:05:11 +0200 Subject: [PATCH 1/2] Pivot can now be used as reference point when drawing lines --- Runtime/Scripts/Primitives/UILineTextureRenderer.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Runtime/Scripts/Primitives/UILineTextureRenderer.cs b/Runtime/Scripts/Primitives/UILineTextureRenderer.cs index bf7053bf..1619c4fc 100644 --- a/Runtime/Scripts/Primitives/UILineTextureRenderer.cs +++ b/Runtime/Scripts/Primitives/UILineTextureRenderer.cs @@ -16,6 +16,7 @@ public class UILineTextureRenderer : UIPrimitiveBase public float LineThickness = 2; public bool UseMargins; + public bool UsePivot; public Vector2 Margin; public bool relativeSize; @@ -88,6 +89,13 @@ protected override void OnPopulateMesh(VertexHelper vh) pointList.Add(capPoint); pointList.Add(m_points[m_points.Length - 1]); + // should points be rendered from the pivot + if (UsePivot) + { + offsetX += rectTransform.sizeDelta.x * rectTransform.pivot.x; + offsetY += rectTransform.sizeDelta.y * rectTransform.pivot.y; + } + var Tempm_points = pointList.ToArray(); if (UseMargins) { From 28cdec0e3ebc02a6bbef967136581a872b883bbb Mon Sep 17 00:00:00 2001 From: Pontus Andersson Date: Tue, 8 Apr 2025 11:06:38 +0200 Subject: [PATCH 2/2] Removed cap points as they caused lod and jagged-texture issues --- .../Primitives/UILineTextureRenderer.cs | 22 +++---------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/Runtime/Scripts/Primitives/UILineTextureRenderer.cs b/Runtime/Scripts/Primitives/UILineTextureRenderer.cs index 1619c4fc..207a9a83 100644 --- a/Runtime/Scripts/Primitives/UILineTextureRenderer.cs +++ b/Runtime/Scripts/Primitives/UILineTextureRenderer.cs @@ -73,23 +73,13 @@ protected override void OnPopulateMesh(VertexHelper vh) sizeX = 1; sizeY = 1; } - // build a new set of m_points taking into account the cap sizes. - // would be cool to support corners too, but that might be a bit tough :) + var pointList = new List(); - pointList.Add(m_points[0]); - var capPoint = m_points[0] + (m_points[1] - m_points[0]).normalized * capSize; - pointList.Add(capPoint); - - // should bail before the last point to add another cap point - for (int i = 1; i < m_points.Length - 1; i++) + for (int i = 0; i < m_points.Length; i++) { pointList.Add(m_points[i]); } - capPoint = m_points[m_points.Length - 1] - (m_points[m_points.Length - 1] - m_points[m_points.Length - 2]).normalized * capSize; - pointList.Add(capPoint); - pointList.Add(m_points[m_points.Length - 1]); - - // should points be rendered from the pivot + if (UsePivot) { offsetX += rectTransform.sizeDelta.x * rectTransform.pivot.x; @@ -143,14 +133,8 @@ protected override void OnPopulateMesh(VertexHelper vh) if (i > 1) vh.AddUIVertexQuad(SetVbo(new[] { prevV1, prevV2, v1, v2 }, uvs)); - if (i == 1) - uvs = new[] { uvTopLeft, uvBottomLeft, uvBottomCenter, uvTopCenter }; - else if (i == Tempm_points.Length - 1) - uvs = new[] { uvTopCenter, uvBottomCenter, uvBottomRight, uvTopRight }; - vh.AddUIVertexQuad(SetVbo(new[] { v1, v2, v3, v4 }, uvs)); - prevV1 = v3; prevV2 = v4; }