diff --git a/PCK-Studio/Rendering/ColorVertex.cs b/PCK-Studio/Rendering/ColorVertex.cs index 7ad41069..0280a908 100644 --- a/PCK-Studio/Rendering/ColorVertex.cs +++ b/PCK-Studio/Rendering/ColorVertex.cs @@ -23,6 +23,8 @@ namespace PckStudio.Rendering { } + public static implicit operator ColorVertex(Vector3 vector3) => new ColorVertex(vector3); + public Vector3 Position { get; set; } public Color4 Color { get; set; } } diff --git a/PCK-Studio/Rendering/SkinRenderer.cs b/PCK-Studio/Rendering/SkinRenderer.cs index a7377360..e6921fb5 100644 --- a/PCK-Studio/Rendering/SkinRenderer.cs +++ b/PCK-Studio/Rendering/SkinRenderer.cs @@ -1409,20 +1409,18 @@ namespace PckStudio.Rendering Renderer.SetLineWidth(2f); - colorShader.SetUniform4("baseColor", Color.Red); - ColorVertex[] line = [new ColorVertex(Vector3.Zero), new ColorVertex(Vector3.UnitX)]; - d_debugLineDrawContext.VertexArray.GetBuffer(0).SetData(line); - Renderer.Draw(colorShader, d_debugLineDrawContext); + VertexBuffer lineVertexBuffer = d_debugLineDrawContext.VertexArray.GetBuffer(0); - colorShader.SetUniform4("baseColor", Color.Green); - line = [new ColorVertex(Vector3.Zero), new ColorVertex(Vector3.UnitY)]; - d_debugLineDrawContext.VertexArray.GetBuffer(0).SetData(line); - Renderer.Draw(colorShader, d_debugLineDrawContext); + void DrawLine(Color color, params ColorVertex[] positions) + { + colorShader.SetUniform4("baseColor", color); + lineVertexBuffer.SetData(positions); + Renderer.Draw(colorShader, d_debugLineDrawContext); + }; - colorShader.SetUniform4("baseColor", Color.Blue); - line = [new ColorVertex(Vector3.Zero), new ColorVertex(Vector3.UnitZ)]; - d_debugLineDrawContext.VertexArray.GetBuffer(0).SetData(line); - Renderer.Draw(colorShader, d_debugLineDrawContext); + DrawLine(Color.Red, Vector3.Zero, Vector3.UnitX); + DrawLine(Color.Green, Vector3.Zero, Vector3.UnitY); + DrawLine(Color.Blue, Vector3.Zero, Vector3.UnitZ); Renderer.SetLineWidth(1f);