Some more house cleaning

This commit is contained in:
doylet 2025-09-11 22:02:36 +10:00
parent 8286a9d1d2
commit e8ce34f6f2
4 changed files with 99 additions and 101 deletions

View File

@ -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 #define DN_BASE_INC_CPP

View File

@ -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) #if !defined(DN_BASE_INC_H)
#define 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" // DN: Single header generator commented out this header => #include "../dn_base_inc.h"
// NOTE: Macros //////////////////////////////////////////////////////////////////////////////////// // NOTE: Macros
#define DN_Stringify(x) #x #define DN_Stringify(x) #x
#define DN_TokenCombine2(x, y) x ## y #define DN_TokenCombine2(x, y) x ## y
#define DN_TokenCombine(x, y) DN_TokenCombine2(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_IsPowerOfTwo(value) ((((uintptr_t)(value)) & (((uintptr_t)(value)) - 1)) == 0)
#define DN_IsPowerOfTwoAligned(value, pot) ((((uintptr_t)value) & (((uintptr_t)pot) - 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) #if !defined(DN_Memcpy) || !defined(DN_Memset) || !defined(DN_Memcmp) || !defined(DN_Memmove)
#include <string.h> #include <string.h>
#if !defined(DN_Memcpy) #if !defined(DN_Memcpy)
@ -264,7 +264,7 @@
#endif #endif
#endif #endif
// NOTE: Math.h Dependencies /////////////////////////////////////////////////////////////////////// // NOTE: Math.h Dependencies
#if !defined(DN_SqrtF32) || !defined(DN_SinF32) || !defined(DN_CosF32) || !defined(DN_TanF32) #if !defined(DN_SqrtF32) || !defined(DN_SinF32) || !defined(DN_CosF32) || !defined(DN_TanF32)
#include <math.h> #include <math.h>
#if !defined(DN_SqrtF32) #if !defined(DN_SqrtF32)
@ -281,7 +281,7 @@
#endif #endif
#endif #endif
// NOTE: Math ////////////////////////////////////////////////////////////////////////////////////// // NOTE: Math
#define DN_PiF32 3.14159265359f #define DN_PiF32 3.14159265359f
#define DN_DegreesToRadians(degrees) ((degrees) * (DN_PI / 180.0f)) #define DN_DegreesToRadians(degrees) ((degrees) * (DN_PI / 180.0f))
@ -300,19 +300,19 @@
b = temp; \ b = temp; \
} while (0) } while (0)
// NOTE: Size ////////////////////////////////////////////////////////////////////////////////////// // NOTE: Size
#define DN_SizeOfI(val) DN_CAST(ptrdiff_t)sizeof(val) #define DN_SizeOfI(val) DN_CAST(ptrdiff_t)sizeof(val)
#define DN_ArrayCountU(array) (sizeof(array)/(sizeof((array)[0]))) #define DN_ArrayCountU(array) (sizeof(array)/(sizeof((array)[0])))
#define DN_ArrayCountI(array) (DN_ISize)DN_ArrayCountU(array) #define DN_ArrayCountI(array) (DN_ISize)DN_ArrayCountU(array)
#define DN_CharCountU(string) (sizeof(string) - 1) #define DN_CharCountU(string) (sizeof(string) - 1)
// NOTE: SI Byte /////////////////////////////////////////////////////////////////////////////////// // NOTE: SI Byte
#define DN_Bytes(val) ((DN_U64)val) #define DN_Bytes(val) ((DN_U64)val)
#define DN_Kilobytes(val) ((DN_U64)1024 * DN_Bytes(val)) #define DN_Kilobytes(val) ((DN_U64)1024 * DN_Bytes(val))
#define DN_Megabytes(val) ((DN_U64)1024 * DN_Kilobytes(val)) #define DN_Megabytes(val) ((DN_U64)1024 * DN_Kilobytes(val))
#define DN_Gigabytes(val) ((DN_U64)1024 * DN_Megabytes(val)) #define DN_Gigabytes(val) ((DN_U64)1024 * DN_Megabytes(val))
// NOTE: Time ////////////////////////////////////////////////////////////////////////////////////// // NOTE: Time
#define DN_SecondsToMs(val) ((val) * 1000) #define DN_SecondsToMs(val) ((val) * 1000)
#define DN_MinutesToSec(val) ((val) * 60ULL) #define DN_MinutesToSec(val) ((val) * 60ULL)
#define DN_HoursToSec(val) (DN_MinutesToSec(val) * 60ULL) #define DN_HoursToSec(val) (DN_MinutesToSec(val) * 60ULL)
@ -320,7 +320,7 @@
#define DN_WeeksToSec(val) (DN_DaysToSec(val) * 7ULL) #define DN_WeeksToSec(val) (DN_DaysToSec(val) * 7ULL)
#define DN_YearsToSec(val) (DN_WeeksToSec(val) * 52ULL) #define DN_YearsToSec(val) (DN_WeeksToSec(val) * 52ULL)
// NOTE: Debug Break /////////////////////////////////////////////////////////////////////////////// // NOTE: Debug Break
#if !defined(DN_DebugBreak) #if !defined(DN_DebugBreak)
#if defined(NDEBUG) #if defined(NDEBUG)
#define DN_DebugBreak #define DN_DebugBreak
@ -342,7 +342,7 @@
#endif #endif
#endif #endif
// NOTE: Byte swaps //////////////////////////////////////////////////////////////////////////////// // NOTE: Byte swaps
#define DN_ByteSwap64(u64) (((((u64) >> 56) & 0xFF) << 0) | \ #define DN_ByteSwap64(u64) (((((u64) >> 56) & 0xFF) << 0) | \
((((u64) >> 48) & 0xFF) << 8) | \ ((((u64) >> 48) & 0xFF) << 8) | \
((((u64) >> 40) & 0xFF) << 16) | \ ((((u64) >> 40) & 0xFF) << 16) | \
@ -352,32 +352,7 @@
((((u64) >> 8) & 0xFF) << 48) | \ ((((u64) >> 8) & 0xFF) << 48) | \
((((u64) >> 0) & 0xFF) << 56)) ((((u64) >> 0) & 0xFF) << 56))
// NOTE: Defer Macro /////////////////////////////////////////////////////////////////////////////// // NOTE: Types
#if defined(__cplusplus)
template <typename Procedure>
struct DN_Defer
{
Procedure proc;
DN_Defer(Procedure p) : proc(p) {}
~DN_Defer() { proc(); }
};
struct DN_DeferHelper
{
template <typename Lambda>
DN_Defer<Lambda> operator+(Lambda lambda) { return DN_Defer<Lambda>(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 /////////////////////////////////////////////////////////////////////////////////////
typedef intptr_t DN_ISize; typedef intptr_t DN_ISize;
typedef uintptr_t DN_USize; typedef uintptr_t DN_USize;
@ -414,24 +389,22 @@ struct DN_Str8
{ {
char *data; // The bytes of the string char *data; // The bytes of the string
DN_USize size; // The number of bytes in 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. struct DN_Str16 // A pointer and length style string that holds slices to UTF16 bytes.
{ {
wchar_t *data; // The UTF16 bytes of the string wchar_t *data; // The UTF16 bytes of the string
DN_USize size; // The number of characters in the string DN_USize size; // The number of characters in the string
};
#if defined(__cplusplus) struct DN_U8x32
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 DN_U8 data[32];
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_U8x64
{
DN_U8 data[64];
}; };
template <typename T> template <typename T>
@ -446,16 +419,42 @@ struct DN_Slice // A pointer and length container of data
T const *end() const { return data + size; } T const *end() const { return data + size; }
}; };
// NOTE: DN_CallSite ///////////////////////////////////////////////////////////////////////////////
struct DN_CallSite struct DN_CallSite
{ {
DN_Str8 file; DN_Str8 file;
DN_Str8 function; DN_Str8 function;
DN_U32 line; DN_U32 line;
}; };
#define DN_CALL_SITE DN_CallSite { DN_STR8(__FILE__), DN_STR8(__func__), __LINE__ } #define DN_CALL_SITE DN_CallSite { DN_STR8(__FILE__), DN_STR8(__func__), __LINE__ }
// NOTE: Intrinsics //////////////////////////////////////////////////////////////////////////////// // NOTE: Defer Macro
#if defined(__cplusplus)
template <typename Procedure>
struct DN_Defer
{
Procedure proc;
DN_Defer(Procedure p) : proc(p) {}
~DN_Defer() { proc(); }
};
struct DN_DeferHelper
{
template <typename Lambda>
DN_Defer<Lambda> operator+(Lambda lambda) { return DN_Defer<Lambda>(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 // NOTE: DN_AtomicAdd/Exchange return the previous value store in the target
#if defined(DN_COMPILER_MSVC) || defined(DN_COMPILER_CLANG_CL) #if defined(DN_COMPILER_MSVC) || defined(DN_COMPILER_CLANG_CL)
#include <intrin.h> #include <intrin.h>

View File

@ -3,7 +3,7 @@
#include "../dn_base_inc.h" #include "../dn_base_inc.h"
// NOTE: Macros //////////////////////////////////////////////////////////////////////////////////// // NOTE: Macros
#define DN_Stringify(x) #x #define DN_Stringify(x) #x
#define DN_TokenCombine2(x, y) x ## y #define DN_TokenCombine2(x, y) x ## y
#define DN_TokenCombine(x, y) DN_TokenCombine2(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_IsPowerOfTwo(value) ((((uintptr_t)(value)) & (((uintptr_t)(value)) - 1)) == 0)
#define DN_IsPowerOfTwoAligned(value, pot) ((((uintptr_t)value) & (((uintptr_t)pot) - 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) #if !defined(DN_Memcpy) || !defined(DN_Memset) || !defined(DN_Memcmp) || !defined(DN_Memmove)
#include <string.h> #include <string.h>
#if !defined(DN_Memcpy) #if !defined(DN_Memcpy)
@ -46,7 +46,7 @@
#endif #endif
#endif #endif
// NOTE: Math.h Dependencies /////////////////////////////////////////////////////////////////////// // NOTE: Math.h Dependencies
#if !defined(DN_SqrtF32) || !defined(DN_SinF32) || !defined(DN_CosF32) || !defined(DN_TanF32) #if !defined(DN_SqrtF32) || !defined(DN_SinF32) || !defined(DN_CosF32) || !defined(DN_TanF32)
#include <math.h> #include <math.h>
#if !defined(DN_SqrtF32) #if !defined(DN_SqrtF32)
@ -63,7 +63,7 @@
#endif #endif
#endif #endif
// NOTE: Math ////////////////////////////////////////////////////////////////////////////////////// // NOTE: Math
#define DN_PiF32 3.14159265359f #define DN_PiF32 3.14159265359f
#define DN_DegreesToRadians(degrees) ((degrees) * (DN_PI / 180.0f)) #define DN_DegreesToRadians(degrees) ((degrees) * (DN_PI / 180.0f))
@ -82,19 +82,19 @@
b = temp; \ b = temp; \
} while (0) } while (0)
// NOTE: Size ////////////////////////////////////////////////////////////////////////////////////// // NOTE: Size
#define DN_SizeOfI(val) DN_CAST(ptrdiff_t)sizeof(val) #define DN_SizeOfI(val) DN_CAST(ptrdiff_t)sizeof(val)
#define DN_ArrayCountU(array) (sizeof(array)/(sizeof((array)[0]))) #define DN_ArrayCountU(array) (sizeof(array)/(sizeof((array)[0])))
#define DN_ArrayCountI(array) (DN_ISize)DN_ArrayCountU(array) #define DN_ArrayCountI(array) (DN_ISize)DN_ArrayCountU(array)
#define DN_CharCountU(string) (sizeof(string) - 1) #define DN_CharCountU(string) (sizeof(string) - 1)
// NOTE: SI Byte /////////////////////////////////////////////////////////////////////////////////// // NOTE: SI Byte
#define DN_Bytes(val) ((DN_U64)val) #define DN_Bytes(val) ((DN_U64)val)
#define DN_Kilobytes(val) ((DN_U64)1024 * DN_Bytes(val)) #define DN_Kilobytes(val) ((DN_U64)1024 * DN_Bytes(val))
#define DN_Megabytes(val) ((DN_U64)1024 * DN_Kilobytes(val)) #define DN_Megabytes(val) ((DN_U64)1024 * DN_Kilobytes(val))
#define DN_Gigabytes(val) ((DN_U64)1024 * DN_Megabytes(val)) #define DN_Gigabytes(val) ((DN_U64)1024 * DN_Megabytes(val))
// NOTE: Time ////////////////////////////////////////////////////////////////////////////////////// // NOTE: Time
#define DN_SecondsToMs(val) ((val) * 1000) #define DN_SecondsToMs(val) ((val) * 1000)
#define DN_MinutesToSec(val) ((val) * 60ULL) #define DN_MinutesToSec(val) ((val) * 60ULL)
#define DN_HoursToSec(val) (DN_MinutesToSec(val) * 60ULL) #define DN_HoursToSec(val) (DN_MinutesToSec(val) * 60ULL)
@ -102,7 +102,7 @@
#define DN_WeeksToSec(val) (DN_DaysToSec(val) * 7ULL) #define DN_WeeksToSec(val) (DN_DaysToSec(val) * 7ULL)
#define DN_YearsToSec(val) (DN_WeeksToSec(val) * 52ULL) #define DN_YearsToSec(val) (DN_WeeksToSec(val) * 52ULL)
// NOTE: Debug Break /////////////////////////////////////////////////////////////////////////////// // NOTE: Debug Break
#if !defined(DN_DebugBreak) #if !defined(DN_DebugBreak)
#if defined(NDEBUG) #if defined(NDEBUG)
#define DN_DebugBreak #define DN_DebugBreak
@ -124,7 +124,7 @@
#endif #endif
#endif #endif
// NOTE: Byte swaps //////////////////////////////////////////////////////////////////////////////// // NOTE: Byte swaps
#define DN_ByteSwap64(u64) (((((u64) >> 56) & 0xFF) << 0) | \ #define DN_ByteSwap64(u64) (((((u64) >> 56) & 0xFF) << 0) | \
((((u64) >> 48) & 0xFF) << 8) | \ ((((u64) >> 48) & 0xFF) << 8) | \
((((u64) >> 40) & 0xFF) << 16) | \ ((((u64) >> 40) & 0xFF) << 16) | \
@ -134,32 +134,7 @@
((((u64) >> 8) & 0xFF) << 48) | \ ((((u64) >> 8) & 0xFF) << 48) | \
((((u64) >> 0) & 0xFF) << 56)) ((((u64) >> 0) & 0xFF) << 56))
// NOTE: Defer Macro /////////////////////////////////////////////////////////////////////////////// // NOTE: Types
#if defined(__cplusplus)
template <typename Procedure>
struct DN_Defer
{
Procedure proc;
DN_Defer(Procedure p) : proc(p) {}
~DN_Defer() { proc(); }
};
struct DN_DeferHelper
{
template <typename Lambda>
DN_Defer<Lambda> operator+(Lambda lambda) { return DN_Defer<Lambda>(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 /////////////////////////////////////////////////////////////////////////////////////
typedef intptr_t DN_ISize; typedef intptr_t DN_ISize;
typedef uintptr_t DN_USize; typedef uintptr_t DN_USize;
@ -196,24 +171,22 @@ struct DN_Str8
{ {
char *data; // The bytes of the string char *data; // The bytes of the string
DN_USize size; // The number of bytes in 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. struct DN_Str16 // A pointer and length style string that holds slices to UTF16 bytes.
{ {
wchar_t *data; // The UTF16 bytes of the string wchar_t *data; // The UTF16 bytes of the string
DN_USize size; // The number of characters in the string DN_USize size; // The number of characters in the string
};
#if defined(__cplusplus) struct DN_U8x32
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 DN_U8 data[32];
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_U8x64
{
DN_U8 data[64];
}; };
template <typename T> template <typename T>
@ -228,16 +201,42 @@ struct DN_Slice // A pointer and length container of data
T const *end() const { return data + size; } T const *end() const { return data + size; }
}; };
// NOTE: DN_CallSite ///////////////////////////////////////////////////////////////////////////////
struct DN_CallSite struct DN_CallSite
{ {
DN_Str8 file; DN_Str8 file;
DN_Str8 function; DN_Str8 function;
DN_U32 line; DN_U32 line;
}; };
#define DN_CALL_SITE DN_CallSite { DN_STR8(__FILE__), DN_STR8(__func__), __LINE__ } #define DN_CALL_SITE DN_CallSite { DN_STR8(__FILE__), DN_STR8(__func__), __LINE__ }
// NOTE: Intrinsics //////////////////////////////////////////////////////////////////////////////// // NOTE: Defer Macro
#if defined(__cplusplus)
template <typename Procedure>
struct DN_Defer
{
Procedure proc;
DN_Defer(Procedure p) : proc(p) {}
~DN_Defer() { proc(); }
};
struct DN_DeferHelper
{
template <typename Lambda>
DN_Defer<Lambda> operator+(Lambda lambda) { return DN_Defer<Lambda>(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 // NOTE: DN_AtomicAdd/Exchange return the previous value store in the target
#if defined(DN_COMPILER_MSVC) || defined(DN_COMPILER_CLANG_CL) #if defined(DN_COMPILER_MSVC) || defined(DN_COMPILER_CLANG_CL)
#include <intrin.h> #include <intrin.h>

View File

@ -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_API DN_V4F32 DN_V4F32_FromRGBU32(DN_U32 u32)
{ {
DN_U8 r = (DN_U8)((u32 & DN_V4_R_MASK_U32) >> 24); DN_U8 r = (DN_U8)(((u32 << 8) & DN_V4_R_MASK_U32) >> 24);
DN_U8 g = (DN_U8)((u32 & DN_V4_G_MASK_U32) >> 16); DN_U8 g = (DN_U8)(((u32 << 8) & DN_V4_G_MASK_U32) >> 16);
DN_U8 b = (DN_U8)((u32 & DN_V4_B_MASK_U32) >> 8); DN_U8 b = (DN_U8)(((u32 << 8) & DN_V4_B_MASK_U32) >> 8);
DN_V4F32 result = DN_V4F32_FromRGBU8(r, g, b); DN_V4F32 result = DN_V4F32_FromRGBU8(r, g, b);
return result; return result;
} }