summaryrefslogtreecommitdiff
path: root/chromium/third_party/blink/renderer/core/paint/filter_effect_builder.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-06 12:48:11 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2020-10-13 09:33:43 +0000
commit7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3 (patch)
treefa14ba0ca8d2683ba2efdabd246dc9b18a1229c6 /chromium/third_party/blink/renderer/core/paint/filter_effect_builder.cc
parent79b4f909db1049fca459c07cca55af56a9b54fe3 (diff)
downloadqtwebengine-chromium-7b5b123ac58f58ffde0f4f6e488bcd09aa4decd3.tar.gz
BASELINE: Update Chromium to 84.0.4147.141
Change-Id: Ib85eb4cfa1cbe2b2b81e5022c8cad5c493969535 Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/third_party/blink/renderer/core/paint/filter_effect_builder.cc')
-rw-r--r--chromium/third_party/blink/renderer/core/paint/filter_effect_builder.cc23
1 files changed, 9 insertions, 14 deletions
diff --git a/chromium/third_party/blink/renderer/core/paint/filter_effect_builder.cc b/chromium/third_party/blink/renderer/core/paint/filter_effect_builder.cc
index 900b20688cf..9c77e9224ab 100644
--- a/chromium/third_party/blink/renderer/core/paint/filter_effect_builder.cc
+++ b/chromium/third_party/blink/renderer/core/paint/filter_effect_builder.cc
@@ -415,22 +415,17 @@ CompositorFilterOperations FilterEffectBuilder::BuildFilterOperations(
Filter* FilterEffectBuilder::BuildReferenceFilter(
const ReferenceFilterOperation& reference_operation,
- FilterEffect* previous_effect) const {
- SVGResource* resource = reference_operation.Resource();
- if (auto* filter =
- DynamicTo<SVGFilterElement>(resource ? resource->Target() : nullptr))
- return BuildReferenceFilter(*filter, previous_effect);
- return nullptr;
-}
-
-Filter* FilterEffectBuilder::BuildReferenceFilter(
- SVGFilterElement& filter_element,
FilterEffect* previous_effect,
SVGFilterGraphNodeMap* node_map) const {
+ SVGResource* resource = reference_operation.Resource();
+ auto* filter_element =
+ DynamicTo<SVGFilterElement>(resource ? resource->Target() : nullptr);
+ if (!filter_element)
+ return nullptr;
FloatRect filter_region =
SVGLengthContext::ResolveRectangle<SVGFilterElement>(
- &filter_element,
- filter_element.filterUnits()->CurrentValue()->EnumValue(),
+ filter_element,
+ filter_element->filterUnits()->CurrentValue()->EnumValue(),
reference_box_);
// TODO(fs): We rely on the presence of a node map here to opt-in to the
// check for an empty filter region. The reason for this is that we lack a
@@ -439,7 +434,7 @@ Filter* FilterEffectBuilder::BuildReferenceFilter(
return nullptr;
bool primitive_bounding_box_mode =
- filter_element.primitiveUnits()->CurrentValue()->EnumValue() ==
+ filter_element->primitiveUnits()->CurrentValue()->EnumValue() ==
SVGUnitTypes::kSvgUnitTypeObjectboundingbox;
Filter::UnitScaling unit_scaling =
primitive_bounding_box_mode ? Filter::kBoundingBox : Filter::kUserSpace;
@@ -449,7 +444,7 @@ Filter* FilterEffectBuilder::BuildReferenceFilter(
previous_effect = result->GetSourceGraphic();
SVGFilterBuilder builder(previous_effect, node_map, fill_flags_,
stroke_flags_);
- builder.BuildGraph(result, filter_element, reference_box_);
+ builder.BuildGraph(result, *filter_element, reference_box_);
result->SetLastEffect(builder.LastEffect());
return result;
}