blob: 4beb0b2a4f010d8acb2a06342910643c2087574e (
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
59
60
61
62
63
64
65
66
67
68
69
70
|
#foreign_system_library "winmm" when ODIN_OS == "windows";
#import win32 "sys/windows.odin" when ODIN_OS == "windows";
#import "fmt.odin";
timeGetTime :: proc() -> u32 #foreign #dll_import
GetSystemTimeAsFileTime :: proc(SystemTimeAsFileTime : ^win32.FILETIME) #foreign #dll_import
GetCommandLineArguments :: proc() -> []string {
argString := win32.GetCommandLineA();
fullArgString := to_odin_string(argString);
// Count Spaces
for r : fullArgString {
fmt.println(r);
}
}
to_odin_string :: proc(c: ^byte) -> string {
s: string;
s.data = c;
while (c + s.count)^ != 0 {
s.count += 1;
}
return s;
}
//("Hellope!\x00" as string).data
MAGIC_VALUE :: 0xCA5E713F;
timing_file_header :: struct #ordered {
MagicValue : u32;
}
timing_file_date :: struct #ordered {
E : [2]u32;
}
timing_file_entry_flag :: enum {
Complete = 0x1,
NoErrors = 0x2,
}
timing_file_entry :: struct #ordered {
StarDate : timing_file_date;
Flags : u32;
MillisecondsElapsed : u32;
}
timing_entry_array :: struct #ordered {
Entries : []timing_file_entry;
}
GetClock :: proc () -> u32 {
return timeGetTime();
}
GetDate :: proc() -> timing_file_date {
Result : timing_file_date;
FileTime : win32.FILETIME;
GetSystemTimeAsFileTime(^FileTime);
Result.E[0] = FileTime.lo;
Result.E[1] = FileTime.hi;
return Result;
}
main :: proc () {
EntryClock := GetClock();
GetCommandLineArguments();
}
|