RESOLVED FIXED 131468
Subpixel rendering: RenderLayer's size is set using enclosingRect() which can result in cruft.
https://bugs.webkit.org/show_bug.cgi?id=131468
Summary Subpixel rendering: RenderLayer's size is set using enclosingRect() which can...
zalan
Reported 2014-04-09 17:38:46 PDT
when background color is present on a non-simple-container.
Attachments
Patch (6.83 KB, patch)
2014-04-20 16:22 PDT, zalan
darin: review+
zalan
Comment 1 2014-04-20 16:22:44 PDT
Darin Adler
Comment 2 2014-04-20 20:15:37 PDT
Comment on attachment 229775 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=229775&action=review > Source/WebCore/rendering/RenderLayerBacking.cpp:715 > + * GraphicsLayer: device pixel positioned. Positioned is floored, size is ceiled. I think this is a typo. “Position is floored”, is what you want. Also, it should be either “ceil’d” or “ceilinged”. It seems to me that combining “position is floored” with “size is ceilinged” could result in incorrect behavior. If the position was 0.95 and the size was 0.1, then the floored position would be 0, the ceillinged size would be 1, and the right would be 1, but the right of the original would be 1.05.
zalan
Comment 3 2014-04-20 20:44:31 PDT
(In reply to comment #2) > (From update of attachment 229775 [details]) > View in context: https://bugs.webkit.org/attachment.cgi?id=229775&action=review > > > Source/WebCore/rendering/RenderLayerBacking.cpp:715 > > + * GraphicsLayer: device pixel positioned. Positioned is floored, size is ceiled. > > I think this is a typo. “Position is floored”, is what you want. Also, it should be either “ceil’d” or “ceilinged”. Thanks, indeed! (I was just following the 'ceiled' term introduced for LayoutUnit rounding functions by the original subpixel code, but I agree that I should use proper English terms in comments.) > It seems to me that combining “position is floored” with “size is ceilinged” could result in incorrect behavior. If the position was 0.95 and the size was 0.1, then the floored position would be 0, the ceillinged size would be 1, and the right would be 1, but the right of the original would be 1.05. I need to fix these comments! We call floor on minX, minY corner, while ceil on the maxX, maxY, so your example results (0, 0) (2, 2) on a 1x display while (0.5, 0.5) (1.5, 1.5) on a retina display.
zalan
Comment 4 2014-04-20 22:22:12 PDT
Note You need to log in before you can comment on or make changes to this bug.