⚠ Archived content — this site is no longer maintained.   Current WebKit documentation is at docs.webkit.org.

Changeset 157945 in webkit


Ignore:
Timestamp:
Oct 24, 2013, 12:36:55 PM (13 years ago)
Author:
akling@apple.com
Message:

SVGRenderingContext should wrap a RenderElement.
<​https://webkit.org/b/123283>

The SVG rendering context class is never used with text renderers
so we can have it wrap a RenderElement for tighter code.

Also renamed SVGRenderingContext::m_object to m_renderer.

Reviewed by Antti Koivisto.

Location:
trunk/Source/WebCore
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r157944 r157945  
     12013-10-24  Andreas Kling  <akling@apple.com>
     2
     3        SVGRenderingContext should wrap a RenderElement.
     4        <https://webkit.org/b/123283>
     5
     6        The SVG rendering context class is never used with text renderers
     7        so we can have it wrap a RenderElement for tighter code.
     8
     9        Also renamed SVGRenderingContext::m_object to m_renderer.
     10
     11        Reviewed by Antti Koivisto.
     12
    1132013-10-24  Santosh Mahto  <santosh.ma@samsung.com>
    214
  • trunk/Source/WebCore/rendering/svg/RenderSVGContainer.cpp

    r157940 r157945  
    134134        bool continueRendering = true;
    135135        if (childPaintInfo.phase == PaintPhaseForeground) {
    136             renderingContext.prepareToRenderSVGContent(this, childPaintInfo);
     136            renderingContext.prepareToRenderSVGContent(*this, childPaintInfo);
    137137            continueRendering = renderingContext.isRenderingPrepared();
    138138        }
  • trunk/Source/WebCore/rendering/svg/RenderSVGForeignObject.cpp

    r155756 r157945  
    7171    bool continueRendering = true;
    7272    if (paintInfo.phase == PaintPhaseForeground) {
    73         renderingContext.prepareToRenderSVGContent(this, childPaintInfo);
     73        renderingContext.prepareToRenderSVGContent(*this, childPaintInfo);
    7474        continueRendering = renderingContext.isRenderingPrepared();
    7575    }
  • trunk/Source/WebCore/rendering/svg/RenderSVGImage.cpp

    r157940 r157945  
    135135
    136136        if (childPaintInfo.phase == PaintPhaseForeground) {
    137             SVGRenderingContext renderingContext(this, childPaintInfo);
     137            SVGRenderingContext renderingContext(*this, childPaintInfo);
    138138
    139139            if (renderingContext.isRenderingPrepared()) {
  • trunk/Source/WebCore/rendering/svg/RenderSVGRoot.cpp

    r157940 r157945  
    288288        bool continueRendering = true;
    289289        if (childPaintInfo.phase == PaintPhaseForeground) {
    290             renderingContext.prepareToRenderSVGContent(this, childPaintInfo);
     290            renderingContext.prepareToRenderSVGContent(*this, childPaintInfo);
    291291            continueRendering = renderingContext.isRenderingPrepared();
    292292        }
  • trunk/Source/WebCore/rendering/svg/RenderSVGShape.cpp

    r157940 r157945  
    281281
    282282        if (childPaintInfo.phase == PaintPhaseForeground) {
    283             SVGRenderingContext renderingContext(this, childPaintInfo);
     283            SVGRenderingContext renderingContext(*this, childPaintInfo);
    284284
    285285            if (renderingContext.isRenderingPrepared()) {
  • trunk/Source/WebCore/rendering/svg/SVGInlineFlowBox.cpp

    r157907 r157945  
    5555    ASSERT(!paintInfo.context->paintingDisabled());
    5656
    57     SVGRenderingContext renderingContext(&renderer(), paintInfo, SVGRenderingContext::SaveGraphicsContext);
     57    SVGRenderingContext renderingContext(renderer(), paintInfo, SVGRenderingContext::SaveGraphicsContext);
    5858    if (renderingContext.isRenderingPrepared()) {
    5959        for (InlineBox* child = firstChild(); child; child = child->nextOnLine()) {
  • trunk/Source/WebCore/rendering/svg/SVGRenderingContext.cpp

    r157823 r157945  
    5757        return;
    5858
    59     ASSERT(m_object && m_paintInfo);
     59    ASSERT(m_renderer && m_paintInfo);
    6060
    6161#if ENABLE(FILTERS)
    6262    if (m_renderingFlags & EndFilterLayer) {
    6363        ASSERT(m_filter);
    64         m_filter->postApplyResource(m_object, m_paintInfo->context, ApplyToDefaultMode, 0, 0);
     64        m_filter->postApplyResource(m_renderer, m_paintInfo->context, ApplyToDefaultMode, 0, 0);
    6565        m_paintInfo->context = m_savedContext;
    6666        m_paintInfo->rect = m_savedPaintRect;
    … …  
    7878}
    7979
    80 void SVGRenderingContext::prepareToRenderSVGContent(RenderObject* object, PaintInfo& paintInfo, NeedsGraphicsContextSave needsGraphicsContextSave)
    81 {
    82     ASSERT(object);
    83 
     80void SVGRenderingContext::prepareToRenderSVGContent(RenderElement& renderer, PaintInfo& paintInfo, NeedsGraphicsContextSave needsGraphicsContextSave)
     81{
    8482#ifndef NDEBUG
    8583    // This function must not be called twice!
    … …  
    8886#endif
    8987
    90     m_object = object;
     88    m_renderer = &renderer;
    9189    m_paintInfo = &paintInfo;
    9290#if ENABLE(FILTERS)
    … …  
    10098    }
    10199
    102     RenderStyle* style = m_object->style();
     100    RenderStyle* style = m_renderer->style();
    103101    ASSERT(style);
    104102
    … …  
    107105
    108106    // Setup transparency layers before setting up SVG resources!
    109     bool isRenderingMask = isRenderingMaskImage(*m_object);
     107    bool isRenderingMask = isRenderingMaskImage(*m_renderer);
    110108    float opacity = isRenderingMask ? 1 : style->opacity();
    111109    const ShadowData* shadow = svgStyle->shadow();
    112110    if (opacity < 1 || shadow) {
    113         FloatRect repaintRect = m_object->repaintRectInLocalCoordinates();
     111        FloatRect repaintRect = m_renderer->repaintRectInLocalCoordinates();
    114112
    115113        if (opacity < 1) {
    … …  
    130128    if (clipPathOperation && clipPathOperation->type() == ClipPathOperation::SHAPE) {
    131129        ShapeClipPathOperation* clipPath = static_cast<ShapeClipPathOperation*>(clipPathOperation);
    132         m_paintInfo->context->clipPath(clipPath->path(object->objectBoundingBox()), clipPath->windRule());
    133     }
    134 
    135     SVGResources* resources = SVGResourcesCache::cachedResourcesForRenderObject(m_object);
     130        m_paintInfo->context->clipPath(clipPath->path(renderer.objectBoundingBox()), clipPath->windRule());
     131    }
     132
     133    SVGResources* resources = SVGResourcesCache::cachedResourcesForRenderObject(m_renderer);
    136134    if (!resources) {
    137135#if ENABLE(FILTERS)
    … …  
    145143    if (!isRenderingMask) {
    146144        if (RenderSVGResourceMasker* masker = resources->masker()) {
    147             if (!masker->applyResource(m_object, style, m_paintInfo->context, ApplyToDefaultMode))
     145            if (!masker->applyResource(m_renderer, style, m_paintInfo->context, ApplyToDefaultMode))
    148146                return;
    149147        }
    … …  
    152150    RenderSVGResourceClipper* clipper = resources->clipper();
    153151    if (!clipPathOperation && clipper) {
    154         if (!clipper->applyResource(m_object, style, m_paintInfo->context, ApplyToDefaultMode))
     152        if (!clipper->applyResource(m_renderer, style, m_paintInfo->context, ApplyToDefaultMode))
    155153            return;
    156154    }
    … …  
    165163            // (because it was either drawn before or empty) but we still need to apply the filter.
    166164            m_renderingFlags |= EndFilterLayer;
    167             if (!m_filter->applyResource(m_object, style, m_paintInfo->context, ApplyToDefaultMode))
     165            if (!m_filter->applyResource(m_renderer, style, m_paintInfo->context, ApplyToDefaultMode))
    168166                return;
    169167
    … …  
    172170            // at the time of the initial paint (due to scrolling, window size, etc.) will never
    173171            // be drawn.
    174             m_paintInfo->rect = IntRect(m_filter->drawingRegion(m_object));
     172            m_paintInfo->rect = IntRect(m_filter->drawingRegion(m_renderer));
    175173        }
    176174    }
    … …  
    334332{
    335333    ASSERT(m_paintInfo);
    336     ASSERT(m_object->isSVGImage());
    337     FloatRect boundingBox = m_object->objectBoundingBox();
     334    ASSERT(m_renderer->isSVGImage());
     335    FloatRect boundingBox = m_renderer->objectBoundingBox();
    338336
    339337    // Invalidate an existing buffer if the scale is not correct.
    … …  
    353351            PaintInfo bufferedInfo(*m_paintInfo);
    354352            bufferedInfo.context = bufferedRenderingContext;
    355             toRenderSVGImage(m_object)->paintForeground(bufferedInfo);
     353            toRenderSVGImage(m_renderer)->paintForeground(bufferedInfo);
    356354        } else
    357355            return false;
  • trunk/Source/WebCore/rendering/svg/SVGRenderingContext.h

    r157011 r157945  
    4949    SVGRenderingContext()
    5050        : m_renderingFlags(0)
    51         , m_object(0)
    52         , m_paintInfo(0)
    53         , m_savedContext(0)
     51        , m_renderer(nullptr)
     52        , m_paintInfo(nullptr)
     53        , m_savedContext(nullptr)
    5454#if ENABLE(FILTERS)
    55         , m_filter(0)
     55        , m_filter(nullptr)
    5656#endif
    5757    {
    5858    }
    5959
    60     SVGRenderingContext(RenderObject* object, PaintInfo& paintinfo, NeedsGraphicsContextSave needsGraphicsContextSave = DontSaveGraphicsContext)
     60    SVGRenderingContext(RenderElement& object, PaintInfo& paintinfo, NeedsGraphicsContextSave needsGraphicsContextSave = DontSaveGraphicsContext)
    6161        : m_renderingFlags(0)
    62         , m_object(0)
    63         , m_paintInfo(0)
    64         , m_savedContext(0)
     62        , m_renderer(nullptr)
     63        , m_paintInfo(nullptr)
     64        , m_savedContext(nullptr)
    6565#if ENABLE(FILTERS)
    66         , m_filter(0)
     66        , m_filter(nullptr)
    6767#endif
    6868    {
    … …  
    7474
    7575    // Used by all SVG renderers who apply clip/filter/etc. resources to the renderer content.
    76     void prepareToRenderSVGContent(RenderObject*, PaintInfo&, NeedsGraphicsContextSave = DontSaveGraphicsContext);
     76    void prepareToRenderSVGContent(RenderElement&, PaintInfo&, NeedsGraphicsContextSave = DontSaveGraphicsContext);
    7777    bool isRenderingPrepared() const { return m_renderingFlags & RenderingPrepared; }
    7878
    … …  
    113113
    114114    int m_renderingFlags;
    115     RenderObject* m_object;
     115    RenderElement* m_renderer;
    116116    PaintInfo* m_paintInfo;
    117117    GraphicsContext* m_savedContext;
  • trunk/Source/WebCore/rendering/svg/SVGRootInlineBox.cpp

    r157662 r157945  
    6666    }
    6767
    68     SVGRenderingContext renderingContext(&renderSVGText(), paintInfo, SVGRenderingContext::SaveGraphicsContext);
     68    SVGRenderingContext renderingContext(renderSVGText(), paintInfo, SVGRenderingContext::SaveGraphicsContext);
    6969    if (renderingContext.isRenderingPrepared()) {
    7070        for (InlineBox* child = firstChild(); child; child = child->nextOnLine()) {
Note: See TracChangeset for help on using the changeset viewer.