diff options
Diffstat (limited to 'src/util/debug.h')
| -rw-r--r-- | src/util/debug.h | 85 |
1 files changed, 85 insertions, 0 deletions
diff --git a/src/util/debug.h b/src/util/debug.h new file mode 100644 index 0000000..c247007 --- /dev/null +++ b/src/util/debug.h @@ -0,0 +1,85 @@ +// This file is part of the 64k demo project. +// It provides conditional debug logging macros for different subsystems. +// These are stripped from final builds but preserved for development/debugging. + +#pragma once + +#include <cstdio> + +// All-or-nothing convenience macro (for pre-commit checks) +// This must be defined BEFORE the individual category checks +#if defined(DEBUG_LOG_ALL) + #ifndef DEBUG_LOG_AUDIO + #define DEBUG_LOG_AUDIO + #endif + #ifndef DEBUG_LOG_RING_BUFFER + #define DEBUG_LOG_RING_BUFFER + #endif + #ifndef DEBUG_LOG_TRACKER + #define DEBUG_LOG_TRACKER + #endif + #ifndef DEBUG_LOG_SYNTH + #define DEBUG_LOG_SYNTH + #endif + #ifndef DEBUG_LOG_3D + #define DEBUG_LOG_3D + #endif + #ifndef DEBUG_LOG_ASSETS + #define DEBUG_LOG_ASSETS + #endif + #ifndef DEBUG_LOG_GPU + #define DEBUG_LOG_GPU + #endif +#endif /* defined(DEBUG_LOG_ALL) */ + +// Individual debug log category macros +// Define these via CMake or here to enable specific logging + +// Audio subsystem debug logs +#if defined(DEBUG_LOG_AUDIO) + #define DEBUG_AUDIO(...) fprintf(stderr, __VA_ARGS__) +#else + #define DEBUG_AUDIO(...) ((void)0) +#endif + +// Ring buffer debug logs +#if defined(DEBUG_LOG_RING_BUFFER) + #define DEBUG_RING_BUFFER(...) fprintf(stderr, __VA_ARGS__) +#else + #define DEBUG_RING_BUFFER(...) ((void)0) +#endif + +// Tracker debug logs +#if defined(DEBUG_LOG_TRACKER) + #define DEBUG_TRACKER(...) fprintf(stderr, __VA_ARGS__) +#else + #define DEBUG_TRACKER(...) ((void)0) +#endif + +// Synth debug logs +#if defined(DEBUG_LOG_SYNTH) + #define DEBUG_SYNTH(...) fprintf(stderr, __VA_ARGS__) +#else + #define DEBUG_SYNTH(...) ((void)0) +#endif + +// 3D rendering debug logs +#if defined(DEBUG_LOG_3D) + #define DEBUG_3D(...) fprintf(stderr, __VA_ARGS__) +#else + #define DEBUG_3D(...) ((void)0) +#endif + +// Asset system debug logs +#if defined(DEBUG_LOG_ASSETS) + #define DEBUG_ASSETS(...) fprintf(stderr, __VA_ARGS__) +#else + #define DEBUG_ASSETS(...) ((void)0) +#endif + +// GPU/WebGPU debug logs +#if defined(DEBUG_LOG_GPU) + #define DEBUG_GPU(...) fprintf(stderr, __VA_ARGS__) +#else + #define DEBUG_GPU(...) ((void)0) +#endif |
