Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(407)

Side by Side Diff: Source/core/rendering/RenderLayer.h

Issue 20723003: Fix pixel snapping issues when layers become composited (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Adding another failing test expectation Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2003, 2009, 2012 Apple Inc. All rights reserved. 2 * Copyright (C) 2003, 2009, 2012 Apple Inc. All rights reserved.
3 * Copyright (C) 2013 Intel Corporation. All rights reserved. 3 * Copyright (C) 2013 Intel Corporation. All rights reserved.
4 * 4 *
5 * Portions are Copyright (C) 1998 Netscape Communications Corporation. 5 * Portions are Copyright (C) 1998 Netscape Communications Corporation.
6 * 6 *
7 * Other contributors: 7 * Other contributors:
8 * Robert O'Callahan <roc+@cs.cmu.edu> 8 * Robert O'Callahan <roc+@cs.cmu.edu>
9 * David Baron <dbaron@fas.harvard.edu> 9 * David Baron <dbaron@fas.harvard.edu>
10 * Christian Biesinger <cbiesinger@web.de> 10 * Christian Biesinger <cbiesinger@web.de>
(...skipping 287 matching lines...) Expand 10 before | Expand all | Expand 10 after
298 IntRect absoluteBoundingBox() const; 298 IntRect absoluteBoundingBox() const;
299 299
300 // Bounds used for layer overlap testing in RenderLayerCompositor. 300 // Bounds used for layer overlap testing in RenderLayerCompositor.
301 LayoutRect overlapBounds() const { return overlapBoundsIncludeChildren() ? c alculateLayerBounds(this) : localBoundingBox(); } 301 LayoutRect overlapBounds() const { return overlapBoundsIncludeChildren() ? c alculateLayerBounds(this) : localBoundingBox(); }
302 302
303 // If true, this layer's children are included in its bounds for overlap tes ting. 303 // If true, this layer's children are included in its bounds for overlap tes ting.
304 // We can't rely on the children's positions if this layer has a filter that could have moved the children's pixels around. 304 // We can't rely on the children's positions if this layer has a filter that could have moved the children's pixels around.
305 bool overlapBoundsIncludeChildren() const { return hasFilter() && renderer() ->style()->filter().hasFilterThatMovesPixels(); } 305 bool overlapBoundsIncludeChildren() const { return hasFilter() && renderer() ->style()->filter().hasFilterThatMovesPixels(); }
306 306
307 // Can pass offsetFromRoot if known. 307 // Can pass offsetFromRoot if known.
308 IntRect calculateLayerBounds(const RenderLayer* ancestorLayer, const LayoutP oint* offsetFromRoot = 0, CalculateLayerBoundsFlags = DefaultCalculateLayerBound sFlags) const; 308 LayoutRect calculateLayerBounds(const RenderLayer* ancestorLayer, const Layo utPoint* offsetFromRoot = 0, CalculateLayerBoundsFlags = DefaultCalculateLayerBo undsFlags) const;
309 309
310 // WARNING: This method returns the offset for the parent as this is what up dateLayerPositions expects. 310 // WARNING: This method returns the offset for the parent as this is what up dateLayerPositions expects.
311 LayoutPoint computeOffsetFromRoot(bool& hasLayerOffset) const; 311 LayoutPoint computeOffsetFromRoot(bool& hasLayerOffset) const;
312 312
313 LayoutUnit staticInlinePosition() const { return m_staticInlinePosition; } 313 LayoutUnit staticInlinePosition() const { return m_staticInlinePosition; }
314 LayoutUnit staticBlockPosition() const { return m_staticBlockPosition; } 314 LayoutUnit staticBlockPosition() const { return m_staticBlockPosition; }
315 315
316 void setStaticInlinePosition(LayoutUnit position) { m_staticInlinePosition = position; } 316 void setStaticInlinePosition(LayoutUnit position) { m_staticInlinePosition = position; }
317 void setStaticBlockPosition(LayoutUnit position) { m_staticBlockPosition = p osition; } 317 void setStaticBlockPosition(LayoutUnit position) { m_staticBlockPosition = p osition; }
318 318
(...skipping 173 matching lines...) Expand 10 before | Expand all | Expand 10 after
492 492
493 void paintLayerContentsAndReflection(GraphicsContext*, const LayerPaintingIn fo&, PaintLayerFlags); 493 void paintLayerContentsAndReflection(GraphicsContext*, const LayerPaintingIn fo&, PaintLayerFlags);
494 void paintLayerByApplyingTransform(GraphicsContext*, const LayerPaintingInfo &, PaintLayerFlags, const LayoutPoint& translationOffset = LayoutPoint()); 494 void paintLayerByApplyingTransform(GraphicsContext*, const LayerPaintingInfo &, PaintLayerFlags, const LayoutPoint& translationOffset = LayoutPoint());
495 void paintLayerContents(GraphicsContext*, const LayerPaintingInfo&, PaintLay erFlags); 495 void paintLayerContents(GraphicsContext*, const LayerPaintingInfo&, PaintLay erFlags);
496 void paintList(Vector<RenderLayerStackingNode*>*, GraphicsContext*, const La yerPaintingInfo&, PaintLayerFlags); 496 void paintList(Vector<RenderLayerStackingNode*>*, GraphicsContext*, const La yerPaintingInfo&, PaintLayerFlags);
497 void paintPaginatedChildLayer(RenderLayer* childLayer, GraphicsContext*, con st LayerPaintingInfo&, PaintLayerFlags); 497 void paintPaginatedChildLayer(RenderLayer* childLayer, GraphicsContext*, con st LayerPaintingInfo&, PaintLayerFlags);
498 void paintChildLayerIntoColumns(RenderLayer* childLayer, GraphicsContext*, c onst LayerPaintingInfo&, PaintLayerFlags, const Vector<RenderLayer*>& columnLaye rs, size_t columnIndex); 498 void paintChildLayerIntoColumns(RenderLayer* childLayer, GraphicsContext*, c onst LayerPaintingInfo&, PaintLayerFlags, const Vector<RenderLayer*>& columnLaye rs, size_t columnIndex);
499 499
500 void collectFragments(LayerFragments&, const RenderLayer* rootLayer, RenderR egion*, const LayoutRect& dirtyRect, 500 void collectFragments(LayerFragments&, const RenderLayer* rootLayer, RenderR egion*, const LayoutRect& dirtyRect,
501 ClipRectsType, OverlayScrollbarSizeRelevancy inOverlayScrollbarSizeRelev ancy = IgnoreOverlayScrollbarSize, 501 ClipRectsType, OverlayScrollbarSizeRelevancy inOverlayScrollbarSizeRelev ancy = IgnoreOverlayScrollbarSize,
502 ShouldRespectOverflowClip = RespectOverflowClip, const LayoutPoint* offs etFromRoot = 0, const LayoutRect* layerBoundingBox = 0); 502 ShouldRespectOverflowClip = RespectOverflowClip, const LayoutPoint* offs etFromRoot = 0,
503 const LayoutSize& subPixelAccumulation = LayoutSize(), const LayoutRect* layerBoundingBox = 0);
503 void updatePaintingInfoForFragments(LayerFragments&, const LayerPaintingInfo &, PaintLayerFlags, bool shouldPaintContent, const LayoutPoint* offsetFromRoot); 504 void updatePaintingInfoForFragments(LayerFragments&, const LayerPaintingInfo &, PaintLayerFlags, bool shouldPaintContent, const LayoutPoint* offsetFromRoot);
504 void paintBackgroundForFragments(const LayerFragments&, GraphicsContext*, Gr aphicsContext* transparencyLayerContext, 505 void paintBackgroundForFragments(const LayerFragments&, GraphicsContext*, Gr aphicsContext* transparencyLayerContext,
505 const LayoutRect& transparencyPaintDirtyRect, bool haveTransparency, con st LayerPaintingInfo&, PaintBehavior, RenderObject* paintingRootForRenderer); 506 const LayoutRect& transparencyPaintDirtyRect, bool haveTransparency, con st LayerPaintingInfo&, PaintBehavior, RenderObject* paintingRootForRenderer);
506 void paintForegroundForFragments(const LayerFragments&, GraphicsContext*, Gr aphicsContext* transparencyLayerContext, 507 void paintForegroundForFragments(const LayerFragments&, GraphicsContext*, Gr aphicsContext* transparencyLayerContext,
507 const LayoutRect& transparencyPaintDirtyRect, bool haveTransparency, con st LayerPaintingInfo&, PaintBehavior, RenderObject* paintingRootForRenderer, 508 const LayoutRect& transparencyPaintDirtyRect, bool haveTransparency, con st LayerPaintingInfo&, PaintBehavior, RenderObject* paintingRootForRenderer,
508 bool selectionOnly, bool forceBlackText); 509 bool selectionOnly, bool forceBlackText);
509 void paintForegroundForFragmentsWithPhase(PaintPhase, const LayerFragments&, GraphicsContext*, const LayerPaintingInfo&, PaintBehavior, RenderObject* painti ngRootForRenderer); 510 void paintForegroundForFragmentsWithPhase(PaintPhase, const LayerFragments&, GraphicsContext*, const LayerPaintingInfo&, PaintBehavior, RenderObject* painti ngRootForRenderer);
510 void paintOutlineForFragments(const LayerFragments&, GraphicsContext*, const LayerPaintingInfo&, PaintBehavior, RenderObject* paintingRootForRenderer); 511 void paintOutlineForFragments(const LayerFragments&, GraphicsContext*, const LayerPaintingInfo&, PaintBehavior, RenderObject* paintingRootForRenderer);
511 void paintOverflowControlsForFragments(const LayerFragments&, GraphicsContex t*, const LayerPaintingInfo&); 512 void paintOverflowControlsForFragments(const LayerFragments&, GraphicsContex t*, const LayerPaintingInfo&);
512 void paintMaskForFragments(const LayerFragments&, GraphicsContext*, const La yerPaintingInfo&, RenderObject* paintingRootForRenderer); 513 void paintMaskForFragments(const LayerFragments&, GraphicsContext*, const La yerPaintingInfo&, RenderObject* paintingRootForRenderer);
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
731 732
732 } // namespace WebCore 733 } // namespace WebCore
733 734
734 #ifndef NDEBUG 735 #ifndef NDEBUG
735 // Outside the WebCore namespace for ease of invocation from gdb. 736 // Outside the WebCore namespace for ease of invocation from gdb.
736 void showLayerTree(const WebCore::RenderLayer*); 737 void showLayerTree(const WebCore::RenderLayer*);
737 void showLayerTree(const WebCore::RenderObject*); 738 void showLayerTree(const WebCore::RenderObject*);
738 #endif 739 #endif
739 740
740 #endif // RenderLayer_h 741 #endif // RenderLayer_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698