diff options
| author | gingerBill <bill@gingerbill.org> | 2022-03-03 13:54:31 +0000 |
|---|---|---|
| committer | gingerBill <bill@gingerbill.org> | 2022-03-03 13:54:31 +0000 |
| commit | 0b05650366258a56c8da17848e238a21a377afb3 (patch) | |
| tree | 84775a991a07ef462295ed982c33797b923e72bd | |
| parent | 96e36c7c395025a7db5f37675eddbf6d143f3fff (diff) | |
| parent | 16c6dbcbe52366e8cd86054d7625931b72827c31 (diff) | |
Merge branch 'master' of https://github.com/odin-lang/Odin
59 files changed, 386 insertions, 253 deletions
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 89b7ffa10..885612f13 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1,3 +1,4 @@ # These are supported funding model platforms +github: odin-lang patreon: gingerbill diff --git a/core/crypto/rand_generic.odin b/core/crypto/rand_generic.odin index 10edc1c8a..52abfe4d7 100644 --- a/core/crypto/rand_generic.odin +++ b/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") } diff --git a/core/crypto/rand_windows.odin b/core/crypto/rand_windows.odin new file mode 100644 index 000000000..53b58c776 --- /dev/null +++ b/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)) + } + } +} diff --git a/core/fmt/fmt.odin b/core/fmt/fmt.odin index d6c1894b7..d006d0ef8 100644 --- a/core/fmt/fmt.odin +++ b/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') diff --git a/examples/all/all_vendor.odin b/examples/all/all_vendor.odin index 9aa109e5b..f83e906a2 100644 --- a/examples/all/all_vendor.odin +++ b/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
\ No newline at end of file +_ :: CA diff --git a/examples/all/all_vendor_directx.odin b/examples/all/all_vendor_directx.odin new file mode 100644 index 000000000..2f10d92f8 --- /dev/null +++ b/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 diff --git a/examples/all/all_vendor_stl.odin b/examples/all/all_vendor_stl.odin new file mode 100644 index 000000000..9faf53c63 --- /dev/null +++ b/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 + diff --git a/vendor/ENet/unix.odin b/vendor/ENet/unix.odin index ea6b84199..05ce41e05 100644 --- a/vendor/ENet/unix.odin +++ b/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) -}
\ No newline at end of file +} diff --git a/vendor/botan/bindings/botan.odin b/vendor/botan/bindings/botan.odin index 3eaad0bc1..a12706e95 100644 --- a/vendor/botan/bindings/botan.odin +++ b/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" } diff --git a/vendor/glfw/bindings/bindings.odin b/vendor/glfw/bindings/bindings.odin index f4e39015e..aa1578153 100644 --- a/vendor/glfw/bindings/bindings.odin +++ b/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)) diff --git a/vendor/miniaudio/common.odin b/vendor/miniaudio/common.odin index 75b66101f..89e3d6bd2 100644 --- a/vendor/miniaudio/common.odin +++ b/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 diff --git a/vendor/miniaudio/data_conversion.odin b/vendor/miniaudio/data_conversion.odin index 8a53cc19e..7167270a1 100644 --- a/vendor/miniaudio/data_conversion.odin +++ b/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" +} /************************************************************************************************************************************************************ ************************************************************************************************************************************************************* diff --git a/vendor/miniaudio/decoding.odin b/vendor/miniaudio/decoding.odin index 52b315f10..dcf3b7a1a 100644 --- a/vendor/miniaudio/decoding.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/miniaudio/device_io_procs.odin b/vendor/miniaudio/device_io_procs.odin index 8d6609186..7cff3f621 100644 --- a/vendor/miniaudio/device_io_procs.odin +++ b/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" diff --git a/vendor/miniaudio/device_io_types.odin b/vendor/miniaudio/device_io_types.odin index 7778e85cf..e05f94665 100644 --- a/vendor/miniaudio/device_io_types.odin +++ b/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 {}), diff --git a/vendor/miniaudio/encoding.odin b/vendor/miniaudio/encoding.odin index 83f9d5252..9b84108dc 100644 --- a/vendor/miniaudio/encoding.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/miniaudio/filtering.odin b/vendor/miniaudio/filtering.odin index 4956da173..9949f6338 100644 --- a/vendor/miniaudio/filtering.odin +++ b/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" +} /************************************************************************************************************************************************************** diff --git a/vendor/miniaudio/generation.odin b/vendor/miniaudio/generation.odin index c241f00b1..97b7d453c 100644 --- a/vendor/miniaudio/generation.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/miniaudio/logging.odin b/vendor/miniaudio/logging.odin index 35aa54bc9..0c14a10c2 100644 --- a/vendor/miniaudio/logging.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/miniaudio/src/Makefile b/vendor/miniaudio/src/Makefile index 7ff72ebdc..3c61b5e2f 100644 --- a/vendor/miniaudio/src/Makefile +++ b/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 diff --git a/vendor/miniaudio/utilities.odin b/vendor/miniaudio/utilities.odin index 19307a77d..9ced019f5 100644 --- a/vendor/miniaudio/utilities.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/miniaudio/vfs.odin b/vendor/miniaudio/vfs.odin index 547fbd265..85571341e 100644 --- a/vendor/miniaudio/vfs.odin +++ b/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" +} /************************************************************************************************************************************************************ diff --git a/vendor/portmidi/portmidi.odin b/vendor/portmidi/portmidi.odin index 40fd18b8b..a3db4191c 100644 --- a/vendor/portmidi/portmidi.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/portmidi/util.odin b/vendor/portmidi/util.odin index ca2e1f4ca..caf73f8ad 100644 --- a/vendor/portmidi/util.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/raylib/raylib.odin b/vendor/raylib/raylib.odin index 0c8248683..ec057cd78 100644 --- a/vendor/raylib/raylib.odin +++ b/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) diff --git a/vendor/raylib/rlgl.odin b/vendor/raylib/rlgl.odin index 936a34765..7e7f2feea 100644 --- a/vendor/raylib/rlgl.odin +++ b/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 -}
\ No newline at end of file +} diff --git a/vendor/sdl2/image/sdl_image.odin b/vendor/sdl2/image/sdl_image.odin index 30a7db6a8..204ec9a0d 100644 --- a/vendor/sdl2/image/sdl_image.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/sdl2/mixer/sdl_mixer.odin b/vendor/sdl2/mixer/sdl_mixer.odin index 7fa3f216f..b0c16871d 100644 --- a/vendor/sdl2/mixer/sdl_mixer.odin +++ b/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 diff --git a/vendor/sdl2/net/sdl_net.odin b/vendor/sdl2/net/sdl_net.odin index b3e2c2e62..579f245e5 100644 --- a/vendor/sdl2/net/sdl_net.odin +++ b/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]) -}
\ No newline at end of file +} diff --git a/vendor/sdl2/sdl2.odin b/vendor/sdl2/sdl2.odin index e36c002dd..24ecc38e6 100644 --- a/vendor/sdl2/sdl2.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/sdl2/sdl_audio.odin b/vendor/sdl2/sdl_audio.odin index a03031165..28a59d947 100644 --- a/vendor/sdl2/sdl_audio.odin +++ b/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. diff --git a/vendor/sdl2/sdl_blendmode.odin b/vendor/sdl2/sdl_blendmode.odin index 525cf0f38..4fde5111b 100644 --- a/vendor/sdl2/sdl_blendmode.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/sdl2/sdl_cpuinfo.odin b/vendor/sdl2/sdl_cpuinfo.odin index 7d2e681fe..c5175e4d5 100644 --- a/vendor/sdl2/sdl_cpuinfo.odin +++ b/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) --- -}
\ No newline at end of file +} diff --git a/vendor/sdl2/sdl_events.odin b/vendor/sdl2/sdl_events.odin index 3f58b51c3..29f6e8a43 100644 --- a/vendor/sdl2/sdl_events.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/sdl2/sdl_gamecontroller.odin b/vendor/sdl2/sdl_gamecontroller.odin index 9fef6b1ab..76e0b8966 100644 --- a/vendor/sdl2/sdl_gamecontroller.odin +++ b/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 {} diff --git a/vendor/sdl2/sdl_gesture_haptic.odin b/vendor/sdl2/sdl_gesture_haptic.odin index 1c8616e99..a21e0df06 100644 --- a/vendor/sdl2/sdl_gesture_haptic.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/sdl2/sdl_hints.odin b/vendor/sdl2/sdl_hints.odin index a84e5a090..913d4ea12 100644 --- a/vendor/sdl2/sdl_hints.odin +++ b/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() --- -}
\ No newline at end of file +} diff --git a/vendor/sdl2/sdl_joystick.odin b/vendor/sdl2/sdl_joystick.odin index 1178eae24..35ca5cdcc 100644 --- a/vendor/sdl2/sdl_joystick.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/sdl2/sdl_keyboard.odin b/vendor/sdl2/sdl_keyboard.odin index a68c644ab..f880286aa 100644 --- a/vendor/sdl2/sdl_keyboard.odin +++ b/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 */ diff --git a/vendor/sdl2/sdl_log.odin b/vendor/sdl2/sdl_log.odin index d42d82b77..09b7eaef0 100644 --- a/vendor/sdl2/sdl_log.odin +++ b/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) --- -}
\ No newline at end of file +} diff --git a/vendor/sdl2/sdl_messagebox.odin b/vendor/sdl2/sdl_messagebox.odin index c66cc4911..6228704ac 100644 --- a/vendor/sdl2/sdl_messagebox.odin +++ b/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, diff --git a/vendor/sdl2/sdl_metal.odin b/vendor/sdl2/sdl_metal.odin index 953c6d45f..1eccf7f5a 100644 --- a/vendor/sdl2/sdl_metal.odin +++ b/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) --- -}
\ No newline at end of file +} diff --git a/vendor/sdl2/sdl_mouse.odin b/vendor/sdl2/sdl_mouse.odin index 5ca8d9b5e..13220c94b 100644 --- a/vendor/sdl2/sdl_mouse.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/sdl2/sdl_mutex.odin b/vendor/sdl2/sdl_mutex.odin index 6b9c96319..1fd5849e0 100644 --- a/vendor/sdl2/sdl_mutex.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/sdl2/sdl_pixels.odin b/vendor/sdl2/sdl_pixels.odin index 3cd2da5f4..8ee06aa1a 100644 --- a/vendor/sdl2/sdl_pixels.odin +++ b/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) --- -}
\ No newline at end of file +} diff --git a/vendor/sdl2/sdl_rect.odin b/vendor/sdl2/sdl_rect.odin index b0d6242be..852309cd2 100644 --- a/vendor/sdl2/sdl_rect.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/sdl2/sdl_render.odin b/vendor/sdl2/sdl_render.odin index 435c40570..57845235b 100644 --- a/vendor/sdl2/sdl_render.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/sdl2/sdl_rwops.odin b/vendor/sdl2/sdl_rwops.odin index 3bee66290..86fb23c75 100644 --- a/vendor/sdl2/sdl_rwops.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/sdl2/sdl_stdinc.odin b/vendor/sdl2/sdl_stdinc.odin index 9bd5df4da..97722f4fe 100644 --- a/vendor/sdl2/sdl_stdinc.odin +++ b/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) -}
\ No newline at end of file +} diff --git a/vendor/sdl2/sdl_surface.odin b/vendor/sdl2/sdl_surface.odin index e5a5da7ef..f50de35f7 100644 --- a/vendor/sdl2/sdl_surface.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/sdl2/sdl_system.odin b/vendor/sdl2/sdl_system.odin index 89ae4c707..d9b6b98df 100644 --- a/vendor/sdl2/sdl_system.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/sdl2/sdl_syswm.odin b/vendor/sdl2/sdl_syswm.odin index 37da1d298..62ca9d628 100644 --- a/vendor/sdl2/sdl_syswm.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/sdl2/sdl_thread.odin b/vendor/sdl2/sdl_thread.odin index 98354438b..5d1c0bd37 100644 --- a/vendor/sdl2/sdl_thread.odin +++ b/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 {} diff --git a/vendor/sdl2/sdl_timer.odin b/vendor/sdl2/sdl_timer.odin index 357fdd437..d71ed2da5 100644 --- a/vendor/sdl2/sdl_timer.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/sdl2/sdl_touch.odin b/vendor/sdl2/sdl_touch.odin index d90939cb9..f2a8cc695 100644 --- a/vendor/sdl2/sdl_touch.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/sdl2/sdl_video.odin b/vendor/sdl2/sdl_video.odin index 01aaee1e7..86b564541 100644 --- a/vendor/sdl2/sdl_video.odin +++ b/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) -}
\ No newline at end of file +} diff --git a/vendor/sdl2/sdl_vulkan.odin b/vendor/sdl2/sdl_vulkan.odin index 66b054524..33bb8e51c 100644 --- a/vendor/sdl2/sdl_vulkan.odin +++ b/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) --- -}
\ No newline at end of file +} diff --git a/vendor/sdl2/ttf/sdl_ttf.odin b/vendor/sdl2/ttf/sdl_ttf.odin index 8cd1df505..ca9beded0 100644 --- a/vendor/sdl2/ttf/sdl_ttf.odin +++ b/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 --- -}
\ No newline at end of file +} diff --git a/vendor/stb/src/Makefile b/vendor/stb/src/Makefile index c65aa7263..5504fede9 100644 --- a/vendor/stb/src/Makefile +++ b/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 |