Files
Odin/code/demo.odin
2017-01-05 22:32:19 +00:00

71 lines
1.4 KiB
Odin

#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();
}