Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(264)

Side by Side Diff: Source/core/layout/svg/SVGLayoutSupport.h

Issue 933953003: Move the remaining rendering/svg/RenderSVG* files to layout. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /** 1 /**
2 * Copyright (C) 2007 Rob Buis <buis@kde.org> 2 * Copyright (C) 2007 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) Research In Motion Limited 2010. All rights reserved. 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved.
7 * 7 *
8 * This library is free software; you can redistribute it and/or 8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public 9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either 10 * License as published by the Free Software Foundation; either
(...skipping 22 matching lines...) Expand all
33 class FloatRect; 33 class FloatRect;
34 class GraphicsContext; 34 class GraphicsContext;
35 class GraphicsContextStateSaver; 35 class GraphicsContextStateSaver;
36 class PaintInvalidationState; 36 class PaintInvalidationState;
37 class LayoutRect; 37 class LayoutRect;
38 struct PaintInfo; 38 struct PaintInfo;
39 class LayoutGeometryMap; 39 class LayoutGeometryMap;
40 class LayoutLayerModelObject; 40 class LayoutLayerModelObject;
41 class LayoutObject; 41 class LayoutObject;
42 class LayoutStyle; 42 class LayoutStyle;
43 class RenderSVGRoot; 43 class LayoutSVGRoot;
44 class StrokeData; 44 class StrokeData;
45 class TransformState; 45 class TransformState;
46 46
47 class SVGLayoutSupport { 47 class SVGLayoutSupport {
48 public: 48 public:
49 // Shares child layouting code between RenderSVGRoot/RenderSVG(Hidden)Contai ner 49 // Shares child layouting code between LayoutSVGRoot/LayoutSVG(Hidden)Contai ner
50 static void layoutChildren(LayoutObject*, bool selfNeedsLayout); 50 static void layoutChildren(LayoutObject*, bool selfNeedsLayout);
51 51
52 // Layout resources used by this node. 52 // Layout resources used by this node.
53 static void layoutResourcesIfNeeded(const LayoutObject*); 53 static void layoutResourcesIfNeeded(const LayoutObject*);
54 54
55 // Helper function determining whether overflow is hidden. 55 // Helper function determining whether overflow is hidden.
56 static bool isOverflowHidden(const LayoutObject*); 56 static bool isOverflowHidden(const LayoutObject*);
57 57
58 // Calculates the paintInvalidationRect in combination with filter, clipper and masker in local coordinates. 58 // Calculates the paintInvalidationRect in combination with filter, clipper and masker in local coordinates.
59 static void intersectPaintInvalidationRectWithResources(const LayoutObject*, FloatRect&); 59 static void intersectPaintInvalidationRectWithResources(const LayoutObject*, FloatRect&);
60 60
61 // Determines whether a container needs to be laid out because it's filtered and a child is being laid out. 61 // Determines whether a container needs to be laid out because it's filtered and a child is being laid out.
62 static bool filtersForceContainerLayout(LayoutObject*); 62 static bool filtersForceContainerLayout(LayoutObject*);
63 63
64 // Determines whether the passed point lies in a clipping area 64 // Determines whether the passed point lies in a clipping area
65 static bool pointInClippingArea(LayoutObject*, const FloatPoint&); 65 static bool pointInClippingArea(LayoutObject*, const FloatPoint&);
66 66
67 // Transform |pointInParent| to |object|'s user-space and check if it is 67 // Transform |pointInParent| to |object|'s user-space and check if it is
68 // within the clipping area. Returns false if the transform is singular or 68 // within the clipping area. Returns false if the transform is singular or
69 // the point is outside the clipping area. 69 // the point is outside the clipping area.
70 static bool transformToUserSpaceAndCheckClipping(LayoutObject*, const Affine Transform& localTransform, const FloatPoint& pointInParent, FloatPoint& localPoi nt); 70 static bool transformToUserSpaceAndCheckClipping(LayoutObject*, const Affine Transform& localTransform, const FloatPoint& pointInParent, FloatPoint& localPoi nt);
71 71
72 static void computeContainerBoundingBoxes(const LayoutObject* container, Flo atRect& objectBoundingBox, bool& objectBoundingBoxValid, FloatRect& strokeBoundi ngBox, FloatRect& paintInvalidationBoundingBox); 72 static void computeContainerBoundingBoxes(const LayoutObject* container, Flo atRect& objectBoundingBox, bool& objectBoundingBoxValid, FloatRect& strokeBoundi ngBox, FloatRect& paintInvalidationBoundingBox);
73 73
74 // Important functions used by nearly all SVG renderers centralizing coordin ate transformations / paint invalidation rect calculations 74 // Important functions used by nearly all SVG renderers centralizing coordin ate transformations / paint invalidation rect calculations
75 static LayoutRect clippedOverflowRectForPaintInvalidation(const LayoutObject *, const LayoutLayerModelObject* paintInvalidationContainer, const PaintInvalida tionState*); 75 static LayoutRect clippedOverflowRectForPaintInvalidation(const LayoutObject *, const LayoutLayerModelObject* paintInvalidationContainer, const PaintInvalida tionState*);
76 static const RenderSVGRoot& mapRectToSVGRootForPaintInvalidation(const Layou tObject*, const FloatRect& localPaintInvalidationRect, LayoutRect&); 76 static const LayoutSVGRoot& mapRectToSVGRootForPaintInvalidation(const Layou tObject*, const FloatRect& localPaintInvalidationRect, LayoutRect&);
77 static void mapLocalToContainer(const LayoutObject*, const LayoutLayerModelO bject* paintInvalidationContainer, TransformState&, bool* wasFixed = 0, const Pa intInvalidationState* = 0); 77 static void mapLocalToContainer(const LayoutObject*, const LayoutLayerModelO bject* paintInvalidationContainer, TransformState&, bool* wasFixed = 0, const Pa intInvalidationState* = 0);
78 static const LayoutObject* pushMappingToContainer(const LayoutObject*, const LayoutLayerModelObject* ancestorToStopAt, LayoutGeometryMap&); 78 static const LayoutObject* pushMappingToContainer(const LayoutObject*, const LayoutLayerModelObject* ancestorToStopAt, LayoutGeometryMap&);
79 79
80 // Shared between SVG renderers and resources. 80 // Shared between SVG renderers and resources.
81 static void applyStrokeStyleToContext(GraphicsContext&, const LayoutStyle&, const LayoutObject&); 81 static void applyStrokeStyleToContext(GraphicsContext&, const LayoutStyle&, const LayoutObject&);
82 static void applyStrokeStyleToStrokeData(StrokeData&, const LayoutStyle&, co nst LayoutObject&); 82 static void applyStrokeStyleToStrokeData(StrokeData&, const LayoutStyle&, co nst LayoutObject&);
83 83
84 // Update the GC state (on |paintInfo.context|) for painting |renderer| 84 // Update the GC state (on |paintInfo.context|) for painting |renderer|
85 // using |style|. |resourceMode| is used to decide between fill/stroke. 85 // using |style|. |resourceMode| is used to decide between fill/stroke.
86 // Previous state will be saved (if needed) using |stateSaver|. 86 // Previous state will be saved (if needed) using |stateSaver|.
87 static bool updateGraphicsContext(const PaintInfo&, GraphicsContextStateSave r&, const LayoutStyle&, LayoutObject&, LayoutSVGResourceMode, const AffineTransf orm* additionalPaintServerTransform = 0); 87 static bool updateGraphicsContext(const PaintInfo&, GraphicsContextStateSave r&, const LayoutStyle&, LayoutObject&, LayoutSVGResourceMode, const AffineTransf orm* additionalPaintServerTransform = 0);
88 88
89 // Determines if any ancestor's transform has changed. 89 // Determines if any ancestor's transform has changed.
90 static bool transformToRootChanged(LayoutObject*); 90 static bool transformToRootChanged(LayoutObject*);
91 91
92 // FIXME: These methods do not belong here. 92 // FIXME: These methods do not belong here.
93 static const RenderSVGRoot* findTreeRootObject(const LayoutObject*); 93 static const LayoutSVGRoot* findTreeRootObject(const LayoutObject*);
94 94
95 // Helper method for determining if a LayoutObject marked as text (isText()= = true) 95 // Helper method for determining if a LayoutObject marked as text (isText()= = true)
96 // can/will be rendered as part of a <text>. 96 // can/will be rendered as part of a <text>.
97 static bool isRenderableTextNode(const LayoutObject*); 97 static bool isRenderableTextNode(const LayoutObject*);
98 98
99 // Determines whether a svg node should isolate or not based on LayoutStyle. 99 // Determines whether a svg node should isolate or not based on LayoutStyle.
100 static bool willIsolateBlendingDescendantsForStyle(const LayoutStyle&); 100 static bool willIsolateBlendingDescendantsForStyle(const LayoutStyle&);
101 static bool willIsolateBlendingDescendantsForObject(const LayoutObject*); 101 static bool willIsolateBlendingDescendantsForObject(const LayoutObject*);
102 template<typename LayoutObjectType> 102 template<typename LayoutObjectType>
103 static bool computeHasNonIsolatedBlendingDescendants(const LayoutObjectType* ); 103 static bool computeHasNonIsolatedBlendingDescendants(const LayoutObjectType* );
(...skipping 23 matching lines...) Expand all
127 return true; 127 return true;
128 if (child->hasNonIsolatedBlendingDescendants() && !willIsolateBlendingDe scendantsForObject(child)) 128 if (child->hasNonIsolatedBlendingDescendants() && !willIsolateBlendingDe scendantsForObject(child))
129 return true; 129 return true;
130 } 130 }
131 return false; 131 return false;
132 } 132 }
133 133
134 } // namespace blink 134 } // namespace blink
135 135
136 #endif // SVGLayoutSupport_h 136 #endif // SVGLayoutSupport_h
OLDNEW
« no previous file with comments | « Source/core/layout/svg/LayoutSVGViewportContainer.h ('k') | Source/core/layout/svg/SVGLayoutSupport.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698