Add depth buffer support to tactical overlays.
This commit is contained in:
@@ -67,13 +67,13 @@ namespace OpenRA.Mods.Common.Graphics
|
||||
public void Render(WorldRenderer wr)
|
||||
{
|
||||
var wcr = Game.Renderer.WorldRgbaColorRenderer;
|
||||
var center = wr.ScreenPosition(centerPosition);
|
||||
var center = wr.Screen3DPosition(centerPosition);
|
||||
|
||||
for (var i = 0; i < trailCount; i++)
|
||||
{
|
||||
var angle = trailAngle - new WAngle(i * (trailSeparation.Angle <= 512 ? 1 : -1));
|
||||
var length = radius.Length * new WVec(angle.Cos(), angle.Sin(), 0) / 1024;
|
||||
var end = wr.ScreenPosition(centerPosition + length);
|
||||
var end = wr.Screen3DPosition(centerPosition + length);
|
||||
var alpha = color.A - i * color.A / trailCount;
|
||||
|
||||
wcr.DrawLine(center, end, 3, Color.FromArgb(alpha, contrastColor));
|
||||
|
||||
@@ -58,8 +58,8 @@ namespace OpenRA.Mods.Common.Graphics
|
||||
var offset = new WVec(radius.Length, 0, 0);
|
||||
for (var i = 0; i < RangeCircleSegments; i++)
|
||||
{
|
||||
var a = wr.ScreenPosition(centerPosition + offset.Rotate(RangeCircleStartRotations[i]));
|
||||
var b = wr.ScreenPosition(centerPosition + offset.Rotate(RangeCircleEndRotations[i]));
|
||||
var a = wr.Screen3DPosition(centerPosition + offset.Rotate(RangeCircleStartRotations[i]));
|
||||
var b = wr.Screen3DPosition(centerPosition + offset.Rotate(RangeCircleEndRotations[i]));
|
||||
|
||||
if (contrastWidth > 0)
|
||||
wcr.DrawLine(a, b, contrastWidth / wr.Viewport.Zoom, contrastColor);
|
||||
|
||||
@@ -45,11 +45,11 @@ namespace OpenRA.Mods.Common.Graphics
|
||||
public void Render(WorldRenderer wr)
|
||||
{
|
||||
var iz = 1 / wr.Viewport.Zoom;
|
||||
var screenPos = wr.ScreenPxPosition(pos);
|
||||
var screenPos = wr.Screen3DPxPosition(pos);
|
||||
var tl = screenPos + new float2(visualBounds.Left, visualBounds.Top);
|
||||
var br = screenPos + new float2(visualBounds.Right, visualBounds.Bottom);
|
||||
var tr = new float2(br.X, tl.Y);
|
||||
var bl = new float2(tl.X, br.Y);
|
||||
var tr = new float3(br.X, tl.Y, screenPos.Z);
|
||||
var bl = new float3(tl.X, br.Y, screenPos.Z);
|
||||
var u = new float2(4 * iz, 0);
|
||||
var v = new float2(0, 4 * iz);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user