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