From e8ce34f6f27d67b112103c23b98a8bf0a27b31c5 Mon Sep 17 00:00:00 2001 From: doylet Date: Thu, 11 Sep 2025 22:02:36 +1000 Subject: [PATCH] Some more house cleaning --- Single_Header/dn_single_header.cpp | 2 +- Single_Header/dn_single_header.h | 97 +++++++++++++++--------------- Source/Base/dn_base.h | 95 +++++++++++++++-------------- Source/Extra/dn_math.cpp | 6 +- 4 files changed, 99 insertions(+), 101 deletions(-) diff --git a/Single_Header/dn_single_header.cpp b/Single_Header/dn_single_header.cpp index 211ffb6..a2f4cdf 100644 --- a/Single_Header/dn_single_header.cpp +++ b/Single_Header/dn_single_header.cpp @@ -1,4 +1,4 @@ -// Generated by the DN single header generator 2025-09-10 22:35:53 +// Generated by the DN single header generator 2025-09-11 22:02:03 #define DN_BASE_INC_CPP diff --git a/Single_Header/dn_single_header.h b/Single_Header/dn_single_header.h index 0e590ae..4ed3520 100644 --- a/Single_Header/dn_single_header.h +++ b/Single_Header/dn_single_header.h @@ -1,4 +1,4 @@ -// Generated by the DN single header generator 2025-09-10 22:35:53 +// Generated by the DN single header generator 2025-09-11 22:02:03 #if !defined(DN_BASE_INC_H) #define DN_BASE_INC_H @@ -221,7 +221,7 @@ // DN: Single header generator commented out this header => #include "../dn_base_inc.h" -// NOTE: Macros //////////////////////////////////////////////////////////////////////////////////// +// NOTE: Macros #define DN_Stringify(x) #x #define DN_TokenCombine2(x, y) x ## y #define DN_TokenCombine(x, y) DN_TokenCombine2(x, y) @@ -247,7 +247,7 @@ #define DN_IsPowerOfTwo(value) ((((uintptr_t)(value)) & (((uintptr_t)(value)) - 1)) == 0) #define DN_IsPowerOfTwoAligned(value, pot) ((((uintptr_t)value) & (((uintptr_t)pot) - 1)) == 0) -// NOTE: String.h Dependencies ///////////////////////////////////////////////////////////////////// +// NOTE: String.h Dependencies #if !defined(DN_Memcpy) || !defined(DN_Memset) || !defined(DN_Memcmp) || !defined(DN_Memmove) #include #if !defined(DN_Memcpy) @@ -264,7 +264,7 @@ #endif #endif -// NOTE: Math.h Dependencies /////////////////////////////////////////////////////////////////////// +// NOTE: Math.h Dependencies #if !defined(DN_SqrtF32) || !defined(DN_SinF32) || !defined(DN_CosF32) || !defined(DN_TanF32) #include #if !defined(DN_SqrtF32) @@ -281,7 +281,7 @@ #endif #endif -// NOTE: Math ////////////////////////////////////////////////////////////////////////////////////// +// NOTE: Math #define DN_PiF32 3.14159265359f #define DN_DegreesToRadians(degrees) ((degrees) * (DN_PI / 180.0f)) @@ -300,19 +300,19 @@ b = temp; \ } while (0) -// NOTE: Size ////////////////////////////////////////////////////////////////////////////////////// +// NOTE: Size #define DN_SizeOfI(val) DN_CAST(ptrdiff_t)sizeof(val) #define DN_ArrayCountU(array) (sizeof(array)/(sizeof((array)[0]))) #define DN_ArrayCountI(array) (DN_ISize)DN_ArrayCountU(array) #define DN_CharCountU(string) (sizeof(string) - 1) -// NOTE: SI Byte /////////////////////////////////////////////////////////////////////////////////// +// NOTE: SI Byte #define DN_Bytes(val) ((DN_U64)val) #define DN_Kilobytes(val) ((DN_U64)1024 * DN_Bytes(val)) #define DN_Megabytes(val) ((DN_U64)1024 * DN_Kilobytes(val)) #define DN_Gigabytes(val) ((DN_U64)1024 * DN_Megabytes(val)) -// NOTE: Time ////////////////////////////////////////////////////////////////////////////////////// +// NOTE: Time #define DN_SecondsToMs(val) ((val) * 1000) #define DN_MinutesToSec(val) ((val) * 60ULL) #define DN_HoursToSec(val) (DN_MinutesToSec(val) * 60ULL) @@ -320,7 +320,7 @@ #define DN_WeeksToSec(val) (DN_DaysToSec(val) * 7ULL) #define DN_YearsToSec(val) (DN_WeeksToSec(val) * 52ULL) -// NOTE: Debug Break /////////////////////////////////////////////////////////////////////////////// +// NOTE: Debug Break #if !defined(DN_DebugBreak) #if defined(NDEBUG) #define DN_DebugBreak @@ -342,7 +342,7 @@ #endif #endif -// NOTE: Byte swaps //////////////////////////////////////////////////////////////////////////////// +// NOTE: Byte swaps #define DN_ByteSwap64(u64) (((((u64) >> 56) & 0xFF) << 0) | \ ((((u64) >> 48) & 0xFF) << 8) | \ ((((u64) >> 40) & 0xFF) << 16) | \ @@ -352,32 +352,7 @@ ((((u64) >> 8) & 0xFF) << 48) | \ ((((u64) >> 0) & 0xFF) << 56)) -// NOTE: Defer Macro /////////////////////////////////////////////////////////////////////////////// -#if defined(__cplusplus) -template -struct DN_Defer -{ - Procedure proc; - DN_Defer(Procedure p) : proc(p) {} - ~DN_Defer() { proc(); } -}; - -struct DN_DeferHelper -{ - template - DN_Defer operator+(Lambda lambda) { return DN_Defer(lambda); }; -}; - -#define DN_UniqueName(prefix) DN_TokenCombine(prefix, __LINE__) -#define DN_DEFER const auto DN_UniqueName(defer_lambda_) = DN_DeferHelper() + [&]() -#endif // defined(__cplusplus) - -#define DN_DeferLoop(begin, end) \ - bool DN_UniqueName(once) = (begin, true); \ - DN_UniqueName(once); \ - end, DN_UniqueName(once) = false - -// NOTE: Types ///////////////////////////////////////////////////////////////////////////////////// +// NOTE: Types typedef intptr_t DN_ISize; typedef uintptr_t DN_USize; @@ -414,24 +389,22 @@ struct DN_Str8 { char *data; // The bytes of the string DN_USize size; // The number of bytes in the string - - char const *begin() const { return data; } - char const *end() const { return data + size; } - char *begin() { return data; } - char *end() { return data + size; } }; struct DN_Str16 // A pointer and length style string that holds slices to UTF16 bytes. { wchar_t *data; // The UTF16 bytes of the string DN_USize size; // The number of characters in the string +}; - #if defined(__cplusplus) - wchar_t const *begin() const { return data; } // Const begin iterator for range-for loops - wchar_t const *end() const { return data + size; } // Const end iterator for range-for loops - wchar_t *begin() { return data; } // Begin iterator for range-for loops - wchar_t *end() { return data + size; } // End iterator for range-for loops - #endif +struct DN_U8x32 +{ + DN_U8 data[32]; +}; + +struct DN_U8x64 +{ + DN_U8 data[64]; }; template @@ -446,16 +419,42 @@ struct DN_Slice // A pointer and length container of data T const *end() const { return data + size; } }; -// NOTE: DN_CallSite /////////////////////////////////////////////////////////////////////////////// struct DN_CallSite { DN_Str8 file; DN_Str8 function; DN_U32 line; }; + #define DN_CALL_SITE DN_CallSite { DN_STR8(__FILE__), DN_STR8(__func__), __LINE__ } -// NOTE: Intrinsics //////////////////////////////////////////////////////////////////////////////// +// NOTE: Defer Macro +#if defined(__cplusplus) +template +struct DN_Defer +{ + Procedure proc; + DN_Defer(Procedure p) : proc(p) {} + ~DN_Defer() { proc(); } +}; + +struct DN_DeferHelper +{ + template + DN_Defer operator+(Lambda lambda) { return DN_Defer(lambda); }; +}; + +#define DN_UniqueName(prefix) DN_TokenCombine(prefix, __LINE__) +#define DN_DEFER const auto DN_UniqueName(defer_lambda_) = DN_DeferHelper() + [&]() +#endif // defined(__cplusplus) + +#define DN_DeferLoop(begin, end) \ + bool DN_UniqueName(once) = (begin, true); \ + DN_UniqueName(once); \ + end, DN_UniqueName(once) = false + + +// NOTE: Intrinsics // NOTE: DN_AtomicAdd/Exchange return the previous value store in the target #if defined(DN_COMPILER_MSVC) || defined(DN_COMPILER_CLANG_CL) #include diff --git a/Source/Base/dn_base.h b/Source/Base/dn_base.h index 5c00c98..e860272 100644 --- a/Source/Base/dn_base.h +++ b/Source/Base/dn_base.h @@ -3,7 +3,7 @@ #include "../dn_base_inc.h" -// NOTE: Macros //////////////////////////////////////////////////////////////////////////////////// +// NOTE: Macros #define DN_Stringify(x) #x #define DN_TokenCombine2(x, y) x ## y #define DN_TokenCombine(x, y) DN_TokenCombine2(x, y) @@ -29,7 +29,7 @@ #define DN_IsPowerOfTwo(value) ((((uintptr_t)(value)) & (((uintptr_t)(value)) - 1)) == 0) #define DN_IsPowerOfTwoAligned(value, pot) ((((uintptr_t)value) & (((uintptr_t)pot) - 1)) == 0) -// NOTE: String.h Dependencies ///////////////////////////////////////////////////////////////////// +// NOTE: String.h Dependencies #if !defined(DN_Memcpy) || !defined(DN_Memset) || !defined(DN_Memcmp) || !defined(DN_Memmove) #include #if !defined(DN_Memcpy) @@ -46,7 +46,7 @@ #endif #endif -// NOTE: Math.h Dependencies /////////////////////////////////////////////////////////////////////// +// NOTE: Math.h Dependencies #if !defined(DN_SqrtF32) || !defined(DN_SinF32) || !defined(DN_CosF32) || !defined(DN_TanF32) #include #if !defined(DN_SqrtF32) @@ -63,7 +63,7 @@ #endif #endif -// NOTE: Math ////////////////////////////////////////////////////////////////////////////////////// +// NOTE: Math #define DN_PiF32 3.14159265359f #define DN_DegreesToRadians(degrees) ((degrees) * (DN_PI / 180.0f)) @@ -82,19 +82,19 @@ b = temp; \ } while (0) -// NOTE: Size ////////////////////////////////////////////////////////////////////////////////////// +// NOTE: Size #define DN_SizeOfI(val) DN_CAST(ptrdiff_t)sizeof(val) #define DN_ArrayCountU(array) (sizeof(array)/(sizeof((array)[0]))) #define DN_ArrayCountI(array) (DN_ISize)DN_ArrayCountU(array) #define DN_CharCountU(string) (sizeof(string) - 1) -// NOTE: SI Byte /////////////////////////////////////////////////////////////////////////////////// +// NOTE: SI Byte #define DN_Bytes(val) ((DN_U64)val) #define DN_Kilobytes(val) ((DN_U64)1024 * DN_Bytes(val)) #define DN_Megabytes(val) ((DN_U64)1024 * DN_Kilobytes(val)) #define DN_Gigabytes(val) ((DN_U64)1024 * DN_Megabytes(val)) -// NOTE: Time ////////////////////////////////////////////////////////////////////////////////////// +// NOTE: Time #define DN_SecondsToMs(val) ((val) * 1000) #define DN_MinutesToSec(val) ((val) * 60ULL) #define DN_HoursToSec(val) (DN_MinutesToSec(val) * 60ULL) @@ -102,7 +102,7 @@ #define DN_WeeksToSec(val) (DN_DaysToSec(val) * 7ULL) #define DN_YearsToSec(val) (DN_WeeksToSec(val) * 52ULL) -// NOTE: Debug Break /////////////////////////////////////////////////////////////////////////////// +// NOTE: Debug Break #if !defined(DN_DebugBreak) #if defined(NDEBUG) #define DN_DebugBreak @@ -124,7 +124,7 @@ #endif #endif -// NOTE: Byte swaps //////////////////////////////////////////////////////////////////////////////// +// NOTE: Byte swaps #define DN_ByteSwap64(u64) (((((u64) >> 56) & 0xFF) << 0) | \ ((((u64) >> 48) & 0xFF) << 8) | \ ((((u64) >> 40) & 0xFF) << 16) | \ @@ -134,32 +134,7 @@ ((((u64) >> 8) & 0xFF) << 48) | \ ((((u64) >> 0) & 0xFF) << 56)) -// NOTE: Defer Macro /////////////////////////////////////////////////////////////////////////////// -#if defined(__cplusplus) -template -struct DN_Defer -{ - Procedure proc; - DN_Defer(Procedure p) : proc(p) {} - ~DN_Defer() { proc(); } -}; - -struct DN_DeferHelper -{ - template - DN_Defer operator+(Lambda lambda) { return DN_Defer(lambda); }; -}; - -#define DN_UniqueName(prefix) DN_TokenCombine(prefix, __LINE__) -#define DN_DEFER const auto DN_UniqueName(defer_lambda_) = DN_DeferHelper() + [&]() -#endif // defined(__cplusplus) - -#define DN_DeferLoop(begin, end) \ - bool DN_UniqueName(once) = (begin, true); \ - DN_UniqueName(once); \ - end, DN_UniqueName(once) = false - -// NOTE: Types ///////////////////////////////////////////////////////////////////////////////////// +// NOTE: Types typedef intptr_t DN_ISize; typedef uintptr_t DN_USize; @@ -196,24 +171,22 @@ struct DN_Str8 { char *data; // The bytes of the string DN_USize size; // The number of bytes in the string - - char const *begin() const { return data; } - char const *end() const { return data + size; } - char *begin() { return data; } - char *end() { return data + size; } }; struct DN_Str16 // A pointer and length style string that holds slices to UTF16 bytes. { wchar_t *data; // The UTF16 bytes of the string DN_USize size; // The number of characters in the string +}; - #if defined(__cplusplus) - wchar_t const *begin() const { return data; } // Const begin iterator for range-for loops - wchar_t const *end() const { return data + size; } // Const end iterator for range-for loops - wchar_t *begin() { return data; } // Begin iterator for range-for loops - wchar_t *end() { return data + size; } // End iterator for range-for loops - #endif +struct DN_U8x32 +{ + DN_U8 data[32]; +}; + +struct DN_U8x64 +{ + DN_U8 data[64]; }; template @@ -228,16 +201,42 @@ struct DN_Slice // A pointer and length container of data T const *end() const { return data + size; } }; -// NOTE: DN_CallSite /////////////////////////////////////////////////////////////////////////////// struct DN_CallSite { DN_Str8 file; DN_Str8 function; DN_U32 line; }; + #define DN_CALL_SITE DN_CallSite { DN_STR8(__FILE__), DN_STR8(__func__), __LINE__ } -// NOTE: Intrinsics //////////////////////////////////////////////////////////////////////////////// +// NOTE: Defer Macro +#if defined(__cplusplus) +template +struct DN_Defer +{ + Procedure proc; + DN_Defer(Procedure p) : proc(p) {} + ~DN_Defer() { proc(); } +}; + +struct DN_DeferHelper +{ + template + DN_Defer operator+(Lambda lambda) { return DN_Defer(lambda); }; +}; + +#define DN_UniqueName(prefix) DN_TokenCombine(prefix, __LINE__) +#define DN_DEFER const auto DN_UniqueName(defer_lambda_) = DN_DeferHelper() + [&]() +#endif // defined(__cplusplus) + +#define DN_DeferLoop(begin, end) \ + bool DN_UniqueName(once) = (begin, true); \ + DN_UniqueName(once); \ + end, DN_UniqueName(once) = false + + +// NOTE: Intrinsics // NOTE: DN_AtomicAdd/Exchange return the previous value store in the target #if defined(DN_COMPILER_MSVC) || defined(DN_COMPILER_CLANG_CL) #include diff --git a/Source/Extra/dn_math.cpp b/Source/Extra/dn_math.cpp index 3929065..caad8aa 100644 --- a/Source/Extra/dn_math.cpp +++ b/Source/Extra/dn_math.cpp @@ -832,9 +832,9 @@ DN_API DN_V3F32 DN_V3_Normalise(DN_V3F32 a) DN_API DN_V4F32 DN_V4F32_FromRGBU32(DN_U32 u32) { - DN_U8 r = (DN_U8)((u32 & DN_V4_R_MASK_U32) >> 24); - DN_U8 g = (DN_U8)((u32 & DN_V4_G_MASK_U32) >> 16); - DN_U8 b = (DN_U8)((u32 & DN_V4_B_MASK_U32) >> 8); + DN_U8 r = (DN_U8)(((u32 << 8) & DN_V4_R_MASK_U32) >> 24); + DN_U8 g = (DN_U8)(((u32 << 8) & DN_V4_G_MASK_U32) >> 16); + DN_U8 b = (DN_U8)(((u32 << 8) & DN_V4_B_MASK_U32) >> 8); DN_V4F32 result = DN_V4F32_FromRGBU8(r, g, b); return result; }