We really need an implementation that doesn't rely on gdi32.
Because of performance you mean? Because it seems like a lot of code duplication to me. Is it really necessary to differentiate between Software and GDI?
Not just because of performance. Gdiplus has some features that gdi32 does not, such as anti-aliasing, semi-transparent brushes, and gradient brushes.