コード例 #1
0
ファイル: LineRenderer.cs プロジェクト: zhangolove/OpenRA
 public LineRenderer(Renderer renderer, IShader shader)
 {
     this.renderer = renderer;
     this.shader   = shader;
     vertices      = new Vertex[renderer.TempBufferSize];
     renderAction  = () =>
     {
         renderer.SetLineWidth(LineWidth);
         renderer.DrawBatch(vertices, nv, PrimitiveType.LineList);
     };
 }
コード例 #2
0
        public void Flush()
        {
            if (nv > 0)
            {
                shader.Render(() =>
                {
                    var vb = renderer.GetTempVertexBuffer();
                    vb.SetData(vertices, nv);
                    renderer.SetLineWidth(LineWidth * Game.viewport.Zoom);
                    renderer.DrawBatch(vb, 0, nv, PrimitiveType.LineList);
                });

                nv = 0;
            }
        }
コード例 #3
0
 public void Flush()
 {
     if (nv > 0)
     {
         renderer.Device.SetBlendMode(BlendMode.Alpha);
         shader.Render(() =>
         {
             var vb = renderer.GetTempVertexBuffer();
             vb.SetData(vertices, nv);
             renderer.SetLineWidth(LineWidth);
             renderer.DrawBatch(vb, 0, nv, PrimitiveType.LineList);
         });
         renderer.Device.SetBlendMode(BlendMode.None);
         nv = 0;
     }
 }