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 391 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
402 | 402 |
403 bool SVGRenderSupport::updateGraphicsContext(const PaintInfo& paintInfo, Graphic
sContextStateSaver& stateSaver, RenderStyle* style, RenderObject& renderer, Rend
erSVGResourceMode resourceMode, const AffineTransform* additionalPaintServerTran
sform) | 403 bool SVGRenderSupport::updateGraphicsContext(const PaintInfo& paintInfo, Graphic
sContextStateSaver& stateSaver, RenderStyle* style, RenderObject& renderer, Rend
erSVGResourceMode resourceMode, const AffineTransform* additionalPaintServerTran
sform) |
404 { | 404 { |
405 ASSERT(style); | 405 ASSERT(style); |
406 ASSERT(paintInfo.context == stateSaver.context()); | 406 ASSERT(paintInfo.context == stateSaver.context()); |
407 | 407 |
408 GraphicsContext* context = paintInfo.context; | 408 GraphicsContext* context = paintInfo.context; |
409 if (paintInfo.isRenderingClipPathAsMaskImage()) { | 409 if (paintInfo.isRenderingClipPathAsMaskImage()) { |
410 if (resourceMode == ApplyToStrokeMode) | 410 if (resourceMode == ApplyToStrokeMode) |
411 return false; | 411 return false; |
412 context->setAlphaAsFloat(1); | |
413 context->setFillColor(SVGRenderStyle::initialFillPaintColor()); | 412 context->setFillColor(SVGRenderStyle::initialFillPaintColor()); |
414 return true; | 413 return true; |
415 } | 414 } |
416 | 415 |
417 SVGPaintServer paintServer = SVGPaintServer::requestForRenderer(renderer, st
yle, resourceMode); | 416 SVGPaintServer paintServer = SVGPaintServer::requestForRenderer(renderer, st
yle, resourceMode); |
418 if (!paintServer.isValid()) | 417 if (!paintServer.isValid()) |
419 return false; | 418 return false; |
420 | 419 |
421 if (additionalPaintServerTransform && paintServer.isTransformDependent()) | 420 if (additionalPaintServerTransform && paintServer.isTransformDependent()) |
422 paintServer.prependTransform(*additionalPaintServerTransform); | 421 paintServer.prependTransform(*additionalPaintServerTransform); |
423 | 422 |
424 paintServer.apply(*context, resourceMode, &stateSaver); | 423 const SVGRenderStyle& svgStyle = style->svgStyle(); |
| 424 paintServer.apply(*context, resourceMode, svgStyle, stateSaver); |
425 | 425 |
426 const SVGRenderStyle& svgStyle = style->svgStyle(); | 426 if (resourceMode == ApplyToFillMode) |
| 427 context->setFillRule(svgStyle.fillRule()); |
| 428 else |
| 429 applyStrokeStyleToContext(context, style, &renderer); |
427 | 430 |
428 if (resourceMode == ApplyToFillMode) { | |
429 context->setAlphaAsFloat(svgStyle.fillOpacity()); | |
430 context->setFillRule(svgStyle.fillRule()); | |
431 } else { | |
432 context->setAlphaAsFloat(svgStyle.strokeOpacity()); | |
433 applyStrokeStyleToContext(context, style, &renderer); | |
434 } | |
435 return true; | 431 return true; |
436 } | 432 } |
437 | 433 |
438 bool SVGRenderSupport::isRenderableTextNode(const RenderObject* object) | 434 bool SVGRenderSupport::isRenderableTextNode(const RenderObject* object) |
439 { | 435 { |
440 ASSERT(object->isText()); | 436 ASSERT(object->isText()); |
441 // <br> is marked as text, but is not handled by the SVG rendering code-path
. | 437 // <br> is marked as text, but is not handled by the SVG rendering code-path
. |
442 return object->isSVGInlineText() && !toRenderSVGInlineText(object)->hasEmpty
Text(); | 438 return object->isSVGInlineText() && !toRenderSVGInlineText(object)->hasEmpty
Text(); |
443 } | 439 } |
444 | 440 |
(...skipping 14 matching lines...) Expand all Loading... |
459 return false; | 455 return false; |
460 return willIsolateBlendingDescendantsForStyle(object->style()); | 456 return willIsolateBlendingDescendantsForStyle(object->style()); |
461 } | 457 } |
462 | 458 |
463 bool SVGRenderSupport::isIsolationRequired(const RenderObject* object) | 459 bool SVGRenderSupport::isIsolationRequired(const RenderObject* object) |
464 { | 460 { |
465 return willIsolateBlendingDescendantsForObject(object) && object->hasNonIsol
atedBlendingDescendants(); | 461 return willIsolateBlendingDescendantsForObject(object) && object->hasNonIsol
atedBlendingDescendants(); |
466 } | 462 } |
467 | 463 |
468 } | 464 } |
OLD | NEW |