OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org> | 2 * Copyright (C) 2006 Nikolas Zimmermann <zimmermann@kde.org> |
3 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 3 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
4 * | 4 * |
5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
9 * | 9 * |
10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
105 AffineTransform patternTransform = m_attributes.patternTransform(); | 105 AffineTransform patternTransform = m_attributes.patternTransform(); |
106 if (!patternTransform.isIdentity()) | 106 if (!patternTransform.isIdentity()) |
107 patternData->transform = patternTransform * patternData->transform; | 107 patternData->transform = patternTransform * patternData->transform; |
108 | 108 |
109 // Various calls above may trigger invalidations in some fringe cases (Image
Buffer allocation | 109 // Various calls above may trigger invalidations in some fringe cases (Image
Buffer allocation |
110 // failures in the SVG image cache for example). To avoid having our Pattern
Data deleted by | 110 // failures in the SVG image cache for example). To avoid having our Pattern
Data deleted by |
111 // removeAllClientsFromCache(), we only make it visible in the cache at the
very end. | 111 // removeAllClientsFromCache(), we only make it visible in the cache at the
very end. |
112 return m_patternMap.set(object, patternData.release()).storedValue->value.ge
t(); | 112 return m_patternMap.set(object, patternData.release()).storedValue->value.ge
t(); |
113 } | 113 } |
114 | 114 |
115 bool RenderSVGResourcePattern::applyResource(RenderObject* object, RenderStyle*
style, GraphicsContext*& context, unsigned short resourceMode) | 115 bool RenderSVGResourcePattern::applyResource(RenderObject* object, RenderStyle*
style, GraphicsContext* context, RenderSVGResourceModeFlags resourceMode) |
116 { | 116 { |
117 ASSERT(object); | 117 ASSERT(object); |
118 ASSERT(style); | 118 ASSERT(style); |
119 ASSERT(context); | 119 ASSERT(context); |
120 | 120 |
121 clearInvalidationMask(); | 121 clearInvalidationMask(); |
122 | 122 |
123 SVGPatternElement* patternElement = toSVGPatternElement(element()); | 123 SVGPatternElement* patternElement = toSVGPatternElement(element()); |
124 if (!patternElement) | 124 if (!patternElement) |
125 return false; | 125 return false; |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
163 if (resourceMode & ApplyToTextMode) { | 163 if (resourceMode & ApplyToTextMode) { |
164 if (resourceMode & ApplyToFillMode) | 164 if (resourceMode & ApplyToFillMode) |
165 context->setTextDrawingMode(TextModeFill); | 165 context->setTextDrawingMode(TextModeFill); |
166 else if (resourceMode & ApplyToStrokeMode) | 166 else if (resourceMode & ApplyToStrokeMode) |
167 context->setTextDrawingMode(TextModeStroke); | 167 context->setTextDrawingMode(TextModeStroke); |
168 } | 168 } |
169 | 169 |
170 return true; | 170 return true; |
171 } | 171 } |
172 | 172 |
173 void RenderSVGResourcePattern::postApplyResource(RenderObject*, GraphicsContext*
& context) | 173 void RenderSVGResourcePattern::postApplyResource(GraphicsContext* context) |
174 { | 174 { |
175 ASSERT(context); | 175 ASSERT(context); |
176 context->restore(); | 176 context->restore(); |
177 } | 177 } |
178 | 178 |
179 static inline FloatRect calculatePatternBoundaries(const PatternAttributes& attr
ibutes, | 179 static inline FloatRect calculatePatternBoundaries(const PatternAttributes& attr
ibutes, |
180 const FloatRect& objectBoundi
ngBox, | 180 const FloatRect& objectBoundi
ngBox, |
181 const SVGPatternElement* patt
ernElement) | 181 const SVGPatternElement* patt
ernElement) |
182 { | 182 { |
183 ASSERT(patternElement); | 183 ASSERT(patternElement); |
(...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
247 continue; | 247 continue; |
248 if (element->renderer()->needsLayout()) | 248 if (element->renderer()->needsLayout()) |
249 return nullptr; | 249 return nullptr; |
250 SVGRenderingContext::renderSubtree(tileImage->context(), element->render
er(), contentTransformation); | 250 SVGRenderingContext::renderSubtree(tileImage->context(), element->render
er(), contentTransformation); |
251 } | 251 } |
252 | 252 |
253 return tileImage.release(); | 253 return tileImage.release(); |
254 } | 254 } |
255 | 255 |
256 } | 256 } |
OLD | NEW |