diff -r 3145aadca3d2 -r 0c551e8818e0 External/Aga.Controls/TimeCounter.cs
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/External/Aga.Controls/TimeCounter.cs Sun May 27 15:16:19 2012 +0000
@@ -0,0 +1,59 @@
+using System;
+using System.Collections.Generic;
+using System.Text;
+using System.Runtime.InteropServices;
+using System.Diagnostics.CodeAnalysis;
+
+namespace Aga.Controls
+{
+ ///
+ /// High resolution timer, used to test performance
+ ///
+ public static class TimeCounter
+ {
+ private static Int64 _start;
+
+ ///
+ /// Start time counting
+ ///
+ public static void Start()
+ {
+ _start = 0;
+ QueryPerformanceCounter(ref _start);
+ }
+
+ public static Int64 GetStartValue()
+ {
+ Int64 t = 0;
+ QueryPerformanceCounter(ref t);
+ return t;
+ }
+
+ ///
+ /// Finish time counting
+ ///
+ /// time in seconds elapsed from Start till Finish
+ public static double Finish()
+ {
+ return Finish(_start);
+ }
+
+ public static double Finish(Int64 start)
+ {
+ Int64 finish = 0;
+ QueryPerformanceCounter(ref finish);
+
+ Int64 freq = 0;
+ QueryPerformanceFrequency(ref freq);
+ return (finish - start) / (double)freq;
+ }
+
+ [DllImport("Kernel32.dll")]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ static extern bool QueryPerformanceCounter(ref Int64 performanceCount);
+
+ [DllImport("Kernel32.dll")]
+ [return: MarshalAs(UnmanagedType.Bool)]
+ static extern bool QueryPerformanceFrequency(ref Int64 frequency);
+ }
+}