From 8237a46989e589514914b802b81d939db9131407 Mon Sep 17 00:00:00 2001 From: Jarrod Doyle Date: Thu, 29 Aug 2024 19:59:01 +0100 Subject: [PATCH] Time a bunch more stuff --- project/code/TMV/Mission.cs | 45 +++++++++++++++++++++---------------- 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/project/code/TMV/Mission.cs b/project/code/TMV/Mission.cs index bccfbf3..612269f 100644 --- a/project/code/TMV/Mission.cs +++ b/project/code/TMV/Mission.cs @@ -245,7 +245,7 @@ public partial class Mission : Node3D var rawRot = brush.angle; var rot = new Vector3(rawRot.Y, rawRot.Z, rawRot.X) * 360 / ushort.MaxValue; var scale = scaleProp == null ? Vector3.One : scaleProp.scale.ToGodotVec3(false); - var model = _modelLoader.Load(_campaignName, modelName); + var model = Timing.TimeStage("Load Models", () => { return _modelLoader.Load(_campaignName, modelName); }); if (model != null) { model.Position = pos; @@ -394,28 +394,35 @@ public partial class Mission : Node3D var layerCount = lightmap.Layers; var srcRect = new Rect2I(0, 0, width, height); var dst = new Vector2I(rect.X, rect.Y); - for (var i = 0; i < layerCount; i++) + Timing.TimeStage("Blit LM Data", () => { - var cellLm = Image.CreateFromData(width, height, false, lightmapFormat, lightmap.AsBytesRgba(i)); - lmImages[i].BlitRect(cellLm, srcRect, dst); - } + for (var i = 0; i < layerCount; i++) + { + var bytes = Timing.TimeStage("Get LM Data", () => { return lightmap.AsBytesRgba(i); }); + var cellLm = Image.CreateFromData(width, height, false, lightmapFormat, bytes); + lmImages[i].BlitRect(cellLm, srcRect, dst); + } + }); - if (!surfaceDataMap.ContainsKey(info.textureId)) GD.Print("Invalid SurfaceDataMap key"); - surfaceDataMap[info.textureId].TransformUv2s(info.uvStart, info.uvEnd, (uv) => + Timing.TimeStage("Transform LM UVs", () => { - var u = uv.X; - var v = uv.Y; + if (!surfaceDataMap.ContainsKey(info.textureId)) GD.Print("Invalid SurfaceDataMap key"); + surfaceDataMap[info.textureId].TransformUv2s(info.uvStart, info.uvEnd, (uv) => + { + var u = uv.X; + var v = uv.Y; - // Clamp uv range to [0..1] - u %= 1; - v %= 1; - if (u < 0) u = Math.Abs(u); - if (v < 0) v = Math.Abs(v); + // Clamp uv range to [0..1] + u %= 1; + v %= 1; + if (u < 0) u = Math.Abs(u); + if (v < 0) v = Math.Abs(v); - // Transform! - u = (rect.X + rect.Width * u) / bounds.Width; - v = (rect.Y + rect.Height * v) / bounds.Height; - return new Vector2(u, v); + // Transform! + u = (rect.X + rect.Width * u) / bounds.Width; + v = (rect.Y + rect.Height * v) / bounds.Height; + return new Vector2(u, v); + }); }); } @@ -438,7 +445,7 @@ public partial class Mission : Node3D // TODO: This is a mess lol var textureId = renderPoly.TextureId; - var texture = _textureLoader.Get(textureId); + var texture = Timing.TimeStage("Load Textures", () => { return _textureLoader.Get(textureId); }); var texU = renderPoly.TextureVectors.Item1.ToGodotVec3(); var texV = renderPoly.TextureVectors.Item2.ToGodotVec3(); var baseU = renderPoly.TextureBases.Item1;