index be2a86a28d68881d128e8ce49d47883bf04db57a..5e6212b921b5b7ddc04784ad9d601503b3d93483 100644 (file)
--- a/src/shared/xprofiler.pas
+++ b/src/shared/xprofiler.pas
{$IFNDEF IN_TOOLS}
uses
+ {$IFDEF USE_SDL}
+ SDL,
+ {$ENDIF}
+ {$IFDEF USE_SDL2}
+ SDL2,
+ {$ENDIF}
SysUtils;
{$DEFINE STOPWATCH_IS_HERE}
;
{$ENDIF} // IN_TOOLS
+{$IFDEF USE_SDL}
+ type
+ UInt64 = QWord; (* !!! *)
+{$ENDIF}
+
{$IF DEFINED(STOPWATCH_IS_HERE)}
type
TStopWatch = record
implementation
{$IFNDEF IN_TOOLS}
-uses
- SDL2;
-
type
THPTimeType = Int64;
{$ELSE}
end;
-{$IFDEF IN_TOOLS}
+{$IF DEFINED(IN_TOOLS)}
function getTimeMicro (): UInt64; inline;
var
r: THPTimeType;
result := UInt64(r)*1000000 div mFrequency;
{$ENDIF}
end;
-{$ELSE}
+(* !!!
+{$ELSEIF DEFINED(USE_SDL)}
+function getTimeMicro: UInt64; inline;
+begin
+ {$WARNING use inaccurate profiling timer}
+ result := SDL_GetTicks() * 1000
+end;
+*)
+{$ELSEIF DEFINED(USE_SDL2)}
function getTimeMicro (): UInt64; inline;
begin
Result := SDL_GetPerformanceCounter() * 1000000 div SDL_GetPerformanceFrequency()
end;
+{$ELSE}
+function getTimeMicro: UInt64; inline;
+begin
+ {$WARNING use stub profiling timer}
+end;
{$ENDIF}
function getTimeMilli (): UInt64; inline;
begin
- result := getTimeMicro div 1000;
+ result := getTimeMicro() div 1000;
end;