|
@@ -1,5 +1,70 @@
|
|
|
+#foreign_system_library "winmm" when ODIN_OS == "windows";
|
|
|
+#import win32 "sys/windows.odin" when ODIN_OS == "windows";
|
|
|
#import "fmt.odin";
|
|
|
|
|
|
-main :: proc() {
|
|
|
- fmt.println("Hellope!");
|
|
|
+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();
|
|
|
}
|