Welcome to mirror list, hosted at ThFree Co, Russian Federation.

RecastTimer.cpp « Source « Recast « recastnavigation « extern - git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 51ffb7d316091494dd813bb833072f7093b2b99a (plain)
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
#include "RecastTimer.h"

#if defined(WIN32)

// Win32
#include <windows.h>

rcTimeVal rcGetPerformanceTimer()
{
	__int64 count;
	QueryPerformanceCounter((LARGE_INTEGER*)&count);
	return count;
}

int rcGetDeltaTimeUsec(rcTimeVal start, rcTimeVal end)
{
	static __int64 freq = 0;
	if (freq == 0)
		QueryPerformanceFrequency((LARGE_INTEGER*)&freq);
	__int64 elapsed = end - start;
	return (int)(elapsed*1000000 / freq);
}

#elif defined(__MACH__)

// OSX
#include <mach/mach_time.h>

rcTimeVal rcGetPerformanceTimer()
{
	return mach_absolute_time();
}

int rcGetDeltaTimeUsec(rcTimeVal start, rcTimeVal end)
{
	static mach_timebase_info_data_t timebaseInfo;
	if (timebaseInfo.denom == 0)
		mach_timebase_info(&timebaseInfo);
	uint64_t elapsed = end - start;
	uint64_t nanosec = elapsed * timebaseInfo.numer / timebaseInfo.denom;
	return (int)(nanosec / 1000);
}

#else

// TODO: Linux, etc

rcTimeVal rcGetPerformanceTimer()
{
	return 0;
}

int rcGetDeltaTimeUsec(rcTimeVal start, rcTimeVal end)
{
	return 0;
}

#endif