Hi Maciej,
On Jan 31, 2006, at 12:46 AM, Maciej Stachowiak wrote:
On Jan 19, 2006, at 6:54 PM, Kevin Ollivier wrote:
Hi all,
On Jan 16, 2006, at 3:52 PM, David Hyatt wrote:
[snip]
I would guess that Cairo requires gdiplus.dll.
I think GDI+ is what we should go with initially. Cairo might be
interesting as a way to do SVG eventually, but for now I think we
should not define SVG_SUPPORT and basically not worry about SVG.
The initial goal should be the bring-up of the HTML rendering
portion (SVG can come much later), and I don't think Cairo really
provides much of any benefit for that (although I'd be happy to
be proven wrong).
Also, the wxWidgets library's drawing classes (wx*DC) are another
solution to this that is cross-platform. (wxArt2D is a add-on
library that has SVG support too.) The "con" of course is the
added dependency, but the pluses are that:
Does wxWidgets drawing support transparency and compositing
efficiently?
As for transparency, yes, we have support for alpha channels; by
compositing, do you mean support for blending together two separate
pixels? (i.e. the get/setCompositeOperation code in QPainter) If
that's the case, then this function, SetLogicalOperation, may have
what you need:
http://www.wxwindows.org/manuals/2.6.2/
wx_wxdc.html#wxdcsetlogicalfunction
I'm not sure we have the three last operations in QPainter's
compositeOperators list, but they could probably be added. I'll check
into that.
As for efficiency, at the moment I can only say that I don't see any
noticeable performance issues, but I don't have hard data on hand for
that. I'll ask about this on the lists as well.
1) cross-platform, so more bang for the buck
2) share the support burden (wxWidgets developers will improve/
test the graphics APIs as well, meaning less changes you need to
make)
3) pre-packaged workarounds for a lot of Win bugs, and GTK too. ;-)
Apps like Mozilla and OpenOffice.org took the approach of writing
their own "cross-platform" toolkit APIs, with an implementation
for each platform, and sooner or later support for each platform
got out of sync, usually with the Mac being on the receiving end
of the neglect. As someone who tried very, very hard to get
Mozilla's embedding engine to run properly on Mac, I can tell you
that the Mac guts were very out of date and very tied into the
Mozilla application. I looked at OOo long enough to know making it
work on Mac would be such a challenge that it needed far more than
a couple of people with a lot of dedication. It's not even known
when NeoOffice will run on the Intel Macs...
Just my $0.02 but I've found that unless support for other
platforms is absolutely critical (and thus you can be assured that
ample resources will be devoted to it), the best solution is the
one that reduces maintenance, and maximizes developer support, as
much as possible. A wxWidgets port has already been started,
actually (see http://developer.berlios.de/svn/?group_id=3786), and
I'd definitely be happy to help out.
I don't think we want to move away from CG on the Mac.
Actually, we have a CG-based implementation of wxDC on Mac. It's not
on by default in 2.6, basically because we haven't determined how to
properly handle the issue that CG doesn't support XOR operations the
way the wx API expects it to. (Stefan Csomor would have more details
as he wrote the CG implementation.) There's been talk about a new
API, but it would have to use XOR under the hood on some platforms.
I'm really hoping that after 2.6.3 is out (the 11th) we can find a
solution to this so that we can make CG default. Anyways, outside of
that issue, you can turn on the CG DC in include/wx/mac/carbon/
chkconf.h (the define is wxMAC_USE_CORE_GRAPHICS).
I was actually only thinking of using the wx port on Mac for wx
embedding (I already know of three apps I want to do this with!), but
if you guys could use it for the native app too, that would be
great. :-)
As far as drawing code, I would want to see some evidence that it
has the performance and graphical capabilities to support a modern
browser. Does it do compositing and double buffering for instance?
We do have wxBufferedDC for double-buffered drawing, and I'll try to
get some more hard data on the performance issue.
Thanks,
Kevin
Regards,
Maciej
_______________________________________________
webkit-dev mailing list
[email protected]
http://www.opendarwin.org/mailman/listinfo/webkit-dev