| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 2007, 2008 Rob Buis <buis@kde.org> | 2 * Copyright (C) 2007, 2008 Rob Buis <buis@kde.org> |
| 3 * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org> | 3 * Copyright (C) 2007 Nikolas Zimmermann <zimmermann@kde.org> |
| 4 * Copyright (C) 2007 Eric Seidel <eric@webkit.org> | 4 * Copyright (C) 2007 Eric Seidel <eric@webkit.org> |
| 5 * Copyright (C) 2009 Google, Inc. All rights reserved. | 5 * Copyright (C) 2009 Google, Inc. All rights reserved. |
| 6 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org> | 6 * Copyright (C) 2009 Dirk Schulze <krit@webkit.org> |
| 7 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. | 7 * Copyright (C) Research In Motion Limited 2009-2010. All rights reserved. |
| 8 * | 8 * |
| 9 * This library is free software; you can redistribute it and/or | 9 * This library is free software; you can redistribute it and/or |
| 10 * modify it under the terms of the GNU Library General Public | 10 * modify it under the terms of the GNU Library General Public |
| (...skipping 12 matching lines...) Expand all Loading... |
| 23 */ | 23 */ |
| 24 | 24 |
| 25 #include "config.h" | 25 #include "config.h" |
| 26 #include "core/rendering/svg/SVGRenderingContext.h" | 26 #include "core/rendering/svg/SVGRenderingContext.h" |
| 27 | 27 |
| 28 #include "core/frame/FrameHost.h" | 28 #include "core/frame/FrameHost.h" |
| 29 #include "core/rendering/PaintInfo.h" | 29 #include "core/rendering/PaintInfo.h" |
| 30 #include "core/rendering/RenderLayer.h" | 30 #include "core/rendering/RenderLayer.h" |
| 31 #include "core/rendering/svg/RenderSVGResourceFilter.h" | 31 #include "core/rendering/svg/RenderSVGResourceFilter.h" |
| 32 #include "core/rendering/svg/RenderSVGResourceMasker.h" | 32 #include "core/rendering/svg/RenderSVGResourceMasker.h" |
| 33 #include "core/rendering/svg/SVGRenderSupport.h" | |
| 34 #include "core/rendering/svg/SVGResources.h" | 33 #include "core/rendering/svg/SVGResources.h" |
| 35 #include "core/rendering/svg/SVGResourcesCache.h" | 34 #include "core/rendering/svg/SVGResourcesCache.h" |
| 36 #include "platform/FloatConversion.h" | 35 #include "platform/FloatConversion.h" |
| 37 | 36 |
| 38 namespace blink { | 37 namespace blink { |
| 39 | 38 |
| 40 SVGRenderingContext::~SVGRenderingContext() | 39 SVGRenderingContext::~SVGRenderingContext() |
| 41 { | 40 { |
| 42 // Fast path if we don't need to restore anything. | 41 // Fast path if we don't need to restore anything. |
| 43 if (!(m_renderingFlags & ActionsNeeded)) | 42 if (!(m_renderingFlags & ActionsNeeded)) |
| (...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 86 | 85 |
| 87 m_object = object; | 86 m_object = object; |
| 88 m_paintInfo = &paintInfo; | 87 m_paintInfo = &paintInfo; |
| 89 | 88 |
| 90 RenderStyle* style = m_object->style(); | 89 RenderStyle* style = m_object->style(); |
| 91 ASSERT(style); | 90 ASSERT(style); |
| 92 | 91 |
| 93 const SVGRenderStyle& svgStyle = style->svgStyle(); | 92 const SVGRenderStyle& svgStyle = style->svgStyle(); |
| 94 | 93 |
| 95 // Setup transparency layers before setting up SVG resources! | 94 // Setup transparency layers before setting up SVG resources! |
| 96 bool isRenderingMask = SVGRenderSupport::isRenderingClipPathAsMaskImage(*m_o
bject); | 95 bool isRenderingMask = paintInfo.isRenderingClipPathAsMaskImage(); |
| 97 // RenderLayer takes care of root opacity. | 96 // RenderLayer takes care of root opacity. |
| 98 float opacity = object->isSVGRoot() ? 1 : style->opacity(); | 97 float opacity = object->isSVGRoot() ? 1 : style->opacity(); |
| 99 bool hasBlendMode = style->hasBlendMode(); | 98 bool hasBlendMode = style->hasBlendMode(); |
| 100 | 99 |
| 101 if (!isRenderingMask && (opacity < 1 || hasBlendMode || style->hasIsolation(
))) { | 100 if (!isRenderingMask && (opacity < 1 || hasBlendMode || style->hasIsolation(
))) { |
| 102 FloatRect paintInvalidationRect = m_object->paintInvalidationRectInLocal
Coordinates(); | 101 FloatRect paintInvalidationRect = m_object->paintInvalidationRectInLocal
Coordinates(); |
| 103 m_paintInfo->context->clip(paintInvalidationRect); | 102 m_paintInfo->context->clip(paintInvalidationRect); |
| 104 | 103 |
| 105 if (hasBlendMode) { | 104 if (hasBlendMode) { |
| 106 if (!(m_renderingFlags & RestoreGraphicsContext)) { | 105 if (!(m_renderingFlags & RestoreGraphicsContext)) { |
| (...skipping 131 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 238 { | 237 { |
| 239 ASSERT(context); | 238 ASSERT(context); |
| 240 ASSERT(item); | 239 ASSERT(item); |
| 241 ASSERT(!item->needsLayout()); | 240 ASSERT(!item->needsLayout()); |
| 242 | 241 |
| 243 PaintInfo info(context, PaintInfo::infiniteRect(), PaintPhaseForeground, Pai
ntBehaviorNormal); | 242 PaintInfo info(context, PaintInfo::infiniteRect(), PaintPhaseForeground, Pai
ntBehaviorNormal); |
| 244 item->paint(info, IntPoint()); | 243 item->paint(info, IntPoint()); |
| 245 } | 244 } |
| 246 | 245 |
| 247 } // namespace blink | 246 } // namespace blink |
| OLD | NEW |