I thought I had it sussed in 5.7, by using a combination of alpha mapping, ghosting and transparency (both on flag 5), I eliminated all clipping. Now, though, since 5.8, the clipping's come back again, and the only solution seems to be either putting all planes in order of zdepth (which buggers up my movable layering system), or disabling object zwrite (which REALLY buggers up my movable layering system). There was I, thinking that the ghosted plane clipping saga was history! Please let me know if you come across any solutions.
The Bitmap font extraction code uses the point command (I'm sure I could do it faster with memblocks if I knew how, but it's fast enough as it is anyway) to distinguish black (ie the background) from any other colour (ie the letters). It sweeps across and down the image to detect the edges of the letters using the following system:
Notice that in my characterset, I use the two tallest characters in most fonts at the beginning of each row? (Actually, that's now changed to three - I included a 'y', which tends to be the lowest character). That determines the top and bottom of each row.
The first thing the code does is start the pointer at the top left, and sweeps lines across (across far enough to cover the first two or three characters), going down a line each time, until it hits non-black. That determines the top of the top row. Then it keeps sweeping until it finds a row of all-black. That determines the bottom of the top row. Then it continues down for all the other rows.
Then, for each row, it sweeps columns from the left between the top and bottom of the row, until it hits non-black. That's the beginning of the first letter in that row. Then on until it hits a column of all-black - that's the end of the first letter in that row .... and so on for all the letters in each row. A 1024x768 image takes about 20 seconds to extract all of the characters. It then grabs the images and saves them into a folder along with their width and height data ready for use in the display program.
The things to watch for, using this method, are any characters which may be separated left to right - like ", or a in some fonts, which may come up as two separate characters. Apart from that, it copes with pretty much anything, including blurs, shadows, etc.
Hope that gives you an idea of the process.