mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 07:38:48 +00:00
ODIN_ENDIAN changed to an enum constant; ODIN_ENUM_STRING is the new string version of the old constant
This commit is contained in:
@@ -52,7 +52,7 @@ keccakf :: proc "contextless" (st: ^[25]u64) {
|
|||||||
t: u64 = ---
|
t: u64 = ---
|
||||||
bc: [5]u64 = ---
|
bc: [5]u64 = ---
|
||||||
|
|
||||||
when ODIN_ENDIAN != "little" {
|
when ODIN_ENDIAN != .Little {
|
||||||
v: uintptr = ---
|
v: uintptr = ---
|
||||||
for i = 0; i < 25; i += 1 {
|
for i = 0; i < 25; i += 1 {
|
||||||
v := uintptr(&st[i])
|
v := uintptr(&st[i])
|
||||||
@@ -98,7 +98,7 @@ keccakf :: proc "contextless" (st: ^[25]u64) {
|
|||||||
st[0] ~= keccakf_rndc[r]
|
st[0] ~= keccakf_rndc[r]
|
||||||
}
|
}
|
||||||
|
|
||||||
when ODIN_ENDIAN != "little" {
|
when ODIN_ENDIAN != .Little {
|
||||||
for i = 0; i < 25; i += 1 {
|
for i = 0; i < 25; i += 1 {
|
||||||
v = uintptr(&st[i])
|
v = uintptr(&st[i])
|
||||||
t = st[i]
|
t = st[i]
|
||||||
|
|||||||
@@ -1332,7 +1332,7 @@ update :: proc(ctx: ^Haval_Context, data: []byte) {
|
|||||||
}
|
}
|
||||||
ctx.count[1] += str_len >> 29
|
ctx.count[1] += str_len >> 29
|
||||||
|
|
||||||
when ODIN_ENDIAN == "little" {
|
when ODIN_ENDIAN == .Little {
|
||||||
if rmd_len + str_len >= 128 {
|
if rmd_len + str_len >= 128 {
|
||||||
copy(util.slice_to_bytes(ctx.block[:])[rmd_len:], data[:fill_len])
|
copy(util.slice_to_bytes(ctx.block[:])[rmd_len:], data[:fill_len])
|
||||||
block(ctx, ctx.rounds)
|
block(ctx, ctx.rounds)
|
||||||
|
|||||||
@@ -285,8 +285,8 @@ marshal_to_writer :: proc(w: io.Writer, v: any) -> (err: Marshal_Error) {
|
|||||||
case runtime.Type_Info_Integer:
|
case runtime.Type_Info_Integer:
|
||||||
switch info.endianness {
|
switch info.endianness {
|
||||||
case .Platform: return false
|
case .Platform: return false
|
||||||
case .Little: return ODIN_ENDIAN != "little"
|
case .Little: return ODIN_ENDIAN != .Little
|
||||||
case .Big: return ODIN_ENDIAN != "big"
|
case .Big: return ODIN_ENDIAN != .Big
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
|
|||||||
+2
-2
@@ -1092,8 +1092,8 @@ fmt_bit_set :: proc(fi: ^Info, v: any, name: string = "") {
|
|||||||
case runtime.Type_Info_Integer:
|
case runtime.Type_Info_Integer:
|
||||||
switch info.endianness {
|
switch info.endianness {
|
||||||
case .Platform: return false
|
case .Platform: return false
|
||||||
case .Little: return ODIN_ENDIAN != "little"
|
case .Little: return ODIN_ENDIAN != .Little
|
||||||
case .Big: return ODIN_ENDIAN != "big"
|
case .Big: return ODIN_ENDIAN != .Big
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false
|
return false
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ XXH3_128_canonical_from_hash :: proc(hash: XXH128_hash_t) -> (canonical: XXH128_
|
|||||||
#assert(size_of(XXH128_canonical) == size_of(XXH128_hash_t))
|
#assert(size_of(XXH128_canonical) == size_of(XXH128_hash_t))
|
||||||
|
|
||||||
t := hash
|
t := hash
|
||||||
when ODIN_ENDIAN == "little" {
|
when ODIN_ENDIAN == .Little {
|
||||||
t.high = byte_swap(t.high)
|
t.high = byte_swap(t.high)
|
||||||
t.low = byte_swap(t.low)
|
t.low = byte_swap(t.low)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -189,7 +189,7 @@ write_image_as_ppm :: proc(filename: string, image: ^image.Image) -> (success: b
|
|||||||
img := image
|
img := image
|
||||||
|
|
||||||
// PBM 16-bit images are big endian
|
// PBM 16-bit images are big endian
|
||||||
when ODIN_ENDIAN == "little" {
|
when ODIN_ENDIAN == .Little {
|
||||||
if img.depth == 16 {
|
if img.depth == 16 {
|
||||||
// The pixel components are in Big Endian. Let's byteswap back.
|
// The pixel components are in Big Endian. Let's byteswap back.
|
||||||
input := mem.slice_data_cast([]u16, img.pixels.buf[:])
|
input := mem.slice_data_cast([]u16, img.pixels.buf[:])
|
||||||
|
|||||||
@@ -1611,7 +1611,7 @@ defilter :: proc(img: ^Image, filter_bytes: ^bytes.Buffer, header: ^image.PNG_IH
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
when ODIN_ENDIAN == "little" {
|
when ODIN_ENDIAN == .Little {
|
||||||
if img.depth == 16 {
|
if img.depth == 16 {
|
||||||
// The pixel components are in Big Endian. Let's byteswap.
|
// The pixel components are in Big Endian. Let's byteswap.
|
||||||
input := mem.slice_data_cast([]u16be, img.pixels.buf[:])
|
input := mem.slice_data_cast([]u16be, img.pixels.buf[:])
|
||||||
|
|||||||
+16
-16
@@ -69,29 +69,29 @@ rotate_left :: proc(x: uint, k: int) -> uint {
|
|||||||
}
|
}
|
||||||
|
|
||||||
from_be_u8 :: proc(i: u8) -> u8 { return i }
|
from_be_u8 :: proc(i: u8) -> u8 { return i }
|
||||||
from_be_u16 :: proc(i: u16) -> u16 { when ODIN_ENDIAN == "big" { return i } else { return byte_swap(i) } }
|
from_be_u16 :: proc(i: u16) -> u16 { when ODIN_ENDIAN == .Big { return i } else { return byte_swap(i) } }
|
||||||
from_be_u32 :: proc(i: u32) -> u32 { when ODIN_ENDIAN == "big" { return i } else { return byte_swap(i) } }
|
from_be_u32 :: proc(i: u32) -> u32 { when ODIN_ENDIAN == .Big { return i } else { return byte_swap(i) } }
|
||||||
from_be_u64 :: proc(i: u64) -> u64 { when ODIN_ENDIAN == "big" { return i } else { return byte_swap(i) } }
|
from_be_u64 :: proc(i: u64) -> u64 { when ODIN_ENDIAN == .Big { return i } else { return byte_swap(i) } }
|
||||||
from_be_uint :: proc(i: uint) -> uint { when ODIN_ENDIAN == "big" { return i } else { return byte_swap(i) } }
|
from_be_uint :: proc(i: uint) -> uint { when ODIN_ENDIAN == .Big { return i } else { return byte_swap(i) } }
|
||||||
|
|
||||||
from_le_u8 :: proc(i: u8) -> u8 { return i }
|
from_le_u8 :: proc(i: u8) -> u8 { return i }
|
||||||
from_le_u16 :: proc(i: u16) -> u16 { when ODIN_ENDIAN == "little" { return i } else { return byte_swap(i) } }
|
from_le_u16 :: proc(i: u16) -> u16 { when ODIN_ENDIAN == .Little { return i } else { return byte_swap(i) } }
|
||||||
from_le_u32 :: proc(i: u32) -> u32 { when ODIN_ENDIAN == "little" { return i } else { return byte_swap(i) } }
|
from_le_u32 :: proc(i: u32) -> u32 { when ODIN_ENDIAN == .Little { return i } else { return byte_swap(i) } }
|
||||||
from_le_u64 :: proc(i: u64) -> u64 { when ODIN_ENDIAN == "little" { return i } else { return byte_swap(i) } }
|
from_le_u64 :: proc(i: u64) -> u64 { when ODIN_ENDIAN == .Little { return i } else { return byte_swap(i) } }
|
||||||
from_le_uint :: proc(i: uint) -> uint { when ODIN_ENDIAN == "little" { return i } else { return byte_swap(i) } }
|
from_le_uint :: proc(i: uint) -> uint { when ODIN_ENDIAN == .Little { return i } else { return byte_swap(i) } }
|
||||||
|
|
||||||
to_be_u8 :: proc(i: u8) -> u8 { return i }
|
to_be_u8 :: proc(i: u8) -> u8 { return i }
|
||||||
to_be_u16 :: proc(i: u16) -> u16 { when ODIN_ENDIAN == "big" { return i } else { return byte_swap(i) } }
|
to_be_u16 :: proc(i: u16) -> u16 { when ODIN_ENDIAN == .Big { return i } else { return byte_swap(i) } }
|
||||||
to_be_u32 :: proc(i: u32) -> u32 { when ODIN_ENDIAN == "big" { return i } else { return byte_swap(i) } }
|
to_be_u32 :: proc(i: u32) -> u32 { when ODIN_ENDIAN == .Big { return i } else { return byte_swap(i) } }
|
||||||
to_be_u64 :: proc(i: u64) -> u64 { when ODIN_ENDIAN == "big" { return i } else { return byte_swap(i) } }
|
to_be_u64 :: proc(i: u64) -> u64 { when ODIN_ENDIAN == .Big { return i } else { return byte_swap(i) } }
|
||||||
to_be_uint :: proc(i: uint) -> uint { when ODIN_ENDIAN == "big" { return i } else { return byte_swap(i) } }
|
to_be_uint :: proc(i: uint) -> uint { when ODIN_ENDIAN == .Big { return i } else { return byte_swap(i) } }
|
||||||
|
|
||||||
|
|
||||||
to_le_u8 :: proc(i: u8) -> u8 { return i }
|
to_le_u8 :: proc(i: u8) -> u8 { return i }
|
||||||
to_le_u16 :: proc(i: u16) -> u16 { when ODIN_ENDIAN == "little" { return i } else { return byte_swap(i) } }
|
to_le_u16 :: proc(i: u16) -> u16 { when ODIN_ENDIAN == .Little { return i } else { return byte_swap(i) } }
|
||||||
to_le_u32 :: proc(i: u32) -> u32 { when ODIN_ENDIAN == "little" { return i } else { return byte_swap(i) } }
|
to_le_u32 :: proc(i: u32) -> u32 { when ODIN_ENDIAN == .Little { return i } else { return byte_swap(i) } }
|
||||||
to_le_u64 :: proc(i: u64) -> u64 { when ODIN_ENDIAN == "little" { return i } else { return byte_swap(i) } }
|
to_le_u64 :: proc(i: u64) -> u64 { when ODIN_ENDIAN == .Little { return i } else { return byte_swap(i) } }
|
||||||
to_le_uint :: proc(i: uint) -> uint { when ODIN_ENDIAN == "little" { return i } else { return byte_swap(i) } }
|
to_le_uint :: proc(i: uint) -> uint { when ODIN_ENDIAN == .Little { return i } else { return byte_swap(i) } }
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -398,6 +398,16 @@ Raw_Cstring :: struct {
|
|||||||
*/
|
*/
|
||||||
Odin_Build_Mode_Type :: type_of(ODIN_BUILD_MODE)
|
Odin_Build_Mode_Type :: type_of(ODIN_BUILD_MODE)
|
||||||
|
|
||||||
|
/*
|
||||||
|
// Defined internally by the compiler
|
||||||
|
Odin_Endian_Type :: enum int {
|
||||||
|
Unknown,
|
||||||
|
Little,
|
||||||
|
Big,
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
Odin_Endian_Type :: type_of(ODIN_ENDIAN)
|
||||||
|
|
||||||
|
|
||||||
/////////////////////////////
|
/////////////////////////////
|
||||||
// Init Startup Procedures //
|
// Init Startup Procedures //
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ udivmod128 :: proc "c" (a, b: u128, rem: ^u128) -> u128 {
|
|||||||
q, r: [2]u64
|
q, r: [2]u64
|
||||||
sr: u32 = 0
|
sr: u32 = 0
|
||||||
|
|
||||||
low :: 1 when ODIN_ENDIAN == "big" else 0
|
low :: 1 when ODIN_ENDIAN == .Big else 0
|
||||||
high :: 1 - low
|
high :: 1 - low
|
||||||
U64_BITS :: 8*size_of(u64)
|
U64_BITS :: 8*size_of(u64)
|
||||||
U128_BITS :: 8*size_of(u128)
|
U128_BITS :: 8*size_of(u128)
|
||||||
|
|||||||
+9
-11
@@ -170,7 +170,6 @@ struct BuildContext {
|
|||||||
// Constants
|
// Constants
|
||||||
String ODIN_OS; // target operating system
|
String ODIN_OS; // target operating system
|
||||||
String ODIN_ARCH; // target architecture
|
String ODIN_ARCH; // target architecture
|
||||||
String ODIN_ENDIAN; // target endian
|
|
||||||
String ODIN_VENDOR; // compiler vendor
|
String ODIN_VENDOR; // compiler vendor
|
||||||
String ODIN_VERSION; // compiler version
|
String ODIN_VERSION; // compiler version
|
||||||
String ODIN_ROOT; // Odin ROOT
|
String ODIN_ROOT; // Odin ROOT
|
||||||
@@ -269,7 +268,7 @@ bool global_ignore_warnings(void) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
gb_global TargetMetrics target_windows_i386 = {
|
gb_global TargetMetrics target_windows_386 = {
|
||||||
TargetOs_windows,
|
TargetOs_windows,
|
||||||
TargetArch_i386,
|
TargetArch_i386,
|
||||||
4,
|
4,
|
||||||
@@ -285,7 +284,7 @@ gb_global TargetMetrics target_windows_amd64 = {
|
|||||||
str_lit("e-m:w-i64:64-f80:128-n8:16:32:64-S128"),
|
str_lit("e-m:w-i64:64-f80:128-n8:16:32:64-S128"),
|
||||||
};
|
};
|
||||||
|
|
||||||
gb_global TargetMetrics target_linux_i386 = {
|
gb_global TargetMetrics target_linux_386 = {
|
||||||
TargetOs_linux,
|
TargetOs_linux,
|
||||||
TargetArch_i386,
|
TargetArch_i386,
|
||||||
4,
|
4,
|
||||||
@@ -328,7 +327,7 @@ gb_global TargetMetrics target_darwin_arm64 = {
|
|||||||
str_lit("e-m:o-i64:64-i128:128-n32:64-S128"), // TODO(bill): Is this correct?
|
str_lit("e-m:o-i64:64-i128:128-n32:64-S128"), // TODO(bill): Is this correct?
|
||||||
};
|
};
|
||||||
|
|
||||||
gb_global TargetMetrics target_freebsd_i386 = {
|
gb_global TargetMetrics target_freebsd_386 = {
|
||||||
TargetOs_freebsd,
|
TargetOs_freebsd,
|
||||||
TargetArch_i386,
|
TargetArch_i386,
|
||||||
4,
|
4,
|
||||||
@@ -401,12 +400,12 @@ gb_global NamedTargetMetrics named_targets[] = {
|
|||||||
{ str_lit("darwin_amd64"), &target_darwin_amd64 },
|
{ str_lit("darwin_amd64"), &target_darwin_amd64 },
|
||||||
{ str_lit("darwin_arm64"), &target_darwin_arm64 },
|
{ str_lit("darwin_arm64"), &target_darwin_arm64 },
|
||||||
{ str_lit("essence_amd64"), &target_essence_amd64 },
|
{ str_lit("essence_amd64"), &target_essence_amd64 },
|
||||||
{ str_lit("linux_i386"), &target_linux_i386 },
|
{ str_lit("linux_386"), &target_linux_386 },
|
||||||
{ str_lit("linux_amd64"), &target_linux_amd64 },
|
{ str_lit("linux_amd64"), &target_linux_amd64 },
|
||||||
{ str_lit("linux_arm64"), &target_linux_arm64 },
|
{ str_lit("linux_arm64"), &target_linux_arm64 },
|
||||||
{ str_lit("windows_i386"), &target_windows_i386 },
|
{ str_lit("windows_386"), &target_windows_386 },
|
||||||
{ str_lit("windows_amd64"), &target_windows_amd64 },
|
{ str_lit("windows_amd64"), &target_windows_amd64 },
|
||||||
{ str_lit("freebsd_i386"), &target_freebsd_i386 },
|
{ str_lit("freebsd_386"), &target_freebsd_386 },
|
||||||
{ str_lit("freebsd_amd64"), &target_freebsd_amd64 },
|
{ str_lit("freebsd_amd64"), &target_freebsd_amd64 },
|
||||||
{ str_lit("freestanding_wasm32"), &target_freestanding_wasm32 },
|
{ str_lit("freestanding_wasm32"), &target_freestanding_wasm32 },
|
||||||
{ str_lit("wasi_wasm32"), &target_wasi_wasm32 },
|
{ str_lit("wasi_wasm32"), &target_wasi_wasm32 },
|
||||||
@@ -879,13 +878,13 @@ void init_build_context(TargetMetrics *cross_target) {
|
|||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
#if defined(GB_SYSTEM_WINDOWS)
|
#if defined(GB_SYSTEM_WINDOWS)
|
||||||
metrics = &target_windows_i386;
|
metrics = &target_windows_386;
|
||||||
#elif defined(GB_SYSTEM_OSX)
|
#elif defined(GB_SYSTEM_OSX)
|
||||||
#error "Build Error: Unsupported architecture"
|
#error "Build Error: Unsupported architecture"
|
||||||
#elif defined(GB_SYSTEM_FREEBSD)
|
#elif defined(GB_SYSTEM_FREEBSD)
|
||||||
metrics = &target_freebsd_i386;
|
metrics = &target_freebsd_386;
|
||||||
#else
|
#else
|
||||||
metrics = &target_linux_i386;
|
metrics = &target_linux_386;
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@@ -904,7 +903,6 @@ void init_build_context(TargetMetrics *cross_target) {
|
|||||||
bc->metrics = *metrics;
|
bc->metrics = *metrics;
|
||||||
bc->ODIN_OS = target_os_names[metrics->os];
|
bc->ODIN_OS = target_os_names[metrics->os];
|
||||||
bc->ODIN_ARCH = target_arch_names[metrics->arch];
|
bc->ODIN_ARCH = target_arch_names[metrics->arch];
|
||||||
bc->ODIN_ENDIAN = target_endian_names[target_endians[metrics->arch]];
|
|
||||||
bc->endian_kind = target_endians[metrics->arch];
|
bc->endian_kind = target_endians[metrics->arch];
|
||||||
bc->word_size = metrics->word_size;
|
bc->word_size = metrics->word_size;
|
||||||
bc->max_align = metrics->max_align;
|
bc->max_align = metrics->max_align;
|
||||||
|
|||||||
+13
-2
@@ -858,7 +858,6 @@ void init_universal(void) {
|
|||||||
// TODO(bill): Set through flags in the compiler
|
// TODO(bill): Set through flags in the compiler
|
||||||
add_global_string_constant("ODIN_OS", bc->ODIN_OS);
|
add_global_string_constant("ODIN_OS", bc->ODIN_OS);
|
||||||
add_global_string_constant("ODIN_ARCH", bc->ODIN_ARCH);
|
add_global_string_constant("ODIN_ARCH", bc->ODIN_ARCH);
|
||||||
add_global_string_constant("ODIN_ENDIAN", bc->ODIN_ENDIAN);
|
|
||||||
add_global_string_constant("ODIN_VENDOR", bc->ODIN_VENDOR);
|
add_global_string_constant("ODIN_VENDOR", bc->ODIN_VENDOR);
|
||||||
add_global_string_constant("ODIN_VERSION", bc->ODIN_VERSION);
|
add_global_string_constant("ODIN_VERSION", bc->ODIN_VERSION);
|
||||||
add_global_string_constant("ODIN_ROOT", bc->ODIN_ROOT);
|
add_global_string_constant("ODIN_ROOT", bc->ODIN_ROOT);
|
||||||
@@ -876,7 +875,19 @@ void init_universal(void) {
|
|||||||
add_global_enum_constant(fields, "ODIN_BUILD_MODE", bc->build_mode);
|
add_global_enum_constant(fields, "ODIN_BUILD_MODE", bc->build_mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
// add_global_string_constant("ODIN_BUILD_MODE", bc->ODIN_BUILD_MODE);
|
add_global_string_constant("ODIN_ENDIAN_STRING", target_endian_names[target_endians[bc->metrics.arch]]);
|
||||||
|
{
|
||||||
|
GlobalEnumValue values[TargetEndian_COUNT] = {
|
||||||
|
{"Unknown", TargetEndian_Invalid},
|
||||||
|
|
||||||
|
{"Little", TargetEndian_Little},
|
||||||
|
{"Big", TargetEndian_Big},
|
||||||
|
};
|
||||||
|
|
||||||
|
auto fields = add_global_enum_type(str_lit("Odin_Endian_Type"), values, gb_count_of(values));
|
||||||
|
add_global_enum_constant(fields, "ODIN_ENDIAN", target_endians[bc->metrics.arch]);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
add_global_bool_constant("ODIN_DEBUG", bc->ODIN_DEBUG);
|
add_global_bool_constant("ODIN_DEBUG", bc->ODIN_DEBUG);
|
||||||
add_global_bool_constant("ODIN_DISABLE_ASSERT", bc->ODIN_DISABLE_ASSERT);
|
add_global_bool_constant("ODIN_DISABLE_ASSERT", bc->ODIN_DISABLE_ASSERT);
|
||||||
|
|||||||
Vendored
+1
-1
@@ -59,7 +59,7 @@ AUDIO_F32LSB :: 0x8120 /**< 32-bit floating point samples */
|
|||||||
AUDIO_F32MSB :: 0x9120 /**< As above, but big-endian byte order */
|
AUDIO_F32MSB :: 0x9120 /**< As above, but big-endian byte order */
|
||||||
AUDIO_F32 :: AUDIO_F32LSB
|
AUDIO_F32 :: AUDIO_F32LSB
|
||||||
|
|
||||||
when ODIN_ENDIAN == "little" {
|
when ODIN_ENDIAN == .Little {
|
||||||
AUDIO_U16SYS :: AUDIO_U16LSB
|
AUDIO_U16SYS :: AUDIO_U16LSB
|
||||||
AUDIO_S16SYS :: AUDIO_S16LSB
|
AUDIO_S16SYS :: AUDIO_S16LSB
|
||||||
AUDIO_S32SYS :: AUDIO_S32LSB
|
AUDIO_S32SYS :: AUDIO_S32LSB
|
||||||
|
|||||||
Vendored
+4
-4
@@ -156,10 +156,10 @@ PixelFormatEnum :: enum u32 {
|
|||||||
ARGB2101010 = 1<<28 | PIXELTYPE_PACKED32<<24 | PACKEDORDER_ARGB<<20 | PACKEDLAYOUT_2101010<<16 | 32<<8 | 4<<0,
|
ARGB2101010 = 1<<28 | PIXELTYPE_PACKED32<<24 | PACKEDORDER_ARGB<<20 | PACKEDLAYOUT_2101010<<16 | 32<<8 | 4<<0,
|
||||||
|
|
||||||
/* Aliases for RGBA byte arrays of color data, for the current platform */
|
/* Aliases for RGBA byte arrays of color data, for the current platform */
|
||||||
RGBA32 = RGBA8888 when ODIN_ENDIAN == "big" else ABGR8888,
|
RGBA32 = RGBA8888 when ODIN_ENDIAN == .Big else ABGR8888,
|
||||||
ARGB32 = ARGB8888 when ODIN_ENDIAN == "big" else BGRA8888,
|
ARGB32 = ARGB8888 when ODIN_ENDIAN == .Big else BGRA8888,
|
||||||
BGRA32 = BGRA8888 when ODIN_ENDIAN == "big" else ARGB8888,
|
BGRA32 = BGRA8888 when ODIN_ENDIAN == .Big else ARGB8888,
|
||||||
ABGR32 = ABGR8888 when ODIN_ENDIAN == "big" else RGBA8888,
|
ABGR32 = ABGR8888 when ODIN_ENDIAN == .Big else RGBA8888,
|
||||||
|
|
||||||
YV12 = /**< Planar mode: Y + V + U (3 planes) */
|
YV12 = /**< Planar mode: Y + V + U (3 planes) */
|
||||||
'Y'<<24 | 'V'<<16 | '1'<<8 | '2'<<0,
|
'Y'<<24 | 'V'<<16 | '1'<<8 | '2'<<0,
|
||||||
|
|||||||
Reference in New Issue
Block a user