X-Git-Url: http://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fshared%2Fxprofiler.pas;h=5e6212b921b5b7ddc04784ad9d601503b3d93483;hb=0e101bd452c40da601236aaa2dd4106be47ddce1;hp=71cd14877374e403727d5ba4c181be54ad05d089;hpb=caa7982554b88590fc1690cb2924399eebacec44;p=d2df-sdl.git diff --git a/src/shared/xprofiler.pas b/src/shared/xprofiler.pas index 71cd148..5e6212b 100644 --- a/src/shared/xprofiler.pas +++ b/src/shared/xprofiler.pas @@ -2,8 +2,7 @@ * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. + * the Free Software Foundation, version 3 of the License ONLY. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -22,6 +21,12 @@ interface {$IFNDEF IN_TOOLS} uses + {$IFDEF USE_SDL} + SDL, + {$ENDIF} + {$IFDEF USE_SDL2} + SDL2, + {$ENDIF} SysUtils; {$DEFINE STOPWATCH_IS_HERE} @@ -47,6 +52,11 @@ interface ; {$ENDIF} // IN_TOOLS +{$IFDEF USE_SDL} + type + UInt64 = QWord; (* !!! *) +{$ENDIF} + {$IF DEFINED(STOPWATCH_IS_HERE)} type TStopWatch = record @@ -161,9 +171,6 @@ function getTimeMilli (): UInt64; inline; implementation {$IFNDEF IN_TOOLS} -uses - SDL2; - type THPTimeType = Int64; {$ELSE} @@ -206,7 +213,7 @@ begin end; -{$IFDEF IN_TOOLS} +{$IF DEFINED(IN_TOOLS)} function getTimeMicro (): UInt64; inline; var r: THPTimeType; @@ -220,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;