void CreateLineMaterial()
{
if (!mat)
{
mat = new Material("Shader "Lines/Colored Blended" {" +
"SubShader { Pass { " +
" Blend SrcAlpha OneMinusSrcAlpha " +
" ZWrite Off Cull Off Fog { Mode Off } " +
" BindChannels {" +
" Bind "vertex", vertex Bind "color", color }" +
"} } }");
mat.hideFlags = HideFlags.HideAndDontSave;
mat.shader.hideFlags = HideFlags.HideAndDontSave;
}
}
void OnPostRender()
{
if (!mat)
{
CreateLineMaterial();
return;
}
GL.PushMatrix();
mat.SetPass(0);
GL.LoadOrtho();
GL.Begin(GL.QUADS);
GL.Color(Color.red);
GL.Vertex3(0, 0.5F, 0);
GL.Vertex3(0.5F, 1, 0);
GL.Vertex3(1, 0.5F, 0);
GL.Vertex3(0.5F, 0, 0);
GL.Color(Color.cyan);
GL.Vertex3(0, 0, 0);
GL.Vertex3(0, 0.25F, 0);
GL.Vertex3(0.25F, 0.25F, 0);
GL.Vertex3(0.25F, 0, 0);
GL.End();
GL.PopMatrix();
}
{
if (!mat)
{
mat = new Material("Shader "Lines/Colored Blended" {" +
"SubShader { Pass { " +
" Blend SrcAlpha OneMinusSrcAlpha " +
" ZWrite Off Cull Off Fog { Mode Off } " +
" BindChannels {" +
" Bind "vertex", vertex Bind "color", color }" +
"} } }");
mat.hideFlags = HideFlags.HideAndDontSave;
mat.shader.hideFlags = HideFlags.HideAndDontSave;
}
}
void OnPostRender()
{
if (!mat)
{
CreateLineMaterial();
return;
}
GL.PushMatrix();
mat.SetPass(0);
GL.LoadOrtho();
GL.Begin(GL.QUADS);
GL.Color(Color.red);
GL.Vertex3(0, 0.5F, 0);
GL.Vertex3(0.5F, 1, 0);
GL.Vertex3(1, 0.5F, 0);
GL.Vertex3(0.5F, 0, 0);
GL.Color(Color.cyan);
GL.Vertex3(0, 0, 0);
GL.Vertex3(0, 0.25F, 0);
GL.Vertex3(0.25F, 0.25F, 0);
GL.Vertex3(0.25F, 0, 0);
GL.End();
GL.PopMatrix();
}