[Alephmodular-devel] Display Progress Update
Status: Pre-Alpha
Brought to you by:
brefin
From: Br'fin <br...@ma...> - 2003-10-01 06:28:18
|
Good news. I finally got around to decoding PicHandles into CPictureBitmaps. This means that the majority of Drawing Operations themselves for the game have been abstracted. The menus, the HUD, the terminals, the chapter screens... they all go through the display abstraction. This is cool. overhead_map_macintosh.cpp can be folded into overhead_map.cpp, it like some of the other code, now only has Quickdraw calls in the debugging routines. And really, those could be dealt with it short order if necessary. At this point the only drawing operations that aren't covered are: Showing before game quicktime movies. And Darkening the world window. I've done an #ifdef mac on the movie code. It's a potentially complex element, and it's fairly self contained. On the other hand, it's not exactly a major feature of the engine either. darken_world_window on the other hand, projects a 50% gray checkerboard pattern of black dots over the view area. I don't know of a great way to denote patterns. And am generally inclined to just stuff it into a drawing function class CDContext { public: darken_rectangle(const CRectangle& bounds); } And let the given context due something appropriate. For software it can adapt the existing MacOS Code. For SDL, we just grab something from A1. And for OpenGL we get the option of doing a pattern over it, or doing an actual 50% gray dimming agent. ( Bonus points if the openGL darkener also blurs the screen, just to be cute :) ) My next focus is apt to be around mousing. Mostly in the form of mouse/gui interactions. For instance, the logic around defaulting the mouse to hidden and only showing it in functions that actually do a CDIsplay::get_instance()->require_mouse() call. Dealing with location of mouse and mouse events/tracking will wait for another time. (Though thoughts on how events should be handled in AM is certainly welcome) -Jeremy Parsons |