| Index: Source/core/rendering/svg/RenderSVGResource.h
|
| diff --git a/Source/core/rendering/svg/RenderSVGResource.h b/Source/core/rendering/svg/RenderSVGResource.h
|
| index 2b822e0305d69e07ce5c110c90dd8c89bd2fae9d..7a0189e31ae9dc25c18fd134b7821eac27c6b472 100644
|
| --- a/Source/core/rendering/svg/RenderSVGResource.h
|
| +++ b/Source/core/rendering/svg/RenderSVGResource.h
|
| @@ -32,7 +32,6 @@ enum RenderSVGResourceType {
|
| PatternResourceType,
|
| LinearGradientResourceType,
|
| RadialGradientResourceType,
|
| - SolidColorResourceType,
|
| FilterResourceType,
|
| ClipperResourceType
|
| };
|
| @@ -45,8 +44,8 @@ enum RenderSVGResourceMode {
|
| class GraphicsContext;
|
| class GraphicsContextStateSaver;
|
| class RenderObject;
|
| +class RenderSVGResource;
|
| class RenderStyle;
|
| -class RenderSVGResourceSolidColor;
|
|
|
| class SVGPaintServer {
|
| public:
|
| @@ -55,6 +54,7 @@ public:
|
| explicit SVGPaintServer(PassRefPtr<Pattern>);
|
|
|
| static SVGPaintServer requestForRenderer(const RenderObject&, const RenderStyle*, RenderSVGResourceMode);
|
| + static bool existsForRenderer(const RenderObject&, const RenderStyle*, RenderSVGResourceMode);
|
|
|
| void apply(GraphicsContext&, RenderSVGResourceMode, GraphicsContextStateSaver* = 0);
|
|
|
| @@ -70,6 +70,19 @@ private:
|
| Color m_color;
|
| };
|
|
|
| +// If |SVGPaintDescription::hasFallback| is true, |SVGPaintDescription::color| is set to a fallback color.
|
| +struct SVGPaintDescription {
|
| + SVGPaintDescription() : resource(nullptr), isValid(false), hasFallback(false) { }
|
| + SVGPaintDescription(Color color) : resource(nullptr), color(color), isValid(true), hasFallback(false) { }
|
| + SVGPaintDescription(RenderSVGResource* resource) : resource(resource), isValid(true), hasFallback(false) { ASSERT(resource); }
|
| + SVGPaintDescription(RenderSVGResource* resource, Color fallbackColor) : resource(resource), color(fallbackColor), isValid(true), hasFallback(true) { ASSERT(resource); }
|
| +
|
| + RenderSVGResource* resource;
|
| + Color color;
|
| + bool isValid;
|
| + bool hasFallback;
|
| +};
|
| +
|
| class RenderSVGResource {
|
| public:
|
| RenderSVGResource() { }
|
| @@ -79,10 +92,8 @@ public:
|
|
|
| virtual RenderSVGResourceType resourceType() const = 0;
|
|
|
| - // Helper utilities used in the render tree to access resources used for painting shapes/text (gradients & patterns & solid colors only)
|
| - // If hasFallback gets set to true, the sharedSolidPaintingResource is set to a fallback color.
|
| - static RenderSVGResource* requestPaintingResource(RenderSVGResourceMode, const RenderObject&, const RenderStyle*, bool& hasFallback);
|
| - static RenderSVGResourceSolidColor* sharedSolidPaintingResource();
|
| + // Helper utilities used in to access the underlying resources for DRT.
|
| + static SVGPaintDescription requestPaintDescription(const RenderObject&, const RenderStyle*, RenderSVGResourceMode);
|
|
|
| static void markForLayoutAndParentResourceInvalidation(RenderObject*, bool needsLayout = true);
|
| };
|
|
|