forked from mikerabat/mrmath
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMtxTimer.pas
60 lines (48 loc) · 1.61 KB
/
MtxTimer.pas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
// ###################################################################
// #### This file is part of the mathematics library project, and is
// #### offered under the licence agreement described on
// #### http://www.mrsoft.org/
// ####
// #### Copyright:(c) 2011, Michael R. . All rights reserved.
// ####
// #### Unless required by applicable law or agreed to in writing, software
// #### distributed under the License is distributed on an "AS IS" BASIS,
// #### WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// #### See the License for the specific language governing permissions and
// #### limitations under the License.
// ###################################################################
// ###################################################################
// #### certain MACOS contributions and testing William Cantrall
// ###################################################################
unit MtxTimer;
interface
function MtxGetTime: Int64;
// used to convert to sec
var mtxFreq : Int64;
implementation
uses {$IFDEF MSWINDOWS}Windows{$ENDIF}{$IFDEF MACOS}System.Diagnostics{$ENDIF};
{$IFDEF MACOS}
var sw: TStopWatch; //wrc
{$ENDIF}
function MtxGetTime: Int64;
begin
{$IFDEF MACOS}
Result := sw.GetTimeStamp;
{$ENDIF}
{$IFDEF MSWINDOWS}
Result := 0;
QueryPerformanceCounter(Result);
{$ENDIF}
end;
initialization
{$IFDEF MSWINDOWS}
QueryPerformanceFrequency(mtxFreq);
{$ENDIF}
{$IFDEF MACOS}
sw := TStopWatch.Create() ;
sw.Start;
mtxFreq := SW.Frequency;
finalization
sw.Stop;
{$ENDIF}
end.