Index: Source/core/rendering/svg/SVGTextRunRenderingContext.cpp |
diff --git a/Source/core/rendering/svg/SVGTextRunRenderingContext.cpp b/Source/core/rendering/svg/SVGTextRunRenderingContext.cpp |
index 8082744d21d47bc43592c06e27e6e74ce95bd462..45b4e297044e56c6a9d2a549dea216adf7d192fa 100644 |
--- a/Source/core/rendering/svg/SVGTextRunRenderingContext.cpp |
+++ b/Source/core/rendering/svg/SVGTextRunRenderingContext.cpp |
@@ -70,13 +70,6 @@ static inline RenderObject* renderObjectFromRun(const TextRun& run) |
return 0; |
} |
-static inline RenderSVGResource* activePaintingResourceFromRun(const TextRun& run) |
-{ |
- if (TextRun::RenderingContext* renderingContext = run.renderingContext()) |
- return static_cast<SVGTextRunRenderingContext*>(renderingContext)->activePaintingResource(); |
- return 0; |
-} |
- |
float SVGTextRunRenderingContext::floatWidthUsingSVGFont(const Font& font, const TextRun& run, int& charsConsumed, Glyph& glyphId) const |
{ |
WidthIterator it(&font, run); |
@@ -96,36 +89,23 @@ void SVGTextRunRenderingContext::drawSVGGlyphs(GraphicsContext* context, const T |
return; |
// We can only paint SVGFonts if a context is available. |
- RenderSVGResource* activePaintingResource = activePaintingResourceFromRun(run); |
RenderObject* renderObject = renderObjectFromRun(run); |
- RenderObject* parentRenderObject = firstParentRendererForNonTextNode(renderObject); |
- RenderStyle* parentRenderObjectStyle = 0; |
- |
ASSERT(renderObject); |
- if (!activePaintingResource) { |
- // TODO: We're only supporting simple filled HTML text so far. |
- RenderSVGResourceSolidColor* solidPaintingResource = RenderSVGResource::sharedSolidPaintingResource(); |
- solidPaintingResource->setColor(context->fillColor()); |
- activePaintingResource = solidPaintingResource; |
- } |
bool isVerticalText = false; |
- if (parentRenderObject) { |
- parentRenderObjectStyle = parentRenderObject->style(); |
+ if (RenderObject* parentRenderObject = firstParentRendererForNonTextNode(renderObject)) { |
+ RenderStyle* parentRenderObjectStyle = parentRenderObject->style(); |
ASSERT(parentRenderObjectStyle); |
isVerticalText = parentRenderObjectStyle->svgStyle().isVerticalWritingMode(); |
} |
float scale = scaleEmToUnits(fontData->platformData().size(), fontFaceElement->unitsPerEm()); |
- ASSERT(activePaintingResource); |
FloatPoint glyphOrigin; |
glyphOrigin.setX(svgFontData->horizontalOriginX() * scale); |
glyphOrigin.setY(svgFontData->horizontalOriginY() * scale); |
unsigned short resourceMode = context->textDrawingMode() == TextModeStroke ? ApplyToStrokeMode : ApplyToFillMode; |
- // From a resource perspective this ought to be treated as "text mode". |
- resourceMode |= ApplyToTextMode; |
FloatPoint currentPoint = point; |
for (int i = 0; i < numGlyphs; ++i) { |
@@ -161,14 +141,7 @@ void SVGTextRunRenderingContext::drawSVGGlyphs(GraphicsContext* context, const T |
Path glyphPath = svgGlyph.pathData; |
glyphPath.transform(glyphPathTransform); |
- if (activePaintingResource->applyResource(parentRenderObject, parentRenderObjectStyle, context, resourceMode)) { |
- float strokeThickness = context->strokeThickness(); |
- if (renderObject && renderObject->isSVGInlineText()) |
- context->setStrokeThickness(strokeThickness * toRenderSVGInlineText(renderObject)->scalingFactor()); |
- SVGRenderSupport::fillOrStrokePath(context, resourceMode, glyphPath); |
- activePaintingResource->postApplyResource(parentRenderObject, context); |
- context->setStrokeThickness(strokeThickness); |
- } |
+ SVGRenderSupport::fillOrStrokePath(context, resourceMode, glyphPath); |
if (isVerticalText) |
currentPoint.move(0, advance); |