OLD | NEW |
---|---|
1 /* | 1 /* |
2 * Copyright (c) 2009, Google Inc. All rights reserved. | 2 * Copyright (c) 2009, Google Inc. All rights reserved. |
3 * | 3 * |
4 * Redistribution and use in source and binary forms, with or without | 4 * Redistribution and use in source and binary forms, with or without |
5 * modification, are permitted provided that the following conditions are | 5 * modification, are permitted provided that the following conditions are |
6 * met: | 6 * met: |
7 * | 7 * |
8 * * Redistributions of source code must retain the above copyright | 8 * * Redistributions of source code must retain the above copyright |
9 * notice, this list of conditions and the following disclaimer. | 9 * notice, this list of conditions and the following disclaimer. |
10 * * Redistributions in binary form must reproduce the above | 10 * * Redistributions in binary form must reproduce the above |
(...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
142 void RenderSVGModelObject::invalidatePaintIfNeeded(const PaintInvalidationState& paintInvalidationState) | 142 void RenderSVGModelObject::invalidatePaintIfNeeded(const PaintInvalidationState& paintInvalidationState) |
143 { | 143 { |
144 ForceHorriblySlowRectMapping slowRectMapping(&paintInvalidationState); | 144 ForceHorriblySlowRectMapping slowRectMapping(&paintInvalidationState); |
145 | 145 |
146 const LayoutRect oldPaintInvalidationRect = previousPaintInvalidationRect(); | 146 const LayoutRect oldPaintInvalidationRect = previousPaintInvalidationRect(); |
147 const LayoutPoint oldPositionFromPaintInvalidationContainer = previousPositi onFromPaintInvalidationContainer(); | 147 const LayoutPoint oldPositionFromPaintInvalidationContainer = previousPositi onFromPaintInvalidationContainer(); |
148 ASSERT(paintInvalidationState.paintInvalidationContainer() == containerForPa intInvalidation()); | 148 ASSERT(paintInvalidationState.paintInvalidationContainer() == containerForPa intInvalidation()); |
149 setPreviousPaintInvalidationRect(boundsRectForPaintInvalidation(&paintInvali dationState.paintInvalidationContainer(), &paintInvalidationState)); | 149 setPreviousPaintInvalidationRect(boundsRectForPaintInvalidation(&paintInvali dationState.paintInvalidationContainer(), &paintInvalidationState)); |
150 setPreviousPositionFromPaintInvalidationContainer(RenderLayer::positionFromP aintInvalidationContainer(this, &paintInvalidationState.paintInvalidationContain er(), &paintInvalidationState)); | 150 setPreviousPositionFromPaintInvalidationContainer(RenderLayer::positionFromP aintInvalidationContainer(this, &paintInvalidationState.paintInvalidationContain er(), &paintInvalidationState)); |
151 | 151 |
152 // If an ancestor container had its transform changed, then we just | |
153 // need to update the RenderSVGModelObject's repaint rect above. The invalid ation | |
154 // will be handled by the container where the transform changed. This essent ially | |
155 // means that we prune the entire branch for performance. | |
156 RenderObject* parent = this->parent(); | |
157 if (parent && parent->isSVGContainer() && toRenderSVGContainer(parent)->didT ransformToRootUpdate()) | |
158 return; | |
Julien - ping for review
2014/07/28 18:05:27
Actually, we should re-enable the ASSERT in Render
Xianzhu
2014/07/28 20:09:37
Done.
| |
159 | |
160 // If we are set to do a full paint invalidation that means the RenderView w ill be | 152 // If we are set to do a full paint invalidation that means the RenderView w ill be |
161 // issue paint invalidations. We can then skip issuing of paint invalidation s for the child | 153 // issue paint invalidations. We can then skip issuing of paint invalidation s for the child |
162 // renderers as they'll be covered by the RenderView. | 154 // renderers as they'll be covered by the RenderView. |
163 if (view()->doingFullRepaint()) | 155 if (view()->doingFullRepaint()) |
164 return; | 156 return; |
165 | 157 |
166 RenderObject::invalidatePaintIfNeeded(paintInvalidationState.paintInvalidati onContainer(), oldPaintInvalidationRect, oldPositionFromPaintInvalidationContain er, paintInvalidationState); | 158 RenderObject::invalidatePaintIfNeeded(paintInvalidationState.paintInvalidati onContainer(), oldPaintInvalidationRect, oldPositionFromPaintInvalidationContain er, paintInvalidationState); |
167 } | 159 } |
168 | 160 |
169 } // namespace blink | 161 } // namespace blink |
OLD | NEW |