Cache the simpler delegates used in IShader.Render calls.

This commit is contained in:
RoosterDragon
2015-07-15 21:09:11 +01:00
parent 3a0eb5554e
commit 92389916a6
3 changed files with 14 additions and 7 deletions

View File

@@ -17,6 +17,7 @@ namespace OpenRA.Graphics
{
readonly Renderer renderer;
readonly IShader shader;
readonly Action renderAction;
readonly Vertex[] vertices;
Sheet currentSheet;
@@ -28,6 +29,7 @@ namespace OpenRA.Graphics
this.renderer = renderer;
this.shader = shader;
vertices = new Vertex[renderer.TempBufferSize];
renderAction = () => renderer.DrawBatch(vertices, nv, PrimitiveType.QuadList);
}
public void Flush()
@@ -37,7 +39,7 @@ namespace OpenRA.Graphics
shader.SetTexture("DiffuseTexture", currentSheet.GetTexture());
renderer.Device.SetBlendMode(currentBlend);
shader.Render(() => renderer.DrawBatch(vertices, nv, PrimitiveType.QuadList));
shader.Render(renderAction);
renderer.Device.SetBlendMode(BlendMode.None);
nv = 0;