aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/container/xar/xar.odin4
-rw-r--r--core/crypto/_edwards25519/tools/edwards_gen_tables.odin8
-rw-r--r--core/crypto/_weierstrass/tools/ecc_gen_tables.odin8
-rw-r--r--core/encoding/xml/example/xml_example.odin22
-rw-r--r--core/hash/crc32.odin2
-rw-r--r--core/hash/hash.odin9
-rw-r--r--core/math/rand/rand_xoshiro256.odin12
-rw-r--r--core/net/dns.odin6
-rw-r--r--core/os/process.odin34
-rw-r--r--core/os/process_freebsd.odin8
-rw-r--r--core/os/process_js.odin4
-rw-r--r--core/os/process_linux.odin25
-rw-r--r--core/os/process_netbsd.odin5
-rw-r--r--core/os/process_openbsd.odin2
-rw-r--r--core/os/process_posix.odin14
-rw-r--r--core/os/process_posix_darwin.odin22
-rw-r--r--core/os/process_wasi.odin4
-rw-r--r--core/os/process_windows.odin48
-rw-r--r--core/sync/atomic.odin4
-rw-r--r--core/time/time.odin5
-rw-r--r--core/unicode/tools/generate_entity_table.odin20
-rw-r--r--tests/core/time/test_core_time.odin4
-rw-r--r--vendor/directx/d3d11/d3d11.odin34
-rw-r--r--vendor/directx/d3d12/d3d12.odin12
-rw-r--r--vendor/directx/d3d_common/d3d_common.odin25
-rw-r--r--vendor/directx/d3d_compiler/d3d_compiler.odin58
-rw-r--r--vendor/directx/dxc/dxcapi.odin5
-rw-r--r--vendor/directx/dxgi/dxgi.odin1
-rw-r--r--vendor/miniaudio/logging.odin6
29 files changed, 244 insertions, 167 deletions
diff --git a/core/container/xar/xar.odin b/core/container/xar/xar.odin
index e7215af71..32dcf13d3 100644
--- a/core/container/xar/xar.odin
+++ b/core/container/xar/xar.odin
@@ -481,7 +481,7 @@ array_iterate_by_val :: proc(it: ^Array_Iterator($T, $SHIFT)) -> (val: T, idx: i
val = array_get(it.xar, it.idx)
idx = it.idx
it.idx += 1
- return val, true
+ return val, idx, true
}
@@ -502,7 +502,7 @@ array_iterate_by_ptr :: proc(it: ^Array_Iterator($T, $SHIFT)) -> (val: ^T, idx:
val = array_get_ptr(it.xar, it.idx)
idx = it.idx
it.idx += 1
- return val, true
+ return val, idx, true
}
diff --git a/core/crypto/_edwards25519/tools/edwards_gen_tables.odin b/core/crypto/_edwards25519/tools/edwards_gen_tables.odin
index d05534d9d..a204e6ac6 100644
--- a/core/crypto/_edwards25519/tools/edwards_gen_tables.odin
+++ b/core/crypto/_edwards25519/tools/edwards_gen_tables.odin
@@ -1,4 +1,4 @@
-package weistrass_tools
+package edwards_tools
import ed "core:crypto/_edwards25519"
import field "core:crypto/_fiat/field_curve25519"
@@ -78,7 +78,11 @@ main :: proc() {
}
}
- fn := path.join({ODIN_ROOT, "core", "crypto", "_edwards25519", "edwards25519_table.odin"})
+ fn, err := path.join({ODIN_ROOT, "core", "crypto", "_edwards25519", "edwards25519_table.odin"}, context.allocator)
+ if err != .None {
+ fmt.eprintfln("Join path error for edwards25519_table.odin: %v", err);
+ os.exit(1);
+ }
bld: strings.Builder
w := strings.to_writer(&bld)
diff --git a/core/crypto/_weierstrass/tools/ecc_gen_tables.odin b/core/crypto/_weierstrass/tools/ecc_gen_tables.odin
index 609c19cd0..3211c65f3 100644
--- a/core/crypto/_weierstrass/tools/ecc_gen_tables.odin
+++ b/core/crypto/_weierstrass/tools/ecc_gen_tables.odin
@@ -1,4 +1,4 @@
-package weistrass_tools
+package weierstrass_tools
import secec "core:crypto/_weierstrass"
import "core:fmt"
@@ -68,7 +68,11 @@ gen_tables :: proc($CURVE: string) {
}
fn_ := "sec" + CURVE + "_table.odin"
- fn := path.join({ODIN_ROOT, "core", "crypto", "_weierstrass", fn_})
+ fn, err := path.join({ODIN_ROOT, "core", "crypto", "_weierstrass", fn_}, context.allocator)
+ if err != .None {
+ fmt.eprintfln("Join path error for %s: %v", fn_, err);
+ os.exit(1);
+ }
bld: strings.Builder
w := strings.to_writer(&bld)
diff --git a/core/encoding/xml/example/xml_example.odin b/core/encoding/xml/example/xml_example.odin
index 9648143db..5ea689069 100644
--- a/core/encoding/xml/example/xml_example.odin
+++ b/core/encoding/xml/example/xml_example.odin
@@ -10,8 +10,6 @@ import "core:hash"
N :: 1
example :: proc() {
- using fmt
-
docs: [N]^xml.Document
errs: [N]xml.Error
times: [N]time.Duration
@@ -59,23 +57,23 @@ example :: proc() {
fmt.printf("[Average]: %v bytes in %.2f ms (%.2f MiB/s).\n", len(input), average_ms, average_speed)
if errs[0] != .None {
- printf("Load/Parse error: %v\n", errs[0])
+ fmt.eprintf("Load/Parse error: %v\n", errs[0])
if errs[0] == .File_Error {
- println("\"unicode.xml\" not found. Did you run \"tests\\download_assets.py\"?")
+ fmt.eprintln("\"unicode.xml\" not found. Did you run \"tests\\download_assets.py\"?")
}
return
}
charlist, charlist_ok := xml.find_child_by_ident(docs[0], 0, "charlist")
if !charlist_ok {
- eprintln("Could not locate top-level `<charlist>` tag.")
- return
+ fmt.eprintln("Could not locate top-level `<charlist>` tag.")
+ return
}
- printf("Found `<charlist>` with %v children, %v elements total\n", len(docs[0].elements[charlist].value), docs[0].element_count)
+ fmt.printf("Found `<charlist>` with %v children, %v elements total\n", len(docs[0].elements[charlist].value), docs[0].element_count)
crc32 := doc_hash(docs[0], false)
- printf("[%v] CRC32: 0x%08x\n", "🎉" if crc32 == 0x420dbac5 else "🤬", crc32)
+ fmt.printf("[%v] CRC32: 0x%08x\n", "🎉" if crc32 == 0x420dbac5 else "🤬", crc32)
for round in 0..<N {
defer xml.destroy(docs[round])
@@ -94,8 +92,6 @@ doc_hash :: proc(doc: ^xml.Document, print := false) -> (crc32: u32) {
}
main :: proc() {
- using fmt
-
track: mem.Tracking_Allocator
mem.tracking_allocator_init(&track, context.allocator)
context.allocator = mem.tracking_allocator(&track)
@@ -103,10 +99,10 @@ main :: proc() {
example()
if len(track.allocation_map) > 0 {
- println()
+ fmt.println()
for _, v in track.allocation_map {
- printf("%v Leaked %v bytes.\n", v.location, v.size)
+ fmt.printf("%v Leaked %v bytes.\n", v.location, v.size)
}
}
- println("Done and cleaned up!")
+ fmt.println("Done and cleaned up!")
}
diff --git a/core/hash/crc32.odin b/core/hash/crc32.odin
index 0a4617f6d..777209bed 100644
--- a/core/hash/crc32.odin
+++ b/core/hash/crc32.odin
@@ -1,7 +1,5 @@
package hash
-import "base:intrinsics"
-
@(optimization_mode="favor_size")
crc32 :: proc "contextless" (data: []byte, seed := u32(0)) -> u32 #no_bounds_check {
crc := ~seed
diff --git a/core/hash/hash.odin b/core/hash/hash.odin
index 6c048c05b..b495fd30d 100644
--- a/core/hash/hash.odin
+++ b/core/hash/hash.odin
@@ -1,7 +1,6 @@
package hash
import "core:mem"
-import "base:intrinsics"
@(optimization_mode="favor_size")
adler32 :: proc "contextless" (data: []byte, seed := u32(1)) -> u32 #no_bounds_check {
@@ -57,14 +56,14 @@ djb2 :: proc "contextless" (data: []byte, seed := u32(5381)) -> u32 {
djbx33a :: proc "contextless" (data: []byte, seed := u32(5381)) -> (result: [16]byte) #no_bounds_check {
state := [4]u32{seed, seed, seed, seed}
-
+
s: u32 = 0
for p in data {
state[s] = (state[s] << 5) + state[s] + u32(p) // hash * 33 + u32(b)
s = (s + 1) & 3
}
-
-
+
+
(^u32le)(&result[0])^ = u32le(state[0])
(^u32le)(&result[4])^ = u32le(state[1])
(^u32le)(&result[8])^ = u32le(state[2])
@@ -160,7 +159,7 @@ murmur32 :: proc "contextless" (data: []byte, seed := u32(0x9747b28c)) -> u32 {
case 1:
k1 ~= u32(tail[0])
k1 *= c1_32
- k1 = (k1 << 15) | (k1 >> 17)
+ k1 = (k1 << 15) | (k1 >> 17)
k1 *= c2_32
h1 ~= k1
}
diff --git a/core/math/rand/rand_xoshiro256.odin b/core/math/rand/rand_xoshiro256.odin
index 7326ba8d5..6f5dbe545 100644
--- a/core/math/rand/rand_xoshiro256.odin
+++ b/core/math/rand/rand_xoshiro256.odin
@@ -3,8 +3,6 @@ package rand
import "base:intrinsics"
import "base:runtime"
-import "core:math/bits"
-
/*
The state for a xoshiro256** pseudorandom generator.
*/
@@ -17,7 +15,7 @@ xoshiro256_random_generator_proc :: proc(data: rawptr, mode: runtime.Random_Gene
read_u64 :: proc "contextless" (r: ^Xoshiro256_Random_State) -> u64 {
// xoshiro256** output function and state transition
- result := bits.rotate_left64(r.s[1] * 5, 7) * 9
+ result := rotate_left64(r.s[1] * 5, 7) * 9
t := r.s[1] << 17
r.s[2] = r.s[2] ~ r.s[0]
@@ -25,9 +23,15 @@ xoshiro256_random_generator_proc :: proc(data: rawptr, mode: runtime.Random_Gene
r.s[1] = r.s[1] ~ r.s[2]
r.s[0] = r.s[0] ~ r.s[3]
r.s[2] = r.s[2] ~ t
- r.s[3] = bits.rotate_left64(r.s[3], 45)
+ r.s[3] = rotate_left64(r.s[3], 45)
return result
+
+ rotate_left64 :: proc "contextless" (x: u64, k: int) -> u64 {
+ n :: 64
+ s := uint(k) & (n-1)
+ return x << s | x >> (n-s)
+ }
}
@(thread_local)
diff --git a/core/net/dns.odin b/core/net/dns.odin
index 6af18798b..54cc57c38 100644
--- a/core/net/dns.odin
+++ b/core/net/dns.odin
@@ -25,7 +25,6 @@ package net
import "base:runtime"
import "core:bufio"
import "core:io"
-import "core:math/rand"
import "core:mem"
import "core:strings"
import "core:time"
@@ -192,7 +191,10 @@ get_dns_records_from_nameservers :: proc(hostname: string, type: DNS_Record_Type
init_dns_configuration()
context.allocator = allocator
- id := u16be(rand.uint32())
+ id: u16be
+ rand_ok := runtime.random_generator_read_ptr(context.random_generator, &id, size_of(id))
+ assert(rand_ok, "uninitialized gen/context.random_generator")
+
dns_packet_buf: [DNS_PACKET_MIN_LEN]byte = ---
dns_packet := make_dns_packet(dns_packet_buf[:], id, hostname, type) or_return
diff --git a/core/os/process.odin b/core/os/process.odin
index 9cdaf0457..9a720af87 100644
--- a/core/os/process.odin
+++ b/core/os/process.odin
@@ -311,7 +311,8 @@ This procedure obtains a process handle of a process specified by `pid`.
This procedure can be subject to race conditions. See the description of
`Process`.
-Use `process_close()` function to close the process handle.
+Use the `process_wait()` procedure (optionally prefaced with a `process_kill()`)
+to close and free the process handle.
*/
@(require_results)
process_open :: proc(pid: int, flags := Process_Open_Flags {}) -> (Process, Error) {
@@ -360,10 +361,8 @@ be created. It contains information such as the command line, the
environment of the process, the starting directory and many other options.
Most of the fields in the struct can be set to `nil` or an empty value.
-Use `process_close` to close the handle to the process. Note, that this
-is not the same as terminating the process. One can terminate the process
-and not close the handle, in which case the handle would be leaked. In case
-the function returns an error, an invalid handle is returned.
+Use the `process_wait()` procedure (optionally prefaced with a `process_kill()`)
+to close and free the process handle.
This procedure is not thread-safe. It may alter the inheritance properties
of file handles in an unpredictable manner. In case multiple threads change
@@ -495,7 +494,7 @@ Process_State :: struct {
// Will also store the number of the exception or signal that has crashed the
// process.
exit_code: int,
- // Specifies whether the termination of the process was successfull or not,
+ // Specifies whether the termination of the process was successful or not,
// i.e. whether it has crashed or not.
// **Note(windows)**: On windows `true` is always returned, as there is no
// reliable way to obtain information about whether the process has crashed.
@@ -511,7 +510,9 @@ Wait for a process event.
This procedure blocks the execution until the process has exited or the
timeout (if specified) has reached zero. If the timeout is `TIMEOUT_INFINITE`,
-no timeout restriction is imposed and the procedure can block indefinately.
+no timeout restriction is imposed and the procedure can block indefinitely.
+
+If the timeout is 0, no blocking will be done and the current state is returned.
If the timeout has expired, the `General_Error.Timeout` is returned as
the error.
@@ -525,24 +526,25 @@ process_wait :: proc(process: Process, timeout := TIMEOUT_INFINITE) -> (Process_
}
/*
-Close the handle to a process.
+Kill a process.
+
+This procedure kills a process, specified by it's handle, `process`.
-This procedure closes the handle associated with a process. It **does not**
-terminate a process, in case it was running. In case a termination is
-desired, kill the process first, wait for the process to finish,
-then close the handle.
+The process is forced to exit and can't ignore the request.
*/
@(require_results)
-process_close :: proc(process: Process) -> (Error) {
- return _process_close(process)
+process_kill :: proc(process: Process) -> (Error) {
+ return _process_kill(process)
}
/*
Terminate a process.
This procedure terminates a process, specified by it's handle, `process`.
+
+The process is requested to exit and can ignore the request.
*/
@(require_results)
-process_kill :: proc(process: Process) -> (Error) {
- return _process_kill(process)
+process_terminate :: proc(process: Process) -> (Error) {
+ return _process_terminate(process)
}
diff --git a/core/os/process_freebsd.odin b/core/os/process_freebsd.odin
index ccc2549db..794991ae5 100644
--- a/core/os/process_freebsd.odin
+++ b/core/os/process_freebsd.odin
@@ -2,19 +2,17 @@
#+build freebsd
package os
-import "core:c"
-
foreign import libc "system:c"
foreign import dl "system:dl"
foreign libc {
@(link_name="sysctlbyname")
- _sysctlbyname :: proc(path: cstring, oldp: rawptr, oldlenp: rawptr, newp: rawptr, newlen: int) -> c.int ---
+ _sysctlbyname :: proc(path: cstring, oldp: rawptr, oldlenp: rawptr, newp: rawptr, newlen: int) -> i32 ---
}
foreign dl {
@(link_name="pthread_getthreadid_np")
- pthread_getthreadid_np :: proc() -> c.int ---
+ pthread_getthreadid_np :: proc() -> i32 ---
}
@(require_results)
@@ -33,4 +31,4 @@ _get_processor_core_count :: proc() -> int {
}
return 1
-} \ No newline at end of file
+}
diff --git a/core/os/process_js.odin b/core/os/process_js.odin
index 9b682da0c..7aa6bb1b8 100644
--- a/core/os/process_js.odin
+++ b/core/os/process_js.odin
@@ -66,11 +66,11 @@ _process_wait :: proc(process: Process, timeout: time.Duration) -> (process_stat
return
}
-_process_close :: proc(process: Process) -> Error {
+_process_kill :: proc(process: Process) -> (err: Error) {
return .Unsupported
}
-_process_kill :: proc(process: Process) -> (err: Error) {
+_process_terminate :: proc(process: Process) -> (err: Error) {
return .Unsupported
}
diff --git a/core/os/process_linux.odin b/core/os/process_linux.odin
index 7041e16b7..5e6eff335 100644
--- a/core/os/process_linux.odin
+++ b/core/os/process_linux.odin
@@ -5,20 +5,12 @@ package os
import "base:runtime"
import "base:intrinsics"
-import "core:c"
import "core:time"
import "core:slice"
import "core:strings"
import "core:strconv"
-import "core:sys/unix"
import "core:sys/linux"
-foreign import libc "system:c"
-
-foreign libc {
- @(link_name="get_nprocs") _unix_get_nprocs :: proc() -> c.int ---
-}
-
PIDFD_UNASSIGNED :: ~uintptr(0)
@(private="package")
@@ -53,7 +45,7 @@ _get_ppid :: proc() -> int {
@(private="package")
_get_current_thread_id :: proc "contextless" () -> int {
- return unix.sys_gettid()
+ return int(linux.gettid())
}
@(private="package")
@@ -682,6 +674,8 @@ _reap_terminated :: proc(process: Process) -> (state: Process_State, err: Error)
state.exit_code = int(info.status)
state.success = false
}
+
+ _process_close(process)
return
}
@@ -723,6 +717,8 @@ _timed_wait_on_handle :: proc(process: Process, timeout: time.Duration) -> (proc
start_tick = time.tick_now()
continue
}
+
+ _process_close(process)
return process_state, _get_platform_error(errno)
}
@@ -733,6 +729,7 @@ _timed_wait_on_handle :: proc(process: Process, timeout: time.Duration) -> (proc
}
if errno = linux.waitid(.PIDFD, linux.Id(process.handle), &info, {.WEXITED, .WNOHANG, .WNOWAIT}, nil); errno != .NONE {
+ _process_close(process)
return process_state, _get_platform_error(errno)
}
@@ -767,6 +764,8 @@ _timed_wait_on_handle :: proc(process: Process, timeout: time.Duration) -> (proc
process_state.success = false
}
}
+
+ _process_close(process)
return
}
@@ -783,6 +782,7 @@ _timed_wait_on_pid :: proc(process: Process, timeout: time.Duration) -> (process
org_sigset: linux.Sig_Set
errno := linux.rt_sigprocmask(.SIG_BLOCK, &sigchld_set, &org_sigset)
if errno != .NONE {
+ _process_close(process)
return process_state, _get_platform_error(errno)
}
defer linux.rt_sigprocmask(.SIG_SETMASK, &org_sigset, nil)
@@ -814,6 +814,7 @@ _timed_wait_on_pid :: proc(process: Process, timeout: time.Duration) -> (process
timeout -= time.tick_since(start_tick)
start_tick = time.tick_now()
case .EINVAL:
+ _process_close(process)
return process_state, _get_platform_error(errno)
}
}
@@ -852,13 +853,13 @@ _process_wait :: proc(process: Process, timeout: time.Duration) -> (Process_Stat
return process_state, .Timeout
}
if errno != .NONE {
+ _process_close(process)
return process_state, _get_platform_error(errno)
}
return _reap_terminated(process)
}
-@(private="package")
_process_close :: proc(process: Process) -> Error {
if process.handle == 0 || process.handle == PIDFD_UNASSIGNED {
return nil
@@ -872,3 +873,7 @@ _process_kill :: proc(process: Process) -> Error {
return _get_platform_error(linux.kill(linux.Pid(process.pid), .SIGKILL))
}
+@(private="package")
+_process_terminate :: proc(process: Process) -> Error {
+ return _get_platform_error(linux.kill(linux.Pid(process.pid), .SIGTERM))
+}
diff --git a/core/os/process_netbsd.odin b/core/os/process_netbsd.odin
index 45ca03178..af65e1371 100644
--- a/core/os/process_netbsd.odin
+++ b/core/os/process_netbsd.odin
@@ -2,7 +2,6 @@
#+build netbsd
package os
-import "core:c"
foreign import libc "system:c"
@(private)
@@ -10,7 +9,7 @@ foreign libc {
_lwp_self :: proc() -> i32 ---
@(link_name="sysctlbyname")
- _sysctlbyname :: proc(path: cstring, oldp: rawptr, oldlenp: rawptr, newp: rawptr, newlen: int) -> c.int ---
+ _sysctlbyname :: proc(path: cstring, oldp: rawptr, oldlenp: rawptr, newp: rawptr, newlen: int) -> i32 ---
}
@(require_results)
@@ -28,4 +27,4 @@ _get_processor_core_count :: proc() -> int {
}
return 1
-} \ No newline at end of file
+}
diff --git a/core/os/process_openbsd.odin b/core/os/process_openbsd.odin
index 5195261ff..cab562aaf 100644
--- a/core/os/process_openbsd.odin
+++ b/core/os/process_openbsd.odin
@@ -22,4 +22,4 @@ _SC_NPROCESSORS_ONLN :: 503
@(private, require_results)
_get_processor_core_count :: proc() -> int {
return int(_sysconf(_SC_NPROCESSORS_ONLN))
-} \ No newline at end of file
+}
diff --git a/core/os/process_posix.odin b/core/os/process_posix.odin
index d3ec543f4..f41779290 100644
--- a/core/os/process_posix.odin
+++ b/core/os/process_posix.odin
@@ -329,10 +329,6 @@ _process_wait :: proc(process: Process, timeout: time.Duration) -> (process_stat
return
}
-_process_close :: proc(process: Process) -> Error {
- return nil
-}
-
_process_kill :: proc(process: Process) -> (err: Error) {
_process_handle_still_valid(process) or_return
@@ -342,3 +338,13 @@ _process_kill :: proc(process: Process) -> (err: Error) {
return
}
+
+_process_terminate :: proc(process: Process) -> (err: Error) {
+ _process_handle_still_valid(process) or_return
+
+ if posix.kill(posix.pid_t(process.pid), .SIGTERM) != .OK {
+ err = _get_platform_error()
+ }
+
+ return
+}
diff --git a/core/os/process_posix_darwin.odin b/core/os/process_posix_darwin.odin
index a75b4ef96..ea621eea8 100644
--- a/core/os/process_posix_darwin.odin
+++ b/core/os/process_posix_darwin.odin
@@ -2,19 +2,16 @@
package os
import "base:runtime"
-import "base:intrinsics"
import "core:bytes"
-import "core:c"
import "core:sys/darwin"
import "core:sys/posix"
import "core:sys/unix"
import "core:time"
-foreign import libc "system:System"
-foreign import pthread "system:System"
+foreign import libsystem "system:System"
-foreign libc {
+foreign libsystem {
sysctl :: proc "c" (
name: [^]i32, namelen: u32,
oldp: rawptr, oldlenp: ^uint,
@@ -22,23 +19,24 @@ foreign libc {
) -> posix.result ---
@(link_name="sysctlbyname")
- _sysctlbyname :: proc(path: cstring, oldp: rawptr, oldlenp: rawptr, newp: rawptr, newlen: int) -> c.int ---
-}
+ _sysctlbyname :: proc(path: cstring, oldp: rawptr, oldlenp: rawptr, newp: rawptr, newlen: int) -> posix.result ---
-_get_current_thread_id :: proc "contextless" () -> int {
- tid: u64
// NOTE(Oskar): available from OSX 10.6 and iOS 3.2.
// For older versions there is `syscall(SYS_thread_selfid)`, but not really
// the same thing apparently.
- foreign pthread { pthread_threadid_np :: proc "c" (rawptr, ^u64) -> c.int --- }
+ pthread_threadid_np :: proc "c" (rawptr, ^u64) -> i32 ---
+}
+
+_get_current_thread_id :: proc "contextless" () -> int {
+ tid: u64
pthread_threadid_np(nil, &tid)
return int(tid)
}
_get_processor_core_count :: proc() -> int {
- count : int = 0
+ count: int = 0
count_size := size_of(count)
- if _sysctlbyname("hw.logicalcpu", &count, &count_size, nil, 0) == 0 {
+ if _sysctlbyname("hw.logicalcpu", &count, &count_size, nil, 0) == .OK {
if count > 0 {
return count
}
diff --git a/core/os/process_wasi.odin b/core/os/process_wasi.odin
index e18fc0524..09c12a600 100644
--- a/core/os/process_wasi.odin
+++ b/core/os/process_wasi.odin
@@ -58,11 +58,11 @@ _process_wait :: proc(process: Process, timeout: time.Duration) -> (process_stat
return
}
-_process_close :: proc(process: Process) -> Error {
+_process_kill :: proc(process: Process) -> (err: Error) {
return .Unsupported
}
-_process_kill :: proc(process: Process) -> (err: Error) {
+_process_terminate :: proc(process: Process) -> (err: Error) {
return .Unsupported
}
diff --git a/core/os/process_windows.odin b/core/os/process_windows.odin
index e6db5b4e9..e1ed4f3c0 100644
--- a/core/os/process_windows.odin
+++ b/core/os/process_windows.odin
@@ -539,6 +539,7 @@ _process_wait :: proc(process: Process, timeout: time.Duration) -> (process_stat
exit_code: u32
if !win32.GetExitCodeProcess(handle, &exit_code) {
err =_get_platform_error()
+ _process_close(process)
return
}
time_created: win32.FILETIME
@@ -547,6 +548,7 @@ _process_wait :: proc(process: Process, timeout: time.Duration) -> (process_stat
time_user: win32.FILETIME
if !win32.GetProcessTimes(handle, &time_created, &time_exited, &time_kernel, &time_user) {
err = _get_platform_error()
+ _process_close(process)
return
}
process_state = {
@@ -557,17 +559,18 @@ _process_wait :: proc(process: Process, timeout: time.Duration) -> (process_stat
system_time = _filetime_to_duration(time_kernel),
user_time = _filetime_to_duration(time_user),
}
+ _process_close(process)
return
case win32.WAIT_TIMEOUT:
err = General_Error.Timeout
return
case:
err = _get_platform_error()
+ _process_close(process)
return
}
}
-@(private="package")
_process_close :: proc(process: Process) -> Error {
if !win32.CloseHandle(win32.HANDLE(process.handle)) {
return _get_platform_error()
@@ -587,6 +590,49 @@ _process_kill :: proc(process: Process) -> Error {
return nil
}
+@(private="package")
+_process_terminate :: proc(process: Process) -> Error {
+ Enum_Windows_State :: struct {
+ has_windows: bool,
+ pid: int,
+ }
+ state: Enum_Windows_State
+ state.pid = process.pid
+ ok := win32.EnumWindows(
+ proc "system" (hwnd: win32.HWND, lParam: win32.LPARAM) -> win32.BOOL {
+ #assert(size_of(win32.LPARAM) == size_of(^Enum_Windows_State))
+ state := (^Enum_Windows_State)(rawptr(uintptr(lParam)))
+
+ dwPid: win32.DWORD
+ win32.GetWindowThreadProcessId(hwnd, &dwPid)
+ if (dwPid == win32.DWORD(state.pid)) {
+ state.has_windows = true
+ win32.PostMessageW(hwnd, win32.WM_CLOSE, 0, 0)
+ }
+
+ return true
+ },
+ win32.LPARAM(uintptr(&state)),
+ )
+ if state.has_windows {
+ if ok {
+ return nil
+ }
+
+ err := _get_platform_error()
+ kill_err := _process_kill(process)
+ return kill_err == nil ? nil : err
+ }
+
+ if !win32.GenerateConsoleCtrlEvent(win32.CTRL_C_EVENT, win32.DWORD(process.pid)) {
+ err := _get_platform_error()
+ kill_err := _process_kill(process)
+ return kill_err == nil ? nil : err
+ }
+
+ return nil
+}
+
_filetime_to_duration :: proc(filetime: win32.FILETIME) -> time.Duration {
ticks := u64(filetime.dwHighDateTime)<<32 | u64(filetime.dwLowDateTime)
return time.Duration(ticks * 100)
diff --git a/core/sync/atomic.odin b/core/sync/atomic.odin
index 7e514a6b4..f680c7aa3 100644
--- a/core/sync/atomic.odin
+++ b/core/sync/atomic.odin
@@ -27,7 +27,7 @@ multiple memory locations between two cores. Which is why CPU's allow for
stronger memory ordering guarantees if certain instructions or instruction
variants are used.
-In Odin there are 5 different memory ordering guaranties that can be provided
+In Odin there are 5 different memory ordering guarantees that can be provided
to an atomic operation:
- `Relaxed`: The memory access (load or store) is unordered with respect to
@@ -450,4 +450,4 @@ the load operation, if the comparison fails. The memory ordering for these
operations is as specified by the `success` and `failure` parameters
respectively.
*/
-atomic_compare_exchange_weak_explicit :: intrinsics.atomic_compare_exchange_weak_explicit \ No newline at end of file
+atomic_compare_exchange_weak_explicit :: intrinsics.atomic_compare_exchange_weak_explicit
diff --git a/core/time/time.odin b/core/time/time.odin
index 542e4d242..438d74569 100644
--- a/core/time/time.odin
+++ b/core/time/time.odin
@@ -526,6 +526,9 @@ to_string_hms_12 :: proc(t: Time, buf: []u8, ampm: [2]string = {" am", " pm"}) -
h, m, s := clock(t)
_h := h % 12
+ if _h == 0 {
+ _h = 12
+ }
buf[7] = '0' + u8(s % 10); s /= 10
buf[6] = '0' + u8(s)
buf[5] = ':'
@@ -535,7 +538,7 @@ to_string_hms_12 :: proc(t: Time, buf: []u8, ampm: [2]string = {" am", " pm"}) -
buf[1] = '0' + u8(_h% 10); _h /= 10
buf[0] = '0' + u8(_h)
- if h < 13 {
+ if h < 12 {
copy(buf[8:], ampm[0])
return string(buf[:MIN_HMS_LEN+len(ampm[0])])
} else {
diff --git a/core/unicode/tools/generate_entity_table.odin b/core/unicode/tools/generate_entity_table.odin
index 54f73370c..2fe127caf 100644
--- a/core/unicode/tools/generate_entity_table.odin
+++ b/core/unicode/tools/generate_entity_table.odin
@@ -1,4 +1,4 @@
-package xml_example
+package xml_tools
import "core:encoding/xml"
import "core:os"
@@ -20,17 +20,27 @@ Entity :: struct {
}
main :: proc() {
- filename := path.join({ODIN_ROOT, "tests", "core", "assets", "XML", "unicode.xml"})
+ filename, err_xml := path.join({ODIN_ROOT, "tests", "core", "assets", "XML", "unicode.xml"}, context.allocator)
defer delete(filename)
- generated_filename := path.join({ODIN_ROOT, "core", "encoding", "entity", "generated.odin"})
+ if err_xml != .None {
+ fmt.eprintfln("Join path error for unicode.xml: %v", err_xml);
+ os.exit(1);
+ }
+
+ generated_filename, err_generated := path.join({ODIN_ROOT, "core", "encoding", "entity", "generated.odin"}, context.allocator)
defer delete(generated_filename)
+ if err_generated != .None {
+ fmt.eprintfln("Join path error for generated.odin: %v", err_generated);
+ os.exit(1);
+ }
+
doc, err := xml.load_from_file(filename, OPTIONS, Error_Handler)
defer xml.destroy(doc)
if err != .None {
- fmt.printfln("Load/Parse error: %v", err)
+ fmt.eprintfln("Load/Parse error: %v", err)
if err == .File_Error {
fmt.eprintfln("%q not found. Did you run \"tests\\download_assets.py\"?", filename)
}
@@ -265,4 +275,4 @@ is_dotted_name :: proc(name: string) -> (dotted: bool) {
if r == '.' { return true}
}
return false
-} \ No newline at end of file
+}
diff --git a/tests/core/time/test_core_time.odin b/tests/core/time/test_core_time.odin
index 6e5e47696..d1f83c0dc 100644
--- a/tests/core/time/test_core_time.odin
+++ b/tests/core/time/test_core_time.odin
@@ -16,8 +16,8 @@ test_time_and_date_formatting :: proc(t: ^testing.T) {
d := time.Duration(now._nsec)
testing.expect_value(t, time.to_string_hms (now, buf[:]), "00:12:44")
- testing.expect_value(t, time.to_string_hms_12 (now, buf[:]), "00:12:44 am")
- testing.expect_value(t, time.to_string_hms_12 (now, buf[:], {"㏂", "㏘"}), "00:12:44㏂")
+ testing.expect_value(t, time.to_string_hms_12 (now, buf[:]), "12:12:44 am")
+ testing.expect_value(t, time.to_string_hms_12 (now, buf[:], {"㏂", "㏘"}), "12:12:44㏂")
testing.expect_value(t, time.to_string_hms (d, buf[:]), "00:12:44")
testing.expect_value(t, time.to_string_yyyy_mm_dd(now, buf[:]), "1677-09-21")
diff --git a/vendor/directx/d3d11/d3d11.odin b/vendor/directx/d3d11/d3d11.odin
index 517146c8a..51e27ba21 100644
--- a/vendor/directx/d3d11/d3d11.odin
+++ b/vendor/directx/d3d11/d3d11.odin
@@ -4,7 +4,7 @@ package directx_d3d11
foreign import "system:d3d11.lib"
import "../dxgi"
-import "../d3d_compiler"
+import "../d3d_common"
import "core:sys/windows"
IUnknown :: dxgi.IUnknown
@@ -26,9 +26,7 @@ LPCWSTR :: windows.LPCWSTR
RECT :: dxgi.RECT
SIZE :: dxgi.SIZE
-IModuleInstance :: d3d_compiler.ID3D11ModuleInstance
-IBlob :: d3d_compiler.ID3DBlob
-IModule :: d3d_compiler.ID3D11Module
+IBlob :: d3d_common.ID3DBlob
@(default_calling_convention="system", link_prefix="D3D11")
foreign d3d11 {
@@ -3569,6 +3567,34 @@ PARAMETER_DESC :: struct {
FirstOutComponent: u32,
}
+IModule :: struct #raw_union {
+ #subtype iunknown: IUnknown,
+ using id3d11module_vtable: ^IModule_VTable,
+}
+IModule_VTable :: struct {
+ using iunknown_vtable: IUnknown_VTable,
+ CreateInstance: proc "system" (this: ^IModule, pNamespace: LPCSTR, ppModuleInstance: ^^IModuleInstance) -> HRESULT,
+}
+
+IModuleInstance :: struct #raw_union {
+ #subtype iunknown: IUnknown,
+ using id3d11moduleinstance_vtable: ^IModuleInstance_VTable,
+}
+IModuleInstance_VTable :: struct {
+ using iunknown_vtable: IUnknown_VTable,
+ BindConstantBuffer: proc "system" (this: ^IModuleInstance, uSrcSlot: u32, uDstSlot: u32, cbDstOffset: u32) -> HRESULT,
+ BindConstantBufferByName: proc "system" (this: ^IModuleInstance, pName: LPCSTR, uDstSlot: u32, cbDstOffset: u32) -> HRESULT,
+ BindResource: proc "system" (this: ^IModuleInstance, uSrcSlot: u32, uDstSlot: u32, uCount: u32) -> HRESULT,
+ BindResourceByName: proc "system" (this: ^IModuleInstance, pName: LPCSTR, uDstSlot: u32, uCount: u32) -> HRESULT,
+ BindSampler: proc "system" (this: ^IModuleInstance, uSrcSlot: u32, uDstSlot: u32, uCount: u32) -> HRESULT,
+ BindSamplerByName: proc "system" (this: ^IModuleInstance, pName: LPCSTR, uDstSlot: u32, uCount: u32) -> HRESULT,
+ BindUnorderedAccessView: proc "system" (this: ^IModuleInstance, uSrcSlot: u32, uDstSlot: u32, uCount: u32) -> HRESULT,
+ BindUnorderedAccessViewByName: proc "system" (this: ^IModuleInstance, pName: LPCSTR, uDstSlot: u32, uCount: u32) -> HRESULT,
+ BindResourceAsUnorderedAccessView: proc "system" (this: ^IModuleInstance, uSrcSrvSlot: u32, uDstUavSlot: u32, uCount: u32) -> HRESULT,
+ BindResourceAsUnorderedAccessViewByName: proc "system" (this: ^IModuleInstance, pSrvName: LPCSTR, uDstUavSlot: u32, uCount: u32) -> HRESULT,
+}
+
+
ID3D11ShaderReflectionType_UUID_STRING :: "6E6FFA6A-9BAE-4613-A51E-91652D508C21"
ID3D11ShaderReflectionType_UUID := &IID{0x6E6FFA6A, 0x9BAE, 0x4613, {0xA5, 0x1E, 0x91, 0x65, 0x2D, 0x50, 0x8C, 0x21}}
IShaderReflectionType :: struct {
diff --git a/vendor/directx/d3d12/d3d12.odin b/vendor/directx/d3d12/d3d12.odin
index fba1c6e26..8611172f8 100644
--- a/vendor/directx/d3d12/d3d12.odin
+++ b/vendor/directx/d3d12/d3d12.odin
@@ -4,7 +4,7 @@ package directx_d3d12
foreign import "system:d3d12.lib"
import "../dxgi"
-import "../d3d_compiler"
+import "../d3d_common"
import win32 "core:sys/windows"
IUnknown :: dxgi.IUnknown
@@ -26,9 +26,7 @@ RECT :: dxgi.RECT
LPCSTR :: win32.LPCSTR
LPCWSTR :: win32.LPCWSTR
-IModuleInstance :: d3d_compiler.ID3D11ModuleInstance
-IBlob :: d3d_compiler.ID3DBlob
-IModule :: d3d_compiler.ID3D11Module
+IBlob :: d3d_common.ID3DBlob
@(default_calling_convention="system", link_prefix="D3D12")
foreign d3d12 {
@@ -1236,7 +1234,7 @@ TRI_STATE :: enum i32 {
UNKNOWN = -1,
FALSE = 0,
TRUE = 1,
-}
+}
FEATURE_DATA_OPTIONS12 :: struct {
MSPrimitivesPipelineStatisticIncludesCulledPrimitives: TRI_STATE,
@@ -2597,7 +2595,7 @@ IDescriptorHeap_VTable :: struct {
GetDesc: proc "system" (this: ^IDescriptorHeap, desc: ^DESCRIPTOR_HEAP_DESC),
GetCPUDescriptorHandleForHeapStart: proc "system" (this: ^IDescriptorHeap, handle: ^CPU_DESCRIPTOR_HANDLE),
GetGPUDescriptorHandleForHeapStart: proc "system" (this: ^IDescriptorHeap, handle: ^GPU_DESCRIPTOR_HANDLE),
-}
+}
IQueryHeap_UUID_STRING :: "0d9658ae-ed45-469e-a61d-970ec583cab4"
IQueryHeap_UUID := &IID{0x0d9658ae, 0xed45, 0x469e, {0xa6, 0x1d, 0x97, 0x0e, 0xc5, 0x83, 0xca, 0xb4}}
@@ -5495,7 +5493,7 @@ IGraphicsCommandList7_VTable :: struct {
SHADER_VERSION_TYPE :: enum u32 {
PIXEL_SHADER = 0,
VERTEX_SHADER = 1,
- GEOMETRY_SHADER = 2,
+ GEOMETRY_SHADER = 2,
HULL_SHADER = 3,
DOMAIN_SHADER = 4,
diff --git a/vendor/directx/d3d_common/d3d_common.odin b/vendor/directx/d3d_common/d3d_common.odin
new file mode 100644
index 000000000..af3d09ec9
--- /dev/null
+++ b/vendor/directx/d3d_common/d3d_common.odin
@@ -0,0 +1,25 @@
+// Declarations shared between D3D versions.
+// Based on d3dcommon.h
+package d3d_common
+
+import "core:sys/windows"
+
+IID :: windows.IID
+SIZE_T :: windows.SIZE_T
+IUnknown :: windows.IUnknown
+IUnknown_VTable :: windows.IUnknown_VTable
+
+ID3D10Blob_UUID_STRING :: "8BA5FB08-5195-40E2-AC58-0D989C3A0102"
+ID3D10Blob_UUID := &IID{0x8BA5FB08, 0x5195, 0x40E2, {0xAC, 0x58, 0x0D, 0x98, 0x9C, 0x3A, 0x01, 0x02}}
+ID3D10Blob :: struct #raw_union {
+ #subtype iunknown: IUnknown,
+ using id3d10blob_vtable: ^ID3D10Blob_VTable,
+}
+ID3D10Blob_VTable :: struct {
+ using iunknown_vtable: IUnknown_VTable,
+ GetBufferPointer: proc "system" (this: ^ID3D10Blob) -> rawptr,
+ GetBufferSize: proc "system" (this: ^ID3D10Blob) -> SIZE_T,
+}
+
+ID3DBlob :: ID3D10Blob
+ID3DBlob_VTable :: ID3D10Blob_VTable
diff --git a/vendor/directx/d3d_compiler/d3d_compiler.odin b/vendor/directx/d3d_compiler/d3d_compiler.odin
index 17a835f23..85c5cb46c 100644
--- a/vendor/directx/d3d_compiler/d3d_compiler.odin
+++ b/vendor/directx/d3d_compiler/d3d_compiler.odin
@@ -7,8 +7,9 @@ import win32 "core:sys/windows"
D3DCOMPILER_DLL_A :: "d3dcompiler_47.dll"
COMPILER_VERSION :: 47
-
import "../dxgi"
+import "../d3d11"
+import "../d3d_common"
BOOL :: dxgi.BOOL
IID :: dxgi.IID
@@ -17,6 +18,8 @@ HRESULT :: dxgi.HRESULT
IUnknown :: dxgi.IUnknown
IUnknown_VTable :: dxgi.IUnknown_VTable
+ID3DBlob :: d3d_common.ID3DBlob
+
LPCSTR :: win32.LPCSTR
LPCWSTR :: win32.LPCWSTR
@@ -34,7 +37,7 @@ foreign d3dcompiler {
Disassemble :: proc(pSrcData: rawptr, SrcDataSize: SIZE_T, Flags: u32, szComments: LPCSTR, ppDisassembly: ^^ID3DBlob) -> HRESULT ---
DisassembleRegion :: proc(pSrcData: rawptr, SrcDataSize: SIZE_T, Flags: u32, szComments: LPCSTR, StartByteOffset: SIZE_T, NumInsts: SIZE_T, pFinishByteOffset: ^SIZE_T, ppDisassembly: ^^ID3DBlob) -> HRESULT ---
CreateLinker :: proc(ppLinker: ^^ID3D11Linker) -> HRESULT ---
- LoadModule :: proc(pSrcData: rawptr, cbSrcDataSize: SIZE_T, ppModule: ^^ID3D11Module) -> HRESULT ---
+ LoadModule :: proc(pSrcData: rawptr, cbSrcDataSize: SIZE_T, ppModule: ^^d3d11.IModule) -> HRESULT ---
GetTraceInstructionOffsets :: proc(pSrcData: rawptr, SrcDataSize: SIZE_T, Flags: u32, StartInstIndex: SIZE_T, NumInsts: SIZE_T, pOffsets: ^SIZE_T, pTotalInsts: ^SIZE_T) -> HRESULT ---
GetInputSignatureBlob :: proc(pSrcData: rawptr, SrcDataSize: SIZE_T, ppSignatureBlob: ^^ID3DBlob) -> HRESULT ---
GetOutputSignatureBlob :: proc(pSrcData: rawptr, SrcDataSize: SIZE_T, ppSignatureBlob: ^^ID3DBlob) -> HRESULT ---
@@ -121,29 +124,11 @@ SHADER_MACRO :: struct {
Definition: LPCSTR,
}
-ID3D10Blob_UUID_STRING :: "8BA5FB08-5195-40E2-AC58-0D989C3A0102"
-ID3D10Blob_UUID := &IID{0x8BA5FB08, 0x5195, 0x40E2, {0xAC, 0x58, 0x0D, 0x98, 0x9C, 0x3A, 0x01, 0x02}}
-ID3D10Blob :: struct #raw_union {
- #subtype iunknown: IUnknown,
- using id3d10blob_vtable: ^ID3D10Blob_VTable,
-}
-ID3D10Blob_VTable :: struct {
- using iunknown_vtable: IUnknown_VTable,
- GetBufferPointer: proc "system" (this: ^ID3D10Blob) -> rawptr,
- GetBufferSize: proc "system" (this: ^ID3D10Blob) -> SIZE_T,
-}
-
-
-ID3DBlob :: ID3D10Blob
-ID3DBlob_VTable :: ID3D10Blob_VTable
-
-
INCLUDE_TYPE :: enum i32 {
INCLUDE_LOCAL = 0,
INCLUDE_SYSTEM = 1,
_10_INCLUDE_LOCAL = 0,
_10_INCLUDE_SYSTEM = 1,
- INCLUDE_FORCE_DWORD = 2147483647,
}
ID3DInclude :: struct {
@@ -158,43 +143,14 @@ ID3DInclude_VTable :: struct {
D3DCOMPILE_STANDARD_FILE_INCLUDE :: (^ID3DInclude)(uintptr(1))
-ID3D11Module :: struct #raw_union {
- #subtype iunknown: IUnknown,
- using id3d11module_vtable: ^ID3D11Module_VTable,
-}
-ID3D11Module_VTable :: struct {
- using iunknown_vtable: IUnknown_VTable,
- CreateInstance: proc "system" (this: ^ID3D11Module, pNamespace: LPCSTR, ppModuleInstance: ^^ID3D11ModuleInstance) -> HRESULT,
-}
-
-
-ID3D11ModuleInstance :: struct #raw_union {
- #subtype iunknown: IUnknown,
- using id3d11moduleinstance_vtable: ^ID3D11ModuleInstance_VTable,
-}
-ID3D11ModuleInstance_VTable :: struct {
- using iunknown_vtable: IUnknown_VTable,
- BindConstantBuffer: proc "system" (this: ^ID3D11ModuleInstance, uSrcSlot: u32, uDstSlot: u32, cbDstOffset: u32) -> HRESULT,
- BindConstantBufferByName: proc "system" (this: ^ID3D11ModuleInstance, pName: LPCSTR, uDstSlot: u32, cbDstOffset: u32) -> HRESULT,
- BindResource: proc "system" (this: ^ID3D11ModuleInstance, uSrcSlot: u32, uDstSlot: u32, uCount: u32) -> HRESULT,
- BindResourceByName: proc "system" (this: ^ID3D11ModuleInstance, pName: LPCSTR, uDstSlot: u32, uCount: u32) -> HRESULT,
- BindSampler: proc "system" (this: ^ID3D11ModuleInstance, uSrcSlot: u32, uDstSlot: u32, uCount: u32) -> HRESULT,
- BindSamplerByName: proc "system" (this: ^ID3D11ModuleInstance, pName: LPCSTR, uDstSlot: u32, uCount: u32) -> HRESULT,
- BindUnorderedAccessView: proc "system" (this: ^ID3D11ModuleInstance, uSrcSlot: u32, uDstSlot: u32, uCount: u32) -> HRESULT,
- BindUnorderedAccessViewByName: proc "system" (this: ^ID3D11ModuleInstance, pName: LPCSTR, uDstSlot: u32, uCount: u32) -> HRESULT,
- BindResourceAsUnorderedAccessView: proc "system" (this: ^ID3D11ModuleInstance, uSrcSrvSlot: u32, uDstUavSlot: u32, uCount: u32) -> HRESULT,
- BindResourceAsUnorderedAccessViewByName: proc "system" (this: ^ID3D11ModuleInstance, pSrvName: LPCSTR, uDstUavSlot: u32, uCount: u32) -> HRESULT,
-}
-
-
ID3D11Linker :: struct #raw_union {
#subtype iunknown: IUnknown,
using id3d11linker_vtable: ^ID3D11Linker_VTable,
}
ID3D11Linker_VTable :: struct {
using iunknown_vtable: IUnknown_VTable,
- Link: proc "system" (this: ^ID3D11Linker, pEntry: ^ID3D11ModuleInstance, pEntryName: LPCSTR, pTargetName: LPCSTR, uFlags: u32, ppShaderBlob: ^^ID3DBlob, ppErrorBuffer: ^^ID3DBlob) -> HRESULT,
- UseLibrary: proc "system" (this: ^ID3D11Linker, pLibraryMI: ^ID3D11ModuleInstance) -> HRESULT,
+ Link: proc "system" (this: ^ID3D11Linker, pEntry: ^d3d11.IModuleInstance, pEntryName: LPCSTR, pTargetName: LPCSTR, uFlags: u32, ppShaderBlob: ^^ID3DBlob, ppErrorBuffer: ^^ID3DBlob) -> HRESULT,
+ UseLibrary: proc "system" (this: ^ID3D11Linker, pLibraryMI: ^d3d11.IModuleInstance) -> HRESULT,
AddClipPlaneFromCBuffer: proc "system" (this: ^ID3D11Linker, uCBufferSlot: u32, uCBufferEntry: u32) -> HRESULT,
}
diff --git a/vendor/directx/dxc/dxcapi.odin b/vendor/directx/dxc/dxcapi.odin
index 1d3155feb..326d3b3f3 100644
--- a/vendor/directx/dxc/dxcapi.odin
+++ b/vendor/directx/dxc/dxcapi.odin
@@ -194,7 +194,7 @@ ICompiler :: struct #raw_union {
ICompiler_VTable :: struct {
using iunknown_vtable: IUnknown_VTable,
Compile: proc "system" (
- this: ^ICompiler,
+ this: ^ICompiler,
pSource: ^IBlob,
pSourceName: wstring,
pEntryPoint: wstring,
@@ -206,7 +206,7 @@ ICompiler_VTable :: struct {
pIncludeHandler: ^IIncludeHandler,
ppResult: ^^IOperationResult) -> HRESULT,
Preprocess: proc "system" (
- this: ^ICompiler,
+ this: ^ICompiler,
pSource: ^IBlob,
pSourceName: wstring,
pArguments: [^]wstring,
@@ -303,7 +303,6 @@ DXC_OUT_KIND :: enum u32 {
REFLECTION = 8,
ROOT_SIGNATURE = 9,
EXTRA_OUTPUTS = 10,
- FORCE_DWORD = 0xFFFFFFFF,
}
IResult_UUID_STRING :: "58346CDA-DDE7-4497-9461-6F87AF5E0659"
diff --git a/vendor/directx/dxgi/dxgi.odin b/vendor/directx/dxgi/dxgi.odin
index 05b3925ff..8865a5f7c 100644
--- a/vendor/directx/dxgi/dxgi.odin
+++ b/vendor/directx/dxgi/dxgi.odin
@@ -752,7 +752,6 @@ ALPHA_MODE :: enum i32 {
PREMULTIPLIED = 1,
STRAIGHT = 2,
IGNORE = 3,
- FORCE_DWORD = -1,
}
diff --git a/vendor/miniaudio/logging.odin b/vendor/miniaudio/logging.odin
index afddf8e68..135c6a9b1 100644
--- a/vendor/miniaudio/logging.odin
+++ b/vendor/miniaudio/logging.odin
@@ -1,6 +1,6 @@
package miniaudio
-import "core:c/libc"
+import "core:c"
foreign import lib { LIB }
@@ -48,12 +48,12 @@ log :: struct {
@(default_calling_convention="c", link_prefix="ma_")
foreign lib {
log_callback_init :: proc(onLog: log_callback_proc, pUserData: rawptr) -> log_callback ---
-
+
log_init :: proc(pAllocationCallbacks: ^allocation_callbacks, pLog: ^log) -> result ---
log_uninit :: proc(pLog: ^log) ---
log_register_callback :: proc(pLog: ^log, callback: log_callback) -> result ---
log_unregister_callback :: proc(pLog: ^log, callback: log_callback) -> result ---
log_post :: proc(pLog: ^log, level: u32, pMessage: cstring) -> result ---
- log_postv :: proc(pLog: ^log, level: u32, pFormat: cstring, args: libc.va_list) -> 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 ---
}