Ignore:
Timestamp:
Feb 10, 2012, 4:58:22 PM (13 years ago)
Author:
[email protected]
Message:

Add pixelSnappedIntRect method
https://bugs.webkit.org/show_bug.cgi?id=78054

Reviewed by Eric Seidel.

This patch introduces a pixelSnappedIntRect method that will snap a sub-pixel LayoutRect to
pixel boundaries. These pixel snapped forms are what is used to communicate with the graphics
engine (to paint at whole pixel boundaries) and the embedding app (so they don't need to
understand we're using sub-pixel units).

No new tests. No change in behavior.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::isOffScreen):
(WebCore::AccessibilityRenderObject::boundsForVisiblePositionRange):

  • dom/Range.cpp:

(WebCore::Range::boundingBox):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::paint):

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::InputFieldSpeechButtonElement::startSpeechInput):

  • page/Frame.cpp:

(WebCore::Frame::nodeImage):

  • page/FrameView.cpp:

(WebCore::FrameView::repaintContentRectangle):
(WebCore::FrameView::doDeferredRepaints):
(WebCore::FrameView::windowClipRectForLayer):

  • platform/graphics/GraphicsLayer.cpp:

(WebCore::GraphicsLayer::paintGraphicsLayerContents):

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::paint):

  • rendering/LayoutTypes.h:

(WebCore::pixelSnappedIntRect):
(WebCore):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintColumnContents):
(WebCore::RenderBlock::selectionGaps):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::paintBoxDecorations):
(WebCore::RenderBox::pushContentsClip):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::paintFillLayerExtended):
(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
(WebCore::RenderBoxModelObject::drawBoxSideFromPath):
(WebCore::RenderBoxModelObject::paintBoxShadow):

  • rendering/RenderDetailsMarker.cpp:

(WebCore::RenderDetailsMarker::paint):

  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::paintIntoRegion):

  • rendering/RenderFrameSet.cpp:

(WebCore::RenderFrameSet::paintColumnBorder):
(WebCore::RenderFrameSet::paintRowBorder):
(WebCore::RenderFrameSet::positionFramesWithFlattening):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::paintReplaced):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::positionOverflowControls):
(WebCore::RenderLayer::calculateRects):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
(WebCore::paintScrollbar):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::calculateCompositedBounds):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::drawLineForBoxSide):
(WebCore::RenderObject::addPDFURLRect):

  • rendering/RenderTextControlSingleLine.cpp:

(WebCore::RenderTextControlSingleLine::showPopup):
(WebCore::RenderTextControlSingleLine::paint):

  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::paint):

  • rendering/style/RenderStyle.cpp:

(WebCore::RenderStyle::getRoundedBorderFor):
(WebCore::RenderStyle::getRoundedInnerBorderFor):

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/rendering/RenderFrameSet.cpp

    r107296 r107461  
    8383void RenderFrameSet::paintColumnBorder(const PaintInfo& paintInfo, const LayoutRect& borderRect)
    8484{
    85     if (!paintInfo.rect.intersects(borderRect))
     85    if (!paintInfo.rect.intersects(pixelSnappedIntRect(borderRect)))
    8686        return;
    8787       
     
    103103void RenderFrameSet::paintRowBorder(const PaintInfo& paintInfo, const LayoutRect& borderRect)
    104104{
    105     if (!paintInfo.rect.intersects(borderRect))
     105    if (!paintInfo.rect.intersects(pixelSnappedIntRect(borderRect)))
    106106        return;
    107107
     
    572572
    573573        for (int c = 0; c < cols; c++) {
    574             IntRect oldFrameRect = child->frameRect();
     574            IntRect oldFrameRect = pixelSnappedIntRect(child->frameRect());
    575575
    576576            int width = m_cols.m_sizes[c];
     
    620620        for (int c = 0; c < cols; c++) {
    621621            // ensure the rows and columns are filled
    622             IntRect oldRect = child->frameRect();
     622            IntRect oldRect = pixelSnappedIntRect(child->frameRect());
    623623
    624624            child->setLocation(IntPoint(xPos, yPos));
Note: See TracChangeset for help on using the changeset viewer.