[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