Allow/require renderers to enable alpha blending when needed. Fixes voxel shadow issues.

This commit is contained in:
Paul Chote
2013-06-14 06:35:38 +12:00
parent 4c22193446
commit 52335a37bf
11 changed files with 28 additions and 18 deletions

View File

@@ -33,12 +33,14 @@ namespace OpenRA.Graphics
if (nv > 0)
{
shader.SetTexture("DiffuseTexture", currentSheet.Texture);
renderer.Device.EnableAlphaBlending();
shader.Render(() =>
{
var vb = renderer.GetTempVertexBuffer();
vb.SetData(vertices, nv);
renderer.DrawBatch(vb, 0, nv, PrimitiveType.QuadList);
});
renderer.Device.DisableAlphaBlending();
nv = 0;
currentSheet = null;
@@ -99,7 +101,9 @@ namespace OpenRA.Graphics
public void DrawVertexBuffer(IVertexBuffer<Vertex> buffer, int start, int length, PrimitiveType type, Sheet sheet)
{
shader.SetTexture("DiffuseTexture", sheet.Texture);
renderer.Device.EnableAlphaBlending();
shader.Render(() => renderer.DrawBatch(buffer, start, length, type));
renderer.Device.DisableAlphaBlending();
}
public void SetPalette(ITexture palette)