> > One thing that should happen eventually > > is to check the size of the attached data buffer for each message. > > All > > this should prevent the vast majority of problems. > > How about speed? I'm not so sure that the speed hit would be as big as you think, but that's something that I can play around with down the road. I have no intention of doing anything with it at all in short term. If there's any significant performance hit in adding such checks, we can scrap it and you won't hear another peep out of me on it. :) > IMHO, the best solution is to use a 1bit surface, and draw with a > single color (changing the color > would not be possible) and disable AA for text rendering. Perhaps the 32-bit thing is too expensive. The only reason that I was considering it was because of AA. I'm still not convinced that going without AA is such a great idea. Attached to this e-mail (assuming that it isn't filtered out) is a comparison I did. At small point sizes, AA makes all the difference in the shape of some characters. I tend to be very picky about details on a lot of things, fonts being one of them, so I ask you is this something that you gentlemen are willing to live with? If you guys are ok with this, I'll live with it. :) --DW -- Attached file included as plaintext by Ecartis -- Content-Transfer-Encoding: base64 Content-Disposition: Attachment Content-Type: image/png; name=fontcompare.png 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 -- Binary/unsupported file stripped by Ecartis -- -- Type: application/x-be_attribute -- File: BeOS Attributes