This file contains global type definitions which are used throughout the entire engine and applications referencing it. Numeric types are asserted statically to gurantee expected size.
More...
|
| #define | KNULL 0 |
| |
| #define | STATIC_ASSERT static_assert |
| | Static assertion. More...
|
| |
| #define | true 1 |
| | True. More...
|
| |
| #define | false 0 |
| | False. More...
|
| |
| #define | U64_MAX 18446744073709551615UL |
| |
| #define | U32_MAX 4294967295U |
| |
| #define | U16_MAX 65535U |
| |
| #define | U8_MAX 255U |
| |
| #define | U64_MIN 0UL |
| |
| #define | U32_MIN 0U |
| |
| #define | U16_MIN 0U |
| |
| #define | U8_MIN 0U |
| |
| #define | I8_MAX 127 |
| |
| #define | I16_MAX 32767 |
| |
| #define | I32_MAX 2147483647 |
| |
| #define | I64_MAX 9223372036854775807L |
| |
| #define | I8_MIN (-I8_MAX - 1) |
| |
| #define | I16_MIN (-I16_MAX - 1) |
| |
| #define | I32_MIN (-I32_MAX - 1) |
| |
| #define | I64_MIN (-I64_MAX - 1) |
| |
| #define | KWHOLE_SIZE U64_MAX |
| |
| #define | INVALID_ID_U64 U64_MAX |
| | Any id set to this should be considered invalid, and not actually pointing to a real object. More...
|
| |
| #define | INVALID_ID_U32 U32_MAX |
| |
| #define | INVALID_ID_U16 U16_MAX |
| |
| #define | INVALID_ID_U8 U8_MAX |
| |
| #define | INVALID_ID INVALID_ID_U32 |
| |
| #define | KAPI |
| | Import/export qualifier. More...
|
| |
| #define | KOHI_RELEASE 1 |
| |
| #define | KOHI_DEBUG 0 |
| |
| #define | KOHI_HOT_RELOAD 0 |
| |
| #define | KCLAMP(value, min, max) |
| | Clamps value to a range of min and max (inclusive). More...
|
| |
| #define | KINLINE static inline |
| | Inline qualifier. More...
|
| |
| #define | KNOINLINE |
| | No-inline qualifier. More...
|
| |
| #define | GIBIBYTES(amount) ((amount) * 1024ULL * 1024ULL * 1024ULL) |
| | Gets the number of bytes from amount of gibibytes (GiB) (1024*1024*1024) More...
|
| |
| #define | MEBIBYTES(amount) ((amount) * 1024ULL * 1024ULL) |
| | Gets the number of bytes from amount of mebibytes (MiB) (1024*1024) More...
|
| |
| #define | KIBIBYTES(amount) ((amount) * 1024ULL) |
| | Gets the number of bytes from amount of kibibytes (KiB) (1024) More...
|
| |
| #define | GIGABYTES(amount) ((amount) * 1000ULL * 1000ULL * 1000ULL) |
| | Gets the number of bytes from amount of gigabytes (GB) (1000*1000*1000) More...
|
| |
| #define | MEGABYTES(amount) ((amount) * 1000ULL * 1000ULL) |
| | Gets the number of bytes from amount of megabytes (MB) (1000*1000) More...
|
| |
| #define | KILOBYTES(amount) ((amount) * 1000ULL) |
| | Gets the number of bytes from amount of kilobytes (KB) (1000) More...
|
| |
| #define | KSWAP(type, a, b) |
| |
| #define | KMIN(x, y) (x < y ? x : y) |
| |
| #define | KMAX(x, y) (x > y ? x : y) |
| |
| #define | FLAG_GET(flags, flag) ((flags & flag) == flag) |
| | Indicates if the provided flag is set in the given flags int. More...
|
| |
| #define | FLAG_SET(flags, flag, enabled) (flags = (enabled ? (flags | flag) : (flags & ~flag))) |
| | Sets a flag within the flags int to enabled/disabled. More...
|
| |
| #define | UNPACK_U64_U16S(packed, a, b, c, d) |
| |
| #define | UNPACK_U64_U16_AT(packed, index) ((u16)(packed >> ((3 - index) * 16))) |
| |
| #define | PACK_U64_U16S(a, b, c, d) (((u64)a << 48) | ((u64)b << 32) | ((u64)c << 16) | ((u64)d)) |
| | Packs 4 u16s into a single u64. More...
|
| |
| #define | PACK_U64_U16_AT(target, n, index) (target = (target | ((u64)n << ((3 - index) * 16)))) |
| | Packs n into target. Target can be an already-packed u64. More...
|
| |
| #define | UNPACK_U64_U32S(packed, a, b) |
| |
| #define | UNPACK_U64_U32_AT(packed, index) ((u32)(packed >> ((1 - index) * 32))) |
| |
| #define | PACK_U64_U32S(a, b) (((u64)a << 32) | ((u64)b)) |
| | Packs 2 u32s into a single u64. More...
|
| |
| #define | PACK_U64_U32_AT(target, n, index) (target = (target | ((u64)n << ((1 - index) * 32)))) |
| | Packs n into target. Target can be an already-packed u64. More...
|
| |
| #define | UNPACK_U32_U16S(packed, a, b) |
| |
| #define | UNPACK_U32_U16_AT(packed, index) ((u16)(packed >> ((1 - index) * 16))) |
| |
| #define | PACK_U32_U16S(a, b) (((u32)a << 16) | ((u32)b)) |
| | Packs 2 u16s into a single u32. More...
|
| |
| #define | PACK_U32_U16_AT(target, n, index) (target = (target | ((u32)n << ((1 - index) * 16)))) |
| | Packs n into target. Target can be an already-packed u32. More...
|
| |
| #define | IS_IN_RANGE(val, from, to) ((from < to) ? (val >= from && val <= to) : (val <= from && val >= to)) |
| |
|
| typedef unsigned char | u8 |
| | Unsigned 8-bit integer. More...
|
| |
| typedef unsigned short | u16 |
| | Unsigned 16-bit integer. More...
|
| |
| typedef unsigned int | u32 |
| | Unsigned 32-bit integer. More...
|
| |
| typedef unsigned long long | u64 |
| | Unsigned 64-bit integer. More...
|
| |
| typedef signed char | i8 |
| | Signed 8-bit integer. More...
|
| |
| typedef signed short | i16 |
| | Signed 16-bit integer. More...
|
| |
| typedef signed int | i32 |
| | Signed 32-bit integer. More...
|
| |
| typedef signed long long | i64 |
| | Signed 64-bit integer. More...
|
| |
| typedef float | f32 |
| | 32-bit floating point number More...
|
| |
| typedef double | f64 |
| | 64-bit floating point number More...
|
| |
| typedef int | b32 |
| | 32-bit boolean type, used for APIs which require it More...
|
| |
| typedef _Bool | b8 |
| | 8-bit boolean type More...
|
| |
| typedef struct krange | krange |
| | A range, typically of memory. More...
|
| |
| typedef struct range32 | range32 |
| | A range, typically of memory. More...
|
| |
|
| | STATIC_ASSERT (sizeof(u8)==1, "Expected u8 to be 1 byte.") |
| | Assert u8 to be 1 byte. More...
|
| |
| | STATIC_ASSERT (sizeof(u16)==2, "Expected u16 to be 2 bytes.") |
| | Assert u16 to be 2 bytes. More...
|
| |
| | STATIC_ASSERT (sizeof(u32)==4, "Expected u32 to be 4 bytes.") |
| | Assert u32 to be 4 bytes. More...
|
| |
| | STATIC_ASSERT (sizeof(u64)==8, "Expected u64 to be 8 bytes.") |
| | Assert u64 to be 8 bytes. More...
|
| |
| | STATIC_ASSERT (sizeof(i8)==1, "Expected i8 to be 1 byte.") |
| | Assert i8 to be 1 byte. More...
|
| |
| | STATIC_ASSERT (sizeof(i16)==2, "Expected i16 to be 2 bytes.") |
| | Assert i16 to be 2 bytes. More...
|
| |
| | STATIC_ASSERT (sizeof(i32)==4, "Expected i32 to be 4 bytes.") |
| | Assert i32 to be 4 bytes. More...
|
| |
| | STATIC_ASSERT (sizeof(i64)==8, "Expected i64 to be 8 bytes.") |
| | Assert i64 to be 8 bytes. More...
|
| |
| | STATIC_ASSERT (sizeof(f32)==4, "Expected f32 to be 4 bytes.") |
| | Assert f32 to be 4 bytes. More...
|
| |
| | STATIC_ASSERT (sizeof(f64)==8, "Expected f64 to be 8 bytes.") |
| | Assert f64 to be 8 bytes. More...
|
| |
| KINLINE u64 | get_aligned (u64 operand, u64 granularity) |
| |
| KINLINE krange | get_aligned_range (u64 offset, u64 size, u64 granularity) |
| |
This file contains global type definitions which are used throughout the entire engine and applications referencing it. Numeric types are asserted statically to gurantee expected size.
- Author
- Travis Vroman (travi.nosp@m.s@ko.nosp@m.hieng.nosp@m.ine..nosp@m.com)
- Version
- 2.0
- Date
- 2024-04-03
- Copyright
- Kohi Game Engine is Copyright (c) Travis Vroman 2021-2024