Spent many hours coding today. I began by creating what amounts to a basic Windowing API. This in it’s self had a LOT to it.
But when it came time to implement it for the renderer my Scene Graph showed it’s flaws.
After many hours it is clear what I have to do.
There are going to be 2 separate entities:
1) 3D Scene Graph
2) 2D Display Graph
Both with their own completely separate base classes for the nodes. This change is an important idealogical change though which will have far reaching ramifications in the rest of the framework. Right now the Resource base classes assumes the resource is a 3D concerned entity.
This will be changed. Now resource will be a more general base class, and 2 classes will derive from it, a Resource2D class and a Resource3D class. Then any entity that wants to be added to one of the graphs must derive from one of these two base classes. This will , after quite a few hours of work, simplify a lot of what is going on in the ResourceManagerService.
Lastly, A new system for cameras is going to be implemented which will resolve an long standing organization issue as well as provide for a flexible camera system.
Sigh… Wish the semester wasn’t starting tomorrow. This is a very needed revamp to the Resource / Scene Graph system, but I had wanted to get something released before I got loaded down with work.
On a better note though, the WindowManagerService came out awesome! If I do say so my self, and I do 🙂 It combines several layers of complexity into simple high level functions. To create a window, all that is required is two function calls:
createWindow( window customization arguments );
displayWindow( windowId, true );
And thats it! I still have to build on top of this and add in buttons and such… But it’s a great start.
So it looks like it’s going to be a while till the next release, what with the semester starting and all… Oh well…