This week I continued working on the resource subsystem in ringzero. The namespace implementations for the Textures
collections were rewritten to use PathDirectory
s (similar to the work done on Materials
last week) and accordingly all identifier references to these objects now use Resource URIs
The Materials subsystem saw some further optimizations this week. In current releases of Doomsday materials are transformed according to the current render context and as such, snapshots had to be taken each time a new derivation of a material was needed for render. In ringzero this mechanism has been redesigned, with the engine managing a set of MaterialVariant
s tuned for each render context. The introduction of variant materials allowed for the snapshots to be cached and each is now updated only once per render frame.
I also addressed a few of the outstanding regressions
, namely; mismanagement of sky textures, and two memory leaks in the console and bindings subsystems.
The next step for this work is the joining of the resource locator with the Materials, Textures and Fonts collections. Once completed, Doomsday will have a single unified interface for locating resources (be they from files on the local file system or "virtual" resources) addressable through URIs.
So my plan for the coming week is to continue the resource subsystem refactoring work.