Improve loading performance for loader/compression classes.

- In RLEZerosCompression use dedicated Array.Clear method instead of open-coded loop.
- In VoxelLoader.GenerateSlicePlanes.Get use TryGetValue to avoid repeated array and dictionary lookups.
- In TmpTSLoader.UnpackTileData use ReadBytes to populate array with less overhead compared to repeated one byte reads.
- Resolve TODO in VqaVideo.
This commit is contained in:
RoosterDragon
2023-06-28 18:47:23 +01:00
committed by Gustas
parent dccb3ce9ce
commit 1c0885c636
4 changed files with 12 additions and 81 deletions

View File

@@ -9,6 +9,8 @@
*/
#endregion
using System;
namespace OpenRA.Mods.Common.FileFormats
{
// Run length encoded sequences of zeros (aka Format2)
@@ -24,8 +26,8 @@ namespace OpenRA.Mods.Common.FileFormats
if (cmd == 0)
{
var count = r.ReadByte();
while (count-- > 0)
dest[destIndex++] = 0;
Array.Clear(dest, destIndex, count);
destIndex += count;
}
else
dest[destIndex++] = cmd;