public override void OnUpdate() { RenderStatisticsInfo statistics = RendererWorld.Instance.Statistics; PageControl.Controls[ "Triangles" ].Text = statistics.Triangles.ToString( "N0" ); PageControl.Controls[ "Batches" ].Text = statistics.Batches.ToString( "N0" ); PageControl.Controls[ "Lights" ].Text = statistics.Lights.ToString( "N0" ); //performance counter { float otherTime = 0; foreach( PerformanceCounter.Counter counter in PerformanceCounter.Counters ) { PerformanceCounter.TimeCounter timeCounter = counter as PerformanceCounter.TimeCounter; if( timeCounter != null ) { string counterNameWithoutSpaces = counter.Name.Replace( " ", "" ); EControl timeControl = PageControl.Controls[ counterNameWithoutSpaces + "Time" ]; EControl fpsControl = PageControl.Controls[ counterNameWithoutSpaces + "FPS" ]; if( timeControl != null ) { timeControl.Text = ( timeCounter.CalculatedValue * 1000.0f ). ToString( "F2" ); } if( fpsControl != null ) fpsControl.Text = ( 1.0f / timeCounter.CalculatedValue ).ToString( "F1" ); if( !counter.InnerCounter ) { if( counter == PerformanceCounter.TotalTimeCounter ) otherTime += timeCounter.CalculatedValue; else otherTime -= timeCounter.CalculatedValue; } } } { ETextBox timeControl = PageControl.Controls[ "OtherTime" ] as ETextBox; ETextBox fpsControl = PageControl.Controls[ "OtherFPS" ] as ETextBox; if( timeControl != null ) timeControl.Text = ( otherTime * 1000.0f ).ToString( "F2" ); if( fpsControl != null ) fpsControl.Text = ( 1.0f / otherTime ).ToString( "F1" ); } } //cameras { EListBox camerasListBox = (EListBox)PageControl.Controls[ "Cameras" ]; //update cameras list { StatisticsInfoItem lastSelectedItem = camerasListBox.SelectedItem as StatisticsInfoItem; camerasListBox.Items.Clear(); foreach( RenderStatisticsInfo.CameraStatistics cameraStatistics in statistics.CamerasStatistics ) { StatisticsInfoItem item = new StatisticsInfoItem(); item.cameraInformation = cameraStatistics.CameraInformation; item.ownerCameraIdentifier = cameraStatistics.OwnerCameraIdentifier; camerasListBox.Items.Add( item ); if( lastSelectedItem != null ) { if( item.cameraInformation == lastSelectedItem.cameraInformation && item.ownerCameraIdentifier == lastSelectedItem.ownerCameraIdentifier ) { camerasListBox.SelectedIndex = camerasListBox.Items.Count - 1; } } } camerasListBox.Items.Add( "Total" ); if( lastSelectedItem != null && lastSelectedItem.cameraInformation == "Total" ) camerasListBox.SelectedIndex = camerasListBox.Items.Count - 1; if( camerasListBox.SelectedIndex == -1 ) camerasListBox.SelectedIndex = camerasListBox.Items.Count - 1; } //update camera info if( camerasListBox.SelectedIndex == camerasListBox.Items.Count - 1 ) { //total statistics int staticMeshObjects = 0; int sceneNodes = 0; int guiRenderers = 0; int guiBatches = 0; int triangles = 0; int batches = 0; foreach( RenderStatisticsInfo.CameraStatistics cameraStatistics in statistics.CamerasStatistics ) { staticMeshObjects += cameraStatistics.StaticMeshObjects; sceneNodes += cameraStatistics.SceneNodes; guiRenderers += cameraStatistics.GuiRenderers; guiBatches += cameraStatistics.GuiBatches; triangles += cameraStatistics.Triangles; batches += cameraStatistics.Batches; } PageControl.Controls[ "CameraOutdoorWalks" ].Text = "No camera"; PageControl.Controls[ "CameraPortalsPassed" ].Text = "No camera"; PageControl.Controls[ "CameraZonesPassed" ].Text = "No camera"; PageControl.Controls[ "CameraStaticMeshObjects" ].Text = staticMeshObjects.ToString( "N0" ); PageControl.Controls[ "CameraSceneNodes" ].Text = sceneNodes.ToString( "N0" ); PageControl.Controls[ "CameraGuiRenderers" ].Text = guiRenderers.ToString( "N0" ); PageControl.Controls[ "CameraGuiBatches" ].Text = guiBatches.ToString( "N0" ); PageControl.Controls[ "CameraTriangles" ].Text = triangles.ToString( "N0" ); PageControl.Controls[ "CameraBatches" ].Text = batches.ToString( "N0" ); } else if( camerasListBox.SelectedIndex != -1 ) { //selected camera statistics RenderStatisticsInfo.CameraStatistics activeCameraStatistics = statistics.CamerasStatistics[ camerasListBox.SelectedIndex ]; RenderStatisticsInfo.CameraStatistics.PortalSystemInfo portalSystemInfo = activeCameraStatistics.PortalSystem; if( portalSystemInfo != null ) { PageControl.Controls[ "CameraOutdoorWalks" ].Text = portalSystemInfo.OutdoorWalks.ToString( "N0" ); PageControl.Controls[ "CameraPortalsPassed" ].Text = portalSystemInfo.PortalsPassed.ToString( "N0" ); PageControl.Controls[ "CameraZonesPassed" ].Text = portalSystemInfo.ZonesPassed.ToString( "N0" ); } else { PageControl.Controls[ "CameraOutdoorWalks" ].Text = "No zones"; PageControl.Controls[ "CameraPortalsPassed" ].Text = "No zones"; PageControl.Controls[ "CameraZonesPassed" ].Text = "No zones"; } PageControl.Controls[ "CameraStaticMeshObjects" ].Text = activeCameraStatistics.StaticMeshObjects.ToString( "N0" ); PageControl.Controls[ "CameraSceneNodes" ].Text = activeCameraStatistics.SceneNodes.ToString( "N0" ); PageControl.Controls[ "CameraGuiRenderers" ].Text = activeCameraStatistics.GuiRenderers.ToString( "N0" ); PageControl.Controls[ "CameraGuiBatches" ].Text = activeCameraStatistics.GuiBatches.ToString( "N0" ); PageControl.Controls[ "CameraTriangles" ].Text = activeCameraStatistics.Triangles.ToString( "N0" ); PageControl.Controls[ "CameraBatches" ].Text = activeCameraStatistics.Batches.ToString( "N0" ); } else { //no camera selected PageControl.Controls[ "CameraOutdoorWalks" ].Text = ""; PageControl.Controls[ "CameraPortalsPassed" ].Text = ""; PageControl.Controls[ "CameraZonesPassed" ].Text = ""; PageControl.Controls[ "CameraStaticMeshObjects" ].Text = ""; PageControl.Controls[ "CameraSceneNodes" ].Text = ""; PageControl.Controls[ "CameraGuiRenderers" ].Text = ""; PageControl.Controls[ "CameraGuiBatches" ].Text = ""; PageControl.Controls[ "CameraTriangles" ].Text = ""; PageControl.Controls[ "CameraBatches" ].Text = ""; } } }
public override void OnUpdate() { RenderStatisticsInfo statistics = RendererWorld.Instance.Statistics; PageControl.Controls["Triangles"].Text = statistics.Triangles.ToString("N0"); PageControl.Controls["Batches"].Text = statistics.Batches.ToString("N0"); PageControl.Controls["Lights"].Text = statistics.Lights.ToString("N0"); //performance counter { float otherTime = 0; foreach (PerformanceCounter.Counter counter in PerformanceCounter.Counters) { PerformanceCounter.TimeCounter timeCounter = counter as PerformanceCounter.TimeCounter; if (timeCounter != null) { string counterNameWithoutSpaces = counter.Name.Replace(" ", ""); EControl timeControl = PageControl.Controls[ counterNameWithoutSpaces + "Time"]; EControl fpsControl = PageControl.Controls[ counterNameWithoutSpaces + "FPS"]; if (timeControl != null) { timeControl.Text = (timeCounter.CalculatedValue * 1000.0f). ToString("F2"); } if (fpsControl != null) { fpsControl.Text = (1.0f / timeCounter.CalculatedValue).ToString("F1"); } if (!counter.InnerCounter) { if (counter == PerformanceCounter.TotalTimeCounter) { otherTime += timeCounter.CalculatedValue; } else { otherTime -= timeCounter.CalculatedValue; } } } } { ETextBox timeControl = PageControl.Controls["OtherTime"] as ETextBox; ETextBox fpsControl = PageControl.Controls["OtherFPS"] as ETextBox; if (timeControl != null) { timeControl.Text = (otherTime * 1000.0f).ToString("F2"); } if (fpsControl != null) { fpsControl.Text = (1.0f / otherTime).ToString("F1"); } } } //cameras { EListBox camerasListBox = (EListBox)PageControl.Controls["Cameras"]; //update cameras list { StatisticsInfoItem lastSelectedItem = camerasListBox.SelectedItem as StatisticsInfoItem; camerasListBox.Items.Clear(); foreach (RenderStatisticsInfo.CameraStatistics cameraStatistics in statistics.CamerasStatistics) { StatisticsInfoItem item = new StatisticsInfoItem(); item.cameraInformation = cameraStatistics.CameraInformation; item.ownerCameraIdentifier = cameraStatistics.OwnerCameraIdentifier; camerasListBox.Items.Add(item); if (lastSelectedItem != null) { if (item.cameraInformation == lastSelectedItem.cameraInformation && item.ownerCameraIdentifier == lastSelectedItem.ownerCameraIdentifier) { camerasListBox.SelectedIndex = camerasListBox.Items.Count - 1; } } } camerasListBox.Items.Add("Total"); if (lastSelectedItem != null && lastSelectedItem.cameraInformation == "Total") { camerasListBox.SelectedIndex = camerasListBox.Items.Count - 1; } if (camerasListBox.SelectedIndex == -1) { camerasListBox.SelectedIndex = camerasListBox.Items.Count - 1; } } //update camera info if (camerasListBox.SelectedIndex == camerasListBox.Items.Count - 1) { //total statistics int staticMeshObjects = 0; int sceneNodes = 0; int guiRenderers = 0; int guiBatches = 0; int triangles = 0; int batches = 0; foreach (RenderStatisticsInfo.CameraStatistics cameraStatistics in statistics.CamerasStatistics) { staticMeshObjects += cameraStatistics.StaticMeshObjects; sceneNodes += cameraStatistics.SceneNodes; guiRenderers += cameraStatistics.GuiRenderers; guiBatches += cameraStatistics.GuiBatches; triangles += cameraStatistics.Triangles; batches += cameraStatistics.Batches; } PageControl.Controls["CameraOutdoorWalks"].Text = "No camera"; PageControl.Controls["CameraPortalsPassed"].Text = "No camera"; PageControl.Controls["CameraZonesPassed"].Text = "No camera"; PageControl.Controls["CameraStaticMeshObjects"].Text = staticMeshObjects.ToString("N0"); PageControl.Controls["CameraSceneNodes"].Text = sceneNodes.ToString("N0"); PageControl.Controls["CameraGuiRenderers"].Text = guiRenderers.ToString("N0"); PageControl.Controls["CameraGuiBatches"].Text = guiBatches.ToString("N0"); PageControl.Controls["CameraTriangles"].Text = triangles.ToString("N0"); PageControl.Controls["CameraBatches"].Text = batches.ToString("N0"); } else if (camerasListBox.SelectedIndex != -1) { //selected camera statistics RenderStatisticsInfo.CameraStatistics activeCameraStatistics = statistics.CamerasStatistics[camerasListBox.SelectedIndex]; RenderStatisticsInfo.CameraStatistics.PortalSystemInfo portalSystemInfo = activeCameraStatistics.PortalSystem; if (portalSystemInfo != null) { PageControl.Controls["CameraOutdoorWalks"].Text = portalSystemInfo.OutdoorWalks.ToString("N0"); PageControl.Controls["CameraPortalsPassed"].Text = portalSystemInfo.PortalsPassed.ToString("N0"); PageControl.Controls["CameraZonesPassed"].Text = portalSystemInfo.ZonesPassed.ToString("N0"); } else { PageControl.Controls["CameraOutdoorWalks"].Text = "No zones"; PageControl.Controls["CameraPortalsPassed"].Text = "No zones"; PageControl.Controls["CameraZonesPassed"].Text = "No zones"; } PageControl.Controls["CameraStaticMeshObjects"].Text = activeCameraStatistics.StaticMeshObjects.ToString("N0"); PageControl.Controls["CameraSceneNodes"].Text = activeCameraStatistics.SceneNodes.ToString("N0"); PageControl.Controls["CameraGuiRenderers"].Text = activeCameraStatistics.GuiRenderers.ToString("N0"); PageControl.Controls["CameraGuiBatches"].Text = activeCameraStatistics.GuiBatches.ToString("N0"); PageControl.Controls["CameraTriangles"].Text = activeCameraStatistics.Triangles.ToString("N0"); PageControl.Controls["CameraBatches"].Text = activeCameraStatistics.Batches.ToString("N0"); } else { //no camera selected PageControl.Controls["CameraOutdoorWalks"].Text = ""; PageControl.Controls["CameraPortalsPassed"].Text = ""; PageControl.Controls["CameraZonesPassed"].Text = ""; PageControl.Controls["CameraStaticMeshObjects"].Text = ""; PageControl.Controls["CameraSceneNodes"].Text = ""; PageControl.Controls["CameraGuiRenderers"].Text = ""; PageControl.Controls["CameraGuiBatches"].Text = ""; PageControl.Controls["CameraTriangles"].Text = ""; PageControl.Controls["CameraBatches"].Text = ""; } } }