public override void Render(BlazorRenderer renderer)
        {
            renderer.CreateTexture(TextureWidth, TextureHeight, TextureData);
            renderer.SetPrimitiveTopology(PrimitiveTopology.Triangles);
            renderer.SetShader(ShaderType.SurfaceShader);

            renderer.SetShaderUniform("u_MinValue", new float[1] {
                MinValue
            });
            renderer.SetShaderUniform("u_MaxValue", new float[1] {
                MaxValue
            });
            renderer.SetShaderUniform("u_MinColor", new float[4] {
                MinColor.R / 255.0f, MinColor.G / 255.0f, MinColor.B / 255.0f, MinColor.A / 255.0f
            });
            renderer.SetShaderUniform("u_MinColor", new float[4] {
                MaxColor.R / 255.0f, MaxColor.G / 255.0f, MaxColor.B / 255.0f, MaxColor.A / 255.0f
            });

            renderer.SetVertexBuffer(Buffer);
            renderer.BufferLayoutBuilder.Create();
            renderer.BufferLayoutBuilder.AddFloat3();
            renderer.BufferLayoutBuilder.AddFloat3();
            renderer.BufferLayoutBuilder.AddFloat();
            renderer.BufferLayoutBuilder.Use();
            renderer.SetIndexBuffer(Indices);
            renderer.DrawIndexed(Indices.Length);
        }
        public override void Render(BlazorRenderer renderer)
        {
            renderer.SetPrimitiveTopology(PrimitiveTopology.Lines);
            renderer.SetShader(ShaderType.LineShader);
            renderer.SetVertexBuffer(Buffer);

            renderer.BufferLayoutBuilder.Create();
            renderer.BufferLayoutBuilder.AddFloat3();
            renderer.BufferLayoutBuilder.AddFloat4();
            renderer.BufferLayoutBuilder.Use();

            renderer.SetIndexBuffer(Indices);

            renderer.DrawIndexed(Indices.Length);
        }