[Webkit-unassigned] [Bug 45599] New: [Cairo] Fork the ContextShadow from the Qt port and use it for shadow code
bugzilla-daemon at webkit.org
bugzilla-daemon at webkit.org
Sat Sep 11 13:04:55 PDT 2010
https://bugs.webkit.org/show_bug.cgi?id=45599
Summary: [Cairo] Fork the ContextShadow from the Qt port and
use it for shadow code
Product: WebKit
Version: 528+ (Nightly build)
Platform: PC
OS/Version: Linux
Status: NEW
Severity: Normal
Priority: P3
Component: WebKit Gtk
AssignedTo: webkit-unassigned at lists.webkit.org
ReportedBy: mrobinson at webkit.org
CC: krit at webkit.org, ariya.hidayat at gmail.com,
alex at igalia.com
I believe we should fork Qt's ContextShadow implementation and use it for all Cairo shadowing code. Reasons for this:
1. It will better abstract shadowing logic. My initial implementation of this has already simplified the shadowing code in places like FontCairo.cpp. It will also make it simpler to fix shadow bugs and add full-shadow support in places where it is broken: (see https://bugs.webkit.org/show_bug.cgi?id=45597).
2. Reduce the number of full-surface copies. The SVG filter code requires one surface copy for the input and makes another copy for the output. That's probably one more than we need.
3. It can be alpha-only. webkit-box-shadow, text shadows and canvas shadows are alpha only. The blurring algorithm should be more efficient if it's operating on only one channel.
4. We can support shadows without depending on SVG filters. This is a minor point, but it's a nice thing to have for embedders who want a small library.
Why fork:
The Qt version of ContextShadow is written with fast transposition in mind (Cairo doesn't support this) and four channel images. There is very little extra logic outside of this (calculating the appropriate transformations for the temporary surface, for instance). I'm confidant unforking is possible though, especially if some other port wishes to use this abstraction.
I should have a first-round patch for this early next week.
--
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.
More information about the webkit-unassigned
mailing list