Browse Source

Merge branch 'master' of https://github.com/odin-lang/Odin

gingerBill 3 years ago
parent
commit
0b05650366
59 changed files with 386 additions and 253 deletions
  1. 1 0
      .github/FUNDING.yml
  2. 1 1
      core/crypto/rand_generic.odin
  3. 23 0
      core/crypto/rand_windows.odin
  4. 22 6
      core/fmt/fmt.odin
  5. 1 22
      examples/all/all_vendor.odin
  6. 10 0
      examples/all/all_vendor_directx.odin
  7. 15 0
      examples/all/all_vendor_stl.odin
  8. 3 3
      vendor/ENet/unix.odin
  9. 1 5
      vendor/botan/bindings/botan.odin
  10. 5 2
      vendor/glfw/bindings/bindings.odin
  11. 7 2
      vendor/miniaudio/common.odin
  12. 7 3
      vendor/miniaudio/data_conversion.odin
  13. 8 5
      vendor/miniaudio/decoding.odin
  14. 7 2
      vendor/miniaudio/device_io_procs.odin
  15. 4 4
      vendor/miniaudio/device_io_types.odin
  16. 8 3
      vendor/miniaudio/encoding.odin
  17. 7 2
      vendor/miniaudio/filtering.odin
  18. 8 3
      vendor/miniaudio/generation.odin
  19. 8 3
      vendor/miniaudio/logging.odin
  20. 3 3
      vendor/miniaudio/src/Makefile
  21. 8 3
      vendor/miniaudio/utilities.odin
  22. 7 2
      vendor/miniaudio/vfs.odin
  23. 3 1
      vendor/portmidi/portmidi.odin
  24. 6 2
      vendor/portmidi/util.odin
  25. 7 5
      vendor/raylib/raylib.odin
  26. 7 3
      vendor/raylib/rlgl.odin
  27. 6 5
      vendor/sdl2/image/sdl_image.odin
  28. 5 5
      vendor/sdl2/mixer/sdl_mixer.odin
  29. 6 5
      vendor/sdl2/net/sdl_net.odin
  30. 6 5
      vendor/sdl2/sdl2.odin
  31. 5 4
      vendor/sdl2/sdl_audio.odin
  32. 6 5
      vendor/sdl2/sdl_blendmode.odin
  33. 6 5
      vendor/sdl2/sdl_cpuinfo.odin
  34. 6 5
      vendor/sdl2/sdl_events.odin
  35. 5 4
      vendor/sdl2/sdl_gamecontroller.odin
  36. 6 5
      vendor/sdl2/sdl_gesture_haptic.odin
  37. 6 5
      vendor/sdl2/sdl_hints.odin
  38. 6 5
      vendor/sdl2/sdl_joystick.odin
  39. 5 4
      vendor/sdl2/sdl_keyboard.odin
  40. 6 5
      vendor/sdl2/sdl_log.odin
  41. 5 4
      vendor/sdl2/sdl_messagebox.odin
  42. 6 5
      vendor/sdl2/sdl_metal.odin
  43. 6 5
      vendor/sdl2/sdl_mouse.odin
  44. 6 5
      vendor/sdl2/sdl_mutex.odin
  45. 6 5
      vendor/sdl2/sdl_pixels.odin
  46. 6 5
      vendor/sdl2/sdl_rect.odin
  47. 6 5
      vendor/sdl2/sdl_render.odin
  48. 6 5
      vendor/sdl2/sdl_rwops.odin
  49. 6 5
      vendor/sdl2/sdl_stdinc.odin
  50. 6 5
      vendor/sdl2/sdl_surface.odin
  51. 6 5
      vendor/sdl2/sdl_system.odin
  52. 6 5
      vendor/sdl2/sdl_syswm.odin
  53. 5 4
      vendor/sdl2/sdl_thread.odin
  54. 6 5
      vendor/sdl2/sdl_timer.odin
  55. 6 5
      vendor/sdl2/sdl_touch.odin
  56. 6 5
      vendor/sdl2/sdl_video.odin
  57. 6 5
      vendor/sdl2/sdl_vulkan.odin
  58. 6 5
      vendor/sdl2/ttf/sdl_ttf.odin
  59. 13 13
      vendor/stb/src/Makefile

+ 1 - 0
.github/FUNDING.yml

@@ -1,3 +1,4 @@
 # These are supported funding model platforms
 
+github: odin-lang
 patreon: gingerbill

+ 1 - 1
core/crypto/rand_generic.odin

@@ -1,6 +1,6 @@
 package crypto
 
-when ODIN_OS != .Linux && ODIN_OS != .OpenBSD {
+when ODIN_OS != .Linux && ODIN_OS != .OpenBSD && ODIN_OS != .Windows {
 	_rand_bytes :: proc (dst: []byte) {
 		unimplemented("crypto: rand_bytes not supported on this OS")
 	}

+ 23 - 0
core/crypto/rand_windows.odin

@@ -0,0 +1,23 @@
+package crypto
+
+import win32 "core:sys/windows"
+import "core:os"
+import "core:fmt"
+
+_rand_bytes :: proc(dst: []byte) {
+	ret := (os.Errno)(win32.BCryptGenRandom(nil, raw_data(dst), u32(len(dst)), win32.BCRYPT_USE_SYSTEM_PREFERRED_RNG))
+	if ret != os.ERROR_NONE {
+		switch ret {
+			case os.ERROR_INVALID_HANDLE:
+				// The handle to the first parameter is invalid.
+				// This should not happen here, since we explicitly pass nil to it
+				panic("crypto: BCryptGenRandom Invalid handle for hAlgorithm")
+			case os.ERROR_INVALID_PARAMETER:
+				// One of the parameters was invalid
+				panic("crypto: BCryptGenRandom Invalid parameter")
+			case:
+				// Unknown error
+				panic(fmt.tprintf("crypto: BCryptGenRandom failed: %d\n", ret))
+		}
+	}
+}

+ 22 - 6
core/fmt/fmt.odin

@@ -605,7 +605,7 @@ fmt_bad_verb :: proc(using fi: ^Info, verb: rune) {
 fmt_bool :: proc(using fi: ^Info, b: bool, verb: rune) {
 	switch verb {
 	case 't', 'v':
-		io.write_string(writer, b ? "true" : "false", &fi.n)
+		fmt_string(fi, b ? "true" : "false", 's')
 	case:
 		fmt_bad_verb(fi, verb)
 	}
@@ -943,11 +943,27 @@ fmt_float :: proc(fi: ^Info, v: f64, bit_size: int, verb: rune) {
 fmt_string :: proc(fi: ^Info, s: string, verb: rune) {
 	switch verb {
 	case 's', 'v':
-		io.write_string(fi.writer, s, &fi.n)
-		if fi.width_set && len(s) < fi.width {
-			for _ in 0..<fi.width - len(s) {
-				io.write_byte(fi.writer, ' ', &fi.n)
+		if fi.width_set {
+			if fi.width > len(s) {
+				if fi.minus {
+					io.write_string(fi.writer, s, &fi.n)
+				}
+
+				for _ in 0..<fi.width - len(s) {
+					io.write_byte(fi.writer, ' ', &fi.n)
+				}
+
+				if !fi.minus {
+					io.write_string(fi.writer, s, &fi.n)
+				}
 			}
+			else {
+				io.write_string(fi.writer, s[:fi.width], &fi.n)
+			}
+		}
+		else
+		{
+			io.write_string(fi.writer, s, &fi.n)
 		}
 
 	case 'q': // quoted string
@@ -1058,7 +1074,7 @@ fmt_enum :: proc(fi: ^Info, v: any, verb: rune) {
 			fmt_arg(fi, any{v.data, runtime.type_info_base(e.base).id}, verb)
 		case 's', 'v':
 			if str, ok := enum_value_to_string(v); ok {
-				io.write_string(fi.writer, str, &fi.n)
+				fmt_string(fi, str, 's')
 			} else {
 				io.write_string(fi.writer, "%!(BAD ENUM VALUE=", &fi.n)
 				fmt_arg(fi, any{v.data, runtime.type_info_base(e.base).id}, 'i')

+ 1 - 22
examples/all/all_vendor.odin

@@ -1,4 +1,3 @@
-//+build windows
 package all
 
 import botan     "vendor:botan"
@@ -16,24 +15,12 @@ import IMG    "vendor:sdl2/image"
 import MIX    "vendor:sdl2/mixer"
 import TTF    "vendor:sdl2/ttf"
 
-import stb_easy_font "vendor:stb/easy_font"
-import stbi          "vendor:stb/image"
-import stbrp         "vendor:stb/rect_pack"
-import stbtt         "vendor:stb/truetype"
-import stb_vorbis    "vendor:stb/vorbis"
-
 import vk "vendor:vulkan"
 
-import D3D11 "vendor:directx/d3d11"
-import D3D12 "vendor:directx/d3d12"
-import DXGI  "vendor:directx/dxgi"
-
-// note these are technicaly darwin only but they are added to aid with documentation generation
 import NS  "vendor:darwin/Foundation"
 import MTL "vendor:darwin/Metal"
 import CA  "vendor:darwin/QuartzCore"
 
-
 _ :: botan
 _ :: ENet
 _ :: gl
@@ -47,15 +34,7 @@ _ :: SDLNet
 _ :: IMG
 _ :: MIX
 _ :: TTF
-_ :: stb_easy_font
-_ :: stbi
-_ :: stbrp
-_ :: stbtt
-_ :: stb_vorbis
 _ :: vk
-_ :: D3D11
-_ :: D3D12
-_ :: DXGI
 _ :: NS
 _ :: MTL
-_ :: CA
+_ :: CA

+ 10 - 0
examples/all/all_vendor_directx.odin

@@ -0,0 +1,10 @@
+//+build windows
+package all
+
+import D3D11 "vendor:directx/d3d11"
+import D3D12 "vendor:directx/d3d12"
+import DXGI  "vendor:directx/dxgi"
+
+_ :: D3D11
+_ :: D3D12
+_ :: DXGI

+ 15 - 0
examples/all/all_vendor_stl.odin

@@ -0,0 +1,15 @@
+//+build windows, linux
+package all
+
+import stb_easy_font "vendor:stb/easy_font"
+import stbi          "vendor:stb/image"
+import stbrp         "vendor:stb/rect_pack"
+import stbtt         "vendor:stb/truetype"
+import stb_vorbis    "vendor:stb/vorbis"
+
+_ :: stb_easy_font
+_ :: stbi
+_ :: stbrp
+_ :: stbtt
+_ :: stb_vorbis
+

+ 3 - 3
vendor/ENet/unix.odin

@@ -1,4 +1,4 @@
-//+build linux, darwin, freebsd
+//+build linux, darwin, freebsd, openbsd
 package ENet
 
 // When we implement the appropriate bindings for Unix, the section separated
@@ -14,7 +14,7 @@ import "core:c"
 
 @(private="file") FD_ZERO :: #force_inline proc(s: ^fd_set) {
 	for i := size_of(fd_set) / size_of(c.long); i != 0; i -= 1 {
-		s.fds_bits[i] = 0;
+		s.fds_bits[i] = 0
 	}
 }
 
@@ -56,4 +56,4 @@ SOCKETSET_REMOVE :: #force_inline proc(sockset: ^SocketSet, socket: Socket) {
 
 SOCKSET_CHECK :: #force_inline proc(sockset: ^SocketSet, socket: Socket) -> bool {
 	return FD_ISSET(i32(socket), cast(^fd_set)sockset)
-}
+}

+ 1 - 5
vendor/botan/bindings/botan.odin

@@ -142,11 +142,7 @@ fpe_t                :: ^fpe_struct
 
 when ODIN_OS == .Windows {
     foreign import botan_lib "botan.lib"
-} else when ODIN_OS == .Linux {
-    foreign import botan_lib "system:botan-2"
-} else when ODIN_OS == .Darwin {
-    foreign import botan_lib "system:botan-2"
-} else when ODIN_OS == .OpenBSD {
+} else {
     foreign import botan_lib "system:botan-2"
 }
 

+ 5 - 2
vendor/glfw/bindings/bindings.odin

@@ -3,8 +3,6 @@ package glfw_bindings
 import "core:c"
 import vk "vendor:vulkan"
 
-when ODIN_OS == .Linux   { foreign import glfw "system:glfw" } // TODO: Add the billion-or-so static libs to link to in linux
-when ODIN_OS == .Darwin  { foreign import glfw "system:glfw" }
 when ODIN_OS == .Windows {
 	foreign import glfw { 
 		"../lib/glfw3_mt.lib",
@@ -12,6 +10,11 @@ when ODIN_OS == .Windows {
 		"system:gdi32.lib", 
 		"system:shell32.lib",
 	} 
+} else when ODIN_OS == .Linux {
+	// TODO: Add the billion-or-so static libs to link to in linux
+	foreign import glfw "system:glfw"
+} else {
+	foreign import glfw "system:glfw"
 }
 
 #assert(size_of(c.int) == size_of(b32))

+ 7 - 2
vendor/miniaudio/common.odin

@@ -2,8 +2,13 @@ package miniaudio
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "lib/miniaudio.lib" }
-when ODIN_OS == .Linux   { foreign import lib "lib/miniaudio.a" }
+when ODIN_OS == .Windows {
+	foreign import lib "lib/miniaudio.lib"
+} else when ODIN_OS == .Linux {
+	foreign import lib "lib/miniaudio.a"
+} else {
+	foreign import lib "system:miniaudio"
+}
 
 handle :: distinct rawptr
 

+ 7 - 3
vendor/miniaudio/data_conversion.odin

@@ -2,9 +2,13 @@ package miniaudio
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "lib/miniaudio.lib" }
-when ODIN_OS == .Linux   { foreign import lib "lib/miniaudio.a" }
-
+when ODIN_OS == .Windows {
+	foreign import lib "lib/miniaudio.lib"
+} else when ODIN_OS == .Linux {
+	foreign import lib "lib/miniaudio.a"
+} else {
+	foreign import lib "system:miniaudio"
+}
 
 /************************************************************************************************************************************************************
 *************************************************************************************************************************************************************

+ 8 - 5
vendor/miniaudio/decoding.odin

@@ -2,10 +2,13 @@ package miniaudio
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "lib/miniaudio.lib" }
-when ODIN_OS == .Linux   { foreign import lib "lib/miniaudio.a" }
-
-
+when ODIN_OS == .Windows {
+	foreign import lib "lib/miniaudio.lib"
+} else when ODIN_OS == .Linux {
+	foreign import lib "lib/miniaudio.a"
+} else {
+	foreign import lib "system:miniaudio"
+}
 
 /************************************************************************************************************************************************************
 
@@ -164,4 +167,4 @@ foreign lib {
 	decode_from_vfs :: proc(pVFS: ^vfs, pFilePath: cstring,    pConfig: ^decoder_config, pFrameCountOut: ^u64, ppPCMFramesOut: ^rawptr) -> result ---
 	decode_file     :: proc(pFilePath: cstring,                pConfig: ^decoder_config, pFrameCountOut: ^u64, ppPCMFramesOut: ^rawptr) -> result ---
 	decode_memory   :: proc(pData: rawptr, dataSize: c.size_t, pConfig: ^decoder_config, pFrameCountOut: ^u64, ppPCMFramesOut: ^rawptr) -> result ---
-}
+}

+ 7 - 2
vendor/miniaudio/device_io_procs.odin

@@ -1,7 +1,12 @@
 package miniaudio
 
-when ODIN_OS == .Windows { foreign import lib "lib/miniaudio.lib" }
-when ODIN_OS == .Linux   { foreign import lib "lib/miniaudio.a" }
+when ODIN_OS == .Windows {
+	foreign import lib "lib/miniaudio.lib"
+} else when ODIN_OS == .Linux {
+	foreign import lib "lib/miniaudio.a"
+} else {
+	foreign import lib "system:miniaudio"
+}
 
 import "core:c"
 

+ 4 - 4
vendor/miniaudio/device_io_types.odin

@@ -6,7 +6,7 @@ SUPPORT_WASAPI     :: ODIN_OS == .Windows
 SUPPORT_DSOUND     :: ODIN_OS == .Windows
 SUPPORT_WINMM      :: ODIN_OS == .Windows
 SUPPORT_COREAUDIO  :: ODIN_OS == .Darwin
-SUPPORT_SNDIO      :: false // ODIN_OS == .OpenBSD
+SUPPORT_SNDIO      :: ODIN_OS == .OpenBSD
 SUPPORT_AUDIO4     :: false // ODIN_OS == .OpenBSD || ODIN_OS == .NetBSD
 SUPPORT_OSS        :: ODIN_OS == .FreeBSD
 SUPPORT_PULSEAUDIO :: ODIN_OS == .Linux
@@ -739,8 +739,8 @@ context_type :: struct {
 			pa_stream_writable_size:            proc "system" (),
 			pa_stream_readable_size:            proc "system" (),
 
-			/*pa_mainloop**/ pMainLoop:     ptr,
-			/*pa_context**/  pPulseContext: ptr,
+			/*pa_mainloop**/ pMainLoop:     rawptr,
+			/*pa_context**/  pPulseContext: rawptr,
 		} when SUPPORT_PULSEAUDIO else struct {}),
 		
 		jack: (struct {
@@ -791,7 +791,7 @@ context_type :: struct {
 			AudioUnitInitialize:           proc "system" (),
 			AudioUnitRender:               proc "system" (),
 
-			/*AudioComponent*/ component: ptr,
+			/*AudioComponent*/ component: rawptr,
 			noAudioSessionDeactivate:     b32, /* For tracking whether or not the iOS audio session should be explicitly deactivated. Set from the config in ma_context_init__coreaudio(). */
 		} when SUPPORT_COREAUDIO else struct {}),
 		

+ 8 - 3
vendor/miniaudio/encoding.odin

@@ -2,8 +2,13 @@ package miniaudio
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "lib/miniaudio.lib" }
-when ODIN_OS == .Linux   { foreign import lib "lib/miniaudio.a" }
+when ODIN_OS == .Windows {
+	foreign import lib "lib/miniaudio.lib"
+} else when ODIN_OS == .Linux {
+	foreign import lib "lib/miniaudio.a"
+} else {
+	foreign import lib "system:miniaudio"
+}
 
 /************************************************************************************************************************************************************
 
@@ -49,4 +54,4 @@ foreign lib {
 	encoder_init_file_w      :: proc(pFilePath: [^]c.wchar_t, pConfig: ^encoder_config, pEncoder: ^encoder) -> result ---
 	encoder_uninit           :: proc(pEncoder: ^encoder) ---
 	encoder_write_pcm_frames :: proc(pEncoder: ^encoder, FramesIn: rawptr, frameCount: u64) -> u64 ---
-}
+}

+ 7 - 2
vendor/miniaudio/filtering.odin

@@ -1,7 +1,12 @@
 package miniaudio
 
-when ODIN_OS == .Windows { foreign import lib "lib/miniaudio.lib" }
-when ODIN_OS == .Linux   { foreign import lib "lib/miniaudio.a" }
+when ODIN_OS == .Windows {
+	foreign import lib "lib/miniaudio.lib"
+} else when ODIN_OS == .Linux {
+	foreign import lib "lib/miniaudio.a"
+} else {
+	foreign import lib "system:miniaudio"
+}
 
 /**************************************************************************************************************************************************************
 

+ 8 - 3
vendor/miniaudio/generation.odin

@@ -2,8 +2,13 @@ package miniaudio
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "lib/miniaudio.lib" }
-when ODIN_OS == .Linux   { foreign import lib "lib/miniaudio.a" }
+when ODIN_OS == .Windows {
+	foreign import lib "lib/miniaudio.lib"
+} else when ODIN_OS == .Linux {
+	foreign import lib "lib/miniaudio.a"
+} else {
+	foreign import lib "system:miniaudio"
+}
 
 waveform_type :: enum c.int {
 	sine,
@@ -82,4 +87,4 @@ foreign lib {
 	noise_set_amplitude   :: proc(pNoise: ^noise, amplitude: f64) -> result ---
 	noise_set_seed        :: proc(pNoise: ^noise, seed: i32) -> result ---
 	noise_set_type        :: proc(pNoise: ^noise, type: noise_type) -> result ---
-}
+}

+ 8 - 3
vendor/miniaudio/logging.odin

@@ -2,8 +2,13 @@ package miniaudio
 
 import c "core:c/libc"
 
-when ODIN_OS == .Windows { foreign import lib "lib/miniaudio.lib" }
-when ODIN_OS == .Linux   { foreign import lib "lib/miniaudio.a" }
+when ODIN_OS == .Windows {
+	foreign import lib "lib/miniaudio.lib"
+} else when ODIN_OS == .Linux {
+	foreign import lib "lib/miniaudio.a"
+} else {
+	foreign import lib "system:miniaudio"
+}
 
 MAX_LOG_CALLBACKS :: 4
 
@@ -32,4 +37,4 @@ foreign lib {
 	log_post                :: proc(pLog: ^log, level: u32, pMessage: cstring) -> result ---
 	log_postv               :: proc(pLog: ^log, level: u32, pFormat: cstring, args: c.va_list) -> result ---
 	log_postf               :: proc(pLog: ^log, level: u32, pFormat: cstring, #c_vararg args: ..any) -> result ---
-}
+}

+ 3 - 3
vendor/miniaudio/src/Makefile

@@ -1,6 +1,6 @@
 all:
 	mkdir -p ../lib
-	gcc -c -O2 -Os -fPIC miniaudio.c
-	ar rcs ../lib/miniaudio.a miniaudio.o
-	#gcc -fPIC -shared -Wl,-soname=miniaudio.so -o ../lib/miniaudio.so miniaudio.o
+	$(CC) -c -O2 -Os -fPIC miniaudio.c
+	$(AR) rcs ../lib/miniaudio.a miniaudio.o
+	#$(CC) -fPIC -shared -Wl,-soname=miniaudio.so -o ../lib/miniaudio.so miniaudio.o
 	rm *.o

+ 8 - 3
vendor/miniaudio/utilities.odin

@@ -1,7 +1,12 @@
 package miniaudio
 
-when ODIN_OS == .Windows { foreign import lib "lib/miniaudio.lib" }
-when ODIN_OS == .Linux   { foreign import lib "lib/miniaudio.a" }
+when ODIN_OS == .Windows {
+	foreign import lib "lib/miniaudio.lib"
+} else when ODIN_OS == .Linux {
+	foreign import lib "lib/miniaudio.a"
+} else {
+	foreign import lib "system:miniaudio"
+}
 
 @(default_calling_convention="c", link_prefix="ma_")
 foreign lib {
@@ -228,4 +233,4 @@ foreign lib {
 	audio_buffer_get_cursor_in_pcm_frames :: proc(pAudioBuffer: ^audio_buffer, pCursor: ^u64) -> result ---
 	audio_buffer_get_length_in_pcm_frames :: proc(pAudioBuffer: ^audio_buffer, pLength: ^u64) -> result ---
 	audio_buffer_get_available_frames     :: proc(pAudioBuffer: ^audio_buffer, pAvailableFrames: ^u64) -> result ---
-}
+}

+ 7 - 2
vendor/miniaudio/vfs.odin

@@ -2,8 +2,13 @@ package miniaudio
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "lib/miniaudio.lib" }
-when ODIN_OS == .Linux   { foreign import lib "lib/miniaudio.a" }
+when ODIN_OS == .Windows {
+	foreign import lib "lib/miniaudio.lib"
+} else when ODIN_OS == .Linux {
+	foreign import lib "lib/miniaudio.a"
+} else {
+	foreign import lib "system:miniaudio"
+}
 
 /************************************************************************************************************************************************************
 

+ 3 - 1
vendor/portmidi/portmidi.odin

@@ -9,6 +9,8 @@ when ODIN_OS == .Windows {
 		"system:Winmm.lib",
 		"system:Advapi32.lib",
 	}
+} else {
+	foreign import lib "system:portmidi"
 }
 
 #assert(size_of(b32) == size_of(c.int))
@@ -519,4 +521,4 @@ foreign lib {
 		WriteSysEx() writes a timestamped system-exclusive midi message.
 	*/
 	WriteSysEx :: proc(stream: Stream, whence: Timestamp, msg: cstring) -> Error ---
-}
+}

+ 6 - 2
vendor/portmidi/util.odin

@@ -7,7 +7,11 @@ package portmidi
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "portmidi_s.lib" }
+when ODIN_OS == .Windows {
+	foreign import lib "portmidi_s.lib"
+} else {
+	foreign import lib "system:portmidi"
+}
 
 
 Queue :: distinct rawptr
@@ -118,4 +122,4 @@ foreign lib {
 		state, returns .NoError if successfully set overflow state.
 	 */
 	SetOverflow  :: proc(queue: Queue) -> Error ---
-}
+}

+ 7 - 5
vendor/raylib/raylib.odin

@@ -99,15 +99,17 @@ when ODIN_OS == .Windows {
 		"system:User32.lib",
 		"system:Shell32.lib",
 	}
-}
-when ODIN_OS == .Linux  {
+} else when ODIN_OS == .Linux  {
 	foreign import lib { 
 		"linux/libraylib.a",
 		"system:dl",
 		"system:pthread",
 	}
+} else when ODIN_OS == .Darwin {
+	foreign import lib "macos/libraylib.a"
+} else {
+	foreign import lib "system:raylib"
 }
-when ODIN_OS == .Darwin { foreign import lib "macos/libraylib.a" }
 
 VERSION :: "4.0"
 
@@ -1150,9 +1152,9 @@ foreign lib {
 	DrawRectangleGradientH    :: proc(posX, posY, width, height: c.int, color1: Color, color2: Color) ---                                              // Draw a horizontal-gradient-filled rectangle
 	DrawRectangleGradientEx   :: proc(rec: Rectangle, col1, col2, col3, col4: Color) ---                                                               // Draw a gradient-filled rectangle with custom vertex colors
 	DrawRectangleLines        :: proc(posX, posY, width, height: c.int, color: Color) ---                                                              // Draw rectangle outline
-	DrawRectangleLinesEx      :: proc(rec: Rectangle, lineThick: c.int, color: Color) ---                                                              // Draw rectangle outline with extended parameters
+	DrawRectangleLinesEx      :: proc(rec: Rectangle, lineThick: f32, color: Color) ---                                                                // Draw rectangle outline with extended parameters
 	DrawRectangleRounded      :: proc(rec: Rectangle, roundness: f32, segments: c.int, color: Color) ---                                               // Draw rectangle with rounded edges
-	DrawRectangleRoundedLines :: proc(rec: Rectangle, roundness: f32, segments: c.int, lineThick: c.int, color: Color) ---                             // Draw rectangle with rounded edges outline
+	DrawRectangleRoundedLines :: proc(rec: Rectangle, roundness: f32, segments: c.int, lineThick: f32, color: Color) ---                               // Draw rectangle with rounded edges outline
 	DrawTriangle              :: proc(v1, v2, v3: Vector2, color: Color) ---                                                                           // Draw a color-filled triangle (vertex in counter-clockwise order!)
 	DrawTriangleLines         :: proc(v1, v2, v3: Vector2, color: Color) ---                                                                           // Draw triangle outline (vertex in counter-clockwise order!)
 	DrawTriangleFan           :: proc(points: [^]Vector2, pointsCount: c.int, color: Color) ---                                                        // Draw a triangle fan defined by points (first vertex is the center)

+ 7 - 3
vendor/raylib/rlgl.odin

@@ -10,9 +10,13 @@ when ODIN_OS == .Windows {
 		"system:User32.lib",
 		"system:Shell32.lib",
 	}
+} else when ODIN_OS == .Linux  {
+	foreign import lib "linux/libraylib.a"
+} else when ODIN_OS == .Darwin {
+	foreign import lib "macos/libraylib.a"
+} else {
+	foreign import lib "system:raylib"
 }
-when ODIN_OS == .Linux  { foreign import lib "linux/libraylib.a" }
-when ODIN_OS == .Darwin { foreign import lib "macos/libraylib.a" }
 
 GRAPHICS_API_OPENGL_11  :: false
 GRAPHICS_API_OPENGL_21  :: true
@@ -378,4 +382,4 @@ foreign lib {
 	// Quick and dirty cube/quad buffers load->draw->unload
 	rlLoadDrawCube :: proc() --- // Load and draw a cube
 	rlLoadDrawQuad :: proc() --- // Load and draw a quad
-}
+}

+ 6 - 5
vendor/sdl2/image/sdl_image.odin

@@ -3,10 +3,11 @@ package sdl2_image
 import "core:c"
 import SDL ".."
 
-when ODIN_OS == .Windows { foreign import lib "SDL2_image.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2_image" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2_image" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2_image" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2_image.lib"
+} else {
+	foreign import lib "system:SDL2_image"
+}
 
 bool :: SDL.bool
 
@@ -119,4 +120,4 @@ foreign lib {
 
 	/* Individual loading functions */
 	LoadGIFAnimation_RW :: proc(src: ^SDL.RWops) -> ^Animation ---
-}
+}

+ 5 - 5
vendor/sdl2/mixer/sdl_mixer.odin

@@ -3,11 +3,11 @@ package sdl2_mixer
 import "core:c"
 import SDL ".."
 
-when ODIN_OS == .Windows { foreign import lib "SDL2_mixer.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2_mixer" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2_mixer" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2_mixer" }
-
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2_mixer.lib"
+} else {
+	foreign import lib "system:SDL2_mixer"
+}
 
 MAJOR_VERSION :: 2
 MINOR_VERSION :: 0

+ 6 - 5
vendor/sdl2/net/sdl_net.odin

@@ -3,10 +3,11 @@ package sdl2_net
 import "core:c"
 import SDL ".."
 
-when ODIN_OS == .Windows { foreign import lib "SDL2_net.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2_net" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2_net" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2_net" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2_net.lib"
+} else {
+	foreign import lib "system:SDL2_net"
+}
 
 bool :: SDL.bool
 
@@ -188,4 +189,4 @@ Read16 :: #force_inline proc "c" (areap: rawptr) -> u16 {
 Read32 :: #force_inline proc "c" (areap: rawptr) -> u32 {
 	area := (^[4]u8)(areap)
 	return u32(area[0])<<24 | u32(area[1])<<16 | u32(area[2])<<8 | u32(area[3])
-}
+}

+ 6 - 5
vendor/sdl2/sdl2.odin

@@ -25,10 +25,11 @@ package sdl2
 import "core:c"
 import "core:intrinsics"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 version :: struct {
 	major: u8,        /**< major version */
@@ -314,4 +315,4 @@ foreign lib {
 	IsShapedWindow      :: proc(window: ^Window) -> bool ---
 	SetWindowShape      :: proc(window: ^Window, shape: ^Surface, shape_mode: ^WindowShapeMode) -> c.int ---
 	GetShapedWindowMode :: proc(window: ^Window, shape_mode: ^WindowShapeMode) -> c.int ---
-}
+}

+ 5 - 4
vendor/sdl2/sdl_audio.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 /**
  *  \brief Audio format flags.

+ 6 - 5
vendor/sdl2/sdl_blendmode.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 /**
  *  \brief The blend mode used in SDL_RenderCopy() and drawing operations.
@@ -62,4 +63,4 @@ BlendFactor :: enum c.int  {
 foreign lib {
 	ComposeCustomBlendMode :: proc(srcColorFactor, dstColorFactor: BlendFactor, colorOperation: BlendOperation,
 	                               srcAlphaFactor, dstAlphaFactor: BlendFactor, alphaOperation: BlendOperation) -> BlendMode ---
-}
+}

+ 6 - 5
vendor/sdl2/sdl_cpuinfo.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 /* This is a guess for the cacheline size used for padding.
  * Most x86 processors have a 64 byte cache line.
@@ -41,4 +42,4 @@ foreign lib {
 	SIMDAlloc           :: proc(len: c.size_t) -> rawptr ---
 	SIMDRealloc         :: proc(mem: rawptr, len: c.size_t) -> rawptr ---
 	SIMDFree            :: proc(ptr: rawptr) ---
-}
+}

+ 6 - 5
vendor/sdl2/sdl_events.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 RELEASED :: 0
 PRESSED  :: 1
@@ -498,4 +499,4 @@ foreign lib {
 	FilterEvents     :: proc(filter: EventFilter, userdata: rawptr) ---
 	EventState       :: proc(type: EventType, state: c.int) -> u8 ---
 	RegisterEvents   :: proc(numevents: c.int) -> u32 ---
-}
+}

+ 5 - 4
vendor/sdl2/sdl_gamecontroller.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 GameController :: struct {}
 

+ 6 - 5
vendor/sdl2/sdl_gesture_haptic.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 // Gesture
 
@@ -259,4 +260,4 @@ foreign lib {
 	HapticRumbleInit        :: proc(haptic: ^Haptic) -> c.int ---
 	HapticRumblePlay        :: proc(haptic: ^Haptic, strength: f32, length: u32) -> c.int ---
 	HapticRumbleStop        :: proc(haptic: ^Haptic) -> c.int ---
-}
+}

+ 6 - 5
vendor/sdl2/sdl_hints.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 HINT_ACCELEROMETER_AS_JOYSTICK                :: "SDL_ACCELEROMETER_AS_JOYSTICK"
 HINT_ALLOW_ALT_TAB_WHILE_GRABBED              :: "SDL_ALLOW_ALT_TAB_WHILE_GRABBED"
@@ -146,4 +147,4 @@ foreign lib {
 	AddHintCallback     :: proc(name: cstring, callback: HintCallback, userdata: rawptr) ---
 	DelHintCallback     :: proc(name: cstring, callback: HintCallback, userdata: rawptr) ---
 	ClearHints          :: proc() ---
-}
+}

+ 6 - 5
vendor/sdl2/sdl_joystick.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 Joystick :: struct {}
 
@@ -106,4 +107,4 @@ foreign lib {
 	JoystickSendEffect              :: proc(joystick: ^Joystick, data: rawptr, size: c.int) -> c.int ---
 	JoystickClose                   :: proc(joystick: ^Joystick) ---
 	JoystickCurrentPowerLevel       :: proc(joystick: ^Joystick) -> JoystickPowerLevel ---
-}
+}

+ 5 - 4
vendor/sdl2/sdl_keyboard.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 Keysym :: struct {
 	scancode: Scancode, /**< SDL physical key code - see ::SDL_Scancode for details */

+ 6 - 5
vendor/sdl2/sdl_log.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 MAX_LOG_MESSAGE :: 4096
 
@@ -74,4 +75,4 @@ foreign lib {
 	// LogMessageV          :: proc(category: c.int, priority: LogPriority, fmt: cstring, ap: va_list) ---
 	LogGetOutputFunction :: proc(callback: ^LogOutputFunction, userdata: ^rawptr) ---
 	LogSetOutputFunction :: proc(callback: LogOutputFunction, userdata: rawptr) ---
-}
+}

+ 5 - 4
vendor/sdl2/sdl_messagebox.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 MessageBoxFlag :: enum u32 {
 	_ = 0,

+ 6 - 5
vendor/sdl2/sdl_metal.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 MetalView :: distinct rawptr
 
@@ -15,4 +16,4 @@ foreign lib {
 	Metal_DestroyView     :: proc(view: MetalView) ---
 	Metal_GetLayer        :: proc(view: MetalView) -> rawptr ---
 	Metal_GetDrawableSize :: proc(window: ^Window, w, h: ^c.int) ---
-}
+}

+ 6 - 5
vendor/sdl2/sdl_mouse.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 Cursor :: struct {}
 
@@ -61,4 +62,4 @@ foreign lib {
 	GetDefaultCursor      :: proc() -> ^Cursor ---
 	FreeCursor            :: proc(cursor: ^Cursor) ---
 	ShowCursor            :: proc(toggle: c.int) -> c.int ---
-}
+}

+ 6 - 5
vendor/sdl2/sdl_mutex.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 MUTEX_TIMEDOUT :: 1
 MUTEX_MAXWAIT  :: ~u32(0)
@@ -41,4 +42,4 @@ foreign lib {
 	CondBroadcast   :: proc(cv: ^cond) -> c.int ---
 	CondWait        :: proc(cv: ^cond, m: ^mutex) -> c.int ---
 	CondWaitTimeout :: proc(cv: ^cond, m: ^mutex, ms: u32) -> c.int ---
-}
+}

+ 6 - 5
vendor/sdl2/sdl_pixels.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 ALPHA_OPAQUE      :: 255
 ALPHA_TRANSPARENT ::   0
@@ -234,4 +235,4 @@ foreign lib {
 	GetRGB                 :: proc(pixel: u32, format: ^PixelFormat, r, g, b: ^u8) ---
 	GetRGBA                :: proc(pixel: u32, format: ^PixelFormat, r, g, b, a: ^u8) ---
 	CalculateGammaRamp     :: proc(gamma: f32, ramp: ^[256]u16) ---
-}
+}

+ 6 - 5
vendor/sdl2/sdl_rect.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 Point :: struct {
 	x: c.int,
@@ -47,4 +48,4 @@ foreign lib {
 	UnionRect            :: proc(A, B: ^Rect, result: ^Rect) ---
 	EnclosePoints        :: proc(points: [^]Point, count: c.int, clip: ^Rect, result: ^Rect) -> bool ---
 	IntersectRectAndLine :: proc(rect: ^Rect, X1, Y1, X2, Y2: ^c.int) -> bool ---
-}
+}

+ 6 - 5
vendor/sdl2/sdl_render.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 RendererFlag :: enum u32 {
 	SOFTWARE      = 0, /**< The renderer is a software fallback */
@@ -140,4 +141,4 @@ foreign lib {
 	GL_UnbindTexture             :: proc(texture:  ^Texture) -> c.int ---
 	RenderGetMetalLayer          :: proc(renderer: ^Renderer) -> rawptr ---
 	RenderGetMetalCommandEncoder :: proc(renderer: ^Renderer) -> rawptr ---
-}
+}

+ 6 - 5
vendor/sdl2/sdl_rwops.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 /* RWops Types */
 RWOPS_UNKNOWN   :: 0 /**< Unknown stream type */
@@ -105,4 +106,4 @@ foreign lib {
 	WriteBE32 :: proc(dst: ^RWops, value: ^u32) -> c.size_t ---
 	WriteLE64 :: proc(dst: ^RWops, value: ^u64) -> c.size_t ---
 	WriteBE64 :: proc(dst: ^RWops, value: ^u64) -> c.size_t ---
-}
+}

+ 6 - 5
vendor/sdl2/sdl_stdinc.odin

@@ -5,10 +5,11 @@ import "core:intrinsics"
 import "core:runtime"
 _, _ :: intrinsics, runtime
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 bool :: distinct b32
 #assert(size_of(bool) == size_of(c.int))
@@ -160,4 +161,4 @@ iconv_utf8_ucs2 :: proc "c" (s: string) -> [^]u16 {
 iconv_utf8_utf32 :: iconv_utf8_ucs4
 iconv_utf8_ucs4 :: proc "c" (s: string) -> [^]rune {
 	return cast([^]rune)iconv_string("UCS-4-INTERNAL", "UTF-8", cstring(raw_data(s)), len(s)+1)
-}
+}

+ 6 - 5
vendor/sdl2/sdl_surface.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 SWSURFACE       :: 0           /**< Just here for compatibility */
 PREALLOC        :: 0x00000001  /**< Surface uses preallocated memory */
@@ -108,4 +109,4 @@ foreign lib {
 	SetYUVConversionMode              :: proc(mode: YUV_CONVERSION_MODE) ---
 	GetYUVConversionMode              :: proc() -> YUV_CONVERSION_MODE ---
 	GetYUVConversionModeForResolution :: proc(width, height: c.int) -> YUV_CONVERSION_MODE ---
-}
+}

+ 6 - 5
vendor/sdl2/sdl_system.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 // General
 @(default_calling_convention="c", link_prefix="SDL_")
@@ -122,4 +123,4 @@ foreign lib {
 	AndroidGetExternalStoragePath  :: proc() -> cstring ---
 	AndroidRequestPermission       :: proc(permission: cstring) -> bool ---
 	AndroidShowToast               :: proc(message: cstring, duration, gravity, xoffset, yoffset: c.int) -> c.int ---
-}
+}

+ 6 - 5
vendor/sdl2/sdl_syswm.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 SYSWM_TYPE :: enum c.int {
 	UNKNOWN,
@@ -105,4 +106,4 @@ SysWMinfo :: struct {
 @(default_calling_convention="c", link_prefix="SDL_")
 foreign lib {
 	GetWindowWMInfo :: proc(window: ^Window, info: ^SysWMinfo) -> bool ---
-}
+}

+ 5 - 4
vendor/sdl2/sdl_thread.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 Thread :: struct {}
 

+ 6 - 5
vendor/sdl2/sdl_timer.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 TimerCallback :: proc "c" (interval: u32, param: rawptr) -> u32
 TimerID :: distinct c.int
@@ -22,4 +23,4 @@ foreign lib {
 	Delay                   :: proc(ms: u32) ---
 	AddTimer                :: proc(interval: u32, callback: TimerCallback, param: rawptr) -> TimerID ---
 	RemoveTimer             :: proc(id: TimerID) -> bool ---
-}
+}

+ 6 - 5
vendor/sdl2/sdl_touch.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 TouchID  :: distinct i64
 FingerID :: distinct i64
@@ -34,4 +35,4 @@ foreign lib {
 	GetTouchDeviceType :: proc(touchID: TouchID) -> TouchDeviceType ---
 	GetNumTouchFingers :: proc(touchID: TouchID) -> c.int ---
 	GetTouchFinger     :: proc(touchID: TouchID, index: c.int) -> ^Finger ---
-}
+}

+ 6 - 5
vendor/sdl2/sdl_video.odin

@@ -2,10 +2,11 @@ package sdl2
 
 import "core:c"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 DisplayMode :: struct {
 	format:       u32,    /**< pixel format */
@@ -310,4 +311,4 @@ foreign lib {
 // Used by vendor:OpenGL
 gl_set_proc_address :: proc(p: rawptr, name: cstring) {
 	(^rawptr)(p)^ = GL_GetProcAddress(name)
-}
+}

+ 6 - 5
vendor/sdl2/sdl_vulkan.odin

@@ -3,10 +3,11 @@ package sdl2
 import "core:c"
 import vk "vendor:vulkan"
 
-when ODIN_OS == .Windows { foreign import lib "SDL2.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2.lib"
+} else {
+	foreign import lib "system:SDL2"
+}
 
 VkInstance   :: vk.Instance
 VkSurfaceKHR :: vk.SurfaceKHR
@@ -22,4 +23,4 @@ foreign lib {
 	Vulkan_GetInstanceExtensions    :: proc(window: ^Window, pCount: ^c.uint, pNames: [^]cstring) -> bool ---
 	Vulkan_CreateSurface            :: proc(window: ^Window, instance: VkInstance, surface: ^VkSurfaceKHR) -> bool ---
 	Vulkan_GetDrawableSize          :: proc(window: ^Window, w, h: ^c.int) ---
-}
+}

+ 6 - 5
vendor/sdl2/ttf/sdl_ttf.odin

@@ -3,10 +3,11 @@ package sdl2_ttf
 import "core:c"
 import SDL ".."
 
-when ODIN_OS == .Windows { foreign import lib "SDL2_ttf.lib"    }
-when ODIN_OS == .Linux   { foreign import lib "system:SDL2_ttf" }
-when ODIN_OS == .Darwin  { foreign import lib "system:SDL2_ttf" }
-when ODIN_OS == .FreeBSD { foreign import lib "system:SDL2_ttf" }
+when ODIN_OS == .Windows {
+	foreign import lib "SDL2_ttf.lib"
+} else {
+	foreign import lib "system:SDL2_ttf"
+}
 
 bool :: SDL.bool
 
@@ -163,4 +164,4 @@ foreign lib {
 
 	SetFontSDF :: proc(font: ^Font, on_off: bool) -> c.int ---
 	GetFontSDF :: proc(font: ^Font) -> bool ---
-}
+}

+ 13 - 13
vendor/stb/src/Makefile

@@ -1,16 +1,16 @@
 all:
 	mkdir -p ../lib
-	gcc -c -O2 -Os -fPIC stb_image.c stb_image_write.c stb_image_resize.c stb_truetype.c stb_rect_pack.c stb_vorbis.c
-	ar rcs ../lib/stb_image.a        stb_image.o
-	ar rcs ../lib/stb_image_write.a  stb_image_write.o
-	ar rcs ../lib/stb_image_resize.a stb_image_resize.o
-	ar rcs ../lib/stb_truetype.a     stb_truetype.o
-	ar rcs ../lib/stb_rect_pack.a    stb_rect_pack.o
-	#ar rcs ../lib/stb_vorbis_pack.a  stb_vorbis_pack.o
-	#gcc -fPIC -shared -Wl,-soname=stb_image.so         -o ../lib/stb_image.so        stb_image.o
-	#gcc -fPIC -shared -Wl,-soname=stb_image_write.so   -o ../lib/stb_image_write.so  stb_image_write.o
-	#gcc -fPIC -shared -Wl,-soname=stb_image_resize.so  -o ../lib/stb_image_resize.so stb_image_resize.o
-	#gcc -fPIC -shared -Wl,-soname=stb_truetype.so      -o ../lib/stb_truetype.so     stb_image_truetype.o
-	#gcc -fPIC -shared -Wl,-soname=stb_rect_pack.so     -o ../lib/stb_rect_pack.so    stb_rect_packl.o
-	#gcc -fPIC -shared -Wl,-soname=stb_vorbis.so        -o ../lib/stb_vorbis.so       stb_vorbisl.o
+	$(CC) -c -O2 -Os -fPIC stb_image.c stb_image_write.c stb_image_resize.c stb_truetype.c stb_rect_pack.c stb_vorbis.c
+	$(AR) rcs ../lib/stb_image.a        stb_image.o
+	$(AR) rcs ../lib/stb_image_write.a  stb_image_write.o
+	$(AR) rcs ../lib/stb_image_resize.a stb_image_resize.o
+	$(AR) rcs ../lib/stb_truetype.a     stb_truetype.o
+	$(AR) rcs ../lib/stb_rect_pack.a    stb_rect_pack.o
+	#$(AR) rcs ../lib/stb_vorbis_pack.a  stb_vorbis_pack.o
+	#$(CC) -fPIC -shared -Wl,-soname=stb_image.so         -o ../lib/stb_image.so        stb_image.o
+	#$(CC) -fPIC -shared -Wl,-soname=stb_image_write.so   -o ../lib/stb_image_write.so  stb_image_write.o
+	#$(CC) -fPIC -shared -Wl,-soname=stb_image_resize.so  -o ../lib/stb_image_resize.so stb_image_resize.o
+	#$(CC) -fPIC -shared -Wl,-soname=stb_truetype.so      -o ../lib/stb_truetype.so     stb_image_truetype.o
+	#$(CC) -fPIC -shared -Wl,-soname=stb_rect_pack.so     -o ../lib/stb_rect_pack.so    stb_rect_packl.o
+	#$(CC) -fPIC -shared -Wl,-soname=stb_vorbis.so        -o ../lib/stb_vorbis.so       stb_vorbisl.o
 	rm *.o