#include "third_party/blink/renderer/core/layout/svg/svg_layout_support.h"
#include "third_party/blink/renderer/core/layout/geometry/transform_state.h"
#include "third_party/blink/renderer/core/layout/hit_test_location.h"
#include "third_party/blink/renderer/core/layout/svg/layout_svg_inline_text.h"
#include "third_party/blink/renderer/core/layout/svg/layout_svg_resource_clipper.h"
#include "third_party/blink/renderer/core/layout/svg/layout_svg_resource_masker.h"
#include "third_party/blink/renderer/core/layout/svg/layout_svg_root.h"
#include "third_party/blink/renderer/core/layout/svg/svg_resources.h"
#include "third_party/blink/renderer/core/paint/css_mask_painter.h"
#include "third_party/blink/renderer/core/paint/outline_painter.h"
#include "third_party/blink/renderer/core/paint/paint_layer.h"
#include "third_party/blink/renderer/core/svg/svg_element.h"
#include "third_party/blink/renderer/core/svg/svg_length_functions.h"
#include "third_party/blink/renderer/platform/graphics/stroke_data.h"
#include "third_party/blink/renderer/platform/heap/collection_support/clear_collection_scope.h"
#include "third_party/blink/renderer/platform/wtf/math_extras.h"
#include "ui/gfx/geometry/rect_conversions.h"
namespace blink {
namespace {
AffineTransform DeprecatedCalculateTransformToLayer(
const LayoutObject* layout_object) { … }
}
struct SearchCandidate { … };
gfx::RectF SVGLayoutSupport::LocalVisualRect(const LayoutObject& object) { … }
PhysicalRect SVGLayoutSupport::VisualRectInAncestorSpace(
const LayoutObject& object,
const LayoutBoxModelObject& ancestor,
VisualRectFlags flags) { … }
static gfx::RectF MapToSVGRootIncludingFilter(
const LayoutObject& object,
const gfx::RectF& local_visual_rect) { … }
static const LayoutSVGRoot& ComputeTransformToSVGRoot(
const LayoutObject& object,
AffineTransform& root_border_box_transform,
bool* filter_skipped) { … }
bool SVGLayoutSupport::MapToVisualRectInAncestorSpace(
const LayoutObject& object,
const LayoutBoxModelObject* ancestor,
const gfx::RectF& local_visual_rect,
PhysicalRect& result_rect,
VisualRectFlags visual_rect_flags) { … }
void SVGLayoutSupport::MapLocalToAncestor(const LayoutObject* object,
const LayoutBoxModelObject* ancestor,
TransformState& transform_state,
MapCoordinatesFlags flags) { … }
void SVGLayoutSupport::MapAncestorToLocal(const LayoutObject& object,
const LayoutBoxModelObject* ancestor,
TransformState& transform_state,
MapCoordinatesFlags flags) { … }
bool SVGLayoutSupport::IsOverflowHidden(const LayoutObject& object) { … }
bool SVGLayoutSupport::IsOverflowHidden(const ComputedStyle& style) { … }
void SVGLayoutSupport::AdjustWithClipPathAndMask(
const LayoutObject& layout_object,
const gfx::RectF& object_bounding_box,
gfx::RectF& visual_rect) { … }
gfx::RectF SVGLayoutSupport::ExtendTextBBoxWithStroke(
const LayoutObject& layout_object,
const gfx::RectF& text_bounds) { … }
gfx::RectF SVGLayoutSupport::ComputeVisualRectForText(
const LayoutObject& layout_object,
const gfx::RectF& text_bounds) { … }
DashArray SVGLayoutSupport::ResolveSVGDashArray(
const SVGDashArray& svg_dash_array,
const ComputedStyle& style,
const SVGViewportResolver& viewport_resolver) { … }
void SVGLayoutSupport::ApplyStrokeStyleToStrokeData(StrokeData& stroke_data,
const ComputedStyle& style,
const LayoutObject& object,
float dash_scale_factor) { … }
bool SVGLayoutSupport::IsLayoutableTextNode(const LayoutObject* object) { … }
bool SVGLayoutSupport::WillIsolateBlendingDescendantsForStyle(
const ComputedStyle& style) { … }
bool SVGLayoutSupport::WillIsolateBlendingDescendantsForObject(
const LayoutObject* object) { … }
bool SVGLayoutSupport::IsIsolationRequired(const LayoutObject* object) { … }
AffineTransform SubtreeContentTransformScope::current_content_transformation_;
SubtreeContentTransformScope::SubtreeContentTransformScope(
const AffineTransform& subtree_content_transformation)
: … { … }
SubtreeContentTransformScope::~SubtreeContentTransformScope() { … }
float SVGLayoutSupport::CalculateScreenFontSizeScalingFactor(
const LayoutObject* layout_object) { … }
static inline bool CompareCandidateDistance(const SearchCandidate& r1,
const SearchCandidate& r2) { … }
static inline double DistanceToChildLayoutObject(LayoutObject* child,
const gfx::PointF& point) { … }
static SearchCandidate SearchTreeForFindClosestLayoutSVGText(
const LayoutObject* layout_object,
const gfx::PointF& point) { … }
LayoutObject* SVGLayoutSupport::FindClosestLayoutSVGText(
const LayoutObject* layout_object,
const gfx::PointF& point) { … }
}
WTF_ALLOW_CLEAR_UNUSED_SLOTS_WITH_MEM_FUNCTIONS(…)