Hi,
Thomas - well, the only requirements warp3d has with regard the BitMap is that it is of a format supported by the 3D chip and that it is in video ram.
Since most people want to render to a display, the latter requriement is not an issue - a display bitmap has to be in video ram. As I said, making the BitMap a friend of the display's BitMap is the way to enforce this but that forces it to have the same pixel format as the display. Since I don't even want to have a display in this instance I'm stuck :-)
Matt - There aren't any malloc() type functions that operate in video ram. Exec's own allocators allow you to select chip ram, but that's no use here :-)
The only way to allocate video ram (that I know of) is to use a BitMap. However, that BitMap data can be in fast ram - the rtg software handles putting it into video ram when it needs to be. Once again, to get your BitMap data in video ram, it seems that you have to make it a friend of one that already is and that means you need a display and your choice of pixel format is overriden.
The BMF_DISPLAYABLE flag used with AllocBitMap() is supposed to allocate the data in a form useable by the display hardware but I always get it in fast ram...
To reiterate, I just want to be able to create a BitMap, in video ram, in a (compatible) pixel format of my choosing, without it having to be a friend of one already there.
This goes beyond warp3d, I need it for the Surface class in my C++ portability layer. This class is supposed to encapsulate a displayable surface that you can render to, blit etc.
So far, no joy, unless I open a display in my desired pixel format and use that, but that somewhat defeats the objective.