SilverLining 1.96 is now available from our download page. This release makes it easier to integrate SilverLining with existing game engines, by abstracting away its asset management and memory management. Combined with our existing support for plugging in new renderers and a highly portable cross-platform code base, SilverLining is now more versatile than ever.
One thing you’ll notice is the new ResourceLoader class. Our default ResourceLoader assumes a POSIX filesystem and reads our textures, shaders, and data files directly from the resources directory you specify when calling Atmosphere::Initialize(). However, you may extend this class to load assets in any way you wish – from your own pack files, your own versions of our assets optimized for a given platform or media type, compressed files, etc. Just pass a pointer to your own implementation of ResourceLoader to Atmosphere::SetResourceLoader() before calling Atmosphere::Initialize(), and all disk access will be routed through the ResourceLoader class you provide. (Note – remember our renderer DLL’s are also in the resources directory, and you’ll need to deal with those seperately. You can always eliminate the DLL’s altogether by statically linking in the one you need, if you’re a licensed customer armed with the full source.)
We’ve also gone through and replaced all of SilverLining’s calls to new, delete, malloc, and free with the macros SL_NEW, SL_DELETE, SL_MALLOC, and SL_FREE. Licensed users with full source may redirect these operators to their own memory manager by redefining them in the header SilverLiningTypes.h, and recompiling our libraries and DLL’s.
And, remember you can also tie in your own renderer directly into SilverLining if our built-in support for DirectX 9, 10, 11, or OpenGL doesn’t meet your needs. In this mode of operation, you can essentially treat SilverLining as a numerical engine that calls back into your own methods for allocating vertex buffers, setting textures and shaders, and rendering triangle strips and points.
If there are more ways we can help tie SilverLining seamlessly into the engine you’re using, always feel free to let us know!