diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-07-31 15:50:41 +0200 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2019-08-30 12:35:23 +0000 |
commit | 7b2ffa587235a47d4094787d72f38102089f402a (patch) | |
tree | 30e82af9cbab08a7fa028bb18f4f2987a3f74dfa /chromium/cc/trees/effect_node.cc | |
parent | d94af01c90575348c4e81a418257f254b6f8d225 (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.cc | 73 |
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); |