Changeset 109060 in webkit
- Timestamp:
- Feb 27, 2012 6:36:59 PM (12 years ago)
- Location:
- trunk
- Files:
-
- 3 added
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r109058 r109060 1 2012-02-27 Shawn Singh <shawnsingh@chromium.org> 2 3 RenderLayer ClipRect not accounting for transforms 4 https://bugs.webkit.org/show_bug.cgi?id=76486 5 6 Reviewed by Simon Fraser. 7 8 * compositing/layer-creation/overlap-transformed-and-clipped-expected.png: Added. 9 * compositing/layer-creation/overlap-transformed-and-clipped-expected.txt: Added. 10 * compositing/layer-creation/overlap-transformed-and-clipped.html: Added. 11 1 12 2012-02-27 Adam Klein <adamk@chromium.org> 2 13 -
trunk/Source/WebCore/ChangeLog
r109058 r109060 1 2012-02-27 Shawn Singh <shawnsingh@chromium.org> 2 3 RenderLayer ClipRect not accounting for transforms 4 https://bugs.webkit.org/show_bug.cgi?id=76486 5 6 Reviewed by Simon Fraser. 7 8 Test: compositing/layer-creation/overlap-transformed-and-clipped.html 9 10 This patch changes calculateClipRects() so that the clipRect 11 offset is allowed to be converted across layers with 12 transforms. This is necessary because the RenderLayerCompositor 13 needs clipRects in document space, rather than with respect to 14 some local clipping layer. 15 16 * rendering/RenderLayer.cpp: 17 (WebCore::RenderLayer::calculateClipRects): 18 * rendering/RenderObject.cpp: 19 (WebCore::RenderObject::localToContainerPoint): 20 (WebCore): 21 * rendering/RenderObject.h: 22 (RenderObject): 23 1 24 2012-02-27 Adam Klein <adamk@chromium.org> 2 25 -
trunk/Source/WebCore/rendering/RenderLayer.cpp
r108659 r109060 3654 3654 if (renderer()->hasOverflowClip() || renderer()->hasClip()) { 3655 3655 // This layer establishes a clip of some kind. 3656 3657 // This offset cannot use convertToLayerCoords, because sometimes our rootLayer may be across 3658 // some transformed layer boundary, for example, in the RenderLayerCompositor overlapMap, where 3659 // clipRects are needed in view space. 3656 3660 LayoutPoint offset; 3657 convertToLayerCoords(rootLayer, offset);3661 offset = roundedIntPoint(renderer()->localToContainerPoint(FloatPoint(), rootLayer->renderer())); 3658 3662 RenderView* view = renderer()->view(); 3659 3663 ASSERT(view); -
trunk/Source/WebCore/rendering/RenderObject.cpp
r109011 r109060 2095 2095 } 2096 2096 2097 FloatPoint RenderObject::localToContainerPoint(const FloatPoint& localPoint, RenderBoxModelObject* repaintContainer, bool fixed, bool* wasFixed) const 2098 { 2099 TransformState transformState(TransformState::ApplyTransformDirection, localPoint); 2100 mapLocalToContainer(repaintContainer, fixed, true, transformState, wasFixed); 2101 transformState.flatten(); 2102 2103 return transformState.lastPlanarPoint(); 2104 } 2105 2097 2106 LayoutSize RenderObject::offsetFromContainer(RenderObject* o, const LayoutPoint& point) const 2098 2107 { -
trunk/Source/WebCore/rendering/RenderObject.h
r108719 r109060 645 645 return localToContainerQuad(quad, 0, fixed, wasFixed); 646 646 } 647 647 648 // Convert a local quad into the coordinate system of container, taking transforms into account. 648 649 FloatQuad localToContainerQuad(const FloatQuad&, RenderBoxModelObject* repaintContainer, bool fixed = false, bool* wasFixed = 0) const; 650 FloatPoint localToContainerPoint(const FloatPoint&, RenderBoxModelObject* repaintContainer, bool fixed = false, bool* wasFixed = 0) const; 649 651 650 652 // Return the offset from the container() renderer (excluding transforms). In multi-column layout,
Note: See TracChangeset
for help on using the changeset viewer.