summaryrefslogtreecommitdiffstats
path: root/chromium/cc/trees/effect_node.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2019-07-31 15:50:41 +0200
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-08-30 12:35:23 +0000
commit7b2ffa587235a47d4094787d72f38102089f402a (patch)
tree30e82af9cbab08a7fa028bb18f4f2987a3f74dfa /chromium/cc/trees/effect_node.cc
parentd94af01c90575348c4e81a418257f254b6f8d225 (diff)
BASELINE: Update Chromium to 76.0.3809.94
Change-Id: I321c3f5f929c105aec0f98c5091ef6108822e647 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/cc/trees/effect_node.cc')
-rw-r--r--chromium/cc/trees/effect_node.cc73
1 files changed, 69 insertions, 4 deletions
diff --git a/chromium/cc/trees/effect_node.cc b/chromium/cc/trees/effect_node.cc
index 3701e4c41f2..8c7a016eee4 100644
--- a/chromium/cc/trees/effect_node.cc
+++ b/chromium/cc/trees/effect_node.cc
@@ -17,7 +17,6 @@ EffectNode::EffectNode()
screen_space_opacity(1.f),
backdrop_filter_quality(1.f),
blend_mode(SkBlendMode::kSrcOver),
- has_render_surface(false),
cache_render_surface(false),
has_copy_request(false),
hidden_by_backface_visibility(false),
@@ -26,14 +25,17 @@ EffectNode::EffectNode()
is_drawn(true),
subtree_hidden(false),
has_potential_filter_animation(false),
+ has_potential_backdrop_filter_animation(false),
has_potential_opacity_animation(false),
is_currently_animating_filter(false),
+ is_currently_animating_backdrop_filter(false),
is_currently_animating_opacity(false),
has_masking_child(false),
is_masked(false),
effect_changed(false),
subtree_has_copy_request(false),
is_fast_rounded_corner(false),
+ render_surface_reason(RenderSurfaceReason::kNone),
transform_id(0),
clip_id(0),
target_id(1),
@@ -43,12 +45,13 @@ EffectNode::EffectNode()
EffectNode::EffectNode(const EffectNode& other) = default;
+EffectNode::~EffectNode() = default;
+
bool EffectNode::operator==(const EffectNode& other) const {
return id == other.id && parent_id == other.parent_id &&
stable_id == other.stable_id && opacity == other.opacity &&
screen_space_opacity == other.screen_space_opacity &&
backdrop_filter_quality == other.backdrop_filter_quality &&
- has_render_surface == other.has_render_surface &&
cache_render_surface == other.cache_render_surface &&
has_copy_request == other.has_copy_request &&
filters == other.filters &&
@@ -57,6 +60,9 @@ bool EffectNode::operator==(const EffectNode& other) const {
filters_origin == other.filters_origin &&
rounded_corner_bounds == other.rounded_corner_bounds &&
is_fast_rounded_corner == other.is_fast_rounded_corner &&
+ // The specific reason is just for tracing/testing/debugging, so just
+ // check whether a render surface is needed.
+ HasRenderSurface() == other.HasRenderSurface() &&
blend_mode == other.blend_mode &&
surface_contents_scale == other.surface_contents_scale &&
unscaled_mask_target_size == other.unscaled_mask_target_size &&
@@ -66,9 +72,13 @@ bool EffectNode::operator==(const EffectNode& other) const {
is_drawn == other.is_drawn && subtree_hidden == other.subtree_hidden &&
has_potential_filter_animation ==
other.has_potential_filter_animation &&
+ has_potential_backdrop_filter_animation ==
+ other.has_potential_backdrop_filter_animation &&
has_potential_opacity_animation ==
other.has_potential_opacity_animation &&
is_currently_animating_filter == other.is_currently_animating_filter &&
+ is_currently_animating_backdrop_filter ==
+ other.is_currently_animating_backdrop_filter &&
is_currently_animating_opacity ==
other.is_currently_animating_opacity &&
has_masking_child == other.has_masking_child &&
@@ -83,6 +93,54 @@ bool EffectNode::operator==(const EffectNode& other) const {
other.closest_ancestor_with_copy_request_id;
}
+const char* RenderSurfaceReasonToString(RenderSurfaceReason reason) {
+ switch (reason) {
+ case RenderSurfaceReason::kNone:
+ return "none";
+ case RenderSurfaceReason::kRoot:
+ return "root";
+ case RenderSurfaceReason::k3dTransformFlattening:
+ return "3d transform flattening";
+ case RenderSurfaceReason::kBlendMode:
+ return "blend mode";
+ case RenderSurfaceReason::kBlendModeDstIn:
+ return "blend mode kDstIn";
+ case RenderSurfaceReason::kOpacity:
+ return "opacity";
+ case RenderSurfaceReason::kOpacityAnimation:
+ return "opacity animation";
+ case RenderSurfaceReason::kFilter:
+ return "filter";
+ case RenderSurfaceReason::kFilterAnimation:
+ return "filter animation";
+ case RenderSurfaceReason::kBackdropFilter:
+ return "backdrop filter";
+ case RenderSurfaceReason::kBackdropFilterAnimation:
+ return "backdrop filter animation";
+ case RenderSurfaceReason::kRoundedCorner:
+ return "rounded corner";
+ case RenderSurfaceReason::kClipPath:
+ return "clip path";
+ case RenderSurfaceReason::kClipAxisAlignment:
+ return "clip axis alignment";
+ case RenderSurfaceReason::kMask:
+ return "mask";
+ case RenderSurfaceReason::kRootOrIsolatedGroup:
+ return "root or isolated group";
+ case RenderSurfaceReason::kTrilinearFiltering:
+ return "trilinear filtering";
+ case RenderSurfaceReason::kCache:
+ return "cache";
+ case RenderSurfaceReason::kCopyRequest:
+ return "copy request";
+ case RenderSurfaceReason::kTest:
+ return "test";
+ default:
+ NOTREACHED() << static_cast<int>(reason);
+ return "";
+ }
+}
+
void EffectNode::AsValueInto(base::trace_event::TracedValue* value) const {
value->SetInteger("id", id);
value->SetInteger("parent_id", parent_id);
@@ -90,8 +148,11 @@ void EffectNode::AsValueInto(base::trace_event::TracedValue* value) const {
value->SetDouble("opacity", opacity);
value->SetDouble("backdrop_filter_quality", backdrop_filter_quality);
value->SetBoolean("is_fast_rounded_corner", is_fast_rounded_corner);
+ if (!rounded_corner_bounds.IsEmpty()) {
+ MathUtil::AddToTracedValue("rounded_corner_bounds", rounded_corner_bounds,
+ value);
+ }
value->SetString("blend_mode", SkBlendMode_Name(blend_mode));
- value->SetBoolean("has_render_surface", has_render_surface);
value->SetBoolean("cache_render_surface", cache_render_surface);
value->SetBoolean("has_copy_request", has_copy_request);
value->SetBoolean("double_sided", double_sided);
@@ -99,12 +160,16 @@ void EffectNode::AsValueInto(base::trace_event::TracedValue* value) const {
value->SetBoolean("is_drawn", is_drawn);
value->SetBoolean("has_potential_filter_animation",
has_potential_filter_animation);
+ value->SetBoolean("has_potential_backdrop_filter_animation",
+ has_potential_backdrop_filter_animation);
value->SetBoolean("has_potential_opacity_animation",
has_potential_opacity_animation);
value->SetBoolean("has_masking_child", has_masking_child);
value->SetBoolean("is_masked", is_masked);
value->SetBoolean("effect_changed", effect_changed);
- value->SetInteger("subtree_has_copy_request", subtree_has_copy_request);
+ value->SetBoolean("subtree_has_copy_request", subtree_has_copy_request);
+ value->SetString("render_surface_reason",
+ RenderSurfaceReasonToString(render_surface_reason));
value->SetInteger("transform_id", transform_id);
value->SetInteger("clip_id", clip_id);
value->SetInteger("target_id", target_id);