| OLD | NEW |
| 1 /* | 1 /* |
| 2 Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org> | 2 Copyright (C) 2004, 2005, 2007 Nikolas Zimmermann <zimmermann@kde.org> |
| 3 2004, 2005, 2010 Rob Buis <buis@kde.org> | 3 2004, 2005, 2010 Rob Buis <buis@kde.org> |
| 4 Copyright (C) Research In Motion Limited 2010. All rights reserved. | 4 Copyright (C) Research In Motion Limited 2010. All rights reserved. |
| 5 | 5 |
| 6 Based on khtml code by: | 6 Based on khtml code by: |
| 7 Copyright (C) 1999 Antti Koivisto (koivisto@kde.org) | 7 Copyright (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 8 Copyright (C) 1999-2003 Lars Knoll (knoll@kde.org) | 8 Copyright (C) 1999-2003 Lars Knoll (knoll@kde.org) |
| 9 Copyright (C) 2002-2003 Dirk Mueller (mueller@kde.org) | 9 Copyright (C) 2002-2003 Dirk Mueller (mueller@kde.org) |
| 10 Copyright (C) 2002 Apple Computer, Inc. | 10 Copyright (C) 2002 Apple Computer, Inc. |
| (...skipping 13 matching lines...) Expand all Loading... |
| 24 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | 24 the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
| 25 Boston, MA 02110-1301, USA. | 25 Boston, MA 02110-1301, USA. |
| 26 */ | 26 */ |
| 27 | 27 |
| 28 #include "config.h" | 28 #include "config.h" |
| 29 | 29 |
| 30 #include "core/style/SVGComputedStyle.h" | 30 #include "core/style/SVGComputedStyle.h" |
| 31 | 31 |
| 32 namespace blink { | 32 namespace blink { |
| 33 | 33 |
| 34 static const int kPaintOrderBitwidth = 2; |
| 35 |
| 34 SVGComputedStyle::SVGComputedStyle() | 36 SVGComputedStyle::SVGComputedStyle() |
| 35 { | 37 { |
| 36 static SVGComputedStyle* initialStyle = new SVGComputedStyle(CreateInitial); | 38 static SVGComputedStyle* initialStyle = new SVGComputedStyle(CreateInitial); |
| 37 | 39 |
| 38 fill = initialStyle->fill; | 40 fill = initialStyle->fill; |
| 39 stroke = initialStyle->stroke; | 41 stroke = initialStyle->stroke; |
| 40 stops = initialStyle->stops; | 42 stops = initialStyle->stops; |
| 41 misc = initialStyle->misc; | 43 misc = initialStyle->misc; |
| 42 inheritedResources = initialStyle->inheritedResources; | 44 inheritedResources = initialStyle->inheritedResources; |
| 43 layout = initialStyle->layout; | 45 layout = initialStyle->layout; |
| (...skipping 185 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 229 if (stops != other->stops) | 231 if (stops != other->stops) |
| 230 return true; | 232 return true; |
| 231 | 233 |
| 232 // Changes of these flags only cause paint invalidations. | 234 // Changes of these flags only cause paint invalidations. |
| 233 if (svg_inherited_flags._colorRendering != other->svg_inherited_flags._color
Rendering | 235 if (svg_inherited_flags._colorRendering != other->svg_inherited_flags._color
Rendering |
| 234 || svg_inherited_flags._shapeRendering != other->svg_inherited_flags._sh
apeRendering | 236 || svg_inherited_flags._shapeRendering != other->svg_inherited_flags._sh
apeRendering |
| 235 || svg_inherited_flags._clipRule != other->svg_inherited_flags._clipRule | 237 || svg_inherited_flags._clipRule != other->svg_inherited_flags._clipRule |
| 236 || svg_inherited_flags._fillRule != other->svg_inherited_flags._fillRule | 238 || svg_inherited_flags._fillRule != other->svg_inherited_flags._fillRule |
| 237 || svg_inherited_flags._colorInterpolation != other->svg_inherited_flags
._colorInterpolation | 239 || svg_inherited_flags._colorInterpolation != other->svg_inherited_flags
._colorInterpolation |
| 238 || svg_inherited_flags._colorInterpolationFilters != other->svg_inherite
d_flags._colorInterpolationFilters | 240 || svg_inherited_flags._colorInterpolationFilters != other->svg_inherite
d_flags._colorInterpolationFilters |
| 239 || svg_inherited_flags._paintOrder != other->svg_inherited_flags._paintO
rder) | 241 || svg_inherited_flags.paintOrder != other->svg_inherited_flags.paintOrd
er) |
| 240 return true; | 242 return true; |
| 241 | 243 |
| 242 if (svg_noninherited_flags.f.bufferedRendering != other->svg_noninherited_fl
ags.f.bufferedRendering) | 244 if (svg_noninherited_flags.f.bufferedRendering != other->svg_noninherited_fl
ags.f.bufferedRendering) |
| 243 return true; | 245 return true; |
| 244 | 246 |
| 245 if (svg_noninherited_flags.f.maskType != other->svg_noninherited_flags.f.mas
kType) | 247 if (svg_noninherited_flags.f.maskType != other->svg_noninherited_flags.f.mas
kType) |
| 246 return true; | 248 return true; |
| 247 | 249 |
| 248 return false; | 250 return false; |
| 249 } | 251 } |
| 250 | 252 |
| 253 unsigned paintOrderSequence(EPaintOrderType first, EPaintOrderType second, EPain
tOrderType third) |
| 254 { |
| 255 return (((third << kPaintOrderBitwidth) | second) << kPaintOrderBitwidth) |
first; |
| 256 } |
| 257 |
| 251 EPaintOrderType SVGComputedStyle::paintOrderType(unsigned index) const | 258 EPaintOrderType SVGComputedStyle::paintOrderType(unsigned index) const |
| 252 { | 259 { |
| 260 unsigned pt = 0; |
| 253 ASSERT(index < ((1 << kPaintOrderBitwidth)-1)); | 261 ASSERT(index < ((1 << kPaintOrderBitwidth)-1)); |
| 254 unsigned pt = (paintOrder() >> (kPaintOrderBitwidth*index)) & ((1u << kPaint
OrderBitwidth) - 1); | 262 switch (this->paintOrder()) { |
| 263 case PaintOrderNormal: |
| 264 case PaintOrderFillStrokeMarkers: |
| 265 pt = paintOrderSequence(PT_FILL, PT_STROKE, PT_MARKERS); |
| 266 break; |
| 267 case PaintOrderFillMarkersStroke: |
| 268 pt = paintOrderSequence(PT_FILL, PT_MARKERS, PT_STROKE); |
| 269 break; |
| 270 case PaintOrderStrokeFillMarkers: |
| 271 pt = paintOrderSequence(PT_STROKE, PT_FILL, PT_MARKERS); |
| 272 break; |
| 273 case PaintOrderStrokeMarkersFill: |
| 274 pt = paintOrderSequence(PT_STROKE, PT_MARKERS, PT_FILL); |
| 275 break; |
| 276 case PaintOrderMarkersFillStroke: |
| 277 pt = paintOrderSequence(PT_MARKERS, PT_FILL, PT_STROKE); |
| 278 break; |
| 279 case PaintOrderMarkersStrokeFill: |
| 280 pt = paintOrderSequence(PT_MARKERS, PT_STROKE, PT_FILL); |
| 281 break; |
| 282 } |
| 283 |
| 284 pt = (pt >> (kPaintOrderBitwidth*index)) & ((1u << kPaintOrderBitwidth) - 1)
; |
| 255 return (EPaintOrderType)pt; | 285 return (EPaintOrderType)pt; |
| 256 } | 286 } |
| 257 | 287 |
| 258 } | 288 } |
| OLD | NEW |