ViewVC Help
View File | Revision Log | View Changeset | Root Listing
root/Oni2/Daodan/src/Daodan_Utility.c
Revision: 380
Committed: Sat Jul 4 03:52:36 2009 UTC (16 years, 3 months ago) by rossy
Content type: text/x-csrc
File size: 1535 byte(s)
Log Message:
Update to one of Oni's timing functions. It might fix timing on Linux and on buggy Windows machines. It could also break animation and make Oni run slower that usual.

File Contents

# Content
1 #include <windows.h>
2 #include <stdlib.h>
3 #include <stdarg.h>
4 #include <stdint.h>
5 #include "oni_stdio.h"
6
7 #include "Daodan_Utility.h"
8 #include "BFW_Utility.h"
9
10 const double fps = 60.0;
11
12 void __cdecl DDrStartupMessage(const char* fmt, ...)
13 {
14 va_list ap;
15 va_start(ap, fmt);
16 char* buffer = malloc(vsnprintf(NULL, 0, fmt, ap) + 1);
17
18 vsprintf(buffer, fmt, ap);
19 va_end(ap);
20
21 if (!ONgFileStartup)
22 if (!(ONgFileStartup = oni_fopen("startup.txt", "w")))
23 return;
24
25 oni_fprintf(ONgFileStartup, "%s\n", buffer);
26 free(buffer);
27
28 oni_fflush(ONgFileStartup);
29 return;
30 }
31
32 /*
33 int64_t ONICALL DDrMachineTime_Sixtieths()
34 {
35 static int64_t LastTime, Time;
36 int64_t Current;
37
38 Current = LastTime + GetTickCount();
39
40 if (Current > Time)
41 {
42 LastTime += 1;
43 Current += 1;
44 }
45
46 Time = Current;
47
48 return (Time * 3) / 50;
49 }
50 */
51
52 int64_t ONICALL DDrMachineTime_Sixtieths()
53 {
54 static uint32_t startticks = 0;
55 double ticks = 0;
56
57 if (startticks)
58 ticks = GetTickCount() - startticks;
59 else
60 startticks = GetTickCount();
61
62 return (int64_t)(ticks / 1000.0 * fps);
63 }
64
65 int64_t ONICALL DDrMachineTime_High()
66 {
67 // LARGE_INTEGER PerfCount;
68 //
69 // if (!QueryPerformanceCounter(&PerfCount))
70 // PerfCount.QuadPart = GetTickCount();
71 //
72 // return PerfCount.QuadPart;
73 return GetTickCount();
74 }
75
76 double ONICALL DDrMachineTime_High_Frequency()
77 {
78 // LARGE_INTEGER Frequency;
79 //
80 // if (!QueryPerformanceFrequency(&Frequency))
81 return 1000.0;
82
83 // return Frequency.QuadPart;
84 }