use premultiplied alpha on geometric renderers
to fix transparency again
This commit is contained in:
@@ -83,6 +83,7 @@ namespace OpenRA.Graphics
|
|||||||
if (nv + 2 > renderer.TempBufferSize)
|
if (nv + 2 > renderer.TempBufferSize)
|
||||||
Flush();
|
Flush();
|
||||||
|
|
||||||
|
color = Util.PremultiplyAlpha(color);
|
||||||
var r = color.R / 255.0f;
|
var r = color.R / 255.0f;
|
||||||
var g = color.G / 255.0f;
|
var g = color.G / 255.0f;
|
||||||
var b = color.B / 255.0f;
|
var b = color.B / 255.0f;
|
||||||
@@ -98,12 +99,14 @@ namespace OpenRA.Graphics
|
|||||||
if (nv + 2 > renderer.TempBufferSize)
|
if (nv + 2 > renderer.TempBufferSize)
|
||||||
Flush();
|
Flush();
|
||||||
|
|
||||||
|
startColor = Util.PremultiplyAlpha(startColor);
|
||||||
var r = startColor.R / 255.0f;
|
var r = startColor.R / 255.0f;
|
||||||
var g = startColor.G / 255.0f;
|
var g = startColor.G / 255.0f;
|
||||||
var b = startColor.B / 255.0f;
|
var b = startColor.B / 255.0f;
|
||||||
var a = startColor.A / 255.0f;
|
var a = startColor.A / 255.0f;
|
||||||
vertices[nv++] = new Vertex(start + Offset, r, g, b, a);
|
vertices[nv++] = new Vertex(start + Offset, r, g, b, a);
|
||||||
|
|
||||||
|
endColor = Util.PremultiplyAlpha(endColor);
|
||||||
r = endColor.R / 255.0f;
|
r = endColor.R / 255.0f;
|
||||||
g = endColor.G / 255.0f;
|
g = endColor.G / 255.0f;
|
||||||
b = endColor.B / 255.0f;
|
b = endColor.B / 255.0f;
|
||||||
@@ -115,6 +118,7 @@ namespace OpenRA.Graphics
|
|||||||
{
|
{
|
||||||
renderer.CurrentBatchRenderer = this;
|
renderer.CurrentBatchRenderer = this;
|
||||||
|
|
||||||
|
color = Util.PremultiplyAlpha(color);
|
||||||
var r = color.R / 255.0f;
|
var r = color.R / 255.0f;
|
||||||
var g = color.G / 255.0f;
|
var g = color.G / 255.0f;
|
||||||
var b = color.B / 255.0f;
|
var b = color.B / 255.0f;
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ namespace OpenRA.Graphics
|
|||||||
if (nv + 4 > renderer.TempBufferSize)
|
if (nv + 4 > renderer.TempBufferSize)
|
||||||
Flush();
|
Flush();
|
||||||
|
|
||||||
|
color = Util.PremultiplyAlpha(color);
|
||||||
var r = color.R / 255.0f;
|
var r = color.R / 255.0f;
|
||||||
var g = color.G / 255.0f;
|
var g = color.G / 255.0f;
|
||||||
var b = color.B / 255.0f;
|
var b = color.B / 255.0f;
|
||||||
|
|||||||
Reference in New Issue
Block a user