X-Git-Url: https://deadsoftware.ru/gitweb?p=d2df-sdl.git;a=blobdiff_plain;f=src%2Fshared%2Fxprofiler.pas;h=5e6212b921b5b7ddc04784ad9d601503b3d93483;hp=be2a86a28d68881d128e8ce49d47883bf04db57a;hb=0e101bd452c40da601236aaa2dd4106be47ddce1;hpb=6c6b87eea9373ec4f1cb859223d3708d8e2a59c6 diff --git a/src/shared/xprofiler.pas b/src/shared/xprofiler.pas index be2a86a..5e6212b 100644 --- a/src/shared/xprofiler.pas +++ b/src/shared/xprofiler.pas @@ -21,6 +21,12 @@ interface {$IFNDEF IN_TOOLS} uses + {$IFDEF USE_SDL} + SDL, + {$ENDIF} + {$IFDEF USE_SDL2} + SDL2, + {$ENDIF} SysUtils; {$DEFINE STOPWATCH_IS_HERE} @@ -46,6 +52,11 @@ interface ; {$ENDIF} // IN_TOOLS +{$IFDEF USE_SDL} + type + UInt64 = QWord; (* !!! *) +{$ENDIF} + {$IF DEFINED(STOPWATCH_IS_HERE)} type TStopWatch = record @@ -160,9 +171,6 @@ function getTimeMilli (): UInt64; inline; implementation {$IFNDEF IN_TOOLS} -uses - SDL2; - type THPTimeType = Int64; {$ELSE} @@ -205,7 +213,7 @@ begin end; -{$IFDEF IN_TOOLS} +{$IF DEFINED(IN_TOOLS)} function getTimeMicro (): UInt64; inline; var r: THPTimeType; @@ -219,17 +227,30 @@ begin 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;