Open MakoEnergy opened 11 years ago
For the most part, only the graphics namespace, the Entresol, the Resource system, and the scene object wrappers in the Mezzanine namespace that I haven't fully figured out what to do with in the long term reference bits of Ogre. The Entresol needing Ogre is pretty much a hold over from the old system and is initialized there because of the convenience of knowing when it is initialized. Namely that it will be there when the other managers are made, keep in mind this mentality was before unit tests were around so independence in the systems was stressed less. The Resource refactor is a pretty big deal for a few reasons( I will probably be repeating a few things here, but just to have it all in one place ):
Our current resource system is a paper thin wrapper over Ogres resource system using a number of the same concepts. We need to handle our own I/O in ways that are sane for our engines own architecture. This means creating our own streams and systems for determining which steams are appropriate and grouping resources for easy loading and unloading.
From what little discussion has been made thus far, we want to use and extend std::iostreams, while providing another API (in the form of a derived class) that is a bit more friendly to newer programmers for common operations. Methods that generate/create streams should return our own derived type, while everything that accepts a stream should accept an std::iostream giving people the freedom to pass in other streams if absolutely necessary. Part of this means creating streams that will read from network sources, as well as streams that can read from compressed sources( see #32 ).