On 27.02.2011 17:51, Graeme Geldenhuys wrote:
On 26 February 2011 20:43, Marco van de Voort<[email protected]> wrote:
(1) this discussion is about a gettickcount implementation, but I'm not
entirely sure why this is needed so badly.
I am by no means a libc expert, though I have tried myself to find a
more fine-grained timing call under Linux. Windows (and I believe the
GetTickCount implementation for Windows) uses the higher precision
timing calls from the multimedia API. I can't confirmed this because
I'm not at a computer with FPC source code - but from memory I think
that is how it was done. The current linux version of GetTickCount is
very rudimentary. As a few Google searches will show, many other
developers are saying that using clock_gettime() under linux gives you
the equivalent timing as the multimedia API under Windows.
I don't know whether you stuff the GetTickCount API call under
"Multimedia API", but the GetTickCount implementation for Windows uses
just that.
See this snippet from lcl/lclintf.pas:
=== source begin ===
{$IFDEF WINDOWS}
{$IFDEF MSWindows}
function GetTickCount:DWORD; stdcall; external 'kernel32.dll' name
'GetTickCount';
{$ELSE}
function GetTickCount:DWORD; stdcall; external KernelDLL name
'GetTickCount';
{$ENDIF}
{$ELSE}
function GetTickCount: DWord;
{$ENDIF}
=== source end ===
And GetTickCount uses the data provided by the Kernel for that (I don't
know yet how the kernel calculates that data though...)
Regards,
Sven
--
_______________________________________________
Lazarus mailing list
[email protected]
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus