public static MyProfiler Init(MyObjectBuilder_Profiler objectBuilder) { MyProfiler.MyProfilerObjectBuilderInfo data = new MyProfiler.MyProfilerObjectBuilderInfo(); data.ProfilingBlocks = new Dictionary <MyProfilerBlockKey, MyProfilerBlock>(); foreach (var blockOB in objectBuilder.ProfilingBlocks) { data.ProfilingBlocks.Add(blockOB.Key, new MyProfilerBlock()); } foreach (var blockOB in objectBuilder.ProfilingBlocks) { MyObjectBuilder_ProfilerBlock.Init(blockOB, data); } data.RootBlocks = new List <MyProfilerBlock>(); foreach (var blockKey in objectBuilder.RootBlocks) { data.RootBlocks.Add(data.ProfilingBlocks[blockKey]); } data.TotalCalls = objectBuilder.TotalCalls; data.CustomName = objectBuilder.CustomName; data.AxisName = objectBuilder.AxisName; MyProfiler profiler = new MyProfiler(false, data.CustomName, data.AxisName); profiler.Init(data); return(profiler); }
public static void SaveToFile(int index) { try { MyObjectBuilder_Profiler profilerBuilder = MyObjectBuilder_Profiler.GetObjectBuilder(VRage.Profiler.MyRenderProfiler.SelectedProfiler); MyObjectBuilderSerializer.SerializeXML(Path.Combine(MyFileSystem.UserDataPath, "Profiler-" + index), false, profilerBuilder); } catch { System.Diagnostics.Debug.Fail("Cannot save profiler."); } }
public static void LoadFromFile(int index) { try { MyObjectBuilder_Profiler profilerBuilder; MyObjectBuilderSerializer.DeserializeXML(Path.Combine(MyFileSystem.UserDataPath, "Profiler-" + index), out profilerBuilder); VRage.Profiler.MyRenderProfiler.SelectedProfiler = MyObjectBuilder_Profiler.Init(profilerBuilder); } catch { System.Diagnostics.Debug.Fail("Cannot load profiler. File may not exist."); } }
public static MyObjectBuilder_Profiler GetObjectBuilder(MyProfiler profiler) { MyProfiler.MyProfilerObjectBuilderInfo data = profiler.GetObjectBuilderInfo(); MyObjectBuilder_Profiler objectBuilder = new MyObjectBuilder_Profiler(); objectBuilder.ProfilingBlocks = new List <MyObjectBuilder_ProfilerBlock>(); foreach (var block in data.ProfilingBlocks) { objectBuilder.ProfilingBlocks.Add(MyObjectBuilder_ProfilerBlock.GetObjectBuilder(block.Value)); } objectBuilder.RootBlocks = new List <MyProfilerBlockKey>(); foreach (MyProfilerBlock block in data.RootBlocks) { objectBuilder.RootBlocks.Add(block.Key); } objectBuilder.TotalCalls = data.TotalCalls; objectBuilder.CustomName = data.CustomName; objectBuilder.AxisName = data.AxisName; return(objectBuilder); }