On 6/6/2026 9:02 PM, Chris M. Thomasson wrote:
Fwiw, this might help you. I accidentally posted some my my really old
code in another thread. This is bare bones. This g_utils_ctors/ g_utils_dtors are only there for a sanity check:
__________
static unsigned long g_utils_ctors = 0;
static unsigned long g_utils_dtors = 0;
[...]
Fwiw, I use it in an experimental game engine I am creating. Here is a
console dump from a running instance. Notice the
g_utils_ctors/g_utils_dtors output at the end? Sanity check indeed. :^)
--- CT_GAMER ENGINE STARTUP ---
[HARDWARE] Renderer: NVIDIA GeForce MX330/PCIe/SSE2
[HARDWARE] Version: 4.5.0 NVIDIA 576.83
ubo_test::ubo_test() [with bones and vfield]
source_code::source_code()
source_code::source_code()
[PROGRAM] Linked successfully from shaders/core/ct_vertex_simple.glsl
and shaders/core/ct_frag.glsl
program::program()
source_code::~source_code()
source_code::~source_code()
source_code::source_code()
source_code::source_code()
[PROGRAM] Linked successfully from shaders/core/ct_vertex_simple.glsl
and shaders/core/ct_frag_pbr.glsl
program::program()
source_code::~source_code()
source_code::~source_code()
source_code::source_code()
[PROGRAM] Linked successfully from shaders/core/compute/ct_compute.glsl program::program() [compute]
source_code::~source_code()
source_code::source_code()
source_code::source_code()
[PROGRAM] Linked successfully from shaders/core/ct_vertex_animated.glsl
and shaders/core/ct_frag_pbr.glsl
program::program()
source_code::~source_code()