// Setup the results context object public override void SetupResultsContext(ResultsContext context, ResultsIOData inputData, ResultsIOData inputDataB) { CleanupResultsContext(); FrameComparisonResults inputResults = (FrameComparisonResults)logic.DeserializeResults(inputData); // Deserialize input and cast to typed results if (TestRunner.Instance) { if (!TestRunner.Instance.isAnalytic) { comparisonData = (FrameComparisonComparison)logic.ProcessComparison(inputResults); // Get comparison data } else { FrameComparisonResults inputResultsB = (FrameComparisonResults)logic.DeserializeResults(inputDataB); // Deserialize input and cast to typed results comparisonData = (FrameComparisonComparison)logic.ProcessComparison(inputResultsB, inputResults); } } else { comparisonData = (FrameComparisonComparison)logic.ProcessComparison(inputResults); // Get comparison data } buttons = new Button[3]; // Create button array for (int i = 0; i < buttons.Length; i++) // Iterate { buttons[i] = context.objects[i].GetComponent <Button>(); // Get the button int index = i; // Set this so delegate doesnt get reference that iterates buttons[i].onClick.AddListener(delegate { SetTextureContext(comparisonData, index); }); // Add listener } resultsContextImage = context.objects[3].GetComponent <RawImage>(); // Get image context.objects[4].GetComponent <Text>().text = comparisonData.DiffPercentage.ToString("N4"); // Set diff to field SetTextureContext(comparisonData, 0); // Set default }
// Create and expand context object IEnumerator ExpandContextObject(ResultsEntry inputEntry, TestDisplayBase display) { Console.Instance.Write(DebugLevel.Full, MessageLevel.Log, "Expanding context object"); // Write to console int entryIndex = FindEntryInDetailedResultsList(inputEntry); // Get index of selected entry activeContextEntry = inputEntry; // Track selected entry activeContextObject = Instantiate(display.resultsContextPrefab, listContentRect, false); // Create context object instance RectTransform contextObjectRect = activeContextObject.GetComponent <RectTransform>(); // Get rect contextObjectRect.anchoredPosition = new Vector2(0, (entryIndex + 1) * -listEntries[0].GetComponent <RectTransform>().sizeDelta.y); // Set position listContentRect.sizeDelta = new Vector2(listContentRect.sizeDelta.x, listContentRect.sizeDelta.y + contextObjectRect.sizeDelta.y); // Set size NudgeDetailedResultsListEntries(entryIndex, -contextObjectRect.sizeDelta.y); // Nudge entries ResultsContext resultsContext = activeContextObject.GetComponent <ResultsContext>(); // Get results context reference resultsContext.Setup(activeContextEntry); // Setup base of results context ResultsIOData resultsDataFull = new ResultsIOData(); // Create output data yield return(StartCoroutine(ResultsIO.Instance.FetchSpecificEntry(inputEntry.resultsEntryData.resultsData, (value => { resultsDataFull = value; })))); // Get full results data // SQLCHECK ResultsIOData resultsDataFullB = new ResultsIOData(); // Create output data if (TestRunner.Instance) { if (TestRunner.Instance.runnerType == RunnerType.Analytic) { yield return(StartCoroutine(SQL.SQLIO.FetchBaseline(inputEntry.resultsEntryData.resultsDataB, (value => { resultsDataFullB = value; })))); // Get full results data // SQLCHECK } else if (TestRunner.Instance.runnerType == RunnerType.AnalyticComparison) { yield return(StartCoroutine(ResultsIO.Instance.FetchSpecificEntry(inputEntry.resultsEntryData.resultsDataB, (value => { resultsDataFullB = value; })))); // Get full results data // SQLCHECK } } //if(inputEntry.resultsEntryData.resultsDataB != null) display.SetupResultsContext(resultsContext, resultsDataFull, resultsDataFullB); // Tell Display how to setup the results context }
// ------------------------------------------------------------------------------------ // ResultsViewer // ------------------------------------------------------------------------------------ // This sections controls customizing the ResultsViewers context object for this test type // // Mandatory overrides: // - SetupResultsContext // This method lets you specify the content of the results viewer context object // Input is an array of game object references // Context object contents are unique to the test type // // These method calls are already wrapped in debugs and as such do not require debugs inside them // However, should you want to add further debugs please use Console.Write() // Setup the results context object public override void SetupResultsContext(ResultsContext context, ResultsIOData inputData) { ExampleResults inputResults = (ExampleResults)logic.DeserializeResults(inputData); // Deserialize input and cast to typed results ExampleLogic.ComparisonData comparisonData = (ExampleLogic.ComparisonData)logic.GetComparisonData(inputResults); // Get comparison data context.objects[0].GetComponent <Text>().text = inputResults.SomeFloat.ToString(); // Set float context.objects[1].GetComponent <Text>().text = comparisonData.SomeFloatDiff.ToString(); // Set diff }
// ------------------------------------------------------------------------------------ // ResultsViewer // Setup the results context object public override void SetupResultsContext(ResultsContext context, ResultsIOData inputData) { AverageFrameTimeResults inputResults = (AverageFrameTimeResults)logic.DeserializeResults(inputData); // Deserialize input and cast to typed results AverageFrameTimeLogic.ComparisonData comparisonData = (AverageFrameTimeLogic.ComparisonData)logic.GetComparisonData(inputResults); // Get comparison data context.objects[0].GetComponent <Text>().text = inputResults.avgFrameTime.ToString(); // Set average frame time context.objects[1].GetComponent <Text>().text = comparisonData.delta.ToString(); // Set delta }
// Create and expand context object void ExpandContextObject(ResultsEntry inputEntry, TestDisplayBase display) { Console.Instance.Write(DebugLevel.Full, MessageLevel.Log, "Expanding context object"); // Write to console int entryIndex = FindEntryInDetailedResultsList(inputEntry); // Get index of selected entry activeContextEntry = inputEntry; // Track selected entry activeContextObject = Instantiate(display.resultsContextPrefab, listContentRect, false); // Create context object instance RectTransform contextObjectRect = activeContextObject.GetComponent <RectTransform>(); // Get rect contextObjectRect.anchoredPosition = new Vector2(0, (entryIndex + 1) * -listEntries[0].GetComponent <RectTransform>().sizeDelta.y); // Set position listContentRect.sizeDelta = new Vector2(listContentRect.sizeDelta.x, listContentRect.sizeDelta.y + contextObjectRect.sizeDelta.y); // Set size NudgeDetailedResultsListEntries(entryIndex, -contextObjectRect.sizeDelta.y); // Nudge entries ResultsContext resultsContext = activeContextObject.GetComponent <ResultsContext>(); // Get results context reference resultsContext.Setup(activeContextEntry); // Setup base of results context display.SetupResultsContext(resultsContext, inputEntry.resultsEntryData.resultsData); // Tell Display how to setup the results context }
// Setup the results context object public override void SetupResultsContext(ResultsContext context, ResultsIOData inputData, ResultsIOData inputDataB) { AverageFrameTimeResults inputResults = (AverageFrameTimeResults)logic.DeserializeResults(inputData); // Deserialize input and cast to typed results if (TestRunner.Instance) { if (!TestRunner.Instance.isAnalytic) { comparisonData = (AverageFrameTimeComparison)logic.ProcessComparison(inputResults); // Get comparison data } else { AverageFrameTimeResults inputResultsB = (AverageFrameTimeResults)logic.DeserializeResults(inputDataB); // Deserialize input and cast to typed results comparisonData = (AverageFrameTimeComparison)logic.ProcessComparison(inputResultsB, inputResults); } } else { comparisonData = (AverageFrameTimeComparison)logic.ProcessComparison(inputResults); // Get comparison data } context.objects[0].GetComponent <Text>().text = inputResults.avgFrameTime.ToString("N4"); // Set average frame time context.objects[1].GetComponent <Text>().text = comparisonData.delta.ToString("N4"); // Set delta }
// Setup the results context object public override void SetupResultsContext(ResultsContext context, ResultsIOData inputData, ResultsIOData inputDataB) { ExampleResults inputResults = (ExampleResults)logic.DeserializeResults(inputData); // Deserialize input and cast to typed results if (TestRunner.Instance) { if (!TestRunner.Instance.isAnalytic) { comparisonData = (ExampleComparison)logic.ProcessComparison(inputResults); // Get comparison data } else { ExampleResults inputResultsB = (ExampleResults)logic.DeserializeResults(inputDataB); // Deserialize input and cast to typed results comparisonData = (ExampleComparison)logic.ProcessComparison(inputResultsB, inputResults); } } else { comparisonData = (ExampleComparison)logic.ProcessComparison(inputResults); // Get comparison data } context.objects[0].GetComponent <Text>().text = inputResults.SomeFloat.ToString(); // Set float context.objects[1].GetComponent <Text>().text = comparisonData.SomeFloatDiff.ToString(); // Set diff }
// Setup the results context entry public abstract void SetupResultsContext(ResultsContext contextObject, ResultsIOData inputData, ResultsIOData inputDataB);