Commit Graph

5 Commits

Author SHA1 Message Date
7c2d6db2e7 Added VK_ASSERT macro to save some boilerplate when checking 'VkResult err;' sections 2025-06-24 15:35:45 +10:00
e4eb380ff1 Updated allocT implementation to cast the returned void* to a T*.
Moved builtin memory tag names to top of source file because it didn't like being forward declared. TODO: Revisit this later
Fixed compilation error where the source-local function get_eng_unit did not return the modified value.
Shuffled include order around to fix compilation issues.
2025-06-23 00:44:49 +10:00
87f66e291b Fixed compilation error in basalt_logger where it whined about or'ing together two enum values for the log level.
Fixed a compilation error where the log level mask was being shadowed by log level index in basalt_log and basalt_write.
Fixed a bug where logger_add_stream was checking the lower 48-bits of the FILE* rather than the upper 16 were zero.
Fixed a bug where logger_add_stream did not mark a stream as allocated in its flags.
Fixed a bug where logger_remove_stream did not check if a stream was allocated.
Addressed warnings of potential saftey issues when logging the prefixes as if they were format strings by having them be format-specified. I suspect this is marginally slower and realistically had no security risk in the first place but was fixed anyway.
2025-06-23 00:41:41 +10:00
bff17a13b6 Fixed bugs in basalt memory tag name generation. Centralised alignment values to basalt::mem::get_memory_tag_alignment_bytes. 2025-06-22 14:58:20 +10:00
8d7bfe0bc9 Buildsystem: Removed include/basalt_window.h. See prior commit #cac50b01
Library:
Added logging and memory modules.
The logging module provides a flexible interface for adding and removing logging streams (think stdout, stderr, a file) and supports ANSI colouring and including the date and time of each log call. Its header also provides several definitions for assertions, each corresponding to a specific log level and some other side effects such as debug_break(), returning, exiting or doing nothing.
The memory module wraps (_)aligned_alloc and free functions and includes memory tagging by class and location and the ability to fetch a formatted string containing this information. This can allow you to narrow down where memory leaks and double frees occur to particular sections within a module. Memory can be aligned to any, 32, 64 or 4096 byte boundaries using this module.
2025-06-22 03:02:42 +10:00