Sunday, January 19, 2014

FMod - Cache ALL the Graphics

I should probably go back through and add a Fudge tag to all the FMod posts that are primarily about it.

The Fudge extension API, though not a critical feature by any stretch of the imagination, is a pretty fun project to work on. I added a dynamically generated menu system that will create "about" windows for each extension based on the FudgeExtensionMetadata object requested in loading and also provide the user with the option of unloading the extension. That menu will later contain extension-generated commands as well.

In an effort to decrease load times (long due to translation of EGA graphics to GDI+ bitmaps), I reworked the tile storage system to always use a cache. Tiles not used in any levels will never be translated because, well, they don't need to be rendered. However, all tiles will be translated when the user switches to the tile palette for the first time, which does now have a little bit of a wait. Still, doing this cleaned up the code and definitely made the initial loading less painful.

I'm now fairly certain the last of the GUI bugs have been squished. Changing any setting will ensure the menu check boxes and status bar reflect the new state and there will never be a way to access a command that requires a state that is not.

No comments:

Post a Comment