Hello all,<br>I am now in the phase of the 16-bit game support project where I have to design and implement an API for game engines to request a certain bitdepth from the backend. Eugene  (Sev... my mentor), and I agree that it is a good idea to get input from as many affected developers as possible. I have made a post on my development blog (<a href="http://scummvmupthorn09.wordpress.com/2009/06/07/first-outlines-of-an-api/">http://scummvmupthorn09.wordpress.com/2009/06/07/first-outlines-of-an-api/</a>) regarding what has already been determined, and asking a few questions about how it should work, which I will be reposting here so that I can get feedback from as many of you as possible.<br>
<br>What has already been determined: <br>* The pixel format will be initially requested of the backend by means of an optional parameter to OSystem::InitGraphics.<br>* The default pixel format (in case of no parameter), will be 8-bit, paletted, to minimize changes required to existing engines.<br>
<br>What has yet to be determined:<br>* What happens when the engine requests an unsupported format?<br>    * Does InitGraphics fall back to 8 bit, or fail entirely?<br>    * How does the game engine learn that its request was denied?<br>
    * How does the game engine request an alternate format, if the game supports multiple formats: a second call to InitGraphics, <br>        or a second method meant specifically for specifying bitdepth?<br>* What format should the parameter take?<br>
    * Should it be a pair specifying bitdepth (8,16,24,32) and format (palette, rgb, grb, bgr, etc)?<br>    * Should it be a generic format specifier (8, 555, 1555, 565, 888, 8888, etc)?<br>    * Should it be a fully formed Graphics::PixelFormat object?<br>
    * Should it be some other format designed and implemented specifically for this task?<br>        * What should this format look like?<br>* What should happen if the backend and engine cannot agree on a directly supported format?<br>
    * Should the game engine simply error out?<br>    * Should pixel format conversions be performed?<br>        * Should these conversions be performed by the engine, so that a "convert once, use multiple" approach can be taken?<br>
        * Should these conversions be performed by the backend, so that it can take advantage of hardware conversion support, <br>          where available?<br>    * Should the engine and backend developers have free choice among these optioins, so that they can choose the case  that makes<br>
      the most sense for their engine or backend?<br>* Are there any concerns or questions that you have, which I failed to account for?<br><br>I hope you will respond promptly, so that I can continue with coding as soon as possible.<br>
<br>Thank you,<br>Jody Northup<br>