On Wed, 2005-01-12 at 10:16 -0500, John Ehresman wrote: > Owen Taylor wrote: > > ... > > If I had to take a guess at the right direction, it's to go on top of > > GDI+ for now (with heavy image fallbacks), and look at writing a > > Direct3D backend later. > > How much of an advantage is GDI+ over GDI? I agree that the need for > printing favors GDI+/GDI over the other two. My interest in cairo is > mainly driven by the future use of it by gtk and its printing support. > I don't anticipate that I'll be using many of the advanced graphics > capabilities. From rom what I've figured out so far, the main two things that GDI+ gives over GDI which are useful to us are anti-aliased paths and alpha-composited primitives. The availability of these makes screen/printer independence a little easier: With GDI+, if I want to draw a circle (with the default "Over" operator), I can just use the GDI+ path API, whether the output device is the screen or a printer. With GDI, I have to figure out whether my output device is a screen or a printer, and if it's the screen fall back to images to get antialiasing while for the printer, where antialiasing doesn't matter, I need to use a path, to get resolution independence. An interesting question that I don't know the answer to yet is whether GDI+ is at all hardware accelerated currently (or will be in the future.) If GDI+ is just a layer on top of GDI, then we may be losing more efficiency and convenience fighting a slightly different abstraction model then we gain, since we already have code for software rendering. I don't think switching between GDI/GDI+ should be that hard after the fact... the hard part of the Win32 backend strikes me as being the fallback structure and font handling. (Font handling is hard purely because the Cairo interfaces need changing.) Regards, Owen
Attachment:
signature.asc
Description: This is a digitally signed message part