| Summary: | Subpixel rendering: roundToDevicePixel() snaps to wrong value. | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | WebKit | Reporter: | zalan <zalan> | ||||||
| Component: | Layout and Rendering | Assignee: | zalan <zalan> | ||||||
| Status: | RESOLVED FIXED | ||||||||
| Severity: | Normal | CC: | commit-queue, simon.fraser | ||||||
| Priority: | P2 | Keywords: | InRadar | ||||||
| Version: | 528+ (Nightly build) | ||||||||
| Hardware: | Unspecified | ||||||||
| OS: | Unspecified | ||||||||
| Attachments: |
|
||||||||
Created attachment 255471 [details]
Patch
Created attachment 255487 [details]
Patch
Comment on attachment 255487 [details] Patch Clearing flags on attachment: 255487 Committed r185916: <http://trac.webkit.org/changeset/185916> All reviewed patches have been landed. Closing bug. Comment on attachment 255471 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=255471&action=review > Source/WebCore/platform/LayoutUnit.h:875 > inline float roundToDevicePixel(LayoutUnit value, const float pixelSnappingFactor, bool needsDirectionalRounding = false) The const here adds nothing and should be removed. (In reply to comment #6) > Comment on attachment 255471 [details] > Patch > > View in context: > https://bugs.webkit.org/attachment.cgi?id=255471&action=review > > > Source/WebCore/platform/LayoutUnit.h:875 > > inline float roundToDevicePixel(LayoutUnit value, const float pixelSnappingFactor, bool needsDirectionalRounding = false) > > The const here adds nothing and should be removed. Indeed. Thanks. Addressing post-review comment: http://trac.webkit.org/changeset/186128 |
RenderLayer::paintForegroundForFragmentsWithPhase() gets a fragment with a foregroundRect of, say: (WebCore::LayoutRect) $23 = (m_location = { x = -96452px (-6172928), y = 0px (0) }, m_size = { width = 146px (9344), height = 310px (19840) }) where -96452 is the left edge of the layer (negative, because we're in vertical-rl content). snapRectToDevicePixels() is converting that to: (const WebCore::FloatRect) $24 = { m_location = (m_x = -96451.5, m_y = 0) m_size = (m_width = 146, m_height = 310) }