mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-06-12 23:31:38 -07:00
os_core: linux port for memory, thread info, filesystem apis
This commit is contained in:
@@ -99,16 +99,16 @@ if not "%no_meta%"=="1" (
|
||||
|
||||
:: --- Build Everything (@build_targets) --------------------------------------
|
||||
pushd build
|
||||
if "%raddbg%"=="1" set didbuild=1 && %compile% ..\src\raddbg\raddbg_main.c %compile_link% %out%raddbg.exe || exit /b 1
|
||||
if "%rdi_from_pdb%"=="1" set didbuild=1 && %compile% ..\src\rdi_from_pdb\rdi_from_pdb_main.c %compile_link% %out%rdi_from_pdb.exe || exit /b 1
|
||||
if "%rdi_from_dwarf%"=="1" set didbuild=1 && %compile% ..\src\rdi_from_dwarf\rdi_from_dwarf.c %compile_link% %out%rdi_from_dwarf.exe || exit /b 1
|
||||
if "%rdi_dump%"=="1" set didbuild=1 && %compile% ..\src\rdi_dump\rdi_dump_main.c %compile_link% %out%rdi_dump.exe || exit /b 1
|
||||
if "%rdi_breakpad_from_pdb%"=="1" set didbuild=1 && %compile% ..\src\rdi_breakpad_from_pdb\rdi_breakpad_from_pdb_main.c %compile_link% %out%rdi_breakpad_from_pdb.exe || exit /b 1
|
||||
if "%ryan_scratch%"=="1" set didbuild=1 && %compile% ..\src\scratch\ryan_scratch.c %compile_link% %out%ryan_scratch.exe || exit /b 1
|
||||
if "%cpp_tests%"=="1" set didbuild=1 && %compile% ..\src\scratch\i_hate_c_plus_plus.cpp %compile_link% %out%cpp_tests.exe || exit /b 1
|
||||
if "%look_at_raddbg%"=="1" set didbuild=1 && %compile% ..\src\scratch\look_at_raddbg.c %compile_link% %out%look_at_raddbg.exe || exit /b 1
|
||||
if "%raddbg%"=="1" set didbuild=1 && %compile% ..\src\raddbg\raddbg_main.c %compile_link% %out%raddbg.exe || exit /b 1
|
||||
if "%rdi_from_pdb%"=="1" set didbuild=1 && %compile% ..\src\rdi_from_pdb\rdi_from_pdb_main.c %compile_link% %out%rdi_from_pdb.exe || exit /b 1
|
||||
if "%rdi_from_dwarf%"=="1" set didbuild=1 && %compile% ..\src\rdi_from_dwarf\rdi_from_dwarf.c %compile_link% %out%rdi_from_dwarf.exe || exit /b 1
|
||||
if "%rdi_dump%"=="1" set didbuild=1 && %compile% ..\src\rdi_dump\rdi_dump_main.c %compile_link% %out%rdi_dump.exe || exit /b 1
|
||||
if "%rdi_breakpad_from_pdb%"=="1" set didbuild=1 && %compile% ..\src\rdi_breakpad_from_pdb\rdi_breakpad_from_pdb_main.c %compile_link% %out%rdi_breakpad_from_pdb.exe || exit /b 1
|
||||
if "%ryan_scratch%"=="1" set didbuild=1 && %compile% ..\src\scratch\ryan_scratch.c %compile_link% %out%ryan_scratch.exe || exit /b 1
|
||||
if "%cpp_tests%"=="1" set didbuild=1 && %compile% ..\src\scratch\i_hate_c_plus_plus.cpp %compile_link% %out%cpp_tests.exe || exit /b 1
|
||||
if "%look_at_raddbg%"=="1" set didbuild=1 && %compile% ..\src\scratch\look_at_raddbg.c %compile_link% %out%look_at_raddbg.exe || exit /b 1
|
||||
if "%mule_main%"=="1" set didbuild=1 && del vc*.pdb mule*.pdb && %compile_release% %only_compile% ..\src\mule\mule_inline.cpp && %compile_release% %only_compile% ..\src\mule\mule_o2.cpp && %compile_debug% %EHsc% ..\src\mule\mule_main.cpp ..\src\mule\mule_c.c mule_inline.obj mule_o2.obj %compile_link% %no_aslr% %out%mule_main.exe || exit /b 1
|
||||
if "%mule_module%"=="1" set didbuild=1 && %compile% ..\src\mule\mule_module.cpp %compile_link% %link_dll% %out%mule_module.dll || exit /b 1
|
||||
if "%mule_module%"=="1" set didbuild=1 && %compile% ..\src\mule\mule_module.cpp %compile_link% %link_dll% %out%mule_module.dll || exit /b 1
|
||||
if "%mule_hotload%"=="1" set didbuild=1 && %compile% ..\src\mule\mule_hotload_main.c %compile_link% %out%mule_hotload.exe & %compile% ..\src\mule\mule_hotload_module_main.c %compile_link% %link_dll% %out%mule_hotload_module.dll || exit /b 1
|
||||
if "%mule_peb_trample%"=="1" (
|
||||
set didbuild=1
|
||||
|
||||
@@ -16,7 +16,7 @@ auto_compile_flags=''
|
||||
clang_common='-I../src/ -I../local/ -gcodeview -fdiagnostics-absolute-paths -Wall -Wno-unknown-warning-option -Wno-missing-braces -Wno-unused-function -Wno-writable-strings -Wno-unused-value -Wno-unused-variable -Wno-unused-local-typedef -Wno-deprecated-register -Wno-deprecated-declarations -Wno-unused-but-set-variable -Wno-single-bit-bitfield-constant-conversion -Wno-compare-distinct-pointer-types -Wno-initializer-overrides -Wno-incompatible-pointer-types-discards-qualifiers -Xclang -flto-visibility-public-std -D_USE_MATH_DEFINES -Dstrdup=_strdup -Dgnu_printf=printf'
|
||||
clang_debug="clang -g -O0 -DBUILD_DEBUG=1 ${clang_common} ${auto_compile_flags}"
|
||||
clang_release="clang -g -O2 -DBUILD_DEBUG=0 ${clang_common} ${auto_compile_flags}"
|
||||
clang_link=""
|
||||
clang_link="-lpthread"
|
||||
clang_out="-o"
|
||||
|
||||
# --- Per-Build Settings ------------------------------------------------------
|
||||
@@ -46,7 +46,8 @@ fi
|
||||
|
||||
# --- Build Everything (@build_targets) ---------------------------------------
|
||||
cd build
|
||||
if [ "$raddbg" = "1" ]; then didbuild=1 && $compile ../src/raddbg/raddbg_main.c $compile_link $out raddbg || exit 1; fi
|
||||
if [ "$raddbg" = "1" ]; then didbuild=1 && $compile ../src/raddbg/raddbg_main.c $compile_link $out raddbg || exit 1; fi
|
||||
if [ "$ryan_scratch" = "1" ]; then didbuild=1 && $compile ../src/scratch/ryan_scratch.c $compile_link $out ryan_scratch || exit 1; fi
|
||||
cd ..
|
||||
|
||||
# --- Warn On No Builds -------------------------------------------------------
|
||||
|
||||
@@ -101,7 +101,6 @@
|
||||
#elif COMPILER_GCC
|
||||
# define AlignOf(T) __alignof__(T)
|
||||
#else
|
||||
#else
|
||||
# error AlignOf not defined for this compiler.
|
||||
#endif
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+176
-176
@@ -1,176 +1,176 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
U32 ctrl_exception_code_kind_code_table[38] =
|
||||
{
|
||||
0,
|
||||
0x40010005,
|
||||
0x40010008,
|
||||
0x40080201,
|
||||
0x40080202,
|
||||
0x0000071a,
|
||||
0x80000002,
|
||||
0xc0000005,
|
||||
0xc0000006,
|
||||
0xc0000008,
|
||||
0xc0000017,
|
||||
0xc000001d,
|
||||
0xc0000025,
|
||||
0xc0000026,
|
||||
0xc000008c,
|
||||
0xc000008d,
|
||||
0xc000008e,
|
||||
0xc000008f,
|
||||
0xc0000090,
|
||||
0xc0000091,
|
||||
0xc0000092,
|
||||
0xc0000093,
|
||||
0xc0000094,
|
||||
0xc0000095,
|
||||
0xc0000096,
|
||||
0xc00000fd,
|
||||
0xc0000135,
|
||||
0xc0000138,
|
||||
0xc0000139,
|
||||
0xc0000142,
|
||||
0xc00002b4,
|
||||
0xc00002b5,
|
||||
0xc0000420,
|
||||
0xc06d007e,
|
||||
0xc06d007f,
|
||||
0xe073616e,
|
||||
0xe0736171,
|
||||
0x0000087a,
|
||||
};
|
||||
|
||||
String8 ctrl_exception_code_kind_display_string_table[38] =
|
||||
{
|
||||
{0},
|
||||
str8_lit_comp("(Win32) Control-C"),
|
||||
str8_lit_comp("(Win32) Control-Break"),
|
||||
str8_lit_comp("(Win32) WinRT Originate Error"),
|
||||
str8_lit_comp("(Win32) WinRT Transform Error"),
|
||||
str8_lit_comp("(Win32) RPC Call Cancelled"),
|
||||
str8_lit_comp("(Win32) Data Type Misalignment"),
|
||||
str8_lit_comp("(Win32) Access Violation"),
|
||||
str8_lit_comp("(Win32) In Page Error"),
|
||||
str8_lit_comp("(Win32) Invalid Handle Specified"),
|
||||
str8_lit_comp("(Win32) Not Enough Quota"),
|
||||
str8_lit_comp("(Win32) Illegal Instruction"),
|
||||
str8_lit_comp("(Win32) Cannot Continue From Exception"),
|
||||
str8_lit_comp("(Win32) Invalid Exception Disposition Returned By Handler"),
|
||||
str8_lit_comp("(Win32) Array Bounds Exceeded"),
|
||||
str8_lit_comp("(Win32) Floating-Point Denormal Operand"),
|
||||
str8_lit_comp("(Win32) Floating-Point Division By Zero"),
|
||||
str8_lit_comp("(Win32) Floating-Point Inexact Result"),
|
||||
str8_lit_comp("(Win32) Floating-Point Invalid Operation"),
|
||||
str8_lit_comp("(Win32) Floating-Point Overflow"),
|
||||
str8_lit_comp("(Win32) Floating-Point Stack Check"),
|
||||
str8_lit_comp("(Win32) Floating-Point Underflow"),
|
||||
str8_lit_comp("(Win32) Integer Division By Zero"),
|
||||
str8_lit_comp("(Win32) Integer Overflow"),
|
||||
str8_lit_comp("(Win32) Privileged Instruction"),
|
||||
str8_lit_comp("(Win32) Stack Overflow"),
|
||||
str8_lit_comp("(Win32) Unable To Locate DLL"),
|
||||
str8_lit_comp("(Win32) Ordinal Not Found"),
|
||||
str8_lit_comp("(Win32) Entry Point Not Found"),
|
||||
str8_lit_comp("(Win32) DLL Initialization Failed"),
|
||||
str8_lit_comp("(Win32) Floating Point SSE Multiple Faults"),
|
||||
str8_lit_comp("(Win32) Floating Point SSE Multiple Traps"),
|
||||
str8_lit_comp("(Win32) Assertion Failed"),
|
||||
str8_lit_comp("(Win32) Module Not Found"),
|
||||
str8_lit_comp("(Win32) Procedure Not Found"),
|
||||
str8_lit_comp("(Win32) Sanitizer Error Detected"),
|
||||
str8_lit_comp("(Win32) Sanitizer Raw Access Violation"),
|
||||
str8_lit_comp("(Win32) DirectX Debug Layer"),
|
||||
};
|
||||
|
||||
String8 ctrl_exception_code_kind_lowercase_code_string_table[38] =
|
||||
{
|
||||
{0},
|
||||
str8_lit_comp("win32_ctrl_c"),
|
||||
str8_lit_comp("win32_ctrl_break"),
|
||||
str8_lit_comp("win32_win_rt_originate_error"),
|
||||
str8_lit_comp("win32_win_rt_transform_error"),
|
||||
str8_lit_comp("win32_rpc_call_cancelled"),
|
||||
str8_lit_comp("win32_datatype_misalignment"),
|
||||
str8_lit_comp("win32_access_violation"),
|
||||
str8_lit_comp("win32_in_page_error"),
|
||||
str8_lit_comp("win32_invalid_handle"),
|
||||
str8_lit_comp("win32_not_enough_quota"),
|
||||
str8_lit_comp("win32_illegal_instruction"),
|
||||
str8_lit_comp("win32_cannot_continue_exception"),
|
||||
str8_lit_comp("win32_invalid_exception_disposition"),
|
||||
str8_lit_comp("win32_array_bounds_exceeded"),
|
||||
str8_lit_comp("win32_floating_point_denormal_operand"),
|
||||
str8_lit_comp("win32_floating_point_division_by_zero"),
|
||||
str8_lit_comp("win32_floating_point_inexact_result"),
|
||||
str8_lit_comp("win32_floating_point_invalid_operation"),
|
||||
str8_lit_comp("win32_floating_point_overflow"),
|
||||
str8_lit_comp("win32_floating_point_stack_check"),
|
||||
str8_lit_comp("win32_floating_point_underflow"),
|
||||
str8_lit_comp("win32_integer_division_by_zero"),
|
||||
str8_lit_comp("win32_integer_overflow"),
|
||||
str8_lit_comp("win32_privileged_instruction"),
|
||||
str8_lit_comp("win32_stack_overflow"),
|
||||
str8_lit_comp("win32_unable_to_locate_dll"),
|
||||
str8_lit_comp("win32_ordinal_not_found"),
|
||||
str8_lit_comp("win32_entry_point_not_found"),
|
||||
str8_lit_comp("win32_dll_initialization_failed"),
|
||||
str8_lit_comp("win32_floating_point_sse_multiple_faults"),
|
||||
str8_lit_comp("win32_floating_point_sse_multiple_traps"),
|
||||
str8_lit_comp("win32_assertion_failed"),
|
||||
str8_lit_comp("win32_module_not_found"),
|
||||
str8_lit_comp("win32_procedure_not_found"),
|
||||
str8_lit_comp("win32_sanitizer_error_detected"),
|
||||
str8_lit_comp("win32_sanitizer_raw_access_violation"),
|
||||
str8_lit_comp("win32_directx_debug_layer"),
|
||||
};
|
||||
|
||||
B8 ctrl_exception_code_kind_default_enable_table[38] =
|
||||
{
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
};
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
U32 ctrl_exception_code_kind_code_table[38] =
|
||||
{
|
||||
0,
|
||||
0x40010005,
|
||||
0x40010008,
|
||||
0x40080201,
|
||||
0x40080202,
|
||||
0x0000071a,
|
||||
0x80000002,
|
||||
0xc0000005,
|
||||
0xc0000006,
|
||||
0xc0000008,
|
||||
0xc0000017,
|
||||
0xc000001d,
|
||||
0xc0000025,
|
||||
0xc0000026,
|
||||
0xc000008c,
|
||||
0xc000008d,
|
||||
0xc000008e,
|
||||
0xc000008f,
|
||||
0xc0000090,
|
||||
0xc0000091,
|
||||
0xc0000092,
|
||||
0xc0000093,
|
||||
0xc0000094,
|
||||
0xc0000095,
|
||||
0xc0000096,
|
||||
0xc00000fd,
|
||||
0xc0000135,
|
||||
0xc0000138,
|
||||
0xc0000139,
|
||||
0xc0000142,
|
||||
0xc00002b4,
|
||||
0xc00002b5,
|
||||
0xc0000420,
|
||||
0xc06d007e,
|
||||
0xc06d007f,
|
||||
0xe073616e,
|
||||
0xe0736171,
|
||||
0x0000087a,
|
||||
};
|
||||
|
||||
String8 ctrl_exception_code_kind_display_string_table[38] =
|
||||
{
|
||||
{0},
|
||||
str8_lit_comp("(Win32) Control-C"),
|
||||
str8_lit_comp("(Win32) Control-Break"),
|
||||
str8_lit_comp("(Win32) WinRT Originate Error"),
|
||||
str8_lit_comp("(Win32) WinRT Transform Error"),
|
||||
str8_lit_comp("(Win32) RPC Call Cancelled"),
|
||||
str8_lit_comp("(Win32) Data Type Misalignment"),
|
||||
str8_lit_comp("(Win32) Access Violation"),
|
||||
str8_lit_comp("(Win32) In Page Error"),
|
||||
str8_lit_comp("(Win32) Invalid Handle Specified"),
|
||||
str8_lit_comp("(Win32) Not Enough Quota"),
|
||||
str8_lit_comp("(Win32) Illegal Instruction"),
|
||||
str8_lit_comp("(Win32) Cannot Continue From Exception"),
|
||||
str8_lit_comp("(Win32) Invalid Exception Disposition Returned By Handler"),
|
||||
str8_lit_comp("(Win32) Array Bounds Exceeded"),
|
||||
str8_lit_comp("(Win32) Floating-Point Denormal Operand"),
|
||||
str8_lit_comp("(Win32) Floating-Point Division By Zero"),
|
||||
str8_lit_comp("(Win32) Floating-Point Inexact Result"),
|
||||
str8_lit_comp("(Win32) Floating-Point Invalid Operation"),
|
||||
str8_lit_comp("(Win32) Floating-Point Overflow"),
|
||||
str8_lit_comp("(Win32) Floating-Point Stack Check"),
|
||||
str8_lit_comp("(Win32) Floating-Point Underflow"),
|
||||
str8_lit_comp("(Win32) Integer Division By Zero"),
|
||||
str8_lit_comp("(Win32) Integer Overflow"),
|
||||
str8_lit_comp("(Win32) Privileged Instruction"),
|
||||
str8_lit_comp("(Win32) Stack Overflow"),
|
||||
str8_lit_comp("(Win32) Unable To Locate DLL"),
|
||||
str8_lit_comp("(Win32) Ordinal Not Found"),
|
||||
str8_lit_comp("(Win32) Entry Point Not Found"),
|
||||
str8_lit_comp("(Win32) DLL Initialization Failed"),
|
||||
str8_lit_comp("(Win32) Floating Point SSE Multiple Faults"),
|
||||
str8_lit_comp("(Win32) Floating Point SSE Multiple Traps"),
|
||||
str8_lit_comp("(Win32) Assertion Failed"),
|
||||
str8_lit_comp("(Win32) Module Not Found"),
|
||||
str8_lit_comp("(Win32) Procedure Not Found"),
|
||||
str8_lit_comp("(Win32) Sanitizer Error Detected"),
|
||||
str8_lit_comp("(Win32) Sanitizer Raw Access Violation"),
|
||||
str8_lit_comp("(Win32) DirectX Debug Layer"),
|
||||
};
|
||||
|
||||
String8 ctrl_exception_code_kind_lowercase_code_string_table[38] =
|
||||
{
|
||||
{0},
|
||||
str8_lit_comp("win32_ctrl_c"),
|
||||
str8_lit_comp("win32_ctrl_break"),
|
||||
str8_lit_comp("win32_win_rt_originate_error"),
|
||||
str8_lit_comp("win32_win_rt_transform_error"),
|
||||
str8_lit_comp("win32_rpc_call_cancelled"),
|
||||
str8_lit_comp("win32_datatype_misalignment"),
|
||||
str8_lit_comp("win32_access_violation"),
|
||||
str8_lit_comp("win32_in_page_error"),
|
||||
str8_lit_comp("win32_invalid_handle"),
|
||||
str8_lit_comp("win32_not_enough_quota"),
|
||||
str8_lit_comp("win32_illegal_instruction"),
|
||||
str8_lit_comp("win32_cannot_continue_exception"),
|
||||
str8_lit_comp("win32_invalid_exception_disposition"),
|
||||
str8_lit_comp("win32_array_bounds_exceeded"),
|
||||
str8_lit_comp("win32_floating_point_denormal_operand"),
|
||||
str8_lit_comp("win32_floating_point_division_by_zero"),
|
||||
str8_lit_comp("win32_floating_point_inexact_result"),
|
||||
str8_lit_comp("win32_floating_point_invalid_operation"),
|
||||
str8_lit_comp("win32_floating_point_overflow"),
|
||||
str8_lit_comp("win32_floating_point_stack_check"),
|
||||
str8_lit_comp("win32_floating_point_underflow"),
|
||||
str8_lit_comp("win32_integer_division_by_zero"),
|
||||
str8_lit_comp("win32_integer_overflow"),
|
||||
str8_lit_comp("win32_privileged_instruction"),
|
||||
str8_lit_comp("win32_stack_overflow"),
|
||||
str8_lit_comp("win32_unable_to_locate_dll"),
|
||||
str8_lit_comp("win32_ordinal_not_found"),
|
||||
str8_lit_comp("win32_entry_point_not_found"),
|
||||
str8_lit_comp("win32_dll_initialization_failed"),
|
||||
str8_lit_comp("win32_floating_point_sse_multiple_faults"),
|
||||
str8_lit_comp("win32_floating_point_sse_multiple_traps"),
|
||||
str8_lit_comp("win32_assertion_failed"),
|
||||
str8_lit_comp("win32_module_not_found"),
|
||||
str8_lit_comp("win32_procedure_not_found"),
|
||||
str8_lit_comp("win32_sanitizer_error_detected"),
|
||||
str8_lit_comp("win32_sanitizer_raw_access_violation"),
|
||||
str8_lit_comp("win32_directx_debug_layer"),
|
||||
};
|
||||
|
||||
B8 ctrl_exception_code_kind_default_enable_table[38] =
|
||||
{
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
};
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
|
||||
@@ -1,60 +1,60 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#ifndef CTRL_META_H
|
||||
#define CTRL_META_H
|
||||
|
||||
typedef enum CTRL_ExceptionCodeKind
|
||||
{
|
||||
CTRL_ExceptionCodeKind_Null,
|
||||
CTRL_ExceptionCodeKind_Win32CtrlC,
|
||||
CTRL_ExceptionCodeKind_Win32CtrlBreak,
|
||||
CTRL_ExceptionCodeKind_Win32WinRTOriginateError,
|
||||
CTRL_ExceptionCodeKind_Win32WinRTTransformError,
|
||||
CTRL_ExceptionCodeKind_Win32RPCCallCancelled,
|
||||
CTRL_ExceptionCodeKind_Win32DatatypeMisalignment,
|
||||
CTRL_ExceptionCodeKind_Win32AccessViolation,
|
||||
CTRL_ExceptionCodeKind_Win32InPageError,
|
||||
CTRL_ExceptionCodeKind_Win32InvalidHandle,
|
||||
CTRL_ExceptionCodeKind_Win32NotEnoughQuota,
|
||||
CTRL_ExceptionCodeKind_Win32IllegalInstruction,
|
||||
CTRL_ExceptionCodeKind_Win32CannotContinueException,
|
||||
CTRL_ExceptionCodeKind_Win32InvalidExceptionDisposition,
|
||||
CTRL_ExceptionCodeKind_Win32ArrayBoundsExceeded,
|
||||
CTRL_ExceptionCodeKind_Win32FloatingPointDenormalOperand,
|
||||
CTRL_ExceptionCodeKind_Win32FloatingPointDivisionByZero,
|
||||
CTRL_ExceptionCodeKind_Win32FloatingPointInexactResult,
|
||||
CTRL_ExceptionCodeKind_Win32FloatingPointInvalidOperation,
|
||||
CTRL_ExceptionCodeKind_Win32FloatingPointOverflow,
|
||||
CTRL_ExceptionCodeKind_Win32FloatingPointStackCheck,
|
||||
CTRL_ExceptionCodeKind_Win32FloatingPointUnderflow,
|
||||
CTRL_ExceptionCodeKind_Win32IntegerDivisionByZero,
|
||||
CTRL_ExceptionCodeKind_Win32IntegerOverflow,
|
||||
CTRL_ExceptionCodeKind_Win32PrivilegedInstruction,
|
||||
CTRL_ExceptionCodeKind_Win32StackOverflow,
|
||||
CTRL_ExceptionCodeKind_Win32UnableToLocateDLL,
|
||||
CTRL_ExceptionCodeKind_Win32OrdinalNotFound,
|
||||
CTRL_ExceptionCodeKind_Win32EntryPointNotFound,
|
||||
CTRL_ExceptionCodeKind_Win32DLLInitializationFailed,
|
||||
CTRL_ExceptionCodeKind_Win32FloatingPointSSEMultipleFaults,
|
||||
CTRL_ExceptionCodeKind_Win32FloatingPointSSEMultipleTraps,
|
||||
CTRL_ExceptionCodeKind_Win32AssertionFailed,
|
||||
CTRL_ExceptionCodeKind_Win32ModuleNotFound,
|
||||
CTRL_ExceptionCodeKind_Win32ProcedureNotFound,
|
||||
CTRL_ExceptionCodeKind_Win32SanitizerErrorDetected,
|
||||
CTRL_ExceptionCodeKind_Win32SanitizerRawAccessViolation,
|
||||
CTRL_ExceptionCodeKind_Win32DirectXDebugLayer,
|
||||
CTRL_ExceptionCodeKind_COUNT,
|
||||
} CTRL_ExceptionCodeKind;
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
extern U32 ctrl_exception_code_kind_code_table[38];
|
||||
extern String8 ctrl_exception_code_kind_display_string_table[38];
|
||||
extern String8 ctrl_exception_code_kind_lowercase_code_string_table[38];
|
||||
extern B8 ctrl_exception_code_kind_default_enable_table[38];
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
#endif // CTRL_META_H
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#ifndef CTRL_META_H
|
||||
#define CTRL_META_H
|
||||
|
||||
typedef enum CTRL_ExceptionCodeKind
|
||||
{
|
||||
CTRL_ExceptionCodeKind_Null,
|
||||
CTRL_ExceptionCodeKind_Win32CtrlC,
|
||||
CTRL_ExceptionCodeKind_Win32CtrlBreak,
|
||||
CTRL_ExceptionCodeKind_Win32WinRTOriginateError,
|
||||
CTRL_ExceptionCodeKind_Win32WinRTTransformError,
|
||||
CTRL_ExceptionCodeKind_Win32RPCCallCancelled,
|
||||
CTRL_ExceptionCodeKind_Win32DatatypeMisalignment,
|
||||
CTRL_ExceptionCodeKind_Win32AccessViolation,
|
||||
CTRL_ExceptionCodeKind_Win32InPageError,
|
||||
CTRL_ExceptionCodeKind_Win32InvalidHandle,
|
||||
CTRL_ExceptionCodeKind_Win32NotEnoughQuota,
|
||||
CTRL_ExceptionCodeKind_Win32IllegalInstruction,
|
||||
CTRL_ExceptionCodeKind_Win32CannotContinueException,
|
||||
CTRL_ExceptionCodeKind_Win32InvalidExceptionDisposition,
|
||||
CTRL_ExceptionCodeKind_Win32ArrayBoundsExceeded,
|
||||
CTRL_ExceptionCodeKind_Win32FloatingPointDenormalOperand,
|
||||
CTRL_ExceptionCodeKind_Win32FloatingPointDivisionByZero,
|
||||
CTRL_ExceptionCodeKind_Win32FloatingPointInexactResult,
|
||||
CTRL_ExceptionCodeKind_Win32FloatingPointInvalidOperation,
|
||||
CTRL_ExceptionCodeKind_Win32FloatingPointOverflow,
|
||||
CTRL_ExceptionCodeKind_Win32FloatingPointStackCheck,
|
||||
CTRL_ExceptionCodeKind_Win32FloatingPointUnderflow,
|
||||
CTRL_ExceptionCodeKind_Win32IntegerDivisionByZero,
|
||||
CTRL_ExceptionCodeKind_Win32IntegerOverflow,
|
||||
CTRL_ExceptionCodeKind_Win32PrivilegedInstruction,
|
||||
CTRL_ExceptionCodeKind_Win32StackOverflow,
|
||||
CTRL_ExceptionCodeKind_Win32UnableToLocateDLL,
|
||||
CTRL_ExceptionCodeKind_Win32OrdinalNotFound,
|
||||
CTRL_ExceptionCodeKind_Win32EntryPointNotFound,
|
||||
CTRL_ExceptionCodeKind_Win32DLLInitializationFailed,
|
||||
CTRL_ExceptionCodeKind_Win32FloatingPointSSEMultipleFaults,
|
||||
CTRL_ExceptionCodeKind_Win32FloatingPointSSEMultipleTraps,
|
||||
CTRL_ExceptionCodeKind_Win32AssertionFailed,
|
||||
CTRL_ExceptionCodeKind_Win32ModuleNotFound,
|
||||
CTRL_ExceptionCodeKind_Win32ProcedureNotFound,
|
||||
CTRL_ExceptionCodeKind_Win32SanitizerErrorDetected,
|
||||
CTRL_ExceptionCodeKind_Win32SanitizerRawAccessViolation,
|
||||
CTRL_ExceptionCodeKind_Win32DirectXDebugLayer,
|
||||
CTRL_ExceptionCodeKind_COUNT,
|
||||
} CTRL_ExceptionCodeKind;
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
extern U32 ctrl_exception_code_kind_code_table[38];
|
||||
extern String8 ctrl_exception_code_kind_display_string_table[38];
|
||||
extern String8 ctrl_exception_code_kind_lowercase_code_string_table[38];
|
||||
extern B8 ctrl_exception_code_kind_default_enable_table[38];
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
#endif // CTRL_META_H
|
||||
|
||||
@@ -1,38 +1,38 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
String8 dmn_event_kind_string_table[17] =
|
||||
{
|
||||
str8_lit_comp("Null"),
|
||||
str8_lit_comp("Error"),
|
||||
str8_lit_comp("HandshakeComplete"),
|
||||
str8_lit_comp("CreateProcess"),
|
||||
str8_lit_comp("ExitProcess"),
|
||||
str8_lit_comp("CreateThread"),
|
||||
str8_lit_comp("ExitThread"),
|
||||
str8_lit_comp("LoadModule"),
|
||||
str8_lit_comp("UnloadModule"),
|
||||
str8_lit_comp("Breakpoint"),
|
||||
str8_lit_comp("Trap"),
|
||||
str8_lit_comp("SingleStep"),
|
||||
str8_lit_comp("Exception"),
|
||||
str8_lit_comp("Halt"),
|
||||
str8_lit_comp("Memory"),
|
||||
str8_lit_comp("DebugString"),
|
||||
str8_lit_comp("SetThreadName"),
|
||||
};
|
||||
|
||||
String8 dmn_exception_kind_string_table[5] =
|
||||
{
|
||||
str8_lit_comp("Null"),
|
||||
str8_lit_comp("MemoryRead"),
|
||||
str8_lit_comp("MemoryWrite"),
|
||||
str8_lit_comp("MemoryExecute"),
|
||||
str8_lit_comp("CppThrow"),
|
||||
};
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
String8 dmn_event_kind_string_table[17] =
|
||||
{
|
||||
str8_lit_comp("Null"),
|
||||
str8_lit_comp("Error"),
|
||||
str8_lit_comp("HandshakeComplete"),
|
||||
str8_lit_comp("CreateProcess"),
|
||||
str8_lit_comp("ExitProcess"),
|
||||
str8_lit_comp("CreateThread"),
|
||||
str8_lit_comp("ExitThread"),
|
||||
str8_lit_comp("LoadModule"),
|
||||
str8_lit_comp("UnloadModule"),
|
||||
str8_lit_comp("Breakpoint"),
|
||||
str8_lit_comp("Trap"),
|
||||
str8_lit_comp("SingleStep"),
|
||||
str8_lit_comp("Exception"),
|
||||
str8_lit_comp("Halt"),
|
||||
str8_lit_comp("Memory"),
|
||||
str8_lit_comp("DebugString"),
|
||||
str8_lit_comp("SetThreadName"),
|
||||
};
|
||||
|
||||
String8 dmn_exception_kind_string_table[5] =
|
||||
{
|
||||
str8_lit_comp("Null"),
|
||||
str8_lit_comp("MemoryRead"),
|
||||
str8_lit_comp("MemoryWrite"),
|
||||
str8_lit_comp("MemoryExecute"),
|
||||
str8_lit_comp("CppThrow"),
|
||||
};
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
|
||||
@@ -1,66 +1,66 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#ifndef DEMON_META_H
|
||||
#define DEMON_META_H
|
||||
|
||||
typedef enum DMN_EventKind
|
||||
{
|
||||
DMN_EventKind_Null,
|
||||
DMN_EventKind_Error,
|
||||
DMN_EventKind_HandshakeComplete,
|
||||
DMN_EventKind_CreateProcess,
|
||||
DMN_EventKind_ExitProcess,
|
||||
DMN_EventKind_CreateThread,
|
||||
DMN_EventKind_ExitThread,
|
||||
DMN_EventKind_LoadModule,
|
||||
DMN_EventKind_UnloadModule,
|
||||
DMN_EventKind_Breakpoint,
|
||||
DMN_EventKind_Trap,
|
||||
DMN_EventKind_SingleStep,
|
||||
DMN_EventKind_Exception,
|
||||
DMN_EventKind_Halt,
|
||||
DMN_EventKind_Memory,
|
||||
DMN_EventKind_DebugString,
|
||||
DMN_EventKind_SetThreadName,
|
||||
DMN_EventKind_COUNT,
|
||||
} DMN_EventKind;
|
||||
|
||||
typedef enum DMN_ErrorKind
|
||||
{
|
||||
DMN_ErrorKind_Null,
|
||||
DMN_ErrorKind_NotAttached,
|
||||
DMN_ErrorKind_UnexpectedFailure,
|
||||
DMN_ErrorKind_InvalidHandle,
|
||||
DMN_ErrorKind_COUNT,
|
||||
} DMN_ErrorKind;
|
||||
|
||||
typedef enum DMN_MemoryEventKind
|
||||
{
|
||||
DMN_MemoryEventKind_Null,
|
||||
DMN_MemoryEventKind_Commit,
|
||||
DMN_MemoryEventKind_Reserve,
|
||||
DMN_MemoryEventKind_Decommit,
|
||||
DMN_MemoryEventKind_Release,
|
||||
DMN_MemoryEventKind_COUNT,
|
||||
} DMN_MemoryEventKind;
|
||||
|
||||
typedef enum DMN_ExceptionKind
|
||||
{
|
||||
DMN_ExceptionKind_Null,
|
||||
DMN_ExceptionKind_MemoryRead,
|
||||
DMN_ExceptionKind_MemoryWrite,
|
||||
DMN_ExceptionKind_MemoryExecute,
|
||||
DMN_ExceptionKind_CppThrow,
|
||||
DMN_ExceptionKind_COUNT,
|
||||
} DMN_ExceptionKind;
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
extern String8 dmn_event_kind_string_table[17];
|
||||
extern String8 dmn_exception_kind_string_table[5];
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
#endif // DEMON_META_H
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#ifndef DEMON_META_H
|
||||
#define DEMON_META_H
|
||||
|
||||
typedef enum DMN_EventKind
|
||||
{
|
||||
DMN_EventKind_Null,
|
||||
DMN_EventKind_Error,
|
||||
DMN_EventKind_HandshakeComplete,
|
||||
DMN_EventKind_CreateProcess,
|
||||
DMN_EventKind_ExitProcess,
|
||||
DMN_EventKind_CreateThread,
|
||||
DMN_EventKind_ExitThread,
|
||||
DMN_EventKind_LoadModule,
|
||||
DMN_EventKind_UnloadModule,
|
||||
DMN_EventKind_Breakpoint,
|
||||
DMN_EventKind_Trap,
|
||||
DMN_EventKind_SingleStep,
|
||||
DMN_EventKind_Exception,
|
||||
DMN_EventKind_Halt,
|
||||
DMN_EventKind_Memory,
|
||||
DMN_EventKind_DebugString,
|
||||
DMN_EventKind_SetThreadName,
|
||||
DMN_EventKind_COUNT,
|
||||
} DMN_EventKind;
|
||||
|
||||
typedef enum DMN_ErrorKind
|
||||
{
|
||||
DMN_ErrorKind_Null,
|
||||
DMN_ErrorKind_NotAttached,
|
||||
DMN_ErrorKind_UnexpectedFailure,
|
||||
DMN_ErrorKind_InvalidHandle,
|
||||
DMN_ErrorKind_COUNT,
|
||||
} DMN_ErrorKind;
|
||||
|
||||
typedef enum DMN_MemoryEventKind
|
||||
{
|
||||
DMN_MemoryEventKind_Null,
|
||||
DMN_MemoryEventKind_Commit,
|
||||
DMN_MemoryEventKind_Reserve,
|
||||
DMN_MemoryEventKind_Decommit,
|
||||
DMN_MemoryEventKind_Release,
|
||||
DMN_MemoryEventKind_COUNT,
|
||||
} DMN_MemoryEventKind;
|
||||
|
||||
typedef enum DMN_ExceptionKind
|
||||
{
|
||||
DMN_ExceptionKind_Null,
|
||||
DMN_ExceptionKind_MemoryRead,
|
||||
DMN_ExceptionKind_MemoryWrite,
|
||||
DMN_ExceptionKind_MemoryExecute,
|
||||
DMN_ExceptionKind_CppThrow,
|
||||
DMN_ExceptionKind_COUNT,
|
||||
} DMN_ExceptionKind;
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
extern String8 dmn_event_kind_string_table[17];
|
||||
extern String8 dmn_exception_kind_string_table[5];
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
#endif // DEMON_META_H
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+1552
-1552
File diff suppressed because it is too large
Load Diff
+1305
-1305
File diff suppressed because it is too large
Load Diff
+5060
-5060
File diff suppressed because it is too large
Load Diff
@@ -1,17 +1,17 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
internal R_Tex2DSampleKind d_push_tex2d_sample_kind(R_Tex2DSampleKind v) {D_StackPushImpl(Tex2DSampleKind, tex2d_sample_kind, R_Tex2DSampleKind, v);}
|
||||
internal Mat3x3F32 d_push_xform2d(Mat3x3F32 v) {D_StackPushImpl(XForm2D, xform2d, Mat3x3F32, v);}
|
||||
internal Rng2F32 d_push_clip(Rng2F32 v) {D_StackPushImpl(Clip, clip, Rng2F32, v);}
|
||||
internal F32 d_push_transparency(F32 v) {D_StackPushImpl(Transparency, transparency, F32, v);}
|
||||
internal R_Tex2DSampleKind d_pop_tex2d_sample_kind(void) {D_StackPopImpl(Tex2DSampleKind, tex2d_sample_kind, R_Tex2DSampleKind);}
|
||||
internal Mat3x3F32 d_pop_xform2d(void) {D_StackPopImpl(XForm2D, xform2d, Mat3x3F32);}
|
||||
internal Rng2F32 d_pop_clip(void) {D_StackPopImpl(Clip, clip, Rng2F32);}
|
||||
internal F32 d_pop_transparency(void) {D_StackPopImpl(Transparency, transparency, F32);}
|
||||
internal R_Tex2DSampleKind d_top_tex2d_sample_kind(void) {D_StackTopImpl(Tex2DSampleKind, tex2d_sample_kind, R_Tex2DSampleKind);}
|
||||
internal Mat3x3F32 d_top_xform2d(void) {D_StackTopImpl(XForm2D, xform2d, Mat3x3F32);}
|
||||
internal Rng2F32 d_top_clip(void) {D_StackTopImpl(Clip, clip, Rng2F32);}
|
||||
internal F32 d_top_transparency(void) {D_StackTopImpl(Transparency, transparency, F32);}
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
internal R_Tex2DSampleKind d_push_tex2d_sample_kind(R_Tex2DSampleKind v) {D_StackPushImpl(Tex2DSampleKind, tex2d_sample_kind, R_Tex2DSampleKind, v);}
|
||||
internal Mat3x3F32 d_push_xform2d(Mat3x3F32 v) {D_StackPushImpl(XForm2D, xform2d, Mat3x3F32, v);}
|
||||
internal Rng2F32 d_push_clip(Rng2F32 v) {D_StackPushImpl(Clip, clip, Rng2F32, v);}
|
||||
internal F32 d_push_transparency(F32 v) {D_StackPushImpl(Transparency, transparency, F32, v);}
|
||||
internal R_Tex2DSampleKind d_pop_tex2d_sample_kind(void) {D_StackPopImpl(Tex2DSampleKind, tex2d_sample_kind, R_Tex2DSampleKind);}
|
||||
internal Mat3x3F32 d_pop_xform2d(void) {D_StackPopImpl(XForm2D, xform2d, Mat3x3F32);}
|
||||
internal Rng2F32 d_pop_clip(void) {D_StackPopImpl(Clip, clip, Rng2F32);}
|
||||
internal F32 d_pop_transparency(void) {D_StackPopImpl(Transparency, transparency, F32);}
|
||||
internal R_Tex2DSampleKind d_top_tex2d_sample_kind(void) {D_StackTopImpl(Tex2DSampleKind, tex2d_sample_kind, R_Tex2DSampleKind);}
|
||||
internal Mat3x3F32 d_top_xform2d(void) {D_StackTopImpl(XForm2D, xform2d, Mat3x3F32);}
|
||||
internal Rng2F32 d_top_clip(void) {D_StackTopImpl(Clip, clip, Rng2F32);}
|
||||
internal F32 d_top_transparency(void) {D_StackTopImpl(Transparency, transparency, F32);}
|
||||
|
||||
@@ -1,49 +1,49 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#ifndef DRAW_META_H
|
||||
#define DRAW_META_H
|
||||
|
||||
typedef struct D_Tex2DSampleKindNode D_Tex2DSampleKindNode; struct D_Tex2DSampleKindNode {D_Tex2DSampleKindNode *next; R_Tex2DSampleKind v;};
|
||||
typedef struct D_XForm2DNode D_XForm2DNode; struct D_XForm2DNode {D_XForm2DNode *next; Mat3x3F32 v;};
|
||||
typedef struct D_ClipNode D_ClipNode; struct D_ClipNode {D_ClipNode *next; Rng2F32 v;};
|
||||
typedef struct D_TransparencyNode D_TransparencyNode; struct D_TransparencyNode {D_TransparencyNode *next; F32 v;};
|
||||
#define D_BucketStackDecls struct{\
|
||||
D_Tex2DSampleKindNode *top_tex2d_sample_kind;\
|
||||
D_XForm2DNode *top_xform2d;\
|
||||
D_ClipNode *top_clip;\
|
||||
D_TransparencyNode *top_transparency;\
|
||||
}
|
||||
read_only global D_Tex2DSampleKindNode d_nil_tex2d_sample_kind = {0, R_Tex2DSampleKind_Nearest};
|
||||
read_only global D_XForm2DNode d_nil_xform2d = {0, {1, 0, 0, 0, 1, 0, 0, 0, 1}};
|
||||
read_only global D_ClipNode d_nil_clip = {0, {0}};
|
||||
read_only global D_TransparencyNode d_nil_transparency = {0, 0};
|
||||
#define D_BucketStackInits(b) do{\
|
||||
(b)->top_tex2d_sample_kind = &d_nil_tex2d_sample_kind;\
|
||||
(b)->top_xform2d = &d_nil_xform2d;\
|
||||
(b)->top_clip = &d_nil_clip;\
|
||||
(b)->top_transparency = &d_nil_transparency;\
|
||||
}while(0)
|
||||
#if 0
|
||||
internal R_Tex2DSampleKind d_push_tex2d_sample_kind(R_Tex2DSampleKind v);
|
||||
internal Mat3x3F32 d_push_xform2d(Mat3x3F32 v);
|
||||
internal Rng2F32 d_push_clip(Rng2F32 v);
|
||||
internal F32 d_push_transparency(F32 v);
|
||||
internal R_Tex2DSampleKind d_pop_tex2d_sample_kind(void);
|
||||
internal Mat3x3F32 d_pop_xform2d(void);
|
||||
internal Rng2F32 d_pop_clip(void);
|
||||
internal F32 d_pop_transparency(void);
|
||||
internal R_Tex2DSampleKind d_top_tex2d_sample_kind(void);
|
||||
internal Mat3x3F32 d_top_xform2d(void);
|
||||
internal Rng2F32 d_top_clip(void);
|
||||
internal F32 d_top_transparency(void);
|
||||
#endif
|
||||
#if 0
|
||||
#define D_Tex2DSampleKindScope(v) DeferLoop(d_push_tex2d_sample_kind(v), d_pop_tex2d_sample_kind())
|
||||
#define D_XForm2DScope(v) DeferLoop(d_push_xform2d(v), d_pop_xform2d())
|
||||
#define D_ClipScope(v) DeferLoop(d_push_clip(v), d_pop_clip())
|
||||
#define D_TransparencyScope(v) DeferLoop(d_push_transparency(v), d_pop_transparency())
|
||||
#endif
|
||||
#endif // DRAW_META_H
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#ifndef DRAW_META_H
|
||||
#define DRAW_META_H
|
||||
|
||||
typedef struct D_Tex2DSampleKindNode D_Tex2DSampleKindNode; struct D_Tex2DSampleKindNode {D_Tex2DSampleKindNode *next; R_Tex2DSampleKind v;};
|
||||
typedef struct D_XForm2DNode D_XForm2DNode; struct D_XForm2DNode {D_XForm2DNode *next; Mat3x3F32 v;};
|
||||
typedef struct D_ClipNode D_ClipNode; struct D_ClipNode {D_ClipNode *next; Rng2F32 v;};
|
||||
typedef struct D_TransparencyNode D_TransparencyNode; struct D_TransparencyNode {D_TransparencyNode *next; F32 v;};
|
||||
#define D_BucketStackDecls struct{\
|
||||
D_Tex2DSampleKindNode *top_tex2d_sample_kind;\
|
||||
D_XForm2DNode *top_xform2d;\
|
||||
D_ClipNode *top_clip;\
|
||||
D_TransparencyNode *top_transparency;\
|
||||
}
|
||||
read_only global D_Tex2DSampleKindNode d_nil_tex2d_sample_kind = {0, R_Tex2DSampleKind_Nearest};
|
||||
read_only global D_XForm2DNode d_nil_xform2d = {0, {1, 0, 0, 0, 1, 0, 0, 0, 1}};
|
||||
read_only global D_ClipNode d_nil_clip = {0, {0}};
|
||||
read_only global D_TransparencyNode d_nil_transparency = {0, 0};
|
||||
#define D_BucketStackInits(b) do{\
|
||||
(b)->top_tex2d_sample_kind = &d_nil_tex2d_sample_kind;\
|
||||
(b)->top_xform2d = &d_nil_xform2d;\
|
||||
(b)->top_clip = &d_nil_clip;\
|
||||
(b)->top_transparency = &d_nil_transparency;\
|
||||
}while(0)
|
||||
#if 0
|
||||
internal R_Tex2DSampleKind d_push_tex2d_sample_kind(R_Tex2DSampleKind v);
|
||||
internal Mat3x3F32 d_push_xform2d(Mat3x3F32 v);
|
||||
internal Rng2F32 d_push_clip(Rng2F32 v);
|
||||
internal F32 d_push_transparency(F32 v);
|
||||
internal R_Tex2DSampleKind d_pop_tex2d_sample_kind(void);
|
||||
internal Mat3x3F32 d_pop_xform2d(void);
|
||||
internal Rng2F32 d_pop_clip(void);
|
||||
internal F32 d_pop_transparency(void);
|
||||
internal R_Tex2DSampleKind d_top_tex2d_sample_kind(void);
|
||||
internal Mat3x3F32 d_top_xform2d(void);
|
||||
internal Rng2F32 d_top_clip(void);
|
||||
internal F32 d_top_transparency(void);
|
||||
#endif
|
||||
#if 0
|
||||
#define D_Tex2DSampleKindScope(v) DeferLoop(d_push_tex2d_sample_kind(v), d_pop_tex2d_sample_kind())
|
||||
#define D_XForm2DScope(v) DeferLoop(d_push_xform2d(v), d_pop_xform2d())
|
||||
#define D_ClipScope(v) DeferLoop(d_push_clip(v), d_pop_clip())
|
||||
#define D_TransparencyScope(v) DeferLoop(d_push_transparency(v), d_pop_transparency())
|
||||
#endif
|
||||
#endif // DRAW_META_H
|
||||
|
||||
+155
-155
@@ -1,155 +1,155 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
U8 eval_expr_kind_child_counts[40] =
|
||||
{
|
||||
0,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
3,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
1,
|
||||
2,
|
||||
0,
|
||||
};
|
||||
|
||||
String8 eval_expr_kind_strings[40] =
|
||||
{
|
||||
str8_lit_comp("Nil"),
|
||||
str8_lit_comp("ArrayIndex"),
|
||||
str8_lit_comp("MemberAccess"),
|
||||
str8_lit_comp("Deref"),
|
||||
str8_lit_comp("Address"),
|
||||
str8_lit_comp("Cast"),
|
||||
str8_lit_comp("Sizeof"),
|
||||
str8_lit_comp("Neg"),
|
||||
str8_lit_comp("LogNot"),
|
||||
str8_lit_comp("BitNot"),
|
||||
str8_lit_comp("Mul"),
|
||||
str8_lit_comp("Div"),
|
||||
str8_lit_comp("Mod"),
|
||||
str8_lit_comp("Add"),
|
||||
str8_lit_comp("Sub"),
|
||||
str8_lit_comp("LShift"),
|
||||
str8_lit_comp("RShift"),
|
||||
str8_lit_comp("Less"),
|
||||
str8_lit_comp("LsEq"),
|
||||
str8_lit_comp("Grtr"),
|
||||
str8_lit_comp("GrEq"),
|
||||
str8_lit_comp("EqEq"),
|
||||
str8_lit_comp("NtEq"),
|
||||
str8_lit_comp("BitAnd"),
|
||||
str8_lit_comp("BitXor"),
|
||||
str8_lit_comp("BitOr"),
|
||||
str8_lit_comp("LogAnd"),
|
||||
str8_lit_comp("LogOr"),
|
||||
str8_lit_comp("Ternary"),
|
||||
str8_lit_comp("LeafBytecode"),
|
||||
str8_lit_comp("LeafMember"),
|
||||
str8_lit_comp("LeafU64"),
|
||||
str8_lit_comp("LeafF64"),
|
||||
str8_lit_comp("LeafF32"),
|
||||
str8_lit_comp("TypeIdent"),
|
||||
str8_lit_comp("Ptr"),
|
||||
str8_lit_comp("Array"),
|
||||
str8_lit_comp("Func"),
|
||||
str8_lit_comp("Define"),
|
||||
str8_lit_comp("LeafIdent"),
|
||||
};
|
||||
|
||||
String8 eval_result_code_display_strings[11] =
|
||||
{
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp("Cannot divide by zero."),
|
||||
str8_lit_comp("Invalid operation."),
|
||||
str8_lit_comp("Invalid operation types."),
|
||||
str8_lit_comp("Failed memory read."),
|
||||
str8_lit_comp("Failed register read."),
|
||||
str8_lit_comp("Invalid frame base address."),
|
||||
str8_lit_comp("Invalid module base address."),
|
||||
str8_lit_comp("Invalid thread-local storage base address."),
|
||||
str8_lit_comp("Insufficient evaluation machine stack space."),
|
||||
str8_lit_comp("Malformed bytecode."),
|
||||
};
|
||||
|
||||
String8 eval_expr_op_strings[40] =
|
||||
{
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp("[]"),
|
||||
str8_lit_comp("."),
|
||||
str8_lit_comp("*"),
|
||||
str8_lit_comp("&"),
|
||||
str8_lit_comp("cast"),
|
||||
str8_lit_comp("sizeof"),
|
||||
str8_lit_comp("-"),
|
||||
str8_lit_comp("!"),
|
||||
str8_lit_comp("~"),
|
||||
str8_lit_comp("*"),
|
||||
str8_lit_comp("/"),
|
||||
str8_lit_comp("%"),
|
||||
str8_lit_comp("+"),
|
||||
str8_lit_comp("-"),
|
||||
str8_lit_comp("<<"),
|
||||
str8_lit_comp(">>"),
|
||||
str8_lit_comp("<"),
|
||||
str8_lit_comp("<="),
|
||||
str8_lit_comp(">"),
|
||||
str8_lit_comp(">="),
|
||||
str8_lit_comp("=="),
|
||||
str8_lit_comp("!="),
|
||||
str8_lit_comp("&"),
|
||||
str8_lit_comp("^"),
|
||||
str8_lit_comp("|"),
|
||||
str8_lit_comp("&&"),
|
||||
str8_lit_comp("||"),
|
||||
str8_lit_comp("? "),
|
||||
str8_lit_comp("bytecode"),
|
||||
str8_lit_comp("member"),
|
||||
str8_lit_comp("U64"),
|
||||
str8_lit_comp("F64"),
|
||||
str8_lit_comp("F32"),
|
||||
str8_lit_comp("type_ident"),
|
||||
str8_lit_comp("ptr"),
|
||||
str8_lit_comp("array"),
|
||||
str8_lit_comp("function"),
|
||||
str8_lit_comp("="),
|
||||
str8_lit_comp("leaf_ident"),
|
||||
};
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
U8 eval_expr_kind_child_counts[40] =
|
||||
{
|
||||
0,
|
||||
2,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
2,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
3,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
2,
|
||||
1,
|
||||
2,
|
||||
0,
|
||||
};
|
||||
|
||||
String8 eval_expr_kind_strings[40] =
|
||||
{
|
||||
str8_lit_comp("Nil"),
|
||||
str8_lit_comp("ArrayIndex"),
|
||||
str8_lit_comp("MemberAccess"),
|
||||
str8_lit_comp("Deref"),
|
||||
str8_lit_comp("Address"),
|
||||
str8_lit_comp("Cast"),
|
||||
str8_lit_comp("Sizeof"),
|
||||
str8_lit_comp("Neg"),
|
||||
str8_lit_comp("LogNot"),
|
||||
str8_lit_comp("BitNot"),
|
||||
str8_lit_comp("Mul"),
|
||||
str8_lit_comp("Div"),
|
||||
str8_lit_comp("Mod"),
|
||||
str8_lit_comp("Add"),
|
||||
str8_lit_comp("Sub"),
|
||||
str8_lit_comp("LShift"),
|
||||
str8_lit_comp("RShift"),
|
||||
str8_lit_comp("Less"),
|
||||
str8_lit_comp("LsEq"),
|
||||
str8_lit_comp("Grtr"),
|
||||
str8_lit_comp("GrEq"),
|
||||
str8_lit_comp("EqEq"),
|
||||
str8_lit_comp("NtEq"),
|
||||
str8_lit_comp("BitAnd"),
|
||||
str8_lit_comp("BitXor"),
|
||||
str8_lit_comp("BitOr"),
|
||||
str8_lit_comp("LogAnd"),
|
||||
str8_lit_comp("LogOr"),
|
||||
str8_lit_comp("Ternary"),
|
||||
str8_lit_comp("LeafBytecode"),
|
||||
str8_lit_comp("LeafMember"),
|
||||
str8_lit_comp("LeafU64"),
|
||||
str8_lit_comp("LeafF64"),
|
||||
str8_lit_comp("LeafF32"),
|
||||
str8_lit_comp("TypeIdent"),
|
||||
str8_lit_comp("Ptr"),
|
||||
str8_lit_comp("Array"),
|
||||
str8_lit_comp("Func"),
|
||||
str8_lit_comp("Define"),
|
||||
str8_lit_comp("LeafIdent"),
|
||||
};
|
||||
|
||||
String8 eval_result_code_display_strings[11] =
|
||||
{
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp("Cannot divide by zero."),
|
||||
str8_lit_comp("Invalid operation."),
|
||||
str8_lit_comp("Invalid operation types."),
|
||||
str8_lit_comp("Failed memory read."),
|
||||
str8_lit_comp("Failed register read."),
|
||||
str8_lit_comp("Invalid frame base address."),
|
||||
str8_lit_comp("Invalid module base address."),
|
||||
str8_lit_comp("Invalid thread-local storage base address."),
|
||||
str8_lit_comp("Insufficient evaluation machine stack space."),
|
||||
str8_lit_comp("Malformed bytecode."),
|
||||
};
|
||||
|
||||
String8 eval_expr_op_strings[40] =
|
||||
{
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp("[]"),
|
||||
str8_lit_comp("."),
|
||||
str8_lit_comp("*"),
|
||||
str8_lit_comp("&"),
|
||||
str8_lit_comp("cast"),
|
||||
str8_lit_comp("sizeof"),
|
||||
str8_lit_comp("-"),
|
||||
str8_lit_comp("!"),
|
||||
str8_lit_comp("~"),
|
||||
str8_lit_comp("*"),
|
||||
str8_lit_comp("/"),
|
||||
str8_lit_comp("%"),
|
||||
str8_lit_comp("+"),
|
||||
str8_lit_comp("-"),
|
||||
str8_lit_comp("<<"),
|
||||
str8_lit_comp(">>"),
|
||||
str8_lit_comp("<"),
|
||||
str8_lit_comp("<="),
|
||||
str8_lit_comp(">"),
|
||||
str8_lit_comp(">="),
|
||||
str8_lit_comp("=="),
|
||||
str8_lit_comp("!="),
|
||||
str8_lit_comp("&"),
|
||||
str8_lit_comp("^"),
|
||||
str8_lit_comp("|"),
|
||||
str8_lit_comp("&&"),
|
||||
str8_lit_comp("||"),
|
||||
str8_lit_comp("? "),
|
||||
str8_lit_comp("bytecode"),
|
||||
str8_lit_comp("member"),
|
||||
str8_lit_comp("U64"),
|
||||
str8_lit_comp("F64"),
|
||||
str8_lit_comp("F32"),
|
||||
str8_lit_comp("type_ident"),
|
||||
str8_lit_comp("ptr"),
|
||||
str8_lit_comp("array"),
|
||||
str8_lit_comp("function"),
|
||||
str8_lit_comp("="),
|
||||
str8_lit_comp("leaf_ident"),
|
||||
};
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
|
||||
@@ -1,79 +1,79 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#ifndef EVAL_META_H
|
||||
#define EVAL_META_H
|
||||
|
||||
typedef U32 EVAL_ExprKind;
|
||||
typedef enum EVAL_ExprKindEnum
|
||||
{
|
||||
EVAL_ExprKind_Nil,
|
||||
EVAL_ExprKind_ArrayIndex,
|
||||
EVAL_ExprKind_MemberAccess,
|
||||
EVAL_ExprKind_Deref,
|
||||
EVAL_ExprKind_Address,
|
||||
EVAL_ExprKind_Cast,
|
||||
EVAL_ExprKind_Sizeof,
|
||||
EVAL_ExprKind_Neg,
|
||||
EVAL_ExprKind_LogNot,
|
||||
EVAL_ExprKind_BitNot,
|
||||
EVAL_ExprKind_Mul,
|
||||
EVAL_ExprKind_Div,
|
||||
EVAL_ExprKind_Mod,
|
||||
EVAL_ExprKind_Add,
|
||||
EVAL_ExprKind_Sub,
|
||||
EVAL_ExprKind_LShift,
|
||||
EVAL_ExprKind_RShift,
|
||||
EVAL_ExprKind_Less,
|
||||
EVAL_ExprKind_LsEq,
|
||||
EVAL_ExprKind_Grtr,
|
||||
EVAL_ExprKind_GrEq,
|
||||
EVAL_ExprKind_EqEq,
|
||||
EVAL_ExprKind_NtEq,
|
||||
EVAL_ExprKind_BitAnd,
|
||||
EVAL_ExprKind_BitXor,
|
||||
EVAL_ExprKind_BitOr,
|
||||
EVAL_ExprKind_LogAnd,
|
||||
EVAL_ExprKind_LogOr,
|
||||
EVAL_ExprKind_Ternary,
|
||||
EVAL_ExprKind_LeafBytecode,
|
||||
EVAL_ExprKind_LeafMember,
|
||||
EVAL_ExprKind_LeafU64,
|
||||
EVAL_ExprKind_LeafF64,
|
||||
EVAL_ExprKind_LeafF32,
|
||||
EVAL_ExprKind_TypeIdent,
|
||||
EVAL_ExprKind_Ptr,
|
||||
EVAL_ExprKind_Array,
|
||||
EVAL_ExprKind_Func,
|
||||
EVAL_ExprKind_Define,
|
||||
EVAL_ExprKind_LeafIdent,
|
||||
EVAL_ExprKind_COUNT,
|
||||
} EVAL_ExprKindEnum;
|
||||
|
||||
typedef enum EVAL_ResultCode
|
||||
{
|
||||
EVAL_ResultCode_Good,
|
||||
EVAL_ResultCode_DivideByZero,
|
||||
EVAL_ResultCode_BadOp,
|
||||
EVAL_ResultCode_BadOpTypes,
|
||||
EVAL_ResultCode_BadMemRead,
|
||||
EVAL_ResultCode_BadRegRead,
|
||||
EVAL_ResultCode_BadFrameBase,
|
||||
EVAL_ResultCode_BadModuleBase,
|
||||
EVAL_ResultCode_BadTLSBase,
|
||||
EVAL_ResultCode_InsufficientStackSpace,
|
||||
EVAL_ResultCode_MalformedBytecode,
|
||||
EVAL_ResultCode_COUNT,
|
||||
} EVAL_ResultCode;
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
extern U8 eval_expr_kind_child_counts[40];
|
||||
extern String8 eval_expr_kind_strings[40];
|
||||
extern String8 eval_result_code_display_strings[11];
|
||||
extern String8 eval_expr_op_strings[40];
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
#endif // EVAL_META_H
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#ifndef EVAL_META_H
|
||||
#define EVAL_META_H
|
||||
|
||||
typedef U32 EVAL_ExprKind;
|
||||
typedef enum EVAL_ExprKindEnum
|
||||
{
|
||||
EVAL_ExprKind_Nil,
|
||||
EVAL_ExprKind_ArrayIndex,
|
||||
EVAL_ExprKind_MemberAccess,
|
||||
EVAL_ExprKind_Deref,
|
||||
EVAL_ExprKind_Address,
|
||||
EVAL_ExprKind_Cast,
|
||||
EVAL_ExprKind_Sizeof,
|
||||
EVAL_ExprKind_Neg,
|
||||
EVAL_ExprKind_LogNot,
|
||||
EVAL_ExprKind_BitNot,
|
||||
EVAL_ExprKind_Mul,
|
||||
EVAL_ExprKind_Div,
|
||||
EVAL_ExprKind_Mod,
|
||||
EVAL_ExprKind_Add,
|
||||
EVAL_ExprKind_Sub,
|
||||
EVAL_ExprKind_LShift,
|
||||
EVAL_ExprKind_RShift,
|
||||
EVAL_ExprKind_Less,
|
||||
EVAL_ExprKind_LsEq,
|
||||
EVAL_ExprKind_Grtr,
|
||||
EVAL_ExprKind_GrEq,
|
||||
EVAL_ExprKind_EqEq,
|
||||
EVAL_ExprKind_NtEq,
|
||||
EVAL_ExprKind_BitAnd,
|
||||
EVAL_ExprKind_BitXor,
|
||||
EVAL_ExprKind_BitOr,
|
||||
EVAL_ExprKind_LogAnd,
|
||||
EVAL_ExprKind_LogOr,
|
||||
EVAL_ExprKind_Ternary,
|
||||
EVAL_ExprKind_LeafBytecode,
|
||||
EVAL_ExprKind_LeafMember,
|
||||
EVAL_ExprKind_LeafU64,
|
||||
EVAL_ExprKind_LeafF64,
|
||||
EVAL_ExprKind_LeafF32,
|
||||
EVAL_ExprKind_TypeIdent,
|
||||
EVAL_ExprKind_Ptr,
|
||||
EVAL_ExprKind_Array,
|
||||
EVAL_ExprKind_Func,
|
||||
EVAL_ExprKind_Define,
|
||||
EVAL_ExprKind_LeafIdent,
|
||||
EVAL_ExprKind_COUNT,
|
||||
} EVAL_ExprKindEnum;
|
||||
|
||||
typedef enum EVAL_ResultCode
|
||||
{
|
||||
EVAL_ResultCode_Good,
|
||||
EVAL_ResultCode_DivideByZero,
|
||||
EVAL_ResultCode_BadOp,
|
||||
EVAL_ResultCode_BadOpTypes,
|
||||
EVAL_ResultCode_BadMemRead,
|
||||
EVAL_ResultCode_BadRegRead,
|
||||
EVAL_ResultCode_BadFrameBase,
|
||||
EVAL_ResultCode_BadModuleBase,
|
||||
EVAL_ResultCode_BadTLSBase,
|
||||
EVAL_ResultCode_InsufficientStackSpace,
|
||||
EVAL_ResultCode_MalformedBytecode,
|
||||
EVAL_ResultCode_COUNT,
|
||||
} EVAL_ResultCode;
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
extern U8 eval_expr_kind_child_counts[40];
|
||||
extern String8 eval_expr_kind_strings[40];
|
||||
extern String8 eval_result_code_display_strings[11];
|
||||
extern String8 eval_expr_op_strings[40];
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
#endif // EVAL_META_H
|
||||
|
||||
+278
-278
@@ -1,278 +1,278 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
////////////////////////////////////////////////////////////////
|
||||
//~ RAD Debug Info, (R)AD(D)BG(I) Format Library
|
||||
//
|
||||
// Defines standard RDI debug information format types and
|
||||
// functions.
|
||||
|
||||
#ifndef RDI_FORMAT_C
|
||||
#define RDI_FORMAT_C
|
||||
|
||||
RDI_U16 rdi_section_element_size_table[37] =
|
||||
{
|
||||
sizeof(RDI_U8),
|
||||
sizeof(RDI_TopLevelInfo),
|
||||
sizeof(RDI_U8),
|
||||
sizeof(RDI_U32),
|
||||
sizeof(RDI_U32),
|
||||
sizeof(RDI_BinarySection),
|
||||
sizeof(RDI_FilePathNode),
|
||||
sizeof(RDI_SourceFile),
|
||||
sizeof(RDI_LineTable),
|
||||
sizeof(RDI_U64),
|
||||
sizeof(RDI_Line),
|
||||
sizeof(RDI_Column),
|
||||
sizeof(RDI_SourceLineMap),
|
||||
sizeof(RDI_U32),
|
||||
sizeof(RDI_U32),
|
||||
sizeof(RDI_U64),
|
||||
sizeof(RDI_Unit),
|
||||
sizeof(RDI_VMapEntry),
|
||||
sizeof(RDI_TypeNode),
|
||||
sizeof(RDI_UDT),
|
||||
sizeof(RDI_Member),
|
||||
sizeof(RDI_EnumMember),
|
||||
sizeof(RDI_GlobalVariable),
|
||||
sizeof(RDI_VMapEntry),
|
||||
sizeof(RDI_ThreadVariable),
|
||||
sizeof(RDI_Procedure),
|
||||
sizeof(RDI_Scope),
|
||||
sizeof(RDI_U64),
|
||||
sizeof(RDI_VMapEntry),
|
||||
sizeof(RDI_InlineSite),
|
||||
sizeof(RDI_Local),
|
||||
sizeof(RDI_LocationBlock),
|
||||
sizeof(RDI_U8),
|
||||
sizeof(RDI_NameMap),
|
||||
sizeof(RDI_NameMapBucket),
|
||||
sizeof(RDI_NameMapNode),
|
||||
sizeof(RDI_U8),
|
||||
};
|
||||
|
||||
RDI_U8 rdi_section_is_required_table[37] =
|
||||
{
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
};
|
||||
|
||||
RDI_U8 rdi_eval_op_ctrlbits_table[45] =
|
||||
{
|
||||
RDI_EVAL_CTRLBITS(0, 0, 0),
|
||||
RDI_EVAL_CTRLBITS(0, 0, 0),
|
||||
RDI_EVAL_CTRLBITS(1, 1, 0),
|
||||
RDI_EVAL_CTRLBITS(1, 0, 0),
|
||||
RDI_EVAL_CTRLBITS(1, 1, 1),
|
||||
RDI_EVAL_CTRLBITS(4, 0, 1),
|
||||
RDI_EVAL_CTRLBITS(0, 1, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 0, 1),
|
||||
RDI_EVAL_CTRLBITS(4, 0, 1),
|
||||
RDI_EVAL_CTRLBITS(4, 0, 1),
|
||||
RDI_EVAL_CTRLBITS(0, 0, 0),
|
||||
RDI_EVAL_CTRLBITS(0, 0, 0),
|
||||
RDI_EVAL_CTRLBITS(1, 0, 1),
|
||||
RDI_EVAL_CTRLBITS(2, 0, 1),
|
||||
RDI_EVAL_CTRLBITS(4, 0, 1),
|
||||
RDI_EVAL_CTRLBITS(8, 0, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 1, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 1, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 1, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 1, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 1, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 1, 1),
|
||||
RDI_EVAL_CTRLBITS(2, 1, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 0, 1),
|
||||
RDI_EVAL_CTRLBITS(0, 1, 0),
|
||||
RDI_EVAL_CTRLBITS(1, 0, 0),
|
||||
RDI_EVAL_CTRLBITS(0, 0, 0),
|
||||
};
|
||||
|
||||
struct {RDI_EvalConversionKind dst_typegroups[RDI_EvalTypeGroup_COUNT];} rdi_eval_typegroup_conversion_kind_matrix[6] =
|
||||
{
|
||||
{{RDI_EvalConversionKind_OtherToOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther}},
|
||||
{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal}},
|
||||
{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal}},
|
||||
{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal}},
|
||||
{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Noop}},
|
||||
{{RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop}},
|
||||
};
|
||||
|
||||
struct {RDI_U8 *str; RDI_U64 size;} rdi_eval_conversion_kind_message_string_table[6] =
|
||||
{
|
||||
{(RDI_U8 *)"Other", sizeof("Other")},
|
||||
{(RDI_U8 *)"U", sizeof("U")},
|
||||
{(RDI_U8 *)"S", sizeof("S")},
|
||||
{(RDI_U8 *)"F32", sizeof("F32")},
|
||||
{(RDI_U8 *)"F64", sizeof("F64")},
|
||||
{(RDI_U8 *)"COUNT", sizeof("COUNT")},
|
||||
};
|
||||
|
||||
RDI_PROC RDI_U64
|
||||
rdi_hash(RDI_U8 *ptr, RDI_U64 size)
|
||||
{
|
||||
RDI_U64 result = 5381;
|
||||
RDI_U8 *opl = ptr + size;
|
||||
for(;ptr < opl; ptr += 1)
|
||||
{
|
||||
result = ((result << 5) + result) + *ptr;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
RDI_PROC RDI_U32
|
||||
rdi_size_from_basic_type_kind(RDI_TypeKind kind)
|
||||
{
|
||||
RDI_U32 result = 0;
|
||||
switch(kind)
|
||||
{
|
||||
default:{}break;
|
||||
case RDI_TypeKind_Handle:{result = 0xFFFFFFFF;}break;
|
||||
case RDI_TypeKind_Char8:{result = 1;}break;
|
||||
case RDI_TypeKind_Char16:{result = 2;}break;
|
||||
case RDI_TypeKind_Char32:{result = 4;}break;
|
||||
case RDI_TypeKind_UChar8:{result = 1;}break;
|
||||
case RDI_TypeKind_UChar16:{result = 2;}break;
|
||||
case RDI_TypeKind_UChar32:{result = 4;}break;
|
||||
case RDI_TypeKind_U8:{result = 1;}break;
|
||||
case RDI_TypeKind_U16:{result = 2;}break;
|
||||
case RDI_TypeKind_U32:{result = 4;}break;
|
||||
case RDI_TypeKind_U64:{result = 8;}break;
|
||||
case RDI_TypeKind_U128:{result = 16;}break;
|
||||
case RDI_TypeKind_U256:{result = 32;}break;
|
||||
case RDI_TypeKind_U512:{result = 64;}break;
|
||||
case RDI_TypeKind_S8:{result = 1;}break;
|
||||
case RDI_TypeKind_S16:{result = 2;}break;
|
||||
case RDI_TypeKind_S32:{result = 4;}break;
|
||||
case RDI_TypeKind_S64:{result = 8;}break;
|
||||
case RDI_TypeKind_S128:{result = 16;}break;
|
||||
case RDI_TypeKind_S256:{result = 32;}break;
|
||||
case RDI_TypeKind_S512:{result = 64;}break;
|
||||
case RDI_TypeKind_Bool:{result = 1;}break;
|
||||
case RDI_TypeKind_F16:{result = 2;}break;
|
||||
case RDI_TypeKind_F32:{result = 4;}break;
|
||||
case RDI_TypeKind_F32PP:{result = 4;}break;
|
||||
case RDI_TypeKind_F48:{result = 6;}break;
|
||||
case RDI_TypeKind_F64:{result = 8;}break;
|
||||
case RDI_TypeKind_F80:{result = 10;}break;
|
||||
case RDI_TypeKind_F128:{result = 16;}break;
|
||||
case RDI_TypeKind_ComplexF32:{result = 8;}break;
|
||||
case RDI_TypeKind_ComplexF64:{result = 16;}break;
|
||||
case RDI_TypeKind_ComplexF80:{result = 20;}break;
|
||||
case RDI_TypeKind_ComplexF128:{result = 32;}break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
RDI_PROC RDI_U32
|
||||
rdi_addr_size_from_arch(RDI_Arch arch)
|
||||
{
|
||||
RDI_U32 result = 0;
|
||||
switch(arch)
|
||||
{
|
||||
default:{}break;
|
||||
case RDI_Arch_X86:{result = 4;}break;
|
||||
case RDI_Arch_X64:{result = 8;}break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
RDI_PROC RDI_EvalConversionKind
|
||||
rdi_eval_conversion_kind_from_typegroups(RDI_EvalTypeGroup in, RDI_EvalTypeGroup out)
|
||||
{
|
||||
RDI_EvalConversionKind k = rdi_eval_typegroup_conversion_kind_matrix[in].dst_typegroups[out];
|
||||
return k;
|
||||
}
|
||||
|
||||
RDI_PROC RDI_S32
|
||||
rdi_eval_op_typegroup_are_compatible(RDI_EvalOp op, RDI_EvalTypeGroup group)
|
||||
{
|
||||
RDI_S32 result = 0;
|
||||
switch(op)
|
||||
{
|
||||
case RDI_EvalOp_Neg: case RDI_EvalOp_Add: case RDI_EvalOp_Sub:
|
||||
case RDI_EvalOp_Mul: case RDI_EvalOp_Div:
|
||||
case RDI_EvalOp_EqEq:case RDI_EvalOp_NtEq:
|
||||
case RDI_EvalOp_LsEq:case RDI_EvalOp_GrEq:
|
||||
case RDI_EvalOp_Less:case RDI_EvalOp_Grtr:
|
||||
{
|
||||
if(group != RDI_EvalTypeGroup_Other)
|
||||
{
|
||||
result = 1;
|
||||
}
|
||||
}break;
|
||||
case RDI_EvalOp_Mod:case RDI_EvalOp_LShift:case RDI_EvalOp_RShift:
|
||||
case RDI_EvalOp_BitNot:case RDI_EvalOp_BitAnd:case RDI_EvalOp_BitXor:
|
||||
case RDI_EvalOp_BitOr:case RDI_EvalOp_LogNot:case RDI_EvalOp_LogAnd:
|
||||
case RDI_EvalOp_LogOr:
|
||||
{
|
||||
if(group == RDI_EvalTypeGroup_S || group == RDI_EvalTypeGroup_U)
|
||||
{
|
||||
result = 1;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
RDI_PROC RDI_U8 *
|
||||
rdi_explanation_string_from_eval_conversion_kind(RDI_EvalConversionKind kind, RDI_U64 *size_out)
|
||||
{
|
||||
*size_out = rdi_eval_conversion_kind_message_string_table[kind].size;
|
||||
return rdi_eval_conversion_kind_message_string_table[kind].str;
|
||||
}
|
||||
|
||||
#endif // RDI_FORMAT_C
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
////////////////////////////////////////////////////////////////
|
||||
//~ RAD Debug Info, (R)AD(D)BG(I) Format Library
|
||||
//
|
||||
// Defines standard RDI debug information format types and
|
||||
// functions.
|
||||
|
||||
#ifndef RDI_FORMAT_C
|
||||
#define RDI_FORMAT_C
|
||||
|
||||
RDI_U16 rdi_section_element_size_table[37] =
|
||||
{
|
||||
sizeof(RDI_U8),
|
||||
sizeof(RDI_TopLevelInfo),
|
||||
sizeof(RDI_U8),
|
||||
sizeof(RDI_U32),
|
||||
sizeof(RDI_U32),
|
||||
sizeof(RDI_BinarySection),
|
||||
sizeof(RDI_FilePathNode),
|
||||
sizeof(RDI_SourceFile),
|
||||
sizeof(RDI_LineTable),
|
||||
sizeof(RDI_U64),
|
||||
sizeof(RDI_Line),
|
||||
sizeof(RDI_Column),
|
||||
sizeof(RDI_SourceLineMap),
|
||||
sizeof(RDI_U32),
|
||||
sizeof(RDI_U32),
|
||||
sizeof(RDI_U64),
|
||||
sizeof(RDI_Unit),
|
||||
sizeof(RDI_VMapEntry),
|
||||
sizeof(RDI_TypeNode),
|
||||
sizeof(RDI_UDT),
|
||||
sizeof(RDI_Member),
|
||||
sizeof(RDI_EnumMember),
|
||||
sizeof(RDI_GlobalVariable),
|
||||
sizeof(RDI_VMapEntry),
|
||||
sizeof(RDI_ThreadVariable),
|
||||
sizeof(RDI_Procedure),
|
||||
sizeof(RDI_Scope),
|
||||
sizeof(RDI_U64),
|
||||
sizeof(RDI_VMapEntry),
|
||||
sizeof(RDI_InlineSite),
|
||||
sizeof(RDI_Local),
|
||||
sizeof(RDI_LocationBlock),
|
||||
sizeof(RDI_U8),
|
||||
sizeof(RDI_NameMap),
|
||||
sizeof(RDI_NameMapBucket),
|
||||
sizeof(RDI_NameMapNode),
|
||||
sizeof(RDI_U8),
|
||||
};
|
||||
|
||||
RDI_U8 rdi_section_is_required_table[37] =
|
||||
{
|
||||
0,
|
||||
0,
|
||||
1,
|
||||
1,
|
||||
1,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
};
|
||||
|
||||
RDI_U8 rdi_eval_op_ctrlbits_table[45] =
|
||||
{
|
||||
RDI_EVAL_CTRLBITS(0, 0, 0),
|
||||
RDI_EVAL_CTRLBITS(0, 0, 0),
|
||||
RDI_EVAL_CTRLBITS(1, 1, 0),
|
||||
RDI_EVAL_CTRLBITS(1, 0, 0),
|
||||
RDI_EVAL_CTRLBITS(1, 1, 1),
|
||||
RDI_EVAL_CTRLBITS(4, 0, 1),
|
||||
RDI_EVAL_CTRLBITS(0, 1, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 0, 1),
|
||||
RDI_EVAL_CTRLBITS(4, 0, 1),
|
||||
RDI_EVAL_CTRLBITS(4, 0, 1),
|
||||
RDI_EVAL_CTRLBITS(0, 0, 0),
|
||||
RDI_EVAL_CTRLBITS(0, 0, 0),
|
||||
RDI_EVAL_CTRLBITS(1, 0, 1),
|
||||
RDI_EVAL_CTRLBITS(2, 0, 1),
|
||||
RDI_EVAL_CTRLBITS(4, 0, 1),
|
||||
RDI_EVAL_CTRLBITS(8, 0, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 1, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 1, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 1, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 1, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 2, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 1, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 1, 1),
|
||||
RDI_EVAL_CTRLBITS(2, 1, 1),
|
||||
RDI_EVAL_CTRLBITS(1, 0, 1),
|
||||
RDI_EVAL_CTRLBITS(0, 1, 0),
|
||||
RDI_EVAL_CTRLBITS(1, 0, 0),
|
||||
RDI_EVAL_CTRLBITS(0, 0, 0),
|
||||
};
|
||||
|
||||
struct {RDI_EvalConversionKind dst_typegroups[RDI_EvalTypeGroup_COUNT];} rdi_eval_typegroup_conversion_kind_matrix[6] =
|
||||
{
|
||||
{{RDI_EvalConversionKind_OtherToOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther, RDI_EvalConversionKind_FromOther}},
|
||||
{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal}},
|
||||
{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal}},
|
||||
{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Legal}},
|
||||
{{RDI_EvalConversionKind_ToOther, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Legal, RDI_EvalConversionKind_Noop}},
|
||||
{{RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop, RDI_EvalConversionKind_Noop}},
|
||||
};
|
||||
|
||||
struct {RDI_U8 *str; RDI_U64 size;} rdi_eval_conversion_kind_message_string_table[6] =
|
||||
{
|
||||
{(RDI_U8 *)"Other", sizeof("Other")},
|
||||
{(RDI_U8 *)"U", sizeof("U")},
|
||||
{(RDI_U8 *)"S", sizeof("S")},
|
||||
{(RDI_U8 *)"F32", sizeof("F32")},
|
||||
{(RDI_U8 *)"F64", sizeof("F64")},
|
||||
{(RDI_U8 *)"COUNT", sizeof("COUNT")},
|
||||
};
|
||||
|
||||
RDI_PROC RDI_U64
|
||||
rdi_hash(RDI_U8 *ptr, RDI_U64 size)
|
||||
{
|
||||
RDI_U64 result = 5381;
|
||||
RDI_U8 *opl = ptr + size;
|
||||
for(;ptr < opl; ptr += 1)
|
||||
{
|
||||
result = ((result << 5) + result) + *ptr;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
RDI_PROC RDI_U32
|
||||
rdi_size_from_basic_type_kind(RDI_TypeKind kind)
|
||||
{
|
||||
RDI_U32 result = 0;
|
||||
switch(kind)
|
||||
{
|
||||
default:{}break;
|
||||
case RDI_TypeKind_Handle:{result = 0xFFFFFFFF;}break;
|
||||
case RDI_TypeKind_Char8:{result = 1;}break;
|
||||
case RDI_TypeKind_Char16:{result = 2;}break;
|
||||
case RDI_TypeKind_Char32:{result = 4;}break;
|
||||
case RDI_TypeKind_UChar8:{result = 1;}break;
|
||||
case RDI_TypeKind_UChar16:{result = 2;}break;
|
||||
case RDI_TypeKind_UChar32:{result = 4;}break;
|
||||
case RDI_TypeKind_U8:{result = 1;}break;
|
||||
case RDI_TypeKind_U16:{result = 2;}break;
|
||||
case RDI_TypeKind_U32:{result = 4;}break;
|
||||
case RDI_TypeKind_U64:{result = 8;}break;
|
||||
case RDI_TypeKind_U128:{result = 16;}break;
|
||||
case RDI_TypeKind_U256:{result = 32;}break;
|
||||
case RDI_TypeKind_U512:{result = 64;}break;
|
||||
case RDI_TypeKind_S8:{result = 1;}break;
|
||||
case RDI_TypeKind_S16:{result = 2;}break;
|
||||
case RDI_TypeKind_S32:{result = 4;}break;
|
||||
case RDI_TypeKind_S64:{result = 8;}break;
|
||||
case RDI_TypeKind_S128:{result = 16;}break;
|
||||
case RDI_TypeKind_S256:{result = 32;}break;
|
||||
case RDI_TypeKind_S512:{result = 64;}break;
|
||||
case RDI_TypeKind_Bool:{result = 1;}break;
|
||||
case RDI_TypeKind_F16:{result = 2;}break;
|
||||
case RDI_TypeKind_F32:{result = 4;}break;
|
||||
case RDI_TypeKind_F32PP:{result = 4;}break;
|
||||
case RDI_TypeKind_F48:{result = 6;}break;
|
||||
case RDI_TypeKind_F64:{result = 8;}break;
|
||||
case RDI_TypeKind_F80:{result = 10;}break;
|
||||
case RDI_TypeKind_F128:{result = 16;}break;
|
||||
case RDI_TypeKind_ComplexF32:{result = 8;}break;
|
||||
case RDI_TypeKind_ComplexF64:{result = 16;}break;
|
||||
case RDI_TypeKind_ComplexF80:{result = 20;}break;
|
||||
case RDI_TypeKind_ComplexF128:{result = 32;}break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
RDI_PROC RDI_U32
|
||||
rdi_addr_size_from_arch(RDI_Arch arch)
|
||||
{
|
||||
RDI_U32 result = 0;
|
||||
switch(arch)
|
||||
{
|
||||
default:{}break;
|
||||
case RDI_Arch_X86:{result = 4;}break;
|
||||
case RDI_Arch_X64:{result = 8;}break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
RDI_PROC RDI_EvalConversionKind
|
||||
rdi_eval_conversion_kind_from_typegroups(RDI_EvalTypeGroup in, RDI_EvalTypeGroup out)
|
||||
{
|
||||
RDI_EvalConversionKind k = rdi_eval_typegroup_conversion_kind_matrix[in].dst_typegroups[out];
|
||||
return k;
|
||||
}
|
||||
|
||||
RDI_PROC RDI_S32
|
||||
rdi_eval_op_typegroup_are_compatible(RDI_EvalOp op, RDI_EvalTypeGroup group)
|
||||
{
|
||||
RDI_S32 result = 0;
|
||||
switch(op)
|
||||
{
|
||||
case RDI_EvalOp_Neg: case RDI_EvalOp_Add: case RDI_EvalOp_Sub:
|
||||
case RDI_EvalOp_Mul: case RDI_EvalOp_Div:
|
||||
case RDI_EvalOp_EqEq:case RDI_EvalOp_NtEq:
|
||||
case RDI_EvalOp_LsEq:case RDI_EvalOp_GrEq:
|
||||
case RDI_EvalOp_Less:case RDI_EvalOp_Grtr:
|
||||
{
|
||||
if(group != RDI_EvalTypeGroup_Other)
|
||||
{
|
||||
result = 1;
|
||||
}
|
||||
}break;
|
||||
case RDI_EvalOp_Mod:case RDI_EvalOp_LShift:case RDI_EvalOp_RShift:
|
||||
case RDI_EvalOp_BitNot:case RDI_EvalOp_BitAnd:case RDI_EvalOp_BitXor:
|
||||
case RDI_EvalOp_BitOr:case RDI_EvalOp_LogNot:case RDI_EvalOp_LogAnd:
|
||||
case RDI_EvalOp_LogOr:
|
||||
{
|
||||
if(group == RDI_EvalTypeGroup_S || group == RDI_EvalTypeGroup_U)
|
||||
{
|
||||
result = 1;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
RDI_PROC RDI_U8 *
|
||||
rdi_explanation_string_from_eval_conversion_kind(RDI_EvalConversionKind kind, RDI_U64 *size_out)
|
||||
{
|
||||
*size_out = rdi_eval_conversion_kind_message_string_table[kind].size;
|
||||
return rdi_eval_conversion_kind_message_string_table[kind].str;
|
||||
}
|
||||
|
||||
#endif // RDI_FORMAT_C
|
||||
|
||||
+1336
-1336
File diff suppressed because it is too large
Load Diff
@@ -1,2 +1,792 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Helpers
|
||||
|
||||
internal DateTime
|
||||
os_lnx_date_time_from_tm(tm in, U32 msec)
|
||||
{
|
||||
DateTime dt = {0};
|
||||
dt.sec = in.tm_sec;
|
||||
dt.min = in.tm_min;
|
||||
dt.hour = in.tm_hour;
|
||||
dt.day = in.tm_mday-1;
|
||||
dt.mon = in.tm_mon;
|
||||
dt.year = in.tm_year+1900;
|
||||
dt.msec = msec;
|
||||
return dt;
|
||||
}
|
||||
|
||||
internal tm
|
||||
os_lnx_tm_from_date_time(DateTime dt)
|
||||
{
|
||||
tm result = {0};
|
||||
result.tm_sec = dt.sec;
|
||||
result.tm_min = dt.min;
|
||||
result.tm_hour= dt.hour;
|
||||
result.tm_mday= dt.day+1;
|
||||
result.tm_mon = dt.mon;
|
||||
result.tm_year= dt.year-1900;
|
||||
return result;
|
||||
}
|
||||
|
||||
internal timespec
|
||||
os_lnx_timespec_from_date_time(DateTime dt)
|
||||
{
|
||||
tm tm_val = os_lnx_tm_from_date_time(dt);
|
||||
time_t seconds = timegm(&tm_val);
|
||||
timespec result = {0};
|
||||
result.tv_sec = seconds;
|
||||
return result;
|
||||
}
|
||||
|
||||
internal DenseTime
|
||||
os_lnx_dense_time_from_timespec(timespec in)
|
||||
{
|
||||
DenseTime result = 0;
|
||||
{
|
||||
struct tm tm_time = {0};
|
||||
gmtime_r(&in.tv_sec, &tm_time);
|
||||
DateTime date_time = os_lnx_date_time_from_tm(tm_time, in.tv_nsec/Million(1));
|
||||
result = dense_time_from_date_time(date_time);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
internal FileProperties
|
||||
os_lnx_file_properties_from_stat(struct stat *s)
|
||||
{
|
||||
FileProperties props = {0};
|
||||
props.size = s->st_size;
|
||||
props.created = os_lnx_dense_time_from_timespec(s->st_ctim);
|
||||
props.modified = os_lnx_dense_time_from_timespec(s->st_mtim);
|
||||
if(s->st_mode & S_IFDIR)
|
||||
{
|
||||
props.flags |= FilePropertyFlag_IsFolder;
|
||||
}
|
||||
return props;
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: @os_hooks System/Process Info (Implemented Per-OS)
|
||||
|
||||
internal OS_SystemInfo *
|
||||
os_get_system_info(void)
|
||||
{
|
||||
return &os_lnx_state.system_info;
|
||||
}
|
||||
|
||||
internal OS_ProcessInfo *
|
||||
os_get_process_info(void)
|
||||
{
|
||||
return &os_lnx_state.process_info;
|
||||
}
|
||||
|
||||
internal String8
|
||||
os_get_current_path(Arena *arena)
|
||||
{
|
||||
char *cwdir = getcwd(0, 0);
|
||||
String8 string = push_str8_copy(arena, str8_cstring(cwdir));
|
||||
return string;
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: @os_hooks Memory Allocation (Implemented Per-OS)
|
||||
|
||||
//- rjf: basic
|
||||
|
||||
internal void *
|
||||
os_reserve(U64 size)
|
||||
{
|
||||
void *result = mmap(0, size, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
internal B32
|
||||
os_commit(void *ptr, U64 size)
|
||||
{
|
||||
mprotect(ptr, size, PROT_READ|PROT_WRITE);
|
||||
return 1;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_decommit(void *ptr, U64 size)
|
||||
{
|
||||
madvise(ptr, size, MADV_DONTNEED);
|
||||
mprotect(ptr, size, PROT_NONE);
|
||||
}
|
||||
|
||||
internal void
|
||||
os_release(void *ptr, U64 size)
|
||||
{
|
||||
munmap(ptr, size);
|
||||
}
|
||||
|
||||
//- rjf: large pages
|
||||
|
||||
internal void *
|
||||
os_reserve_large(U64 size)
|
||||
{
|
||||
void *result = mmap(0, size, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS|MAP_HUGETLB, -1, 0);
|
||||
return result;
|
||||
}
|
||||
|
||||
internal B32
|
||||
os_commit_large(void *ptr, U64 size)
|
||||
{
|
||||
mprotect(ptr, size, PROT_READ|PROT_WRITE);
|
||||
return 1;
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: @os_hooks Thread Info (Implemented Per-OS)
|
||||
|
||||
internal U32
|
||||
os_tid(void)
|
||||
{
|
||||
U32 result = 0;
|
||||
#if defined(SYS_gettid)
|
||||
result = syscall(SYS_gettid);
|
||||
#else
|
||||
result = gettid();
|
||||
#endif
|
||||
return result;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_set_thread_name(String8 name)
|
||||
{
|
||||
Temp scratch = scratch_begin(0, 0);
|
||||
String8 name_copy = push_str8_copy(scratch.arena, name);
|
||||
pthread_t current_thread = pthread_self();
|
||||
pthread_setname_np(current_thread, (char *)name_copy.str);
|
||||
scratch_end(scratch);
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: @os_hooks Aborting (Implemented Per-OS)
|
||||
|
||||
internal void
|
||||
os_abort(S32 exit_code)
|
||||
{
|
||||
exit(exit_code);
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: @os_hooks File System (Implemented Per-OS)
|
||||
|
||||
//- rjf: files
|
||||
|
||||
internal OS_Handle
|
||||
os_file_open(OS_AccessFlags flags, String8 path)
|
||||
{
|
||||
Temp scratch = scratch_begin(0, 0);
|
||||
String8 path_copy = push_str8_copy(scratch.arena, path);
|
||||
int lnx_flags = 0;
|
||||
if(flags & (OS_AccessFlag_Read|OS_AccessFlag_Write))
|
||||
{
|
||||
lnx_flags = O_RDWR;
|
||||
}
|
||||
else if(flags & OS_AccessFlag_Write)
|
||||
{
|
||||
lnx_flags = O_WRONLY;
|
||||
}
|
||||
else if(flags & OS_AccessFlag_Read)
|
||||
{
|
||||
lnx_flags = O_RDONLY;
|
||||
}
|
||||
if(flags & OS_AccessFlag_Append)
|
||||
{
|
||||
lnx_flags |= O_APPEND;
|
||||
}
|
||||
int fd = open((char *)path_copy.str, lnx_flags);
|
||||
OS_Handle handle = {0};
|
||||
if(fd != -1)
|
||||
{
|
||||
handle.u64[0] = fd;
|
||||
}
|
||||
scratch_end(scratch);
|
||||
return handle;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_file_close(OS_Handle file)
|
||||
{
|
||||
if(os_handle_match(file, os_handle_zero())) { return; }
|
||||
int fd = (int)file.u64[0];
|
||||
close(fd);
|
||||
}
|
||||
|
||||
internal U64
|
||||
os_file_read(OS_Handle file, Rng1U64 rng, void *out_data)
|
||||
{
|
||||
if(os_handle_match(file, os_handle_zero())) { return 0; }
|
||||
int fd = (int)file.u64[0];
|
||||
if(rng.min != 0)
|
||||
{
|
||||
lseek(fd, rng.min, SEEK_SET);
|
||||
}
|
||||
U64 total_num_bytes_to_read = dim_1u64(rng);
|
||||
U64 total_num_bytes_read = 0;
|
||||
U64 total_num_bytes_left_to_read = total_num_bytes_to_read;
|
||||
for(;total_num_bytes_left_to_read > 0;)
|
||||
{
|
||||
int read_result = read(fd, (U8 *)out_data + total_num_bytes_read, total_num_bytes_left_to_read);
|
||||
if(read_result >= 0)
|
||||
{
|
||||
total_num_bytes_read += read_result;
|
||||
total_num_bytes_left_to_read -= read_result;
|
||||
}
|
||||
else if(errno != EINTR)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
return total_num_bytes_read;
|
||||
}
|
||||
|
||||
internal U64
|
||||
os_file_write(OS_Handle file, Rng1U64 rng, void *data)
|
||||
{
|
||||
if(os_handle_match(file, os_handle_zero())) { return 0; }
|
||||
int fd = (int)file.u64[0];
|
||||
if(rng.min != 0)
|
||||
{
|
||||
lseek(fd, rng.min, SEEK_SET);
|
||||
}
|
||||
U64 total_num_bytes_to_write = dim_1u64(rng);
|
||||
U64 total_num_bytes_written = 0;
|
||||
U64 total_num_bytes_left_to_write = total_num_bytes_to_write;
|
||||
for(;total_num_bytes_left_to_write > 0;)
|
||||
{
|
||||
int write_result = write(fd, (U8 *)data + total_num_bytes_written, total_num_bytes_left_to_write);
|
||||
if(write_result >= 0)
|
||||
{
|
||||
total_num_bytes_written += write_result;
|
||||
total_num_bytes_left_to_write -= write_result;
|
||||
}
|
||||
else if(errno != EINTR)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
return total_num_bytes_written;
|
||||
}
|
||||
|
||||
internal B32
|
||||
os_file_set_times(OS_Handle file, DateTime date_time)
|
||||
{
|
||||
if(os_handle_match(file, os_handle_zero())) { return 0; }
|
||||
int fd = (int)file.u64[0];
|
||||
timespec time = os_lnx_timespec_from_date_time(date_time);
|
||||
timespec times[2] = {time, time};
|
||||
int futimens_result = futimens(fd, times);
|
||||
B32 good = (futimens_result != -1);
|
||||
return good;
|
||||
}
|
||||
|
||||
internal FileProperties
|
||||
os_properties_from_file(OS_Handle file)
|
||||
{
|
||||
if(os_handle_match(file, os_handle_zero())) { return (FileProperties){0}; }
|
||||
int fd = (int)file.u64[0];
|
||||
struct stat fd_stat = {0};
|
||||
int fstat_result = fstat(fd, &fd_stat);
|
||||
FileProperties props = {0};
|
||||
if(fstat_result != -1)
|
||||
{
|
||||
props = os_lnx_file_properties_from_stat(&fd_stat);
|
||||
}
|
||||
return props;
|
||||
}
|
||||
|
||||
internal OS_FileID
|
||||
os_id_from_file(OS_Handle file)
|
||||
{
|
||||
if(os_handle_match(file, os_handle_zero())) { return (OS_FileID){0}; }
|
||||
int fd = (int)file.u64[0];
|
||||
struct stat fd_stat = {0};
|
||||
int fstat_result = fstat(fd, &fd_stat);
|
||||
OS_FileID id = {0};
|
||||
if(fstat_result != -1)
|
||||
{
|
||||
id.v[0] = fd_stat.st_dev;
|
||||
id.v[1] = fd_stat.st_ino;
|
||||
}
|
||||
return id;
|
||||
}
|
||||
|
||||
internal B32
|
||||
os_delete_file_at_path(String8 path)
|
||||
{
|
||||
Temp scratch = scratch_begin(0, 0);
|
||||
B32 result = 0;
|
||||
String8 path_copy = push_str8_copy(scratch.arena, path);
|
||||
if(remove((char*)path_copy.str) != -1)
|
||||
{
|
||||
result = 1;
|
||||
}
|
||||
scratch_end(scratch);
|
||||
return result;
|
||||
}
|
||||
|
||||
internal B32
|
||||
os_copy_file_path(String8 dst, String8 src)
|
||||
{
|
||||
B32 result = 0;
|
||||
OS_Handle src_h = os_file_open(OS_AccessFlag_Read, src);
|
||||
OS_Handle dst_h = os_file_open(OS_AccessFlag_Write, dst);
|
||||
if(!os_handle_match(src_h, os_handle_zero()) &&
|
||||
!os_handle_match(dst_h, os_handle_zero()))
|
||||
{
|
||||
FileProperties src_props = os_properties_from_file(src_h);
|
||||
U64 size = src_props.size;
|
||||
U64 total_bytes_copied = 0;
|
||||
U64 bytes_left_to_copy = size;
|
||||
for(;bytes_left_to_copy > 0;)
|
||||
{
|
||||
Temp scratch = scratch_begin(0, 0);
|
||||
U64 buffer_size = Min(bytes_left_to_copy, MB(8));
|
||||
U8 *buffer = push_array_no_zero(scratch.arena, U8, buffer_size);
|
||||
U64 bytes_read = os_file_read(src_h, r1u64(total_bytes_copied, total_bytes_copied+buffer_size), buffer);
|
||||
U64 bytes_written = os_file_write(dst_h, r1u64(total_bytes_copied, total_bytes_copied+bytes_read), buffer);
|
||||
U64 bytes_copied = Min(bytes_read, bytes_written);
|
||||
bytes_left_to_copy -= bytes_copied;
|
||||
total_bytes_copied += bytes_copied;
|
||||
scratch_end(scratch);
|
||||
if(bytes_copied == 0)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
os_file_close(src_h);
|
||||
os_file_close(dst_h);
|
||||
return result;
|
||||
}
|
||||
|
||||
internal String8
|
||||
os_full_path_from_path(Arena *arena, String8 path)
|
||||
{
|
||||
Temp scratch = scratch_begin(&arena, 1);
|
||||
String8 path_copy = push_str8_copy(scratch.arena, path);
|
||||
char buffer[PATH_MAX] = {0};
|
||||
realpath((char *)path_copy.str, buffer);
|
||||
String8 result = push_str8_copy(arena, str8_cstring(buffer));
|
||||
scratch_end(scratch);
|
||||
return result;
|
||||
}
|
||||
|
||||
internal B32
|
||||
os_file_path_exists(String8 path)
|
||||
{
|
||||
Temp scratch = scratch_begin(0, 0);
|
||||
String8 path_copy = push_str8_copy(scratch.arena, path);
|
||||
int access_result = access((char *)path_copy.str, F_OK);
|
||||
B32 result = 0;
|
||||
if(access_result == 0)
|
||||
{
|
||||
result = 1;
|
||||
}
|
||||
scratch_end(scratch);
|
||||
return result;
|
||||
}
|
||||
|
||||
internal FileProperties
|
||||
os_properties_from_file_path(String8 path)
|
||||
{
|
||||
Temp scratch = scratch_begin(0, 0);
|
||||
String8 path_copy = push_str8_copy(scratch.arena, path);
|
||||
struct stat f_stat = {0};
|
||||
int stat_result = stat((char *)path_copy.str, &f_stat);
|
||||
FileProperties props = {0};
|
||||
if(stat_result != -1)
|
||||
{
|
||||
props = os_lnx_file_properties_from_stat(&f_stat);
|
||||
}
|
||||
scratch_end(scratch);
|
||||
return props;
|
||||
}
|
||||
|
||||
//- rjf: file maps
|
||||
|
||||
internal OS_Handle
|
||||
os_file_map_open(OS_AccessFlags flags, OS_Handle file)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_file_map_close(OS_Handle map)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void *
|
||||
os_file_map_view_open(OS_Handle map, OS_AccessFlags flags, Rng1U64 range)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_file_map_view_close(OS_Handle map, void *ptr)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
//- rjf: directory iteration
|
||||
|
||||
internal OS_FileIter *
|
||||
os_file_iter_begin(Arena *arena, String8 path, OS_FileIterFlags flags)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal B32
|
||||
os_file_iter_next(Arena *arena, OS_FileIter *iter, OS_FileInfo *info_out)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_file_iter_end(OS_FileIter *iter)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
//- rjf: directory creation
|
||||
|
||||
internal B32
|
||||
os_make_directory(String8 path)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: @os_hooks Shared Memory (Implemented Per-OS)
|
||||
|
||||
internal OS_Handle
|
||||
os_shared_memory_alloc(U64 size, String8 name)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal OS_Handle
|
||||
os_shared_memory_open(String8 name)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_shared_memory_close(OS_Handle handle)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void *
|
||||
os_shared_memory_view_open(OS_Handle handle, Rng1U64 range)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_shared_memory_view_close(OS_Handle handle, void *ptr)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: @os_hooks Time (Implemented Per-OS)
|
||||
|
||||
internal U64
|
||||
os_now_microseconds(void)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal U32
|
||||
os_now_unix(void)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal DateTime
|
||||
os_now_universal_time(void)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal DateTime
|
||||
os_universal_time_from_local(DateTime *date_time)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal DateTime
|
||||
os_local_time_from_universal(DateTime *date_time)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_sleep_milliseconds(U32 msec)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: @os_hooks Child Processes (Implemented Per-OS)
|
||||
|
||||
internal OS_Handle
|
||||
os_process_launch(OS_ProcessLaunchParams *params)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal B32
|
||||
os_process_join(OS_Handle handle, U64 endt_us)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_process_detach(OS_Handle handle)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: @os_hooks Threads (Implemented Per-OS)
|
||||
|
||||
internal OS_Handle
|
||||
os_thread_launch(OS_ThreadFunctionType *func, void *ptr, void *params)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal B32
|
||||
os_thread_join(OS_Handle handle, U64 endt_us)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_thread_detach(OS_Handle thread)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: @os_hooks Synchronization Primitives (Implemented Per-OS)
|
||||
|
||||
//- rjf: mutexes
|
||||
|
||||
internal OS_Handle
|
||||
os_mutex_alloc(void)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_mutex_release(OS_Handle mutex)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_mutex_take(OS_Handle mutex)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_mutex_drop(OS_Handle mutex)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
//- rjf: reader/writer mutexes
|
||||
|
||||
internal OS_Handle
|
||||
os_rw_mutex_alloc(void)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_rw_mutex_release(OS_Handle rw_mutex)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_rw_mutex_take_r(OS_Handle rw_mutex)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_rw_mutex_drop_r(OS_Handle rw_mutex)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_rw_mutex_take_w(OS_Handle rw_mutex)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_rw_mutex_drop_w(OS_Handle rw_mutex)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
//- rjf: condition variables
|
||||
|
||||
internal OS_Handle
|
||||
os_condition_variable_alloc(void)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_condition_variable_release(OS_Handle cv)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal B32
|
||||
os_condition_variable_wait(OS_Handle cv, OS_Handle mutex, U64 endt_us)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal B32
|
||||
os_condition_variable_wait_rw_r(OS_Handle cv, OS_Handle mutex_rw, U64 endt_us)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal B32
|
||||
os_condition_variable_wait_rw_w(OS_Handle cv, OS_Handle mutex_rw, U64 endt_us)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_condition_variable_signal(OS_Handle cv)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_condition_variable_broadcast(OS_Handle cv)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
//- rjf: cross-process semaphores
|
||||
|
||||
internal OS_Handle
|
||||
os_semaphore_alloc(U32 initial_count, U32 max_count, String8 name)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_semaphore_release(OS_Handle semaphore)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal OS_Handle
|
||||
os_semaphore_open(String8 name)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_semaphore_close(OS_Handle semaphore)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal B32
|
||||
os_semaphore_take(OS_Handle semaphore, U64 endt_us)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_semaphore_drop(OS_Handle semaphore)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: @os_hooks Dynamically-Loaded Libraries (Implemented Per-OS)
|
||||
|
||||
internal OS_Handle
|
||||
os_library_open(String8 path)
|
||||
{
|
||||
Temp scratch = scratch_begin(0, 0);
|
||||
char *path_cstr = (char *)push_str8_copy(scratch.arena, path).str;
|
||||
void *so = dlopen(path_cstr, RTLD_LAZY);
|
||||
OS_Handle lib = { (U64)so };
|
||||
scratch_end(scratch);
|
||||
return lib;
|
||||
}
|
||||
|
||||
internal VoidProc*
|
||||
os_library_load_proc(OS_Handle lib, String8 name)
|
||||
{
|
||||
Temp scratch = scratch_begin(0, 0);
|
||||
void *so = (void *)lib.u64;
|
||||
char *name_cstr = (char *)push_str8_copy(scratch.arena, name).str;
|
||||
VoidProc *proc = (VoidProc *)dlsym(so, name_cstr);
|
||||
scratch_end(scratch);
|
||||
return proc;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_library_close(OS_Handle lib)
|
||||
{
|
||||
void *so = (void *)lib.u64;
|
||||
dlclose(so);
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: @os_hooks Safe Calls (Implemented Per-OS)
|
||||
|
||||
internal void
|
||||
os_safe_call(OS_ThreadFunctionType *func, OS_ThreadFunctionType *fail_handler, void *ptr)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: @os_hooks GUIDs (Implemented Per-OS)
|
||||
|
||||
internal OS_Guid
|
||||
os_make_guid(void)
|
||||
{
|
||||
NotImplemented;
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: @os_hooks Entry Points (Implemented Per-OS)
|
||||
|
||||
int
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
//- rjf: set up OS layer
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
//- rjf: call into "real" entry point
|
||||
main_thread_base_entry_point(entry_point, argv, (U64)argc);
|
||||
}
|
||||
|
||||
@@ -4,4 +4,47 @@
|
||||
#ifndef OS_CORE_LINUX_H
|
||||
#define OS_CORE_LINUX_H
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Includes
|
||||
|
||||
#define _GNU_SOURCE
|
||||
#include <features.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/mman.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/stat.h>
|
||||
#include <unistd.h>
|
||||
#include <fcntl.h>
|
||||
#include <linux/limits.h>
|
||||
#include <time.h>
|
||||
#include <dirent.h>
|
||||
#include <pthread.h>
|
||||
#include <sys/syscall.h>
|
||||
#include <signal.h>
|
||||
#include <errno.h>
|
||||
#include <dlfcn.h>
|
||||
#include <sys/sysinfo.h>
|
||||
|
||||
int pthread_setname_np(pthread_t thread, const char *name);
|
||||
int pthread_getname_np(pthread_t thread, char *name, size_t size);
|
||||
|
||||
typedef struct tm tm;
|
||||
typedef struct timespec timespec;
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: State
|
||||
|
||||
typedef struct OS_LNX_State OS_LNX_State;
|
||||
struct OS_LNX_State
|
||||
{
|
||||
Arena *arena;
|
||||
OS_SystemInfo system_info;
|
||||
OS_ProcessInfo process_info;
|
||||
};
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Globals
|
||||
|
||||
global OS_LNX_State os_lnx_state = {0};
|
||||
|
||||
#endif // OS_CORE_LINUX_H
|
||||
|
||||
@@ -1120,7 +1120,7 @@ os_file_read(OS_Handle file, Rng1U64 rng, void *out_data)
|
||||
return 0;
|
||||
}
|
||||
|
||||
internal void
|
||||
internal U64
|
||||
os_file_write(OS_Handle file, Rng1U64 rng, void *data)
|
||||
{
|
||||
NotImplemented;
|
||||
|
||||
@@ -187,8 +187,6 @@ internal void os_decommit(void *ptr, U64 size);
|
||||
internal void os_release(void *ptr, U64 size);
|
||||
|
||||
//- rjf: large pages
|
||||
internal B32 os_set_large_pages_enabled(B32 flag);
|
||||
internal B32 os_large_pages_enabled(void);
|
||||
internal void *os_reserve_large(U64 size);
|
||||
internal B32 os_commit_large(void *ptr, U64 size);
|
||||
|
||||
@@ -210,7 +208,7 @@ internal void os_abort(S32 exit_code);
|
||||
internal OS_Handle os_file_open(OS_AccessFlags flags, String8 path);
|
||||
internal void os_file_close(OS_Handle file);
|
||||
internal U64 os_file_read(OS_Handle file, Rng1U64 rng, void *out_data);
|
||||
internal void os_file_write(OS_Handle file, Rng1U64 rng, void *data);
|
||||
internal U64 os_file_write(OS_Handle file, Rng1U64 rng, void *data);
|
||||
internal B32 os_file_set_times(OS_Handle file, DateTime time);
|
||||
internal FileProperties os_properties_from_file(OS_Handle file);
|
||||
internal OS_FileID os_id_from_file(OS_Handle file);
|
||||
|
||||
@@ -201,37 +201,6 @@ os_release(void *ptr, U64 size)
|
||||
|
||||
//- rjf: large pages
|
||||
|
||||
internal B32
|
||||
os_set_large_pages_enabled(B32 flag)
|
||||
{
|
||||
B32 is_ok = 0;
|
||||
HANDLE token;
|
||||
if(OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &token))
|
||||
{
|
||||
LUID luid;
|
||||
if(LookupPrivilegeValue(0, SE_LOCK_MEMORY_NAME, &luid))
|
||||
{
|
||||
TOKEN_PRIVILEGES priv;
|
||||
priv.PrivilegeCount = 1;
|
||||
priv.Privileges[0].Luid = luid;
|
||||
priv.Privileges[0].Attributes = flag ? SE_PRIVILEGE_ENABLED: 0;
|
||||
if(AdjustTokenPrivileges(token, 0, &priv, sizeof(priv), 0, 0))
|
||||
{
|
||||
os_w32_state.large_pages_enabled = flag;
|
||||
is_ok = 1;
|
||||
}
|
||||
}
|
||||
CloseHandle(token);
|
||||
}
|
||||
return is_ok;
|
||||
}
|
||||
|
||||
internal B32
|
||||
os_large_pages_enabled(void)
|
||||
{
|
||||
return os_w32_state.large_pages_enabled;
|
||||
}
|
||||
|
||||
internal void *
|
||||
os_reserve_large(U64 size)
|
||||
{
|
||||
@@ -385,14 +354,15 @@ os_file_read(OS_Handle file, Rng1U64 rng, void *out_data)
|
||||
return total_read_size;
|
||||
}
|
||||
|
||||
internal void
|
||||
internal U64
|
||||
os_file_write(OS_Handle file, Rng1U64 rng, void *data)
|
||||
{
|
||||
if(os_handle_match(file, os_handle_zero())) { return; }
|
||||
if(os_handle_match(file, os_handle_zero())) { return 0; }
|
||||
HANDLE win_handle = (HANDLE)file.u64[0];
|
||||
U64 src_off = 0;
|
||||
U64 dst_off = rng.min;
|
||||
U64 bytes_to_write_total = rng.max-rng.min;
|
||||
U64 total_bytes_written = 0;
|
||||
for(;src_off < bytes_to_write_total;)
|
||||
{
|
||||
void *bytes_src = (void *)((U8 *)data + src_off);
|
||||
@@ -409,17 +379,19 @@ os_file_write(OS_Handle file, Rng1U64 rng, void *data)
|
||||
}
|
||||
src_off += bytes_written;
|
||||
dst_off += bytes_written;
|
||||
total_bytes_written += bytes_written;
|
||||
}
|
||||
return total_bytes_written;
|
||||
}
|
||||
|
||||
internal B32
|
||||
os_file_set_times(OS_Handle file, DateTime time)
|
||||
os_file_set_time(OS_Handle file, DateTime time)
|
||||
{
|
||||
if(os_handle_match(file, os_handle_zero())) { return 0; }
|
||||
B32 result = 0;
|
||||
HANDLE handle = (HANDLE)file.u64[0];
|
||||
SYSTEMTIME system_time = {0};
|
||||
w32_system_time_from_date_time(&system_time, &time);
|
||||
os_w32_system_time_from_date_time(&system_time, &time);
|
||||
FILETIME file_time = {0};
|
||||
result = (SystemTimeToFileTime(&system_time, &file_time) &&
|
||||
SetFileTime(handle, &file_time, &file_time, &file_time));
|
||||
@@ -1232,27 +1204,30 @@ os_semaphore_drop(OS_Handle semaphore)
|
||||
//~ rjf: @os_hooks Dynamically-Loaded Libraries (Implemented Per-OS)
|
||||
|
||||
internal OS_Handle
|
||||
os_library_open(String8 path){
|
||||
os_library_open(String8 path)
|
||||
{
|
||||
Temp scratch = scratch_begin(0, 0);
|
||||
String16 path16 = str16_from_8(scratch.arena, path);
|
||||
HMODULE mod = LoadLibraryW((LPCWSTR)path16.str);
|
||||
OS_Handle result = { (U64)mod };
|
||||
scratch_end(scratch);
|
||||
return(result);
|
||||
return result;
|
||||
}
|
||||
|
||||
internal VoidProc*
|
||||
os_library_load_proc(OS_Handle lib, String8 name){
|
||||
os_library_load_proc(OS_Handle lib, String8 name)
|
||||
{
|
||||
Temp scratch = scratch_begin(0, 0);
|
||||
HMODULE mod = (HMODULE)lib.u64[0];
|
||||
name = push_str8_copy(scratch.arena, name);
|
||||
VoidProc *result = (VoidProc*)GetProcAddress(mod, (LPCSTR)name.str);
|
||||
scratch_end(scratch);
|
||||
return(result);
|
||||
return result;
|
||||
}
|
||||
|
||||
internal void
|
||||
os_library_close(OS_Handle lib){
|
||||
os_library_close(OS_Handle lib)
|
||||
{
|
||||
HMODULE mod = (HMODULE)lib.u64[0];
|
||||
FreeLibrary(mod);
|
||||
}
|
||||
|
||||
@@ -82,9 +82,6 @@ struct OS_W32_State
|
||||
OS_SystemInfo system_info;
|
||||
OS_ProcessInfo process_info;
|
||||
|
||||
// rjf: large pages
|
||||
B32 large_pages_enabled;
|
||||
|
||||
// rjf: entity storage
|
||||
CRITICAL_SECTION entity_mutex;
|
||||
Arena *entity_arena;
|
||||
|
||||
+302
-302
@@ -1,302 +1,302 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
String8 os_g_key_display_string_table[143] =
|
||||
{
|
||||
str8_lit_comp("Invalid Key"),
|
||||
str8_lit_comp("Escape"),
|
||||
str8_lit_comp("F1"),
|
||||
str8_lit_comp("F2"),
|
||||
str8_lit_comp("F3"),
|
||||
str8_lit_comp("F4"),
|
||||
str8_lit_comp("F5"),
|
||||
str8_lit_comp("F6"),
|
||||
str8_lit_comp("F7"),
|
||||
str8_lit_comp("F8"),
|
||||
str8_lit_comp("F9"),
|
||||
str8_lit_comp("F10"),
|
||||
str8_lit_comp("F11"),
|
||||
str8_lit_comp("F12"),
|
||||
str8_lit_comp("F13"),
|
||||
str8_lit_comp("F14"),
|
||||
str8_lit_comp("F15"),
|
||||
str8_lit_comp("F16"),
|
||||
str8_lit_comp("F17"),
|
||||
str8_lit_comp("F18"),
|
||||
str8_lit_comp("F19"),
|
||||
str8_lit_comp("F20"),
|
||||
str8_lit_comp("F21"),
|
||||
str8_lit_comp("F22"),
|
||||
str8_lit_comp("F23"),
|
||||
str8_lit_comp("F24"),
|
||||
str8_lit_comp("Tick"),
|
||||
str8_lit_comp("0"),
|
||||
str8_lit_comp("1"),
|
||||
str8_lit_comp("2"),
|
||||
str8_lit_comp("3"),
|
||||
str8_lit_comp("4"),
|
||||
str8_lit_comp("5"),
|
||||
str8_lit_comp("6"),
|
||||
str8_lit_comp("7"),
|
||||
str8_lit_comp("8"),
|
||||
str8_lit_comp("9"),
|
||||
str8_lit_comp("Minus"),
|
||||
str8_lit_comp("Equal"),
|
||||
str8_lit_comp("Backspace"),
|
||||
str8_lit_comp("Tab"),
|
||||
str8_lit_comp("Q"),
|
||||
str8_lit_comp("W"),
|
||||
str8_lit_comp("E"),
|
||||
str8_lit_comp("R"),
|
||||
str8_lit_comp("T"),
|
||||
str8_lit_comp("Y"),
|
||||
str8_lit_comp("U"),
|
||||
str8_lit_comp("I"),
|
||||
str8_lit_comp("O"),
|
||||
str8_lit_comp("P"),
|
||||
str8_lit_comp("Left Bracket"),
|
||||
str8_lit_comp("Right Bracket"),
|
||||
str8_lit_comp("Back Slash"),
|
||||
str8_lit_comp("Caps Lock"),
|
||||
str8_lit_comp("A"),
|
||||
str8_lit_comp("S"),
|
||||
str8_lit_comp("D"),
|
||||
str8_lit_comp("F"),
|
||||
str8_lit_comp("G"),
|
||||
str8_lit_comp("H"),
|
||||
str8_lit_comp("J"),
|
||||
str8_lit_comp("K"),
|
||||
str8_lit_comp("L"),
|
||||
str8_lit_comp("Semicolon"),
|
||||
str8_lit_comp("Quote"),
|
||||
str8_lit_comp("Return"),
|
||||
str8_lit_comp("Shift"),
|
||||
str8_lit_comp("Z"),
|
||||
str8_lit_comp("X"),
|
||||
str8_lit_comp("C"),
|
||||
str8_lit_comp("V"),
|
||||
str8_lit_comp("B"),
|
||||
str8_lit_comp("N"),
|
||||
str8_lit_comp("M"),
|
||||
str8_lit_comp("Comma"),
|
||||
str8_lit_comp("Period"),
|
||||
str8_lit_comp("Slash"),
|
||||
str8_lit_comp("Ctrl"),
|
||||
str8_lit_comp("Alt"),
|
||||
str8_lit_comp("Space"),
|
||||
str8_lit_comp("Menu"),
|
||||
str8_lit_comp("Scroll Lock"),
|
||||
str8_lit_comp("Pause"),
|
||||
str8_lit_comp("Insert"),
|
||||
str8_lit_comp("Home"),
|
||||
str8_lit_comp("Page Up"),
|
||||
str8_lit_comp("Delete"),
|
||||
str8_lit_comp("End"),
|
||||
str8_lit_comp("Page Down"),
|
||||
str8_lit_comp("Up"),
|
||||
str8_lit_comp("Left"),
|
||||
str8_lit_comp("Down"),
|
||||
str8_lit_comp("Right"),
|
||||
str8_lit_comp("Ex0"),
|
||||
str8_lit_comp("Ex1"),
|
||||
str8_lit_comp("Ex2"),
|
||||
str8_lit_comp("Ex3"),
|
||||
str8_lit_comp("Ex4"),
|
||||
str8_lit_comp("Ex5"),
|
||||
str8_lit_comp("Ex6"),
|
||||
str8_lit_comp("Ex7"),
|
||||
str8_lit_comp("Ex8"),
|
||||
str8_lit_comp("Ex9"),
|
||||
str8_lit_comp("Ex10"),
|
||||
str8_lit_comp("Ex11"),
|
||||
str8_lit_comp("Ex12"),
|
||||
str8_lit_comp("Ex13"),
|
||||
str8_lit_comp("Ex14"),
|
||||
str8_lit_comp("Ex15"),
|
||||
str8_lit_comp("Ex16"),
|
||||
str8_lit_comp("Ex17"),
|
||||
str8_lit_comp("Ex18"),
|
||||
str8_lit_comp("Ex19"),
|
||||
str8_lit_comp("Ex20"),
|
||||
str8_lit_comp("Ex21"),
|
||||
str8_lit_comp("Ex22"),
|
||||
str8_lit_comp("Ex23"),
|
||||
str8_lit_comp("Ex24"),
|
||||
str8_lit_comp("Ex25"),
|
||||
str8_lit_comp("Ex26"),
|
||||
str8_lit_comp("Ex27"),
|
||||
str8_lit_comp("Ex28"),
|
||||
str8_lit_comp("Ex29"),
|
||||
str8_lit_comp("Num Lock"),
|
||||
str8_lit_comp("Numpad Slash"),
|
||||
str8_lit_comp("Numpad Star"),
|
||||
str8_lit_comp("Numpad Minus"),
|
||||
str8_lit_comp("Numpad Plus"),
|
||||
str8_lit_comp("Numpad Period"),
|
||||
str8_lit_comp("Numpad 0"),
|
||||
str8_lit_comp("Numpad 1"),
|
||||
str8_lit_comp("Numpad 2"),
|
||||
str8_lit_comp("Numpad 3"),
|
||||
str8_lit_comp("Numpad 4"),
|
||||
str8_lit_comp("Numpad 5"),
|
||||
str8_lit_comp("Numpad 6"),
|
||||
str8_lit_comp("Numpad 7"),
|
||||
str8_lit_comp("Numpad 8"),
|
||||
str8_lit_comp("Numpad 9"),
|
||||
str8_lit_comp("Left Mouse Button"),
|
||||
str8_lit_comp("Middle Mouse Button"),
|
||||
str8_lit_comp("Right Mouse Button"),
|
||||
};
|
||||
|
||||
String8 os_g_key_cfg_string_table[143] =
|
||||
{
|
||||
str8_lit_comp("null"),
|
||||
str8_lit_comp("esc"),
|
||||
str8_lit_comp("f1"),
|
||||
str8_lit_comp("f2"),
|
||||
str8_lit_comp("f3"),
|
||||
str8_lit_comp("f4"),
|
||||
str8_lit_comp("f5"),
|
||||
str8_lit_comp("f6"),
|
||||
str8_lit_comp("f7"),
|
||||
str8_lit_comp("f8"),
|
||||
str8_lit_comp("f9"),
|
||||
str8_lit_comp("f10"),
|
||||
str8_lit_comp("f11"),
|
||||
str8_lit_comp("f12"),
|
||||
str8_lit_comp("f13"),
|
||||
str8_lit_comp("f14"),
|
||||
str8_lit_comp("f15"),
|
||||
str8_lit_comp("f16"),
|
||||
str8_lit_comp("f17"),
|
||||
str8_lit_comp("f18"),
|
||||
str8_lit_comp("f19"),
|
||||
str8_lit_comp("f20"),
|
||||
str8_lit_comp("f21"),
|
||||
str8_lit_comp("f22"),
|
||||
str8_lit_comp("f23"),
|
||||
str8_lit_comp("f24"),
|
||||
str8_lit_comp("tick"),
|
||||
str8_lit_comp("0"),
|
||||
str8_lit_comp("1"),
|
||||
str8_lit_comp("2"),
|
||||
str8_lit_comp("3"),
|
||||
str8_lit_comp("4"),
|
||||
str8_lit_comp("5"),
|
||||
str8_lit_comp("6"),
|
||||
str8_lit_comp("7"),
|
||||
str8_lit_comp("8"),
|
||||
str8_lit_comp("9"),
|
||||
str8_lit_comp("minus"),
|
||||
str8_lit_comp("equal"),
|
||||
str8_lit_comp("backspace"),
|
||||
str8_lit_comp("tab"),
|
||||
str8_lit_comp("q"),
|
||||
str8_lit_comp("w"),
|
||||
str8_lit_comp("e"),
|
||||
str8_lit_comp("r"),
|
||||
str8_lit_comp("t"),
|
||||
str8_lit_comp("y"),
|
||||
str8_lit_comp("u"),
|
||||
str8_lit_comp("i"),
|
||||
str8_lit_comp("o"),
|
||||
str8_lit_comp("p"),
|
||||
str8_lit_comp("left_bracket"),
|
||||
str8_lit_comp("right_bracket"),
|
||||
str8_lit_comp("backslash"),
|
||||
str8_lit_comp("caps_lock"),
|
||||
str8_lit_comp("a"),
|
||||
str8_lit_comp("s"),
|
||||
str8_lit_comp("d"),
|
||||
str8_lit_comp("f"),
|
||||
str8_lit_comp("g"),
|
||||
str8_lit_comp("h"),
|
||||
str8_lit_comp("j"),
|
||||
str8_lit_comp("k"),
|
||||
str8_lit_comp("l"),
|
||||
str8_lit_comp("semicolon"),
|
||||
str8_lit_comp("quote"),
|
||||
str8_lit_comp("return"),
|
||||
str8_lit_comp("shift"),
|
||||
str8_lit_comp("z"),
|
||||
str8_lit_comp("x"),
|
||||
str8_lit_comp("c"),
|
||||
str8_lit_comp("v"),
|
||||
str8_lit_comp("b"),
|
||||
str8_lit_comp("n"),
|
||||
str8_lit_comp("m"),
|
||||
str8_lit_comp("comma"),
|
||||
str8_lit_comp("period"),
|
||||
str8_lit_comp("slash"),
|
||||
str8_lit_comp("ctrl"),
|
||||
str8_lit_comp("alt"),
|
||||
str8_lit_comp("space"),
|
||||
str8_lit_comp("menu"),
|
||||
str8_lit_comp("scroll_lock"),
|
||||
str8_lit_comp("pause"),
|
||||
str8_lit_comp("insert"),
|
||||
str8_lit_comp("home"),
|
||||
str8_lit_comp("page_up"),
|
||||
str8_lit_comp("delete"),
|
||||
str8_lit_comp("end"),
|
||||
str8_lit_comp("page_down"),
|
||||
str8_lit_comp("up"),
|
||||
str8_lit_comp("left"),
|
||||
str8_lit_comp("down"),
|
||||
str8_lit_comp("right"),
|
||||
str8_lit_comp("ex0"),
|
||||
str8_lit_comp("ex1"),
|
||||
str8_lit_comp("ex2"),
|
||||
str8_lit_comp("ex3"),
|
||||
str8_lit_comp("ex4"),
|
||||
str8_lit_comp("ex5"),
|
||||
str8_lit_comp("ex6"),
|
||||
str8_lit_comp("ex7"),
|
||||
str8_lit_comp("ex8"),
|
||||
str8_lit_comp("ex9"),
|
||||
str8_lit_comp("ex10"),
|
||||
str8_lit_comp("ex11"),
|
||||
str8_lit_comp("ex12"),
|
||||
str8_lit_comp("ex13"),
|
||||
str8_lit_comp("ex14"),
|
||||
str8_lit_comp("ex15"),
|
||||
str8_lit_comp("ex16"),
|
||||
str8_lit_comp("ex17"),
|
||||
str8_lit_comp("ex18"),
|
||||
str8_lit_comp("ex19"),
|
||||
str8_lit_comp("ex20"),
|
||||
str8_lit_comp("ex21"),
|
||||
str8_lit_comp("ex22"),
|
||||
str8_lit_comp("ex23"),
|
||||
str8_lit_comp("ex24"),
|
||||
str8_lit_comp("ex25"),
|
||||
str8_lit_comp("ex26"),
|
||||
str8_lit_comp("ex27"),
|
||||
str8_lit_comp("ex28"),
|
||||
str8_lit_comp("ex29"),
|
||||
str8_lit_comp("num_lock"),
|
||||
str8_lit_comp("numpad_slash"),
|
||||
str8_lit_comp("numpad_star"),
|
||||
str8_lit_comp("numpad_minus"),
|
||||
str8_lit_comp("numpad_plus"),
|
||||
str8_lit_comp("numpad_period"),
|
||||
str8_lit_comp("numpad_0"),
|
||||
str8_lit_comp("numpad_1"),
|
||||
str8_lit_comp("numpad_2"),
|
||||
str8_lit_comp("numpad_3"),
|
||||
str8_lit_comp("numpad_4"),
|
||||
str8_lit_comp("numpad_5"),
|
||||
str8_lit_comp("numpad_6"),
|
||||
str8_lit_comp("numpad_7"),
|
||||
str8_lit_comp("numpad_8"),
|
||||
str8_lit_comp("numpad_9"),
|
||||
str8_lit_comp("left_mouse"),
|
||||
str8_lit_comp("middle_mouse"),
|
||||
str8_lit_comp("right_mouse"),
|
||||
};
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
String8 os_g_key_display_string_table[143] =
|
||||
{
|
||||
str8_lit_comp("Invalid Key"),
|
||||
str8_lit_comp("Escape"),
|
||||
str8_lit_comp("F1"),
|
||||
str8_lit_comp("F2"),
|
||||
str8_lit_comp("F3"),
|
||||
str8_lit_comp("F4"),
|
||||
str8_lit_comp("F5"),
|
||||
str8_lit_comp("F6"),
|
||||
str8_lit_comp("F7"),
|
||||
str8_lit_comp("F8"),
|
||||
str8_lit_comp("F9"),
|
||||
str8_lit_comp("F10"),
|
||||
str8_lit_comp("F11"),
|
||||
str8_lit_comp("F12"),
|
||||
str8_lit_comp("F13"),
|
||||
str8_lit_comp("F14"),
|
||||
str8_lit_comp("F15"),
|
||||
str8_lit_comp("F16"),
|
||||
str8_lit_comp("F17"),
|
||||
str8_lit_comp("F18"),
|
||||
str8_lit_comp("F19"),
|
||||
str8_lit_comp("F20"),
|
||||
str8_lit_comp("F21"),
|
||||
str8_lit_comp("F22"),
|
||||
str8_lit_comp("F23"),
|
||||
str8_lit_comp("F24"),
|
||||
str8_lit_comp("Tick"),
|
||||
str8_lit_comp("0"),
|
||||
str8_lit_comp("1"),
|
||||
str8_lit_comp("2"),
|
||||
str8_lit_comp("3"),
|
||||
str8_lit_comp("4"),
|
||||
str8_lit_comp("5"),
|
||||
str8_lit_comp("6"),
|
||||
str8_lit_comp("7"),
|
||||
str8_lit_comp("8"),
|
||||
str8_lit_comp("9"),
|
||||
str8_lit_comp("Minus"),
|
||||
str8_lit_comp("Equal"),
|
||||
str8_lit_comp("Backspace"),
|
||||
str8_lit_comp("Tab"),
|
||||
str8_lit_comp("Q"),
|
||||
str8_lit_comp("W"),
|
||||
str8_lit_comp("E"),
|
||||
str8_lit_comp("R"),
|
||||
str8_lit_comp("T"),
|
||||
str8_lit_comp("Y"),
|
||||
str8_lit_comp("U"),
|
||||
str8_lit_comp("I"),
|
||||
str8_lit_comp("O"),
|
||||
str8_lit_comp("P"),
|
||||
str8_lit_comp("Left Bracket"),
|
||||
str8_lit_comp("Right Bracket"),
|
||||
str8_lit_comp("Back Slash"),
|
||||
str8_lit_comp("Caps Lock"),
|
||||
str8_lit_comp("A"),
|
||||
str8_lit_comp("S"),
|
||||
str8_lit_comp("D"),
|
||||
str8_lit_comp("F"),
|
||||
str8_lit_comp("G"),
|
||||
str8_lit_comp("H"),
|
||||
str8_lit_comp("J"),
|
||||
str8_lit_comp("K"),
|
||||
str8_lit_comp("L"),
|
||||
str8_lit_comp("Semicolon"),
|
||||
str8_lit_comp("Quote"),
|
||||
str8_lit_comp("Return"),
|
||||
str8_lit_comp("Shift"),
|
||||
str8_lit_comp("Z"),
|
||||
str8_lit_comp("X"),
|
||||
str8_lit_comp("C"),
|
||||
str8_lit_comp("V"),
|
||||
str8_lit_comp("B"),
|
||||
str8_lit_comp("N"),
|
||||
str8_lit_comp("M"),
|
||||
str8_lit_comp("Comma"),
|
||||
str8_lit_comp("Period"),
|
||||
str8_lit_comp("Slash"),
|
||||
str8_lit_comp("Ctrl"),
|
||||
str8_lit_comp("Alt"),
|
||||
str8_lit_comp("Space"),
|
||||
str8_lit_comp("Menu"),
|
||||
str8_lit_comp("Scroll Lock"),
|
||||
str8_lit_comp("Pause"),
|
||||
str8_lit_comp("Insert"),
|
||||
str8_lit_comp("Home"),
|
||||
str8_lit_comp("Page Up"),
|
||||
str8_lit_comp("Delete"),
|
||||
str8_lit_comp("End"),
|
||||
str8_lit_comp("Page Down"),
|
||||
str8_lit_comp("Up"),
|
||||
str8_lit_comp("Left"),
|
||||
str8_lit_comp("Down"),
|
||||
str8_lit_comp("Right"),
|
||||
str8_lit_comp("Ex0"),
|
||||
str8_lit_comp("Ex1"),
|
||||
str8_lit_comp("Ex2"),
|
||||
str8_lit_comp("Ex3"),
|
||||
str8_lit_comp("Ex4"),
|
||||
str8_lit_comp("Ex5"),
|
||||
str8_lit_comp("Ex6"),
|
||||
str8_lit_comp("Ex7"),
|
||||
str8_lit_comp("Ex8"),
|
||||
str8_lit_comp("Ex9"),
|
||||
str8_lit_comp("Ex10"),
|
||||
str8_lit_comp("Ex11"),
|
||||
str8_lit_comp("Ex12"),
|
||||
str8_lit_comp("Ex13"),
|
||||
str8_lit_comp("Ex14"),
|
||||
str8_lit_comp("Ex15"),
|
||||
str8_lit_comp("Ex16"),
|
||||
str8_lit_comp("Ex17"),
|
||||
str8_lit_comp("Ex18"),
|
||||
str8_lit_comp("Ex19"),
|
||||
str8_lit_comp("Ex20"),
|
||||
str8_lit_comp("Ex21"),
|
||||
str8_lit_comp("Ex22"),
|
||||
str8_lit_comp("Ex23"),
|
||||
str8_lit_comp("Ex24"),
|
||||
str8_lit_comp("Ex25"),
|
||||
str8_lit_comp("Ex26"),
|
||||
str8_lit_comp("Ex27"),
|
||||
str8_lit_comp("Ex28"),
|
||||
str8_lit_comp("Ex29"),
|
||||
str8_lit_comp("Num Lock"),
|
||||
str8_lit_comp("Numpad Slash"),
|
||||
str8_lit_comp("Numpad Star"),
|
||||
str8_lit_comp("Numpad Minus"),
|
||||
str8_lit_comp("Numpad Plus"),
|
||||
str8_lit_comp("Numpad Period"),
|
||||
str8_lit_comp("Numpad 0"),
|
||||
str8_lit_comp("Numpad 1"),
|
||||
str8_lit_comp("Numpad 2"),
|
||||
str8_lit_comp("Numpad 3"),
|
||||
str8_lit_comp("Numpad 4"),
|
||||
str8_lit_comp("Numpad 5"),
|
||||
str8_lit_comp("Numpad 6"),
|
||||
str8_lit_comp("Numpad 7"),
|
||||
str8_lit_comp("Numpad 8"),
|
||||
str8_lit_comp("Numpad 9"),
|
||||
str8_lit_comp("Left Mouse Button"),
|
||||
str8_lit_comp("Middle Mouse Button"),
|
||||
str8_lit_comp("Right Mouse Button"),
|
||||
};
|
||||
|
||||
String8 os_g_key_cfg_string_table[143] =
|
||||
{
|
||||
str8_lit_comp("null"),
|
||||
str8_lit_comp("esc"),
|
||||
str8_lit_comp("f1"),
|
||||
str8_lit_comp("f2"),
|
||||
str8_lit_comp("f3"),
|
||||
str8_lit_comp("f4"),
|
||||
str8_lit_comp("f5"),
|
||||
str8_lit_comp("f6"),
|
||||
str8_lit_comp("f7"),
|
||||
str8_lit_comp("f8"),
|
||||
str8_lit_comp("f9"),
|
||||
str8_lit_comp("f10"),
|
||||
str8_lit_comp("f11"),
|
||||
str8_lit_comp("f12"),
|
||||
str8_lit_comp("f13"),
|
||||
str8_lit_comp("f14"),
|
||||
str8_lit_comp("f15"),
|
||||
str8_lit_comp("f16"),
|
||||
str8_lit_comp("f17"),
|
||||
str8_lit_comp("f18"),
|
||||
str8_lit_comp("f19"),
|
||||
str8_lit_comp("f20"),
|
||||
str8_lit_comp("f21"),
|
||||
str8_lit_comp("f22"),
|
||||
str8_lit_comp("f23"),
|
||||
str8_lit_comp("f24"),
|
||||
str8_lit_comp("tick"),
|
||||
str8_lit_comp("0"),
|
||||
str8_lit_comp("1"),
|
||||
str8_lit_comp("2"),
|
||||
str8_lit_comp("3"),
|
||||
str8_lit_comp("4"),
|
||||
str8_lit_comp("5"),
|
||||
str8_lit_comp("6"),
|
||||
str8_lit_comp("7"),
|
||||
str8_lit_comp("8"),
|
||||
str8_lit_comp("9"),
|
||||
str8_lit_comp("minus"),
|
||||
str8_lit_comp("equal"),
|
||||
str8_lit_comp("backspace"),
|
||||
str8_lit_comp("tab"),
|
||||
str8_lit_comp("q"),
|
||||
str8_lit_comp("w"),
|
||||
str8_lit_comp("e"),
|
||||
str8_lit_comp("r"),
|
||||
str8_lit_comp("t"),
|
||||
str8_lit_comp("y"),
|
||||
str8_lit_comp("u"),
|
||||
str8_lit_comp("i"),
|
||||
str8_lit_comp("o"),
|
||||
str8_lit_comp("p"),
|
||||
str8_lit_comp("left_bracket"),
|
||||
str8_lit_comp("right_bracket"),
|
||||
str8_lit_comp("backslash"),
|
||||
str8_lit_comp("caps_lock"),
|
||||
str8_lit_comp("a"),
|
||||
str8_lit_comp("s"),
|
||||
str8_lit_comp("d"),
|
||||
str8_lit_comp("f"),
|
||||
str8_lit_comp("g"),
|
||||
str8_lit_comp("h"),
|
||||
str8_lit_comp("j"),
|
||||
str8_lit_comp("k"),
|
||||
str8_lit_comp("l"),
|
||||
str8_lit_comp("semicolon"),
|
||||
str8_lit_comp("quote"),
|
||||
str8_lit_comp("return"),
|
||||
str8_lit_comp("shift"),
|
||||
str8_lit_comp("z"),
|
||||
str8_lit_comp("x"),
|
||||
str8_lit_comp("c"),
|
||||
str8_lit_comp("v"),
|
||||
str8_lit_comp("b"),
|
||||
str8_lit_comp("n"),
|
||||
str8_lit_comp("m"),
|
||||
str8_lit_comp("comma"),
|
||||
str8_lit_comp("period"),
|
||||
str8_lit_comp("slash"),
|
||||
str8_lit_comp("ctrl"),
|
||||
str8_lit_comp("alt"),
|
||||
str8_lit_comp("space"),
|
||||
str8_lit_comp("menu"),
|
||||
str8_lit_comp("scroll_lock"),
|
||||
str8_lit_comp("pause"),
|
||||
str8_lit_comp("insert"),
|
||||
str8_lit_comp("home"),
|
||||
str8_lit_comp("page_up"),
|
||||
str8_lit_comp("delete"),
|
||||
str8_lit_comp("end"),
|
||||
str8_lit_comp("page_down"),
|
||||
str8_lit_comp("up"),
|
||||
str8_lit_comp("left"),
|
||||
str8_lit_comp("down"),
|
||||
str8_lit_comp("right"),
|
||||
str8_lit_comp("ex0"),
|
||||
str8_lit_comp("ex1"),
|
||||
str8_lit_comp("ex2"),
|
||||
str8_lit_comp("ex3"),
|
||||
str8_lit_comp("ex4"),
|
||||
str8_lit_comp("ex5"),
|
||||
str8_lit_comp("ex6"),
|
||||
str8_lit_comp("ex7"),
|
||||
str8_lit_comp("ex8"),
|
||||
str8_lit_comp("ex9"),
|
||||
str8_lit_comp("ex10"),
|
||||
str8_lit_comp("ex11"),
|
||||
str8_lit_comp("ex12"),
|
||||
str8_lit_comp("ex13"),
|
||||
str8_lit_comp("ex14"),
|
||||
str8_lit_comp("ex15"),
|
||||
str8_lit_comp("ex16"),
|
||||
str8_lit_comp("ex17"),
|
||||
str8_lit_comp("ex18"),
|
||||
str8_lit_comp("ex19"),
|
||||
str8_lit_comp("ex20"),
|
||||
str8_lit_comp("ex21"),
|
||||
str8_lit_comp("ex22"),
|
||||
str8_lit_comp("ex23"),
|
||||
str8_lit_comp("ex24"),
|
||||
str8_lit_comp("ex25"),
|
||||
str8_lit_comp("ex26"),
|
||||
str8_lit_comp("ex27"),
|
||||
str8_lit_comp("ex28"),
|
||||
str8_lit_comp("ex29"),
|
||||
str8_lit_comp("num_lock"),
|
||||
str8_lit_comp("numpad_slash"),
|
||||
str8_lit_comp("numpad_star"),
|
||||
str8_lit_comp("numpad_minus"),
|
||||
str8_lit_comp("numpad_plus"),
|
||||
str8_lit_comp("numpad_period"),
|
||||
str8_lit_comp("numpad_0"),
|
||||
str8_lit_comp("numpad_1"),
|
||||
str8_lit_comp("numpad_2"),
|
||||
str8_lit_comp("numpad_3"),
|
||||
str8_lit_comp("numpad_4"),
|
||||
str8_lit_comp("numpad_5"),
|
||||
str8_lit_comp("numpad_6"),
|
||||
str8_lit_comp("numpad_7"),
|
||||
str8_lit_comp("numpad_8"),
|
||||
str8_lit_comp("numpad_9"),
|
||||
str8_lit_comp("left_mouse"),
|
||||
str8_lit_comp("middle_mouse"),
|
||||
str8_lit_comp("right_mouse"),
|
||||
};
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
|
||||
+163
-163
@@ -1,163 +1,163 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#ifndef OS_GFX_META_H
|
||||
#define OS_GFX_META_H
|
||||
|
||||
typedef enum OS_Key
|
||||
{
|
||||
OS_Key_Null,
|
||||
OS_Key_Esc,
|
||||
OS_Key_F1,
|
||||
OS_Key_F2,
|
||||
OS_Key_F3,
|
||||
OS_Key_F4,
|
||||
OS_Key_F5,
|
||||
OS_Key_F6,
|
||||
OS_Key_F7,
|
||||
OS_Key_F8,
|
||||
OS_Key_F9,
|
||||
OS_Key_F10,
|
||||
OS_Key_F11,
|
||||
OS_Key_F12,
|
||||
OS_Key_F13,
|
||||
OS_Key_F14,
|
||||
OS_Key_F15,
|
||||
OS_Key_F16,
|
||||
OS_Key_F17,
|
||||
OS_Key_F18,
|
||||
OS_Key_F19,
|
||||
OS_Key_F20,
|
||||
OS_Key_F21,
|
||||
OS_Key_F22,
|
||||
OS_Key_F23,
|
||||
OS_Key_F24,
|
||||
OS_Key_Tick,
|
||||
OS_Key_0,
|
||||
OS_Key_1,
|
||||
OS_Key_2,
|
||||
OS_Key_3,
|
||||
OS_Key_4,
|
||||
OS_Key_5,
|
||||
OS_Key_6,
|
||||
OS_Key_7,
|
||||
OS_Key_8,
|
||||
OS_Key_9,
|
||||
OS_Key_Minus,
|
||||
OS_Key_Equal,
|
||||
OS_Key_Backspace,
|
||||
OS_Key_Tab,
|
||||
OS_Key_Q,
|
||||
OS_Key_W,
|
||||
OS_Key_E,
|
||||
OS_Key_R,
|
||||
OS_Key_T,
|
||||
OS_Key_Y,
|
||||
OS_Key_U,
|
||||
OS_Key_I,
|
||||
OS_Key_O,
|
||||
OS_Key_P,
|
||||
OS_Key_LeftBracket,
|
||||
OS_Key_RightBracket,
|
||||
OS_Key_BackSlash,
|
||||
OS_Key_CapsLock,
|
||||
OS_Key_A,
|
||||
OS_Key_S,
|
||||
OS_Key_D,
|
||||
OS_Key_F,
|
||||
OS_Key_G,
|
||||
OS_Key_H,
|
||||
OS_Key_J,
|
||||
OS_Key_K,
|
||||
OS_Key_L,
|
||||
OS_Key_Semicolon,
|
||||
OS_Key_Quote,
|
||||
OS_Key_Return,
|
||||
OS_Key_Shift,
|
||||
OS_Key_Z,
|
||||
OS_Key_X,
|
||||
OS_Key_C,
|
||||
OS_Key_V,
|
||||
OS_Key_B,
|
||||
OS_Key_N,
|
||||
OS_Key_M,
|
||||
OS_Key_Comma,
|
||||
OS_Key_Period,
|
||||
OS_Key_Slash,
|
||||
OS_Key_Ctrl,
|
||||
OS_Key_Alt,
|
||||
OS_Key_Space,
|
||||
OS_Key_Menu,
|
||||
OS_Key_ScrollLock,
|
||||
OS_Key_Pause,
|
||||
OS_Key_Insert,
|
||||
OS_Key_Home,
|
||||
OS_Key_PageUp,
|
||||
OS_Key_Delete,
|
||||
OS_Key_End,
|
||||
OS_Key_PageDown,
|
||||
OS_Key_Up,
|
||||
OS_Key_Left,
|
||||
OS_Key_Down,
|
||||
OS_Key_Right,
|
||||
OS_Key_Ex0,
|
||||
OS_Key_Ex1,
|
||||
OS_Key_Ex2,
|
||||
OS_Key_Ex3,
|
||||
OS_Key_Ex4,
|
||||
OS_Key_Ex5,
|
||||
OS_Key_Ex6,
|
||||
OS_Key_Ex7,
|
||||
OS_Key_Ex8,
|
||||
OS_Key_Ex9,
|
||||
OS_Key_Ex10,
|
||||
OS_Key_Ex11,
|
||||
OS_Key_Ex12,
|
||||
OS_Key_Ex13,
|
||||
OS_Key_Ex14,
|
||||
OS_Key_Ex15,
|
||||
OS_Key_Ex16,
|
||||
OS_Key_Ex17,
|
||||
OS_Key_Ex18,
|
||||
OS_Key_Ex19,
|
||||
OS_Key_Ex20,
|
||||
OS_Key_Ex21,
|
||||
OS_Key_Ex22,
|
||||
OS_Key_Ex23,
|
||||
OS_Key_Ex24,
|
||||
OS_Key_Ex25,
|
||||
OS_Key_Ex26,
|
||||
OS_Key_Ex27,
|
||||
OS_Key_Ex28,
|
||||
OS_Key_Ex29,
|
||||
OS_Key_NumLock,
|
||||
OS_Key_NumSlash,
|
||||
OS_Key_NumStar,
|
||||
OS_Key_NumMinus,
|
||||
OS_Key_NumPlus,
|
||||
OS_Key_NumPeriod,
|
||||
OS_Key_Num0,
|
||||
OS_Key_Num1,
|
||||
OS_Key_Num2,
|
||||
OS_Key_Num3,
|
||||
OS_Key_Num4,
|
||||
OS_Key_Num5,
|
||||
OS_Key_Num6,
|
||||
OS_Key_Num7,
|
||||
OS_Key_Num8,
|
||||
OS_Key_Num9,
|
||||
OS_Key_LeftMouseButton,
|
||||
OS_Key_MiddleMouseButton,
|
||||
OS_Key_RightMouseButton,
|
||||
OS_Key_COUNT,
|
||||
} OS_Key;
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
extern String8 os_g_key_display_string_table[143];
|
||||
extern String8 os_g_key_cfg_string_table[143];
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
#endif // OS_GFX_META_H
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#ifndef OS_GFX_META_H
|
||||
#define OS_GFX_META_H
|
||||
|
||||
typedef enum OS_Key
|
||||
{
|
||||
OS_Key_Null,
|
||||
OS_Key_Esc,
|
||||
OS_Key_F1,
|
||||
OS_Key_F2,
|
||||
OS_Key_F3,
|
||||
OS_Key_F4,
|
||||
OS_Key_F5,
|
||||
OS_Key_F6,
|
||||
OS_Key_F7,
|
||||
OS_Key_F8,
|
||||
OS_Key_F9,
|
||||
OS_Key_F10,
|
||||
OS_Key_F11,
|
||||
OS_Key_F12,
|
||||
OS_Key_F13,
|
||||
OS_Key_F14,
|
||||
OS_Key_F15,
|
||||
OS_Key_F16,
|
||||
OS_Key_F17,
|
||||
OS_Key_F18,
|
||||
OS_Key_F19,
|
||||
OS_Key_F20,
|
||||
OS_Key_F21,
|
||||
OS_Key_F22,
|
||||
OS_Key_F23,
|
||||
OS_Key_F24,
|
||||
OS_Key_Tick,
|
||||
OS_Key_0,
|
||||
OS_Key_1,
|
||||
OS_Key_2,
|
||||
OS_Key_3,
|
||||
OS_Key_4,
|
||||
OS_Key_5,
|
||||
OS_Key_6,
|
||||
OS_Key_7,
|
||||
OS_Key_8,
|
||||
OS_Key_9,
|
||||
OS_Key_Minus,
|
||||
OS_Key_Equal,
|
||||
OS_Key_Backspace,
|
||||
OS_Key_Tab,
|
||||
OS_Key_Q,
|
||||
OS_Key_W,
|
||||
OS_Key_E,
|
||||
OS_Key_R,
|
||||
OS_Key_T,
|
||||
OS_Key_Y,
|
||||
OS_Key_U,
|
||||
OS_Key_I,
|
||||
OS_Key_O,
|
||||
OS_Key_P,
|
||||
OS_Key_LeftBracket,
|
||||
OS_Key_RightBracket,
|
||||
OS_Key_BackSlash,
|
||||
OS_Key_CapsLock,
|
||||
OS_Key_A,
|
||||
OS_Key_S,
|
||||
OS_Key_D,
|
||||
OS_Key_F,
|
||||
OS_Key_G,
|
||||
OS_Key_H,
|
||||
OS_Key_J,
|
||||
OS_Key_K,
|
||||
OS_Key_L,
|
||||
OS_Key_Semicolon,
|
||||
OS_Key_Quote,
|
||||
OS_Key_Return,
|
||||
OS_Key_Shift,
|
||||
OS_Key_Z,
|
||||
OS_Key_X,
|
||||
OS_Key_C,
|
||||
OS_Key_V,
|
||||
OS_Key_B,
|
||||
OS_Key_N,
|
||||
OS_Key_M,
|
||||
OS_Key_Comma,
|
||||
OS_Key_Period,
|
||||
OS_Key_Slash,
|
||||
OS_Key_Ctrl,
|
||||
OS_Key_Alt,
|
||||
OS_Key_Space,
|
||||
OS_Key_Menu,
|
||||
OS_Key_ScrollLock,
|
||||
OS_Key_Pause,
|
||||
OS_Key_Insert,
|
||||
OS_Key_Home,
|
||||
OS_Key_PageUp,
|
||||
OS_Key_Delete,
|
||||
OS_Key_End,
|
||||
OS_Key_PageDown,
|
||||
OS_Key_Up,
|
||||
OS_Key_Left,
|
||||
OS_Key_Down,
|
||||
OS_Key_Right,
|
||||
OS_Key_Ex0,
|
||||
OS_Key_Ex1,
|
||||
OS_Key_Ex2,
|
||||
OS_Key_Ex3,
|
||||
OS_Key_Ex4,
|
||||
OS_Key_Ex5,
|
||||
OS_Key_Ex6,
|
||||
OS_Key_Ex7,
|
||||
OS_Key_Ex8,
|
||||
OS_Key_Ex9,
|
||||
OS_Key_Ex10,
|
||||
OS_Key_Ex11,
|
||||
OS_Key_Ex12,
|
||||
OS_Key_Ex13,
|
||||
OS_Key_Ex14,
|
||||
OS_Key_Ex15,
|
||||
OS_Key_Ex16,
|
||||
OS_Key_Ex17,
|
||||
OS_Key_Ex18,
|
||||
OS_Key_Ex19,
|
||||
OS_Key_Ex20,
|
||||
OS_Key_Ex21,
|
||||
OS_Key_Ex22,
|
||||
OS_Key_Ex23,
|
||||
OS_Key_Ex24,
|
||||
OS_Key_Ex25,
|
||||
OS_Key_Ex26,
|
||||
OS_Key_Ex27,
|
||||
OS_Key_Ex28,
|
||||
OS_Key_Ex29,
|
||||
OS_Key_NumLock,
|
||||
OS_Key_NumSlash,
|
||||
OS_Key_NumStar,
|
||||
OS_Key_NumMinus,
|
||||
OS_Key_NumPlus,
|
||||
OS_Key_NumPeriod,
|
||||
OS_Key_Num0,
|
||||
OS_Key_Num1,
|
||||
OS_Key_Num2,
|
||||
OS_Key_Num3,
|
||||
OS_Key_Num4,
|
||||
OS_Key_Num5,
|
||||
OS_Key_Num6,
|
||||
OS_Key_Num7,
|
||||
OS_Key_Num8,
|
||||
OS_Key_Num9,
|
||||
OS_Key_LeftMouseButton,
|
||||
OS_Key_MiddleMouseButton,
|
||||
OS_Key_RightMouseButton,
|
||||
OS_Key_COUNT,
|
||||
} OS_Key;
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
extern String8 os_g_key_display_string_table[143];
|
||||
extern String8 os_g_key_cfg_string_table[143];
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
#endif // OS_GFX_META_H
|
||||
|
||||
+917
-917
File diff suppressed because it is too large
Load Diff
+445
-445
@@ -1,445 +1,445 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#ifndef REGS_META_H
|
||||
#define REGS_META_H
|
||||
|
||||
typedef enum REGS_RegCodeX64
|
||||
{
|
||||
REGS_RegCodeX64_NULL,
|
||||
REGS_RegCodeX64_rax,
|
||||
REGS_RegCodeX64_rcx,
|
||||
REGS_RegCodeX64_rdx,
|
||||
REGS_RegCodeX64_rbx,
|
||||
REGS_RegCodeX64_rsp,
|
||||
REGS_RegCodeX64_rbp,
|
||||
REGS_RegCodeX64_rsi,
|
||||
REGS_RegCodeX64_rdi,
|
||||
REGS_RegCodeX64_r8,
|
||||
REGS_RegCodeX64_r9,
|
||||
REGS_RegCodeX64_r10,
|
||||
REGS_RegCodeX64_r11,
|
||||
REGS_RegCodeX64_r12,
|
||||
REGS_RegCodeX64_r13,
|
||||
REGS_RegCodeX64_r14,
|
||||
REGS_RegCodeX64_r15,
|
||||
REGS_RegCodeX64_fsbase,
|
||||
REGS_RegCodeX64_gsbase,
|
||||
REGS_RegCodeX64_rip,
|
||||
REGS_RegCodeX64_rflags,
|
||||
REGS_RegCodeX64_dr0,
|
||||
REGS_RegCodeX64_dr1,
|
||||
REGS_RegCodeX64_dr2,
|
||||
REGS_RegCodeX64_dr3,
|
||||
REGS_RegCodeX64_dr4,
|
||||
REGS_RegCodeX64_dr5,
|
||||
REGS_RegCodeX64_dr6,
|
||||
REGS_RegCodeX64_dr7,
|
||||
REGS_RegCodeX64_fpr0,
|
||||
REGS_RegCodeX64_fpr1,
|
||||
REGS_RegCodeX64_fpr2,
|
||||
REGS_RegCodeX64_fpr3,
|
||||
REGS_RegCodeX64_fpr4,
|
||||
REGS_RegCodeX64_fpr5,
|
||||
REGS_RegCodeX64_fpr6,
|
||||
REGS_RegCodeX64_fpr7,
|
||||
REGS_RegCodeX64_st0,
|
||||
REGS_RegCodeX64_st1,
|
||||
REGS_RegCodeX64_st2,
|
||||
REGS_RegCodeX64_st3,
|
||||
REGS_RegCodeX64_st4,
|
||||
REGS_RegCodeX64_st5,
|
||||
REGS_RegCodeX64_st6,
|
||||
REGS_RegCodeX64_st7,
|
||||
REGS_RegCodeX64_fcw,
|
||||
REGS_RegCodeX64_fsw,
|
||||
REGS_RegCodeX64_ftw,
|
||||
REGS_RegCodeX64_fop,
|
||||
REGS_RegCodeX64_fcs,
|
||||
REGS_RegCodeX64_fds,
|
||||
REGS_RegCodeX64_fip,
|
||||
REGS_RegCodeX64_fdp,
|
||||
REGS_RegCodeX64_mxcsr,
|
||||
REGS_RegCodeX64_mxcsr_mask,
|
||||
REGS_RegCodeX64_ss,
|
||||
REGS_RegCodeX64_cs,
|
||||
REGS_RegCodeX64_ds,
|
||||
REGS_RegCodeX64_es,
|
||||
REGS_RegCodeX64_fs,
|
||||
REGS_RegCodeX64_gs,
|
||||
REGS_RegCodeX64_ymm0,
|
||||
REGS_RegCodeX64_ymm1,
|
||||
REGS_RegCodeX64_ymm2,
|
||||
REGS_RegCodeX64_ymm3,
|
||||
REGS_RegCodeX64_ymm4,
|
||||
REGS_RegCodeX64_ymm5,
|
||||
REGS_RegCodeX64_ymm6,
|
||||
REGS_RegCodeX64_ymm7,
|
||||
REGS_RegCodeX64_ymm8,
|
||||
REGS_RegCodeX64_ymm9,
|
||||
REGS_RegCodeX64_ymm10,
|
||||
REGS_RegCodeX64_ymm11,
|
||||
REGS_RegCodeX64_ymm12,
|
||||
REGS_RegCodeX64_ymm13,
|
||||
REGS_RegCodeX64_ymm14,
|
||||
REGS_RegCodeX64_ymm15,
|
||||
REGS_RegCodeX64_COUNT,
|
||||
} REGS_RegCodeX64;
|
||||
|
||||
typedef enum REGS_AliasCodeX64
|
||||
{
|
||||
REGS_AliasCodeX64_NULL,
|
||||
REGS_AliasCodeX64_eax,
|
||||
REGS_AliasCodeX64_ecx,
|
||||
REGS_AliasCodeX64_edx,
|
||||
REGS_AliasCodeX64_ebx,
|
||||
REGS_AliasCodeX64_esp,
|
||||
REGS_AliasCodeX64_ebp,
|
||||
REGS_AliasCodeX64_esi,
|
||||
REGS_AliasCodeX64_edi,
|
||||
REGS_AliasCodeX64_r8d,
|
||||
REGS_AliasCodeX64_r9d,
|
||||
REGS_AliasCodeX64_r10d,
|
||||
REGS_AliasCodeX64_r11d,
|
||||
REGS_AliasCodeX64_r12d,
|
||||
REGS_AliasCodeX64_r13d,
|
||||
REGS_AliasCodeX64_r14d,
|
||||
REGS_AliasCodeX64_r15d,
|
||||
REGS_AliasCodeX64_eip,
|
||||
REGS_AliasCodeX64_eflags,
|
||||
REGS_AliasCodeX64_ax,
|
||||
REGS_AliasCodeX64_cx,
|
||||
REGS_AliasCodeX64_dx,
|
||||
REGS_AliasCodeX64_bx,
|
||||
REGS_AliasCodeX64_si,
|
||||
REGS_AliasCodeX64_di,
|
||||
REGS_AliasCodeX64_sp,
|
||||
REGS_AliasCodeX64_bp,
|
||||
REGS_AliasCodeX64_ip,
|
||||
REGS_AliasCodeX64_r8w,
|
||||
REGS_AliasCodeX64_r9w,
|
||||
REGS_AliasCodeX64_r10w,
|
||||
REGS_AliasCodeX64_r11w,
|
||||
REGS_AliasCodeX64_r12w,
|
||||
REGS_AliasCodeX64_r13w,
|
||||
REGS_AliasCodeX64_r14w,
|
||||
REGS_AliasCodeX64_r15w,
|
||||
REGS_AliasCodeX64_al,
|
||||
REGS_AliasCodeX64_cl,
|
||||
REGS_AliasCodeX64_dl,
|
||||
REGS_AliasCodeX64_bl,
|
||||
REGS_AliasCodeX64_sil,
|
||||
REGS_AliasCodeX64_dil,
|
||||
REGS_AliasCodeX64_bpl,
|
||||
REGS_AliasCodeX64_spl,
|
||||
REGS_AliasCodeX64_r8b,
|
||||
REGS_AliasCodeX64_r9b,
|
||||
REGS_AliasCodeX64_r10b,
|
||||
REGS_AliasCodeX64_r11b,
|
||||
REGS_AliasCodeX64_r12b,
|
||||
REGS_AliasCodeX64_r13b,
|
||||
REGS_AliasCodeX64_r14b,
|
||||
REGS_AliasCodeX64_r15b,
|
||||
REGS_AliasCodeX64_ah,
|
||||
REGS_AliasCodeX64_ch,
|
||||
REGS_AliasCodeX64_dh,
|
||||
REGS_AliasCodeX64_bh,
|
||||
REGS_AliasCodeX64_xmm0,
|
||||
REGS_AliasCodeX64_xmm1,
|
||||
REGS_AliasCodeX64_xmm2,
|
||||
REGS_AliasCodeX64_xmm3,
|
||||
REGS_AliasCodeX64_xmm4,
|
||||
REGS_AliasCodeX64_xmm5,
|
||||
REGS_AliasCodeX64_xmm6,
|
||||
REGS_AliasCodeX64_xmm7,
|
||||
REGS_AliasCodeX64_xmm8,
|
||||
REGS_AliasCodeX64_xmm9,
|
||||
REGS_AliasCodeX64_xmm10,
|
||||
REGS_AliasCodeX64_xmm11,
|
||||
REGS_AliasCodeX64_xmm12,
|
||||
REGS_AliasCodeX64_xmm13,
|
||||
REGS_AliasCodeX64_xmm14,
|
||||
REGS_AliasCodeX64_xmm15,
|
||||
REGS_AliasCodeX64_mm0,
|
||||
REGS_AliasCodeX64_mm1,
|
||||
REGS_AliasCodeX64_mm2,
|
||||
REGS_AliasCodeX64_mm3,
|
||||
REGS_AliasCodeX64_mm4,
|
||||
REGS_AliasCodeX64_mm5,
|
||||
REGS_AliasCodeX64_mm6,
|
||||
REGS_AliasCodeX64_mm7,
|
||||
REGS_AliasCodeX64_COUNT,
|
||||
} REGS_AliasCodeX64;
|
||||
|
||||
typedef enum REGS_RegCodeX86
|
||||
{
|
||||
REGS_RegCodeX86_NULL,
|
||||
REGS_RegCodeX86_eax,
|
||||
REGS_RegCodeX86_ecx,
|
||||
REGS_RegCodeX86_edx,
|
||||
REGS_RegCodeX86_ebx,
|
||||
REGS_RegCodeX86_esp,
|
||||
REGS_RegCodeX86_ebp,
|
||||
REGS_RegCodeX86_esi,
|
||||
REGS_RegCodeX86_edi,
|
||||
REGS_RegCodeX86_fsbase,
|
||||
REGS_RegCodeX86_gsbase,
|
||||
REGS_RegCodeX86_eflags,
|
||||
REGS_RegCodeX86_eip,
|
||||
REGS_RegCodeX86_dr0,
|
||||
REGS_RegCodeX86_dr1,
|
||||
REGS_RegCodeX86_dr2,
|
||||
REGS_RegCodeX86_dr3,
|
||||
REGS_RegCodeX86_dr4,
|
||||
REGS_RegCodeX86_dr5,
|
||||
REGS_RegCodeX86_dr6,
|
||||
REGS_RegCodeX86_dr7,
|
||||
REGS_RegCodeX86_fpr0,
|
||||
REGS_RegCodeX86_fpr1,
|
||||
REGS_RegCodeX86_fpr2,
|
||||
REGS_RegCodeX86_fpr3,
|
||||
REGS_RegCodeX86_fpr4,
|
||||
REGS_RegCodeX86_fpr5,
|
||||
REGS_RegCodeX86_fpr6,
|
||||
REGS_RegCodeX86_fpr7,
|
||||
REGS_RegCodeX86_st0,
|
||||
REGS_RegCodeX86_st1,
|
||||
REGS_RegCodeX86_st2,
|
||||
REGS_RegCodeX86_st3,
|
||||
REGS_RegCodeX86_st4,
|
||||
REGS_RegCodeX86_st5,
|
||||
REGS_RegCodeX86_st6,
|
||||
REGS_RegCodeX86_st7,
|
||||
REGS_RegCodeX86_fcw,
|
||||
REGS_RegCodeX86_fsw,
|
||||
REGS_RegCodeX86_ftw,
|
||||
REGS_RegCodeX86_fop,
|
||||
REGS_RegCodeX86_fcs,
|
||||
REGS_RegCodeX86_fds,
|
||||
REGS_RegCodeX86_fip,
|
||||
REGS_RegCodeX86_fdp,
|
||||
REGS_RegCodeX86_mxcsr,
|
||||
REGS_RegCodeX86_mxcsr_mask,
|
||||
REGS_RegCodeX86_ss,
|
||||
REGS_RegCodeX86_cs,
|
||||
REGS_RegCodeX86_ds,
|
||||
REGS_RegCodeX86_es,
|
||||
REGS_RegCodeX86_fs,
|
||||
REGS_RegCodeX86_gs,
|
||||
REGS_RegCodeX86_ymm0,
|
||||
REGS_RegCodeX86_ymm1,
|
||||
REGS_RegCodeX86_ymm2,
|
||||
REGS_RegCodeX86_ymm3,
|
||||
REGS_RegCodeX86_ymm4,
|
||||
REGS_RegCodeX86_ymm5,
|
||||
REGS_RegCodeX86_ymm6,
|
||||
REGS_RegCodeX86_ymm7,
|
||||
REGS_RegCodeX86_COUNT,
|
||||
} REGS_RegCodeX86;
|
||||
|
||||
typedef enum REGS_AliasCodeX86
|
||||
{
|
||||
REGS_AliasCodeX86_NULL,
|
||||
REGS_AliasCodeX86_ax,
|
||||
REGS_AliasCodeX86_cx,
|
||||
REGS_AliasCodeX86_bx,
|
||||
REGS_AliasCodeX86_dx,
|
||||
REGS_AliasCodeX86_sp,
|
||||
REGS_AliasCodeX86_bp,
|
||||
REGS_AliasCodeX86_si,
|
||||
REGS_AliasCodeX86_di,
|
||||
REGS_AliasCodeX86_ip,
|
||||
REGS_AliasCodeX86_ah,
|
||||
REGS_AliasCodeX86_ch,
|
||||
REGS_AliasCodeX86_dh,
|
||||
REGS_AliasCodeX86_bh,
|
||||
REGS_AliasCodeX86_al,
|
||||
REGS_AliasCodeX86_cl,
|
||||
REGS_AliasCodeX86_dl,
|
||||
REGS_AliasCodeX86_bl,
|
||||
REGS_AliasCodeX86_bpl,
|
||||
REGS_AliasCodeX86_spl,
|
||||
REGS_AliasCodeX86_xmm0,
|
||||
REGS_AliasCodeX86_xmm1,
|
||||
REGS_AliasCodeX86_xmm2,
|
||||
REGS_AliasCodeX86_xmm3,
|
||||
REGS_AliasCodeX86_xmm4,
|
||||
REGS_AliasCodeX86_xmm5,
|
||||
REGS_AliasCodeX86_xmm6,
|
||||
REGS_AliasCodeX86_xmm7,
|
||||
REGS_AliasCodeX86_mm0,
|
||||
REGS_AliasCodeX86_mm1,
|
||||
REGS_AliasCodeX86_mm2,
|
||||
REGS_AliasCodeX86_mm3,
|
||||
REGS_AliasCodeX86_mm4,
|
||||
REGS_AliasCodeX86_mm5,
|
||||
REGS_AliasCodeX86_mm6,
|
||||
REGS_AliasCodeX86_mm7,
|
||||
REGS_AliasCodeX86_COUNT,
|
||||
} REGS_AliasCodeX86;
|
||||
|
||||
typedef struct REGS_RegBlockX64 REGS_RegBlockX64;
|
||||
struct REGS_RegBlockX64
|
||||
{
|
||||
REGS_Reg64 rax;
|
||||
REGS_Reg64 rcx;
|
||||
REGS_Reg64 rdx;
|
||||
REGS_Reg64 rbx;
|
||||
REGS_Reg64 rsp;
|
||||
REGS_Reg64 rbp;
|
||||
REGS_Reg64 rsi;
|
||||
REGS_Reg64 rdi;
|
||||
REGS_Reg64 r8;
|
||||
REGS_Reg64 r9;
|
||||
REGS_Reg64 r10;
|
||||
REGS_Reg64 r11;
|
||||
REGS_Reg64 r12;
|
||||
REGS_Reg64 r13;
|
||||
REGS_Reg64 r14;
|
||||
REGS_Reg64 r15;
|
||||
REGS_Reg64 fsbase;
|
||||
REGS_Reg64 gsbase;
|
||||
REGS_Reg64 rip;
|
||||
REGS_Reg64 rflags;
|
||||
REGS_Reg32 dr0;
|
||||
REGS_Reg32 dr1;
|
||||
REGS_Reg32 dr2;
|
||||
REGS_Reg32 dr3;
|
||||
REGS_Reg32 dr4;
|
||||
REGS_Reg32 dr5;
|
||||
REGS_Reg32 dr6;
|
||||
REGS_Reg32 dr7;
|
||||
REGS_Reg80 fpr0;
|
||||
REGS_Reg80 fpr1;
|
||||
REGS_Reg80 fpr2;
|
||||
REGS_Reg80 fpr3;
|
||||
REGS_Reg80 fpr4;
|
||||
REGS_Reg80 fpr5;
|
||||
REGS_Reg80 fpr6;
|
||||
REGS_Reg80 fpr7;
|
||||
REGS_Reg80 st0;
|
||||
REGS_Reg80 st1;
|
||||
REGS_Reg80 st2;
|
||||
REGS_Reg80 st3;
|
||||
REGS_Reg80 st4;
|
||||
REGS_Reg80 st5;
|
||||
REGS_Reg80 st6;
|
||||
REGS_Reg80 st7;
|
||||
REGS_Reg16 fcw;
|
||||
REGS_Reg16 fsw;
|
||||
REGS_Reg16 ftw;
|
||||
REGS_Reg16 fop;
|
||||
REGS_Reg16 fcs;
|
||||
REGS_Reg16 fds;
|
||||
REGS_Reg32 fip;
|
||||
REGS_Reg32 fdp;
|
||||
REGS_Reg32 mxcsr;
|
||||
REGS_Reg32 mxcsr_mask;
|
||||
REGS_Reg16 ss;
|
||||
REGS_Reg16 cs;
|
||||
REGS_Reg16 ds;
|
||||
REGS_Reg16 es;
|
||||
REGS_Reg16 fs;
|
||||
REGS_Reg16 gs;
|
||||
REGS_Reg256 ymm0;
|
||||
REGS_Reg256 ymm1;
|
||||
REGS_Reg256 ymm2;
|
||||
REGS_Reg256 ymm3;
|
||||
REGS_Reg256 ymm4;
|
||||
REGS_Reg256 ymm5;
|
||||
REGS_Reg256 ymm6;
|
||||
REGS_Reg256 ymm7;
|
||||
REGS_Reg256 ymm8;
|
||||
REGS_Reg256 ymm9;
|
||||
REGS_Reg256 ymm10;
|
||||
REGS_Reg256 ymm11;
|
||||
REGS_Reg256 ymm12;
|
||||
REGS_Reg256 ymm13;
|
||||
REGS_Reg256 ymm14;
|
||||
REGS_Reg256 ymm15;
|
||||
};
|
||||
|
||||
typedef struct REGS_RegBlockX86 REGS_RegBlockX86;
|
||||
struct REGS_RegBlockX86
|
||||
{
|
||||
REGS_Reg32 eax;
|
||||
REGS_Reg32 ecx;
|
||||
REGS_Reg32 edx;
|
||||
REGS_Reg32 ebx;
|
||||
REGS_Reg32 esp;
|
||||
REGS_Reg32 ebp;
|
||||
REGS_Reg32 esi;
|
||||
REGS_Reg32 edi;
|
||||
REGS_Reg32 fsbase;
|
||||
REGS_Reg32 gsbase;
|
||||
REGS_Reg32 eflags;
|
||||
REGS_Reg32 eip;
|
||||
REGS_Reg32 dr0;
|
||||
REGS_Reg32 dr1;
|
||||
REGS_Reg32 dr2;
|
||||
REGS_Reg32 dr3;
|
||||
REGS_Reg32 dr4;
|
||||
REGS_Reg32 dr5;
|
||||
REGS_Reg32 dr6;
|
||||
REGS_Reg32 dr7;
|
||||
REGS_Reg80 fpr0;
|
||||
REGS_Reg80 fpr1;
|
||||
REGS_Reg80 fpr2;
|
||||
REGS_Reg80 fpr3;
|
||||
REGS_Reg80 fpr4;
|
||||
REGS_Reg80 fpr5;
|
||||
REGS_Reg80 fpr6;
|
||||
REGS_Reg80 fpr7;
|
||||
REGS_Reg80 st0;
|
||||
REGS_Reg80 st1;
|
||||
REGS_Reg80 st2;
|
||||
REGS_Reg80 st3;
|
||||
REGS_Reg80 st4;
|
||||
REGS_Reg80 st5;
|
||||
REGS_Reg80 st6;
|
||||
REGS_Reg80 st7;
|
||||
REGS_Reg16 fcw;
|
||||
REGS_Reg16 fsw;
|
||||
REGS_Reg16 ftw;
|
||||
REGS_Reg16 fop;
|
||||
REGS_Reg16 fcs;
|
||||
REGS_Reg16 fds;
|
||||
REGS_Reg32 fip;
|
||||
REGS_Reg32 fdp;
|
||||
REGS_Reg32 mxcsr;
|
||||
REGS_Reg32 mxcsr_mask;
|
||||
REGS_Reg16 ss;
|
||||
REGS_Reg16 cs;
|
||||
REGS_Reg16 ds;
|
||||
REGS_Reg16 es;
|
||||
REGS_Reg16 fs;
|
||||
REGS_Reg16 gs;
|
||||
REGS_Reg256 ymm0;
|
||||
REGS_Reg256 ymm1;
|
||||
REGS_Reg256 ymm2;
|
||||
REGS_Reg256 ymm3;
|
||||
REGS_Reg256 ymm4;
|
||||
REGS_Reg256 ymm5;
|
||||
REGS_Reg256 ymm6;
|
||||
REGS_Reg256 ymm7;
|
||||
};
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
extern REGS_UsageKind regs_g_reg_code_x64_usage_kind_table[77];
|
||||
extern REGS_UsageKind regs_g_alias_code_x64_usage_kind_table[80];
|
||||
extern String8 regs_g_reg_code_x64_string_table[77];
|
||||
extern String8 regs_g_alias_code_x64_string_table[80];
|
||||
extern REGS_Rng regs_g_reg_code_x64_rng_table[77];
|
||||
extern REGS_Slice regs_g_alias_code_x64_slice_table[80];
|
||||
extern REGS_UsageKind regs_g_reg_code_x86_usage_kind_table[61];
|
||||
extern REGS_UsageKind regs_g_alias_code_x86_usage_kind_table[36];
|
||||
extern String8 regs_g_reg_code_x86_string_table[61];
|
||||
extern String8 regs_g_alias_code_x86_string_table[36];
|
||||
extern REGS_Rng regs_g_reg_code_x86_rng_table[61];
|
||||
extern REGS_Slice regs_g_alias_code_x86_slice_table[36];
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
#endif // REGS_META_H
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#ifndef REGS_META_H
|
||||
#define REGS_META_H
|
||||
|
||||
typedef enum REGS_RegCodeX64
|
||||
{
|
||||
REGS_RegCodeX64_NULL,
|
||||
REGS_RegCodeX64_rax,
|
||||
REGS_RegCodeX64_rcx,
|
||||
REGS_RegCodeX64_rdx,
|
||||
REGS_RegCodeX64_rbx,
|
||||
REGS_RegCodeX64_rsp,
|
||||
REGS_RegCodeX64_rbp,
|
||||
REGS_RegCodeX64_rsi,
|
||||
REGS_RegCodeX64_rdi,
|
||||
REGS_RegCodeX64_r8,
|
||||
REGS_RegCodeX64_r9,
|
||||
REGS_RegCodeX64_r10,
|
||||
REGS_RegCodeX64_r11,
|
||||
REGS_RegCodeX64_r12,
|
||||
REGS_RegCodeX64_r13,
|
||||
REGS_RegCodeX64_r14,
|
||||
REGS_RegCodeX64_r15,
|
||||
REGS_RegCodeX64_fsbase,
|
||||
REGS_RegCodeX64_gsbase,
|
||||
REGS_RegCodeX64_rip,
|
||||
REGS_RegCodeX64_rflags,
|
||||
REGS_RegCodeX64_dr0,
|
||||
REGS_RegCodeX64_dr1,
|
||||
REGS_RegCodeX64_dr2,
|
||||
REGS_RegCodeX64_dr3,
|
||||
REGS_RegCodeX64_dr4,
|
||||
REGS_RegCodeX64_dr5,
|
||||
REGS_RegCodeX64_dr6,
|
||||
REGS_RegCodeX64_dr7,
|
||||
REGS_RegCodeX64_fpr0,
|
||||
REGS_RegCodeX64_fpr1,
|
||||
REGS_RegCodeX64_fpr2,
|
||||
REGS_RegCodeX64_fpr3,
|
||||
REGS_RegCodeX64_fpr4,
|
||||
REGS_RegCodeX64_fpr5,
|
||||
REGS_RegCodeX64_fpr6,
|
||||
REGS_RegCodeX64_fpr7,
|
||||
REGS_RegCodeX64_st0,
|
||||
REGS_RegCodeX64_st1,
|
||||
REGS_RegCodeX64_st2,
|
||||
REGS_RegCodeX64_st3,
|
||||
REGS_RegCodeX64_st4,
|
||||
REGS_RegCodeX64_st5,
|
||||
REGS_RegCodeX64_st6,
|
||||
REGS_RegCodeX64_st7,
|
||||
REGS_RegCodeX64_fcw,
|
||||
REGS_RegCodeX64_fsw,
|
||||
REGS_RegCodeX64_ftw,
|
||||
REGS_RegCodeX64_fop,
|
||||
REGS_RegCodeX64_fcs,
|
||||
REGS_RegCodeX64_fds,
|
||||
REGS_RegCodeX64_fip,
|
||||
REGS_RegCodeX64_fdp,
|
||||
REGS_RegCodeX64_mxcsr,
|
||||
REGS_RegCodeX64_mxcsr_mask,
|
||||
REGS_RegCodeX64_ss,
|
||||
REGS_RegCodeX64_cs,
|
||||
REGS_RegCodeX64_ds,
|
||||
REGS_RegCodeX64_es,
|
||||
REGS_RegCodeX64_fs,
|
||||
REGS_RegCodeX64_gs,
|
||||
REGS_RegCodeX64_ymm0,
|
||||
REGS_RegCodeX64_ymm1,
|
||||
REGS_RegCodeX64_ymm2,
|
||||
REGS_RegCodeX64_ymm3,
|
||||
REGS_RegCodeX64_ymm4,
|
||||
REGS_RegCodeX64_ymm5,
|
||||
REGS_RegCodeX64_ymm6,
|
||||
REGS_RegCodeX64_ymm7,
|
||||
REGS_RegCodeX64_ymm8,
|
||||
REGS_RegCodeX64_ymm9,
|
||||
REGS_RegCodeX64_ymm10,
|
||||
REGS_RegCodeX64_ymm11,
|
||||
REGS_RegCodeX64_ymm12,
|
||||
REGS_RegCodeX64_ymm13,
|
||||
REGS_RegCodeX64_ymm14,
|
||||
REGS_RegCodeX64_ymm15,
|
||||
REGS_RegCodeX64_COUNT,
|
||||
} REGS_RegCodeX64;
|
||||
|
||||
typedef enum REGS_AliasCodeX64
|
||||
{
|
||||
REGS_AliasCodeX64_NULL,
|
||||
REGS_AliasCodeX64_eax,
|
||||
REGS_AliasCodeX64_ecx,
|
||||
REGS_AliasCodeX64_edx,
|
||||
REGS_AliasCodeX64_ebx,
|
||||
REGS_AliasCodeX64_esp,
|
||||
REGS_AliasCodeX64_ebp,
|
||||
REGS_AliasCodeX64_esi,
|
||||
REGS_AliasCodeX64_edi,
|
||||
REGS_AliasCodeX64_r8d,
|
||||
REGS_AliasCodeX64_r9d,
|
||||
REGS_AliasCodeX64_r10d,
|
||||
REGS_AliasCodeX64_r11d,
|
||||
REGS_AliasCodeX64_r12d,
|
||||
REGS_AliasCodeX64_r13d,
|
||||
REGS_AliasCodeX64_r14d,
|
||||
REGS_AliasCodeX64_r15d,
|
||||
REGS_AliasCodeX64_eip,
|
||||
REGS_AliasCodeX64_eflags,
|
||||
REGS_AliasCodeX64_ax,
|
||||
REGS_AliasCodeX64_cx,
|
||||
REGS_AliasCodeX64_dx,
|
||||
REGS_AliasCodeX64_bx,
|
||||
REGS_AliasCodeX64_si,
|
||||
REGS_AliasCodeX64_di,
|
||||
REGS_AliasCodeX64_sp,
|
||||
REGS_AliasCodeX64_bp,
|
||||
REGS_AliasCodeX64_ip,
|
||||
REGS_AliasCodeX64_r8w,
|
||||
REGS_AliasCodeX64_r9w,
|
||||
REGS_AliasCodeX64_r10w,
|
||||
REGS_AliasCodeX64_r11w,
|
||||
REGS_AliasCodeX64_r12w,
|
||||
REGS_AliasCodeX64_r13w,
|
||||
REGS_AliasCodeX64_r14w,
|
||||
REGS_AliasCodeX64_r15w,
|
||||
REGS_AliasCodeX64_al,
|
||||
REGS_AliasCodeX64_cl,
|
||||
REGS_AliasCodeX64_dl,
|
||||
REGS_AliasCodeX64_bl,
|
||||
REGS_AliasCodeX64_sil,
|
||||
REGS_AliasCodeX64_dil,
|
||||
REGS_AliasCodeX64_bpl,
|
||||
REGS_AliasCodeX64_spl,
|
||||
REGS_AliasCodeX64_r8b,
|
||||
REGS_AliasCodeX64_r9b,
|
||||
REGS_AliasCodeX64_r10b,
|
||||
REGS_AliasCodeX64_r11b,
|
||||
REGS_AliasCodeX64_r12b,
|
||||
REGS_AliasCodeX64_r13b,
|
||||
REGS_AliasCodeX64_r14b,
|
||||
REGS_AliasCodeX64_r15b,
|
||||
REGS_AliasCodeX64_ah,
|
||||
REGS_AliasCodeX64_ch,
|
||||
REGS_AliasCodeX64_dh,
|
||||
REGS_AliasCodeX64_bh,
|
||||
REGS_AliasCodeX64_xmm0,
|
||||
REGS_AliasCodeX64_xmm1,
|
||||
REGS_AliasCodeX64_xmm2,
|
||||
REGS_AliasCodeX64_xmm3,
|
||||
REGS_AliasCodeX64_xmm4,
|
||||
REGS_AliasCodeX64_xmm5,
|
||||
REGS_AliasCodeX64_xmm6,
|
||||
REGS_AliasCodeX64_xmm7,
|
||||
REGS_AliasCodeX64_xmm8,
|
||||
REGS_AliasCodeX64_xmm9,
|
||||
REGS_AliasCodeX64_xmm10,
|
||||
REGS_AliasCodeX64_xmm11,
|
||||
REGS_AliasCodeX64_xmm12,
|
||||
REGS_AliasCodeX64_xmm13,
|
||||
REGS_AliasCodeX64_xmm14,
|
||||
REGS_AliasCodeX64_xmm15,
|
||||
REGS_AliasCodeX64_mm0,
|
||||
REGS_AliasCodeX64_mm1,
|
||||
REGS_AliasCodeX64_mm2,
|
||||
REGS_AliasCodeX64_mm3,
|
||||
REGS_AliasCodeX64_mm4,
|
||||
REGS_AliasCodeX64_mm5,
|
||||
REGS_AliasCodeX64_mm6,
|
||||
REGS_AliasCodeX64_mm7,
|
||||
REGS_AliasCodeX64_COUNT,
|
||||
} REGS_AliasCodeX64;
|
||||
|
||||
typedef enum REGS_RegCodeX86
|
||||
{
|
||||
REGS_RegCodeX86_NULL,
|
||||
REGS_RegCodeX86_eax,
|
||||
REGS_RegCodeX86_ecx,
|
||||
REGS_RegCodeX86_edx,
|
||||
REGS_RegCodeX86_ebx,
|
||||
REGS_RegCodeX86_esp,
|
||||
REGS_RegCodeX86_ebp,
|
||||
REGS_RegCodeX86_esi,
|
||||
REGS_RegCodeX86_edi,
|
||||
REGS_RegCodeX86_fsbase,
|
||||
REGS_RegCodeX86_gsbase,
|
||||
REGS_RegCodeX86_eflags,
|
||||
REGS_RegCodeX86_eip,
|
||||
REGS_RegCodeX86_dr0,
|
||||
REGS_RegCodeX86_dr1,
|
||||
REGS_RegCodeX86_dr2,
|
||||
REGS_RegCodeX86_dr3,
|
||||
REGS_RegCodeX86_dr4,
|
||||
REGS_RegCodeX86_dr5,
|
||||
REGS_RegCodeX86_dr6,
|
||||
REGS_RegCodeX86_dr7,
|
||||
REGS_RegCodeX86_fpr0,
|
||||
REGS_RegCodeX86_fpr1,
|
||||
REGS_RegCodeX86_fpr2,
|
||||
REGS_RegCodeX86_fpr3,
|
||||
REGS_RegCodeX86_fpr4,
|
||||
REGS_RegCodeX86_fpr5,
|
||||
REGS_RegCodeX86_fpr6,
|
||||
REGS_RegCodeX86_fpr7,
|
||||
REGS_RegCodeX86_st0,
|
||||
REGS_RegCodeX86_st1,
|
||||
REGS_RegCodeX86_st2,
|
||||
REGS_RegCodeX86_st3,
|
||||
REGS_RegCodeX86_st4,
|
||||
REGS_RegCodeX86_st5,
|
||||
REGS_RegCodeX86_st6,
|
||||
REGS_RegCodeX86_st7,
|
||||
REGS_RegCodeX86_fcw,
|
||||
REGS_RegCodeX86_fsw,
|
||||
REGS_RegCodeX86_ftw,
|
||||
REGS_RegCodeX86_fop,
|
||||
REGS_RegCodeX86_fcs,
|
||||
REGS_RegCodeX86_fds,
|
||||
REGS_RegCodeX86_fip,
|
||||
REGS_RegCodeX86_fdp,
|
||||
REGS_RegCodeX86_mxcsr,
|
||||
REGS_RegCodeX86_mxcsr_mask,
|
||||
REGS_RegCodeX86_ss,
|
||||
REGS_RegCodeX86_cs,
|
||||
REGS_RegCodeX86_ds,
|
||||
REGS_RegCodeX86_es,
|
||||
REGS_RegCodeX86_fs,
|
||||
REGS_RegCodeX86_gs,
|
||||
REGS_RegCodeX86_ymm0,
|
||||
REGS_RegCodeX86_ymm1,
|
||||
REGS_RegCodeX86_ymm2,
|
||||
REGS_RegCodeX86_ymm3,
|
||||
REGS_RegCodeX86_ymm4,
|
||||
REGS_RegCodeX86_ymm5,
|
||||
REGS_RegCodeX86_ymm6,
|
||||
REGS_RegCodeX86_ymm7,
|
||||
REGS_RegCodeX86_COUNT,
|
||||
} REGS_RegCodeX86;
|
||||
|
||||
typedef enum REGS_AliasCodeX86
|
||||
{
|
||||
REGS_AliasCodeX86_NULL,
|
||||
REGS_AliasCodeX86_ax,
|
||||
REGS_AliasCodeX86_cx,
|
||||
REGS_AliasCodeX86_bx,
|
||||
REGS_AliasCodeX86_dx,
|
||||
REGS_AliasCodeX86_sp,
|
||||
REGS_AliasCodeX86_bp,
|
||||
REGS_AliasCodeX86_si,
|
||||
REGS_AliasCodeX86_di,
|
||||
REGS_AliasCodeX86_ip,
|
||||
REGS_AliasCodeX86_ah,
|
||||
REGS_AliasCodeX86_ch,
|
||||
REGS_AliasCodeX86_dh,
|
||||
REGS_AliasCodeX86_bh,
|
||||
REGS_AliasCodeX86_al,
|
||||
REGS_AliasCodeX86_cl,
|
||||
REGS_AliasCodeX86_dl,
|
||||
REGS_AliasCodeX86_bl,
|
||||
REGS_AliasCodeX86_bpl,
|
||||
REGS_AliasCodeX86_spl,
|
||||
REGS_AliasCodeX86_xmm0,
|
||||
REGS_AliasCodeX86_xmm1,
|
||||
REGS_AliasCodeX86_xmm2,
|
||||
REGS_AliasCodeX86_xmm3,
|
||||
REGS_AliasCodeX86_xmm4,
|
||||
REGS_AliasCodeX86_xmm5,
|
||||
REGS_AliasCodeX86_xmm6,
|
||||
REGS_AliasCodeX86_xmm7,
|
||||
REGS_AliasCodeX86_mm0,
|
||||
REGS_AliasCodeX86_mm1,
|
||||
REGS_AliasCodeX86_mm2,
|
||||
REGS_AliasCodeX86_mm3,
|
||||
REGS_AliasCodeX86_mm4,
|
||||
REGS_AliasCodeX86_mm5,
|
||||
REGS_AliasCodeX86_mm6,
|
||||
REGS_AliasCodeX86_mm7,
|
||||
REGS_AliasCodeX86_COUNT,
|
||||
} REGS_AliasCodeX86;
|
||||
|
||||
typedef struct REGS_RegBlockX64 REGS_RegBlockX64;
|
||||
struct REGS_RegBlockX64
|
||||
{
|
||||
REGS_Reg64 rax;
|
||||
REGS_Reg64 rcx;
|
||||
REGS_Reg64 rdx;
|
||||
REGS_Reg64 rbx;
|
||||
REGS_Reg64 rsp;
|
||||
REGS_Reg64 rbp;
|
||||
REGS_Reg64 rsi;
|
||||
REGS_Reg64 rdi;
|
||||
REGS_Reg64 r8;
|
||||
REGS_Reg64 r9;
|
||||
REGS_Reg64 r10;
|
||||
REGS_Reg64 r11;
|
||||
REGS_Reg64 r12;
|
||||
REGS_Reg64 r13;
|
||||
REGS_Reg64 r14;
|
||||
REGS_Reg64 r15;
|
||||
REGS_Reg64 fsbase;
|
||||
REGS_Reg64 gsbase;
|
||||
REGS_Reg64 rip;
|
||||
REGS_Reg64 rflags;
|
||||
REGS_Reg32 dr0;
|
||||
REGS_Reg32 dr1;
|
||||
REGS_Reg32 dr2;
|
||||
REGS_Reg32 dr3;
|
||||
REGS_Reg32 dr4;
|
||||
REGS_Reg32 dr5;
|
||||
REGS_Reg32 dr6;
|
||||
REGS_Reg32 dr7;
|
||||
REGS_Reg80 fpr0;
|
||||
REGS_Reg80 fpr1;
|
||||
REGS_Reg80 fpr2;
|
||||
REGS_Reg80 fpr3;
|
||||
REGS_Reg80 fpr4;
|
||||
REGS_Reg80 fpr5;
|
||||
REGS_Reg80 fpr6;
|
||||
REGS_Reg80 fpr7;
|
||||
REGS_Reg80 st0;
|
||||
REGS_Reg80 st1;
|
||||
REGS_Reg80 st2;
|
||||
REGS_Reg80 st3;
|
||||
REGS_Reg80 st4;
|
||||
REGS_Reg80 st5;
|
||||
REGS_Reg80 st6;
|
||||
REGS_Reg80 st7;
|
||||
REGS_Reg16 fcw;
|
||||
REGS_Reg16 fsw;
|
||||
REGS_Reg16 ftw;
|
||||
REGS_Reg16 fop;
|
||||
REGS_Reg16 fcs;
|
||||
REGS_Reg16 fds;
|
||||
REGS_Reg32 fip;
|
||||
REGS_Reg32 fdp;
|
||||
REGS_Reg32 mxcsr;
|
||||
REGS_Reg32 mxcsr_mask;
|
||||
REGS_Reg16 ss;
|
||||
REGS_Reg16 cs;
|
||||
REGS_Reg16 ds;
|
||||
REGS_Reg16 es;
|
||||
REGS_Reg16 fs;
|
||||
REGS_Reg16 gs;
|
||||
REGS_Reg256 ymm0;
|
||||
REGS_Reg256 ymm1;
|
||||
REGS_Reg256 ymm2;
|
||||
REGS_Reg256 ymm3;
|
||||
REGS_Reg256 ymm4;
|
||||
REGS_Reg256 ymm5;
|
||||
REGS_Reg256 ymm6;
|
||||
REGS_Reg256 ymm7;
|
||||
REGS_Reg256 ymm8;
|
||||
REGS_Reg256 ymm9;
|
||||
REGS_Reg256 ymm10;
|
||||
REGS_Reg256 ymm11;
|
||||
REGS_Reg256 ymm12;
|
||||
REGS_Reg256 ymm13;
|
||||
REGS_Reg256 ymm14;
|
||||
REGS_Reg256 ymm15;
|
||||
};
|
||||
|
||||
typedef struct REGS_RegBlockX86 REGS_RegBlockX86;
|
||||
struct REGS_RegBlockX86
|
||||
{
|
||||
REGS_Reg32 eax;
|
||||
REGS_Reg32 ecx;
|
||||
REGS_Reg32 edx;
|
||||
REGS_Reg32 ebx;
|
||||
REGS_Reg32 esp;
|
||||
REGS_Reg32 ebp;
|
||||
REGS_Reg32 esi;
|
||||
REGS_Reg32 edi;
|
||||
REGS_Reg32 fsbase;
|
||||
REGS_Reg32 gsbase;
|
||||
REGS_Reg32 eflags;
|
||||
REGS_Reg32 eip;
|
||||
REGS_Reg32 dr0;
|
||||
REGS_Reg32 dr1;
|
||||
REGS_Reg32 dr2;
|
||||
REGS_Reg32 dr3;
|
||||
REGS_Reg32 dr4;
|
||||
REGS_Reg32 dr5;
|
||||
REGS_Reg32 dr6;
|
||||
REGS_Reg32 dr7;
|
||||
REGS_Reg80 fpr0;
|
||||
REGS_Reg80 fpr1;
|
||||
REGS_Reg80 fpr2;
|
||||
REGS_Reg80 fpr3;
|
||||
REGS_Reg80 fpr4;
|
||||
REGS_Reg80 fpr5;
|
||||
REGS_Reg80 fpr6;
|
||||
REGS_Reg80 fpr7;
|
||||
REGS_Reg80 st0;
|
||||
REGS_Reg80 st1;
|
||||
REGS_Reg80 st2;
|
||||
REGS_Reg80 st3;
|
||||
REGS_Reg80 st4;
|
||||
REGS_Reg80 st5;
|
||||
REGS_Reg80 st6;
|
||||
REGS_Reg80 st7;
|
||||
REGS_Reg16 fcw;
|
||||
REGS_Reg16 fsw;
|
||||
REGS_Reg16 ftw;
|
||||
REGS_Reg16 fop;
|
||||
REGS_Reg16 fcs;
|
||||
REGS_Reg16 fds;
|
||||
REGS_Reg32 fip;
|
||||
REGS_Reg32 fdp;
|
||||
REGS_Reg32 mxcsr;
|
||||
REGS_Reg32 mxcsr_mask;
|
||||
REGS_Reg16 ss;
|
||||
REGS_Reg16 cs;
|
||||
REGS_Reg16 ds;
|
||||
REGS_Reg16 es;
|
||||
REGS_Reg16 fs;
|
||||
REGS_Reg16 gs;
|
||||
REGS_Reg256 ymm0;
|
||||
REGS_Reg256 ymm1;
|
||||
REGS_Reg256 ymm2;
|
||||
REGS_Reg256 ymm3;
|
||||
REGS_Reg256 ymm4;
|
||||
REGS_Reg256 ymm5;
|
||||
REGS_Reg256 ymm6;
|
||||
REGS_Reg256 ymm7;
|
||||
};
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
extern REGS_UsageKind regs_g_reg_code_x64_usage_kind_table[77];
|
||||
extern REGS_UsageKind regs_g_alias_code_x64_usage_kind_table[80];
|
||||
extern String8 regs_g_reg_code_x64_string_table[77];
|
||||
extern String8 regs_g_alias_code_x64_string_table[80];
|
||||
extern REGS_Rng regs_g_reg_code_x64_rng_table[77];
|
||||
extern REGS_Slice regs_g_alias_code_x64_slice_table[80];
|
||||
extern REGS_UsageKind regs_g_reg_code_x86_usage_kind_table[61];
|
||||
extern REGS_UsageKind regs_g_alias_code_x86_usage_kind_table[36];
|
||||
extern String8 regs_g_reg_code_x86_string_table[61];
|
||||
extern String8 regs_g_alias_code_x86_string_table[36];
|
||||
extern REGS_Rng regs_g_reg_code_x86_rng_table[61];
|
||||
extern REGS_Slice regs_g_alias_code_x86_slice_table[36];
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
#endif // REGS_META_H
|
||||
|
||||
@@ -1,323 +1,323 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
internal RDI_RegCode regs_rdi_code_from_arch_reg_code(Architecture arch, REGS_RegCode code)
|
||||
{
|
||||
RDI_RegCode result = 0;
|
||||
switch(arch)
|
||||
{
|
||||
default:{}break;
|
||||
case Architecture_x64:
|
||||
{
|
||||
switch(code)
|
||||
{
|
||||
default:{}break;
|
||||
case REGS_RegCodeX64_rax:{result = RDI_RegCodeX64_rax;}break;
|
||||
case REGS_RegCodeX64_rcx:{result = RDI_RegCodeX64_rcx;}break;
|
||||
case REGS_RegCodeX64_rdx:{result = RDI_RegCodeX64_rdx;}break;
|
||||
case REGS_RegCodeX64_rbx:{result = RDI_RegCodeX64_rbx;}break;
|
||||
case REGS_RegCodeX64_rsp:{result = RDI_RegCodeX64_rsp;}break;
|
||||
case REGS_RegCodeX64_rbp:{result = RDI_RegCodeX64_rbp;}break;
|
||||
case REGS_RegCodeX64_rsi:{result = RDI_RegCodeX64_rsi;}break;
|
||||
case REGS_RegCodeX64_rdi:{result = RDI_RegCodeX64_rdi;}break;
|
||||
case REGS_RegCodeX64_r8:{result = RDI_RegCodeX64_r8;}break;
|
||||
case REGS_RegCodeX64_r9:{result = RDI_RegCodeX64_r9;}break;
|
||||
case REGS_RegCodeX64_r10:{result = RDI_RegCodeX64_r10;}break;
|
||||
case REGS_RegCodeX64_r11:{result = RDI_RegCodeX64_r11;}break;
|
||||
case REGS_RegCodeX64_r12:{result = RDI_RegCodeX64_r12;}break;
|
||||
case REGS_RegCodeX64_r13:{result = RDI_RegCodeX64_r13;}break;
|
||||
case REGS_RegCodeX64_r14:{result = RDI_RegCodeX64_r14;}break;
|
||||
case REGS_RegCodeX64_r15:{result = RDI_RegCodeX64_r15;}break;
|
||||
case REGS_RegCodeX64_fsbase:{result = RDI_RegCodeX64_fsbase;}break;
|
||||
case REGS_RegCodeX64_gsbase:{result = RDI_RegCodeX64_gsbase;}break;
|
||||
case REGS_RegCodeX64_rip:{result = RDI_RegCodeX64_rip;}break;
|
||||
case REGS_RegCodeX64_rflags:{result = RDI_RegCodeX64_rflags;}break;
|
||||
case REGS_RegCodeX64_dr0:{result = RDI_RegCodeX64_dr0;}break;
|
||||
case REGS_RegCodeX64_dr1:{result = RDI_RegCodeX64_dr1;}break;
|
||||
case REGS_RegCodeX64_dr2:{result = RDI_RegCodeX64_dr2;}break;
|
||||
case REGS_RegCodeX64_dr3:{result = RDI_RegCodeX64_dr3;}break;
|
||||
case REGS_RegCodeX64_dr4:{result = RDI_RegCodeX64_dr4;}break;
|
||||
case REGS_RegCodeX64_dr5:{result = RDI_RegCodeX64_dr5;}break;
|
||||
case REGS_RegCodeX64_dr6:{result = RDI_RegCodeX64_dr6;}break;
|
||||
case REGS_RegCodeX64_dr7:{result = RDI_RegCodeX64_dr7;}break;
|
||||
case REGS_RegCodeX64_fpr0:{result = RDI_RegCodeX64_fpr0;}break;
|
||||
case REGS_RegCodeX64_fpr1:{result = RDI_RegCodeX64_fpr1;}break;
|
||||
case REGS_RegCodeX64_fpr2:{result = RDI_RegCodeX64_fpr2;}break;
|
||||
case REGS_RegCodeX64_fpr3:{result = RDI_RegCodeX64_fpr3;}break;
|
||||
case REGS_RegCodeX64_fpr4:{result = RDI_RegCodeX64_fpr4;}break;
|
||||
case REGS_RegCodeX64_fpr5:{result = RDI_RegCodeX64_fpr5;}break;
|
||||
case REGS_RegCodeX64_fpr6:{result = RDI_RegCodeX64_fpr6;}break;
|
||||
case REGS_RegCodeX64_fpr7:{result = RDI_RegCodeX64_fpr7;}break;
|
||||
case REGS_RegCodeX64_st0:{result = RDI_RegCodeX64_st0;}break;
|
||||
case REGS_RegCodeX64_st1:{result = RDI_RegCodeX64_st1;}break;
|
||||
case REGS_RegCodeX64_st2:{result = RDI_RegCodeX64_st2;}break;
|
||||
case REGS_RegCodeX64_st3:{result = RDI_RegCodeX64_st3;}break;
|
||||
case REGS_RegCodeX64_st4:{result = RDI_RegCodeX64_st4;}break;
|
||||
case REGS_RegCodeX64_st5:{result = RDI_RegCodeX64_st5;}break;
|
||||
case REGS_RegCodeX64_st6:{result = RDI_RegCodeX64_st6;}break;
|
||||
case REGS_RegCodeX64_st7:{result = RDI_RegCodeX64_st7;}break;
|
||||
case REGS_RegCodeX64_fcw:{result = RDI_RegCodeX64_fcw;}break;
|
||||
case REGS_RegCodeX64_fsw:{result = RDI_RegCodeX64_fsw;}break;
|
||||
case REGS_RegCodeX64_ftw:{result = RDI_RegCodeX64_ftw;}break;
|
||||
case REGS_RegCodeX64_fop:{result = RDI_RegCodeX64_fop;}break;
|
||||
case REGS_RegCodeX64_fcs:{result = RDI_RegCodeX64_fcs;}break;
|
||||
case REGS_RegCodeX64_fds:{result = RDI_RegCodeX64_fds;}break;
|
||||
case REGS_RegCodeX64_fip:{result = RDI_RegCodeX64_fip;}break;
|
||||
case REGS_RegCodeX64_fdp:{result = RDI_RegCodeX64_fdp;}break;
|
||||
case REGS_RegCodeX64_mxcsr:{result = RDI_RegCodeX64_mxcsr;}break;
|
||||
case REGS_RegCodeX64_mxcsr_mask:{result = RDI_RegCodeX64_mxcsr_mask;}break;
|
||||
case REGS_RegCodeX64_ss:{result = RDI_RegCodeX64_ss;}break;
|
||||
case REGS_RegCodeX64_cs:{result = RDI_RegCodeX64_cs;}break;
|
||||
case REGS_RegCodeX64_ds:{result = RDI_RegCodeX64_ds;}break;
|
||||
case REGS_RegCodeX64_es:{result = RDI_RegCodeX64_es;}break;
|
||||
case REGS_RegCodeX64_fs:{result = RDI_RegCodeX64_fs;}break;
|
||||
case REGS_RegCodeX64_gs:{result = RDI_RegCodeX64_gs;}break;
|
||||
case REGS_RegCodeX64_ymm0:{result = RDI_RegCodeX64_ymm0;}break;
|
||||
case REGS_RegCodeX64_ymm1:{result = RDI_RegCodeX64_ymm1;}break;
|
||||
case REGS_RegCodeX64_ymm2:{result = RDI_RegCodeX64_ymm2;}break;
|
||||
case REGS_RegCodeX64_ymm3:{result = RDI_RegCodeX64_ymm3;}break;
|
||||
case REGS_RegCodeX64_ymm4:{result = RDI_RegCodeX64_ymm4;}break;
|
||||
case REGS_RegCodeX64_ymm5:{result = RDI_RegCodeX64_ymm5;}break;
|
||||
case REGS_RegCodeX64_ymm6:{result = RDI_RegCodeX64_ymm6;}break;
|
||||
case REGS_RegCodeX64_ymm7:{result = RDI_RegCodeX64_ymm7;}break;
|
||||
case REGS_RegCodeX64_ymm8:{result = RDI_RegCodeX64_ymm8;}break;
|
||||
case REGS_RegCodeX64_ymm9:{result = RDI_RegCodeX64_ymm9;}break;
|
||||
case REGS_RegCodeX64_ymm10:{result = RDI_RegCodeX64_ymm10;}break;
|
||||
case REGS_RegCodeX64_ymm11:{result = RDI_RegCodeX64_ymm11;}break;
|
||||
case REGS_RegCodeX64_ymm12:{result = RDI_RegCodeX64_ymm12;}break;
|
||||
case REGS_RegCodeX64_ymm13:{result = RDI_RegCodeX64_ymm13;}break;
|
||||
case REGS_RegCodeX64_ymm14:{result = RDI_RegCodeX64_ymm14;}break;
|
||||
case REGS_RegCodeX64_ymm15:{result = RDI_RegCodeX64_ymm15;}break;
|
||||
}
|
||||
}break;
|
||||
case Architecture_x86:
|
||||
{
|
||||
switch(code)
|
||||
{
|
||||
default:{}break;
|
||||
case REGS_RegCodeX86_eax:{result = RDI_RegCodeX86_eax;}break;
|
||||
case REGS_RegCodeX86_ecx:{result = RDI_RegCodeX86_ecx;}break;
|
||||
case REGS_RegCodeX86_edx:{result = RDI_RegCodeX86_edx;}break;
|
||||
case REGS_RegCodeX86_ebx:{result = RDI_RegCodeX86_ebx;}break;
|
||||
case REGS_RegCodeX86_esp:{result = RDI_RegCodeX86_esp;}break;
|
||||
case REGS_RegCodeX86_ebp:{result = RDI_RegCodeX86_ebp;}break;
|
||||
case REGS_RegCodeX86_esi:{result = RDI_RegCodeX86_esi;}break;
|
||||
case REGS_RegCodeX86_edi:{result = RDI_RegCodeX86_edi;}break;
|
||||
case REGS_RegCodeX86_fsbase:{result = RDI_RegCodeX86_fsbase;}break;
|
||||
case REGS_RegCodeX86_gsbase:{result = RDI_RegCodeX86_gsbase;}break;
|
||||
case REGS_RegCodeX86_eflags:{result = RDI_RegCodeX86_eflags;}break;
|
||||
case REGS_RegCodeX86_eip:{result = RDI_RegCodeX86_eip;}break;
|
||||
case REGS_RegCodeX86_dr0:{result = RDI_RegCodeX86_dr0;}break;
|
||||
case REGS_RegCodeX86_dr1:{result = RDI_RegCodeX86_dr1;}break;
|
||||
case REGS_RegCodeX86_dr2:{result = RDI_RegCodeX86_dr2;}break;
|
||||
case REGS_RegCodeX86_dr3:{result = RDI_RegCodeX86_dr3;}break;
|
||||
case REGS_RegCodeX86_dr4:{result = RDI_RegCodeX86_dr4;}break;
|
||||
case REGS_RegCodeX86_dr5:{result = RDI_RegCodeX86_dr5;}break;
|
||||
case REGS_RegCodeX86_dr6:{result = RDI_RegCodeX86_dr6;}break;
|
||||
case REGS_RegCodeX86_dr7:{result = RDI_RegCodeX86_dr7;}break;
|
||||
case REGS_RegCodeX86_fpr0:{result = RDI_RegCodeX86_fpr0;}break;
|
||||
case REGS_RegCodeX86_fpr1:{result = RDI_RegCodeX86_fpr1;}break;
|
||||
case REGS_RegCodeX86_fpr2:{result = RDI_RegCodeX86_fpr2;}break;
|
||||
case REGS_RegCodeX86_fpr3:{result = RDI_RegCodeX86_fpr3;}break;
|
||||
case REGS_RegCodeX86_fpr4:{result = RDI_RegCodeX86_fpr4;}break;
|
||||
case REGS_RegCodeX86_fpr5:{result = RDI_RegCodeX86_fpr5;}break;
|
||||
case REGS_RegCodeX86_fpr6:{result = RDI_RegCodeX86_fpr6;}break;
|
||||
case REGS_RegCodeX86_fpr7:{result = RDI_RegCodeX86_fpr7;}break;
|
||||
case REGS_RegCodeX86_st0:{result = RDI_RegCodeX86_st0;}break;
|
||||
case REGS_RegCodeX86_st1:{result = RDI_RegCodeX86_st1;}break;
|
||||
case REGS_RegCodeX86_st2:{result = RDI_RegCodeX86_st2;}break;
|
||||
case REGS_RegCodeX86_st3:{result = RDI_RegCodeX86_st3;}break;
|
||||
case REGS_RegCodeX86_st4:{result = RDI_RegCodeX86_st4;}break;
|
||||
case REGS_RegCodeX86_st5:{result = RDI_RegCodeX86_st5;}break;
|
||||
case REGS_RegCodeX86_st6:{result = RDI_RegCodeX86_st6;}break;
|
||||
case REGS_RegCodeX86_st7:{result = RDI_RegCodeX86_st7;}break;
|
||||
case REGS_RegCodeX86_fcw:{result = RDI_RegCodeX86_fcw;}break;
|
||||
case REGS_RegCodeX86_fsw:{result = RDI_RegCodeX86_fsw;}break;
|
||||
case REGS_RegCodeX86_ftw:{result = RDI_RegCodeX86_ftw;}break;
|
||||
case REGS_RegCodeX86_fop:{result = RDI_RegCodeX86_fop;}break;
|
||||
case REGS_RegCodeX86_fcs:{result = RDI_RegCodeX86_fcs;}break;
|
||||
case REGS_RegCodeX86_fds:{result = RDI_RegCodeX86_fds;}break;
|
||||
case REGS_RegCodeX86_fip:{result = RDI_RegCodeX86_fip;}break;
|
||||
case REGS_RegCodeX86_fdp:{result = RDI_RegCodeX86_fdp;}break;
|
||||
case REGS_RegCodeX86_mxcsr:{result = RDI_RegCodeX86_mxcsr;}break;
|
||||
case REGS_RegCodeX86_mxcsr_mask:{result = RDI_RegCodeX86_mxcsr_mask;}break;
|
||||
case REGS_RegCodeX86_ss:{result = RDI_RegCodeX86_ss;}break;
|
||||
case REGS_RegCodeX86_cs:{result = RDI_RegCodeX86_cs;}break;
|
||||
case REGS_RegCodeX86_ds:{result = RDI_RegCodeX86_ds;}break;
|
||||
case REGS_RegCodeX86_es:{result = RDI_RegCodeX86_es;}break;
|
||||
case REGS_RegCodeX86_fs:{result = RDI_RegCodeX86_fs;}break;
|
||||
case REGS_RegCodeX86_gs:{result = RDI_RegCodeX86_gs;}break;
|
||||
case REGS_RegCodeX86_ymm0:{result = RDI_RegCodeX86_ymm0;}break;
|
||||
case REGS_RegCodeX86_ymm1:{result = RDI_RegCodeX86_ymm1;}break;
|
||||
case REGS_RegCodeX86_ymm2:{result = RDI_RegCodeX86_ymm2;}break;
|
||||
case REGS_RegCodeX86_ymm3:{result = RDI_RegCodeX86_ymm3;}break;
|
||||
case REGS_RegCodeX86_ymm4:{result = RDI_RegCodeX86_ymm4;}break;
|
||||
case REGS_RegCodeX86_ymm5:{result = RDI_RegCodeX86_ymm5;}break;
|
||||
case REGS_RegCodeX86_ymm6:{result = RDI_RegCodeX86_ymm6;}break;
|
||||
case REGS_RegCodeX86_ymm7:{result = RDI_RegCodeX86_ymm7;}break;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
internal REGS_RegCode regs_reg_code_from_arch_rdi_code(Architecture arch, RDI_RegCode code)
|
||||
{
|
||||
REGS_RegCode result = 0;
|
||||
switch(arch)
|
||||
{
|
||||
default:{}break;
|
||||
case Architecture_x64:
|
||||
{
|
||||
switch(code)
|
||||
{
|
||||
default:{}break;
|
||||
case RDI_RegCodeX64_rax:{result = REGS_RegCodeX64_rax;}break;
|
||||
case RDI_RegCodeX64_rcx:{result = REGS_RegCodeX64_rcx;}break;
|
||||
case RDI_RegCodeX64_rdx:{result = REGS_RegCodeX64_rdx;}break;
|
||||
case RDI_RegCodeX64_rbx:{result = REGS_RegCodeX64_rbx;}break;
|
||||
case RDI_RegCodeX64_rsp:{result = REGS_RegCodeX64_rsp;}break;
|
||||
case RDI_RegCodeX64_rbp:{result = REGS_RegCodeX64_rbp;}break;
|
||||
case RDI_RegCodeX64_rsi:{result = REGS_RegCodeX64_rsi;}break;
|
||||
case RDI_RegCodeX64_rdi:{result = REGS_RegCodeX64_rdi;}break;
|
||||
case RDI_RegCodeX64_r8:{result = REGS_RegCodeX64_r8;}break;
|
||||
case RDI_RegCodeX64_r9:{result = REGS_RegCodeX64_r9;}break;
|
||||
case RDI_RegCodeX64_r10:{result = REGS_RegCodeX64_r10;}break;
|
||||
case RDI_RegCodeX64_r11:{result = REGS_RegCodeX64_r11;}break;
|
||||
case RDI_RegCodeX64_r12:{result = REGS_RegCodeX64_r12;}break;
|
||||
case RDI_RegCodeX64_r13:{result = REGS_RegCodeX64_r13;}break;
|
||||
case RDI_RegCodeX64_r14:{result = REGS_RegCodeX64_r14;}break;
|
||||
case RDI_RegCodeX64_r15:{result = REGS_RegCodeX64_r15;}break;
|
||||
case RDI_RegCodeX64_fsbase:{result = REGS_RegCodeX64_fsbase;}break;
|
||||
case RDI_RegCodeX64_gsbase:{result = REGS_RegCodeX64_gsbase;}break;
|
||||
case RDI_RegCodeX64_rip:{result = REGS_RegCodeX64_rip;}break;
|
||||
case RDI_RegCodeX64_rflags:{result = REGS_RegCodeX64_rflags;}break;
|
||||
case RDI_RegCodeX64_dr0:{result = REGS_RegCodeX64_dr0;}break;
|
||||
case RDI_RegCodeX64_dr1:{result = REGS_RegCodeX64_dr1;}break;
|
||||
case RDI_RegCodeX64_dr2:{result = REGS_RegCodeX64_dr2;}break;
|
||||
case RDI_RegCodeX64_dr3:{result = REGS_RegCodeX64_dr3;}break;
|
||||
case RDI_RegCodeX64_dr4:{result = REGS_RegCodeX64_dr4;}break;
|
||||
case RDI_RegCodeX64_dr5:{result = REGS_RegCodeX64_dr5;}break;
|
||||
case RDI_RegCodeX64_dr6:{result = REGS_RegCodeX64_dr6;}break;
|
||||
case RDI_RegCodeX64_dr7:{result = REGS_RegCodeX64_dr7;}break;
|
||||
case RDI_RegCodeX64_fpr0:{result = REGS_RegCodeX64_fpr0;}break;
|
||||
case RDI_RegCodeX64_fpr1:{result = REGS_RegCodeX64_fpr1;}break;
|
||||
case RDI_RegCodeX64_fpr2:{result = REGS_RegCodeX64_fpr2;}break;
|
||||
case RDI_RegCodeX64_fpr3:{result = REGS_RegCodeX64_fpr3;}break;
|
||||
case RDI_RegCodeX64_fpr4:{result = REGS_RegCodeX64_fpr4;}break;
|
||||
case RDI_RegCodeX64_fpr5:{result = REGS_RegCodeX64_fpr5;}break;
|
||||
case RDI_RegCodeX64_fpr6:{result = REGS_RegCodeX64_fpr6;}break;
|
||||
case RDI_RegCodeX64_fpr7:{result = REGS_RegCodeX64_fpr7;}break;
|
||||
case RDI_RegCodeX64_st0:{result = REGS_RegCodeX64_st0;}break;
|
||||
case RDI_RegCodeX64_st1:{result = REGS_RegCodeX64_st1;}break;
|
||||
case RDI_RegCodeX64_st2:{result = REGS_RegCodeX64_st2;}break;
|
||||
case RDI_RegCodeX64_st3:{result = REGS_RegCodeX64_st3;}break;
|
||||
case RDI_RegCodeX64_st4:{result = REGS_RegCodeX64_st4;}break;
|
||||
case RDI_RegCodeX64_st5:{result = REGS_RegCodeX64_st5;}break;
|
||||
case RDI_RegCodeX64_st6:{result = REGS_RegCodeX64_st6;}break;
|
||||
case RDI_RegCodeX64_st7:{result = REGS_RegCodeX64_st7;}break;
|
||||
case RDI_RegCodeX64_fcw:{result = REGS_RegCodeX64_fcw;}break;
|
||||
case RDI_RegCodeX64_fsw:{result = REGS_RegCodeX64_fsw;}break;
|
||||
case RDI_RegCodeX64_ftw:{result = REGS_RegCodeX64_ftw;}break;
|
||||
case RDI_RegCodeX64_fop:{result = REGS_RegCodeX64_fop;}break;
|
||||
case RDI_RegCodeX64_fcs:{result = REGS_RegCodeX64_fcs;}break;
|
||||
case RDI_RegCodeX64_fds:{result = REGS_RegCodeX64_fds;}break;
|
||||
case RDI_RegCodeX64_fip:{result = REGS_RegCodeX64_fip;}break;
|
||||
case RDI_RegCodeX64_fdp:{result = REGS_RegCodeX64_fdp;}break;
|
||||
case RDI_RegCodeX64_mxcsr:{result = REGS_RegCodeX64_mxcsr;}break;
|
||||
case RDI_RegCodeX64_mxcsr_mask:{result = REGS_RegCodeX64_mxcsr_mask;}break;
|
||||
case RDI_RegCodeX64_ss:{result = REGS_RegCodeX64_ss;}break;
|
||||
case RDI_RegCodeX64_cs:{result = REGS_RegCodeX64_cs;}break;
|
||||
case RDI_RegCodeX64_ds:{result = REGS_RegCodeX64_ds;}break;
|
||||
case RDI_RegCodeX64_es:{result = REGS_RegCodeX64_es;}break;
|
||||
case RDI_RegCodeX64_fs:{result = REGS_RegCodeX64_fs;}break;
|
||||
case RDI_RegCodeX64_gs:{result = REGS_RegCodeX64_gs;}break;
|
||||
case RDI_RegCodeX64_ymm0:{result = REGS_RegCodeX64_ymm0;}break;
|
||||
case RDI_RegCodeX64_ymm1:{result = REGS_RegCodeX64_ymm1;}break;
|
||||
case RDI_RegCodeX64_ymm2:{result = REGS_RegCodeX64_ymm2;}break;
|
||||
case RDI_RegCodeX64_ymm3:{result = REGS_RegCodeX64_ymm3;}break;
|
||||
case RDI_RegCodeX64_ymm4:{result = REGS_RegCodeX64_ymm4;}break;
|
||||
case RDI_RegCodeX64_ymm5:{result = REGS_RegCodeX64_ymm5;}break;
|
||||
case RDI_RegCodeX64_ymm6:{result = REGS_RegCodeX64_ymm6;}break;
|
||||
case RDI_RegCodeX64_ymm7:{result = REGS_RegCodeX64_ymm7;}break;
|
||||
case RDI_RegCodeX64_ymm8:{result = REGS_RegCodeX64_ymm8;}break;
|
||||
case RDI_RegCodeX64_ymm9:{result = REGS_RegCodeX64_ymm9;}break;
|
||||
case RDI_RegCodeX64_ymm10:{result = REGS_RegCodeX64_ymm10;}break;
|
||||
case RDI_RegCodeX64_ymm11:{result = REGS_RegCodeX64_ymm11;}break;
|
||||
case RDI_RegCodeX64_ymm12:{result = REGS_RegCodeX64_ymm12;}break;
|
||||
case RDI_RegCodeX64_ymm13:{result = REGS_RegCodeX64_ymm13;}break;
|
||||
case RDI_RegCodeX64_ymm14:{result = REGS_RegCodeX64_ymm14;}break;
|
||||
case RDI_RegCodeX64_ymm15:{result = REGS_RegCodeX64_ymm15;}break;
|
||||
}
|
||||
}break;
|
||||
case Architecture_x86:
|
||||
{
|
||||
switch(code)
|
||||
{
|
||||
default:{}break;
|
||||
case RDI_RegCodeX86_eax:{result = REGS_RegCodeX86_eax;}break;
|
||||
case RDI_RegCodeX86_ecx:{result = REGS_RegCodeX86_ecx;}break;
|
||||
case RDI_RegCodeX86_edx:{result = REGS_RegCodeX86_edx;}break;
|
||||
case RDI_RegCodeX86_ebx:{result = REGS_RegCodeX86_ebx;}break;
|
||||
case RDI_RegCodeX86_esp:{result = REGS_RegCodeX86_esp;}break;
|
||||
case RDI_RegCodeX86_ebp:{result = REGS_RegCodeX86_ebp;}break;
|
||||
case RDI_RegCodeX86_esi:{result = REGS_RegCodeX86_esi;}break;
|
||||
case RDI_RegCodeX86_edi:{result = REGS_RegCodeX86_edi;}break;
|
||||
case RDI_RegCodeX86_fsbase:{result = REGS_RegCodeX86_fsbase;}break;
|
||||
case RDI_RegCodeX86_gsbase:{result = REGS_RegCodeX86_gsbase;}break;
|
||||
case RDI_RegCodeX86_eflags:{result = REGS_RegCodeX86_eflags;}break;
|
||||
case RDI_RegCodeX86_eip:{result = REGS_RegCodeX86_eip;}break;
|
||||
case RDI_RegCodeX86_dr0:{result = REGS_RegCodeX86_dr0;}break;
|
||||
case RDI_RegCodeX86_dr1:{result = REGS_RegCodeX86_dr1;}break;
|
||||
case RDI_RegCodeX86_dr2:{result = REGS_RegCodeX86_dr2;}break;
|
||||
case RDI_RegCodeX86_dr3:{result = REGS_RegCodeX86_dr3;}break;
|
||||
case RDI_RegCodeX86_dr4:{result = REGS_RegCodeX86_dr4;}break;
|
||||
case RDI_RegCodeX86_dr5:{result = REGS_RegCodeX86_dr5;}break;
|
||||
case RDI_RegCodeX86_dr6:{result = REGS_RegCodeX86_dr6;}break;
|
||||
case RDI_RegCodeX86_dr7:{result = REGS_RegCodeX86_dr7;}break;
|
||||
case RDI_RegCodeX86_fpr0:{result = REGS_RegCodeX86_fpr0;}break;
|
||||
case RDI_RegCodeX86_fpr1:{result = REGS_RegCodeX86_fpr1;}break;
|
||||
case RDI_RegCodeX86_fpr2:{result = REGS_RegCodeX86_fpr2;}break;
|
||||
case RDI_RegCodeX86_fpr3:{result = REGS_RegCodeX86_fpr3;}break;
|
||||
case RDI_RegCodeX86_fpr4:{result = REGS_RegCodeX86_fpr4;}break;
|
||||
case RDI_RegCodeX86_fpr5:{result = REGS_RegCodeX86_fpr5;}break;
|
||||
case RDI_RegCodeX86_fpr6:{result = REGS_RegCodeX86_fpr6;}break;
|
||||
case RDI_RegCodeX86_fpr7:{result = REGS_RegCodeX86_fpr7;}break;
|
||||
case RDI_RegCodeX86_st0:{result = REGS_RegCodeX86_st0;}break;
|
||||
case RDI_RegCodeX86_st1:{result = REGS_RegCodeX86_st1;}break;
|
||||
case RDI_RegCodeX86_st2:{result = REGS_RegCodeX86_st2;}break;
|
||||
case RDI_RegCodeX86_st3:{result = REGS_RegCodeX86_st3;}break;
|
||||
case RDI_RegCodeX86_st4:{result = REGS_RegCodeX86_st4;}break;
|
||||
case RDI_RegCodeX86_st5:{result = REGS_RegCodeX86_st5;}break;
|
||||
case RDI_RegCodeX86_st6:{result = REGS_RegCodeX86_st6;}break;
|
||||
case RDI_RegCodeX86_st7:{result = REGS_RegCodeX86_st7;}break;
|
||||
case RDI_RegCodeX86_fcw:{result = REGS_RegCodeX86_fcw;}break;
|
||||
case RDI_RegCodeX86_fsw:{result = REGS_RegCodeX86_fsw;}break;
|
||||
case RDI_RegCodeX86_ftw:{result = REGS_RegCodeX86_ftw;}break;
|
||||
case RDI_RegCodeX86_fop:{result = REGS_RegCodeX86_fop;}break;
|
||||
case RDI_RegCodeX86_fcs:{result = REGS_RegCodeX86_fcs;}break;
|
||||
case RDI_RegCodeX86_fds:{result = REGS_RegCodeX86_fds;}break;
|
||||
case RDI_RegCodeX86_fip:{result = REGS_RegCodeX86_fip;}break;
|
||||
case RDI_RegCodeX86_fdp:{result = REGS_RegCodeX86_fdp;}break;
|
||||
case RDI_RegCodeX86_mxcsr:{result = REGS_RegCodeX86_mxcsr;}break;
|
||||
case RDI_RegCodeX86_mxcsr_mask:{result = REGS_RegCodeX86_mxcsr_mask;}break;
|
||||
case RDI_RegCodeX86_ss:{result = REGS_RegCodeX86_ss;}break;
|
||||
case RDI_RegCodeX86_cs:{result = REGS_RegCodeX86_cs;}break;
|
||||
case RDI_RegCodeX86_ds:{result = REGS_RegCodeX86_ds;}break;
|
||||
case RDI_RegCodeX86_es:{result = REGS_RegCodeX86_es;}break;
|
||||
case RDI_RegCodeX86_fs:{result = REGS_RegCodeX86_fs;}break;
|
||||
case RDI_RegCodeX86_gs:{result = REGS_RegCodeX86_gs;}break;
|
||||
case RDI_RegCodeX86_ymm0:{result = REGS_RegCodeX86_ymm0;}break;
|
||||
case RDI_RegCodeX86_ymm1:{result = REGS_RegCodeX86_ymm1;}break;
|
||||
case RDI_RegCodeX86_ymm2:{result = REGS_RegCodeX86_ymm2;}break;
|
||||
case RDI_RegCodeX86_ymm3:{result = REGS_RegCodeX86_ymm3;}break;
|
||||
case RDI_RegCodeX86_ymm4:{result = REGS_RegCodeX86_ymm4;}break;
|
||||
case RDI_RegCodeX86_ymm5:{result = REGS_RegCodeX86_ymm5;}break;
|
||||
case RDI_RegCodeX86_ymm6:{result = REGS_RegCodeX86_ymm6;}break;
|
||||
case RDI_RegCodeX86_ymm7:{result = REGS_RegCodeX86_ymm7;}break;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
internal RDI_RegCode regs_rdi_code_from_arch_reg_code(Architecture arch, REGS_RegCode code)
|
||||
{
|
||||
RDI_RegCode result = 0;
|
||||
switch(arch)
|
||||
{
|
||||
default:{}break;
|
||||
case Architecture_x64:
|
||||
{
|
||||
switch(code)
|
||||
{
|
||||
default:{}break;
|
||||
case REGS_RegCodeX64_rax:{result = RDI_RegCodeX64_rax;}break;
|
||||
case REGS_RegCodeX64_rcx:{result = RDI_RegCodeX64_rcx;}break;
|
||||
case REGS_RegCodeX64_rdx:{result = RDI_RegCodeX64_rdx;}break;
|
||||
case REGS_RegCodeX64_rbx:{result = RDI_RegCodeX64_rbx;}break;
|
||||
case REGS_RegCodeX64_rsp:{result = RDI_RegCodeX64_rsp;}break;
|
||||
case REGS_RegCodeX64_rbp:{result = RDI_RegCodeX64_rbp;}break;
|
||||
case REGS_RegCodeX64_rsi:{result = RDI_RegCodeX64_rsi;}break;
|
||||
case REGS_RegCodeX64_rdi:{result = RDI_RegCodeX64_rdi;}break;
|
||||
case REGS_RegCodeX64_r8:{result = RDI_RegCodeX64_r8;}break;
|
||||
case REGS_RegCodeX64_r9:{result = RDI_RegCodeX64_r9;}break;
|
||||
case REGS_RegCodeX64_r10:{result = RDI_RegCodeX64_r10;}break;
|
||||
case REGS_RegCodeX64_r11:{result = RDI_RegCodeX64_r11;}break;
|
||||
case REGS_RegCodeX64_r12:{result = RDI_RegCodeX64_r12;}break;
|
||||
case REGS_RegCodeX64_r13:{result = RDI_RegCodeX64_r13;}break;
|
||||
case REGS_RegCodeX64_r14:{result = RDI_RegCodeX64_r14;}break;
|
||||
case REGS_RegCodeX64_r15:{result = RDI_RegCodeX64_r15;}break;
|
||||
case REGS_RegCodeX64_fsbase:{result = RDI_RegCodeX64_fsbase;}break;
|
||||
case REGS_RegCodeX64_gsbase:{result = RDI_RegCodeX64_gsbase;}break;
|
||||
case REGS_RegCodeX64_rip:{result = RDI_RegCodeX64_rip;}break;
|
||||
case REGS_RegCodeX64_rflags:{result = RDI_RegCodeX64_rflags;}break;
|
||||
case REGS_RegCodeX64_dr0:{result = RDI_RegCodeX64_dr0;}break;
|
||||
case REGS_RegCodeX64_dr1:{result = RDI_RegCodeX64_dr1;}break;
|
||||
case REGS_RegCodeX64_dr2:{result = RDI_RegCodeX64_dr2;}break;
|
||||
case REGS_RegCodeX64_dr3:{result = RDI_RegCodeX64_dr3;}break;
|
||||
case REGS_RegCodeX64_dr4:{result = RDI_RegCodeX64_dr4;}break;
|
||||
case REGS_RegCodeX64_dr5:{result = RDI_RegCodeX64_dr5;}break;
|
||||
case REGS_RegCodeX64_dr6:{result = RDI_RegCodeX64_dr6;}break;
|
||||
case REGS_RegCodeX64_dr7:{result = RDI_RegCodeX64_dr7;}break;
|
||||
case REGS_RegCodeX64_fpr0:{result = RDI_RegCodeX64_fpr0;}break;
|
||||
case REGS_RegCodeX64_fpr1:{result = RDI_RegCodeX64_fpr1;}break;
|
||||
case REGS_RegCodeX64_fpr2:{result = RDI_RegCodeX64_fpr2;}break;
|
||||
case REGS_RegCodeX64_fpr3:{result = RDI_RegCodeX64_fpr3;}break;
|
||||
case REGS_RegCodeX64_fpr4:{result = RDI_RegCodeX64_fpr4;}break;
|
||||
case REGS_RegCodeX64_fpr5:{result = RDI_RegCodeX64_fpr5;}break;
|
||||
case REGS_RegCodeX64_fpr6:{result = RDI_RegCodeX64_fpr6;}break;
|
||||
case REGS_RegCodeX64_fpr7:{result = RDI_RegCodeX64_fpr7;}break;
|
||||
case REGS_RegCodeX64_st0:{result = RDI_RegCodeX64_st0;}break;
|
||||
case REGS_RegCodeX64_st1:{result = RDI_RegCodeX64_st1;}break;
|
||||
case REGS_RegCodeX64_st2:{result = RDI_RegCodeX64_st2;}break;
|
||||
case REGS_RegCodeX64_st3:{result = RDI_RegCodeX64_st3;}break;
|
||||
case REGS_RegCodeX64_st4:{result = RDI_RegCodeX64_st4;}break;
|
||||
case REGS_RegCodeX64_st5:{result = RDI_RegCodeX64_st5;}break;
|
||||
case REGS_RegCodeX64_st6:{result = RDI_RegCodeX64_st6;}break;
|
||||
case REGS_RegCodeX64_st7:{result = RDI_RegCodeX64_st7;}break;
|
||||
case REGS_RegCodeX64_fcw:{result = RDI_RegCodeX64_fcw;}break;
|
||||
case REGS_RegCodeX64_fsw:{result = RDI_RegCodeX64_fsw;}break;
|
||||
case REGS_RegCodeX64_ftw:{result = RDI_RegCodeX64_ftw;}break;
|
||||
case REGS_RegCodeX64_fop:{result = RDI_RegCodeX64_fop;}break;
|
||||
case REGS_RegCodeX64_fcs:{result = RDI_RegCodeX64_fcs;}break;
|
||||
case REGS_RegCodeX64_fds:{result = RDI_RegCodeX64_fds;}break;
|
||||
case REGS_RegCodeX64_fip:{result = RDI_RegCodeX64_fip;}break;
|
||||
case REGS_RegCodeX64_fdp:{result = RDI_RegCodeX64_fdp;}break;
|
||||
case REGS_RegCodeX64_mxcsr:{result = RDI_RegCodeX64_mxcsr;}break;
|
||||
case REGS_RegCodeX64_mxcsr_mask:{result = RDI_RegCodeX64_mxcsr_mask;}break;
|
||||
case REGS_RegCodeX64_ss:{result = RDI_RegCodeX64_ss;}break;
|
||||
case REGS_RegCodeX64_cs:{result = RDI_RegCodeX64_cs;}break;
|
||||
case REGS_RegCodeX64_ds:{result = RDI_RegCodeX64_ds;}break;
|
||||
case REGS_RegCodeX64_es:{result = RDI_RegCodeX64_es;}break;
|
||||
case REGS_RegCodeX64_fs:{result = RDI_RegCodeX64_fs;}break;
|
||||
case REGS_RegCodeX64_gs:{result = RDI_RegCodeX64_gs;}break;
|
||||
case REGS_RegCodeX64_ymm0:{result = RDI_RegCodeX64_ymm0;}break;
|
||||
case REGS_RegCodeX64_ymm1:{result = RDI_RegCodeX64_ymm1;}break;
|
||||
case REGS_RegCodeX64_ymm2:{result = RDI_RegCodeX64_ymm2;}break;
|
||||
case REGS_RegCodeX64_ymm3:{result = RDI_RegCodeX64_ymm3;}break;
|
||||
case REGS_RegCodeX64_ymm4:{result = RDI_RegCodeX64_ymm4;}break;
|
||||
case REGS_RegCodeX64_ymm5:{result = RDI_RegCodeX64_ymm5;}break;
|
||||
case REGS_RegCodeX64_ymm6:{result = RDI_RegCodeX64_ymm6;}break;
|
||||
case REGS_RegCodeX64_ymm7:{result = RDI_RegCodeX64_ymm7;}break;
|
||||
case REGS_RegCodeX64_ymm8:{result = RDI_RegCodeX64_ymm8;}break;
|
||||
case REGS_RegCodeX64_ymm9:{result = RDI_RegCodeX64_ymm9;}break;
|
||||
case REGS_RegCodeX64_ymm10:{result = RDI_RegCodeX64_ymm10;}break;
|
||||
case REGS_RegCodeX64_ymm11:{result = RDI_RegCodeX64_ymm11;}break;
|
||||
case REGS_RegCodeX64_ymm12:{result = RDI_RegCodeX64_ymm12;}break;
|
||||
case REGS_RegCodeX64_ymm13:{result = RDI_RegCodeX64_ymm13;}break;
|
||||
case REGS_RegCodeX64_ymm14:{result = RDI_RegCodeX64_ymm14;}break;
|
||||
case REGS_RegCodeX64_ymm15:{result = RDI_RegCodeX64_ymm15;}break;
|
||||
}
|
||||
}break;
|
||||
case Architecture_x86:
|
||||
{
|
||||
switch(code)
|
||||
{
|
||||
default:{}break;
|
||||
case REGS_RegCodeX86_eax:{result = RDI_RegCodeX86_eax;}break;
|
||||
case REGS_RegCodeX86_ecx:{result = RDI_RegCodeX86_ecx;}break;
|
||||
case REGS_RegCodeX86_edx:{result = RDI_RegCodeX86_edx;}break;
|
||||
case REGS_RegCodeX86_ebx:{result = RDI_RegCodeX86_ebx;}break;
|
||||
case REGS_RegCodeX86_esp:{result = RDI_RegCodeX86_esp;}break;
|
||||
case REGS_RegCodeX86_ebp:{result = RDI_RegCodeX86_ebp;}break;
|
||||
case REGS_RegCodeX86_esi:{result = RDI_RegCodeX86_esi;}break;
|
||||
case REGS_RegCodeX86_edi:{result = RDI_RegCodeX86_edi;}break;
|
||||
case REGS_RegCodeX86_fsbase:{result = RDI_RegCodeX86_fsbase;}break;
|
||||
case REGS_RegCodeX86_gsbase:{result = RDI_RegCodeX86_gsbase;}break;
|
||||
case REGS_RegCodeX86_eflags:{result = RDI_RegCodeX86_eflags;}break;
|
||||
case REGS_RegCodeX86_eip:{result = RDI_RegCodeX86_eip;}break;
|
||||
case REGS_RegCodeX86_dr0:{result = RDI_RegCodeX86_dr0;}break;
|
||||
case REGS_RegCodeX86_dr1:{result = RDI_RegCodeX86_dr1;}break;
|
||||
case REGS_RegCodeX86_dr2:{result = RDI_RegCodeX86_dr2;}break;
|
||||
case REGS_RegCodeX86_dr3:{result = RDI_RegCodeX86_dr3;}break;
|
||||
case REGS_RegCodeX86_dr4:{result = RDI_RegCodeX86_dr4;}break;
|
||||
case REGS_RegCodeX86_dr5:{result = RDI_RegCodeX86_dr5;}break;
|
||||
case REGS_RegCodeX86_dr6:{result = RDI_RegCodeX86_dr6;}break;
|
||||
case REGS_RegCodeX86_dr7:{result = RDI_RegCodeX86_dr7;}break;
|
||||
case REGS_RegCodeX86_fpr0:{result = RDI_RegCodeX86_fpr0;}break;
|
||||
case REGS_RegCodeX86_fpr1:{result = RDI_RegCodeX86_fpr1;}break;
|
||||
case REGS_RegCodeX86_fpr2:{result = RDI_RegCodeX86_fpr2;}break;
|
||||
case REGS_RegCodeX86_fpr3:{result = RDI_RegCodeX86_fpr3;}break;
|
||||
case REGS_RegCodeX86_fpr4:{result = RDI_RegCodeX86_fpr4;}break;
|
||||
case REGS_RegCodeX86_fpr5:{result = RDI_RegCodeX86_fpr5;}break;
|
||||
case REGS_RegCodeX86_fpr6:{result = RDI_RegCodeX86_fpr6;}break;
|
||||
case REGS_RegCodeX86_fpr7:{result = RDI_RegCodeX86_fpr7;}break;
|
||||
case REGS_RegCodeX86_st0:{result = RDI_RegCodeX86_st0;}break;
|
||||
case REGS_RegCodeX86_st1:{result = RDI_RegCodeX86_st1;}break;
|
||||
case REGS_RegCodeX86_st2:{result = RDI_RegCodeX86_st2;}break;
|
||||
case REGS_RegCodeX86_st3:{result = RDI_RegCodeX86_st3;}break;
|
||||
case REGS_RegCodeX86_st4:{result = RDI_RegCodeX86_st4;}break;
|
||||
case REGS_RegCodeX86_st5:{result = RDI_RegCodeX86_st5;}break;
|
||||
case REGS_RegCodeX86_st6:{result = RDI_RegCodeX86_st6;}break;
|
||||
case REGS_RegCodeX86_st7:{result = RDI_RegCodeX86_st7;}break;
|
||||
case REGS_RegCodeX86_fcw:{result = RDI_RegCodeX86_fcw;}break;
|
||||
case REGS_RegCodeX86_fsw:{result = RDI_RegCodeX86_fsw;}break;
|
||||
case REGS_RegCodeX86_ftw:{result = RDI_RegCodeX86_ftw;}break;
|
||||
case REGS_RegCodeX86_fop:{result = RDI_RegCodeX86_fop;}break;
|
||||
case REGS_RegCodeX86_fcs:{result = RDI_RegCodeX86_fcs;}break;
|
||||
case REGS_RegCodeX86_fds:{result = RDI_RegCodeX86_fds;}break;
|
||||
case REGS_RegCodeX86_fip:{result = RDI_RegCodeX86_fip;}break;
|
||||
case REGS_RegCodeX86_fdp:{result = RDI_RegCodeX86_fdp;}break;
|
||||
case REGS_RegCodeX86_mxcsr:{result = RDI_RegCodeX86_mxcsr;}break;
|
||||
case REGS_RegCodeX86_mxcsr_mask:{result = RDI_RegCodeX86_mxcsr_mask;}break;
|
||||
case REGS_RegCodeX86_ss:{result = RDI_RegCodeX86_ss;}break;
|
||||
case REGS_RegCodeX86_cs:{result = RDI_RegCodeX86_cs;}break;
|
||||
case REGS_RegCodeX86_ds:{result = RDI_RegCodeX86_ds;}break;
|
||||
case REGS_RegCodeX86_es:{result = RDI_RegCodeX86_es;}break;
|
||||
case REGS_RegCodeX86_fs:{result = RDI_RegCodeX86_fs;}break;
|
||||
case REGS_RegCodeX86_gs:{result = RDI_RegCodeX86_gs;}break;
|
||||
case REGS_RegCodeX86_ymm0:{result = RDI_RegCodeX86_ymm0;}break;
|
||||
case REGS_RegCodeX86_ymm1:{result = RDI_RegCodeX86_ymm1;}break;
|
||||
case REGS_RegCodeX86_ymm2:{result = RDI_RegCodeX86_ymm2;}break;
|
||||
case REGS_RegCodeX86_ymm3:{result = RDI_RegCodeX86_ymm3;}break;
|
||||
case REGS_RegCodeX86_ymm4:{result = RDI_RegCodeX86_ymm4;}break;
|
||||
case REGS_RegCodeX86_ymm5:{result = RDI_RegCodeX86_ymm5;}break;
|
||||
case REGS_RegCodeX86_ymm6:{result = RDI_RegCodeX86_ymm6;}break;
|
||||
case REGS_RegCodeX86_ymm7:{result = RDI_RegCodeX86_ymm7;}break;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
internal REGS_RegCode regs_reg_code_from_arch_rdi_code(Architecture arch, RDI_RegCode code)
|
||||
{
|
||||
REGS_RegCode result = 0;
|
||||
switch(arch)
|
||||
{
|
||||
default:{}break;
|
||||
case Architecture_x64:
|
||||
{
|
||||
switch(code)
|
||||
{
|
||||
default:{}break;
|
||||
case RDI_RegCodeX64_rax:{result = REGS_RegCodeX64_rax;}break;
|
||||
case RDI_RegCodeX64_rcx:{result = REGS_RegCodeX64_rcx;}break;
|
||||
case RDI_RegCodeX64_rdx:{result = REGS_RegCodeX64_rdx;}break;
|
||||
case RDI_RegCodeX64_rbx:{result = REGS_RegCodeX64_rbx;}break;
|
||||
case RDI_RegCodeX64_rsp:{result = REGS_RegCodeX64_rsp;}break;
|
||||
case RDI_RegCodeX64_rbp:{result = REGS_RegCodeX64_rbp;}break;
|
||||
case RDI_RegCodeX64_rsi:{result = REGS_RegCodeX64_rsi;}break;
|
||||
case RDI_RegCodeX64_rdi:{result = REGS_RegCodeX64_rdi;}break;
|
||||
case RDI_RegCodeX64_r8:{result = REGS_RegCodeX64_r8;}break;
|
||||
case RDI_RegCodeX64_r9:{result = REGS_RegCodeX64_r9;}break;
|
||||
case RDI_RegCodeX64_r10:{result = REGS_RegCodeX64_r10;}break;
|
||||
case RDI_RegCodeX64_r11:{result = REGS_RegCodeX64_r11;}break;
|
||||
case RDI_RegCodeX64_r12:{result = REGS_RegCodeX64_r12;}break;
|
||||
case RDI_RegCodeX64_r13:{result = REGS_RegCodeX64_r13;}break;
|
||||
case RDI_RegCodeX64_r14:{result = REGS_RegCodeX64_r14;}break;
|
||||
case RDI_RegCodeX64_r15:{result = REGS_RegCodeX64_r15;}break;
|
||||
case RDI_RegCodeX64_fsbase:{result = REGS_RegCodeX64_fsbase;}break;
|
||||
case RDI_RegCodeX64_gsbase:{result = REGS_RegCodeX64_gsbase;}break;
|
||||
case RDI_RegCodeX64_rip:{result = REGS_RegCodeX64_rip;}break;
|
||||
case RDI_RegCodeX64_rflags:{result = REGS_RegCodeX64_rflags;}break;
|
||||
case RDI_RegCodeX64_dr0:{result = REGS_RegCodeX64_dr0;}break;
|
||||
case RDI_RegCodeX64_dr1:{result = REGS_RegCodeX64_dr1;}break;
|
||||
case RDI_RegCodeX64_dr2:{result = REGS_RegCodeX64_dr2;}break;
|
||||
case RDI_RegCodeX64_dr3:{result = REGS_RegCodeX64_dr3;}break;
|
||||
case RDI_RegCodeX64_dr4:{result = REGS_RegCodeX64_dr4;}break;
|
||||
case RDI_RegCodeX64_dr5:{result = REGS_RegCodeX64_dr5;}break;
|
||||
case RDI_RegCodeX64_dr6:{result = REGS_RegCodeX64_dr6;}break;
|
||||
case RDI_RegCodeX64_dr7:{result = REGS_RegCodeX64_dr7;}break;
|
||||
case RDI_RegCodeX64_fpr0:{result = REGS_RegCodeX64_fpr0;}break;
|
||||
case RDI_RegCodeX64_fpr1:{result = REGS_RegCodeX64_fpr1;}break;
|
||||
case RDI_RegCodeX64_fpr2:{result = REGS_RegCodeX64_fpr2;}break;
|
||||
case RDI_RegCodeX64_fpr3:{result = REGS_RegCodeX64_fpr3;}break;
|
||||
case RDI_RegCodeX64_fpr4:{result = REGS_RegCodeX64_fpr4;}break;
|
||||
case RDI_RegCodeX64_fpr5:{result = REGS_RegCodeX64_fpr5;}break;
|
||||
case RDI_RegCodeX64_fpr6:{result = REGS_RegCodeX64_fpr6;}break;
|
||||
case RDI_RegCodeX64_fpr7:{result = REGS_RegCodeX64_fpr7;}break;
|
||||
case RDI_RegCodeX64_st0:{result = REGS_RegCodeX64_st0;}break;
|
||||
case RDI_RegCodeX64_st1:{result = REGS_RegCodeX64_st1;}break;
|
||||
case RDI_RegCodeX64_st2:{result = REGS_RegCodeX64_st2;}break;
|
||||
case RDI_RegCodeX64_st3:{result = REGS_RegCodeX64_st3;}break;
|
||||
case RDI_RegCodeX64_st4:{result = REGS_RegCodeX64_st4;}break;
|
||||
case RDI_RegCodeX64_st5:{result = REGS_RegCodeX64_st5;}break;
|
||||
case RDI_RegCodeX64_st6:{result = REGS_RegCodeX64_st6;}break;
|
||||
case RDI_RegCodeX64_st7:{result = REGS_RegCodeX64_st7;}break;
|
||||
case RDI_RegCodeX64_fcw:{result = REGS_RegCodeX64_fcw;}break;
|
||||
case RDI_RegCodeX64_fsw:{result = REGS_RegCodeX64_fsw;}break;
|
||||
case RDI_RegCodeX64_ftw:{result = REGS_RegCodeX64_ftw;}break;
|
||||
case RDI_RegCodeX64_fop:{result = REGS_RegCodeX64_fop;}break;
|
||||
case RDI_RegCodeX64_fcs:{result = REGS_RegCodeX64_fcs;}break;
|
||||
case RDI_RegCodeX64_fds:{result = REGS_RegCodeX64_fds;}break;
|
||||
case RDI_RegCodeX64_fip:{result = REGS_RegCodeX64_fip;}break;
|
||||
case RDI_RegCodeX64_fdp:{result = REGS_RegCodeX64_fdp;}break;
|
||||
case RDI_RegCodeX64_mxcsr:{result = REGS_RegCodeX64_mxcsr;}break;
|
||||
case RDI_RegCodeX64_mxcsr_mask:{result = REGS_RegCodeX64_mxcsr_mask;}break;
|
||||
case RDI_RegCodeX64_ss:{result = REGS_RegCodeX64_ss;}break;
|
||||
case RDI_RegCodeX64_cs:{result = REGS_RegCodeX64_cs;}break;
|
||||
case RDI_RegCodeX64_ds:{result = REGS_RegCodeX64_ds;}break;
|
||||
case RDI_RegCodeX64_es:{result = REGS_RegCodeX64_es;}break;
|
||||
case RDI_RegCodeX64_fs:{result = REGS_RegCodeX64_fs;}break;
|
||||
case RDI_RegCodeX64_gs:{result = REGS_RegCodeX64_gs;}break;
|
||||
case RDI_RegCodeX64_ymm0:{result = REGS_RegCodeX64_ymm0;}break;
|
||||
case RDI_RegCodeX64_ymm1:{result = REGS_RegCodeX64_ymm1;}break;
|
||||
case RDI_RegCodeX64_ymm2:{result = REGS_RegCodeX64_ymm2;}break;
|
||||
case RDI_RegCodeX64_ymm3:{result = REGS_RegCodeX64_ymm3;}break;
|
||||
case RDI_RegCodeX64_ymm4:{result = REGS_RegCodeX64_ymm4;}break;
|
||||
case RDI_RegCodeX64_ymm5:{result = REGS_RegCodeX64_ymm5;}break;
|
||||
case RDI_RegCodeX64_ymm6:{result = REGS_RegCodeX64_ymm6;}break;
|
||||
case RDI_RegCodeX64_ymm7:{result = REGS_RegCodeX64_ymm7;}break;
|
||||
case RDI_RegCodeX64_ymm8:{result = REGS_RegCodeX64_ymm8;}break;
|
||||
case RDI_RegCodeX64_ymm9:{result = REGS_RegCodeX64_ymm9;}break;
|
||||
case RDI_RegCodeX64_ymm10:{result = REGS_RegCodeX64_ymm10;}break;
|
||||
case RDI_RegCodeX64_ymm11:{result = REGS_RegCodeX64_ymm11;}break;
|
||||
case RDI_RegCodeX64_ymm12:{result = REGS_RegCodeX64_ymm12;}break;
|
||||
case RDI_RegCodeX64_ymm13:{result = REGS_RegCodeX64_ymm13;}break;
|
||||
case RDI_RegCodeX64_ymm14:{result = REGS_RegCodeX64_ymm14;}break;
|
||||
case RDI_RegCodeX64_ymm15:{result = REGS_RegCodeX64_ymm15;}break;
|
||||
}
|
||||
}break;
|
||||
case Architecture_x86:
|
||||
{
|
||||
switch(code)
|
||||
{
|
||||
default:{}break;
|
||||
case RDI_RegCodeX86_eax:{result = REGS_RegCodeX86_eax;}break;
|
||||
case RDI_RegCodeX86_ecx:{result = REGS_RegCodeX86_ecx;}break;
|
||||
case RDI_RegCodeX86_edx:{result = REGS_RegCodeX86_edx;}break;
|
||||
case RDI_RegCodeX86_ebx:{result = REGS_RegCodeX86_ebx;}break;
|
||||
case RDI_RegCodeX86_esp:{result = REGS_RegCodeX86_esp;}break;
|
||||
case RDI_RegCodeX86_ebp:{result = REGS_RegCodeX86_ebp;}break;
|
||||
case RDI_RegCodeX86_esi:{result = REGS_RegCodeX86_esi;}break;
|
||||
case RDI_RegCodeX86_edi:{result = REGS_RegCodeX86_edi;}break;
|
||||
case RDI_RegCodeX86_fsbase:{result = REGS_RegCodeX86_fsbase;}break;
|
||||
case RDI_RegCodeX86_gsbase:{result = REGS_RegCodeX86_gsbase;}break;
|
||||
case RDI_RegCodeX86_eflags:{result = REGS_RegCodeX86_eflags;}break;
|
||||
case RDI_RegCodeX86_eip:{result = REGS_RegCodeX86_eip;}break;
|
||||
case RDI_RegCodeX86_dr0:{result = REGS_RegCodeX86_dr0;}break;
|
||||
case RDI_RegCodeX86_dr1:{result = REGS_RegCodeX86_dr1;}break;
|
||||
case RDI_RegCodeX86_dr2:{result = REGS_RegCodeX86_dr2;}break;
|
||||
case RDI_RegCodeX86_dr3:{result = REGS_RegCodeX86_dr3;}break;
|
||||
case RDI_RegCodeX86_dr4:{result = REGS_RegCodeX86_dr4;}break;
|
||||
case RDI_RegCodeX86_dr5:{result = REGS_RegCodeX86_dr5;}break;
|
||||
case RDI_RegCodeX86_dr6:{result = REGS_RegCodeX86_dr6;}break;
|
||||
case RDI_RegCodeX86_dr7:{result = REGS_RegCodeX86_dr7;}break;
|
||||
case RDI_RegCodeX86_fpr0:{result = REGS_RegCodeX86_fpr0;}break;
|
||||
case RDI_RegCodeX86_fpr1:{result = REGS_RegCodeX86_fpr1;}break;
|
||||
case RDI_RegCodeX86_fpr2:{result = REGS_RegCodeX86_fpr2;}break;
|
||||
case RDI_RegCodeX86_fpr3:{result = REGS_RegCodeX86_fpr3;}break;
|
||||
case RDI_RegCodeX86_fpr4:{result = REGS_RegCodeX86_fpr4;}break;
|
||||
case RDI_RegCodeX86_fpr5:{result = REGS_RegCodeX86_fpr5;}break;
|
||||
case RDI_RegCodeX86_fpr6:{result = REGS_RegCodeX86_fpr6;}break;
|
||||
case RDI_RegCodeX86_fpr7:{result = REGS_RegCodeX86_fpr7;}break;
|
||||
case RDI_RegCodeX86_st0:{result = REGS_RegCodeX86_st0;}break;
|
||||
case RDI_RegCodeX86_st1:{result = REGS_RegCodeX86_st1;}break;
|
||||
case RDI_RegCodeX86_st2:{result = REGS_RegCodeX86_st2;}break;
|
||||
case RDI_RegCodeX86_st3:{result = REGS_RegCodeX86_st3;}break;
|
||||
case RDI_RegCodeX86_st4:{result = REGS_RegCodeX86_st4;}break;
|
||||
case RDI_RegCodeX86_st5:{result = REGS_RegCodeX86_st5;}break;
|
||||
case RDI_RegCodeX86_st6:{result = REGS_RegCodeX86_st6;}break;
|
||||
case RDI_RegCodeX86_st7:{result = REGS_RegCodeX86_st7;}break;
|
||||
case RDI_RegCodeX86_fcw:{result = REGS_RegCodeX86_fcw;}break;
|
||||
case RDI_RegCodeX86_fsw:{result = REGS_RegCodeX86_fsw;}break;
|
||||
case RDI_RegCodeX86_ftw:{result = REGS_RegCodeX86_ftw;}break;
|
||||
case RDI_RegCodeX86_fop:{result = REGS_RegCodeX86_fop;}break;
|
||||
case RDI_RegCodeX86_fcs:{result = REGS_RegCodeX86_fcs;}break;
|
||||
case RDI_RegCodeX86_fds:{result = REGS_RegCodeX86_fds;}break;
|
||||
case RDI_RegCodeX86_fip:{result = REGS_RegCodeX86_fip;}break;
|
||||
case RDI_RegCodeX86_fdp:{result = REGS_RegCodeX86_fdp;}break;
|
||||
case RDI_RegCodeX86_mxcsr:{result = REGS_RegCodeX86_mxcsr;}break;
|
||||
case RDI_RegCodeX86_mxcsr_mask:{result = REGS_RegCodeX86_mxcsr_mask;}break;
|
||||
case RDI_RegCodeX86_ss:{result = REGS_RegCodeX86_ss;}break;
|
||||
case RDI_RegCodeX86_cs:{result = REGS_RegCodeX86_cs;}break;
|
||||
case RDI_RegCodeX86_ds:{result = REGS_RegCodeX86_ds;}break;
|
||||
case RDI_RegCodeX86_es:{result = REGS_RegCodeX86_es;}break;
|
||||
case RDI_RegCodeX86_fs:{result = REGS_RegCodeX86_fs;}break;
|
||||
case RDI_RegCodeX86_gs:{result = REGS_RegCodeX86_gs;}break;
|
||||
case RDI_RegCodeX86_ymm0:{result = REGS_RegCodeX86_ymm0;}break;
|
||||
case RDI_RegCodeX86_ymm1:{result = REGS_RegCodeX86_ymm1;}break;
|
||||
case RDI_RegCodeX86_ymm2:{result = REGS_RegCodeX86_ymm2;}break;
|
||||
case RDI_RegCodeX86_ymm3:{result = REGS_RegCodeX86_ymm3;}break;
|
||||
case RDI_RegCodeX86_ymm4:{result = REGS_RegCodeX86_ymm4;}break;
|
||||
case RDI_RegCodeX86_ymm5:{result = REGS_RegCodeX86_ymm5;}break;
|
||||
case RDI_RegCodeX86_ymm6:{result = REGS_RegCodeX86_ymm6;}break;
|
||||
case RDI_RegCodeX86_ymm7:{result = REGS_RegCodeX86_ymm7;}break;
|
||||
}
|
||||
}break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#ifndef REGS_RDI_META_H
|
||||
#define REGS_RDI_META_H
|
||||
|
||||
#endif // REGS_RDI_META_H
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#ifndef REGS_RDI_META_H
|
||||
#define REGS_RDI_META_H
|
||||
|
||||
#endif // REGS_RDI_META_H
|
||||
|
||||
@@ -1,69 +1,69 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
String8* r_d3d11_g_vshad_kind_source_table[5] =
|
||||
{
|
||||
&r_d3d11_g_rect_shader_src,
|
||||
&r_d3d11_g_blur_shader_src,
|
||||
&r_d3d11_g_mesh_shader_src,
|
||||
&r_d3d11_g_geo3dcomposite_shader_src,
|
||||
&r_d3d11_g_finalize_shader_src,
|
||||
};
|
||||
|
||||
String8 r_d3d11_g_vshad_kind_source_name_table[5] =
|
||||
{
|
||||
str8_lit_comp("r_d3d11_g_rect_shader_src"),
|
||||
str8_lit_comp("r_d3d11_g_blur_shader_src"),
|
||||
str8_lit_comp("r_d3d11_g_mesh_shader_src"),
|
||||
str8_lit_comp("r_d3d11_g_geo3dcomposite_shader_src"),
|
||||
str8_lit_comp("r_d3d11_g_finalize_shader_src"),
|
||||
};
|
||||
|
||||
D3D11_INPUT_ELEMENT_DESC * r_d3d11_g_vshad_kind_elements_ptr_table[5] =
|
||||
{
|
||||
r_d3d11_g_rect_ilay_elements,
|
||||
0,
|
||||
r_d3d11_g_mesh_ilay_elements,
|
||||
0,
|
||||
0,
|
||||
};
|
||||
|
||||
U64 r_d3d11_g_vshad_kind_elements_count_table[5] =
|
||||
{
|
||||
ArrayCount(r_d3d11_g_rect_ilay_elements) ,
|
||||
0,
|
||||
ArrayCount(r_d3d11_g_mesh_ilay_elements) ,
|
||||
0,
|
||||
0,
|
||||
};
|
||||
|
||||
String8* r_d3d11_g_pshad_kind_source_table[5] =
|
||||
{
|
||||
&r_d3d11_g_rect_shader_src,
|
||||
&r_d3d11_g_blur_shader_src,
|
||||
&r_d3d11_g_mesh_shader_src,
|
||||
&r_d3d11_g_geo3dcomposite_shader_src,
|
||||
&r_d3d11_g_finalize_shader_src,
|
||||
};
|
||||
|
||||
String8 r_d3d11_g_pshad_kind_source_name_table[5] =
|
||||
{
|
||||
str8_lit_comp("r_d3d11_g_rect_shader_src"),
|
||||
str8_lit_comp("r_d3d11_g_blur_shader_src"),
|
||||
str8_lit_comp("r_d3d11_g_mesh_shader_src"),
|
||||
str8_lit_comp("r_d3d11_g_geo3dcomposite_shader_src"),
|
||||
str8_lit_comp("r_d3d11_g_finalize_shader_src"),
|
||||
};
|
||||
|
||||
U64 r_d3d11_g_uniform_type_kind_size_table[3] =
|
||||
{
|
||||
sizeof(R_D3D11_Uniforms_Rect),
|
||||
sizeof(R_D3D11_Uniforms_Blur),
|
||||
sizeof(R_D3D11_Uniforms_Mesh),
|
||||
};
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
String8* r_d3d11_g_vshad_kind_source_table[5] =
|
||||
{
|
||||
&r_d3d11_g_rect_shader_src,
|
||||
&r_d3d11_g_blur_shader_src,
|
||||
&r_d3d11_g_mesh_shader_src,
|
||||
&r_d3d11_g_geo3dcomposite_shader_src,
|
||||
&r_d3d11_g_finalize_shader_src,
|
||||
};
|
||||
|
||||
String8 r_d3d11_g_vshad_kind_source_name_table[5] =
|
||||
{
|
||||
str8_lit_comp("r_d3d11_g_rect_shader_src"),
|
||||
str8_lit_comp("r_d3d11_g_blur_shader_src"),
|
||||
str8_lit_comp("r_d3d11_g_mesh_shader_src"),
|
||||
str8_lit_comp("r_d3d11_g_geo3dcomposite_shader_src"),
|
||||
str8_lit_comp("r_d3d11_g_finalize_shader_src"),
|
||||
};
|
||||
|
||||
D3D11_INPUT_ELEMENT_DESC * r_d3d11_g_vshad_kind_elements_ptr_table[5] =
|
||||
{
|
||||
r_d3d11_g_rect_ilay_elements,
|
||||
0,
|
||||
r_d3d11_g_mesh_ilay_elements,
|
||||
0,
|
||||
0,
|
||||
};
|
||||
|
||||
U64 r_d3d11_g_vshad_kind_elements_count_table[5] =
|
||||
{
|
||||
ArrayCount(r_d3d11_g_rect_ilay_elements) ,
|
||||
0,
|
||||
ArrayCount(r_d3d11_g_mesh_ilay_elements) ,
|
||||
0,
|
||||
0,
|
||||
};
|
||||
|
||||
String8* r_d3d11_g_pshad_kind_source_table[5] =
|
||||
{
|
||||
&r_d3d11_g_rect_shader_src,
|
||||
&r_d3d11_g_blur_shader_src,
|
||||
&r_d3d11_g_mesh_shader_src,
|
||||
&r_d3d11_g_geo3dcomposite_shader_src,
|
||||
&r_d3d11_g_finalize_shader_src,
|
||||
};
|
||||
|
||||
String8 r_d3d11_g_pshad_kind_source_name_table[5] =
|
||||
{
|
||||
str8_lit_comp("r_d3d11_g_rect_shader_src"),
|
||||
str8_lit_comp("r_d3d11_g_blur_shader_src"),
|
||||
str8_lit_comp("r_d3d11_g_mesh_shader_src"),
|
||||
str8_lit_comp("r_d3d11_g_geo3dcomposite_shader_src"),
|
||||
str8_lit_comp("r_d3d11_g_finalize_shader_src"),
|
||||
};
|
||||
|
||||
U64 r_d3d11_g_uniform_type_kind_size_table[3] =
|
||||
{
|
||||
sizeof(R_D3D11_Uniforms_Rect),
|
||||
sizeof(R_D3D11_Uniforms_Blur),
|
||||
sizeof(R_D3D11_Uniforms_Mesh),
|
||||
};
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
|
||||
@@ -1,468 +1,468 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#ifndef RENDER_D3D11_META_H
|
||||
#define RENDER_D3D11_META_H
|
||||
|
||||
typedef enum R_D3D11_VShadKind
|
||||
{
|
||||
R_D3D11_VShadKind_Rect,
|
||||
R_D3D11_VShadKind_Blur,
|
||||
R_D3D11_VShadKind_Mesh,
|
||||
R_D3D11_VShadKind_Geo3DComposite,
|
||||
R_D3D11_VShadKind_Finalize,
|
||||
R_D3D11_VShadKind_COUNT,
|
||||
} R_D3D11_VShadKind;
|
||||
|
||||
typedef enum R_D3D11_PShadKind
|
||||
{
|
||||
R_D3D11_PShadKind_Rect,
|
||||
R_D3D11_PShadKind_Blur,
|
||||
R_D3D11_PShadKind_Mesh,
|
||||
R_D3D11_PShadKind_Geo3DComposite,
|
||||
R_D3D11_PShadKind_Finalize,
|
||||
R_D3D11_PShadKind_COUNT,
|
||||
} R_D3D11_PShadKind;
|
||||
|
||||
typedef enum R_D3D11_UniformTypeKind
|
||||
{
|
||||
R_D3D11_UniformTypeKind_Rect,
|
||||
R_D3D11_UniformTypeKind_Blur,
|
||||
R_D3D11_UniformTypeKind_Mesh,
|
||||
R_D3D11_UniformTypeKind_COUNT,
|
||||
} R_D3D11_UniformTypeKind;
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
read_only global String8 r_d3d11_g_rect_shader_src =
|
||||
str8_lit_comp(
|
||||
""
|
||||
"\n"
|
||||
"cbuffer Globals : register(b0)\n"
|
||||
"{\n"
|
||||
" float2 viewport_size_px;\n"
|
||||
" float opacity;\n"
|
||||
" row_major float4x4 texture_sample_channel_map;\n"
|
||||
" float2 texture_t2d_size_px;\n"
|
||||
" row_major float3x3 xform;\n"
|
||||
" float2 xform_scale;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"struct CPU2Vertex\n"
|
||||
"{\n"
|
||||
" float4 dst_rect_px : POS;\n"
|
||||
" float4 src_rect_px : TEX;\n"
|
||||
" float4 color00 : COL0;\n"
|
||||
" float4 color01 : COL1;\n"
|
||||
" float4 color10 : COL2;\n"
|
||||
" float4 color11 : COL3;\n"
|
||||
" float4 corner_radii_px : CRAD;\n"
|
||||
" float4 style_params : STY; // x: border_thickness_px, y: softness_px, z: omit_texture, w: unused\n"
|
||||
" uint vertex_id : SV_VertexID;\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"struct Vertex2Pixel\n"
|
||||
"{\n"
|
||||
" float4 position : SV_POSITION;\n"
|
||||
" nointerpolation float2 rect_half_size_px : PSIZE;\n"
|
||||
" float2 texcoord_pct : TEX;\n"
|
||||
" float2 sdf_sample_pos : SDF;\n"
|
||||
" float4 tint : TINT;\n"
|
||||
" float corner_radius_px : CRAD;\n"
|
||||
" nointerpolation float border_thickness_px : BTHC;\n"
|
||||
" nointerpolation float softness_px : SFT;\n"
|
||||
" nointerpolation float omit_texture : OTX;\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"Texture2D main_t2d : register(t0);\n"
|
||||
"SamplerState main_sampler : register(s0);\n"
|
||||
"\n"
|
||||
"float rect_sdf(float2 sample_pos, float2 rect_half_size, float r)\n"
|
||||
"{\n"
|
||||
" return length(max(abs(sample_pos) - rect_half_size + r, 0.0)) - r;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"//- rjf: vertex shader\n"
|
||||
"\n"
|
||||
"Vertex2Pixel\n"
|
||||
"vs_main(CPU2Vertex cpu2vertex)\n"
|
||||
"{\n"
|
||||
" //- rjf: unpack & xform rectangle src/dst vertices\n"
|
||||
" float2 dst_p0_px = cpu2vertex.dst_rect_px.xy;\n"
|
||||
" float2 dst_p1_px = cpu2vertex.dst_rect_px.zw;\n"
|
||||
" float2 src_p0_px = cpu2vertex.src_rect_px.xy;\n"
|
||||
" float2 src_p1_px = cpu2vertex.src_rect_px.zw;\n"
|
||||
" float2 dst_size_px = abs(dst_p1_px - dst_p0_px);\n"
|
||||
" \n"
|
||||
" //- rjf: unpack style params\n"
|
||||
" float border_thickness_px = cpu2vertex.style_params.x;\n"
|
||||
" float softness_px = cpu2vertex.style_params.y;\n"
|
||||
" float omit_texture = cpu2vertex.style_params.z;\n"
|
||||
" \n"
|
||||
" //- rjf: prep per-vertex arrays to sample from (p: position, t: texcoord, c: colorcoord, r: cornerradius)\n"
|
||||
" float2 dst_p_verts_px[] =\n"
|
||||
" {\n"
|
||||
" float2(dst_p0_px.x, dst_p1_px.y),\n"
|
||||
" float2(dst_p0_px.x, dst_p0_px.y),\n"
|
||||
" float2(dst_p1_px.x, dst_p1_px.y),\n"
|
||||
" float2(dst_p1_px.x, dst_p0_px.y),\n"
|
||||
" };\n"
|
||||
" float2 src_p_verts_px[] =\n"
|
||||
" {\n"
|
||||
" float2(src_p0_px.x, src_p1_px.y),\n"
|
||||
" float2(src_p0_px.x, src_p0_px.y),\n"
|
||||
" float2(src_p1_px.x, src_p1_px.y),\n"
|
||||
" float2(src_p1_px.x, src_p0_px.y),\n"
|
||||
" };\n"
|
||||
" float dst_r_verts_px[] =\n"
|
||||
" {\n"
|
||||
" cpu2vertex.corner_radii_px.y,\n"
|
||||
" cpu2vertex.corner_radii_px.x,\n"
|
||||
" cpu2vertex.corner_radii_px.w,\n"
|
||||
" cpu2vertex.corner_radii_px.z,\n"
|
||||
" };\n"
|
||||
" float4 src_color[] = {\n"
|
||||
" cpu2vertex.color01,\n"
|
||||
" cpu2vertex.color00,\n"
|
||||
" cpu2vertex.color11,\n"
|
||||
" cpu2vertex.color10,\n"
|
||||
" };\n"
|
||||
" float2 dst_verts_pct = float2((cpu2vertex.vertex_id >> 1) ? 1.f : 0.f,\n"
|
||||
" (cpu2vertex.vertex_id & 1) ? 0.f : 1.f);\n"
|
||||
" \n"
|
||||
" // rjf: fill vertex -> pixel data\n"
|
||||
" Vertex2Pixel vertex2pixel;\n"
|
||||
" {\n"
|
||||
" float2 xformed_pos = mul(xform, float3(dst_p_verts_px[cpu2vertex.vertex_id], 1.f)).xy;\n"
|
||||
" xformed_pos.y = viewport_size_px.y - xformed_pos.y;\n"
|
||||
" vertex2pixel.position.xy = 2.f * xformed_pos/viewport_size_px - 1.f;\n"
|
||||
" vertex2pixel.position.z = 0.f;\n"
|
||||
" vertex2pixel.position.w = 1.f;\n"
|
||||
" vertex2pixel.rect_half_size_px = dst_size_px / 2.f * xform_scale;\n"
|
||||
" vertex2pixel.texcoord_pct = src_p_verts_px[cpu2vertex.vertex_id] / texture_t2d_size_px;\n"
|
||||
" vertex2pixel.sdf_sample_pos = (2.f * dst_verts_pct - 1.f) * vertex2pixel.rect_half_size_px;\n"
|
||||
" vertex2pixel.tint = src_color[cpu2vertex.vertex_id];\n"
|
||||
" vertex2pixel.corner_radius_px = dst_r_verts_px[cpu2vertex.vertex_id];\n"
|
||||
" vertex2pixel.border_thickness_px = border_thickness_px;\n"
|
||||
" vertex2pixel.softness_px = softness_px;\n"
|
||||
" vertex2pixel.omit_texture = omit_texture;\n"
|
||||
" }\n"
|
||||
" return vertex2pixel;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"//- rjf: pixel shader\n"
|
||||
"\n"
|
||||
"float4\n"
|
||||
"ps_main(Vertex2Pixel vertex2pixel) : SV_TARGET\n"
|
||||
"{\n"
|
||||
" // rjf: blend corner colors to produce final tint\n"
|
||||
" float4 tint = vertex2pixel.tint;\n"
|
||||
" \n"
|
||||
" // rjf: sample texture\n"
|
||||
" float4 albedo_sample = float4(1, 1, 1, 1);\n"
|
||||
" if(vertex2pixel.omit_texture < 1)\n"
|
||||
" {\n"
|
||||
" albedo_sample = mul(main_t2d.Sample(main_sampler, vertex2pixel.texcoord_pct), texture_sample_channel_map);\n"
|
||||
" }\n"
|
||||
" \n"
|
||||
" // rjf: determine SDF sample position\n"
|
||||
" float2 sdf_sample_pos = vertex2pixel.sdf_sample_pos;\n"
|
||||
" \n"
|
||||
" // rjf: sample for borders\n"
|
||||
" float border_sdf_t = 1;\n"
|
||||
" if(vertex2pixel.border_thickness_px > 0)\n"
|
||||
" {\n"
|
||||
" float border_sdf_s = rect_sdf(sdf_sample_pos,\n"
|
||||
" vertex2pixel.rect_half_size_px - float2(vertex2pixel.softness_px*2.f, vertex2pixel.softness_px*2.f) - vertex2pixel.border_thickness_px,\n"
|
||||
" max(vertex2pixel.corner_radius_px-vertex2pixel.border_thickness_px, 0));\n"
|
||||
" border_sdf_t = smoothstep(0, 2*vertex2pixel.softness_px, border_sdf_s);\n"
|
||||
" }\n"
|
||||
" if(border_sdf_t < 0.001f)\n"
|
||||
" {\n"
|
||||
" discard;\n"
|
||||
" }\n"
|
||||
" \n"
|
||||
" // rjf: sample for corners\n"
|
||||
" float corner_sdf_t = 1;\n"
|
||||
" if(vertex2pixel.corner_radius_px > 0 || vertex2pixel.softness_px > 0.75f)\n"
|
||||
" {\n"
|
||||
" float corner_sdf_s = rect_sdf(sdf_sample_pos,\n"
|
||||
" vertex2pixel.rect_half_size_px - float2(vertex2pixel.softness_px*2.f, vertex2pixel.softness_px*2.f),\n"
|
||||
" vertex2pixel.corner_radius_px);\n"
|
||||
" corner_sdf_t = 1-smoothstep(0, 2*vertex2pixel.softness_px, corner_sdf_s);\n"
|
||||
" }\n"
|
||||
" \n"
|
||||
" // rjf: form+return final color\n"
|
||||
" float4 final_color = albedo_sample;\n"
|
||||
" final_color *= tint;\n"
|
||||
" final_color.a *= opacity;\n"
|
||||
" final_color.a *= corner_sdf_t;\n"
|
||||
" final_color.a *= border_sdf_t;\n"
|
||||
" return final_color;\n"
|
||||
"}\n"
|
||||
""
|
||||
);
|
||||
|
||||
read_only global String8 r_d3d11_g_blur_shader_src =
|
||||
str8_lit_comp(
|
||||
""
|
||||
"\n"
|
||||
"cbuffer Globals : register(b0)\n"
|
||||
"{\n"
|
||||
" float4 rect;\n"
|
||||
" float4 corner_radii_px;\n"
|
||||
" float2 direction;\n"
|
||||
" float2 viewport_size;\n"
|
||||
" uint blur_count;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"cbuffer Kernel : register(b1)\n"
|
||||
"{\n"
|
||||
" float4 kernel[32];\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"struct CPU2Vertex\n"
|
||||
"{\n"
|
||||
" uint vertex_id : SV_VertexID;\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"struct Vertex2Pixel\n"
|
||||
"{\n"
|
||||
" float4 position : SV_POSITION;\n"
|
||||
" float2 texcoord : TEX;\n"
|
||||
" float2 sdf_sample_pos : SDF;\n"
|
||||
" nointerpolation float2 rect_half_size : RHS;\n"
|
||||
" float corner_radius : RAD;\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"Texture2D stage_t2d : register(t0);\n"
|
||||
"SamplerState stage_sampler : register(s0);\n"
|
||||
"\n"
|
||||
"float rect_sdf(float2 sample_pos, float2 rect_half_size, float r)\n"
|
||||
"{\n"
|
||||
" return length(max(abs(sample_pos) - rect_half_size + r, 0.0)) - r;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"//- rjf: vertex shader\n"
|
||||
"\n"
|
||||
"Vertex2Pixel\n"
|
||||
"vs_main(CPU2Vertex c2v)\n"
|
||||
"{\n"
|
||||
" float2 vertex_positions__scrn[] =\n"
|
||||
" {\n"
|
||||
" rect.xw,\n"
|
||||
" rect.xy,\n"
|
||||
" rect.zw,\n"
|
||||
" rect.zy,\n"
|
||||
" };\n"
|
||||
" float corner_radii__px[] =\n"
|
||||
" {\n"
|
||||
" corner_radii_px.y,\n"
|
||||
" corner_radii_px.x,\n"
|
||||
" corner_radii_px.w,\n"
|
||||
" corner_radii_px.z,\n"
|
||||
" };\n"
|
||||
" float2 cornercoords__pct = float2(\n"
|
||||
" (c2v.vertex_id >> 1) ? 1.f : 0.f,\n"
|
||||
" (c2v.vertex_id & 1) ? 0.f : 1.f);\n"
|
||||
" \n"
|
||||
" float2 vertex_position__pct = vertex_positions__scrn[c2v.vertex_id] / viewport_size;\n"
|
||||
" float2 vertex_position__scr = 2.f * vertex_position__pct - 1.f;\n"
|
||||
" \n"
|
||||
" float2 rect_half_size = float2((rect.z-rect.x)/2, (rect.w-rect.y)/2);\n"
|
||||
" \n"
|
||||
" Vertex2Pixel v2p;\n"
|
||||
" {\n"
|
||||
" v2p.position = float4(vertex_position__scr.x, -vertex_position__scr.y, 0.f, 1.f);\n"
|
||||
" v2p.texcoord = vertex_position__pct;\n"
|
||||
" v2p.sdf_sample_pos = (2.f * cornercoords__pct - 1.f) * rect_half_size;\n"
|
||||
" v2p.rect_half_size = rect_half_size - 2.f;\n"
|
||||
" v2p.corner_radius = corner_radii__px[c2v.vertex_id];\n"
|
||||
" }\n"
|
||||
" return v2p;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"//- rjf: pixel shader\n"
|
||||
"\n"
|
||||
"float4\n"
|
||||
"ps_main(Vertex2Pixel v2p) : SV_TARGET\n"
|
||||
"{\n"
|
||||
" // rjf: blend weighted texture samples into color\n"
|
||||
" float3 color = kernel[0].x * stage_t2d.Sample(stage_sampler, v2p.texcoord).rgb;\n"
|
||||
" \n"
|
||||
" for(uint i = 1; i < blur_count; i += 1)\n"
|
||||
" {\n"
|
||||
" float weight = kernel[i].x;\n"
|
||||
" float offset = kernel[i].y;\n"
|
||||
" color += weight * stage_t2d.Sample(stage_sampler, v2p.texcoord - offset * direction).rgb;\n"
|
||||
" color += weight * stage_t2d.Sample(stage_sampler, v2p.texcoord + offset * direction).rgb;\n"
|
||||
" }\n"
|
||||
" \n"
|
||||
" // rjf: sample for corners\n"
|
||||
" float corner_sdf_s = rect_sdf(v2p.sdf_sample_pos, v2p.rect_half_size, v2p.corner_radius);\n"
|
||||
" float corner_sdf_t = 1-smoothstep(0, 2, corner_sdf_s);\n"
|
||||
" \n"
|
||||
" // rjf: weight output color by sdf\n"
|
||||
" // this is doing alpha testing, leave blurring only where mostly opaque pixels are\n"
|
||||
" if (corner_sdf_t < 0.9f)\n"
|
||||
" {\n"
|
||||
" discard;\n"
|
||||
" }\n"
|
||||
" \n"
|
||||
" return float4(color, 1.f);\n"
|
||||
"}\n"
|
||||
""
|
||||
);
|
||||
|
||||
read_only global String8 r_d3d11_g_mesh_shader_src =
|
||||
str8_lit_comp(
|
||||
""
|
||||
"\n"
|
||||
"cbuffer Uniforms : register(b0)\n"
|
||||
"{\n"
|
||||
" row_major float4x4 xform;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"struct CPU2Vertex\n"
|
||||
"{\n"
|
||||
" float3 position : POS;\n"
|
||||
" float3 normal : NOR;\n"
|
||||
" float2 texcoord : TEX;\n"
|
||||
" float3 color : COL;\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"struct Vertex2Pixel\n"
|
||||
"{\n"
|
||||
" float4 position : SV_POSITION;\n"
|
||||
" float2 texcoord : TEX;\n"
|
||||
" float4 color : COL;\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"Vertex2Pixel vs_main(CPU2Vertex c2v)\n"
|
||||
"{\n"
|
||||
" Vertex2Pixel v2p;\n"
|
||||
" v2p.position = mul(float4(c2v.position, 1.f), xform);\n"
|
||||
" v2p.texcoord = c2v.texcoord;\n"
|
||||
" v2p.color = float4(c2v.color, 1.f);\n"
|
||||
" return v2p;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"float4 ps_main(Vertex2Pixel v2p) : SV_TARGET\n"
|
||||
"{\n"
|
||||
" return v2p.color;\n"
|
||||
"}\n"
|
||||
""
|
||||
);
|
||||
|
||||
read_only global String8 r_d3d11_g_geo3dcomposite_shader_src =
|
||||
str8_lit_comp(
|
||||
""
|
||||
"\n"
|
||||
"struct CPU2Vertex\n"
|
||||
"{\n"
|
||||
" uint vertex_id : SV_VertexID;\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"struct Vertex2Pixel\n"
|
||||
"{\n"
|
||||
" float4 position : SV_POSITION;\n"
|
||||
" float2 texcoord : TEX;\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"Texture2D stage_t2d : register(t0);\n"
|
||||
"SamplerState stage_sampler : register(s0);\n"
|
||||
"\n"
|
||||
"//- rjf: vertex shader\n"
|
||||
"\n"
|
||||
"Vertex2Pixel\n"
|
||||
"vs_main(CPU2Vertex c2v)\n"
|
||||
"{\n"
|
||||
" float4 vertex_positions__modl[] =\n"
|
||||
" {\n"
|
||||
" float4(0, 0, 0, 1),\n"
|
||||
" float4(0, 1, 0, 1),\n"
|
||||
" float4(1, 0, 0, 1),\n"
|
||||
" float4(1, 1, 0, 1),\n"
|
||||
" };\n"
|
||||
" float4 vertex_position__modl = vertex_positions__modl[c2v.vertex_id];\n"
|
||||
" float4 vertex_position__clip = float4(2*vertex_position__modl.x - 1, 2*vertex_position__modl.y - 1, 0, 1);\n"
|
||||
" float2 texcoord = float2(vertex_position__modl.x, vertex_position__modl.y);\n"
|
||||
" texcoord.y = 1-texcoord.y;\n"
|
||||
" Vertex2Pixel v2p;\n"
|
||||
" {\n"
|
||||
" v2p.position = vertex_position__clip;\n"
|
||||
" v2p.texcoord = texcoord;\n"
|
||||
" }\n"
|
||||
" return v2p;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"//- rjf: pixel shader\n"
|
||||
"\n"
|
||||
"float4\n"
|
||||
"ps_main(Vertex2Pixel v2p) : SV_TARGET\n"
|
||||
"{\n"
|
||||
" float4 final_color = stage_t2d.Sample(stage_sampler, v2p.texcoord);\n"
|
||||
" return final_color;\n"
|
||||
"}\n"
|
||||
""
|
||||
);
|
||||
|
||||
read_only global String8 r_d3d11_g_finalize_shader_src =
|
||||
str8_lit_comp(
|
||||
""
|
||||
"\n"
|
||||
"struct CPU2Vertex\n"
|
||||
"{\n"
|
||||
" uint vertex_id : SV_VertexID;\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"struct Vertex2Pixel\n"
|
||||
"{\n"
|
||||
" float4 position : SV_POSITION;\n"
|
||||
" float2 texcoord : TEX;\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"Texture2D stage_t2d : register(t0);\n"
|
||||
"SamplerState stage_sampler : register(s0);\n"
|
||||
"\n"
|
||||
"//- rjf: vertex shader\n"
|
||||
"\n"
|
||||
"Vertex2Pixel\n"
|
||||
"vs_main(CPU2Vertex c2v)\n"
|
||||
"{\n"
|
||||
" float4 vertex_positions__modl[] =\n"
|
||||
" {\n"
|
||||
" float4(0, 0, 0, 1),\n"
|
||||
" float4(0, 1, 0, 1),\n"
|
||||
" float4(1, 0, 0, 1),\n"
|
||||
" float4(1, 1, 0, 1),\n"
|
||||
" };\n"
|
||||
" float4 vertex_position__modl = vertex_positions__modl[c2v.vertex_id];\n"
|
||||
" float4 vertex_position__clip = float4(2*vertex_position__modl.x - 1, 2*vertex_position__modl.y - 1, 0, 1);\n"
|
||||
" float2 texcoord = float2(vertex_position__modl.x, vertex_position__modl.y);\n"
|
||||
" texcoord.y = 1-texcoord.y;\n"
|
||||
" Vertex2Pixel v2p;\n"
|
||||
" {\n"
|
||||
" v2p.position = vertex_position__clip;\n"
|
||||
" v2p.texcoord = texcoord;\n"
|
||||
" }\n"
|
||||
" return v2p;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"//- rjf: pixel shader\n"
|
||||
"\n"
|
||||
"float4\n"
|
||||
"ps_main(Vertex2Pixel v2p) : SV_TARGET\n"
|
||||
"{\n"
|
||||
" float4 final_color = stage_t2d.Sample(stage_sampler, v2p.texcoord);\n"
|
||||
" final_color.a = 1;\n"
|
||||
" return final_color;\n"
|
||||
"}\n"
|
||||
""
|
||||
);
|
||||
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
#endif // RENDER_D3D11_META_H
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#ifndef RENDER_D3D11_META_H
|
||||
#define RENDER_D3D11_META_H
|
||||
|
||||
typedef enum R_D3D11_VShadKind
|
||||
{
|
||||
R_D3D11_VShadKind_Rect,
|
||||
R_D3D11_VShadKind_Blur,
|
||||
R_D3D11_VShadKind_Mesh,
|
||||
R_D3D11_VShadKind_Geo3DComposite,
|
||||
R_D3D11_VShadKind_Finalize,
|
||||
R_D3D11_VShadKind_COUNT,
|
||||
} R_D3D11_VShadKind;
|
||||
|
||||
typedef enum R_D3D11_PShadKind
|
||||
{
|
||||
R_D3D11_PShadKind_Rect,
|
||||
R_D3D11_PShadKind_Blur,
|
||||
R_D3D11_PShadKind_Mesh,
|
||||
R_D3D11_PShadKind_Geo3DComposite,
|
||||
R_D3D11_PShadKind_Finalize,
|
||||
R_D3D11_PShadKind_COUNT,
|
||||
} R_D3D11_PShadKind;
|
||||
|
||||
typedef enum R_D3D11_UniformTypeKind
|
||||
{
|
||||
R_D3D11_UniformTypeKind_Rect,
|
||||
R_D3D11_UniformTypeKind_Blur,
|
||||
R_D3D11_UniformTypeKind_Mesh,
|
||||
R_D3D11_UniformTypeKind_COUNT,
|
||||
} R_D3D11_UniformTypeKind;
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
read_only global String8 r_d3d11_g_rect_shader_src =
|
||||
str8_lit_comp(
|
||||
""
|
||||
"\n"
|
||||
"cbuffer Globals : register(b0)\n"
|
||||
"{\n"
|
||||
" float2 viewport_size_px;\n"
|
||||
" float opacity;\n"
|
||||
" row_major float4x4 texture_sample_channel_map;\n"
|
||||
" float2 texture_t2d_size_px;\n"
|
||||
" row_major float3x3 xform;\n"
|
||||
" float2 xform_scale;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"struct CPU2Vertex\n"
|
||||
"{\n"
|
||||
" float4 dst_rect_px : POS;\n"
|
||||
" float4 src_rect_px : TEX;\n"
|
||||
" float4 color00 : COL0;\n"
|
||||
" float4 color01 : COL1;\n"
|
||||
" float4 color10 : COL2;\n"
|
||||
" float4 color11 : COL3;\n"
|
||||
" float4 corner_radii_px : CRAD;\n"
|
||||
" float4 style_params : STY; // x: border_thickness_px, y: softness_px, z: omit_texture, w: unused\n"
|
||||
" uint vertex_id : SV_VertexID;\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"struct Vertex2Pixel\n"
|
||||
"{\n"
|
||||
" float4 position : SV_POSITION;\n"
|
||||
" nointerpolation float2 rect_half_size_px : PSIZE;\n"
|
||||
" float2 texcoord_pct : TEX;\n"
|
||||
" float2 sdf_sample_pos : SDF;\n"
|
||||
" float4 tint : TINT;\n"
|
||||
" float corner_radius_px : CRAD;\n"
|
||||
" nointerpolation float border_thickness_px : BTHC;\n"
|
||||
" nointerpolation float softness_px : SFT;\n"
|
||||
" nointerpolation float omit_texture : OTX;\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"Texture2D main_t2d : register(t0);\n"
|
||||
"SamplerState main_sampler : register(s0);\n"
|
||||
"\n"
|
||||
"float rect_sdf(float2 sample_pos, float2 rect_half_size, float r)\n"
|
||||
"{\n"
|
||||
" return length(max(abs(sample_pos) - rect_half_size + r, 0.0)) - r;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"//- rjf: vertex shader\n"
|
||||
"\n"
|
||||
"Vertex2Pixel\n"
|
||||
"vs_main(CPU2Vertex cpu2vertex)\n"
|
||||
"{\n"
|
||||
" //- rjf: unpack & xform rectangle src/dst vertices\n"
|
||||
" float2 dst_p0_px = cpu2vertex.dst_rect_px.xy;\n"
|
||||
" float2 dst_p1_px = cpu2vertex.dst_rect_px.zw;\n"
|
||||
" float2 src_p0_px = cpu2vertex.src_rect_px.xy;\n"
|
||||
" float2 src_p1_px = cpu2vertex.src_rect_px.zw;\n"
|
||||
" float2 dst_size_px = abs(dst_p1_px - dst_p0_px);\n"
|
||||
" \n"
|
||||
" //- rjf: unpack style params\n"
|
||||
" float border_thickness_px = cpu2vertex.style_params.x;\n"
|
||||
" float softness_px = cpu2vertex.style_params.y;\n"
|
||||
" float omit_texture = cpu2vertex.style_params.z;\n"
|
||||
" \n"
|
||||
" //- rjf: prep per-vertex arrays to sample from (p: position, t: texcoord, c: colorcoord, r: cornerradius)\n"
|
||||
" float2 dst_p_verts_px[] =\n"
|
||||
" {\n"
|
||||
" float2(dst_p0_px.x, dst_p1_px.y),\n"
|
||||
" float2(dst_p0_px.x, dst_p0_px.y),\n"
|
||||
" float2(dst_p1_px.x, dst_p1_px.y),\n"
|
||||
" float2(dst_p1_px.x, dst_p0_px.y),\n"
|
||||
" };\n"
|
||||
" float2 src_p_verts_px[] =\n"
|
||||
" {\n"
|
||||
" float2(src_p0_px.x, src_p1_px.y),\n"
|
||||
" float2(src_p0_px.x, src_p0_px.y),\n"
|
||||
" float2(src_p1_px.x, src_p1_px.y),\n"
|
||||
" float2(src_p1_px.x, src_p0_px.y),\n"
|
||||
" };\n"
|
||||
" float dst_r_verts_px[] =\n"
|
||||
" {\n"
|
||||
" cpu2vertex.corner_radii_px.y,\n"
|
||||
" cpu2vertex.corner_radii_px.x,\n"
|
||||
" cpu2vertex.corner_radii_px.w,\n"
|
||||
" cpu2vertex.corner_radii_px.z,\n"
|
||||
" };\n"
|
||||
" float4 src_color[] = {\n"
|
||||
" cpu2vertex.color01,\n"
|
||||
" cpu2vertex.color00,\n"
|
||||
" cpu2vertex.color11,\n"
|
||||
" cpu2vertex.color10,\n"
|
||||
" };\n"
|
||||
" float2 dst_verts_pct = float2((cpu2vertex.vertex_id >> 1) ? 1.f : 0.f,\n"
|
||||
" (cpu2vertex.vertex_id & 1) ? 0.f : 1.f);\n"
|
||||
" \n"
|
||||
" // rjf: fill vertex -> pixel data\n"
|
||||
" Vertex2Pixel vertex2pixel;\n"
|
||||
" {\n"
|
||||
" float2 xformed_pos = mul(xform, float3(dst_p_verts_px[cpu2vertex.vertex_id], 1.f)).xy;\n"
|
||||
" xformed_pos.y = viewport_size_px.y - xformed_pos.y;\n"
|
||||
" vertex2pixel.position.xy = 2.f * xformed_pos/viewport_size_px - 1.f;\n"
|
||||
" vertex2pixel.position.z = 0.f;\n"
|
||||
" vertex2pixel.position.w = 1.f;\n"
|
||||
" vertex2pixel.rect_half_size_px = dst_size_px / 2.f * xform_scale;\n"
|
||||
" vertex2pixel.texcoord_pct = src_p_verts_px[cpu2vertex.vertex_id] / texture_t2d_size_px;\n"
|
||||
" vertex2pixel.sdf_sample_pos = (2.f * dst_verts_pct - 1.f) * vertex2pixel.rect_half_size_px;\n"
|
||||
" vertex2pixel.tint = src_color[cpu2vertex.vertex_id];\n"
|
||||
" vertex2pixel.corner_radius_px = dst_r_verts_px[cpu2vertex.vertex_id];\n"
|
||||
" vertex2pixel.border_thickness_px = border_thickness_px;\n"
|
||||
" vertex2pixel.softness_px = softness_px;\n"
|
||||
" vertex2pixel.omit_texture = omit_texture;\n"
|
||||
" }\n"
|
||||
" return vertex2pixel;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"//- rjf: pixel shader\n"
|
||||
"\n"
|
||||
"float4\n"
|
||||
"ps_main(Vertex2Pixel vertex2pixel) : SV_TARGET\n"
|
||||
"{\n"
|
||||
" // rjf: blend corner colors to produce final tint\n"
|
||||
" float4 tint = vertex2pixel.tint;\n"
|
||||
" \n"
|
||||
" // rjf: sample texture\n"
|
||||
" float4 albedo_sample = float4(1, 1, 1, 1);\n"
|
||||
" if(vertex2pixel.omit_texture < 1)\n"
|
||||
" {\n"
|
||||
" albedo_sample = mul(main_t2d.Sample(main_sampler, vertex2pixel.texcoord_pct), texture_sample_channel_map);\n"
|
||||
" }\n"
|
||||
" \n"
|
||||
" // rjf: determine SDF sample position\n"
|
||||
" float2 sdf_sample_pos = vertex2pixel.sdf_sample_pos;\n"
|
||||
" \n"
|
||||
" // rjf: sample for borders\n"
|
||||
" float border_sdf_t = 1;\n"
|
||||
" if(vertex2pixel.border_thickness_px > 0)\n"
|
||||
" {\n"
|
||||
" float border_sdf_s = rect_sdf(sdf_sample_pos,\n"
|
||||
" vertex2pixel.rect_half_size_px - float2(vertex2pixel.softness_px*2.f, vertex2pixel.softness_px*2.f) - vertex2pixel.border_thickness_px,\n"
|
||||
" max(vertex2pixel.corner_radius_px-vertex2pixel.border_thickness_px, 0));\n"
|
||||
" border_sdf_t = smoothstep(0, 2*vertex2pixel.softness_px, border_sdf_s);\n"
|
||||
" }\n"
|
||||
" if(border_sdf_t < 0.001f)\n"
|
||||
" {\n"
|
||||
" discard;\n"
|
||||
" }\n"
|
||||
" \n"
|
||||
" // rjf: sample for corners\n"
|
||||
" float corner_sdf_t = 1;\n"
|
||||
" if(vertex2pixel.corner_radius_px > 0 || vertex2pixel.softness_px > 0.75f)\n"
|
||||
" {\n"
|
||||
" float corner_sdf_s = rect_sdf(sdf_sample_pos,\n"
|
||||
" vertex2pixel.rect_half_size_px - float2(vertex2pixel.softness_px*2.f, vertex2pixel.softness_px*2.f),\n"
|
||||
" vertex2pixel.corner_radius_px);\n"
|
||||
" corner_sdf_t = 1-smoothstep(0, 2*vertex2pixel.softness_px, corner_sdf_s);\n"
|
||||
" }\n"
|
||||
" \n"
|
||||
" // rjf: form+return final color\n"
|
||||
" float4 final_color = albedo_sample;\n"
|
||||
" final_color *= tint;\n"
|
||||
" final_color.a *= opacity;\n"
|
||||
" final_color.a *= corner_sdf_t;\n"
|
||||
" final_color.a *= border_sdf_t;\n"
|
||||
" return final_color;\n"
|
||||
"}\n"
|
||||
""
|
||||
);
|
||||
|
||||
read_only global String8 r_d3d11_g_blur_shader_src =
|
||||
str8_lit_comp(
|
||||
""
|
||||
"\n"
|
||||
"cbuffer Globals : register(b0)\n"
|
||||
"{\n"
|
||||
" float4 rect;\n"
|
||||
" float4 corner_radii_px;\n"
|
||||
" float2 direction;\n"
|
||||
" float2 viewport_size;\n"
|
||||
" uint blur_count;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"cbuffer Kernel : register(b1)\n"
|
||||
"{\n"
|
||||
" float4 kernel[32];\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"struct CPU2Vertex\n"
|
||||
"{\n"
|
||||
" uint vertex_id : SV_VertexID;\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"struct Vertex2Pixel\n"
|
||||
"{\n"
|
||||
" float4 position : SV_POSITION;\n"
|
||||
" float2 texcoord : TEX;\n"
|
||||
" float2 sdf_sample_pos : SDF;\n"
|
||||
" nointerpolation float2 rect_half_size : RHS;\n"
|
||||
" float corner_radius : RAD;\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"Texture2D stage_t2d : register(t0);\n"
|
||||
"SamplerState stage_sampler : register(s0);\n"
|
||||
"\n"
|
||||
"float rect_sdf(float2 sample_pos, float2 rect_half_size, float r)\n"
|
||||
"{\n"
|
||||
" return length(max(abs(sample_pos) - rect_half_size + r, 0.0)) - r;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"//- rjf: vertex shader\n"
|
||||
"\n"
|
||||
"Vertex2Pixel\n"
|
||||
"vs_main(CPU2Vertex c2v)\n"
|
||||
"{\n"
|
||||
" float2 vertex_positions__scrn[] =\n"
|
||||
" {\n"
|
||||
" rect.xw,\n"
|
||||
" rect.xy,\n"
|
||||
" rect.zw,\n"
|
||||
" rect.zy,\n"
|
||||
" };\n"
|
||||
" float corner_radii__px[] =\n"
|
||||
" {\n"
|
||||
" corner_radii_px.y,\n"
|
||||
" corner_radii_px.x,\n"
|
||||
" corner_radii_px.w,\n"
|
||||
" corner_radii_px.z,\n"
|
||||
" };\n"
|
||||
" float2 cornercoords__pct = float2(\n"
|
||||
" (c2v.vertex_id >> 1) ? 1.f : 0.f,\n"
|
||||
" (c2v.vertex_id & 1) ? 0.f : 1.f);\n"
|
||||
" \n"
|
||||
" float2 vertex_position__pct = vertex_positions__scrn[c2v.vertex_id] / viewport_size;\n"
|
||||
" float2 vertex_position__scr = 2.f * vertex_position__pct - 1.f;\n"
|
||||
" \n"
|
||||
" float2 rect_half_size = float2((rect.z-rect.x)/2, (rect.w-rect.y)/2);\n"
|
||||
" \n"
|
||||
" Vertex2Pixel v2p;\n"
|
||||
" {\n"
|
||||
" v2p.position = float4(vertex_position__scr.x, -vertex_position__scr.y, 0.f, 1.f);\n"
|
||||
" v2p.texcoord = vertex_position__pct;\n"
|
||||
" v2p.sdf_sample_pos = (2.f * cornercoords__pct - 1.f) * rect_half_size;\n"
|
||||
" v2p.rect_half_size = rect_half_size - 2.f;\n"
|
||||
" v2p.corner_radius = corner_radii__px[c2v.vertex_id];\n"
|
||||
" }\n"
|
||||
" return v2p;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"//- rjf: pixel shader\n"
|
||||
"\n"
|
||||
"float4\n"
|
||||
"ps_main(Vertex2Pixel v2p) : SV_TARGET\n"
|
||||
"{\n"
|
||||
" // rjf: blend weighted texture samples into color\n"
|
||||
" float3 color = kernel[0].x * stage_t2d.Sample(stage_sampler, v2p.texcoord).rgb;\n"
|
||||
" \n"
|
||||
" for(uint i = 1; i < blur_count; i += 1)\n"
|
||||
" {\n"
|
||||
" float weight = kernel[i].x;\n"
|
||||
" float offset = kernel[i].y;\n"
|
||||
" color += weight * stage_t2d.Sample(stage_sampler, v2p.texcoord - offset * direction).rgb;\n"
|
||||
" color += weight * stage_t2d.Sample(stage_sampler, v2p.texcoord + offset * direction).rgb;\n"
|
||||
" }\n"
|
||||
" \n"
|
||||
" // rjf: sample for corners\n"
|
||||
" float corner_sdf_s = rect_sdf(v2p.sdf_sample_pos, v2p.rect_half_size, v2p.corner_radius);\n"
|
||||
" float corner_sdf_t = 1-smoothstep(0, 2, corner_sdf_s);\n"
|
||||
" \n"
|
||||
" // rjf: weight output color by sdf\n"
|
||||
" // this is doing alpha testing, leave blurring only where mostly opaque pixels are\n"
|
||||
" if (corner_sdf_t < 0.9f)\n"
|
||||
" {\n"
|
||||
" discard;\n"
|
||||
" }\n"
|
||||
" \n"
|
||||
" return float4(color, 1.f);\n"
|
||||
"}\n"
|
||||
""
|
||||
);
|
||||
|
||||
read_only global String8 r_d3d11_g_mesh_shader_src =
|
||||
str8_lit_comp(
|
||||
""
|
||||
"\n"
|
||||
"cbuffer Uniforms : register(b0)\n"
|
||||
"{\n"
|
||||
" row_major float4x4 xform;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"struct CPU2Vertex\n"
|
||||
"{\n"
|
||||
" float3 position : POS;\n"
|
||||
" float3 normal : NOR;\n"
|
||||
" float2 texcoord : TEX;\n"
|
||||
" float3 color : COL;\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"struct Vertex2Pixel\n"
|
||||
"{\n"
|
||||
" float4 position : SV_POSITION;\n"
|
||||
" float2 texcoord : TEX;\n"
|
||||
" float4 color : COL;\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"Vertex2Pixel vs_main(CPU2Vertex c2v)\n"
|
||||
"{\n"
|
||||
" Vertex2Pixel v2p;\n"
|
||||
" v2p.position = mul(float4(c2v.position, 1.f), xform);\n"
|
||||
" v2p.texcoord = c2v.texcoord;\n"
|
||||
" v2p.color = float4(c2v.color, 1.f);\n"
|
||||
" return v2p;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"float4 ps_main(Vertex2Pixel v2p) : SV_TARGET\n"
|
||||
"{\n"
|
||||
" return v2p.color;\n"
|
||||
"}\n"
|
||||
""
|
||||
);
|
||||
|
||||
read_only global String8 r_d3d11_g_geo3dcomposite_shader_src =
|
||||
str8_lit_comp(
|
||||
""
|
||||
"\n"
|
||||
"struct CPU2Vertex\n"
|
||||
"{\n"
|
||||
" uint vertex_id : SV_VertexID;\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"struct Vertex2Pixel\n"
|
||||
"{\n"
|
||||
" float4 position : SV_POSITION;\n"
|
||||
" float2 texcoord : TEX;\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"Texture2D stage_t2d : register(t0);\n"
|
||||
"SamplerState stage_sampler : register(s0);\n"
|
||||
"\n"
|
||||
"//- rjf: vertex shader\n"
|
||||
"\n"
|
||||
"Vertex2Pixel\n"
|
||||
"vs_main(CPU2Vertex c2v)\n"
|
||||
"{\n"
|
||||
" float4 vertex_positions__modl[] =\n"
|
||||
" {\n"
|
||||
" float4(0, 0, 0, 1),\n"
|
||||
" float4(0, 1, 0, 1),\n"
|
||||
" float4(1, 0, 0, 1),\n"
|
||||
" float4(1, 1, 0, 1),\n"
|
||||
" };\n"
|
||||
" float4 vertex_position__modl = vertex_positions__modl[c2v.vertex_id];\n"
|
||||
" float4 vertex_position__clip = float4(2*vertex_position__modl.x - 1, 2*vertex_position__modl.y - 1, 0, 1);\n"
|
||||
" float2 texcoord = float2(vertex_position__modl.x, vertex_position__modl.y);\n"
|
||||
" texcoord.y = 1-texcoord.y;\n"
|
||||
" Vertex2Pixel v2p;\n"
|
||||
" {\n"
|
||||
" v2p.position = vertex_position__clip;\n"
|
||||
" v2p.texcoord = texcoord;\n"
|
||||
" }\n"
|
||||
" return v2p;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"//- rjf: pixel shader\n"
|
||||
"\n"
|
||||
"float4\n"
|
||||
"ps_main(Vertex2Pixel v2p) : SV_TARGET\n"
|
||||
"{\n"
|
||||
" float4 final_color = stage_t2d.Sample(stage_sampler, v2p.texcoord);\n"
|
||||
" return final_color;\n"
|
||||
"}\n"
|
||||
""
|
||||
);
|
||||
|
||||
read_only global String8 r_d3d11_g_finalize_shader_src =
|
||||
str8_lit_comp(
|
||||
""
|
||||
"\n"
|
||||
"struct CPU2Vertex\n"
|
||||
"{\n"
|
||||
" uint vertex_id : SV_VertexID;\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"struct Vertex2Pixel\n"
|
||||
"{\n"
|
||||
" float4 position : SV_POSITION;\n"
|
||||
" float2 texcoord : TEX;\n"
|
||||
"};\n"
|
||||
"\n"
|
||||
"Texture2D stage_t2d : register(t0);\n"
|
||||
"SamplerState stage_sampler : register(s0);\n"
|
||||
"\n"
|
||||
"//- rjf: vertex shader\n"
|
||||
"\n"
|
||||
"Vertex2Pixel\n"
|
||||
"vs_main(CPU2Vertex c2v)\n"
|
||||
"{\n"
|
||||
" float4 vertex_positions__modl[] =\n"
|
||||
" {\n"
|
||||
" float4(0, 0, 0, 1),\n"
|
||||
" float4(0, 1, 0, 1),\n"
|
||||
" float4(1, 0, 0, 1),\n"
|
||||
" float4(1, 1, 0, 1),\n"
|
||||
" };\n"
|
||||
" float4 vertex_position__modl = vertex_positions__modl[c2v.vertex_id];\n"
|
||||
" float4 vertex_position__clip = float4(2*vertex_position__modl.x - 1, 2*vertex_position__modl.y - 1, 0, 1);\n"
|
||||
" float2 texcoord = float2(vertex_position__modl.x, vertex_position__modl.y);\n"
|
||||
" texcoord.y = 1-texcoord.y;\n"
|
||||
" Vertex2Pixel v2p;\n"
|
||||
" {\n"
|
||||
" v2p.position = vertex_position__clip;\n"
|
||||
" v2p.texcoord = texcoord;\n"
|
||||
" }\n"
|
||||
" return v2p;\n"
|
||||
"}\n"
|
||||
"\n"
|
||||
"//- rjf: pixel shader\n"
|
||||
"\n"
|
||||
"float4\n"
|
||||
"ps_main(Vertex2Pixel v2p) : SV_TARGET\n"
|
||||
"{\n"
|
||||
" float4 final_color = stage_t2d.Sample(stage_sampler, v2p.texcoord);\n"
|
||||
" final_color.a = 1;\n"
|
||||
" return final_color;\n"
|
||||
"}\n"
|
||||
""
|
||||
);
|
||||
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
#endif // RENDER_D3D11_META_H
|
||||
|
||||
@@ -1,66 +1,66 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
String8 r_tex2d_format_display_string_table[9] =
|
||||
{
|
||||
str8_lit_comp("R8"),
|
||||
str8_lit_comp("RG8"),
|
||||
str8_lit_comp("RGBA8"),
|
||||
str8_lit_comp("BGRA8"),
|
||||
str8_lit_comp("R16"),
|
||||
str8_lit_comp("RGBA16"),
|
||||
str8_lit_comp("R32"),
|
||||
str8_lit_comp("RG32"),
|
||||
str8_lit_comp("RGBA32"),
|
||||
};
|
||||
|
||||
U8 r_tex2d_format_bytes_per_pixel_table[9] =
|
||||
{
|
||||
1,
|
||||
2,
|
||||
4,
|
||||
4,
|
||||
2,
|
||||
8,
|
||||
4,
|
||||
8,
|
||||
16,
|
||||
};
|
||||
|
||||
String8 r_tex2d_kind_display_string_table[1] =
|
||||
{
|
||||
str8_lit_comp("$(a.display_string)"),
|
||||
};
|
||||
|
||||
String8 r_tex2d_sample_kind_display_string_table[2] =
|
||||
{
|
||||
str8_lit_comp("Nearest"),
|
||||
str8_lit_comp("Linear"),
|
||||
};
|
||||
|
||||
String8 r_pass_kind_display_string_table[3] =
|
||||
{
|
||||
str8_lit_comp("UI"),
|
||||
str8_lit_comp("Blur"),
|
||||
str8_lit_comp("Geo3D"),
|
||||
};
|
||||
|
||||
U8 r_pass_kind_batch_table[3] =
|
||||
{
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
};
|
||||
|
||||
U64 r_pass_kind_params_size_table[3] =
|
||||
{
|
||||
sizeof(R_PassParams_UI),
|
||||
sizeof(R_PassParams_Blur),
|
||||
sizeof(R_PassParams_Geo3D),
|
||||
};
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
String8 r_tex2d_format_display_string_table[9] =
|
||||
{
|
||||
str8_lit_comp("R8"),
|
||||
str8_lit_comp("RG8"),
|
||||
str8_lit_comp("RGBA8"),
|
||||
str8_lit_comp("BGRA8"),
|
||||
str8_lit_comp("R16"),
|
||||
str8_lit_comp("RGBA16"),
|
||||
str8_lit_comp("R32"),
|
||||
str8_lit_comp("RG32"),
|
||||
str8_lit_comp("RGBA32"),
|
||||
};
|
||||
|
||||
U8 r_tex2d_format_bytes_per_pixel_table[9] =
|
||||
{
|
||||
1,
|
||||
2,
|
||||
4,
|
||||
4,
|
||||
2,
|
||||
8,
|
||||
4,
|
||||
8,
|
||||
16,
|
||||
};
|
||||
|
||||
String8 r_tex2d_kind_display_string_table[1] =
|
||||
{
|
||||
str8_lit_comp("$(a.display_string)"),
|
||||
};
|
||||
|
||||
String8 r_tex2d_sample_kind_display_string_table[2] =
|
||||
{
|
||||
str8_lit_comp("Nearest"),
|
||||
str8_lit_comp("Linear"),
|
||||
};
|
||||
|
||||
String8 r_pass_kind_display_string_table[3] =
|
||||
{
|
||||
str8_lit_comp("UI"),
|
||||
str8_lit_comp("Blur"),
|
||||
str8_lit_comp("Geo3D"),
|
||||
};
|
||||
|
||||
U8 r_pass_kind_batch_table[3] =
|
||||
{
|
||||
1,
|
||||
0,
|
||||
1,
|
||||
};
|
||||
|
||||
U64 r_pass_kind_params_size_table[3] =
|
||||
{
|
||||
sizeof(R_PassParams_UI),
|
||||
sizeof(R_PassParams_Blur),
|
||||
sizeof(R_PassParams_Geo3D),
|
||||
};
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
|
||||
@@ -1,65 +1,65 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#ifndef RENDER_META_H
|
||||
#define RENDER_META_H
|
||||
|
||||
typedef enum R_Tex2DFormat
|
||||
{
|
||||
R_Tex2DFormat_R8,
|
||||
R_Tex2DFormat_RG8,
|
||||
R_Tex2DFormat_RGBA8,
|
||||
R_Tex2DFormat_BGRA8,
|
||||
R_Tex2DFormat_R16,
|
||||
R_Tex2DFormat_RGBA16,
|
||||
R_Tex2DFormat_R32,
|
||||
R_Tex2DFormat_RG32,
|
||||
R_Tex2DFormat_RGBA32,
|
||||
R_Tex2DFormat_COUNT,
|
||||
} R_Tex2DFormat;
|
||||
|
||||
typedef enum R_ResourceKind
|
||||
{
|
||||
R_ResourceKind_Static,
|
||||
R_ResourceKind_Dynamic,
|
||||
R_ResourceKind_Stream,
|
||||
R_ResourceKind_COUNT,
|
||||
} R_ResourceKind;
|
||||
|
||||
typedef enum R_Tex2DSampleKind
|
||||
{
|
||||
R_Tex2DSampleKind_Nearest,
|
||||
R_Tex2DSampleKind_Linear,
|
||||
R_Tex2DSampleKind_COUNT,
|
||||
} R_Tex2DSampleKind;
|
||||
|
||||
typedef enum R_GeoTopologyKind
|
||||
{
|
||||
R_GeoTopologyKind_Lines,
|
||||
R_GeoTopologyKind_LineStrip,
|
||||
R_GeoTopologyKind_Triangles,
|
||||
R_GeoTopologyKind_TriangleStrip,
|
||||
R_GeoTopologyKind_COUNT,
|
||||
} R_GeoTopologyKind;
|
||||
|
||||
typedef enum R_PassKind
|
||||
{
|
||||
R_PassKind_UI,
|
||||
R_PassKind_Blur,
|
||||
R_PassKind_Geo3D,
|
||||
R_PassKind_COUNT,
|
||||
} R_PassKind;
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
extern String8 r_tex2d_format_display_string_table[9];
|
||||
extern U8 r_tex2d_format_bytes_per_pixel_table[9];
|
||||
extern String8 r_tex2d_kind_display_string_table[1];
|
||||
extern String8 r_tex2d_sample_kind_display_string_table[2];
|
||||
extern String8 r_pass_kind_display_string_table[3];
|
||||
extern U8 r_pass_kind_batch_table[3];
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
#endif // RENDER_META_H
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#ifndef RENDER_META_H
|
||||
#define RENDER_META_H
|
||||
|
||||
typedef enum R_Tex2DFormat
|
||||
{
|
||||
R_Tex2DFormat_R8,
|
||||
R_Tex2DFormat_RG8,
|
||||
R_Tex2DFormat_RGBA8,
|
||||
R_Tex2DFormat_BGRA8,
|
||||
R_Tex2DFormat_R16,
|
||||
R_Tex2DFormat_RGBA16,
|
||||
R_Tex2DFormat_R32,
|
||||
R_Tex2DFormat_RG32,
|
||||
R_Tex2DFormat_RGBA32,
|
||||
R_Tex2DFormat_COUNT,
|
||||
} R_Tex2DFormat;
|
||||
|
||||
typedef enum R_ResourceKind
|
||||
{
|
||||
R_ResourceKind_Static,
|
||||
R_ResourceKind_Dynamic,
|
||||
R_ResourceKind_Stream,
|
||||
R_ResourceKind_COUNT,
|
||||
} R_ResourceKind;
|
||||
|
||||
typedef enum R_Tex2DSampleKind
|
||||
{
|
||||
R_Tex2DSampleKind_Nearest,
|
||||
R_Tex2DSampleKind_Linear,
|
||||
R_Tex2DSampleKind_COUNT,
|
||||
} R_Tex2DSampleKind;
|
||||
|
||||
typedef enum R_GeoTopologyKind
|
||||
{
|
||||
R_GeoTopologyKind_Lines,
|
||||
R_GeoTopologyKind_LineStrip,
|
||||
R_GeoTopologyKind_Triangles,
|
||||
R_GeoTopologyKind_TriangleStrip,
|
||||
R_GeoTopologyKind_COUNT,
|
||||
} R_GeoTopologyKind;
|
||||
|
||||
typedef enum R_PassKind
|
||||
{
|
||||
R_PassKind_UI,
|
||||
R_PassKind_Blur,
|
||||
R_PassKind_Geo3D,
|
||||
R_PassKind_COUNT,
|
||||
} R_PassKind;
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
extern String8 r_tex2d_format_display_string_table[9];
|
||||
extern U8 r_tex2d_format_bytes_per_pixel_table[9];
|
||||
extern String8 r_tex2d_kind_display_string_table[1];
|
||||
extern String8 r_tex2d_sample_kind_display_string_table[2];
|
||||
extern String8 r_pass_kind_display_string_table[3];
|
||||
extern U8 r_pass_kind_batch_table[3];
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
#endif // RENDER_META_H
|
||||
|
||||
+50
-58
@@ -1,58 +1,50 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Build Options
|
||||
|
||||
#define BUILD_TITLE "ryan_scratch"
|
||||
#define BUILD_CONSOLE_INTERFACE 1
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Includes
|
||||
|
||||
//- rjf: [lib]
|
||||
#include "lib_rdi_format/rdi_format.h"
|
||||
#include "lib_rdi_format/rdi_format.c"
|
||||
#include "third_party/rad_lzb_simple/rad_lzb_simple.h"
|
||||
#include "third_party/rad_lzb_simple/rad_lzb_simple.c"
|
||||
|
||||
//- rjf: [h]
|
||||
#include "base/base_inc.h"
|
||||
#include "os/os_inc.h"
|
||||
#include "task_system/task_system.h"
|
||||
#include "rdi_make/rdi_make_local.h"
|
||||
#include "coff/coff.h"
|
||||
#include "codeview/codeview.h"
|
||||
#include "codeview/codeview_stringize.h"
|
||||
#include "msf/msf.h"
|
||||
#include "pdb/pdb.h"
|
||||
#include "pdb/pdb_stringize.h"
|
||||
|
||||
//- rjf: [c]
|
||||
#include "base/base_inc.c"
|
||||
#include "os/os_inc.c"
|
||||
#include "task_system/task_system.c"
|
||||
#include "rdi_make/rdi_make_local.c"
|
||||
#include "coff/coff.c"
|
||||
#include "codeview/codeview.c"
|
||||
#include "codeview/codeview_stringize.c"
|
||||
#include "msf/msf.c"
|
||||
#include "pdb/pdb.c"
|
||||
#include "pdb/pdb_stringize.c"
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Entry Point
|
||||
|
||||
internal void
|
||||
entry_point(CmdLine *cmdline)
|
||||
{
|
||||
Arena *arena = arena_alloc();
|
||||
RDIM_SortKey keys_unsorted[] = {{1, (void *)2}, {2}, {3}, {1, (void *)1}, {2}, {3}, {1, (void *)3}, {2}, {3}, {1, (void *)4}, {2}, {3}, {1, (void *)5}, {2}, {3}};
|
||||
U64 keys_count = ArrayCount(keys_unsorted);
|
||||
RDIM_SortKey *keys_sorted = rdim_sort_key_array(arena, keys_unsorted, keys_count);
|
||||
for(U64 idx = 0; idx < keys_count; idx += 1)
|
||||
{
|
||||
printf("%I64u (%I64u),", keys_sorted[idx].key, (U64)keys_sorted[idx].val);
|
||||
}
|
||||
printf("\n");
|
||||
}
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Build Options
|
||||
|
||||
#define BUILD_TITLE "ryan_scratch"
|
||||
#define BUILD_CONSOLE_INTERFACE 1
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Includes
|
||||
|
||||
//- rjf: [lib]
|
||||
#include "lib_rdi_format/rdi_format.h"
|
||||
#include "lib_rdi_format/rdi_format.c"
|
||||
#include "third_party/rad_lzb_simple/rad_lzb_simple.h"
|
||||
#include "third_party/rad_lzb_simple/rad_lzb_simple.c"
|
||||
|
||||
//- rjf: [h]
|
||||
#include "base/base_inc.h"
|
||||
#include "os/os_inc.h"
|
||||
#include "task_system/task_system.h"
|
||||
#include "rdi_make/rdi_make_local.h"
|
||||
#include "coff/coff.h"
|
||||
#include "codeview/codeview.h"
|
||||
#include "codeview/codeview_stringize.h"
|
||||
#include "msf/msf.h"
|
||||
#include "pdb/pdb.h"
|
||||
#include "pdb/pdb_stringize.h"
|
||||
|
||||
//- rjf: [c]
|
||||
#include "base/base_inc.c"
|
||||
#include "os/os_inc.c"
|
||||
#include "task_system/task_system.c"
|
||||
#include "rdi_make/rdi_make_local.c"
|
||||
#include "coff/coff.c"
|
||||
#include "codeview/codeview.c"
|
||||
#include "codeview/codeview_stringize.c"
|
||||
#include "msf/msf.c"
|
||||
#include "pdb/pdb.c"
|
||||
#include "pdb/pdb_stringize.c"
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Entry Point
|
||||
|
||||
internal void
|
||||
entry_point(CmdLine *cmdline)
|
||||
{
|
||||
printf("Hello, World!\n");
|
||||
}
|
||||
|
||||
+1402
-1402
File diff suppressed because it is too large
Load Diff
+149
-141
@@ -1,141 +1,149 @@
|
||||
#ifndef _RAD_LZB_SIMPLE_H_
|
||||
#define _RAD_LZB_SIMPLE_H_
|
||||
|
||||
/*======================================================
|
||||
|
||||
To encode :
|
||||
|
||||
Set up an rr_lzb_simple_context
|
||||
|
||||
fill out m_tableSizeBits (14-16 is typical)
|
||||
|
||||
allocate m_hashTable
|
||||
|
||||
rr_lzb_simple_context c;
|
||||
c.m_tableSizeBits = 14;
|
||||
c.m_hashTable = OODLE_MALLOC_ARRAY(U16,RR_ONE_SA<<c.m_tableSizeBits);
|
||||
|
||||
then call _encode
|
||||
|
||||
NOTE :
|
||||
compressed & raw size are not included in the encoded bytes. You must send
|
||||
them separately.
|
||||
|
||||
NOTE :
|
||||
lzb will never expand. comp_len is <= raw_len strictly.
|
||||
if comp_len = raw_len it indicates that the compressed bytes are just a memcpy
|
||||
of the raw bytes. In that case you do not need to decode.
|
||||
|
||||
To decode :
|
||||
|
||||
if comp_len is == raw_len, then the compressed bytes are just a copy of the
|
||||
raw bytes and you could use them directly without calling decode.
|
||||
|
||||
if you call rr_lzb_simple_decode in that case, then the compressed buffer will
|
||||
be memcpy'd to the raw buffer
|
||||
|
||||
===============================================================*/
|
||||
|
||||
//~ TODO(rjf): temporary glue for building this without the shared rad code:
|
||||
|
||||
#define __RAD64REGS__
|
||||
|
||||
#include <stdint.h>
|
||||
typedef uint8_t U8;
|
||||
typedef uint16_t U16;
|
||||
typedef uint32_t U32;
|
||||
typedef uint64_t U64;
|
||||
typedef int8_t S8;
|
||||
typedef int16_t S16;
|
||||
typedef int32_t S32;
|
||||
typedef int64_t S64;
|
||||
|
||||
typedef S64 SINTa;
|
||||
typedef U64 RAD_U64;
|
||||
typedef S64 RAD_S64;
|
||||
typedef U32 RAD_U32;
|
||||
typedef S32 RAD_S32;
|
||||
|
||||
#define RADINLINE __inline
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
# define RADFORCEINLINE __forceinline
|
||||
#elif defined(__clang__)
|
||||
# define RADFORCEINLINE __attribute__((always_inline))
|
||||
#else
|
||||
# error need force inline for this compiler
|
||||
#endif
|
||||
|
||||
#define RR_STRING_JOIN(arg1, arg2) RR_STRING_JOIN_DELAY(arg1, arg2)
|
||||
#define RR_STRING_JOIN_DELAY(arg1, arg2) RR_STRING_JOIN_IMMEDIATE(arg1, arg2)
|
||||
#define RR_STRING_JOIN_IMMEDIATE(arg1, arg2) arg1 ## arg2
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#define RR_NUMBERNAME(name) RR_STRING_JOIN(name,__COUNTER__)
|
||||
#else
|
||||
#define RR_NUMBERNAME(name) RR_STRING_JOIN(name,__LINE__)
|
||||
#endif
|
||||
|
||||
#define RR_COMPILER_ASSERT(exp) typedef char RR_NUMBERNAME(_dummy_array) [ (exp) ? 1 : -1 ]
|
||||
|
||||
#if defined(__clang__)
|
||||
# define Expect(expr, val) __builtin_expect((expr), (val))
|
||||
#else
|
||||
# define Expect(expr, val) (expr)
|
||||
#endif
|
||||
|
||||
#define RAD_LIKELY(expr) Expect(expr,1)
|
||||
#define RAD_UNLIKELY(expr) Expect(expr,0)
|
||||
|
||||
#define __RADLITTLEENDIAN__ 1
|
||||
#define RAD_PTRBYTES 8
|
||||
#define RR_MIN(a,b) ( (a) < (b) ? (a) : (b) )
|
||||
#define RR_MAX(a,b) ( (a) > (b) ? (a) : (b) )
|
||||
#define RR_ASSERT_ALWAYS(c) do{if(!(c)) {__debugbreak();}}while(0)
|
||||
#define RR_ASSERT(c) RR_ASSERT_ALWAYS(c)
|
||||
|
||||
#define RR_PUT16_LE(ptr,val) *((U16 *)(ptr)) = (U16)(val)
|
||||
#define RR_GET16_LE_UNALIGNED(ptr) *((const U16 *)(ptr))
|
||||
|
||||
static RADINLINE U32
|
||||
rrCtzBytes32(U32 val)
|
||||
{
|
||||
// Don't get fancy here. Assumes val != 0.
|
||||
if (val & 0x000000ffu) return 0;
|
||||
if (val & 0x0000ff00u) return 1;
|
||||
if (val & 0x00ff0000u) return 2;
|
||||
return 3;
|
||||
}
|
||||
|
||||
static RADINLINE U32
|
||||
rrCtzBytes64(U64 val)
|
||||
{
|
||||
U32 lo = (U32) val;
|
||||
return lo ? rrCtzBytes32(lo) : 4 + rrCtzBytes32((U32) (val >> 32));
|
||||
}
|
||||
|
||||
//~
|
||||
|
||||
//---------------------
|
||||
|
||||
typedef struct rr_lzb_simple_context rr_lzb_simple_context;
|
||||
struct rr_lzb_simple_context
|
||||
{
|
||||
U16 * m_hashTable; // must be allocated to sizeof(U16)*(1<<m_tableSizeBits)
|
||||
S32 m_tableSizeBits;
|
||||
};
|
||||
|
||||
SINTa rr_lzb_simple_encode_fast(rr_lzb_simple_context * ctx,
|
||||
const void * raw, SINTa rawLen, void * comp);
|
||||
|
||||
SINTa rr_lzb_simple_encode_veryfast(rr_lzb_simple_context * ctx,
|
||||
const void * raw, SINTa rawLen, void * comp);
|
||||
|
||||
//---------------------
|
||||
|
||||
// rr_lzb_simple_decode returns the number of compressed bytes consumed ( == compLen)
|
||||
SINTa rr_lzb_simple_decode(const void * comp, SINTa compLen, void * raw, SINTa rawLen);
|
||||
|
||||
//---------------------
|
||||
|
||||
#endif // _RAD_LZB_SIMPLE_H_
|
||||
#ifndef _RAD_LZB_SIMPLE_H_
|
||||
#define _RAD_LZB_SIMPLE_H_
|
||||
|
||||
/*======================================================
|
||||
|
||||
To encode :
|
||||
|
||||
Set up an rr_lzb_simple_context
|
||||
|
||||
fill out m_tableSizeBits (14-16 is typical)
|
||||
|
||||
allocate m_hashTable
|
||||
|
||||
rr_lzb_simple_context c;
|
||||
c.m_tableSizeBits = 14;
|
||||
c.m_hashTable = OODLE_MALLOC_ARRAY(U16,RR_ONE_SA<<c.m_tableSizeBits);
|
||||
|
||||
then call _encode
|
||||
|
||||
NOTE :
|
||||
compressed & raw size are not included in the encoded bytes. You must send
|
||||
them separately.
|
||||
|
||||
NOTE :
|
||||
lzb will never expand. comp_len is <= raw_len strictly.
|
||||
if comp_len = raw_len it indicates that the compressed bytes are just a memcpy
|
||||
of the raw bytes. In that case you do not need to decode.
|
||||
|
||||
To decode :
|
||||
|
||||
if comp_len is == raw_len, then the compressed bytes are just a copy of the
|
||||
raw bytes and you could use them directly without calling decode.
|
||||
|
||||
if you call rr_lzb_simple_decode in that case, then the compressed buffer will
|
||||
be memcpy'd to the raw buffer
|
||||
|
||||
===============================================================*/
|
||||
|
||||
//~ TODO(rjf): temporary glue for building this without the shared rad code:
|
||||
|
||||
#define __RAD64REGS__
|
||||
|
||||
#include <stdint.h>
|
||||
typedef uint8_t U8;
|
||||
typedef uint16_t U16;
|
||||
typedef uint32_t U32;
|
||||
typedef uint64_t U64;
|
||||
typedef int8_t S8;
|
||||
typedef int16_t S16;
|
||||
typedef int32_t S32;
|
||||
typedef int64_t S64;
|
||||
|
||||
typedef S64 SINTa;
|
||||
typedef U64 RAD_U64;
|
||||
typedef S64 RAD_S64;
|
||||
typedef U32 RAD_U32;
|
||||
typedef S32 RAD_S32;
|
||||
|
||||
#define RADINLINE __inline
|
||||
|
||||
#if defined(_MSC_VER)
|
||||
# define RADFORCEINLINE __forceinline
|
||||
#elif defined(__clang__)
|
||||
# define RADFORCEINLINE __attribute__((always_inline))
|
||||
#else
|
||||
# error need force inline for this compiler
|
||||
#endif
|
||||
|
||||
#if _MSC_VER
|
||||
# define RADLZB_TRAP() __debugbreak()
|
||||
#elif __clang__ || __GNUC__
|
||||
# define RADLZB_TRAP() __builtin_trap()
|
||||
#else
|
||||
# error Unknown trap intrinsic for this compiler.
|
||||
#endif
|
||||
|
||||
#define RR_STRING_JOIN(arg1, arg2) RR_STRING_JOIN_DELAY(arg1, arg2)
|
||||
#define RR_STRING_JOIN_DELAY(arg1, arg2) RR_STRING_JOIN_IMMEDIATE(arg1, arg2)
|
||||
#define RR_STRING_JOIN_IMMEDIATE(arg1, arg2) arg1 ## arg2
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#define RR_NUMBERNAME(name) RR_STRING_JOIN(name,__COUNTER__)
|
||||
#else
|
||||
#define RR_NUMBERNAME(name) RR_STRING_JOIN(name,__LINE__)
|
||||
#endif
|
||||
|
||||
#define RR_COMPILER_ASSERT(exp) typedef char RR_NUMBERNAME(_dummy_array) [ (exp) ? 1 : -1 ]
|
||||
|
||||
#if defined(__clang__)
|
||||
# define Expect(expr, val) __builtin_expect((expr), (val))
|
||||
#else
|
||||
# define Expect(expr, val) (expr)
|
||||
#endif
|
||||
|
||||
#define RAD_LIKELY(expr) Expect(expr,1)
|
||||
#define RAD_UNLIKELY(expr) Expect(expr,0)
|
||||
|
||||
#define __RADLITTLEENDIAN__ 1
|
||||
#define RAD_PTRBYTES 8
|
||||
#define RR_MIN(a,b) ( (a) < (b) ? (a) : (b) )
|
||||
#define RR_MAX(a,b) ( (a) > (b) ? (a) : (b) )
|
||||
#define RR_ASSERT_ALWAYS(c) do{if(!(c)) {RADLZB_TRAP();}}while(0)
|
||||
#define RR_ASSERT(c) RR_ASSERT_ALWAYS(c)
|
||||
|
||||
#define RR_PUT16_LE(ptr,val) *((U16 *)(ptr)) = (U16)(val)
|
||||
#define RR_GET16_LE_UNALIGNED(ptr) *((const U16 *)(ptr))
|
||||
|
||||
static RADINLINE U32
|
||||
rrCtzBytes32(U32 val)
|
||||
{
|
||||
// Don't get fancy here. Assumes val != 0.
|
||||
if (val & 0x000000ffu) return 0;
|
||||
if (val & 0x0000ff00u) return 1;
|
||||
if (val & 0x00ff0000u) return 2;
|
||||
return 3;
|
||||
}
|
||||
|
||||
static RADINLINE U32
|
||||
rrCtzBytes64(U64 val)
|
||||
{
|
||||
U32 lo = (U32) val;
|
||||
return lo ? rrCtzBytes32(lo) : 4 + rrCtzBytes32((U32) (val >> 32));
|
||||
}
|
||||
|
||||
//~
|
||||
|
||||
//---------------------
|
||||
|
||||
typedef struct rr_lzb_simple_context rr_lzb_simple_context;
|
||||
struct rr_lzb_simple_context
|
||||
{
|
||||
U16 * m_hashTable; // must be allocated to sizeof(U16)*(1<<m_tableSizeBits)
|
||||
S32 m_tableSizeBits;
|
||||
};
|
||||
|
||||
SINTa rr_lzb_simple_encode_fast(rr_lzb_simple_context * ctx,
|
||||
const void * raw, SINTa rawLen, void * comp);
|
||||
|
||||
SINTa rr_lzb_simple_encode_veryfast(rr_lzb_simple_context * ctx,
|
||||
const void * raw, SINTa rawLen, void * comp);
|
||||
|
||||
//---------------------
|
||||
|
||||
// rr_lzb_simple_decode returns the number of compressed bytes consumed ( == compLen)
|
||||
SINTa rr_lzb_simple_decode(const void * comp, SINTa compLen, void * raw, SINTa rawLen);
|
||||
|
||||
//---------------------
|
||||
|
||||
#endif // _RAD_LZB_SIMPLE_H_
|
||||
|
||||
@@ -1,124 +1,124 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
U8 tg_kind_basic_byte_size_table[54] =
|
||||
{
|
||||
0,
|
||||
0,
|
||||
0xFF,
|
||||
1,
|
||||
2,
|
||||
4,
|
||||
1,
|
||||
2,
|
||||
4,
|
||||
1,
|
||||
2,
|
||||
4,
|
||||
8,
|
||||
16,
|
||||
32,
|
||||
64,
|
||||
1,
|
||||
2,
|
||||
4,
|
||||
8,
|
||||
16,
|
||||
32,
|
||||
64,
|
||||
1,
|
||||
2,
|
||||
4,
|
||||
4,
|
||||
6,
|
||||
8,
|
||||
10,
|
||||
16,
|
||||
8,
|
||||
16,
|
||||
20,
|
||||
32,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
};
|
||||
|
||||
String8 tg_kind_basic_string_table[54] =
|
||||
{
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp("void"),
|
||||
str8_lit_comp("HANDLE"),
|
||||
str8_lit_comp("char8"),
|
||||
str8_lit_comp("char16"),
|
||||
str8_lit_comp("char32"),
|
||||
str8_lit_comp("uchar8"),
|
||||
str8_lit_comp("uchar16"),
|
||||
str8_lit_comp("uchar32"),
|
||||
str8_lit_comp("U8"),
|
||||
str8_lit_comp("U16"),
|
||||
str8_lit_comp("U32"),
|
||||
str8_lit_comp("U64"),
|
||||
str8_lit_comp("U128"),
|
||||
str8_lit_comp("U256"),
|
||||
str8_lit_comp("U512"),
|
||||
str8_lit_comp("S8"),
|
||||
str8_lit_comp("S16"),
|
||||
str8_lit_comp("S32"),
|
||||
str8_lit_comp("S64"),
|
||||
str8_lit_comp("S128"),
|
||||
str8_lit_comp("S256"),
|
||||
str8_lit_comp("S512"),
|
||||
str8_lit_comp("bool"),
|
||||
str8_lit_comp("F16"),
|
||||
str8_lit_comp("F32"),
|
||||
str8_lit_comp("F32PP"),
|
||||
str8_lit_comp("F48"),
|
||||
str8_lit_comp("F64"),
|
||||
str8_lit_comp("F80"),
|
||||
str8_lit_comp("F128"),
|
||||
str8_lit_comp("ComplexF32"),
|
||||
str8_lit_comp("ComplexF64"),
|
||||
str8_lit_comp("ComplexF80"),
|
||||
str8_lit_comp("ComplexF128"),
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp("struct"),
|
||||
str8_lit_comp("class"),
|
||||
str8_lit_comp("union"),
|
||||
str8_lit_comp("enum"),
|
||||
str8_lit_comp("typedef"),
|
||||
str8_lit_comp("struct"),
|
||||
str8_lit_comp("union"),
|
||||
str8_lit_comp("class"),
|
||||
str8_lit_comp("enum"),
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp(""),
|
||||
};
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
U8 tg_kind_basic_byte_size_table[54] =
|
||||
{
|
||||
0,
|
||||
0,
|
||||
0xFF,
|
||||
1,
|
||||
2,
|
||||
4,
|
||||
1,
|
||||
2,
|
||||
4,
|
||||
1,
|
||||
2,
|
||||
4,
|
||||
8,
|
||||
16,
|
||||
32,
|
||||
64,
|
||||
1,
|
||||
2,
|
||||
4,
|
||||
8,
|
||||
16,
|
||||
32,
|
||||
64,
|
||||
1,
|
||||
2,
|
||||
4,
|
||||
4,
|
||||
6,
|
||||
8,
|
||||
10,
|
||||
16,
|
||||
8,
|
||||
16,
|
||||
20,
|
||||
32,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
};
|
||||
|
||||
String8 tg_kind_basic_string_table[54] =
|
||||
{
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp("void"),
|
||||
str8_lit_comp("HANDLE"),
|
||||
str8_lit_comp("char8"),
|
||||
str8_lit_comp("char16"),
|
||||
str8_lit_comp("char32"),
|
||||
str8_lit_comp("uchar8"),
|
||||
str8_lit_comp("uchar16"),
|
||||
str8_lit_comp("uchar32"),
|
||||
str8_lit_comp("U8"),
|
||||
str8_lit_comp("U16"),
|
||||
str8_lit_comp("U32"),
|
||||
str8_lit_comp("U64"),
|
||||
str8_lit_comp("U128"),
|
||||
str8_lit_comp("U256"),
|
||||
str8_lit_comp("U512"),
|
||||
str8_lit_comp("S8"),
|
||||
str8_lit_comp("S16"),
|
||||
str8_lit_comp("S32"),
|
||||
str8_lit_comp("S64"),
|
||||
str8_lit_comp("S128"),
|
||||
str8_lit_comp("S256"),
|
||||
str8_lit_comp("S512"),
|
||||
str8_lit_comp("bool"),
|
||||
str8_lit_comp("F16"),
|
||||
str8_lit_comp("F32"),
|
||||
str8_lit_comp("F32PP"),
|
||||
str8_lit_comp("F48"),
|
||||
str8_lit_comp("F64"),
|
||||
str8_lit_comp("F80"),
|
||||
str8_lit_comp("F128"),
|
||||
str8_lit_comp("ComplexF32"),
|
||||
str8_lit_comp("ComplexF64"),
|
||||
str8_lit_comp("ComplexF80"),
|
||||
str8_lit_comp("ComplexF128"),
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp("struct"),
|
||||
str8_lit_comp("class"),
|
||||
str8_lit_comp("union"),
|
||||
str8_lit_comp("enum"),
|
||||
str8_lit_comp("typedef"),
|
||||
str8_lit_comp("struct"),
|
||||
str8_lit_comp("union"),
|
||||
str8_lit_comp("class"),
|
||||
str8_lit_comp("enum"),
|
||||
str8_lit_comp(""),
|
||||
str8_lit_comp(""),
|
||||
};
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
|
||||
@@ -1,84 +1,84 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#ifndef TYPE_GRAPH_META_H
|
||||
#define TYPE_GRAPH_META_H
|
||||
|
||||
typedef enum TG_Kind
|
||||
{
|
||||
TG_Kind_Null,
|
||||
TG_Kind_Void,
|
||||
TG_Kind_Handle,
|
||||
TG_Kind_Char8,
|
||||
TG_Kind_Char16,
|
||||
TG_Kind_Char32,
|
||||
TG_Kind_UChar8,
|
||||
TG_Kind_UChar16,
|
||||
TG_Kind_UChar32,
|
||||
TG_Kind_U8,
|
||||
TG_Kind_U16,
|
||||
TG_Kind_U32,
|
||||
TG_Kind_U64,
|
||||
TG_Kind_U128,
|
||||
TG_Kind_U256,
|
||||
TG_Kind_U512,
|
||||
TG_Kind_S8,
|
||||
TG_Kind_S16,
|
||||
TG_Kind_S32,
|
||||
TG_Kind_S64,
|
||||
TG_Kind_S128,
|
||||
TG_Kind_S256,
|
||||
TG_Kind_S512,
|
||||
TG_Kind_Bool,
|
||||
TG_Kind_F16,
|
||||
TG_Kind_F32,
|
||||
TG_Kind_F32PP,
|
||||
TG_Kind_F48,
|
||||
TG_Kind_F64,
|
||||
TG_Kind_F80,
|
||||
TG_Kind_F128,
|
||||
TG_Kind_ComplexF32,
|
||||
TG_Kind_ComplexF64,
|
||||
TG_Kind_ComplexF80,
|
||||
TG_Kind_ComplexF128,
|
||||
TG_Kind_Modifier,
|
||||
TG_Kind_Ptr,
|
||||
TG_Kind_LRef,
|
||||
TG_Kind_RRef,
|
||||
TG_Kind_Array,
|
||||
TG_Kind_Function,
|
||||
TG_Kind_Method,
|
||||
TG_Kind_MemberPtr,
|
||||
TG_Kind_Struct,
|
||||
TG_Kind_Class,
|
||||
TG_Kind_Union,
|
||||
TG_Kind_Enum,
|
||||
TG_Kind_Alias,
|
||||
TG_Kind_IncompleteStruct,
|
||||
TG_Kind_IncompleteUnion,
|
||||
TG_Kind_IncompleteClass,
|
||||
TG_Kind_IncompleteEnum,
|
||||
TG_Kind_Bitfield,
|
||||
TG_Kind_Variadic,
|
||||
TG_Kind_COUNT,
|
||||
TG_Kind_FirstBasic = TG_Kind_Void,
|
||||
TG_Kind_LastBasic = TG_Kind_ComplexF128,
|
||||
TG_Kind_FirstInteger = TG_Kind_Char8,
|
||||
TG_Kind_LastInteger = TG_Kind_S512,
|
||||
TG_Kind_FirstSigned1 = TG_Kind_Char8,
|
||||
TG_Kind_LastSigned1 = TG_Kind_Char32,
|
||||
TG_Kind_FirstSigned2 = TG_Kind_S8,
|
||||
TG_Kind_LastSigned2 = TG_Kind_S512,
|
||||
TG_Kind_FirstIncomplete = TG_Kind_IncompleteStruct,
|
||||
TG_Kind_LastIncomplete = TG_Kind_IncompleteEnum,
|
||||
} TG_Kind;
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
extern U8 tg_kind_basic_byte_size_table[54];
|
||||
extern String8 tg_kind_basic_string_table[54];
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
#endif // TYPE_GRAPH_META_H
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#ifndef TYPE_GRAPH_META_H
|
||||
#define TYPE_GRAPH_META_H
|
||||
|
||||
typedef enum TG_Kind
|
||||
{
|
||||
TG_Kind_Null,
|
||||
TG_Kind_Void,
|
||||
TG_Kind_Handle,
|
||||
TG_Kind_Char8,
|
||||
TG_Kind_Char16,
|
||||
TG_Kind_Char32,
|
||||
TG_Kind_UChar8,
|
||||
TG_Kind_UChar16,
|
||||
TG_Kind_UChar32,
|
||||
TG_Kind_U8,
|
||||
TG_Kind_U16,
|
||||
TG_Kind_U32,
|
||||
TG_Kind_U64,
|
||||
TG_Kind_U128,
|
||||
TG_Kind_U256,
|
||||
TG_Kind_U512,
|
||||
TG_Kind_S8,
|
||||
TG_Kind_S16,
|
||||
TG_Kind_S32,
|
||||
TG_Kind_S64,
|
||||
TG_Kind_S128,
|
||||
TG_Kind_S256,
|
||||
TG_Kind_S512,
|
||||
TG_Kind_Bool,
|
||||
TG_Kind_F16,
|
||||
TG_Kind_F32,
|
||||
TG_Kind_F32PP,
|
||||
TG_Kind_F48,
|
||||
TG_Kind_F64,
|
||||
TG_Kind_F80,
|
||||
TG_Kind_F128,
|
||||
TG_Kind_ComplexF32,
|
||||
TG_Kind_ComplexF64,
|
||||
TG_Kind_ComplexF80,
|
||||
TG_Kind_ComplexF128,
|
||||
TG_Kind_Modifier,
|
||||
TG_Kind_Ptr,
|
||||
TG_Kind_LRef,
|
||||
TG_Kind_RRef,
|
||||
TG_Kind_Array,
|
||||
TG_Kind_Function,
|
||||
TG_Kind_Method,
|
||||
TG_Kind_MemberPtr,
|
||||
TG_Kind_Struct,
|
||||
TG_Kind_Class,
|
||||
TG_Kind_Union,
|
||||
TG_Kind_Enum,
|
||||
TG_Kind_Alias,
|
||||
TG_Kind_IncompleteStruct,
|
||||
TG_Kind_IncompleteUnion,
|
||||
TG_Kind_IncompleteClass,
|
||||
TG_Kind_IncompleteEnum,
|
||||
TG_Kind_Bitfield,
|
||||
TG_Kind_Variadic,
|
||||
TG_Kind_COUNT,
|
||||
TG_Kind_FirstBasic = TG_Kind_Void,
|
||||
TG_Kind_LastBasic = TG_Kind_ComplexF128,
|
||||
TG_Kind_FirstInteger = TG_Kind_Char8,
|
||||
TG_Kind_LastInteger = TG_Kind_S512,
|
||||
TG_Kind_FirstSigned1 = TG_Kind_Char8,
|
||||
TG_Kind_LastSigned1 = TG_Kind_Char32,
|
||||
TG_Kind_FirstSigned2 = TG_Kind_S8,
|
||||
TG_Kind_LastSigned2 = TG_Kind_S512,
|
||||
TG_Kind_FirstIncomplete = TG_Kind_IncompleteStruct,
|
||||
TG_Kind_LastIncomplete = TG_Kind_IncompleteEnum,
|
||||
} TG_Kind;
|
||||
|
||||
C_LINKAGE_BEGIN
|
||||
extern U8 tg_kind_basic_byte_size_table[54];
|
||||
extern String8 tg_kind_basic_string_table[54];
|
||||
|
||||
C_LINKAGE_END
|
||||
|
||||
#endif // TYPE_GRAPH_META_H
|
||||
|
||||
+175
-175
@@ -1,175 +1,175 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#if 0
|
||||
#define UI_Parent(v) DeferLoop(ui_push_parent(v), ui_pop_parent())
|
||||
#define UI_ChildLayoutAxis(v) DeferLoop(ui_push_child_layout_axis(v), ui_pop_child_layout_axis())
|
||||
#define UI_FixedX(v) DeferLoop(ui_push_fixed_x(v), ui_pop_fixed_x())
|
||||
#define UI_FixedY(v) DeferLoop(ui_push_fixed_y(v), ui_pop_fixed_y())
|
||||
#define UI_FixedWidth(v) DeferLoop(ui_push_fixed_width(v), ui_pop_fixed_width())
|
||||
#define UI_FixedHeight(v) DeferLoop(ui_push_fixed_height(v), ui_pop_fixed_height())
|
||||
#define UI_PrefWidth(v) DeferLoop(ui_push_pref_width(v), ui_pop_pref_width())
|
||||
#define UI_PrefHeight(v) DeferLoop(ui_push_pref_height(v), ui_pop_pref_height())
|
||||
#define UI_Flags(v) DeferLoop(ui_push_flags(v), ui_pop_flags())
|
||||
#define UI_FocusHot(v) DeferLoop(ui_push_focus_hot(v), ui_pop_focus_hot())
|
||||
#define UI_FocusActive(v) DeferLoop(ui_push_focus_active(v), ui_pop_focus_active())
|
||||
#define UI_FastpathCodepoint(v) DeferLoop(ui_push_fastpath_codepoint(v), ui_pop_fastpath_codepoint())
|
||||
#define UI_GroupKey(v) DeferLoop(ui_push_group_key(v), ui_pop_group_key())
|
||||
#define UI_Transparency(v) DeferLoop(ui_push_transparency(v), ui_pop_transparency())
|
||||
#define UI_Palette(v) DeferLoop(ui_push_palette(v), ui_pop_palette())
|
||||
#define UI_Squish(v) DeferLoop(ui_push_squish(v), ui_pop_squish())
|
||||
#define UI_HoverCursor(v) DeferLoop(ui_push_hover_cursor(v), ui_pop_hover_cursor())
|
||||
#define UI_Font(v) DeferLoop(ui_push_font(v), ui_pop_font())
|
||||
#define UI_FontSize(v) DeferLoop(ui_push_font_size(v), ui_pop_font_size())
|
||||
#define UI_TextRasterFlags(v) DeferLoop(ui_push_text_raster_flags(v), ui_pop_text_raster_flags())
|
||||
#define UI_TabSize(v) DeferLoop(ui_push_tab_size(v), ui_pop_tab_size())
|
||||
#define UI_CornerRadius00(v) DeferLoop(ui_push_corner_radius_00(v), ui_pop_corner_radius_00())
|
||||
#define UI_CornerRadius01(v) DeferLoop(ui_push_corner_radius_01(v), ui_pop_corner_radius_01())
|
||||
#define UI_CornerRadius10(v) DeferLoop(ui_push_corner_radius_10(v), ui_pop_corner_radius_10())
|
||||
#define UI_CornerRadius11(v) DeferLoop(ui_push_corner_radius_11(v), ui_pop_corner_radius_11())
|
||||
#define UI_BlurSize(v) DeferLoop(ui_push_blur_size(v), ui_pop_blur_size())
|
||||
#define UI_TextPadding(v) DeferLoop(ui_push_text_padding(v), ui_pop_text_padding())
|
||||
#define UI_TextAlignment(v) DeferLoop(ui_push_text_alignment(v), ui_pop_text_alignment())
|
||||
#endif
|
||||
internal UI_Box * ui_top_parent(void) { UI_StackTopImpl(ui_state, Parent, parent) }
|
||||
internal Axis2 ui_top_child_layout_axis(void) { UI_StackTopImpl(ui_state, ChildLayoutAxis, child_layout_axis) }
|
||||
internal F32 ui_top_fixed_x(void) { UI_StackTopImpl(ui_state, FixedX, fixed_x) }
|
||||
internal F32 ui_top_fixed_y(void) { UI_StackTopImpl(ui_state, FixedY, fixed_y) }
|
||||
internal F32 ui_top_fixed_width(void) { UI_StackTopImpl(ui_state, FixedWidth, fixed_width) }
|
||||
internal F32 ui_top_fixed_height(void) { UI_StackTopImpl(ui_state, FixedHeight, fixed_height) }
|
||||
internal UI_Size ui_top_pref_width(void) { UI_StackTopImpl(ui_state, PrefWidth, pref_width) }
|
||||
internal UI_Size ui_top_pref_height(void) { UI_StackTopImpl(ui_state, PrefHeight, pref_height) }
|
||||
internal UI_BoxFlags ui_top_flags(void) { UI_StackTopImpl(ui_state, Flags, flags) }
|
||||
internal UI_FocusKind ui_top_focus_hot(void) { UI_StackTopImpl(ui_state, FocusHot, focus_hot) }
|
||||
internal UI_FocusKind ui_top_focus_active(void) { UI_StackTopImpl(ui_state, FocusActive, focus_active) }
|
||||
internal U32 ui_top_fastpath_codepoint(void) { UI_StackTopImpl(ui_state, FastpathCodepoint, fastpath_codepoint) }
|
||||
internal UI_Key ui_top_group_key(void) { UI_StackTopImpl(ui_state, GroupKey, group_key) }
|
||||
internal F32 ui_top_transparency(void) { UI_StackTopImpl(ui_state, Transparency, transparency) }
|
||||
internal UI_Palette* ui_top_palette(void) { UI_StackTopImpl(ui_state, Palette, palette) }
|
||||
internal F32 ui_top_squish(void) { UI_StackTopImpl(ui_state, Squish, squish) }
|
||||
internal OS_Cursor ui_top_hover_cursor(void) { UI_StackTopImpl(ui_state, HoverCursor, hover_cursor) }
|
||||
internal F_Tag ui_top_font(void) { UI_StackTopImpl(ui_state, Font, font) }
|
||||
internal F32 ui_top_font_size(void) { UI_StackTopImpl(ui_state, FontSize, font_size) }
|
||||
internal F_RasterFlags ui_top_text_raster_flags(void) { UI_StackTopImpl(ui_state, TextRasterFlags, text_raster_flags) }
|
||||
internal F32 ui_top_tab_size(void) { UI_StackTopImpl(ui_state, TabSize, tab_size) }
|
||||
internal F32 ui_top_corner_radius_00(void) { UI_StackTopImpl(ui_state, CornerRadius00, corner_radius_00) }
|
||||
internal F32 ui_top_corner_radius_01(void) { UI_StackTopImpl(ui_state, CornerRadius01, corner_radius_01) }
|
||||
internal F32 ui_top_corner_radius_10(void) { UI_StackTopImpl(ui_state, CornerRadius10, corner_radius_10) }
|
||||
internal F32 ui_top_corner_radius_11(void) { UI_StackTopImpl(ui_state, CornerRadius11, corner_radius_11) }
|
||||
internal F32 ui_top_blur_size(void) { UI_StackTopImpl(ui_state, BlurSize, blur_size) }
|
||||
internal F32 ui_top_text_padding(void) { UI_StackTopImpl(ui_state, TextPadding, text_padding) }
|
||||
internal UI_TextAlign ui_top_text_alignment(void) { UI_StackTopImpl(ui_state, TextAlignment, text_alignment) }
|
||||
internal UI_Box * ui_bottom_parent(void) { UI_StackBottomImpl(ui_state, Parent, parent) }
|
||||
internal Axis2 ui_bottom_child_layout_axis(void) { UI_StackBottomImpl(ui_state, ChildLayoutAxis, child_layout_axis) }
|
||||
internal F32 ui_bottom_fixed_x(void) { UI_StackBottomImpl(ui_state, FixedX, fixed_x) }
|
||||
internal F32 ui_bottom_fixed_y(void) { UI_StackBottomImpl(ui_state, FixedY, fixed_y) }
|
||||
internal F32 ui_bottom_fixed_width(void) { UI_StackBottomImpl(ui_state, FixedWidth, fixed_width) }
|
||||
internal F32 ui_bottom_fixed_height(void) { UI_StackBottomImpl(ui_state, FixedHeight, fixed_height) }
|
||||
internal UI_Size ui_bottom_pref_width(void) { UI_StackBottomImpl(ui_state, PrefWidth, pref_width) }
|
||||
internal UI_Size ui_bottom_pref_height(void) { UI_StackBottomImpl(ui_state, PrefHeight, pref_height) }
|
||||
internal UI_BoxFlags ui_bottom_flags(void) { UI_StackBottomImpl(ui_state, Flags, flags) }
|
||||
internal UI_FocusKind ui_bottom_focus_hot(void) { UI_StackBottomImpl(ui_state, FocusHot, focus_hot) }
|
||||
internal UI_FocusKind ui_bottom_focus_active(void) { UI_StackBottomImpl(ui_state, FocusActive, focus_active) }
|
||||
internal U32 ui_bottom_fastpath_codepoint(void) { UI_StackBottomImpl(ui_state, FastpathCodepoint, fastpath_codepoint) }
|
||||
internal UI_Key ui_bottom_group_key(void) { UI_StackBottomImpl(ui_state, GroupKey, group_key) }
|
||||
internal F32 ui_bottom_transparency(void) { UI_StackBottomImpl(ui_state, Transparency, transparency) }
|
||||
internal UI_Palette* ui_bottom_palette(void) { UI_StackBottomImpl(ui_state, Palette, palette) }
|
||||
internal F32 ui_bottom_squish(void) { UI_StackBottomImpl(ui_state, Squish, squish) }
|
||||
internal OS_Cursor ui_bottom_hover_cursor(void) { UI_StackBottomImpl(ui_state, HoverCursor, hover_cursor) }
|
||||
internal F_Tag ui_bottom_font(void) { UI_StackBottomImpl(ui_state, Font, font) }
|
||||
internal F32 ui_bottom_font_size(void) { UI_StackBottomImpl(ui_state, FontSize, font_size) }
|
||||
internal F_RasterFlags ui_bottom_text_raster_flags(void) { UI_StackBottomImpl(ui_state, TextRasterFlags, text_raster_flags) }
|
||||
internal F32 ui_bottom_tab_size(void) { UI_StackBottomImpl(ui_state, TabSize, tab_size) }
|
||||
internal F32 ui_bottom_corner_radius_00(void) { UI_StackBottomImpl(ui_state, CornerRadius00, corner_radius_00) }
|
||||
internal F32 ui_bottom_corner_radius_01(void) { UI_StackBottomImpl(ui_state, CornerRadius01, corner_radius_01) }
|
||||
internal F32 ui_bottom_corner_radius_10(void) { UI_StackBottomImpl(ui_state, CornerRadius10, corner_radius_10) }
|
||||
internal F32 ui_bottom_corner_radius_11(void) { UI_StackBottomImpl(ui_state, CornerRadius11, corner_radius_11) }
|
||||
internal F32 ui_bottom_blur_size(void) { UI_StackBottomImpl(ui_state, BlurSize, blur_size) }
|
||||
internal F32 ui_bottom_text_padding(void) { UI_StackBottomImpl(ui_state, TextPadding, text_padding) }
|
||||
internal UI_TextAlign ui_bottom_text_alignment(void) { UI_StackBottomImpl(ui_state, TextAlignment, text_alignment) }
|
||||
internal UI_Box * ui_push_parent(UI_Box * v) { UI_StackPushImpl(ui_state, Parent, parent, UI_Box *, v) }
|
||||
internal Axis2 ui_push_child_layout_axis(Axis2 v) { UI_StackPushImpl(ui_state, ChildLayoutAxis, child_layout_axis, Axis2, v) }
|
||||
internal F32 ui_push_fixed_x(F32 v) { UI_StackPushImpl(ui_state, FixedX, fixed_x, F32, v) }
|
||||
internal F32 ui_push_fixed_y(F32 v) { UI_StackPushImpl(ui_state, FixedY, fixed_y, F32, v) }
|
||||
internal F32 ui_push_fixed_width(F32 v) { UI_StackPushImpl(ui_state, FixedWidth, fixed_width, F32, v) }
|
||||
internal F32 ui_push_fixed_height(F32 v) { UI_StackPushImpl(ui_state, FixedHeight, fixed_height, F32, v) }
|
||||
internal UI_Size ui_push_pref_width(UI_Size v) { UI_StackPushImpl(ui_state, PrefWidth, pref_width, UI_Size, v) }
|
||||
internal UI_Size ui_push_pref_height(UI_Size v) { UI_StackPushImpl(ui_state, PrefHeight, pref_height, UI_Size, v) }
|
||||
internal UI_BoxFlags ui_push_flags(UI_BoxFlags v) { UI_StackPushImpl(ui_state, Flags, flags, UI_BoxFlags, v) }
|
||||
internal UI_FocusKind ui_push_focus_hot(UI_FocusKind v) { UI_StackPushImpl(ui_state, FocusHot, focus_hot, UI_FocusKind, v) }
|
||||
internal UI_FocusKind ui_push_focus_active(UI_FocusKind v) { UI_StackPushImpl(ui_state, FocusActive, focus_active, UI_FocusKind, v) }
|
||||
internal U32 ui_push_fastpath_codepoint(U32 v) { UI_StackPushImpl(ui_state, FastpathCodepoint, fastpath_codepoint, U32, v) }
|
||||
internal UI_Key ui_push_group_key(UI_Key v) { UI_StackPushImpl(ui_state, GroupKey, group_key, UI_Key, v) }
|
||||
internal F32 ui_push_transparency(F32 v) { UI_StackPushImpl(ui_state, Transparency, transparency, F32, v) }
|
||||
internal UI_Palette* ui_push_palette(UI_Palette* v) { UI_StackPushImpl(ui_state, Palette, palette, UI_Palette* , v) }
|
||||
internal F32 ui_push_squish(F32 v) { UI_StackPushImpl(ui_state, Squish, squish, F32, v) }
|
||||
internal OS_Cursor ui_push_hover_cursor(OS_Cursor v) { UI_StackPushImpl(ui_state, HoverCursor, hover_cursor, OS_Cursor, v) }
|
||||
internal F_Tag ui_push_font(F_Tag v) { UI_StackPushImpl(ui_state, Font, font, F_Tag, v) }
|
||||
internal F32 ui_push_font_size(F32 v) { UI_StackPushImpl(ui_state, FontSize, font_size, F32, v) }
|
||||
internal F_RasterFlags ui_push_text_raster_flags(F_RasterFlags v) { UI_StackPushImpl(ui_state, TextRasterFlags, text_raster_flags, F_RasterFlags, v) }
|
||||
internal F32 ui_push_tab_size(F32 v) { UI_StackPushImpl(ui_state, TabSize, tab_size, F32, v) }
|
||||
internal F32 ui_push_corner_radius_00(F32 v) { UI_StackPushImpl(ui_state, CornerRadius00, corner_radius_00, F32, v) }
|
||||
internal F32 ui_push_corner_radius_01(F32 v) { UI_StackPushImpl(ui_state, CornerRadius01, corner_radius_01, F32, v) }
|
||||
internal F32 ui_push_corner_radius_10(F32 v) { UI_StackPushImpl(ui_state, CornerRadius10, corner_radius_10, F32, v) }
|
||||
internal F32 ui_push_corner_radius_11(F32 v) { UI_StackPushImpl(ui_state, CornerRadius11, corner_radius_11, F32, v) }
|
||||
internal F32 ui_push_blur_size(F32 v) { UI_StackPushImpl(ui_state, BlurSize, blur_size, F32, v) }
|
||||
internal F32 ui_push_text_padding(F32 v) { UI_StackPushImpl(ui_state, TextPadding, text_padding, F32, v) }
|
||||
internal UI_TextAlign ui_push_text_alignment(UI_TextAlign v) { UI_StackPushImpl(ui_state, TextAlignment, text_alignment, UI_TextAlign, v) }
|
||||
internal UI_Box * ui_pop_parent(void) { UI_StackPopImpl(ui_state, Parent, parent) }
|
||||
internal Axis2 ui_pop_child_layout_axis(void) { UI_StackPopImpl(ui_state, ChildLayoutAxis, child_layout_axis) }
|
||||
internal F32 ui_pop_fixed_x(void) { UI_StackPopImpl(ui_state, FixedX, fixed_x) }
|
||||
internal F32 ui_pop_fixed_y(void) { UI_StackPopImpl(ui_state, FixedY, fixed_y) }
|
||||
internal F32 ui_pop_fixed_width(void) { UI_StackPopImpl(ui_state, FixedWidth, fixed_width) }
|
||||
internal F32 ui_pop_fixed_height(void) { UI_StackPopImpl(ui_state, FixedHeight, fixed_height) }
|
||||
internal UI_Size ui_pop_pref_width(void) { UI_StackPopImpl(ui_state, PrefWidth, pref_width) }
|
||||
internal UI_Size ui_pop_pref_height(void) { UI_StackPopImpl(ui_state, PrefHeight, pref_height) }
|
||||
internal UI_BoxFlags ui_pop_flags(void) { UI_StackPopImpl(ui_state, Flags, flags) }
|
||||
internal UI_FocusKind ui_pop_focus_hot(void) { UI_StackPopImpl(ui_state, FocusHot, focus_hot) }
|
||||
internal UI_FocusKind ui_pop_focus_active(void) { UI_StackPopImpl(ui_state, FocusActive, focus_active) }
|
||||
internal U32 ui_pop_fastpath_codepoint(void) { UI_StackPopImpl(ui_state, FastpathCodepoint, fastpath_codepoint) }
|
||||
internal UI_Key ui_pop_group_key(void) { UI_StackPopImpl(ui_state, GroupKey, group_key) }
|
||||
internal F32 ui_pop_transparency(void) { UI_StackPopImpl(ui_state, Transparency, transparency) }
|
||||
internal UI_Palette* ui_pop_palette(void) { UI_StackPopImpl(ui_state, Palette, palette) }
|
||||
internal F32 ui_pop_squish(void) { UI_StackPopImpl(ui_state, Squish, squish) }
|
||||
internal OS_Cursor ui_pop_hover_cursor(void) { UI_StackPopImpl(ui_state, HoverCursor, hover_cursor) }
|
||||
internal F_Tag ui_pop_font(void) { UI_StackPopImpl(ui_state, Font, font) }
|
||||
internal F32 ui_pop_font_size(void) { UI_StackPopImpl(ui_state, FontSize, font_size) }
|
||||
internal F_RasterFlags ui_pop_text_raster_flags(void) { UI_StackPopImpl(ui_state, TextRasterFlags, text_raster_flags) }
|
||||
internal F32 ui_pop_tab_size(void) { UI_StackPopImpl(ui_state, TabSize, tab_size) }
|
||||
internal F32 ui_pop_corner_radius_00(void) { UI_StackPopImpl(ui_state, CornerRadius00, corner_radius_00) }
|
||||
internal F32 ui_pop_corner_radius_01(void) { UI_StackPopImpl(ui_state, CornerRadius01, corner_radius_01) }
|
||||
internal F32 ui_pop_corner_radius_10(void) { UI_StackPopImpl(ui_state, CornerRadius10, corner_radius_10) }
|
||||
internal F32 ui_pop_corner_radius_11(void) { UI_StackPopImpl(ui_state, CornerRadius11, corner_radius_11) }
|
||||
internal F32 ui_pop_blur_size(void) { UI_StackPopImpl(ui_state, BlurSize, blur_size) }
|
||||
internal F32 ui_pop_text_padding(void) { UI_StackPopImpl(ui_state, TextPadding, text_padding) }
|
||||
internal UI_TextAlign ui_pop_text_alignment(void) { UI_StackPopImpl(ui_state, TextAlignment, text_alignment) }
|
||||
internal UI_Box * ui_set_next_parent(UI_Box * v) { UI_StackSetNextImpl(ui_state, Parent, parent, UI_Box *, v) }
|
||||
internal Axis2 ui_set_next_child_layout_axis(Axis2 v) { UI_StackSetNextImpl(ui_state, ChildLayoutAxis, child_layout_axis, Axis2, v) }
|
||||
internal F32 ui_set_next_fixed_x(F32 v) { UI_StackSetNextImpl(ui_state, FixedX, fixed_x, F32, v) }
|
||||
internal F32 ui_set_next_fixed_y(F32 v) { UI_StackSetNextImpl(ui_state, FixedY, fixed_y, F32, v) }
|
||||
internal F32 ui_set_next_fixed_width(F32 v) { UI_StackSetNextImpl(ui_state, FixedWidth, fixed_width, F32, v) }
|
||||
internal F32 ui_set_next_fixed_height(F32 v) { UI_StackSetNextImpl(ui_state, FixedHeight, fixed_height, F32, v) }
|
||||
internal UI_Size ui_set_next_pref_width(UI_Size v) { UI_StackSetNextImpl(ui_state, PrefWidth, pref_width, UI_Size, v) }
|
||||
internal UI_Size ui_set_next_pref_height(UI_Size v) { UI_StackSetNextImpl(ui_state, PrefHeight, pref_height, UI_Size, v) }
|
||||
internal UI_BoxFlags ui_set_next_flags(UI_BoxFlags v) { UI_StackSetNextImpl(ui_state, Flags, flags, UI_BoxFlags, v) }
|
||||
internal UI_FocusKind ui_set_next_focus_hot(UI_FocusKind v) { UI_StackSetNextImpl(ui_state, FocusHot, focus_hot, UI_FocusKind, v) }
|
||||
internal UI_FocusKind ui_set_next_focus_active(UI_FocusKind v) { UI_StackSetNextImpl(ui_state, FocusActive, focus_active, UI_FocusKind, v) }
|
||||
internal U32 ui_set_next_fastpath_codepoint(U32 v) { UI_StackSetNextImpl(ui_state, FastpathCodepoint, fastpath_codepoint, U32, v) }
|
||||
internal UI_Key ui_set_next_group_key(UI_Key v) { UI_StackSetNextImpl(ui_state, GroupKey, group_key, UI_Key, v) }
|
||||
internal F32 ui_set_next_transparency(F32 v) { UI_StackSetNextImpl(ui_state, Transparency, transparency, F32, v) }
|
||||
internal UI_Palette* ui_set_next_palette(UI_Palette* v) { UI_StackSetNextImpl(ui_state, Palette, palette, UI_Palette* , v) }
|
||||
internal F32 ui_set_next_squish(F32 v) { UI_StackSetNextImpl(ui_state, Squish, squish, F32, v) }
|
||||
internal OS_Cursor ui_set_next_hover_cursor(OS_Cursor v) { UI_StackSetNextImpl(ui_state, HoverCursor, hover_cursor, OS_Cursor, v) }
|
||||
internal F_Tag ui_set_next_font(F_Tag v) { UI_StackSetNextImpl(ui_state, Font, font, F_Tag, v) }
|
||||
internal F32 ui_set_next_font_size(F32 v) { UI_StackSetNextImpl(ui_state, FontSize, font_size, F32, v) }
|
||||
internal F_RasterFlags ui_set_next_text_raster_flags(F_RasterFlags v) { UI_StackSetNextImpl(ui_state, TextRasterFlags, text_raster_flags, F_RasterFlags, v) }
|
||||
internal F32 ui_set_next_tab_size(F32 v) { UI_StackSetNextImpl(ui_state, TabSize, tab_size, F32, v) }
|
||||
internal F32 ui_set_next_corner_radius_00(F32 v) { UI_StackSetNextImpl(ui_state, CornerRadius00, corner_radius_00, F32, v) }
|
||||
internal F32 ui_set_next_corner_radius_01(F32 v) { UI_StackSetNextImpl(ui_state, CornerRadius01, corner_radius_01, F32, v) }
|
||||
internal F32 ui_set_next_corner_radius_10(F32 v) { UI_StackSetNextImpl(ui_state, CornerRadius10, corner_radius_10, F32, v) }
|
||||
internal F32 ui_set_next_corner_radius_11(F32 v) { UI_StackSetNextImpl(ui_state, CornerRadius11, corner_radius_11, F32, v) }
|
||||
internal F32 ui_set_next_blur_size(F32 v) { UI_StackSetNextImpl(ui_state, BlurSize, blur_size, F32, v) }
|
||||
internal F32 ui_set_next_text_padding(F32 v) { UI_StackSetNextImpl(ui_state, TextPadding, text_padding, F32, v) }
|
||||
internal UI_TextAlign ui_set_next_text_alignment(UI_TextAlign v) { UI_StackSetNextImpl(ui_state, TextAlignment, text_alignment, UI_TextAlign, v) }
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#if 0
|
||||
#define UI_Parent(v) DeferLoop(ui_push_parent(v), ui_pop_parent())
|
||||
#define UI_ChildLayoutAxis(v) DeferLoop(ui_push_child_layout_axis(v), ui_pop_child_layout_axis())
|
||||
#define UI_FixedX(v) DeferLoop(ui_push_fixed_x(v), ui_pop_fixed_x())
|
||||
#define UI_FixedY(v) DeferLoop(ui_push_fixed_y(v), ui_pop_fixed_y())
|
||||
#define UI_FixedWidth(v) DeferLoop(ui_push_fixed_width(v), ui_pop_fixed_width())
|
||||
#define UI_FixedHeight(v) DeferLoop(ui_push_fixed_height(v), ui_pop_fixed_height())
|
||||
#define UI_PrefWidth(v) DeferLoop(ui_push_pref_width(v), ui_pop_pref_width())
|
||||
#define UI_PrefHeight(v) DeferLoop(ui_push_pref_height(v), ui_pop_pref_height())
|
||||
#define UI_Flags(v) DeferLoop(ui_push_flags(v), ui_pop_flags())
|
||||
#define UI_FocusHot(v) DeferLoop(ui_push_focus_hot(v), ui_pop_focus_hot())
|
||||
#define UI_FocusActive(v) DeferLoop(ui_push_focus_active(v), ui_pop_focus_active())
|
||||
#define UI_FastpathCodepoint(v) DeferLoop(ui_push_fastpath_codepoint(v), ui_pop_fastpath_codepoint())
|
||||
#define UI_GroupKey(v) DeferLoop(ui_push_group_key(v), ui_pop_group_key())
|
||||
#define UI_Transparency(v) DeferLoop(ui_push_transparency(v), ui_pop_transparency())
|
||||
#define UI_Palette(v) DeferLoop(ui_push_palette(v), ui_pop_palette())
|
||||
#define UI_Squish(v) DeferLoop(ui_push_squish(v), ui_pop_squish())
|
||||
#define UI_HoverCursor(v) DeferLoop(ui_push_hover_cursor(v), ui_pop_hover_cursor())
|
||||
#define UI_Font(v) DeferLoop(ui_push_font(v), ui_pop_font())
|
||||
#define UI_FontSize(v) DeferLoop(ui_push_font_size(v), ui_pop_font_size())
|
||||
#define UI_TextRasterFlags(v) DeferLoop(ui_push_text_raster_flags(v), ui_pop_text_raster_flags())
|
||||
#define UI_TabSize(v) DeferLoop(ui_push_tab_size(v), ui_pop_tab_size())
|
||||
#define UI_CornerRadius00(v) DeferLoop(ui_push_corner_radius_00(v), ui_pop_corner_radius_00())
|
||||
#define UI_CornerRadius01(v) DeferLoop(ui_push_corner_radius_01(v), ui_pop_corner_radius_01())
|
||||
#define UI_CornerRadius10(v) DeferLoop(ui_push_corner_radius_10(v), ui_pop_corner_radius_10())
|
||||
#define UI_CornerRadius11(v) DeferLoop(ui_push_corner_radius_11(v), ui_pop_corner_radius_11())
|
||||
#define UI_BlurSize(v) DeferLoop(ui_push_blur_size(v), ui_pop_blur_size())
|
||||
#define UI_TextPadding(v) DeferLoop(ui_push_text_padding(v), ui_pop_text_padding())
|
||||
#define UI_TextAlignment(v) DeferLoop(ui_push_text_alignment(v), ui_pop_text_alignment())
|
||||
#endif
|
||||
internal UI_Box * ui_top_parent(void) { UI_StackTopImpl(ui_state, Parent, parent) }
|
||||
internal Axis2 ui_top_child_layout_axis(void) { UI_StackTopImpl(ui_state, ChildLayoutAxis, child_layout_axis) }
|
||||
internal F32 ui_top_fixed_x(void) { UI_StackTopImpl(ui_state, FixedX, fixed_x) }
|
||||
internal F32 ui_top_fixed_y(void) { UI_StackTopImpl(ui_state, FixedY, fixed_y) }
|
||||
internal F32 ui_top_fixed_width(void) { UI_StackTopImpl(ui_state, FixedWidth, fixed_width) }
|
||||
internal F32 ui_top_fixed_height(void) { UI_StackTopImpl(ui_state, FixedHeight, fixed_height) }
|
||||
internal UI_Size ui_top_pref_width(void) { UI_StackTopImpl(ui_state, PrefWidth, pref_width) }
|
||||
internal UI_Size ui_top_pref_height(void) { UI_StackTopImpl(ui_state, PrefHeight, pref_height) }
|
||||
internal UI_BoxFlags ui_top_flags(void) { UI_StackTopImpl(ui_state, Flags, flags) }
|
||||
internal UI_FocusKind ui_top_focus_hot(void) { UI_StackTopImpl(ui_state, FocusHot, focus_hot) }
|
||||
internal UI_FocusKind ui_top_focus_active(void) { UI_StackTopImpl(ui_state, FocusActive, focus_active) }
|
||||
internal U32 ui_top_fastpath_codepoint(void) { UI_StackTopImpl(ui_state, FastpathCodepoint, fastpath_codepoint) }
|
||||
internal UI_Key ui_top_group_key(void) { UI_StackTopImpl(ui_state, GroupKey, group_key) }
|
||||
internal F32 ui_top_transparency(void) { UI_StackTopImpl(ui_state, Transparency, transparency) }
|
||||
internal UI_Palette* ui_top_palette(void) { UI_StackTopImpl(ui_state, Palette, palette) }
|
||||
internal F32 ui_top_squish(void) { UI_StackTopImpl(ui_state, Squish, squish) }
|
||||
internal OS_Cursor ui_top_hover_cursor(void) { UI_StackTopImpl(ui_state, HoverCursor, hover_cursor) }
|
||||
internal F_Tag ui_top_font(void) { UI_StackTopImpl(ui_state, Font, font) }
|
||||
internal F32 ui_top_font_size(void) { UI_StackTopImpl(ui_state, FontSize, font_size) }
|
||||
internal F_RasterFlags ui_top_text_raster_flags(void) { UI_StackTopImpl(ui_state, TextRasterFlags, text_raster_flags) }
|
||||
internal F32 ui_top_tab_size(void) { UI_StackTopImpl(ui_state, TabSize, tab_size) }
|
||||
internal F32 ui_top_corner_radius_00(void) { UI_StackTopImpl(ui_state, CornerRadius00, corner_radius_00) }
|
||||
internal F32 ui_top_corner_radius_01(void) { UI_StackTopImpl(ui_state, CornerRadius01, corner_radius_01) }
|
||||
internal F32 ui_top_corner_radius_10(void) { UI_StackTopImpl(ui_state, CornerRadius10, corner_radius_10) }
|
||||
internal F32 ui_top_corner_radius_11(void) { UI_StackTopImpl(ui_state, CornerRadius11, corner_radius_11) }
|
||||
internal F32 ui_top_blur_size(void) { UI_StackTopImpl(ui_state, BlurSize, blur_size) }
|
||||
internal F32 ui_top_text_padding(void) { UI_StackTopImpl(ui_state, TextPadding, text_padding) }
|
||||
internal UI_TextAlign ui_top_text_alignment(void) { UI_StackTopImpl(ui_state, TextAlignment, text_alignment) }
|
||||
internal UI_Box * ui_bottom_parent(void) { UI_StackBottomImpl(ui_state, Parent, parent) }
|
||||
internal Axis2 ui_bottom_child_layout_axis(void) { UI_StackBottomImpl(ui_state, ChildLayoutAxis, child_layout_axis) }
|
||||
internal F32 ui_bottom_fixed_x(void) { UI_StackBottomImpl(ui_state, FixedX, fixed_x) }
|
||||
internal F32 ui_bottom_fixed_y(void) { UI_StackBottomImpl(ui_state, FixedY, fixed_y) }
|
||||
internal F32 ui_bottom_fixed_width(void) { UI_StackBottomImpl(ui_state, FixedWidth, fixed_width) }
|
||||
internal F32 ui_bottom_fixed_height(void) { UI_StackBottomImpl(ui_state, FixedHeight, fixed_height) }
|
||||
internal UI_Size ui_bottom_pref_width(void) { UI_StackBottomImpl(ui_state, PrefWidth, pref_width) }
|
||||
internal UI_Size ui_bottom_pref_height(void) { UI_StackBottomImpl(ui_state, PrefHeight, pref_height) }
|
||||
internal UI_BoxFlags ui_bottom_flags(void) { UI_StackBottomImpl(ui_state, Flags, flags) }
|
||||
internal UI_FocusKind ui_bottom_focus_hot(void) { UI_StackBottomImpl(ui_state, FocusHot, focus_hot) }
|
||||
internal UI_FocusKind ui_bottom_focus_active(void) { UI_StackBottomImpl(ui_state, FocusActive, focus_active) }
|
||||
internal U32 ui_bottom_fastpath_codepoint(void) { UI_StackBottomImpl(ui_state, FastpathCodepoint, fastpath_codepoint) }
|
||||
internal UI_Key ui_bottom_group_key(void) { UI_StackBottomImpl(ui_state, GroupKey, group_key) }
|
||||
internal F32 ui_bottom_transparency(void) { UI_StackBottomImpl(ui_state, Transparency, transparency) }
|
||||
internal UI_Palette* ui_bottom_palette(void) { UI_StackBottomImpl(ui_state, Palette, palette) }
|
||||
internal F32 ui_bottom_squish(void) { UI_StackBottomImpl(ui_state, Squish, squish) }
|
||||
internal OS_Cursor ui_bottom_hover_cursor(void) { UI_StackBottomImpl(ui_state, HoverCursor, hover_cursor) }
|
||||
internal F_Tag ui_bottom_font(void) { UI_StackBottomImpl(ui_state, Font, font) }
|
||||
internal F32 ui_bottom_font_size(void) { UI_StackBottomImpl(ui_state, FontSize, font_size) }
|
||||
internal F_RasterFlags ui_bottom_text_raster_flags(void) { UI_StackBottomImpl(ui_state, TextRasterFlags, text_raster_flags) }
|
||||
internal F32 ui_bottom_tab_size(void) { UI_StackBottomImpl(ui_state, TabSize, tab_size) }
|
||||
internal F32 ui_bottom_corner_radius_00(void) { UI_StackBottomImpl(ui_state, CornerRadius00, corner_radius_00) }
|
||||
internal F32 ui_bottom_corner_radius_01(void) { UI_StackBottomImpl(ui_state, CornerRadius01, corner_radius_01) }
|
||||
internal F32 ui_bottom_corner_radius_10(void) { UI_StackBottomImpl(ui_state, CornerRadius10, corner_radius_10) }
|
||||
internal F32 ui_bottom_corner_radius_11(void) { UI_StackBottomImpl(ui_state, CornerRadius11, corner_radius_11) }
|
||||
internal F32 ui_bottom_blur_size(void) { UI_StackBottomImpl(ui_state, BlurSize, blur_size) }
|
||||
internal F32 ui_bottom_text_padding(void) { UI_StackBottomImpl(ui_state, TextPadding, text_padding) }
|
||||
internal UI_TextAlign ui_bottom_text_alignment(void) { UI_StackBottomImpl(ui_state, TextAlignment, text_alignment) }
|
||||
internal UI_Box * ui_push_parent(UI_Box * v) { UI_StackPushImpl(ui_state, Parent, parent, UI_Box *, v) }
|
||||
internal Axis2 ui_push_child_layout_axis(Axis2 v) { UI_StackPushImpl(ui_state, ChildLayoutAxis, child_layout_axis, Axis2, v) }
|
||||
internal F32 ui_push_fixed_x(F32 v) { UI_StackPushImpl(ui_state, FixedX, fixed_x, F32, v) }
|
||||
internal F32 ui_push_fixed_y(F32 v) { UI_StackPushImpl(ui_state, FixedY, fixed_y, F32, v) }
|
||||
internal F32 ui_push_fixed_width(F32 v) { UI_StackPushImpl(ui_state, FixedWidth, fixed_width, F32, v) }
|
||||
internal F32 ui_push_fixed_height(F32 v) { UI_StackPushImpl(ui_state, FixedHeight, fixed_height, F32, v) }
|
||||
internal UI_Size ui_push_pref_width(UI_Size v) { UI_StackPushImpl(ui_state, PrefWidth, pref_width, UI_Size, v) }
|
||||
internal UI_Size ui_push_pref_height(UI_Size v) { UI_StackPushImpl(ui_state, PrefHeight, pref_height, UI_Size, v) }
|
||||
internal UI_BoxFlags ui_push_flags(UI_BoxFlags v) { UI_StackPushImpl(ui_state, Flags, flags, UI_BoxFlags, v) }
|
||||
internal UI_FocusKind ui_push_focus_hot(UI_FocusKind v) { UI_StackPushImpl(ui_state, FocusHot, focus_hot, UI_FocusKind, v) }
|
||||
internal UI_FocusKind ui_push_focus_active(UI_FocusKind v) { UI_StackPushImpl(ui_state, FocusActive, focus_active, UI_FocusKind, v) }
|
||||
internal U32 ui_push_fastpath_codepoint(U32 v) { UI_StackPushImpl(ui_state, FastpathCodepoint, fastpath_codepoint, U32, v) }
|
||||
internal UI_Key ui_push_group_key(UI_Key v) { UI_StackPushImpl(ui_state, GroupKey, group_key, UI_Key, v) }
|
||||
internal F32 ui_push_transparency(F32 v) { UI_StackPushImpl(ui_state, Transparency, transparency, F32, v) }
|
||||
internal UI_Palette* ui_push_palette(UI_Palette* v) { UI_StackPushImpl(ui_state, Palette, palette, UI_Palette* , v) }
|
||||
internal F32 ui_push_squish(F32 v) { UI_StackPushImpl(ui_state, Squish, squish, F32, v) }
|
||||
internal OS_Cursor ui_push_hover_cursor(OS_Cursor v) { UI_StackPushImpl(ui_state, HoverCursor, hover_cursor, OS_Cursor, v) }
|
||||
internal F_Tag ui_push_font(F_Tag v) { UI_StackPushImpl(ui_state, Font, font, F_Tag, v) }
|
||||
internal F32 ui_push_font_size(F32 v) { UI_StackPushImpl(ui_state, FontSize, font_size, F32, v) }
|
||||
internal F_RasterFlags ui_push_text_raster_flags(F_RasterFlags v) { UI_StackPushImpl(ui_state, TextRasterFlags, text_raster_flags, F_RasterFlags, v) }
|
||||
internal F32 ui_push_tab_size(F32 v) { UI_StackPushImpl(ui_state, TabSize, tab_size, F32, v) }
|
||||
internal F32 ui_push_corner_radius_00(F32 v) { UI_StackPushImpl(ui_state, CornerRadius00, corner_radius_00, F32, v) }
|
||||
internal F32 ui_push_corner_radius_01(F32 v) { UI_StackPushImpl(ui_state, CornerRadius01, corner_radius_01, F32, v) }
|
||||
internal F32 ui_push_corner_radius_10(F32 v) { UI_StackPushImpl(ui_state, CornerRadius10, corner_radius_10, F32, v) }
|
||||
internal F32 ui_push_corner_radius_11(F32 v) { UI_StackPushImpl(ui_state, CornerRadius11, corner_radius_11, F32, v) }
|
||||
internal F32 ui_push_blur_size(F32 v) { UI_StackPushImpl(ui_state, BlurSize, blur_size, F32, v) }
|
||||
internal F32 ui_push_text_padding(F32 v) { UI_StackPushImpl(ui_state, TextPadding, text_padding, F32, v) }
|
||||
internal UI_TextAlign ui_push_text_alignment(UI_TextAlign v) { UI_StackPushImpl(ui_state, TextAlignment, text_alignment, UI_TextAlign, v) }
|
||||
internal UI_Box * ui_pop_parent(void) { UI_StackPopImpl(ui_state, Parent, parent) }
|
||||
internal Axis2 ui_pop_child_layout_axis(void) { UI_StackPopImpl(ui_state, ChildLayoutAxis, child_layout_axis) }
|
||||
internal F32 ui_pop_fixed_x(void) { UI_StackPopImpl(ui_state, FixedX, fixed_x) }
|
||||
internal F32 ui_pop_fixed_y(void) { UI_StackPopImpl(ui_state, FixedY, fixed_y) }
|
||||
internal F32 ui_pop_fixed_width(void) { UI_StackPopImpl(ui_state, FixedWidth, fixed_width) }
|
||||
internal F32 ui_pop_fixed_height(void) { UI_StackPopImpl(ui_state, FixedHeight, fixed_height) }
|
||||
internal UI_Size ui_pop_pref_width(void) { UI_StackPopImpl(ui_state, PrefWidth, pref_width) }
|
||||
internal UI_Size ui_pop_pref_height(void) { UI_StackPopImpl(ui_state, PrefHeight, pref_height) }
|
||||
internal UI_BoxFlags ui_pop_flags(void) { UI_StackPopImpl(ui_state, Flags, flags) }
|
||||
internal UI_FocusKind ui_pop_focus_hot(void) { UI_StackPopImpl(ui_state, FocusHot, focus_hot) }
|
||||
internal UI_FocusKind ui_pop_focus_active(void) { UI_StackPopImpl(ui_state, FocusActive, focus_active) }
|
||||
internal U32 ui_pop_fastpath_codepoint(void) { UI_StackPopImpl(ui_state, FastpathCodepoint, fastpath_codepoint) }
|
||||
internal UI_Key ui_pop_group_key(void) { UI_StackPopImpl(ui_state, GroupKey, group_key) }
|
||||
internal F32 ui_pop_transparency(void) { UI_StackPopImpl(ui_state, Transparency, transparency) }
|
||||
internal UI_Palette* ui_pop_palette(void) { UI_StackPopImpl(ui_state, Palette, palette) }
|
||||
internal F32 ui_pop_squish(void) { UI_StackPopImpl(ui_state, Squish, squish) }
|
||||
internal OS_Cursor ui_pop_hover_cursor(void) { UI_StackPopImpl(ui_state, HoverCursor, hover_cursor) }
|
||||
internal F_Tag ui_pop_font(void) { UI_StackPopImpl(ui_state, Font, font) }
|
||||
internal F32 ui_pop_font_size(void) { UI_StackPopImpl(ui_state, FontSize, font_size) }
|
||||
internal F_RasterFlags ui_pop_text_raster_flags(void) { UI_StackPopImpl(ui_state, TextRasterFlags, text_raster_flags) }
|
||||
internal F32 ui_pop_tab_size(void) { UI_StackPopImpl(ui_state, TabSize, tab_size) }
|
||||
internal F32 ui_pop_corner_radius_00(void) { UI_StackPopImpl(ui_state, CornerRadius00, corner_radius_00) }
|
||||
internal F32 ui_pop_corner_radius_01(void) { UI_StackPopImpl(ui_state, CornerRadius01, corner_radius_01) }
|
||||
internal F32 ui_pop_corner_radius_10(void) { UI_StackPopImpl(ui_state, CornerRadius10, corner_radius_10) }
|
||||
internal F32 ui_pop_corner_radius_11(void) { UI_StackPopImpl(ui_state, CornerRadius11, corner_radius_11) }
|
||||
internal F32 ui_pop_blur_size(void) { UI_StackPopImpl(ui_state, BlurSize, blur_size) }
|
||||
internal F32 ui_pop_text_padding(void) { UI_StackPopImpl(ui_state, TextPadding, text_padding) }
|
||||
internal UI_TextAlign ui_pop_text_alignment(void) { UI_StackPopImpl(ui_state, TextAlignment, text_alignment) }
|
||||
internal UI_Box * ui_set_next_parent(UI_Box * v) { UI_StackSetNextImpl(ui_state, Parent, parent, UI_Box *, v) }
|
||||
internal Axis2 ui_set_next_child_layout_axis(Axis2 v) { UI_StackSetNextImpl(ui_state, ChildLayoutAxis, child_layout_axis, Axis2, v) }
|
||||
internal F32 ui_set_next_fixed_x(F32 v) { UI_StackSetNextImpl(ui_state, FixedX, fixed_x, F32, v) }
|
||||
internal F32 ui_set_next_fixed_y(F32 v) { UI_StackSetNextImpl(ui_state, FixedY, fixed_y, F32, v) }
|
||||
internal F32 ui_set_next_fixed_width(F32 v) { UI_StackSetNextImpl(ui_state, FixedWidth, fixed_width, F32, v) }
|
||||
internal F32 ui_set_next_fixed_height(F32 v) { UI_StackSetNextImpl(ui_state, FixedHeight, fixed_height, F32, v) }
|
||||
internal UI_Size ui_set_next_pref_width(UI_Size v) { UI_StackSetNextImpl(ui_state, PrefWidth, pref_width, UI_Size, v) }
|
||||
internal UI_Size ui_set_next_pref_height(UI_Size v) { UI_StackSetNextImpl(ui_state, PrefHeight, pref_height, UI_Size, v) }
|
||||
internal UI_BoxFlags ui_set_next_flags(UI_BoxFlags v) { UI_StackSetNextImpl(ui_state, Flags, flags, UI_BoxFlags, v) }
|
||||
internal UI_FocusKind ui_set_next_focus_hot(UI_FocusKind v) { UI_StackSetNextImpl(ui_state, FocusHot, focus_hot, UI_FocusKind, v) }
|
||||
internal UI_FocusKind ui_set_next_focus_active(UI_FocusKind v) { UI_StackSetNextImpl(ui_state, FocusActive, focus_active, UI_FocusKind, v) }
|
||||
internal U32 ui_set_next_fastpath_codepoint(U32 v) { UI_StackSetNextImpl(ui_state, FastpathCodepoint, fastpath_codepoint, U32, v) }
|
||||
internal UI_Key ui_set_next_group_key(UI_Key v) { UI_StackSetNextImpl(ui_state, GroupKey, group_key, UI_Key, v) }
|
||||
internal F32 ui_set_next_transparency(F32 v) { UI_StackSetNextImpl(ui_state, Transparency, transparency, F32, v) }
|
||||
internal UI_Palette* ui_set_next_palette(UI_Palette* v) { UI_StackSetNextImpl(ui_state, Palette, palette, UI_Palette* , v) }
|
||||
internal F32 ui_set_next_squish(F32 v) { UI_StackSetNextImpl(ui_state, Squish, squish, F32, v) }
|
||||
internal OS_Cursor ui_set_next_hover_cursor(OS_Cursor v) { UI_StackSetNextImpl(ui_state, HoverCursor, hover_cursor, OS_Cursor, v) }
|
||||
internal F_Tag ui_set_next_font(F_Tag v) { UI_StackSetNextImpl(ui_state, Font, font, F_Tag, v) }
|
||||
internal F32 ui_set_next_font_size(F32 v) { UI_StackSetNextImpl(ui_state, FontSize, font_size, F32, v) }
|
||||
internal F_RasterFlags ui_set_next_text_raster_flags(F_RasterFlags v) { UI_StackSetNextImpl(ui_state, TextRasterFlags, text_raster_flags, F_RasterFlags, v) }
|
||||
internal F32 ui_set_next_tab_size(F32 v) { UI_StackSetNextImpl(ui_state, TabSize, tab_size, F32, v) }
|
||||
internal F32 ui_set_next_corner_radius_00(F32 v) { UI_StackSetNextImpl(ui_state, CornerRadius00, corner_radius_00, F32, v) }
|
||||
internal F32 ui_set_next_corner_radius_01(F32 v) { UI_StackSetNextImpl(ui_state, CornerRadius01, corner_radius_01, F32, v) }
|
||||
internal F32 ui_set_next_corner_radius_10(F32 v) { UI_StackSetNextImpl(ui_state, CornerRadius10, corner_radius_10, F32, v) }
|
||||
internal F32 ui_set_next_corner_radius_11(F32 v) { UI_StackSetNextImpl(ui_state, CornerRadius11, corner_radius_11, F32, v) }
|
||||
internal F32 ui_set_next_blur_size(F32 v) { UI_StackSetNextImpl(ui_state, BlurSize, blur_size, F32, v) }
|
||||
internal F32 ui_set_next_text_padding(F32 v) { UI_StackSetNextImpl(ui_state, TextPadding, text_padding, F32, v) }
|
||||
internal UI_TextAlign ui_set_next_text_alignment(UI_TextAlign v) { UI_StackSetNextImpl(ui_state, TextAlignment, text_alignment, UI_TextAlign, v) }
|
||||
|
||||
+331
-331
@@ -1,331 +1,331 @@
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#ifndef UI_META_H
|
||||
#define UI_META_H
|
||||
|
||||
typedef struct UI_ParentNode UI_ParentNode; struct UI_ParentNode{UI_ParentNode *next; UI_Box * v;};
|
||||
typedef struct UI_ChildLayoutAxisNode UI_ChildLayoutAxisNode; struct UI_ChildLayoutAxisNode{UI_ChildLayoutAxisNode *next; Axis2 v;};
|
||||
typedef struct UI_FixedXNode UI_FixedXNode; struct UI_FixedXNode{UI_FixedXNode *next; F32 v;};
|
||||
typedef struct UI_FixedYNode UI_FixedYNode; struct UI_FixedYNode{UI_FixedYNode *next; F32 v;};
|
||||
typedef struct UI_FixedWidthNode UI_FixedWidthNode; struct UI_FixedWidthNode{UI_FixedWidthNode *next; F32 v;};
|
||||
typedef struct UI_FixedHeightNode UI_FixedHeightNode; struct UI_FixedHeightNode{UI_FixedHeightNode *next; F32 v;};
|
||||
typedef struct UI_PrefWidthNode UI_PrefWidthNode; struct UI_PrefWidthNode{UI_PrefWidthNode *next; UI_Size v;};
|
||||
typedef struct UI_PrefHeightNode UI_PrefHeightNode; struct UI_PrefHeightNode{UI_PrefHeightNode *next; UI_Size v;};
|
||||
typedef struct UI_FlagsNode UI_FlagsNode; struct UI_FlagsNode{UI_FlagsNode *next; UI_BoxFlags v;};
|
||||
typedef struct UI_FocusHotNode UI_FocusHotNode; struct UI_FocusHotNode{UI_FocusHotNode *next; UI_FocusKind v;};
|
||||
typedef struct UI_FocusActiveNode UI_FocusActiveNode; struct UI_FocusActiveNode{UI_FocusActiveNode *next; UI_FocusKind v;};
|
||||
typedef struct UI_FastpathCodepointNode UI_FastpathCodepointNode; struct UI_FastpathCodepointNode{UI_FastpathCodepointNode *next; U32 v;};
|
||||
typedef struct UI_GroupKeyNode UI_GroupKeyNode; struct UI_GroupKeyNode{UI_GroupKeyNode *next; UI_Key v;};
|
||||
typedef struct UI_TransparencyNode UI_TransparencyNode; struct UI_TransparencyNode{UI_TransparencyNode *next; F32 v;};
|
||||
typedef struct UI_PaletteNode UI_PaletteNode; struct UI_PaletteNode{UI_PaletteNode *next; UI_Palette* v;};
|
||||
typedef struct UI_SquishNode UI_SquishNode; struct UI_SquishNode{UI_SquishNode *next; F32 v;};
|
||||
typedef struct UI_HoverCursorNode UI_HoverCursorNode; struct UI_HoverCursorNode{UI_HoverCursorNode *next; OS_Cursor v;};
|
||||
typedef struct UI_FontNode UI_FontNode; struct UI_FontNode{UI_FontNode *next; F_Tag v;};
|
||||
typedef struct UI_FontSizeNode UI_FontSizeNode; struct UI_FontSizeNode{UI_FontSizeNode *next; F32 v;};
|
||||
typedef struct UI_TextRasterFlagsNode UI_TextRasterFlagsNode; struct UI_TextRasterFlagsNode{UI_TextRasterFlagsNode *next; F_RasterFlags v;};
|
||||
typedef struct UI_TabSizeNode UI_TabSizeNode; struct UI_TabSizeNode{UI_TabSizeNode *next; F32 v;};
|
||||
typedef struct UI_CornerRadius00Node UI_CornerRadius00Node; struct UI_CornerRadius00Node{UI_CornerRadius00Node *next; F32 v;};
|
||||
typedef struct UI_CornerRadius01Node UI_CornerRadius01Node; struct UI_CornerRadius01Node{UI_CornerRadius01Node *next; F32 v;};
|
||||
typedef struct UI_CornerRadius10Node UI_CornerRadius10Node; struct UI_CornerRadius10Node{UI_CornerRadius10Node *next; F32 v;};
|
||||
typedef struct UI_CornerRadius11Node UI_CornerRadius11Node; struct UI_CornerRadius11Node{UI_CornerRadius11Node *next; F32 v;};
|
||||
typedef struct UI_BlurSizeNode UI_BlurSizeNode; struct UI_BlurSizeNode{UI_BlurSizeNode *next; F32 v;};
|
||||
typedef struct UI_TextPaddingNode UI_TextPaddingNode; struct UI_TextPaddingNode{UI_TextPaddingNode *next; F32 v;};
|
||||
typedef struct UI_TextAlignmentNode UI_TextAlignmentNode; struct UI_TextAlignmentNode{UI_TextAlignmentNode *next; UI_TextAlign v;};
|
||||
#define UI_DeclStackNils \
|
||||
struct\
|
||||
{\
|
||||
UI_ParentNode parent_nil_stack_top;\
|
||||
UI_ChildLayoutAxisNode child_layout_axis_nil_stack_top;\
|
||||
UI_FixedXNode fixed_x_nil_stack_top;\
|
||||
UI_FixedYNode fixed_y_nil_stack_top;\
|
||||
UI_FixedWidthNode fixed_width_nil_stack_top;\
|
||||
UI_FixedHeightNode fixed_height_nil_stack_top;\
|
||||
UI_PrefWidthNode pref_width_nil_stack_top;\
|
||||
UI_PrefHeightNode pref_height_nil_stack_top;\
|
||||
UI_FlagsNode flags_nil_stack_top;\
|
||||
UI_FocusHotNode focus_hot_nil_stack_top;\
|
||||
UI_FocusActiveNode focus_active_nil_stack_top;\
|
||||
UI_FastpathCodepointNode fastpath_codepoint_nil_stack_top;\
|
||||
UI_GroupKeyNode group_key_nil_stack_top;\
|
||||
UI_TransparencyNode transparency_nil_stack_top;\
|
||||
UI_PaletteNode palette_nil_stack_top;\
|
||||
UI_SquishNode squish_nil_stack_top;\
|
||||
UI_HoverCursorNode hover_cursor_nil_stack_top;\
|
||||
UI_FontNode font_nil_stack_top;\
|
||||
UI_FontSizeNode font_size_nil_stack_top;\
|
||||
UI_TextRasterFlagsNode text_raster_flags_nil_stack_top;\
|
||||
UI_TabSizeNode tab_size_nil_stack_top;\
|
||||
UI_CornerRadius00Node corner_radius_00_nil_stack_top;\
|
||||
UI_CornerRadius01Node corner_radius_01_nil_stack_top;\
|
||||
UI_CornerRadius10Node corner_radius_10_nil_stack_top;\
|
||||
UI_CornerRadius11Node corner_radius_11_nil_stack_top;\
|
||||
UI_BlurSizeNode blur_size_nil_stack_top;\
|
||||
UI_TextPaddingNode text_padding_nil_stack_top;\
|
||||
UI_TextAlignmentNode text_alignment_nil_stack_top;\
|
||||
}
|
||||
#define UI_InitStackNils(state) \
|
||||
state->parent_nil_stack_top.v = &ui_g_nil_box;\
|
||||
state->child_layout_axis_nil_stack_top.v = Axis2_X;\
|
||||
state->fixed_x_nil_stack_top.v = 0;\
|
||||
state->fixed_y_nil_stack_top.v = 0;\
|
||||
state->fixed_width_nil_stack_top.v = 0;\
|
||||
state->fixed_height_nil_stack_top.v = 0;\
|
||||
state->pref_width_nil_stack_top.v = ui_px(250.f, 1.f);\
|
||||
state->pref_height_nil_stack_top.v = ui_px(30.f, 1.f);\
|
||||
state->flags_nil_stack_top.v = 0;\
|
||||
state->focus_hot_nil_stack_top.v = UI_FocusKind_Null;\
|
||||
state->focus_active_nil_stack_top.v = UI_FocusKind_Null;\
|
||||
state->fastpath_codepoint_nil_stack_top.v = 0;\
|
||||
state->group_key_nil_stack_top.v = ui_key_zero();\
|
||||
state->transparency_nil_stack_top.v = 0;\
|
||||
state->palette_nil_stack_top.v = &ui_g_nil_palette;\
|
||||
state->squish_nil_stack_top.v = 0;\
|
||||
state->hover_cursor_nil_stack_top.v = OS_Cursor_Pointer;\
|
||||
state->font_nil_stack_top.v = f_tag_zero();\
|
||||
state->font_size_nil_stack_top.v = 24.f;\
|
||||
state->text_raster_flags_nil_stack_top.v = F_RasterFlag_Hinted;\
|
||||
state->tab_size_nil_stack_top.v = 24.f*4.f;\
|
||||
state->corner_radius_00_nil_stack_top.v = 0;\
|
||||
state->corner_radius_01_nil_stack_top.v = 0;\
|
||||
state->corner_radius_10_nil_stack_top.v = 0;\
|
||||
state->corner_radius_11_nil_stack_top.v = 0;\
|
||||
state->blur_size_nil_stack_top.v = 0;\
|
||||
state->text_padding_nil_stack_top.v = 0;\
|
||||
state->text_alignment_nil_stack_top.v = UI_TextAlign_Left;\
|
||||
|
||||
#define UI_DeclStacks \
|
||||
struct\
|
||||
{\
|
||||
struct { UI_ParentNode *top; UI_Box * bottom_val; UI_ParentNode *free; B32 auto_pop; } parent_stack;\
|
||||
struct { UI_ChildLayoutAxisNode *top; Axis2 bottom_val; UI_ChildLayoutAxisNode *free; B32 auto_pop; } child_layout_axis_stack;\
|
||||
struct { UI_FixedXNode *top; F32 bottom_val; UI_FixedXNode *free; B32 auto_pop; } fixed_x_stack;\
|
||||
struct { UI_FixedYNode *top; F32 bottom_val; UI_FixedYNode *free; B32 auto_pop; } fixed_y_stack;\
|
||||
struct { UI_FixedWidthNode *top; F32 bottom_val; UI_FixedWidthNode *free; B32 auto_pop; } fixed_width_stack;\
|
||||
struct { UI_FixedHeightNode *top; F32 bottom_val; UI_FixedHeightNode *free; B32 auto_pop; } fixed_height_stack;\
|
||||
struct { UI_PrefWidthNode *top; UI_Size bottom_val; UI_PrefWidthNode *free; B32 auto_pop; } pref_width_stack;\
|
||||
struct { UI_PrefHeightNode *top; UI_Size bottom_val; UI_PrefHeightNode *free; B32 auto_pop; } pref_height_stack;\
|
||||
struct { UI_FlagsNode *top; UI_BoxFlags bottom_val; UI_FlagsNode *free; B32 auto_pop; } flags_stack;\
|
||||
struct { UI_FocusHotNode *top; UI_FocusKind bottom_val; UI_FocusHotNode *free; B32 auto_pop; } focus_hot_stack;\
|
||||
struct { UI_FocusActiveNode *top; UI_FocusKind bottom_val; UI_FocusActiveNode *free; B32 auto_pop; } focus_active_stack;\
|
||||
struct { UI_FastpathCodepointNode *top; U32 bottom_val; UI_FastpathCodepointNode *free; B32 auto_pop; } fastpath_codepoint_stack;\
|
||||
struct { UI_GroupKeyNode *top; UI_Key bottom_val; UI_GroupKeyNode *free; B32 auto_pop; } group_key_stack;\
|
||||
struct { UI_TransparencyNode *top; F32 bottom_val; UI_TransparencyNode *free; B32 auto_pop; } transparency_stack;\
|
||||
struct { UI_PaletteNode *top; UI_Palette* bottom_val; UI_PaletteNode *free; B32 auto_pop; } palette_stack;\
|
||||
struct { UI_SquishNode *top; F32 bottom_val; UI_SquishNode *free; B32 auto_pop; } squish_stack;\
|
||||
struct { UI_HoverCursorNode *top; OS_Cursor bottom_val; UI_HoverCursorNode *free; B32 auto_pop; } hover_cursor_stack;\
|
||||
struct { UI_FontNode *top; F_Tag bottom_val; UI_FontNode *free; B32 auto_pop; } font_stack;\
|
||||
struct { UI_FontSizeNode *top; F32 bottom_val; UI_FontSizeNode *free; B32 auto_pop; } font_size_stack;\
|
||||
struct { UI_TextRasterFlagsNode *top; F_RasterFlags bottom_val; UI_TextRasterFlagsNode *free; B32 auto_pop; } text_raster_flags_stack;\
|
||||
struct { UI_TabSizeNode *top; F32 bottom_val; UI_TabSizeNode *free; B32 auto_pop; } tab_size_stack;\
|
||||
struct { UI_CornerRadius00Node *top; F32 bottom_val; UI_CornerRadius00Node *free; B32 auto_pop; } corner_radius_00_stack;\
|
||||
struct { UI_CornerRadius01Node *top; F32 bottom_val; UI_CornerRadius01Node *free; B32 auto_pop; } corner_radius_01_stack;\
|
||||
struct { UI_CornerRadius10Node *top; F32 bottom_val; UI_CornerRadius10Node *free; B32 auto_pop; } corner_radius_10_stack;\
|
||||
struct { UI_CornerRadius11Node *top; F32 bottom_val; UI_CornerRadius11Node *free; B32 auto_pop; } corner_radius_11_stack;\
|
||||
struct { UI_BlurSizeNode *top; F32 bottom_val; UI_BlurSizeNode *free; B32 auto_pop; } blur_size_stack;\
|
||||
struct { UI_TextPaddingNode *top; F32 bottom_val; UI_TextPaddingNode *free; B32 auto_pop; } text_padding_stack;\
|
||||
struct { UI_TextAlignmentNode *top; UI_TextAlign bottom_val; UI_TextAlignmentNode *free; B32 auto_pop; } text_alignment_stack;\
|
||||
}
|
||||
#define UI_InitStacks(state) \
|
||||
state->parent_stack.top = &state->parent_nil_stack_top; state->parent_stack.bottom_val = &ui_g_nil_box; state->parent_stack.free = 0; state->parent_stack.auto_pop = 0;\
|
||||
state->child_layout_axis_stack.top = &state->child_layout_axis_nil_stack_top; state->child_layout_axis_stack.bottom_val = Axis2_X; state->child_layout_axis_stack.free = 0; state->child_layout_axis_stack.auto_pop = 0;\
|
||||
state->fixed_x_stack.top = &state->fixed_x_nil_stack_top; state->fixed_x_stack.bottom_val = 0; state->fixed_x_stack.free = 0; state->fixed_x_stack.auto_pop = 0;\
|
||||
state->fixed_y_stack.top = &state->fixed_y_nil_stack_top; state->fixed_y_stack.bottom_val = 0; state->fixed_y_stack.free = 0; state->fixed_y_stack.auto_pop = 0;\
|
||||
state->fixed_width_stack.top = &state->fixed_width_nil_stack_top; state->fixed_width_stack.bottom_val = 0; state->fixed_width_stack.free = 0; state->fixed_width_stack.auto_pop = 0;\
|
||||
state->fixed_height_stack.top = &state->fixed_height_nil_stack_top; state->fixed_height_stack.bottom_val = 0; state->fixed_height_stack.free = 0; state->fixed_height_stack.auto_pop = 0;\
|
||||
state->pref_width_stack.top = &state->pref_width_nil_stack_top; state->pref_width_stack.bottom_val = ui_px(250.f, 1.f); state->pref_width_stack.free = 0; state->pref_width_stack.auto_pop = 0;\
|
||||
state->pref_height_stack.top = &state->pref_height_nil_stack_top; state->pref_height_stack.bottom_val = ui_px(30.f, 1.f); state->pref_height_stack.free = 0; state->pref_height_stack.auto_pop = 0;\
|
||||
state->flags_stack.top = &state->flags_nil_stack_top; state->flags_stack.bottom_val = 0; state->flags_stack.free = 0; state->flags_stack.auto_pop = 0;\
|
||||
state->focus_hot_stack.top = &state->focus_hot_nil_stack_top; state->focus_hot_stack.bottom_val = UI_FocusKind_Null; state->focus_hot_stack.free = 0; state->focus_hot_stack.auto_pop = 0;\
|
||||
state->focus_active_stack.top = &state->focus_active_nil_stack_top; state->focus_active_stack.bottom_val = UI_FocusKind_Null; state->focus_active_stack.free = 0; state->focus_active_stack.auto_pop = 0;\
|
||||
state->fastpath_codepoint_stack.top = &state->fastpath_codepoint_nil_stack_top; state->fastpath_codepoint_stack.bottom_val = 0; state->fastpath_codepoint_stack.free = 0; state->fastpath_codepoint_stack.auto_pop = 0;\
|
||||
state->group_key_stack.top = &state->group_key_nil_stack_top; state->group_key_stack.bottom_val = ui_key_zero(); state->group_key_stack.free = 0; state->group_key_stack.auto_pop = 0;\
|
||||
state->transparency_stack.top = &state->transparency_nil_stack_top; state->transparency_stack.bottom_val = 0; state->transparency_stack.free = 0; state->transparency_stack.auto_pop = 0;\
|
||||
state->palette_stack.top = &state->palette_nil_stack_top; state->palette_stack.bottom_val = &ui_g_nil_palette; state->palette_stack.free = 0; state->palette_stack.auto_pop = 0;\
|
||||
state->squish_stack.top = &state->squish_nil_stack_top; state->squish_stack.bottom_val = 0; state->squish_stack.free = 0; state->squish_stack.auto_pop = 0;\
|
||||
state->hover_cursor_stack.top = &state->hover_cursor_nil_stack_top; state->hover_cursor_stack.bottom_val = OS_Cursor_Pointer; state->hover_cursor_stack.free = 0; state->hover_cursor_stack.auto_pop = 0;\
|
||||
state->font_stack.top = &state->font_nil_stack_top; state->font_stack.bottom_val = f_tag_zero(); state->font_stack.free = 0; state->font_stack.auto_pop = 0;\
|
||||
state->font_size_stack.top = &state->font_size_nil_stack_top; state->font_size_stack.bottom_val = 24.f; state->font_size_stack.free = 0; state->font_size_stack.auto_pop = 0;\
|
||||
state->text_raster_flags_stack.top = &state->text_raster_flags_nil_stack_top; state->text_raster_flags_stack.bottom_val = F_RasterFlag_Hinted; state->text_raster_flags_stack.free = 0; state->text_raster_flags_stack.auto_pop = 0;\
|
||||
state->tab_size_stack.top = &state->tab_size_nil_stack_top; state->tab_size_stack.bottom_val = 24.f*4.f; state->tab_size_stack.free = 0; state->tab_size_stack.auto_pop = 0;\
|
||||
state->corner_radius_00_stack.top = &state->corner_radius_00_nil_stack_top; state->corner_radius_00_stack.bottom_val = 0; state->corner_radius_00_stack.free = 0; state->corner_radius_00_stack.auto_pop = 0;\
|
||||
state->corner_radius_01_stack.top = &state->corner_radius_01_nil_stack_top; state->corner_radius_01_stack.bottom_val = 0; state->corner_radius_01_stack.free = 0; state->corner_radius_01_stack.auto_pop = 0;\
|
||||
state->corner_radius_10_stack.top = &state->corner_radius_10_nil_stack_top; state->corner_radius_10_stack.bottom_val = 0; state->corner_radius_10_stack.free = 0; state->corner_radius_10_stack.auto_pop = 0;\
|
||||
state->corner_radius_11_stack.top = &state->corner_radius_11_nil_stack_top; state->corner_radius_11_stack.bottom_val = 0; state->corner_radius_11_stack.free = 0; state->corner_radius_11_stack.auto_pop = 0;\
|
||||
state->blur_size_stack.top = &state->blur_size_nil_stack_top; state->blur_size_stack.bottom_val = 0; state->blur_size_stack.free = 0; state->blur_size_stack.auto_pop = 0;\
|
||||
state->text_padding_stack.top = &state->text_padding_nil_stack_top; state->text_padding_stack.bottom_val = 0; state->text_padding_stack.free = 0; state->text_padding_stack.auto_pop = 0;\
|
||||
state->text_alignment_stack.top = &state->text_alignment_nil_stack_top; state->text_alignment_stack.bottom_val = UI_TextAlign_Left; state->text_alignment_stack.free = 0; state->text_alignment_stack.auto_pop = 0;\
|
||||
|
||||
#define UI_AutoPopStacks(state) \
|
||||
if(state->parent_stack.auto_pop) { ui_pop_parent(); state->parent_stack.auto_pop = 0; }\
|
||||
if(state->child_layout_axis_stack.auto_pop) { ui_pop_child_layout_axis(); state->child_layout_axis_stack.auto_pop = 0; }\
|
||||
if(state->fixed_x_stack.auto_pop) { ui_pop_fixed_x(); state->fixed_x_stack.auto_pop = 0; }\
|
||||
if(state->fixed_y_stack.auto_pop) { ui_pop_fixed_y(); state->fixed_y_stack.auto_pop = 0; }\
|
||||
if(state->fixed_width_stack.auto_pop) { ui_pop_fixed_width(); state->fixed_width_stack.auto_pop = 0; }\
|
||||
if(state->fixed_height_stack.auto_pop) { ui_pop_fixed_height(); state->fixed_height_stack.auto_pop = 0; }\
|
||||
if(state->pref_width_stack.auto_pop) { ui_pop_pref_width(); state->pref_width_stack.auto_pop = 0; }\
|
||||
if(state->pref_height_stack.auto_pop) { ui_pop_pref_height(); state->pref_height_stack.auto_pop = 0; }\
|
||||
if(state->flags_stack.auto_pop) { ui_pop_flags(); state->flags_stack.auto_pop = 0; }\
|
||||
if(state->focus_hot_stack.auto_pop) { ui_pop_focus_hot(); state->focus_hot_stack.auto_pop = 0; }\
|
||||
if(state->focus_active_stack.auto_pop) { ui_pop_focus_active(); state->focus_active_stack.auto_pop = 0; }\
|
||||
if(state->fastpath_codepoint_stack.auto_pop) { ui_pop_fastpath_codepoint(); state->fastpath_codepoint_stack.auto_pop = 0; }\
|
||||
if(state->group_key_stack.auto_pop) { ui_pop_group_key(); state->group_key_stack.auto_pop = 0; }\
|
||||
if(state->transparency_stack.auto_pop) { ui_pop_transparency(); state->transparency_stack.auto_pop = 0; }\
|
||||
if(state->palette_stack.auto_pop) { ui_pop_palette(); state->palette_stack.auto_pop = 0; }\
|
||||
if(state->squish_stack.auto_pop) { ui_pop_squish(); state->squish_stack.auto_pop = 0; }\
|
||||
if(state->hover_cursor_stack.auto_pop) { ui_pop_hover_cursor(); state->hover_cursor_stack.auto_pop = 0; }\
|
||||
if(state->font_stack.auto_pop) { ui_pop_font(); state->font_stack.auto_pop = 0; }\
|
||||
if(state->font_size_stack.auto_pop) { ui_pop_font_size(); state->font_size_stack.auto_pop = 0; }\
|
||||
if(state->text_raster_flags_stack.auto_pop) { ui_pop_text_raster_flags(); state->text_raster_flags_stack.auto_pop = 0; }\
|
||||
if(state->tab_size_stack.auto_pop) { ui_pop_tab_size(); state->tab_size_stack.auto_pop = 0; }\
|
||||
if(state->corner_radius_00_stack.auto_pop) { ui_pop_corner_radius_00(); state->corner_radius_00_stack.auto_pop = 0; }\
|
||||
if(state->corner_radius_01_stack.auto_pop) { ui_pop_corner_radius_01(); state->corner_radius_01_stack.auto_pop = 0; }\
|
||||
if(state->corner_radius_10_stack.auto_pop) { ui_pop_corner_radius_10(); state->corner_radius_10_stack.auto_pop = 0; }\
|
||||
if(state->corner_radius_11_stack.auto_pop) { ui_pop_corner_radius_11(); state->corner_radius_11_stack.auto_pop = 0; }\
|
||||
if(state->blur_size_stack.auto_pop) { ui_pop_blur_size(); state->blur_size_stack.auto_pop = 0; }\
|
||||
if(state->text_padding_stack.auto_pop) { ui_pop_text_padding(); state->text_padding_stack.auto_pop = 0; }\
|
||||
if(state->text_alignment_stack.auto_pop) { ui_pop_text_alignment(); state->text_alignment_stack.auto_pop = 0; }\
|
||||
|
||||
internal UI_Box * ui_top_parent(void);
|
||||
internal Axis2 ui_top_child_layout_axis(void);
|
||||
internal F32 ui_top_fixed_x(void);
|
||||
internal F32 ui_top_fixed_y(void);
|
||||
internal F32 ui_top_fixed_width(void);
|
||||
internal F32 ui_top_fixed_height(void);
|
||||
internal UI_Size ui_top_pref_width(void);
|
||||
internal UI_Size ui_top_pref_height(void);
|
||||
internal UI_BoxFlags ui_top_flags(void);
|
||||
internal UI_FocusKind ui_top_focus_hot(void);
|
||||
internal UI_FocusKind ui_top_focus_active(void);
|
||||
internal U32 ui_top_fastpath_codepoint(void);
|
||||
internal UI_Key ui_top_group_key(void);
|
||||
internal F32 ui_top_transparency(void);
|
||||
internal UI_Palette* ui_top_palette(void);
|
||||
internal F32 ui_top_squish(void);
|
||||
internal OS_Cursor ui_top_hover_cursor(void);
|
||||
internal F_Tag ui_top_font(void);
|
||||
internal F32 ui_top_font_size(void);
|
||||
internal F_RasterFlags ui_top_text_raster_flags(void);
|
||||
internal F32 ui_top_tab_size(void);
|
||||
internal F32 ui_top_corner_radius_00(void);
|
||||
internal F32 ui_top_corner_radius_01(void);
|
||||
internal F32 ui_top_corner_radius_10(void);
|
||||
internal F32 ui_top_corner_radius_11(void);
|
||||
internal F32 ui_top_blur_size(void);
|
||||
internal F32 ui_top_text_padding(void);
|
||||
internal UI_TextAlign ui_top_text_alignment(void);
|
||||
internal UI_Box * ui_bottom_parent(void);
|
||||
internal Axis2 ui_bottom_child_layout_axis(void);
|
||||
internal F32 ui_bottom_fixed_x(void);
|
||||
internal F32 ui_bottom_fixed_y(void);
|
||||
internal F32 ui_bottom_fixed_width(void);
|
||||
internal F32 ui_bottom_fixed_height(void);
|
||||
internal UI_Size ui_bottom_pref_width(void);
|
||||
internal UI_Size ui_bottom_pref_height(void);
|
||||
internal UI_BoxFlags ui_bottom_flags(void);
|
||||
internal UI_FocusKind ui_bottom_focus_hot(void);
|
||||
internal UI_FocusKind ui_bottom_focus_active(void);
|
||||
internal U32 ui_bottom_fastpath_codepoint(void);
|
||||
internal UI_Key ui_bottom_group_key(void);
|
||||
internal F32 ui_bottom_transparency(void);
|
||||
internal UI_Palette* ui_bottom_palette(void);
|
||||
internal F32 ui_bottom_squish(void);
|
||||
internal OS_Cursor ui_bottom_hover_cursor(void);
|
||||
internal F_Tag ui_bottom_font(void);
|
||||
internal F32 ui_bottom_font_size(void);
|
||||
internal F_RasterFlags ui_bottom_text_raster_flags(void);
|
||||
internal F32 ui_bottom_tab_size(void);
|
||||
internal F32 ui_bottom_corner_radius_00(void);
|
||||
internal F32 ui_bottom_corner_radius_01(void);
|
||||
internal F32 ui_bottom_corner_radius_10(void);
|
||||
internal F32 ui_bottom_corner_radius_11(void);
|
||||
internal F32 ui_bottom_blur_size(void);
|
||||
internal F32 ui_bottom_text_padding(void);
|
||||
internal UI_TextAlign ui_bottom_text_alignment(void);
|
||||
internal UI_Box * ui_push_parent(UI_Box * v);
|
||||
internal Axis2 ui_push_child_layout_axis(Axis2 v);
|
||||
internal F32 ui_push_fixed_x(F32 v);
|
||||
internal F32 ui_push_fixed_y(F32 v);
|
||||
internal F32 ui_push_fixed_width(F32 v);
|
||||
internal F32 ui_push_fixed_height(F32 v);
|
||||
internal UI_Size ui_push_pref_width(UI_Size v);
|
||||
internal UI_Size ui_push_pref_height(UI_Size v);
|
||||
internal UI_BoxFlags ui_push_flags(UI_BoxFlags v);
|
||||
internal UI_FocusKind ui_push_focus_hot(UI_FocusKind v);
|
||||
internal UI_FocusKind ui_push_focus_active(UI_FocusKind v);
|
||||
internal U32 ui_push_fastpath_codepoint(U32 v);
|
||||
internal UI_Key ui_push_group_key(UI_Key v);
|
||||
internal F32 ui_push_transparency(F32 v);
|
||||
internal UI_Palette* ui_push_palette(UI_Palette* v);
|
||||
internal F32 ui_push_squish(F32 v);
|
||||
internal OS_Cursor ui_push_hover_cursor(OS_Cursor v);
|
||||
internal F_Tag ui_push_font(F_Tag v);
|
||||
internal F32 ui_push_font_size(F32 v);
|
||||
internal F_RasterFlags ui_push_text_raster_flags(F_RasterFlags v);
|
||||
internal F32 ui_push_tab_size(F32 v);
|
||||
internal F32 ui_push_corner_radius_00(F32 v);
|
||||
internal F32 ui_push_corner_radius_01(F32 v);
|
||||
internal F32 ui_push_corner_radius_10(F32 v);
|
||||
internal F32 ui_push_corner_radius_11(F32 v);
|
||||
internal F32 ui_push_blur_size(F32 v);
|
||||
internal F32 ui_push_text_padding(F32 v);
|
||||
internal UI_TextAlign ui_push_text_alignment(UI_TextAlign v);
|
||||
internal UI_Box * ui_pop_parent(void);
|
||||
internal Axis2 ui_pop_child_layout_axis(void);
|
||||
internal F32 ui_pop_fixed_x(void);
|
||||
internal F32 ui_pop_fixed_y(void);
|
||||
internal F32 ui_pop_fixed_width(void);
|
||||
internal F32 ui_pop_fixed_height(void);
|
||||
internal UI_Size ui_pop_pref_width(void);
|
||||
internal UI_Size ui_pop_pref_height(void);
|
||||
internal UI_BoxFlags ui_pop_flags(void);
|
||||
internal UI_FocusKind ui_pop_focus_hot(void);
|
||||
internal UI_FocusKind ui_pop_focus_active(void);
|
||||
internal U32 ui_pop_fastpath_codepoint(void);
|
||||
internal UI_Key ui_pop_group_key(void);
|
||||
internal F32 ui_pop_transparency(void);
|
||||
internal UI_Palette* ui_pop_palette(void);
|
||||
internal F32 ui_pop_squish(void);
|
||||
internal OS_Cursor ui_pop_hover_cursor(void);
|
||||
internal F_Tag ui_pop_font(void);
|
||||
internal F32 ui_pop_font_size(void);
|
||||
internal F_RasterFlags ui_pop_text_raster_flags(void);
|
||||
internal F32 ui_pop_tab_size(void);
|
||||
internal F32 ui_pop_corner_radius_00(void);
|
||||
internal F32 ui_pop_corner_radius_01(void);
|
||||
internal F32 ui_pop_corner_radius_10(void);
|
||||
internal F32 ui_pop_corner_radius_11(void);
|
||||
internal F32 ui_pop_blur_size(void);
|
||||
internal F32 ui_pop_text_padding(void);
|
||||
internal UI_TextAlign ui_pop_text_alignment(void);
|
||||
internal UI_Box * ui_set_next_parent(UI_Box * v);
|
||||
internal Axis2 ui_set_next_child_layout_axis(Axis2 v);
|
||||
internal F32 ui_set_next_fixed_x(F32 v);
|
||||
internal F32 ui_set_next_fixed_y(F32 v);
|
||||
internal F32 ui_set_next_fixed_width(F32 v);
|
||||
internal F32 ui_set_next_fixed_height(F32 v);
|
||||
internal UI_Size ui_set_next_pref_width(UI_Size v);
|
||||
internal UI_Size ui_set_next_pref_height(UI_Size v);
|
||||
internal UI_BoxFlags ui_set_next_flags(UI_BoxFlags v);
|
||||
internal UI_FocusKind ui_set_next_focus_hot(UI_FocusKind v);
|
||||
internal UI_FocusKind ui_set_next_focus_active(UI_FocusKind v);
|
||||
internal U32 ui_set_next_fastpath_codepoint(U32 v);
|
||||
internal UI_Key ui_set_next_group_key(UI_Key v);
|
||||
internal F32 ui_set_next_transparency(F32 v);
|
||||
internal UI_Palette* ui_set_next_palette(UI_Palette* v);
|
||||
internal F32 ui_set_next_squish(F32 v);
|
||||
internal OS_Cursor ui_set_next_hover_cursor(OS_Cursor v);
|
||||
internal F_Tag ui_set_next_font(F_Tag v);
|
||||
internal F32 ui_set_next_font_size(F32 v);
|
||||
internal F_RasterFlags ui_set_next_text_raster_flags(F_RasterFlags v);
|
||||
internal F32 ui_set_next_tab_size(F32 v);
|
||||
internal F32 ui_set_next_corner_radius_00(F32 v);
|
||||
internal F32 ui_set_next_corner_radius_01(F32 v);
|
||||
internal F32 ui_set_next_corner_radius_10(F32 v);
|
||||
internal F32 ui_set_next_corner_radius_11(F32 v);
|
||||
internal F32 ui_set_next_blur_size(F32 v);
|
||||
internal F32 ui_set_next_text_padding(F32 v);
|
||||
internal UI_TextAlign ui_set_next_text_alignment(UI_TextAlign v);
|
||||
#endif // UI_META_H
|
||||
// Copyright (c) 2024 Epic Games Tools
|
||||
// Licensed under the MIT license (https://opensource.org/license/mit/)
|
||||
|
||||
//- GENERATED CODE
|
||||
|
||||
#ifndef UI_META_H
|
||||
#define UI_META_H
|
||||
|
||||
typedef struct UI_ParentNode UI_ParentNode; struct UI_ParentNode{UI_ParentNode *next; UI_Box * v;};
|
||||
typedef struct UI_ChildLayoutAxisNode UI_ChildLayoutAxisNode; struct UI_ChildLayoutAxisNode{UI_ChildLayoutAxisNode *next; Axis2 v;};
|
||||
typedef struct UI_FixedXNode UI_FixedXNode; struct UI_FixedXNode{UI_FixedXNode *next; F32 v;};
|
||||
typedef struct UI_FixedYNode UI_FixedYNode; struct UI_FixedYNode{UI_FixedYNode *next; F32 v;};
|
||||
typedef struct UI_FixedWidthNode UI_FixedWidthNode; struct UI_FixedWidthNode{UI_FixedWidthNode *next; F32 v;};
|
||||
typedef struct UI_FixedHeightNode UI_FixedHeightNode; struct UI_FixedHeightNode{UI_FixedHeightNode *next; F32 v;};
|
||||
typedef struct UI_PrefWidthNode UI_PrefWidthNode; struct UI_PrefWidthNode{UI_PrefWidthNode *next; UI_Size v;};
|
||||
typedef struct UI_PrefHeightNode UI_PrefHeightNode; struct UI_PrefHeightNode{UI_PrefHeightNode *next; UI_Size v;};
|
||||
typedef struct UI_FlagsNode UI_FlagsNode; struct UI_FlagsNode{UI_FlagsNode *next; UI_BoxFlags v;};
|
||||
typedef struct UI_FocusHotNode UI_FocusHotNode; struct UI_FocusHotNode{UI_FocusHotNode *next; UI_FocusKind v;};
|
||||
typedef struct UI_FocusActiveNode UI_FocusActiveNode; struct UI_FocusActiveNode{UI_FocusActiveNode *next; UI_FocusKind v;};
|
||||
typedef struct UI_FastpathCodepointNode UI_FastpathCodepointNode; struct UI_FastpathCodepointNode{UI_FastpathCodepointNode *next; U32 v;};
|
||||
typedef struct UI_GroupKeyNode UI_GroupKeyNode; struct UI_GroupKeyNode{UI_GroupKeyNode *next; UI_Key v;};
|
||||
typedef struct UI_TransparencyNode UI_TransparencyNode; struct UI_TransparencyNode{UI_TransparencyNode *next; F32 v;};
|
||||
typedef struct UI_PaletteNode UI_PaletteNode; struct UI_PaletteNode{UI_PaletteNode *next; UI_Palette* v;};
|
||||
typedef struct UI_SquishNode UI_SquishNode; struct UI_SquishNode{UI_SquishNode *next; F32 v;};
|
||||
typedef struct UI_HoverCursorNode UI_HoverCursorNode; struct UI_HoverCursorNode{UI_HoverCursorNode *next; OS_Cursor v;};
|
||||
typedef struct UI_FontNode UI_FontNode; struct UI_FontNode{UI_FontNode *next; F_Tag v;};
|
||||
typedef struct UI_FontSizeNode UI_FontSizeNode; struct UI_FontSizeNode{UI_FontSizeNode *next; F32 v;};
|
||||
typedef struct UI_TextRasterFlagsNode UI_TextRasterFlagsNode; struct UI_TextRasterFlagsNode{UI_TextRasterFlagsNode *next; F_RasterFlags v;};
|
||||
typedef struct UI_TabSizeNode UI_TabSizeNode; struct UI_TabSizeNode{UI_TabSizeNode *next; F32 v;};
|
||||
typedef struct UI_CornerRadius00Node UI_CornerRadius00Node; struct UI_CornerRadius00Node{UI_CornerRadius00Node *next; F32 v;};
|
||||
typedef struct UI_CornerRadius01Node UI_CornerRadius01Node; struct UI_CornerRadius01Node{UI_CornerRadius01Node *next; F32 v;};
|
||||
typedef struct UI_CornerRadius10Node UI_CornerRadius10Node; struct UI_CornerRadius10Node{UI_CornerRadius10Node *next; F32 v;};
|
||||
typedef struct UI_CornerRadius11Node UI_CornerRadius11Node; struct UI_CornerRadius11Node{UI_CornerRadius11Node *next; F32 v;};
|
||||
typedef struct UI_BlurSizeNode UI_BlurSizeNode; struct UI_BlurSizeNode{UI_BlurSizeNode *next; F32 v;};
|
||||
typedef struct UI_TextPaddingNode UI_TextPaddingNode; struct UI_TextPaddingNode{UI_TextPaddingNode *next; F32 v;};
|
||||
typedef struct UI_TextAlignmentNode UI_TextAlignmentNode; struct UI_TextAlignmentNode{UI_TextAlignmentNode *next; UI_TextAlign v;};
|
||||
#define UI_DeclStackNils \
|
||||
struct\
|
||||
{\
|
||||
UI_ParentNode parent_nil_stack_top;\
|
||||
UI_ChildLayoutAxisNode child_layout_axis_nil_stack_top;\
|
||||
UI_FixedXNode fixed_x_nil_stack_top;\
|
||||
UI_FixedYNode fixed_y_nil_stack_top;\
|
||||
UI_FixedWidthNode fixed_width_nil_stack_top;\
|
||||
UI_FixedHeightNode fixed_height_nil_stack_top;\
|
||||
UI_PrefWidthNode pref_width_nil_stack_top;\
|
||||
UI_PrefHeightNode pref_height_nil_stack_top;\
|
||||
UI_FlagsNode flags_nil_stack_top;\
|
||||
UI_FocusHotNode focus_hot_nil_stack_top;\
|
||||
UI_FocusActiveNode focus_active_nil_stack_top;\
|
||||
UI_FastpathCodepointNode fastpath_codepoint_nil_stack_top;\
|
||||
UI_GroupKeyNode group_key_nil_stack_top;\
|
||||
UI_TransparencyNode transparency_nil_stack_top;\
|
||||
UI_PaletteNode palette_nil_stack_top;\
|
||||
UI_SquishNode squish_nil_stack_top;\
|
||||
UI_HoverCursorNode hover_cursor_nil_stack_top;\
|
||||
UI_FontNode font_nil_stack_top;\
|
||||
UI_FontSizeNode font_size_nil_stack_top;\
|
||||
UI_TextRasterFlagsNode text_raster_flags_nil_stack_top;\
|
||||
UI_TabSizeNode tab_size_nil_stack_top;\
|
||||
UI_CornerRadius00Node corner_radius_00_nil_stack_top;\
|
||||
UI_CornerRadius01Node corner_radius_01_nil_stack_top;\
|
||||
UI_CornerRadius10Node corner_radius_10_nil_stack_top;\
|
||||
UI_CornerRadius11Node corner_radius_11_nil_stack_top;\
|
||||
UI_BlurSizeNode blur_size_nil_stack_top;\
|
||||
UI_TextPaddingNode text_padding_nil_stack_top;\
|
||||
UI_TextAlignmentNode text_alignment_nil_stack_top;\
|
||||
}
|
||||
#define UI_InitStackNils(state) \
|
||||
state->parent_nil_stack_top.v = &ui_g_nil_box;\
|
||||
state->child_layout_axis_nil_stack_top.v = Axis2_X;\
|
||||
state->fixed_x_nil_stack_top.v = 0;\
|
||||
state->fixed_y_nil_stack_top.v = 0;\
|
||||
state->fixed_width_nil_stack_top.v = 0;\
|
||||
state->fixed_height_nil_stack_top.v = 0;\
|
||||
state->pref_width_nil_stack_top.v = ui_px(250.f, 1.f);\
|
||||
state->pref_height_nil_stack_top.v = ui_px(30.f, 1.f);\
|
||||
state->flags_nil_stack_top.v = 0;\
|
||||
state->focus_hot_nil_stack_top.v = UI_FocusKind_Null;\
|
||||
state->focus_active_nil_stack_top.v = UI_FocusKind_Null;\
|
||||
state->fastpath_codepoint_nil_stack_top.v = 0;\
|
||||
state->group_key_nil_stack_top.v = ui_key_zero();\
|
||||
state->transparency_nil_stack_top.v = 0;\
|
||||
state->palette_nil_stack_top.v = &ui_g_nil_palette;\
|
||||
state->squish_nil_stack_top.v = 0;\
|
||||
state->hover_cursor_nil_stack_top.v = OS_Cursor_Pointer;\
|
||||
state->font_nil_stack_top.v = f_tag_zero();\
|
||||
state->font_size_nil_stack_top.v = 24.f;\
|
||||
state->text_raster_flags_nil_stack_top.v = F_RasterFlag_Hinted;\
|
||||
state->tab_size_nil_stack_top.v = 24.f*4.f;\
|
||||
state->corner_radius_00_nil_stack_top.v = 0;\
|
||||
state->corner_radius_01_nil_stack_top.v = 0;\
|
||||
state->corner_radius_10_nil_stack_top.v = 0;\
|
||||
state->corner_radius_11_nil_stack_top.v = 0;\
|
||||
state->blur_size_nil_stack_top.v = 0;\
|
||||
state->text_padding_nil_stack_top.v = 0;\
|
||||
state->text_alignment_nil_stack_top.v = UI_TextAlign_Left;\
|
||||
|
||||
#define UI_DeclStacks \
|
||||
struct\
|
||||
{\
|
||||
struct { UI_ParentNode *top; UI_Box * bottom_val; UI_ParentNode *free; B32 auto_pop; } parent_stack;\
|
||||
struct { UI_ChildLayoutAxisNode *top; Axis2 bottom_val; UI_ChildLayoutAxisNode *free; B32 auto_pop; } child_layout_axis_stack;\
|
||||
struct { UI_FixedXNode *top; F32 bottom_val; UI_FixedXNode *free; B32 auto_pop; } fixed_x_stack;\
|
||||
struct { UI_FixedYNode *top; F32 bottom_val; UI_FixedYNode *free; B32 auto_pop; } fixed_y_stack;\
|
||||
struct { UI_FixedWidthNode *top; F32 bottom_val; UI_FixedWidthNode *free; B32 auto_pop; } fixed_width_stack;\
|
||||
struct { UI_FixedHeightNode *top; F32 bottom_val; UI_FixedHeightNode *free; B32 auto_pop; } fixed_height_stack;\
|
||||
struct { UI_PrefWidthNode *top; UI_Size bottom_val; UI_PrefWidthNode *free; B32 auto_pop; } pref_width_stack;\
|
||||
struct { UI_PrefHeightNode *top; UI_Size bottom_val; UI_PrefHeightNode *free; B32 auto_pop; } pref_height_stack;\
|
||||
struct { UI_FlagsNode *top; UI_BoxFlags bottom_val; UI_FlagsNode *free; B32 auto_pop; } flags_stack;\
|
||||
struct { UI_FocusHotNode *top; UI_FocusKind bottom_val; UI_FocusHotNode *free; B32 auto_pop; } focus_hot_stack;\
|
||||
struct { UI_FocusActiveNode *top; UI_FocusKind bottom_val; UI_FocusActiveNode *free; B32 auto_pop; } focus_active_stack;\
|
||||
struct { UI_FastpathCodepointNode *top; U32 bottom_val; UI_FastpathCodepointNode *free; B32 auto_pop; } fastpath_codepoint_stack;\
|
||||
struct { UI_GroupKeyNode *top; UI_Key bottom_val; UI_GroupKeyNode *free; B32 auto_pop; } group_key_stack;\
|
||||
struct { UI_TransparencyNode *top; F32 bottom_val; UI_TransparencyNode *free; B32 auto_pop; } transparency_stack;\
|
||||
struct { UI_PaletteNode *top; UI_Palette* bottom_val; UI_PaletteNode *free; B32 auto_pop; } palette_stack;\
|
||||
struct { UI_SquishNode *top; F32 bottom_val; UI_SquishNode *free; B32 auto_pop; } squish_stack;\
|
||||
struct { UI_HoverCursorNode *top; OS_Cursor bottom_val; UI_HoverCursorNode *free; B32 auto_pop; } hover_cursor_stack;\
|
||||
struct { UI_FontNode *top; F_Tag bottom_val; UI_FontNode *free; B32 auto_pop; } font_stack;\
|
||||
struct { UI_FontSizeNode *top; F32 bottom_val; UI_FontSizeNode *free; B32 auto_pop; } font_size_stack;\
|
||||
struct { UI_TextRasterFlagsNode *top; F_RasterFlags bottom_val; UI_TextRasterFlagsNode *free; B32 auto_pop; } text_raster_flags_stack;\
|
||||
struct { UI_TabSizeNode *top; F32 bottom_val; UI_TabSizeNode *free; B32 auto_pop; } tab_size_stack;\
|
||||
struct { UI_CornerRadius00Node *top; F32 bottom_val; UI_CornerRadius00Node *free; B32 auto_pop; } corner_radius_00_stack;\
|
||||
struct { UI_CornerRadius01Node *top; F32 bottom_val; UI_CornerRadius01Node *free; B32 auto_pop; } corner_radius_01_stack;\
|
||||
struct { UI_CornerRadius10Node *top; F32 bottom_val; UI_CornerRadius10Node *free; B32 auto_pop; } corner_radius_10_stack;\
|
||||
struct { UI_CornerRadius11Node *top; F32 bottom_val; UI_CornerRadius11Node *free; B32 auto_pop; } corner_radius_11_stack;\
|
||||
struct { UI_BlurSizeNode *top; F32 bottom_val; UI_BlurSizeNode *free; B32 auto_pop; } blur_size_stack;\
|
||||
struct { UI_TextPaddingNode *top; F32 bottom_val; UI_TextPaddingNode *free; B32 auto_pop; } text_padding_stack;\
|
||||
struct { UI_TextAlignmentNode *top; UI_TextAlign bottom_val; UI_TextAlignmentNode *free; B32 auto_pop; } text_alignment_stack;\
|
||||
}
|
||||
#define UI_InitStacks(state) \
|
||||
state->parent_stack.top = &state->parent_nil_stack_top; state->parent_stack.bottom_val = &ui_g_nil_box; state->parent_stack.free = 0; state->parent_stack.auto_pop = 0;\
|
||||
state->child_layout_axis_stack.top = &state->child_layout_axis_nil_stack_top; state->child_layout_axis_stack.bottom_val = Axis2_X; state->child_layout_axis_stack.free = 0; state->child_layout_axis_stack.auto_pop = 0;\
|
||||
state->fixed_x_stack.top = &state->fixed_x_nil_stack_top; state->fixed_x_stack.bottom_val = 0; state->fixed_x_stack.free = 0; state->fixed_x_stack.auto_pop = 0;\
|
||||
state->fixed_y_stack.top = &state->fixed_y_nil_stack_top; state->fixed_y_stack.bottom_val = 0; state->fixed_y_stack.free = 0; state->fixed_y_stack.auto_pop = 0;\
|
||||
state->fixed_width_stack.top = &state->fixed_width_nil_stack_top; state->fixed_width_stack.bottom_val = 0; state->fixed_width_stack.free = 0; state->fixed_width_stack.auto_pop = 0;\
|
||||
state->fixed_height_stack.top = &state->fixed_height_nil_stack_top; state->fixed_height_stack.bottom_val = 0; state->fixed_height_stack.free = 0; state->fixed_height_stack.auto_pop = 0;\
|
||||
state->pref_width_stack.top = &state->pref_width_nil_stack_top; state->pref_width_stack.bottom_val = ui_px(250.f, 1.f); state->pref_width_stack.free = 0; state->pref_width_stack.auto_pop = 0;\
|
||||
state->pref_height_stack.top = &state->pref_height_nil_stack_top; state->pref_height_stack.bottom_val = ui_px(30.f, 1.f); state->pref_height_stack.free = 0; state->pref_height_stack.auto_pop = 0;\
|
||||
state->flags_stack.top = &state->flags_nil_stack_top; state->flags_stack.bottom_val = 0; state->flags_stack.free = 0; state->flags_stack.auto_pop = 0;\
|
||||
state->focus_hot_stack.top = &state->focus_hot_nil_stack_top; state->focus_hot_stack.bottom_val = UI_FocusKind_Null; state->focus_hot_stack.free = 0; state->focus_hot_stack.auto_pop = 0;\
|
||||
state->focus_active_stack.top = &state->focus_active_nil_stack_top; state->focus_active_stack.bottom_val = UI_FocusKind_Null; state->focus_active_stack.free = 0; state->focus_active_stack.auto_pop = 0;\
|
||||
state->fastpath_codepoint_stack.top = &state->fastpath_codepoint_nil_stack_top; state->fastpath_codepoint_stack.bottom_val = 0; state->fastpath_codepoint_stack.free = 0; state->fastpath_codepoint_stack.auto_pop = 0;\
|
||||
state->group_key_stack.top = &state->group_key_nil_stack_top; state->group_key_stack.bottom_val = ui_key_zero(); state->group_key_stack.free = 0; state->group_key_stack.auto_pop = 0;\
|
||||
state->transparency_stack.top = &state->transparency_nil_stack_top; state->transparency_stack.bottom_val = 0; state->transparency_stack.free = 0; state->transparency_stack.auto_pop = 0;\
|
||||
state->palette_stack.top = &state->palette_nil_stack_top; state->palette_stack.bottom_val = &ui_g_nil_palette; state->palette_stack.free = 0; state->palette_stack.auto_pop = 0;\
|
||||
state->squish_stack.top = &state->squish_nil_stack_top; state->squish_stack.bottom_val = 0; state->squish_stack.free = 0; state->squish_stack.auto_pop = 0;\
|
||||
state->hover_cursor_stack.top = &state->hover_cursor_nil_stack_top; state->hover_cursor_stack.bottom_val = OS_Cursor_Pointer; state->hover_cursor_stack.free = 0; state->hover_cursor_stack.auto_pop = 0;\
|
||||
state->font_stack.top = &state->font_nil_stack_top; state->font_stack.bottom_val = f_tag_zero(); state->font_stack.free = 0; state->font_stack.auto_pop = 0;\
|
||||
state->font_size_stack.top = &state->font_size_nil_stack_top; state->font_size_stack.bottom_val = 24.f; state->font_size_stack.free = 0; state->font_size_stack.auto_pop = 0;\
|
||||
state->text_raster_flags_stack.top = &state->text_raster_flags_nil_stack_top; state->text_raster_flags_stack.bottom_val = F_RasterFlag_Hinted; state->text_raster_flags_stack.free = 0; state->text_raster_flags_stack.auto_pop = 0;\
|
||||
state->tab_size_stack.top = &state->tab_size_nil_stack_top; state->tab_size_stack.bottom_val = 24.f*4.f; state->tab_size_stack.free = 0; state->tab_size_stack.auto_pop = 0;\
|
||||
state->corner_radius_00_stack.top = &state->corner_radius_00_nil_stack_top; state->corner_radius_00_stack.bottom_val = 0; state->corner_radius_00_stack.free = 0; state->corner_radius_00_stack.auto_pop = 0;\
|
||||
state->corner_radius_01_stack.top = &state->corner_radius_01_nil_stack_top; state->corner_radius_01_stack.bottom_val = 0; state->corner_radius_01_stack.free = 0; state->corner_radius_01_stack.auto_pop = 0;\
|
||||
state->corner_radius_10_stack.top = &state->corner_radius_10_nil_stack_top; state->corner_radius_10_stack.bottom_val = 0; state->corner_radius_10_stack.free = 0; state->corner_radius_10_stack.auto_pop = 0;\
|
||||
state->corner_radius_11_stack.top = &state->corner_radius_11_nil_stack_top; state->corner_radius_11_stack.bottom_val = 0; state->corner_radius_11_stack.free = 0; state->corner_radius_11_stack.auto_pop = 0;\
|
||||
state->blur_size_stack.top = &state->blur_size_nil_stack_top; state->blur_size_stack.bottom_val = 0; state->blur_size_stack.free = 0; state->blur_size_stack.auto_pop = 0;\
|
||||
state->text_padding_stack.top = &state->text_padding_nil_stack_top; state->text_padding_stack.bottom_val = 0; state->text_padding_stack.free = 0; state->text_padding_stack.auto_pop = 0;\
|
||||
state->text_alignment_stack.top = &state->text_alignment_nil_stack_top; state->text_alignment_stack.bottom_val = UI_TextAlign_Left; state->text_alignment_stack.free = 0; state->text_alignment_stack.auto_pop = 0;\
|
||||
|
||||
#define UI_AutoPopStacks(state) \
|
||||
if(state->parent_stack.auto_pop) { ui_pop_parent(); state->parent_stack.auto_pop = 0; }\
|
||||
if(state->child_layout_axis_stack.auto_pop) { ui_pop_child_layout_axis(); state->child_layout_axis_stack.auto_pop = 0; }\
|
||||
if(state->fixed_x_stack.auto_pop) { ui_pop_fixed_x(); state->fixed_x_stack.auto_pop = 0; }\
|
||||
if(state->fixed_y_stack.auto_pop) { ui_pop_fixed_y(); state->fixed_y_stack.auto_pop = 0; }\
|
||||
if(state->fixed_width_stack.auto_pop) { ui_pop_fixed_width(); state->fixed_width_stack.auto_pop = 0; }\
|
||||
if(state->fixed_height_stack.auto_pop) { ui_pop_fixed_height(); state->fixed_height_stack.auto_pop = 0; }\
|
||||
if(state->pref_width_stack.auto_pop) { ui_pop_pref_width(); state->pref_width_stack.auto_pop = 0; }\
|
||||
if(state->pref_height_stack.auto_pop) { ui_pop_pref_height(); state->pref_height_stack.auto_pop = 0; }\
|
||||
if(state->flags_stack.auto_pop) { ui_pop_flags(); state->flags_stack.auto_pop = 0; }\
|
||||
if(state->focus_hot_stack.auto_pop) { ui_pop_focus_hot(); state->focus_hot_stack.auto_pop = 0; }\
|
||||
if(state->focus_active_stack.auto_pop) { ui_pop_focus_active(); state->focus_active_stack.auto_pop = 0; }\
|
||||
if(state->fastpath_codepoint_stack.auto_pop) { ui_pop_fastpath_codepoint(); state->fastpath_codepoint_stack.auto_pop = 0; }\
|
||||
if(state->group_key_stack.auto_pop) { ui_pop_group_key(); state->group_key_stack.auto_pop = 0; }\
|
||||
if(state->transparency_stack.auto_pop) { ui_pop_transparency(); state->transparency_stack.auto_pop = 0; }\
|
||||
if(state->palette_stack.auto_pop) { ui_pop_palette(); state->palette_stack.auto_pop = 0; }\
|
||||
if(state->squish_stack.auto_pop) { ui_pop_squish(); state->squish_stack.auto_pop = 0; }\
|
||||
if(state->hover_cursor_stack.auto_pop) { ui_pop_hover_cursor(); state->hover_cursor_stack.auto_pop = 0; }\
|
||||
if(state->font_stack.auto_pop) { ui_pop_font(); state->font_stack.auto_pop = 0; }\
|
||||
if(state->font_size_stack.auto_pop) { ui_pop_font_size(); state->font_size_stack.auto_pop = 0; }\
|
||||
if(state->text_raster_flags_stack.auto_pop) { ui_pop_text_raster_flags(); state->text_raster_flags_stack.auto_pop = 0; }\
|
||||
if(state->tab_size_stack.auto_pop) { ui_pop_tab_size(); state->tab_size_stack.auto_pop = 0; }\
|
||||
if(state->corner_radius_00_stack.auto_pop) { ui_pop_corner_radius_00(); state->corner_radius_00_stack.auto_pop = 0; }\
|
||||
if(state->corner_radius_01_stack.auto_pop) { ui_pop_corner_radius_01(); state->corner_radius_01_stack.auto_pop = 0; }\
|
||||
if(state->corner_radius_10_stack.auto_pop) { ui_pop_corner_radius_10(); state->corner_radius_10_stack.auto_pop = 0; }\
|
||||
if(state->corner_radius_11_stack.auto_pop) { ui_pop_corner_radius_11(); state->corner_radius_11_stack.auto_pop = 0; }\
|
||||
if(state->blur_size_stack.auto_pop) { ui_pop_blur_size(); state->blur_size_stack.auto_pop = 0; }\
|
||||
if(state->text_padding_stack.auto_pop) { ui_pop_text_padding(); state->text_padding_stack.auto_pop = 0; }\
|
||||
if(state->text_alignment_stack.auto_pop) { ui_pop_text_alignment(); state->text_alignment_stack.auto_pop = 0; }\
|
||||
|
||||
internal UI_Box * ui_top_parent(void);
|
||||
internal Axis2 ui_top_child_layout_axis(void);
|
||||
internal F32 ui_top_fixed_x(void);
|
||||
internal F32 ui_top_fixed_y(void);
|
||||
internal F32 ui_top_fixed_width(void);
|
||||
internal F32 ui_top_fixed_height(void);
|
||||
internal UI_Size ui_top_pref_width(void);
|
||||
internal UI_Size ui_top_pref_height(void);
|
||||
internal UI_BoxFlags ui_top_flags(void);
|
||||
internal UI_FocusKind ui_top_focus_hot(void);
|
||||
internal UI_FocusKind ui_top_focus_active(void);
|
||||
internal U32 ui_top_fastpath_codepoint(void);
|
||||
internal UI_Key ui_top_group_key(void);
|
||||
internal F32 ui_top_transparency(void);
|
||||
internal UI_Palette* ui_top_palette(void);
|
||||
internal F32 ui_top_squish(void);
|
||||
internal OS_Cursor ui_top_hover_cursor(void);
|
||||
internal F_Tag ui_top_font(void);
|
||||
internal F32 ui_top_font_size(void);
|
||||
internal F_RasterFlags ui_top_text_raster_flags(void);
|
||||
internal F32 ui_top_tab_size(void);
|
||||
internal F32 ui_top_corner_radius_00(void);
|
||||
internal F32 ui_top_corner_radius_01(void);
|
||||
internal F32 ui_top_corner_radius_10(void);
|
||||
internal F32 ui_top_corner_radius_11(void);
|
||||
internal F32 ui_top_blur_size(void);
|
||||
internal F32 ui_top_text_padding(void);
|
||||
internal UI_TextAlign ui_top_text_alignment(void);
|
||||
internal UI_Box * ui_bottom_parent(void);
|
||||
internal Axis2 ui_bottom_child_layout_axis(void);
|
||||
internal F32 ui_bottom_fixed_x(void);
|
||||
internal F32 ui_bottom_fixed_y(void);
|
||||
internal F32 ui_bottom_fixed_width(void);
|
||||
internal F32 ui_bottom_fixed_height(void);
|
||||
internal UI_Size ui_bottom_pref_width(void);
|
||||
internal UI_Size ui_bottom_pref_height(void);
|
||||
internal UI_BoxFlags ui_bottom_flags(void);
|
||||
internal UI_FocusKind ui_bottom_focus_hot(void);
|
||||
internal UI_FocusKind ui_bottom_focus_active(void);
|
||||
internal U32 ui_bottom_fastpath_codepoint(void);
|
||||
internal UI_Key ui_bottom_group_key(void);
|
||||
internal F32 ui_bottom_transparency(void);
|
||||
internal UI_Palette* ui_bottom_palette(void);
|
||||
internal F32 ui_bottom_squish(void);
|
||||
internal OS_Cursor ui_bottom_hover_cursor(void);
|
||||
internal F_Tag ui_bottom_font(void);
|
||||
internal F32 ui_bottom_font_size(void);
|
||||
internal F_RasterFlags ui_bottom_text_raster_flags(void);
|
||||
internal F32 ui_bottom_tab_size(void);
|
||||
internal F32 ui_bottom_corner_radius_00(void);
|
||||
internal F32 ui_bottom_corner_radius_01(void);
|
||||
internal F32 ui_bottom_corner_radius_10(void);
|
||||
internal F32 ui_bottom_corner_radius_11(void);
|
||||
internal F32 ui_bottom_blur_size(void);
|
||||
internal F32 ui_bottom_text_padding(void);
|
||||
internal UI_TextAlign ui_bottom_text_alignment(void);
|
||||
internal UI_Box * ui_push_parent(UI_Box * v);
|
||||
internal Axis2 ui_push_child_layout_axis(Axis2 v);
|
||||
internal F32 ui_push_fixed_x(F32 v);
|
||||
internal F32 ui_push_fixed_y(F32 v);
|
||||
internal F32 ui_push_fixed_width(F32 v);
|
||||
internal F32 ui_push_fixed_height(F32 v);
|
||||
internal UI_Size ui_push_pref_width(UI_Size v);
|
||||
internal UI_Size ui_push_pref_height(UI_Size v);
|
||||
internal UI_BoxFlags ui_push_flags(UI_BoxFlags v);
|
||||
internal UI_FocusKind ui_push_focus_hot(UI_FocusKind v);
|
||||
internal UI_FocusKind ui_push_focus_active(UI_FocusKind v);
|
||||
internal U32 ui_push_fastpath_codepoint(U32 v);
|
||||
internal UI_Key ui_push_group_key(UI_Key v);
|
||||
internal F32 ui_push_transparency(F32 v);
|
||||
internal UI_Palette* ui_push_palette(UI_Palette* v);
|
||||
internal F32 ui_push_squish(F32 v);
|
||||
internal OS_Cursor ui_push_hover_cursor(OS_Cursor v);
|
||||
internal F_Tag ui_push_font(F_Tag v);
|
||||
internal F32 ui_push_font_size(F32 v);
|
||||
internal F_RasterFlags ui_push_text_raster_flags(F_RasterFlags v);
|
||||
internal F32 ui_push_tab_size(F32 v);
|
||||
internal F32 ui_push_corner_radius_00(F32 v);
|
||||
internal F32 ui_push_corner_radius_01(F32 v);
|
||||
internal F32 ui_push_corner_radius_10(F32 v);
|
||||
internal F32 ui_push_corner_radius_11(F32 v);
|
||||
internal F32 ui_push_blur_size(F32 v);
|
||||
internal F32 ui_push_text_padding(F32 v);
|
||||
internal UI_TextAlign ui_push_text_alignment(UI_TextAlign v);
|
||||
internal UI_Box * ui_pop_parent(void);
|
||||
internal Axis2 ui_pop_child_layout_axis(void);
|
||||
internal F32 ui_pop_fixed_x(void);
|
||||
internal F32 ui_pop_fixed_y(void);
|
||||
internal F32 ui_pop_fixed_width(void);
|
||||
internal F32 ui_pop_fixed_height(void);
|
||||
internal UI_Size ui_pop_pref_width(void);
|
||||
internal UI_Size ui_pop_pref_height(void);
|
||||
internal UI_BoxFlags ui_pop_flags(void);
|
||||
internal UI_FocusKind ui_pop_focus_hot(void);
|
||||
internal UI_FocusKind ui_pop_focus_active(void);
|
||||
internal U32 ui_pop_fastpath_codepoint(void);
|
||||
internal UI_Key ui_pop_group_key(void);
|
||||
internal F32 ui_pop_transparency(void);
|
||||
internal UI_Palette* ui_pop_palette(void);
|
||||
internal F32 ui_pop_squish(void);
|
||||
internal OS_Cursor ui_pop_hover_cursor(void);
|
||||
internal F_Tag ui_pop_font(void);
|
||||
internal F32 ui_pop_font_size(void);
|
||||
internal F_RasterFlags ui_pop_text_raster_flags(void);
|
||||
internal F32 ui_pop_tab_size(void);
|
||||
internal F32 ui_pop_corner_radius_00(void);
|
||||
internal F32 ui_pop_corner_radius_01(void);
|
||||
internal F32 ui_pop_corner_radius_10(void);
|
||||
internal F32 ui_pop_corner_radius_11(void);
|
||||
internal F32 ui_pop_blur_size(void);
|
||||
internal F32 ui_pop_text_padding(void);
|
||||
internal UI_TextAlign ui_pop_text_alignment(void);
|
||||
internal UI_Box * ui_set_next_parent(UI_Box * v);
|
||||
internal Axis2 ui_set_next_child_layout_axis(Axis2 v);
|
||||
internal F32 ui_set_next_fixed_x(F32 v);
|
||||
internal F32 ui_set_next_fixed_y(F32 v);
|
||||
internal F32 ui_set_next_fixed_width(F32 v);
|
||||
internal F32 ui_set_next_fixed_height(F32 v);
|
||||
internal UI_Size ui_set_next_pref_width(UI_Size v);
|
||||
internal UI_Size ui_set_next_pref_height(UI_Size v);
|
||||
internal UI_BoxFlags ui_set_next_flags(UI_BoxFlags v);
|
||||
internal UI_FocusKind ui_set_next_focus_hot(UI_FocusKind v);
|
||||
internal UI_FocusKind ui_set_next_focus_active(UI_FocusKind v);
|
||||
internal U32 ui_set_next_fastpath_codepoint(U32 v);
|
||||
internal UI_Key ui_set_next_group_key(UI_Key v);
|
||||
internal F32 ui_set_next_transparency(F32 v);
|
||||
internal UI_Palette* ui_set_next_palette(UI_Palette* v);
|
||||
internal F32 ui_set_next_squish(F32 v);
|
||||
internal OS_Cursor ui_set_next_hover_cursor(OS_Cursor v);
|
||||
internal F_Tag ui_set_next_font(F_Tag v);
|
||||
internal F32 ui_set_next_font_size(F32 v);
|
||||
internal F_RasterFlags ui_set_next_text_raster_flags(F_RasterFlags v);
|
||||
internal F32 ui_set_next_tab_size(F32 v);
|
||||
internal F32 ui_set_next_corner_radius_00(F32 v);
|
||||
internal F32 ui_set_next_corner_radius_01(F32 v);
|
||||
internal F32 ui_set_next_corner_radius_10(F32 v);
|
||||
internal F32 ui_set_next_corner_radius_11(F32 v);
|
||||
internal F32 ui_set_next_blur_size(F32 v);
|
||||
internal F32 ui_set_next_text_padding(F32 v);
|
||||
internal UI_TextAlign ui_set_next_text_alignment(UI_TextAlign v);
|
||||
#endif // UI_META_H
|
||||
|
||||
Reference in New Issue
Block a user