From 9a2fe3e091849518f3d2f79114ba67fa4fc63adf Mon Sep 17 00:00:00 2001 From: nasr Date: Fri, 9 Oct 2026 12:37:56 +0200 Subject: feature: window with sqaures etc etc --- source/base/base_core.h | 73 +++++++++++++++++++++++++++++-------------------- 1 file changed, 43 insertions(+), 30 deletions(-) (limited to 'source/base/base_core.h') diff --git a/source/base/base_core.h b/source/base/base_core.h index 9d0f5e7..d708ce1 100644 --- a/source/base/base_core.h +++ b/source/base/base_core.h @@ -14,10 +14,31 @@ //- architecture definitions -#if defined(__arm__) || defined(__aarch64__) +#if defined(__arm__) || defined(__aarch64__) || defined(_M_ARM64) #define ARCH_ARM 1 -#elif defined(__i386__) || defined(__x86_64__) +#elif defined(__x86_64__) || defined(_M_X64) #define ARCH_x86_64 1 +#elif defined(__i386__) || defined(_M_IX86) +#define ARCH_X86 1 +#endif + +#ifndef COMPILER_MSVC +#define COMPILER_MSVC 0 +#endif +#ifndef COMPILER_CLANG +#define COMPILER_CLANG 0 +#endif +#ifndef COMPILER_GCC +#define COMPILER_GCC 0 +#endif +#ifndef ARCH_ARM +#define ARCH_ARM 0 +#endif +#ifndef ARCH_x86_64 +#define ARCH_x86_64 0 +#endif +#ifndef ARCH_X86 +#define ARCH_X86 0 #endif //- compiler definitions @@ -39,26 +60,27 @@ #define Unused(x) (void)(x) #define Nil 0 -#define Deprecated __attribute__((__deprecated__)) +#define Deprecated [[deprecated]] //- breakpoints -#if ARCH_ARM -#define breakpoint() __asm__ volatile("brk #0") -#elif ARCH_x86_64 - -#if COMPILER_GCC -#define breakpoint() __asm__ volatile("int3") -#endif -#endif - #if COMPILER_MSVC #include #define breakpoint() __debugbreak() +#define Trap() __fastfail(0) +#elif COMPILER_CLANG +#define breakpoint() __builtin_debugtrap() +#define Trap() __builtin_trap() +#elif ARCH_ARM +#define breakpoint() __asm__ volatile("brk #0") +#define Trap() __builtin_trap() +#else +#define breakpoint() __asm__ volatile("int3") +#define Trap() __builtin_trap() #endif //- #define MemCpy(dest, src, len) memcpy((dest), (src), (len)) -#define MemSet(dest, len) memset((dest), (1), (len)) +#define MemSet(dest, val, len) memset((dest), (val), (len)) #define MemSetZero(dest, len) memset((dest), (0), (len)) //- @@ -107,11 +129,17 @@ typedef intptr_t smm; //- -#define Assert(expression) _assert(expression) +#define Assert(expression) do { \ + if (!(expression)) { \ + breakpoint(); \ + Trap(); \ + } \ + } \ + while(0) // NOTE: apparantly in macros this strinifys whataever you put after the # #define AssertLog(expression, ...) do { \ - if (!expression) { \ + if (!(expression)) { \ Log("%s:%d: %s\n", __FILE__, __LINE__, #expression); \ Log(__VA_ARGS__);\ Assert(false);\ @@ -119,21 +147,6 @@ typedef intptr_t smm; } \ while(0) -internal void _assert(bool expression); - - -internal void _assert(bool expression) -{ - - if (!expression) { - breakpoint(); -#if COMPILER_MSVC - __fastfail(0); -#else - __builtin_trap(); // NOTE: always stop, breakpoint() is empty on arm without DEBUG -#endif - } -} -- cgit v1.3.1