The items in this list are not in any particular order. This list will be updated occasionally as development progresses.
base_entity base member.[x] Write "(de)serialization" routines for savable resources and use those in the above loader. Scene Refactor notes: Refactor into node-based system using handles for various types. A node should contain 3 (maybe 4) things: a unique identifier, a handle id (which is a link into a scene-wide handle table, which itself points to an index into an array of resources), a potential parent handle id (which can be INVALID*ID if unused), and potentially a name. There would then be lists of resource types (think mesh, terrain, lights, skybox, etc) which would each have lookup tables of handle ids to indices into these arrays. Additionally there would be a set of a lookup table and transforms that would be used. Separating these would allow updates on these objects in cache-coherent loops as well as any sorting/dependency lookup that would need to be done. The above will require that meshes have transforms removed from them. The transform would then be also referenced by the *node* instead of the mesh. This would also facilitate batching of like meshes for rendering in the future. Transforms would also have the parent pointer removed, and instead also use handles. This would eliminate issues with invalid pointers when an array of a resource (i.e. transform) is expanded and realloced. This should be done in a phased approach, and thus perhaps a new "xform" should be created, and the "transform" structure could be deprecated. Note that the resource lookup for this would likely be global, not just within a scene.
We could then have a few different "graphs" in the scene: one for transforms, one for visibility (i.e a flat
array of currently-visible objects would likely suffice here), and others.
We might also think about, at this point, reworking the scene parser to better handle object heirarchy in a more
expressive language fasion (perhaps using some sort of scoping syntax like "{}" to surround objects).
[x] Remove specialized rendergraphs. Replaced by app config.
[x] Separate debug shapes out to new debug_rendergraph_node.
[x] Separate editor gizmo out to new editor_gizmo_rendergraph_node.
[x] Remove geometry system
[x] New Resource System
[x] Split asset loading logic from Resource System to new Asset System
[x] Asset packaging (kpackage)
[x] BUG: Fix release build hang on startup (creating logical device).
[x] BUG: Fix macOS window resizing.
[x] Fix release build hang on startup (creating logical device).
[x] Blitting - Separate colourbuffer to its own texture separate from the swapchain/blit to swapchain image just before present.
[x] Material system refactor
[x] Material redux:
[x] Static-sized, dynamically-allocated, type-safe array with iterator.
[x] Static-sized, stack-allocated, type-safe array with iterator.
[x] Dynamic-sized, type-safe darray with iterator.
[x] Vulkan backend:
[x] Handle refactoring
[ ] Audio system
[x] Debug shape
Back to readme