Congratulations!
However, adding support for RGBA8 surfaces is going to be a bit more involved; if it were that easy as you propose, a second configuration with these settings would probably already exist.
There are a bunch of areas which you will have to adapt:
- The rendering surface itself will need to be different (currently it’s RGB565 + A8)
- In ContextTexture, you will want to change the internal format for RGB textures to RGB8
- In ContextTexture, you will need to adjust the functions CopySurfacePixels() to the new format.
- In Rasterizer::Fragment, you will need to adjust the code were you write to the surface
- You might need to adjust the color buffer pointer in Rasterizer::RasterInfo to point to 32-bit values
And probably a couple of places more… As I understand, you are not interested in using the JIT, which would complicate things further, as all internal intermediate values during texture modulation and blending are optimized for RGB565 representation.
I am probably not going to address these issues by myself, because my primary platform is Windows Mobile, and the current configuration is the best for this platform.
However, even for Symbian Series 60 devices (n-Gage, SX-1, 3650) a different surface (in this case: 4444) can be advantageous. Given I get volunteers, I could facilitate the addition of additional rendering surface formats.
Cheers,
HM
[ July 21, 2004: Message edited by: Hans-Martin Will ]