
Tom Brinkman wrote:
I've created lots more samples using adobe's GIL graphics library available at:
www.reportbase.com/gil-tests.tar.gz
Samples included text rendering, line drawing, and polygon filling. If you need a sample on something in particular, let me know and I'll try to add it. I've got many more that explore polygon filling but I'm having trouble with drawing speed.
I'm using a library called DirectFB, which is a relatively thin wrapper around 2D hardware graphics acceleration. Operations like rectangular copies and fills are hugely faster than letting the CPU do the work. x86 hardware also has the MMX and SSE SIMD instruction set extensions which can give significant speedups, e.g. processing the 3 8-bit channels of an RGB pixel (or potentially 2 or 4 pixels) in one instruction. So I have been wondering about how a graphics library that's not hardware-specific, like GIL or Anti-Grain or FreeType, can best be combined with hardware-specific features. For example, if I want to draw a rectangle with curved corners, then ideally I'd use the graphics hardware to draw the body of the rectangle and then do the details of the corners from the CPU, using MMX instructions to process whole pixels at a time. What sort of architecture would allow the maximum exploitation of available speedups, with the simplest possible interface? Any thoughts anyone? Phil.