Re: Notes on cairo/win32



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



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]