Bug 84098 - Convert ShadowData and DropShadowFilterOperation to use IntPoint
Summary: Convert ShadowData and DropShadowFilterOperation to use IntPoint
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Layout and Rendering (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Levi Weintraub
URL:
Keywords:
Depends on:
Blocks: 60318
  Show dependency treegraph
 
Reported: 2012-04-16 16:47 PDT by Levi Weintraub
Modified: 2012-04-18 10:05 PDT (History)
6 users (show)

See Also:


Attachments
Patch (26.15 KB, patch)
2012-04-16 17:37 PDT, Levi Weintraub
no flags Details | Formatted Diff | Diff
Patch for landing (26.14 KB, patch)
2012-04-17 09:37 PDT, Levi Weintraub
no flags Details | Formatted Diff | Diff
Patch for landing (26.94 KB, patch)
2012-04-17 10:59 PDT, Levi Weintraub
no flags Details | Formatted Diff | Diff
Patch for landing (26.94 KB, patch)
2012-04-17 12:06 PDT, Levi Weintraub
no flags Details | Formatted Diff | Diff
Archive of layout-test-results from ec2-cq-02 (6.59 MB, application/zip)
2012-04-17 14:32 PDT, WebKit Review Bot
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Levi Weintraub 2012-04-16 16:47:47 PDT
Currently, ShadowData uses LayoutUnits for its x and y, and DropShadowFilterOperation uses ints. After some thought, I've changed my mind about having ShadowData's location as LayoutUnits for now, since we apply it at paint time to the integer RoundedRect, and we'd just end up rounding or truncating repeatedly. If we want to round this value, it should happen upon assignment, and that could have been done without sub-pixel layout. With that in mind, I'm choosing to not do that for now.

I was troubled by the de-coupled coordinates while looking through this code, so I decided that in the spirit of our original tx/ty effort to wrap these values up in an IntPoint.
Comment 1 Levi Weintraub 2012-04-16 17:37:20 PDT
Created attachment 137443 [details]
Patch
Comment 2 Levi Weintraub 2012-04-16 17:37:32 PDT
(In reply to comment #1)
> Created an attachment (id=137443) [details]
> Patch

The new blend function isn't explicitly necessary. Feedback is welcome if you don't think it makes senes.
Comment 3 Eric Seidel (no email) 2012-04-16 17:43:30 PDT
Comment on attachment 137443 [details]
Patch

so blur and spread can't be fractions?
Comment 4 Levi Weintraub 2012-04-16 17:46:06 PDT
(In reply to comment #3)
> (From update of attachment 137443 [details])
> so blur and spread can't be fractions?

Not currently. To be clear, I'm not arguing that this isn't a good change, just that it's orthogonal to what we're focusing on with sub-pixel layout. They could have been floating point before and applied as such. If someone wishes to make that change, I'll be happy to help when this is done :)
Comment 5 Eric Seidel (no email) 2012-04-16 20:41:30 PDT
Comment on attachment 137443 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=137443&action=review

OK.

> Source/WebCore/platform/graphics/filters/FilterOperation.h:380
> +    IntPoint m_location; // FIXME: x and y should location be in Lengths?

Not english?

> Source/WebCore/rendering/style/ShadowData.cpp:87
> +    int shadowLeft = 0;
> +    int shadowRight = 0;
> +    int shadowTop = 0;
> +    int shadowBottom = 0;

We really need some sort of Quad for these sets. This comes up often.
Comment 6 Levi Weintraub 2012-04-16 20:45:35 PDT
Comment on attachment 137443 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=137443&action=review

>> Source/WebCore/platform/graphics/filters/FilterOperation.h:380
>> +    IntPoint m_location; // FIXME: x and y should location be in Lengths?
> 
> Not english?

Hehe, sorry... ended up with a hybridized comment! Should be "location should be in Lengths?"

>> Source/WebCore/rendering/style/ShadowData.cpp:87
>> +    int shadowBottom = 0;
> 
> We really need some sort of Quad for these sets. This comes up often.

Agreed! This project has been nothing if not a good tour of code that needs some refactoring!
Comment 7 Levi Weintraub 2012-04-17 09:37:52 PDT
Created attachment 137547 [details]
Patch for landing
Comment 8 WebKit Review Bot 2012-04-17 10:46:45 PDT
Comment on attachment 137547 [details]
Patch for landing

Rejecting attachment 137547 [details] from commit-queue.

Failed to run "['/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch', '--status-host=queues.webkit.org', '-..." exit_code: 2

Last 500 characters of output:
ebCore::FilterOperation::OperationType)
make: *** [out/Debug/obj.target/webkit/Source/WebCore/platform/chromium/support/WebFilterOperation.o] Error 1
make: *** Waiting for unfinished jobs....

Failed to run "['Tools/Scripts/build-webkit', '--debug', '--chromium', '--update-chromium']" exit_code: 2
:Color, WebCore::FilterOperation::OperationType)
make: *** [out/Debug/obj.target/webkit/Source/WebCore/platform/chromium/support/WebFilterOperation.o] Error 1
make: *** Waiting for unfinished jobs....

Full output: http://queues.webkit.org/results/12417712
Comment 9 Levi Weintraub 2012-04-17 10:59:01 PDT
Created attachment 137561 [details]
Patch for landing
Comment 10 Levi Weintraub 2012-04-17 11:03:09 PDT
Comment on attachment 137561 [details]
Patch for landing

This is still going to fail with the newest Chromium changes. Circling around...
Comment 11 Levi Weintraub 2012-04-17 12:06:48 PDT
Created attachment 137575 [details]
Patch for landing
Comment 12 WebKit Review Bot 2012-04-17 14:32:50 PDT
Comment on attachment 137575 [details]
Patch for landing

Rejecting attachment 137575 [details] from commit-queue.

New failing tests:
svg/transforms/text-with-pattern-with-svg-transform.svg
Full output: http://queues.webkit.org/results/12424164
Comment 13 WebKit Review Bot 2012-04-17 14:32:56 PDT
Created attachment 137605 [details]
Archive of layout-test-results from ec2-cq-02

The attached test failures were seen while running run-webkit-tests on the commit-queue.
Bot: ec2-cq-02  Port: <class 'webkitpy.common.config.ports.ChromiumXVFBPort'>  Platform: Linux-2.6.35-28-virtual-x86_64-with-Ubuntu-10.10-maverick
Comment 14 Levi Weintraub 2012-04-18 10:05:14 PDT
Comment on attachment 137575 [details]
Patch for landing

Clearing flags on attachment: 137575

Committed r114520: <http://trac.webkit.org/changeset/114520>
Comment 15 Levi Weintraub 2012-04-18 10:05:23 PDT
All reviewed patches have been landed.  Closing bug.