| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2008 Apple Inc. All rights reserved. | 2 * Copyright (C) 2008 Apple 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 | 5 * modification, are permitted provided that the following conditions |
| 6 * are met: | 6 * are met: |
| 7 * | 7 * |
| 8 * 1. Redistributions of source code must retain the above copyright | 8 * 1. 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 * 2. Redistributions in binary form must reproduce the above copyright | 10 * 2. Redistributions in binary form must reproduce the above copyright |
| (...skipping 11 matching lines...) Expand all Loading... |
| 22 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 22 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
| 23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 23 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
| 24 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 24 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
| 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| 27 */ | 27 */ |
| 28 | 28 |
| 29 #include "config.h" | 29 #include "config.h" |
| 30 #include "core/rendering/RenderReplica.h" | 30 #include "core/rendering/RenderReplica.h" |
| 31 | 31 |
| 32 #include "core/paint/ReplicaPainter.h" |
| 32 #include "core/rendering/GraphicsContextAnnotator.h" | 33 #include "core/rendering/GraphicsContextAnnotator.h" |
| 33 #include "core/rendering/RenderLayer.h" | 34 #include "core/rendering/RenderLayer.h" |
| 34 | 35 |
| 35 namespace blink { | 36 namespace blink { |
| 36 | 37 |
| 37 RenderReplica::RenderReplica() | 38 RenderReplica::RenderReplica() |
| 38 : RenderBox(0) | 39 : RenderBox(0) |
| 39 { | 40 { |
| 40 // This is a hack. Replicas are synthetic, and don't pick up the attributes
of the | 41 // This is a hack. Replicas are synthetic, and don't pick up the attributes
of the |
| 41 // renderers being replicated, so they always report that they are inline, n
on-replaced. | 42 // renderers being replicated, so they always report that they are inline, n
on-replaced. |
| (...skipping 23 matching lines...) Expand all Loading... |
| 65 | 66 |
| 66 void RenderReplica::computePreferredLogicalWidths() | 67 void RenderReplica::computePreferredLogicalWidths() |
| 67 { | 68 { |
| 68 m_minPreferredLogicalWidth = parentBox()->width(); | 69 m_minPreferredLogicalWidth = parentBox()->width(); |
| 69 m_maxPreferredLogicalWidth = m_minPreferredLogicalWidth; | 70 m_maxPreferredLogicalWidth = m_minPreferredLogicalWidth; |
| 70 clearPreferredLogicalWidthsDirty(); | 71 clearPreferredLogicalWidthsDirty(); |
| 71 } | 72 } |
| 72 | 73 |
| 73 void RenderReplica::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffset) | 74 void RenderReplica::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffset) |
| 74 { | 75 { |
| 75 ANNOTATE_GRAPHICS_CONTEXT(paintInfo, this); | 76 ReplicaPainter(*this).paint(paintInfo, paintOffset); |
| 76 | |
| 77 if (paintInfo.phase != PaintPhaseForeground && paintInfo.phase != PaintPhase
Mask) | |
| 78 return; | |
| 79 | |
| 80 LayoutPoint adjustedPaintOffset = paintOffset + location(); | |
| 81 | |
| 82 if (paintInfo.phase == PaintPhaseForeground) { | |
| 83 // Turn around and paint the parent layer. Use temporary clipRects, so t
hat the layer doesn't end up caching clip rects | |
| 84 // computing using the wrong rootLayer | |
| 85 RenderLayer* rootPaintingLayer = layer()->transform() ? layer()->parent(
) : layer()->enclosingTransformedAncestor(); | |
| 86 LayerPaintingInfo paintingInfo(rootPaintingLayer, paintInfo.rect, PaintB
ehaviorNormal, LayoutSize(), 0); | |
| 87 PaintLayerFlags flags = PaintLayerHaveTransparency | PaintLayerAppliedTr
ansform | PaintLayerUncachedClipRects | PaintLayerPaintingReflection; | |
| 88 layer()->parent()->paintLayer(paintInfo.context, paintingInfo, flags); | |
| 89 } else if (paintInfo.phase == PaintPhaseMask) | |
| 90 paintMask(paintInfo, adjustedPaintOffset); | |
| 91 } | 77 } |
| 92 | 78 |
| 93 } // namespace blink | 79 } // namespace blink |
| OLD | NEW |