It’s been a few months without any updates from me. Fear not, I have still been working on Shibboleth. Most of my work has been updates to supporting libraries more than actual engine work though. To name a few, I added schema validation to my JSON class, restructured my job pool system, and started adding in the actual graphics pipeline to the engine. I’m having to do a bit of a refactor on my graphics multithreading.
A little past a month, but better late than never I guess. This month I converted all my projects over to premake, specifically premake5, which you can only get by building it yourself! I’m not expecting everyone to build premake and generate their own projects, so I pre-generate Visual Studio 2013 solutions and Linux makefiles for you! I also converted the projects for ResIL and ResILU from generating statically linked libraries to dynamically linked libraries, to comply with the LGPL license.
Hello all! Today I’m writing another technical post about how message broadcasting is done in Gaff/Shibboleth. The high level idea isn’t very complicated: Listeners are registered as either functions, member functions, or functors. When a listener registers themselves, they are returned a “receipt”. When this receipt is released, it will automatically unregister the listener. While this adds some extra memory usage from having to store all these receipts, the end user no longer needs to remember to unregister manually!
My monthly post is a little bit late. Not much to say though. Work has been pretty busy, so I haven’t been putting a whole lot of time into my projects as I’d like. I’ve mostly been reworking the way objects that give receipts work. My plan is to basically have the receipt have a pointer to an interface that it can call release on when it needs to. This way I’ll avoid the need to make receipts template objects that need to know about the allocator used by the object that created it.
New post in under a month! Yay! For serious though, I’ve found that I haven’t really posted anything on the internals of some of my projects. I really want to, I just don’t really know how to go about it. That and a lot of the things that I am doing, I’m learning at the same time. Take for instance, threading. I know what a thread id and I know some of the basic synchronization techniques such as mutexes, semaphores, and what-not.