From be479d4b008a29b31e1b7c459aed7c0a0f5a3e22 Mon Sep 17 00:00:00 2001 From: Casper Verhaar Date: Wed, 15 Sep 2021 10:15:55 +0200 Subject: [PATCH] Add collapser for built in Visual Studio profiler --- Cargo.toml | 5 + src/bin/collapse-vsprof.rs | 52 ++++ src/collapse/guess.rs | 6 +- src/collapse/mod.rs | 7 + src/collapse/vsprof.rs | 222 ++++++++++++++++++ tests/collapse-guess.rs | 7 + tests/collapse-vsprof.rs | 124 ++++++++++ .../data/collapse-vsprof/CallTreeSummary.csv | 169 +++++++++++++ tests/data/collapse-vsprof/empty-file.csv | 0 .../data/collapse-vsprof/incorrect-header.csv | 1 + tests/data/collapse-vsprof/invalid-depth.csv | 3 + .../collapse-vsprof/invalid-function-name.csv | 3 + .../invalid-number-of-calls.csv | 3 + .../collapse-vsprof/missing-function-name.csv | 2 + .../results/sample-default.txt | 146 ++++++++++++ .../results/vsprof-default.txt | 130 ++++++++++ 16 files changed, 878 insertions(+), 2 deletions(-) create mode 100644 src/bin/collapse-vsprof.rs create mode 100644 src/collapse/vsprof.rs create mode 100644 tests/collapse-vsprof.rs create mode 100644 tests/data/collapse-vsprof/CallTreeSummary.csv create mode 100644 tests/data/collapse-vsprof/empty-file.csv create mode 100644 tests/data/collapse-vsprof/incorrect-header.csv create mode 100644 tests/data/collapse-vsprof/invalid-depth.csv create mode 100644 tests/data/collapse-vsprof/invalid-function-name.csv create mode 100644 tests/data/collapse-vsprof/invalid-number-of-calls.csv create mode 100644 tests/data/collapse-vsprof/missing-function-name.csv create mode 100644 tests/data/collapse-vsprof/results/sample-default.txt create mode 100644 tests/data/collapse-vsprof/results/vsprof-default.txt diff --git a/Cargo.toml b/Cargo.toml index 86eb4ac9..d1f39d30 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -75,6 +75,11 @@ name = "inferno-collapse-vtune" path = "src/bin/collapse-vtune.rs" required-features = ["cli"] +[[bin]] +name = "inferno-collapse-vsprof" +path = "src/bin/collapse-vsprof.rs" +required-features = ["cli"] + [[bin]] name = "inferno-collapse-guess" path = "src/bin/collapse-guess.rs" diff --git a/src/bin/collapse-vsprof.rs b/src/bin/collapse-vsprof.rs new file mode 100644 index 00000000..71ca67eb --- /dev/null +++ b/src/bin/collapse-vsprof.rs @@ -0,0 +1,52 @@ +use std::io; +use std::path::PathBuf; + +use clap::Parser; +use env_logger::Env; +use inferno::collapse::vsprof::Folder; +use inferno::collapse::Collapse; + +#[derive(Debug, Parser)] +#[clap( + name = "inferno-collapse-vsprof", + about, + after_help = "\ +[1] This processes the call tree summary of the built in Visual Studio profiler" +)] +struct Opt { + // ************* // + // *** FLAGS *** // + // ************* // + /// Silence all log output + #[clap(short = 'q', long = "quiet")] + quiet: bool, + + /// Verbose logging mode (-v, -vv, -vvv) + #[clap(short = 'v', long = "verbose", parse(from_occurrences))] + verbose: usize, + + // ************ // + // *** ARGS *** // + // ************ // + #[structopt(value_name = "PATH")] + /// Call tree summary file from the built in Visual Studio profiler, or STDIN if not specified + infile: Option, +} + +fn main() -> io::Result<()> { + let opt = Opt::parse(); + + // Initialize logger + if !opt.quiet { + env_logger::Builder::from_env(Env::default().default_filter_or(match opt.verbose { + 0 => "warn", + 1 => "info", + 2 => "debug", + _ => "trace", + })) + .format_timestamp(None) + .init(); + } + + Folder::default().collapse_file_to_stdout(opt.infile) +} diff --git a/src/collapse/guess.rs b/src/collapse/guess.rs index c28526e9..0002fea7 100644 --- a/src/collapse/guess.rs +++ b/src/collapse/guess.rs @@ -3,7 +3,7 @@ use std::io::{self, Cursor}; use log::{error, info}; -use crate::collapse::{self, dtrace, perf, sample, vtune, Collapse}; +use crate::collapse::{self, dtrace, perf, sample, vsprof, vtune, Collapse}; const LINES_PER_ITERATION: usize = 10; @@ -69,10 +69,11 @@ impl Collapse for Folder { }; let mut sample = sample::Folder::default(); let mut vtune = vtune::Folder::default(); + let mut vsprof = vsprof::Folder::default(); // Each Collapse impl gets its own flag in this array. // It gets set to true when the impl has been ruled out. - let mut not_applicable = [false; 4]; + let mut not_applicable = [false; 5]; let mut buffer = String::new(); loop { @@ -106,6 +107,7 @@ impl Collapse for Folder { try_collapse_impl!(dtrace, 1); try_collapse_impl!(sample, 2); try_collapse_impl!(vtune, 3); + try_collapse_impl!(vsprof, 4); if eof { break; diff --git a/src/collapse/mod.rs b/src/collapse/mod.rs index f90f363e..850c3d73 100644 --- a/src/collapse/mod.rs +++ b/src/collapse/mod.rs @@ -35,6 +35,13 @@ pub mod sample; /// [crate-level documentation]: ../../index.html pub mod vtune; +/// Stack collapsing for the output of the [Visual Studio built in profiler](https://docs.microsoft.com/en-us/visualstudio/profiling/profiling-feature-tour?view=vs-2019). +/// +/// See the [crate-level documentation] for details. +/// +/// [crate-level documentation]: ../../index.html +pub mod vsprof; + // DEFAULT_NTHREADS is public because we use it in the help text of the binaries, // but it doesn't need to be exposed to library users, hence #[doc(hidden)]. #[doc(hidden)] diff --git a/src/collapse/vsprof.rs b/src/collapse/vsprof.rs new file mode 100644 index 00000000..a59812ef --- /dev/null +++ b/src/collapse/vsprof.rs @@ -0,0 +1,222 @@ +use std::{ + cmp::Ordering, + io::{self, BufRead}, +}; + +use log::warn; + +use crate::collapse::{common::Occurrences, Collapse}; + +static START_LINE: &str = "Level,Function Name,Number of Calls,Elapsed Inclusive Time %,Elapsed Exclusive Time %,Avg Elapsed Inclusive Time,Avg Elapsed Exclusive Time,Module Name,"; + +/// A stack collapser for the output of the Visual Studio built in profiler. +#[derive(Default)] +pub struct Folder { + /// Function entries on the stack in this entry thus far. + stack: Vec<(String, usize)>, +} + +impl Collapse for Folder { + fn collapse(&mut self, mut reader: R, writer: W) -> io::Result<()> + where + R: std::io::BufRead, + W: std::io::Write, + { + // Skip the header + let mut line = Vec::new(); + if reader.read_until(b'\n', &mut line)? == 0 { + warn!("File ended before start of call graph"); + return Ok(()); + }; + + let header = String::from_utf8_lossy(&line).to_string(); + if !line_matches_start_line(header.clone()) { + return invalid_data_error!("Incorrect header:\n{}", header); + } + + // Process the data + let mut occurences = Occurrences::new(1); + loop { + line.clear(); + if reader.read_until(b'\n', &mut line)? == 0 { + break; + } + let l = String::from_utf8_lossy(&line); + let line = l.trim_end(); + if line.is_empty() { + continue; + } else { + self.on_line(line, &mut occurences)?; + } + } + + self.write_stack(&mut occurences); + + // Write the results + occurences.write_and_clear(writer)?; + + // Reset the state + self.stack.clear(); + Ok(()) + } + + fn is_applicable(&mut self, input: &str) -> Option { + let mut input = input.as_bytes(); + let mut line = String::new(); + if let Ok(n) = input.read_line(&mut line) { + if n == 0 { + return Some(false); + } + } else { + return Some(false); + } + + Some(line_matches_start_line(line)) + } +} + +impl Folder { + // Parse lines like: + // Level,Function Name,Number of Calls,... + // 6,"System.String.IsNullOrEmpty(string)",4,0.00,0.00,0.00,0.00,"mscorlib.dll", + fn on_line(&mut self, line: &str, occurences: &mut Occurrences) -> io::Result<()> { + let (depth, remainder) = get_next_number(line)?; + + // Function names are always wrapped in spaces. By trimming the leading double quote, we + // know that the next double quote is the double quote closing the function name. Splitting + // on this double quote, we get the function name and the remainder of the line. + let split = if let Some(remainder) = remainder.strip_prefix('"') { + remainder.split_once('"') + } else { + return invalid_data_error!("Unable to parse function name from line:\n{}", line); + }; + + if let Some((function_name, remainder)) = split { + let (number_of_calls, _) = get_next_number(remainder)?; + + let prev_depth = self.stack.len(); + // There are 3 separate cases to handle regarding the depth: + // 1. prev_depth + 1 == depth -> a new function is called, we only need to + // store the function name and the number of times it is called from the + // outer function + // 2. prev_depth == depth -> the previous function call was a leaf node, so we + // need to save the current stack and replace the top node with our node + // call + // 3. prev_depth > depth -> the previous function call was a leaf node, so we + // need to save the current stack and than we need to pop the top nodes + // until the top node is our parent (i.e. the function which called us) + match prev_depth.cmp(&depth) { + // Case 1 + Ordering::Less => { + self.stack + .push((function_name.to_string(), number_of_calls)); + } + // Case 2 + Ordering::Equal => { + self.write_stack(occurences); + self.stack.pop(); + self.stack + .push((function_name.to_string(), number_of_calls)); + } + // Case 3 + Ordering::Greater => { + // The Visual Studio profiler outputs the number of times a function is called. + // + // Let's say we have a function `A()` which is called 500 times, and which + // calls a function `B()` 300 times. If we didn't do anything special here, + // this would result in `A()` being assigned 800 samples, giving the impression + // that `A()` only calls `B()` less than 50% of the time, while in fact it is + // called more than 50% of the time. + // + // To prevent this from happening, we instead subtract the number of calls from + // the previous node (in this case `B()`) from the current node (in this case + // `A()`. This leaves `A()` with the correct number of 500 samples. + // + // If the previous number of calls is equal to the current number of calls, we + // don't want to write the current top node, because that would duplicate the + // number of samples for the current node. + let mut prev_number_of_calls = 0; + for _ in 0..(prev_depth - depth + 1) { + if prev_number_of_calls != self.stack.last().unwrap().1 { + self.write_stack(occurences); + } + prev_number_of_calls = self.stack.pop().unwrap().1; + + if self.stack.is_empty() { + break; + } + + let last = self.stack.len() - 1; + let number_of_calls = &self.stack[last].1; + if prev_number_of_calls < *number_of_calls { + self.stack[last].1 -= prev_number_of_calls; + } + } + + self.stack + .push((function_name.to_string(), number_of_calls)); + } + } + } else { + return invalid_data_error!("Unable to parse function name from line:\n{}", line); + } + + Ok(()) + } + + // Store the current stack in `occurences` + fn write_stack(&self, occurrences: &mut Occurrences) { + if let Some(nsamples) = self.stack.last().map(|(_, n)| *n) { + if nsamples > 0 { + let functions: Vec<_> = self.stack.iter().cloned().map(|(f, _)| f).collect(); + occurrences.insert(functions.join(";"), nsamples); + } + } + } +} + +/// Gets the number from the start of the line. This can either be a number <1000, in which case the +/// line doesn't contain double quotes, or the number can be >1000, in which case the line does +/// contain double quotes. In both cases `line` may start with a leading comma, which will be +/// ignored. +fn get_next_number(line: &str) -> io::Result<(usize, &str)> { + // Trim the leading comma, if any + let line = line.strip_prefix(',').unwrap_or(line); + + let mut remove_leading_comma = false; + let split = if let Some(line) = line.strip_prefix('"') { + remove_leading_comma = true; + line.split_once('"') + } else { + line.split_once(',') + }; + + if let Some((num, remainder)) = split { + // Remove any thousands separators which may be present + // TODO: If Visual Studio were to output numbers with a `.` as thousands separators, this + // would fail + let num = num.replace(',', ""); + + if let Ok(num) = num.parse::() { + if remove_leading_comma { + // `remainder` still has a leading comma, because the number is >1000. We need to + // remove it so we are consistent regardless of whether the number was wrapped in + // double quotes or not. + if let Some(remainder) = remainder.strip_prefix(',') { + return Ok((num, remainder)); + } + } + + return Ok((num, remainder)); + } + } + + invalid_data_error!("Invalid number in line:\n{}", line) +} + +/// Some files may start with the character (zero width no-break space). This +/// causes the call to `starts_with` to return false, which in this case isn't what we want. +/// As this character has no influence on the rest of the file, we can safely ignore it. +fn line_matches_start_line(line: String) -> bool { + line.trim().trim_start_matches('\u{feff}') == START_LINE +} diff --git a/tests/collapse-guess.rs b/tests/collapse-guess.rs index c545d525..5b5a7adf 100644 --- a/tests/collapse-guess.rs +++ b/tests/collapse-guess.rs @@ -85,6 +85,13 @@ fn collapse_guess_vtune() { test_collapse_guess(test_file, result_file, false).unwrap() } +#[test] +fn collapse_guess_vsprof() { + let test_file = "./tests/data/collapse-vsprof/CallTreeSummary.csv"; + let result_file = "./tests/data/collapse-vsprof/results/vsprof-default.txt"; + test_collapse_guess(test_file, result_file, false).unwrap() +} + #[test] fn collapse_guess_unknown_format_should_log_error() { test_collapse_guess_logs( diff --git a/tests/collapse-vsprof.rs b/tests/collapse-vsprof.rs new file mode 100644 index 00000000..3fa07d7e --- /dev/null +++ b/tests/collapse-vsprof.rs @@ -0,0 +1,124 @@ +mod common; + +use std::fs::File; +use std::io::{self, BufReader, Cursor}; +use std::process::{Command, Stdio}; + +use assert_cmd::prelude::*; +use inferno::collapse::vsprof::Folder; +use log::Level; +use pretty_assertions::assert_eq; +use testing_logger::CapturedLog; + +fn test_collapse_vsprof(test_file: &str, expected_file: &str) -> io::Result<()> { + common::test_collapse(Folder::default(), test_file, expected_file, false) +} + +fn test_collapse_vsprof_error(test_file: &str) -> io::Error { + common::test_collapse_error(Folder::default(), test_file) +} + +fn test_collapse_vsprof_logs(input_file: &str, asserter: F) +where + F: Fn(&Vec), +{ + common::test_collapse_logs(Folder::default(), input_file, asserter); +} + +#[test] +fn collapse_vsprof_default() { + let test_file = "./tests/data/collapse-vsprof/CallTreeSummary.csv"; + let result_file = "./tests/data/collapse-vsprof/results/sample-default.txt"; + test_collapse_vsprof(test_file, result_file).unwrap() +} + +#[test] +fn collapse_vsprof_should_log_warning_for_ending_before_call_graph_start() { + test_collapse_vsprof_logs( + "./tests/data/collapse-vsprof/empty-file.csv", + |captured_logs| { + let nwarnings = captured_logs + .iter() + .filter(|log| { + log.body == "File ended before start of call graph" && log.level == Level::Warn + }) + .count(); + assert_eq!( + nwarnings, 1, + "warning logged {} times, but should be logged exactly once", + nwarnings + ); + }, + ); +} + +#[test] +fn collapse_vsprof_should_return_error_for_incorrect_header() { + let test_file = "./tests/data/collapse-vsprof/incorrect-header.csv"; + let error = test_collapse_vsprof_error(test_file); + assert_eq!(error.kind(), io::ErrorKind::InvalidData); + assert!(error.to_string().starts_with("Incorrect header:")); +} + +#[test] +fn collapse_vsprof_should_return_error_for_missing_function_name() { + let test_file = "./tests/data/collapse-vsprof/missing-function-name.csv"; + let error = test_collapse_vsprof_error(test_file); + assert_eq!(error.kind(), io::ErrorKind::InvalidData); + assert!(error.to_string().starts_with("Invalid number in line:")); +} + +#[test] +fn collapse_vsprof_should_return_error_for_invalid_function_name() { + let test_file = "./tests/data/collapse-vsprof/invalid-function-name.csv"; + let error = test_collapse_vsprof_error(test_file); + assert_eq!(error.kind(), io::ErrorKind::InvalidData); + assert!(error + .to_string() + .starts_with("Unable to parse function name from line:")); +} + +#[test] +fn collapse_vsprof_should_return_error_for_invalid_depth() { + let test_file = "./tests/data/collapse-vsprof/invalid-depth.csv"; + let error = test_collapse_vsprof_error(test_file); + assert_eq!(error.kind(), io::ErrorKind::InvalidData); + assert!(error.to_string().starts_with("Invalid number in line:")); +} + +#[test] +fn collapse_vsprof_should_return_error_for_invalid_number_of_calls() { + let test_file = "./tests/data/collapse-vsprof/invalid-number-of-calls.csv"; + let error = test_collapse_vsprof_error(test_file); + assert_eq!(error.kind(), io::ErrorKind::InvalidData); + assert!(error.to_string().starts_with("Invalid number in line:")); +} + +#[test] +fn collapse_vsprof_cli() { + let input_file = "./tests/data/collapse-vsprof/CallTreeSummary.csv"; + let expected_file = "./tests/data/collapse-vsprof/results/sample-default.txt"; + + // Test with file passed in + let output = Command::cargo_bin("inferno-collapse-vsprof") + .unwrap() + .arg(input_file) + .output() + .expect("failed to execute process"); + let expected = BufReader::new(File::open(expected_file).unwrap()); + common::compare_results(Cursor::new(output.stdout), expected, expected_file, false); + + // Test with STDIN + let mut child = Command::cargo_bin("inferno-collapse-vsprof") + .unwrap() + .stdin(Stdio::piped()) + .stdout(Stdio::piped()) + .spawn() + .expect("Failed to spawn child process"); + let mut input = BufReader::new(File::open(input_file).unwrap()); + let stdin = child.stdin.as_mut().expect("Failed to open stdin"); + io::copy(&mut input, stdin).unwrap(); + let output = child.wait_with_output().expect("Failed to read stdout"); + let expected = BufReader::new(File::open(expected_file).unwrap()); + common::compare_results(Cursor::new(output.stdout), expected, expected_file, false); +} diff --git a/tests/data/collapse-vsprof/CallTreeSummary.csv b/tests/data/collapse-vsprof/CallTreeSummary.csv new file mode 100644 index 00000000..13e98287 --- /dev/null +++ b/tests/data/collapse-vsprof/CallTreeSummary.csv @@ -0,0 +1,169 @@ +Level,Function Name,Number of Calls,Elapsed Inclusive Time %,Elapsed Exclusive Time %,Avg Elapsed Inclusive Time,Avg Elapsed Exclusive Time,Module Name, +0,"Raytracer.exe",0,100.00,0.00,0.00,0.00,"", +1,"Raytracer.Raytracer.Tracer.b__5_0(int32)",471,91.25,18.39,401.92,81.02,"Raytracer.exe", +2,"Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&)","2,893,824",54.37,4.21,0.04,0.00,"Raytracer.exe", +3,"Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&)","1,929,216",30.00,16.69,0.03,0.02,"Raytracer.exe", +4,"Raytracer.Ray.get_Direction()","3,575,792",2.84,2.84,0.00,0.00,"Raytracer.exe", +4,"OpenTK.Vector3.Dot(valuetype OpenTK.Vector3,valuetype OpenTK.Vector3)","3,575,792",2.32,2.32,0.00,0.00,"OpenTK.dll", +4,"OpenTK.Vector3.op_Subtraction(valuetype OpenTK.Vector3,valuetype OpenTK.Vector3)","3,717,112",2.21,2.21,0.00,0.00,"OpenTK.dll", +4,"OpenTK.Vector3.get_Length()","1,929,216",1.85,1.85,0.00,0.00,"OpenTK.dll", +4,"Raytracer.Ray.get_Origin()","1,929,216",1.43,1.43,0.00,0.00,"Raytracer.exe", +4,"OpenTK.Vector3.op_Multiply(float32,valuetype OpenTK.Vector3)","1,787,896",1.28,1.28,0.00,0.00,"OpenTK.dll", +4,"System.Math.Sqrt(float64)","462,142",0.54,0.54,0.00,0.00,"mscorlib.dll", +4,"Raytracer.Ray.set_Distance(float32)","315,032",0.53,0.53,0.00,0.00,"Raytracer.exe", +4,"Raytracer.Ray.get_Distance()","462,142",0.32,0.32,0.00,0.00,"Raytracer.exe", +3,"Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&)","964,608",20.16,12.65,0.04,0.03,"Raytracer.exe", +4,"Raytracer.Ray.get_Direction()","3,858,432",2.27,2.27,0.00,0.00,"Raytracer.exe", +4,"Raytracer.Ray.get_Origin()","3,858,432",1.99,1.99,0.00,0.00,"Raytracer.exe", +4,"System.Math.Min(float32,float32)","2,893,824",1.78,1.78,0.00,0.00,"mscorlib.dll", +4,"System.Math.Max(float32,float32)","2,893,824",1.46,1.46,0.00,0.00,"mscorlib.dll", +4,"Raytracer.Ray.set_Distance(float32)","127,782",0.00,0.00,0.00,0.00,"Raytracer.exe", +2,"Raytracer.Raytracer.Tracer.CalcLightAttenuation(class Raytracer.Lights.Light,class Raytracer.Ray)","573,749",6.42,2.49,0.02,0.01,"Raytracer.exe", +3,"Raytracer.Ray.get_Distance()","1,147,498",1.38,1.38,0.00,0.00,"Raytracer.exe", +3,"Raytracer.Lights.Light.get_Intensity()","1,147,498",1.23,1.23,0.00,0.00,"Raytracer.exe", +3,"Raytracer.Helpers.RaytracerExtensions.Squared(float32)","573,749",0.69,0.69,0.00,0.00,"Raytracer.exe", +3,"System.Math.Pow(float64,float64)","573,749",0.63,0.63,0.00,0.00,"mscorlib.dll", +2,"System.Collections.IEnumerator.MoveNext()","5,064,192",4.09,4.09,0.00,0.00,"mscorlib.dll", +2,"System.Collections.Generic.IEnumerator`1.get_Current()","2,893,824",1.52,1.52,0.00,0.00,"mscorlib.dll", +2,"0x0A00005F","1,205,760",1.43,1.43,0.00,0.00,"Raytracer.exe", +2,"Raytracer.Lights.Light.get_Position()","964,608",1.02,1.02,0.00,0.00,"Raytracer.exe", +2,"System.IDisposable.Dispose()","1,205,760",1.02,1.02,0.00,0.00,"mscorlib.dll", +2,"OpenTK.Vector3..ctor(float32,float32,float32)","964,608",0.76,0.76,0.00,0.00,"OpenTK.dll", +2,"System.Collections.Generic.IEnumerator`1.get_Current()","964,608",0.72,0.72,0.00,0.00,"mscorlib.dll", +2,"Raytracer.Scene.Primitives()","964,608",0.57,0.57,0.00,0.00,"Raytracer.exe", +2,"Raytracer.Lights.Light.get_Color()","573,749",0.41,0.41,0.00,0.00,"Raytracer.exe", +2,"System.Collections.Generic.IEnumerable`1.GetEnumerator()","964,608",0.38,0.38,0.00,0.00,"mscorlib.dll", +2,"Raytracer.Scene.get_Width()","482,775",0.08,0.08,0.00,0.00,"Raytracer.exe", +2,"Raytracer.Scene.Lights()","241,152",0.06,0.06,0.00,0.00,"Raytracer.exe", +2,"System.Collections.Generic.IEnumerable`1.GetEnumerator()","241,152",0.01,0.01,0.00,0.00,"mscorlib.dll", +2,"Raytracer.Scene.get_PrimitivesColor()","35,330",0.00,0.00,0.00,0.00,"Raytracer.exe", +1,"Raytracer.OpenTkApp.Main()",1,8.75,0.69,"18,160.51","1,426.50","Raytracer.exe", +2,"OpenTK.GameWindow.Run(float64,float64)",1,8.07,0.13,"16,734.01",267.05,"OpenTK.dll", +3,"Raytracer.OpenTkApp.OnLoad(class System.EventArgs)",1,6.92,0.00,"14,350.14",0.54,"Raytracer.exe", +4,"Raytracer.TracerApplication.Init()",1,6.88,0.00,"14,279.50",1.18,"Raytracer.exe", +5,"Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors)",1,6.88,0.00,"14,274.80",0.66,"Raytracer.exe", +6,"System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1)",1,6.85,0.08,"14,213.54",158.90,"mscorlib.dll", +7,"Raytracer.Raytracer.Tracer.b__5_0(int32)",41,6.77,1.12,342.80,56.85,"Raytracer.exe", +8,"Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&)","251,904",4.54,0.10,0.04,0.00,"Raytracer.exe", +9,"Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&)","167,936",2.28,0.88,0.03,0.01,"Raytracer.exe", +10,"OpenTK.Vector3.op_Subtraction(valuetype OpenTK.Vector3,valuetype OpenTK.Vector3)","335,872",0.45,0.45,0.00,0.00,"OpenTK.dll", +10,"Raytracer.Ray.get_Direction()","335,872",0.29,0.29,0.00,0.00,"Raytracer.exe", +10,"Raytracer.Ray.get_Origin()","167,936",0.20,0.20,0.00,0.00,"Raytracer.exe", +10,"OpenTK.Vector3.Dot(valuetype OpenTK.Vector3,valuetype OpenTK.Vector3)","335,872",0.15,0.15,0.00,0.00,"OpenTK.dll", +10,"OpenTK.Vector3.get_Length()","167,936",0.08,0.08,0.00,0.00,"OpenTK.dll", +10,"System.Math.Sqrt(float64)","40,430",0.08,0.08,0.00,0.00,"mscorlib.dll", +10,"Raytracer.Ray.get_Distance()","40,430",0.07,0.07,0.00,0.00,"Raytracer.exe", +10,"OpenTK.Vector3.op_Multiply(float32,valuetype OpenTK.Vector3)","167,936",0.07,0.07,0.00,0.00,"OpenTK.dll", +10,"Raytracer.Ray.set_Distance(float32)","31,034",0.00,0.00,0.00,0.00,"Raytracer.exe", +9,"Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&)","83,968",2.16,1.40,0.05,0.03,"Raytracer.exe", +10,"Raytracer.Ray.get_Origin()","335,872",0.26,0.26,0.00,0.00,"Raytracer.exe", +10,"System.Math.Max(float32,float32)","251,904",0.22,0.22,0.00,0.00,"mscorlib.dll", +10,"Raytracer.Ray.get_Direction()","335,872",0.15,0.15,0.00,0.00,"Raytracer.exe", +10,"System.Math.Min(float32,float32)","251,904",0.13,0.13,0.00,0.00,"mscorlib.dll", +10,"Raytracer.Ray.set_Distance(float32)","5,882",0.00,0.00,0.00,0.00,"Raytracer.exe", +8,"System.Collections.IEnumerator.MoveNext()","440,832",0.36,0.36,0.00,0.00,"mscorlib.dll", +8,"0x0A00005F","104,960",0.15,0.15,0.00,0.00,"Raytracer.exe", +8,"Raytracer.Scene.Primitives()","83,968",0.13,0.13,0.00,0.00,"Raytracer.exe", +8,"Raytracer.Lights.Light.get_Position()","83,968",0.12,0.12,0.00,0.00,"Raytracer.exe", +8,"Raytracer.Raytracer.Tracer.CalcLightAttenuation(class Raytracer.Lights.Light,class Raytracer.Ray)","47,052",0.08,0.07,0.00,0.00,"Raytracer.exe", +9,"Raytracer.Ray.get_Distance()","94,104",0.00,0.00,0.00,0.00,"Raytracer.exe", +9,"Raytracer.Lights.Light.get_Intensity()","94,104",0.00,0.00,0.00,0.00,"Raytracer.exe", +9,"System.Math.Pow(float64,float64)","47,052",0.00,0.00,0.00,0.00,"mscorlib.dll", +9,"Raytracer.Helpers.RaytracerExtensions.Squared(float32)","47,052",0.00,0.00,0.00,0.00,"Raytracer.exe", +8,"System.Collections.Generic.IEnumerator`1.get_Current()","83,968",0.07,0.07,0.00,0.00,"mscorlib.dll", +8,"System.Collections.Generic.IEnumerator`1.get_Current()","251,904",0.07,0.07,0.00,0.00,"mscorlib.dll", +8,"System.IDisposable.Dispose()","104,960",0.07,0.07,0.00,0.00,"mscorlib.dll", +8,"System.Collections.Generic.IEnumerable`1.GetEnumerator()","20,992",0.06,0.06,0.01,0.01,"mscorlib.dll", +8,"System.Collections.Generic.IEnumerable`1.GetEnumerator()","83,968",0.00,0.00,0.00,0.00,"mscorlib.dll", +8,"OpenTK.Vector3..ctor(float32,float32,float32)","83,968",0.00,0.00,0.00,0.00,"OpenTK.dll", +8,"Raytracer.Lights.Light.get_Color()","47,052",0.00,0.00,0.00,0.00,"Raytracer.exe", +8,"Raytracer.Scene.get_Width()","42,025",0.00,0.00,0.00,0.00,"Raytracer.exe", +8,"Raytracer.Scene.Lights()","20,992",0.00,0.00,0.00,0.00,"Raytracer.exe", +6,"Raytracer.Raytracer.Tracer.RenderFrameBuffer()",1,0.03,0.01,59.22,30.29,"Raytracer.exe", +7,"Raytracer.Helpers.RaytracerHelper.ConvertColorToInt(valuetype OpenTK.Graphics.Color4)","262,144",0.01,0.01,0.00,0.00,"Raytracer.exe", +7,"Raytracer.Surface.get_Pixels()","262,144",0.01,0.01,0.00,0.00,"Raytracer.exe", +6,"Raytracer.Scene.SetLightColors(valuetype Raytracer.Lights.LightColors)",1,0.00,0.00,1.38,1.38,"Raytracer.exe", +7,"Raytracer.Scene.SetLightsColors(valuetype OpenTK.Graphics.Color4[])",1,0.00,0.00,0.00,0.00,"Raytracer.exe", +8,"System.Collections.Generic.List`1.get_Item(int32)",4,0.00,0.00,0.00,0.00,"mscorlib.dll", +8,"Raytracer.Lights.Light.set_Color(valuetype OpenTK.Graphics.Color4)",4,0.00,0.00,0.00,0.00,"Raytracer.exe", +8,"System.Collections.Generic.List`1.get_Count()",1,0.00,0.00,0.00,0.00,"mscorlib.dll", +7,"OpenTK.Graphics.Color4.get_Blue()",1,0.00,0.00,0.00,0.00,"OpenTK.dll", +7,"OpenTK.Graphics.Color4.get_Red()",1,0.00,0.00,0.00,0.00,"OpenTK.dll", +7,"OpenTK.Graphics.Color4.get_Lime()",1,0.00,0.00,0.00,0.00,"OpenTK.dll", +7,"OpenTK.Graphics.Color4.get_Purple()",1,0.00,0.00,0.00,0.00,"OpenTK.dll", +6,"System.Action`1..ctor(object,native int)",1,0.00,0.00,0.00,0.00,"mscorlib.dll", +6,"Raytracer.Scene.get_Height()",1,0.00,0.00,0.00,0.00,"Raytracer.exe", +5,"Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface)",1,0.00,0.00,2.68,2.33,"Raytracer.exe", +6,"Raytracer.Raytracer.Tracer.SetupScene()",1,0.00,0.00,0.28,0.24,"Raytracer.exe", +7,"OpenTK.Vector3..ctor(float32,float32,float32)",8,0.00,0.00,0.00,0.00,"OpenTK.dll", +7,"Raytracer.Scene.AddPrimitive(class Raytracer.Primitives.IPrimitive)",3,0.00,0.00,0.00,0.00,"Raytracer.exe", +7,"Raytracer.Scene.AddLight(class Raytracer.Lights.Light)",4,0.00,0.00,0.00,0.00,"Raytracer.exe", +7,"Raytracer.Lights.Light..ctor(valuetype OpenTK.Vector3,float32)",1,0.00,0.00,0.00,0.00,"Raytracer.exe", +8,"System.Object..ctor()",1,0.00,0.00,0.00,0.00,"mscorlib.dll", +7,"Raytracer.Helpers.RaytracerExtensions.Squared(float32)",2,0.00,0.00,0.00,0.00,"Raytracer.exe", +7,"Raytracer.Scene.get_Width()",2,0.00,0.00,0.00,0.00,"Raytracer.exe", +7,"Raytracer.Scene.get_Height()",2,0.00,0.00,0.00,0.00,"Raytracer.exe", +6,"Raytracer.Scene..ctor(int32,int32)",1,0.00,0.00,0.06,0.00,"Raytracer.exe", +7,"OpenTK.Graphics.Color4.get_Black()",1,0.00,0.00,0.06,0.06,"OpenTK.dll", +7,"System.Collections.Generic.List`1..ctor()",1,0.00,0.00,0.00,0.00,"mscorlib.dll", +7,"System.Collections.Generic.List`1..ctor()",1,0.00,0.00,0.00,0.00,"mscorlib.dll", +7,"System.Object..ctor()",1,0.00,0.00,0.00,0.00,"mscorlib.dll", +6,"System.Object..ctor()",1,0.00,0.00,0.00,0.00,"mscorlib.dll", +6,"Raytracer.Surface.get_Height()",2,0.00,0.00,0.00,0.00,"Raytracer.exe", +6,"Raytracer.Surface.get_Width()",2,0.00,0.00,0.00,0.00,"Raytracer.exe", +5,"System.Console.WriteLine(string)",3,0.00,0.00,0.25,0.25,"mscorlib.dll", +5,"System.Console.Write(string)",1,0.00,0.00,0.09,0.09,"mscorlib.dll", +4,"Raytracer.Surface.GenTexture()",1,0.02,0.00,37.22,1.46,"Raytracer.exe", +5,"OpenTK.Graphics.OpenGL.GL.TexImage2D(valuetype OpenTK.Graphics.OpenGL.TextureTarget,int32,valuetype OpenTK.Graphics.OpenGL.PixelInternalFormat,int32,int32,int32,valuetype OpenTK.Graphics.OpenGL.PixelFormat,valuetype OpenTK.Graphics.OpenGL.PixelType,!!0[])",1,0.02,0.02,34.54,34.54,"OpenTK.dll", +5,"OpenTK.Graphics.OpenGL.GL.GenTexture()",1,0.00,0.00,0.65,0.65,"OpenTK.dll", +5,"OpenTK.Graphics.OpenGL.GL.BindTexture(valuetype OpenTK.Graphics.OpenGL.TextureTarget,int32)",1,0.00,0.00,0.45,0.45,"OpenTK.dll", +5,"OpenTK.Graphics.OpenGL.GL.TexParameter(valuetype OpenTK.Graphics.OpenGL.TextureTarget,valuetype OpenTK.Graphics.OpenGL.TextureParameterName,int32)",2,0.00,0.00,0.06,0.06,"OpenTK.dll", +4,"OpenTK.NativeWindow.set_WindowBorder(valuetype OpenTK.WindowBorder)",1,0.01,0.01,24.14,24.14,"OpenTK.dll", +4,"OpenTK.NativeWindow.set_ClientSize(valuetype System.Drawing.Size)",1,0.00,0.00,4.93,4.93,"OpenTK.dll", +4,"OpenTK.NativeWindow.set_Title(string)",1,0.00,0.00,2.51,2.51,"OpenTK.dll", +4,"OpenTK.Graphics.OpenGL.GL.Enable(valuetype OpenTK.Graphics.OpenGL.EnableCap)",1,0.00,0.00,0.36,0.36,"OpenTK.dll", +4,"OpenTK.NativeWindow.get_Width()",1,0.00,0.00,0.28,0.28,"OpenTK.dll", +4,"Raytracer.Surface..ctor(int32,int32)",1,0.00,0.00,0.27,0.21,"Raytracer.exe", +5,"System.Object..ctor()",1,0.00,0.00,0.07,0.07,"mscorlib.dll", +4,"OpenTK.Graphics.OpenGL.GL.ClearColor(float32,float32,float32,float32)",1,0.00,0.00,0.19,0.19,"OpenTK.dll", +4,"OpenTK.Graphics.OpenGL.GL.Disable(valuetype OpenTK.Graphics.OpenGL.EnableCap)",1,0.00,0.00,0.07,0.07,"OpenTK.dll", +4,"OpenTK.NativeWindow.get_Height()",1,0.00,0.00,0.06,0.06,"OpenTK.dll", +4,"OpenTK.Graphics.OpenGL.GL.Hint(valuetype OpenTK.Graphics.OpenGL.HintTarget,valuetype OpenTK.Graphics.OpenGL.HintMode)",1,0.00,0.00,0.06,0.06,"OpenTK.dll", +4,"Raytracer.TracerApplication.set_Screen(class Raytracer.Surface)",1,0.00,0.00,0.00,0.00,"Raytracer.exe", +4,"System.Drawing.Size..ctor(int32,int32)",1,0.00,0.00,0.00,0.00,"System.Drawing.dll", +4,"Raytracer.TracerApplication.get_Screen()",1,0.00,0.00,0.00,0.00,"Raytracer.exe", +3,"Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs)",118,1.00,0.00,17.54,0.00,"Raytracer.exe", +4,"OpenTK.GameWindow.SwapBuffers()",118,0.86,0.86,15.14,15.14,"OpenTK.dll", +4,"OpenTK.Graphics.OpenGL.GL.Begin(valuetype OpenTK.Graphics.OpenGL.PrimitiveType)",118,0.12,0.12,2.04,2.04,"OpenTK.dll", +4,"OpenTK.Graphics.OpenGL.GL.TexImage2D(valuetype OpenTK.Graphics.OpenGL.TextureTarget,int32,valuetype OpenTK.Graphics.OpenGL.PixelInternalFormat,int32,int32,int32,valuetype OpenTK.Graphics.OpenGL.PixelFormat,valuetype OpenTK.Graphics.OpenGL.PixelType,!!0[])",118,0.02,0.02,0.35,0.35,"OpenTK.dll", +4,"OpenTK.Graphics.OpenGL.GL.TexCoord2(float32,float32)",472,0.00,0.00,0.00,0.00,"OpenTK.dll", +4,"OpenTK.Graphics.OpenGL.GL.BindTexture(valuetype OpenTK.Graphics.OpenGL.TextureTarget,int32)",118,0.00,0.00,0.00,0.00,"OpenTK.dll", +4,"OpenTK.Graphics.OpenGL.GL.Vertex2(float32,float32)",472,0.00,0.00,0.00,0.00,"OpenTK.dll", +4,"OpenTK.Graphics.OpenGL.GL.End()",118,0.00,0.00,0.00,0.00,"OpenTK.dll", +4,"Raytracer.TracerApplication.get_Screen()",354,0.00,0.00,0.00,0.00,"Raytracer.exe", +4,"Raytracer.TracerApplication.Tick()",118,0.00,0.00,0.00,0.00,"Raytracer.exe", +4,"Raytracer.Surface.get_Width()",118,0.00,0.00,0.00,0.00,"Raytracer.exe", +4,"Raytracer.Surface.get_Pixels()",118,0.00,0.00,0.00,0.00,"Raytracer.exe", +4,"Raytracer.Surface.get_Height()",118,0.00,0.00,0.00,0.00,"Raytracer.exe", +3,"Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs)",61,0.02,0.00,0.76,0.00,"Raytracer.exe", +4,"OpenTK.Input.Keyboard.GetState()",61,0.02,0.02,0.75,0.75,"OpenTK.dll", +4,"OpenTK.Input.KeyboardState.get_Item(valuetype OpenTK.Input.Key)",366,0.00,0.00,0.00,0.00,"OpenTK.dll", +4,"Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs)",2,0.00,0.00,0.00,0.00,"Raytracer.exe", +5,"Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs)",2,0.00,0.00,0.00,0.00,"Raytracer.exe", +6,"Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs)",2,0.00,0.00,0.00,0.00,"Raytracer.exe", +7,"OpenTK.Input.KeyboardState.get_Item(valuetype OpenTK.Input.Key)",12,0.00,0.00,0.00,0.00,"OpenTK.dll", +7,"OpenTK.Input.Keyboard.GetState()",2,0.00,0.00,0.00,0.00,"OpenTK.dll", +6,"OpenTK.Input.Keyboard.GetState()",2,0.00,0.00,0.00,0.00,"OpenTK.dll", +6,"OpenTK.Input.KeyboardState.get_Item(valuetype OpenTK.Input.Key)",12,0.00,0.00,0.00,0.00,"OpenTK.dll", +5,"OpenTK.Input.Keyboard.GetState()",2,0.00,0.00,0.00,0.00,"OpenTK.dll", +5,"OpenTK.Input.KeyboardState.get_Item(valuetype OpenTK.Input.Key)",12,0.00,0.00,0.00,0.00,"OpenTK.dll", +3,"Raytracer.OpenTkApp.OnResize(class System.EventArgs)",1,0.00,0.00,1.18,0.00,"Raytracer.exe", +4,"OpenTK.Graphics.OpenGL.GL.Ortho(float64,float64,float64,float64,float64,float64)",1,0.00,0.00,1.01,1.01,"OpenTK.dll", +4,"OpenTK.Graphics.OpenGL.GL.Viewport(int32,int32,int32,int32)",1,0.00,0.00,0.07,0.07,"OpenTK.dll", +4,"OpenTK.Graphics.OpenGL.GL.MatrixMode(valuetype OpenTK.Graphics.OpenGL.MatrixMode)",1,0.00,0.00,0.06,0.06,"OpenTK.dll", +4,"OpenTK.Graphics.OpenGL.GL.LoadIdentity()",1,0.00,0.00,0.05,0.05,"OpenTK.dll", +4,"OpenTK.NativeWindow.get_Width()",1,0.00,0.00,0.00,0.00,"OpenTK.dll", +4,"OpenTK.NativeWindow.get_Height()",1,0.00,0.00,0.00,0.00,"OpenTK.dll", +3,"Raytracer.OpenTkApp.OnUnload(class System.EventArgs)",1,0.00,0.00,0.14,0.00,"Raytracer.exe", +4,"OpenTK.Graphics.OpenGL.GL.DeleteTextures(int32,int32&)",1,0.00,0.00,0.14,0.14,"OpenTK.dll", +4,"System.Environment.Exit(int32)",1,0.00,0.00,0.00,0.00,"mscorlib.dll", diff --git a/tests/data/collapse-vsprof/empty-file.csv b/tests/data/collapse-vsprof/empty-file.csv new file mode 100644 index 00000000..e69de29b diff --git a/tests/data/collapse-vsprof/incorrect-header.csv b/tests/data/collapse-vsprof/incorrect-header.csv new file mode 100644 index 00000000..282b2159 --- /dev/null +++ b/tests/data/collapse-vsprof/incorrect-header.csv @@ -0,0 +1 @@ +This is not a correct header diff --git a/tests/data/collapse-vsprof/invalid-depth.csv b/tests/data/collapse-vsprof/invalid-depth.csv new file mode 100644 index 00000000..b892cba5 --- /dev/null +++ b/tests/data/collapse-vsprof/invalid-depth.csv @@ -0,0 +1,3 @@ +Level,Function Name,Number of Calls,Elapsed Inclusive Time %,Elapsed Exclusive Time %,Avg Elapsed Inclusive Time,Avg Elapsed Exclusive Time,Module Name, +0,"Raytracer.exe",0,100.00,0.00,0.00,0.00,"", +x,"Raytracer.Raytracer.Tracer.b__5_0(int32)",471,91.25,18.39,401.92,81.02,"Raytracer.exe", diff --git a/tests/data/collapse-vsprof/invalid-function-name.csv b/tests/data/collapse-vsprof/invalid-function-name.csv new file mode 100644 index 00000000..93d8bc4f --- /dev/null +++ b/tests/data/collapse-vsprof/invalid-function-name.csv @@ -0,0 +1,3 @@ +Level,Function Name,Number of Calls,Elapsed Inclusive Time %,Elapsed Exclusive Time %,Avg Elapsed Inclusive Time,Avg Elapsed Exclusive Time,Module Name, +0,"Raytracer.exe",0,100.00,0.00,0.00,0.00,"", +1,"Raytracer.Raytracer.Tracer.b__5_0(int32) diff --git a/tests/data/collapse-vsprof/invalid-number-of-calls.csv b/tests/data/collapse-vsprof/invalid-number-of-calls.csv new file mode 100644 index 00000000..9bc3ffd2 --- /dev/null +++ b/tests/data/collapse-vsprof/invalid-number-of-calls.csv @@ -0,0 +1,3 @@ +Level,Function Name,Number of Calls,Elapsed Inclusive Time %,Elapsed Exclusive Time %,Avg Elapsed Inclusive Time,Avg Elapsed Exclusive Time,Module Name, +0,"Raytracer.exe",0,100.00,0.00,0.00,0.00,"", +1,"Raytracer.Raytracer.Tracer.b__5_0(int32)","4,718.25",91.25,18.39,401.92,81.02,"Raytracer.exe", diff --git a/tests/data/collapse-vsprof/missing-function-name.csv b/tests/data/collapse-vsprof/missing-function-name.csv new file mode 100644 index 00000000..4bf9018d --- /dev/null +++ b/tests/data/collapse-vsprof/missing-function-name.csv @@ -0,0 +1,2 @@ +Level,Function Name,Number of Calls,Elapsed Inclusive Time %,Elapsed Exclusive Time %,Avg Elapsed Inclusive Time,Avg Elapsed Exclusive Time,Module Name, +0 diff --git a/tests/data/collapse-vsprof/results/sample-default.txt b/tests/data/collapse-vsprof/results/sample-default.txt new file mode 100644 index 00000000..9e537a24 --- /dev/null +++ b/tests/data/collapse-vsprof/results/sample-default.txt @@ -0,0 +1,146 @@ +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);OpenTK.Graphics.OpenGL.GL.ClearColor(float32,float32,float32,float32) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);OpenTK.Graphics.OpenGL.GL.Disable(valuetype OpenTK.Graphics.OpenGL.EnableCap) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);OpenTK.Graphics.OpenGL.GL.Enable(valuetype OpenTK.Graphics.OpenGL.EnableCap) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);OpenTK.Graphics.OpenGL.GL.Hint(valuetype OpenTK.Graphics.OpenGL.HintTarget,valuetype OpenTK.Graphics.OpenGL.HintMode) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);OpenTK.NativeWindow.get_Height() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);OpenTK.NativeWindow.get_Width() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);OpenTK.NativeWindow.set_ClientSize(valuetype System.Drawing.Size) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);OpenTK.NativeWindow.set_Title(string) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);OpenTK.NativeWindow.set_WindowBorder(valuetype OpenTK.WindowBorder) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.Surface..ctor(int32,int32);System.Object..ctor() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.Surface.GenTexture() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.Surface.GenTexture();OpenTK.Graphics.OpenGL.GL.BindTexture(valuetype OpenTK.Graphics.OpenGL.TextureTarget,int32) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.Surface.GenTexture();OpenTK.Graphics.OpenGL.GL.GenTexture() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.Surface.GenTexture();OpenTK.Graphics.OpenGL.GL.TexImage2D(valuetype OpenTK.Graphics.OpenGL.TextureTarget,int32,valuetype OpenTK.Graphics.OpenGL.PixelInternalFormat,int32,int32,int32,valuetype OpenTK.Graphics.OpenGL.PixelFormat,valuetype OpenTK.Graphics.OpenGL.PixelType,!!0[]) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.Surface.GenTexture();OpenTK.Graphics.OpenGL.GL.TexParameter(valuetype OpenTK.Graphics.OpenGL.TextureTarget,valuetype OpenTK.Graphics.OpenGL.TextureParameterName,int32) 2 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Raytracer.Tracer.SetupScene() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Raytracer.Tracer.SetupScene();OpenTK.Vector3..ctor(float32,float32,float32) 8 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Raytracer.Tracer.SetupScene();Raytracer.Helpers.RaytracerExtensions.Squared(float32) 2 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Raytracer.Tracer.SetupScene();Raytracer.Lights.Light..ctor(valuetype OpenTK.Vector3,float32);System.Object..ctor() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Raytracer.Tracer.SetupScene();Raytracer.Scene.AddLight(class Raytracer.Lights.Light) 4 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Raytracer.Tracer.SetupScene();Raytracer.Scene.AddPrimitive(class Raytracer.Primitives.IPrimitive) 3 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Raytracer.Tracer.SetupScene();Raytracer.Scene.get_Height() 2 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Raytracer.Tracer.SetupScene();Raytracer.Scene.get_Width() 2 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Scene..ctor(int32,int32);OpenTK.Graphics.Color4.get_Black() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Scene..ctor(int32,int32);System.Collections.Generic.List`1..ctor() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Scene..ctor(int32,int32);System.Object..ctor() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Surface.get_Height() 2 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Surface.get_Width() 2 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);System.Object..ctor() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);Raytracer.Raytracer.Tracer.RenderFrameBuffer() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);Raytracer.Raytracer.Tracer.RenderFrameBuffer();Raytracer.Helpers.RaytracerHelper.ConvertColorToInt(valuetype OpenTK.Graphics.Color4) 262144 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);Raytracer.Raytracer.Tracer.RenderFrameBuffer();Raytracer.Surface.get_Pixels() 262144 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);Raytracer.Scene.SetLightColors(valuetype Raytracer.Lights.LightColors);OpenTK.Graphics.Color4.get_Blue() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);Raytracer.Scene.SetLightColors(valuetype Raytracer.Lights.LightColors);OpenTK.Graphics.Color4.get_Lime() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);Raytracer.Scene.SetLightColors(valuetype Raytracer.Lights.LightColors);OpenTK.Graphics.Color4.get_Purple() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);Raytracer.Scene.SetLightColors(valuetype Raytracer.Lights.LightColors);OpenTK.Graphics.Color4.get_Red() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);Raytracer.Scene.SetLightColors(valuetype Raytracer.Lights.LightColors);Raytracer.Scene.SetLightsColors(valuetype OpenTK.Graphics.Color4[]);Raytracer.Lights.Light.set_Color(valuetype OpenTK.Graphics.Color4) 4 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);Raytracer.Scene.SetLightColors(valuetype Raytracer.Lights.LightColors);Raytracer.Scene.SetLightsColors(valuetype OpenTK.Graphics.Color4[]);System.Collections.Generic.List`1.get_Count() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);Raytracer.Scene.SetLightColors(valuetype Raytracer.Lights.LightColors);Raytracer.Scene.SetLightsColors(valuetype OpenTK.Graphics.Color4[]);System.Collections.Generic.List`1.get_Item(int32) 4 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);Raytracer.Scene.get_Height() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Action`1..ctor(object,native int) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32) 41 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);0x0A00005F 104960 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);OpenTK.Vector3..ctor(float32,float32,float32) 83968 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Lights.Light.get_Color() 47052 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Lights.Light.get_Position() 83968 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&) 36916 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&) 78086 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.get_Direction() 335872 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.get_Origin() 335872 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.set_Distance(float32) 5882 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);System.Math.Max(float32,float32) 251904 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);System.Math.Min(float32,float32) 251904 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&) 136902 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);OpenTK.Vector3.Dot(valuetype OpenTK.Vector3,valuetype OpenTK.Vector3) 335872 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);OpenTK.Vector3.get_Length() 167936 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);OpenTK.Vector3.op_Multiply(float32,valuetype OpenTK.Vector3) 167936 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);OpenTK.Vector3.op_Subtraction(valuetype OpenTK.Vector3,valuetype OpenTK.Vector3) 335872 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.get_Direction() 335872 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.get_Distance() 40430 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.get_Origin() 167936 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.set_Distance(float32) 31034 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);System.Math.Sqrt(float64) 40430 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Raytracer.Tracer.CalcLightAttenuation(class Raytracer.Lights.Light,class Raytracer.Ray);Raytracer.Helpers.RaytracerExtensions.Squared(float32) 47052 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Raytracer.Tracer.CalcLightAttenuation(class Raytracer.Lights.Light,class Raytracer.Ray);Raytracer.Lights.Light.get_Intensity() 94104 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Raytracer.Tracer.CalcLightAttenuation(class Raytracer.Lights.Light,class Raytracer.Ray);Raytracer.Ray.get_Distance() 94104 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Raytracer.Tracer.CalcLightAttenuation(class Raytracer.Lights.Light,class Raytracer.Ray);System.Math.Pow(float64,float64) 47052 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Scene.Lights() 20992 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Scene.Primitives() 83968 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Scene.get_Width() 42025 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);System.Collections.Generic.IEnumerable`1.GetEnumerator() 83968 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);System.Collections.Generic.IEnumerator`1.get_Current() 251904 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);System.Collections.IEnumerator.MoveNext() 440832 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);System.IDisposable.Dispose() 104960 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();System.Console.Write(string) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();System.Console.WriteLine(string) 3 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.get_Screen() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.set_Screen(class Raytracer.Surface) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);System.Drawing.Size..ctor(int32,int32) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);OpenTK.GameWindow.SwapBuffers() 118 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);OpenTK.Graphics.OpenGL.GL.Begin(valuetype OpenTK.Graphics.OpenGL.PrimitiveType) 118 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);OpenTK.Graphics.OpenGL.GL.BindTexture(valuetype OpenTK.Graphics.OpenGL.TextureTarget,int32) 118 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);OpenTK.Graphics.OpenGL.GL.End() 118 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);OpenTK.Graphics.OpenGL.GL.TexCoord2(float32,float32) 472 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);OpenTK.Graphics.OpenGL.GL.TexImage2D(valuetype OpenTK.Graphics.OpenGL.TextureTarget,int32,valuetype OpenTK.Graphics.OpenGL.PixelInternalFormat,int32,int32,int32,valuetype OpenTK.Graphics.OpenGL.PixelFormat,valuetype OpenTK.Graphics.OpenGL.PixelType,!!0[]) 118 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);OpenTK.Graphics.OpenGL.GL.Vertex2(float32,float32) 472 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);Raytracer.Surface.get_Height() 118 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);Raytracer.Surface.get_Pixels() 118 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);Raytracer.Surface.get_Width() 118 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);Raytracer.TracerApplication.Tick() 118 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);Raytracer.TracerApplication.get_Screen() 354 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnResize(class System.EventArgs);OpenTK.Graphics.OpenGL.GL.LoadIdentity() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnResize(class System.EventArgs);OpenTK.Graphics.OpenGL.GL.MatrixMode(valuetype OpenTK.Graphics.OpenGL.MatrixMode) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnResize(class System.EventArgs);OpenTK.Graphics.OpenGL.GL.Ortho(float64,float64,float64,float64,float64,float64) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnResize(class System.EventArgs);OpenTK.Graphics.OpenGL.GL.Viewport(int32,int32,int32,int32) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnResize(class System.EventArgs);OpenTK.NativeWindow.get_Height() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnResize(class System.EventArgs);OpenTK.NativeWindow.get_Width() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnUnload(class System.EventArgs);OpenTK.Graphics.OpenGL.GL.DeleteTextures(int32,int32&) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnUnload(class System.EventArgs);System.Environment.Exit(int32) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs) 59 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);OpenTK.Input.Keyboard.GetState() 61 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);OpenTK.Input.KeyboardState.get_Item(valuetype OpenTK.Input.Key) 366 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs) 2 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);OpenTK.Input.Keyboard.GetState() 2 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);OpenTK.Input.KeyboardState.get_Item(valuetype OpenTK.Input.Key) 12 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs) 2 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);OpenTK.Input.Keyboard.GetState() 2 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);OpenTK.Input.KeyboardState.get_Item(valuetype OpenTK.Input.Key) 12 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);OpenTK.Input.Keyboard.GetState() 2 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);OpenTK.Input.KeyboardState.get_Item(valuetype OpenTK.Input.Key) 12 +Raytracer.Raytracer.Tracer.b__5_0(int32) 471 +Raytracer.Raytracer.Tracer.b__5_0(int32);0x0A00005F 1205760 +Raytracer.Raytracer.Tracer.b__5_0(int32);OpenTK.Vector3..ctor(float32,float32,float32) 964608 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Lights.Light.get_Color() 573749 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Lights.Light.get_Position() 964608 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&) 589924 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&) 836826 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.get_Direction() 3858432 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.get_Origin() 3858432 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.set_Distance(float32) 127782 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);System.Math.Max(float32,float32) 2893824 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);System.Math.Min(float32,float32) 2893824 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&) 1467074 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);OpenTK.Vector3.Dot(valuetype OpenTK.Vector3,valuetype OpenTK.Vector3) 3575792 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);OpenTK.Vector3.get_Length() 1929216 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);OpenTK.Vector3.op_Multiply(float32,valuetype OpenTK.Vector3) 1787896 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);OpenTK.Vector3.op_Subtraction(valuetype OpenTK.Vector3,valuetype OpenTK.Vector3) 3717112 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.get_Direction() 3575792 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.get_Distance() 462142 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.get_Origin() 1929216 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.set_Distance(float32) 315032 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);System.Math.Sqrt(float64) 462142 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Raytracer.Tracer.CalcLightAttenuation(class Raytracer.Lights.Light,class Raytracer.Ray);Raytracer.Helpers.RaytracerExtensions.Squared(float32) 573749 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Raytracer.Tracer.CalcLightAttenuation(class Raytracer.Lights.Light,class Raytracer.Ray);Raytracer.Lights.Light.get_Intensity() 1147498 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Raytracer.Tracer.CalcLightAttenuation(class Raytracer.Lights.Light,class Raytracer.Ray);Raytracer.Ray.get_Distance() 1147498 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Raytracer.Tracer.CalcLightAttenuation(class Raytracer.Lights.Light,class Raytracer.Ray);System.Math.Pow(float64,float64) 573749 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Scene.Lights() 241152 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Scene.Primitives() 964608 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Scene.get_PrimitivesColor() 35330 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Scene.get_Width() 482775 +Raytracer.Raytracer.Tracer.b__5_0(int32);System.Collections.Generic.IEnumerable`1.GetEnumerator() 241152 +Raytracer.Raytracer.Tracer.b__5_0(int32);System.Collections.Generic.IEnumerator`1.get_Current() 964608 +Raytracer.Raytracer.Tracer.b__5_0(int32);System.Collections.IEnumerator.MoveNext() 5064192 +Raytracer.Raytracer.Tracer.b__5_0(int32);System.IDisposable.Dispose() 1205760 diff --git a/tests/data/collapse-vsprof/results/vsprof-default.txt b/tests/data/collapse-vsprof/results/vsprof-default.txt new file mode 100644 index 00000000..abc86f77 --- /dev/null +++ b/tests/data/collapse-vsprof/results/vsprof-default.txt @@ -0,0 +1,130 @@ +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);OpenTK.Graphics.OpenGL.GL.ClearColor(float32,float32,float32,float32) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);OpenTK.Graphics.OpenGL.GL.Disable(valuetype OpenTK.Graphics.OpenGL.EnableCap) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);OpenTK.Graphics.OpenGL.GL.Enable(valuetype OpenTK.Graphics.OpenGL.EnableCap) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);OpenTK.Graphics.OpenGL.GL.Hint(valuetype OpenTK.Graphics.OpenGL.HintTarget,valuetype OpenTK.Graphics.OpenGL.HintMode) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);OpenTK.NativeWindow.get_Height() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);OpenTK.NativeWindow.get_Width() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);OpenTK.NativeWindow.set_ClientSize(valuetype System.Drawing.Size) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);OpenTK.NativeWindow.set_Title(string) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);OpenTK.NativeWindow.set_WindowBorder(valuetype OpenTK.WindowBorder) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.Surface..ctor(int32,int32);System.Object..ctor() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.Surface.GenTexture();OpenTK.Graphics.OpenGL.GL.BindTexture(valuetype OpenTK.Graphics.OpenGL.TextureTarget,int32) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.Surface.GenTexture();OpenTK.Graphics.OpenGL.GL.GenTexture() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.Surface.GenTexture();OpenTK.Graphics.OpenGL.GL.TexImage2D(valuetype OpenTK.Graphics.OpenGL.TextureTarget,int32,valuetype OpenTK.Graphics.OpenGL.PixelInternalFormat,int32,int32,int32,valuetype OpenTK.Graphics.OpenGL.PixelFormat,valuetype OpenTK.Graphics.OpenGL.PixelType,!!0[]) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.Surface.GenTexture();OpenTK.Graphics.OpenGL.GL.TexParameter(valuetype OpenTK.Graphics.OpenGL.TextureTarget,valuetype OpenTK.Graphics.OpenGL.TextureParameterName,int32) 2 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Raytracer.Tracer.SetupScene();OpenTK.Vector3..ctor(float32,float32,float32) 8 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Raytracer.Tracer.SetupScene();Raytracer.Helpers.RaytracerExtensions.Squared(float32) 2 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Raytracer.Tracer.SetupScene();Raytracer.Lights.Light..ctor(valuetype OpenTK.Vector3,float32);System.Object..ctor() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Raytracer.Tracer.SetupScene();Raytracer.Scene.AddLight(class Raytracer.Lights.Light) 4 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Raytracer.Tracer.SetupScene();Raytracer.Scene.AddPrimitive(class Raytracer.Primitives.IPrimitive) 3 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Raytracer.Tracer.SetupScene();Raytracer.Scene.get_Height() 2 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Raytracer.Tracer.SetupScene();Raytracer.Scene.get_Width() 2 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Scene..ctor(int32,int32);OpenTK.Graphics.Color4.get_Black() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Scene..ctor(int32,int32);System.Collections.Generic.List`1..ctor() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Scene..ctor(int32,int32);System.Object..ctor() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Surface.get_Height() 2 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);Raytracer.Surface.get_Width() 2 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer..ctor(class Raytracer.Surface);System.Object..ctor() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);Raytracer.Raytracer.Tracer.RenderFrameBuffer();Raytracer.Helpers.RaytracerHelper.ConvertColorToInt(valuetype OpenTK.Graphics.Color4) 262144 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);Raytracer.Raytracer.Tracer.RenderFrameBuffer();Raytracer.Surface.get_Pixels() 262144 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);Raytracer.Scene.SetLightColors(valuetype Raytracer.Lights.LightColors);OpenTK.Graphics.Color4.get_Blue() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);Raytracer.Scene.SetLightColors(valuetype Raytracer.Lights.LightColors);OpenTK.Graphics.Color4.get_Lime() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);Raytracer.Scene.SetLightColors(valuetype Raytracer.Lights.LightColors);OpenTK.Graphics.Color4.get_Purple() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);Raytracer.Scene.SetLightColors(valuetype Raytracer.Lights.LightColors);OpenTK.Graphics.Color4.get_Red() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);Raytracer.Scene.SetLightColors(valuetype Raytracer.Lights.LightColors);Raytracer.Scene.SetLightsColors(valuetype OpenTK.Graphics.Color4[]);Raytracer.Lights.Light.set_Color(valuetype OpenTK.Graphics.Color4) 4 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);Raytracer.Scene.SetLightColors(valuetype Raytracer.Lights.LightColors);Raytracer.Scene.SetLightsColors(valuetype OpenTK.Graphics.Color4[]);System.Collections.Generic.List`1.get_Count() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);Raytracer.Scene.SetLightColors(valuetype Raytracer.Lights.LightColors);Raytracer.Scene.SetLightsColors(valuetype OpenTK.Graphics.Color4[]);System.Collections.Generic.List`1.get_Item(int32) 4 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);Raytracer.Scene.get_Height() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Action`1..ctor(object,native int) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);0x0A00005F 104960 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);OpenTK.Vector3..ctor(float32,float32,float32) 83968 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Lights.Light.get_Color() 47052 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Lights.Light.get_Position() 83968 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.get_Direction() 335872 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.get_Origin() 335872 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.set_Distance(float32) 5882 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);System.Math.Max(float32,float32) 251904 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);System.Math.Min(float32,float32) 251904 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);OpenTK.Vector3.Dot(valuetype OpenTK.Vector3,valuetype OpenTK.Vector3) 335872 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);OpenTK.Vector3.get_Length() 167936 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);OpenTK.Vector3.op_Multiply(float32,valuetype OpenTK.Vector3) 167936 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);OpenTK.Vector3.op_Subtraction(valuetype OpenTK.Vector3,valuetype OpenTK.Vector3) 335872 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.get_Direction() 335872 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.get_Distance() 40430 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.get_Origin() 167936 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.set_Distance(float32) 31034 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);System.Math.Sqrt(float64) 40430 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Raytracer.Tracer.CalcLightAttenuation(class Raytracer.Lights.Light,class Raytracer.Ray);Raytracer.Helpers.RaytracerExtensions.Squared(float32) 47052 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Raytracer.Tracer.CalcLightAttenuation(class Raytracer.Lights.Light,class Raytracer.Ray);Raytracer.Lights.Light.get_Intensity() 94104 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Raytracer.Tracer.CalcLightAttenuation(class Raytracer.Lights.Light,class Raytracer.Ray);Raytracer.Ray.get_Distance() 94104 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Raytracer.Tracer.CalcLightAttenuation(class Raytracer.Lights.Light,class Raytracer.Ray);System.Math.Pow(float64,float64) 47052 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Scene.Lights() 20992 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Scene.Primitives() 83968 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Scene.get_Width() 42025 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);System.Collections.Generic.IEnumerable`1.GetEnumerator() 83968 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);System.Collections.Generic.IEnumerator`1.get_Current() 251904 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);System.Collections.IEnumerator.MoveNext() 440832 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();Raytracer.Raytracer.Tracer.TraceImage(valuetype Raytracer.Lights.LightColors);System.Threading.Tasks.Parallel.For(int32,int32,class System.Action`1);Raytracer.Raytracer.Tracer.b__5_0(int32);System.IDisposable.Dispose() 104960 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();System.Console.Write(string) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.Init();System.Console.WriteLine(string) 3 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.get_Screen() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);Raytracer.TracerApplication.set_Screen(class Raytracer.Surface) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnLoad(class System.EventArgs);System.Drawing.Size..ctor(int32,int32) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);OpenTK.GameWindow.SwapBuffers() 118 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);OpenTK.Graphics.OpenGL.GL.Begin(valuetype OpenTK.Graphics.OpenGL.PrimitiveType) 118 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);OpenTK.Graphics.OpenGL.GL.BindTexture(valuetype OpenTK.Graphics.OpenGL.TextureTarget,int32) 118 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);OpenTK.Graphics.OpenGL.GL.End() 118 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);OpenTK.Graphics.OpenGL.GL.TexCoord2(float32,float32) 472 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);OpenTK.Graphics.OpenGL.GL.TexImage2D(valuetype OpenTK.Graphics.OpenGL.TextureTarget,int32,valuetype OpenTK.Graphics.OpenGL.PixelInternalFormat,int32,int32,int32,valuetype OpenTK.Graphics.OpenGL.PixelFormat,valuetype OpenTK.Graphics.OpenGL.PixelType,!!0[]) 118 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);OpenTK.Graphics.OpenGL.GL.Vertex2(float32,float32) 472 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);Raytracer.Surface.get_Height() 118 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);Raytracer.Surface.get_Pixels() 118 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);Raytracer.Surface.get_Width() 118 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);Raytracer.TracerApplication.Tick() 118 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnRenderFrame(class OpenTK.FrameEventArgs);Raytracer.TracerApplication.get_Screen() 354 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnResize(class System.EventArgs);OpenTK.Graphics.OpenGL.GL.LoadIdentity() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnResize(class System.EventArgs);OpenTK.Graphics.OpenGL.GL.MatrixMode(valuetype OpenTK.Graphics.OpenGL.MatrixMode) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnResize(class System.EventArgs);OpenTK.Graphics.OpenGL.GL.Ortho(float64,float64,float64,float64,float64,float64) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnResize(class System.EventArgs);OpenTK.Graphics.OpenGL.GL.Viewport(int32,int32,int32,int32) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnResize(class System.EventArgs);OpenTK.NativeWindow.get_Height() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnResize(class System.EventArgs);OpenTK.NativeWindow.get_Width() 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnUnload(class System.EventArgs);OpenTK.Graphics.OpenGL.GL.DeleteTextures(int32,int32&) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnUnload(class System.EventArgs);System.Environment.Exit(int32) 1 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);OpenTK.Input.Keyboard.GetState() 61 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);OpenTK.Input.KeyboardState.get_Item(valuetype OpenTK.Input.Key) 366 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);OpenTK.Input.Keyboard.GetState() 2 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);OpenTK.Input.KeyboardState.get_Item(valuetype OpenTK.Input.Key) 12 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);OpenTK.Input.Keyboard.GetState() 2 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);OpenTK.Input.KeyboardState.get_Item(valuetype OpenTK.Input.Key) 12 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);OpenTK.Input.Keyboard.GetState() 2 +Raytracer.OpenTkApp.Main();OpenTK.GameWindow.Run(float64,float64);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);Raytracer.OpenTkApp.OnUpdateFrame(class OpenTK.FrameEventArgs);OpenTK.Input.KeyboardState.get_Item(valuetype OpenTK.Input.Key) 12 +Raytracer.Raytracer.Tracer.b__5_0(int32);0x0A00005F 1205760 +Raytracer.Raytracer.Tracer.b__5_0(int32);OpenTK.Vector3..ctor(float32,float32,float32) 964608 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Lights.Light.get_Color() 573749 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Lights.Light.get_Position() 964608 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.get_Direction() 3858432 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.get_Origin() 3858432 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.set_Distance(float32) 127782 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);System.Math.Max(float32,float32) 2893824 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Box.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);System.Math.Min(float32,float32) 2893824 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);OpenTK.Vector3.Dot(valuetype OpenTK.Vector3,valuetype OpenTK.Vector3) 3575792 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);OpenTK.Vector3.get_Length() 1929216 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);OpenTK.Vector3.op_Multiply(float32,valuetype OpenTK.Vector3) 1787896 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);OpenTK.Vector3.op_Subtraction(valuetype OpenTK.Vector3,valuetype OpenTK.Vector3) 3717112 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.get_Direction() 3575792 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.get_Distance() 462142 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.get_Origin() 1929216 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Ray.set_Distance(float32) 315032 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);Raytracer.Primitives.Sphere.Raytracer.Primitives.IPrimitive.Intersect(class Raytracer.Ray&,bool&);System.Math.Sqrt(float64) 462142 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Raytracer.Tracer.CalcLightAttenuation(class Raytracer.Lights.Light,class Raytracer.Ray);Raytracer.Helpers.RaytracerExtensions.Squared(float32) 573749 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Raytracer.Tracer.CalcLightAttenuation(class Raytracer.Lights.Light,class Raytracer.Ray);Raytracer.Lights.Light.get_Intensity() 1147498 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Raytracer.Tracer.CalcLightAttenuation(class Raytracer.Lights.Light,class Raytracer.Ray);Raytracer.Ray.get_Distance() 1147498 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Raytracer.Tracer.CalcLightAttenuation(class Raytracer.Lights.Light,class Raytracer.Ray);System.Math.Pow(float64,float64) 573749 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Scene.Lights() 241152 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Scene.Primitives() 964608 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Scene.get_PrimitivesColor() 35330 +Raytracer.Raytracer.Tracer.b__5_0(int32);Raytracer.Scene.get_Width() 482775 +Raytracer.Raytracer.Tracer.b__5_0(int32);System.Collections.Generic.IEnumerable`1.GetEnumerator() 241152 +Raytracer.Raytracer.Tracer.b__5_0(int32);System.Collections.Generic.IEnumerator`1.get_Current() 964608 +Raytracer.Raytracer.Tracer.b__5_0(int32);System.Collections.IEnumerator.MoveNext() 5064192 +Raytracer.Raytracer.Tracer.b__5_0(int32);System.IDisposable.Dispose() 1205760