Driftwood2D / Driftwood

Driftwood 2D Tiling Game Engine and Development Suite
http://tileengine.org/
MIT License
24 stars 1 forks source link

FrameManager #76

Closed seisatsu closed 7 years ago

seisatsu commented 8 years ago

The way we assemble frames for the window is messy and done in segments in both AreaManager and WindowManager. Adding extra features like widgets requires putting code in several places. We should move all frame building into a FrameManager which understands everything about graphical frames and provides methods to cleanly insert graphics at any stage of the process on any layer of the frame. We will thank ourselves later once we're adding more complex widget handling and various graphical effects. WindowManager will only handle the placement of the viewport over the frame.

Integrating widgets into the drawing process is currently not working in the way it was intended, and fixing it within the current arrangement of the system would be daunting and raviolli.

seisatsu commented 7 years ago

FrameManager was created in f5feb5f by splitting off parts of WindowManager. Much of the drawing logic in AreaManager now also needs to be moved into FrameManager. The internal workspace and the methods for copying individual objects onto the workspace need to be coded next.

seisatsu commented 7 years ago

AreaManager's rendering operations have been merged into FrameManager in 34ca806e624e245d89a1d6f3835e3d7f9551f04c. Now AreaManager only calculates where to place things and then makes calls. At this point widget placement calculations should be moved into WidgetManager where they rightfully belong since the rendering code is in its own class.

seisatsu commented 7 years ago

Except for some touchups, FrameManager is basically complete as of c623434.