CursorManager avoids use of BitConverter.

Avoid allocating a small temp array via BitConverter.GetBytes, and instead use bitwise ops to isolate the components of the color.
This commit is contained in:
RoosterDragon
2020-10-18 15:22:18 +01:00
committed by abcdefg30
parent 7c8dc5d5f4
commit 6eaf51d450

View File

@@ -236,15 +236,14 @@ namespace OpenRA.Graphics
{ {
for (var i = 0; i < width; i++) for (var i = 0; i < width; i++)
{ {
var bytes = BitConverter.GetBytes(palette[frame.Data[j * width + i]]); var rgba = palette[frame.Data[j * width + i]];
var c = palette[frame.Data[j * width + i]];
var k = 4 * (j * width + i); var k = 4 * (j * width + i);
// Convert RGBA to BGRA // Convert RGBA to BGRA
data[k] = bytes[2]; data[k] = (byte)(rgba >> 16);
data[k + 1] = bytes[1]; data[k + 1] = (byte)(rgba >> 8);
data[k + 2] = bytes[0]; data[k + 2] = (byte)(rgba >> 0);
data[k + 3] = bytes[3]; data[k + 3] = (byte)(rgba >> 24);
} }
} }