DIAcceptConfiguration2

Over the last two days, I have added and implemented DIAcceptConfiguration2 and the supporting framework. This is the system used to:

  • Centrally store options
  • Centrally apply options
  • Display the system Options menu
  • Perform dynamic screen mode changes without system restarts
  • And much more to come

It essentially allows any Component to define a category, a property, the value of the property, and a range of options for the property. A component may support zero, one, or more categories, zero, one or more properties, and zero, one or more options for the property.

At load time, the Core uses options.xml to set the values of all stored properties in all categories, and on shut down it interrogates for all available categories, properties, values and for user convenience, options. These are all stored in options.xml, again. (The options for values are stored so any user wanting to edit the file can see what is valid.) GUI::CEGUI performs a similar interogation, to produce the system Options menu.

So all in all, it's simple to implement and is automatically picked up and presented to the user. I'm quite happy. It's not entirely complete (it only allows for strings), but it works quite well, and strings cover most of the use cases.

Also, as was in the list, 3DVisuas::Ogre can now do dynamic screen mode changes. This includes full-screen/windowed switching. That was a lot of frustration, compounded by the fact that CEGUI doesn't automatically pick up on the resolution change, so presenting a distorted UI that looks exactly like the resolution hasn't changed. I think I had the code working uch earlier then I thought, and it wasn't until I walked away in disgust for the night that I thought that it could be CEGUI at fault. I've also had to work around an OGRE bug (I think), and there is still an intermittant bug there that I think is actually a DirectX bug.

Tomorrow will be 0.12.1, to get these new features out there and get some feedback. Although first I need to add configuration control for the video renderer (DirectX vs OpenGL), I haven't done that yet. Work on my current project, ESS-STS125, is frantic, with many long meetings making sure we have all our ducks lined up.

 Oh, I also set the Ogre window icon, and changed the window title to "Digital Spaces". I was in the area, after all.

Comments
Add New Search
Write comment
Name:
Email:
 
Website:
Title:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:D:):(:0:shock::confused:8):lol::x:P:oops::cry:
:evil::twisted::roll::wink::!::?::idea::arrow:
 
Please input the anti-spam code that you can read in the image.

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."