Blamite Game Engine - Keystone
00314.05.25.21.0023.blamite
A library that enables the use of Qt in Blamite's editing tools.
|
Keystone is the shared Qt GUI library used by the engine - mostly it's editing kit. It allows for Qt binaries to be stored in a separate bin
folder, a well as makes it easy for the various editing tools to share GUI elements.
Counterintuitively, Keystone itself depends on the other projects that use it. In order to allow Keystone to be loaded at runtime, it is loaded dynamically using LoadLibrary
by the other projects. Keystone itself will then reference the other projects in order to utilize functions and data types within Keystone's own code directly.
This makes everything relatively simple once a given project has hooked into Keystone, but with one major pitfall - when making changes to Keystone, it must be manually rebuilt before debugging. The other projects which hook into Keystone do not, and cannot depend on it in the Solution build order - as that would result in a circular dependency situation.
Yes, it's annoying. But yes, it's also necessary.
Keystone - and soon, the other projects within Blamite (excluding the engine itself) - utilize Semantic Versioning. Version information is stored in keystone/version/version.cpp
as a BlamVersion
class. This class is part of the Strings project and aids with version comparison, as well as making it easier to ensure that versions superficially meet Semantic Versioning standards.
Prior to any official release, all non-engine projects will use a major version of 0
.
Several data files are contained within Keystone, found within the _data
folder.
📁 content
📁 editor
📁 foundry
- Contains resources for Foundry's GUI.📁 guerilla
- Contains resources for Guerilla's GUI.📁 sapien
- Contains resources for Sapien's GUI.📁 shared
- Contains resources used across multiple application GUIs.📁 tool
- Contains resources used for Tools' GUI.📁 editor_themes
📁 builtin
- Contains built-in Editor themes.📁 user
- Placeholder folder for user-created Editor themes.