Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028 #include "internal.h"
00029
00030
00031
00032
00033 static unsigned __int64 getRawTime(void)
00034 {
00035 if (_glfw.win32_time.hasPC)
00036 {
00037 unsigned __int64 time;
00038 QueryPerformanceCounter((LARGE_INTEGER*) &time);
00039 return time;
00040 }
00041 else
00042 return (unsigned __int64) _glfw_timeGetTime();
00043 }
00044
00045
00049
00050
00051
00052 void _glfwInitTimer(void)
00053 {
00054 unsigned __int64 frequency;
00055
00056 if (QueryPerformanceFrequency((LARGE_INTEGER*) &frequency))
00057 {
00058 _glfw.win32_time.hasPC = GL_TRUE;
00059 _glfw.win32_time.resolution = 1.0 / (double) frequency;
00060 }
00061 else
00062 {
00063 _glfw.win32_time.hasPC = GL_FALSE;
00064 _glfw.win32_time.resolution = 0.001;
00065 }
00066
00067 _glfw.win32_time.base = getRawTime();
00068 }
00069
00070
00074
00075 double _glfwPlatformGetTime(void)
00076 {
00077 return (double) (getRawTime() - _glfw.win32_time.base) *
00078 _glfw.win32_time.resolution;
00079 }
00080
00081 void _glfwPlatformSetTime(double time)
00082 {
00083 _glfw.win32_time.base = getRawTime() -
00084 (unsigned __int64) (time / _glfw.win32_time.resolution);
00085 }
00086