[M120 Migration] Apply opacity/filter/border-radius for video hole. 18/306418/3
authorSun-woo Nam <sunny.nam@samsung.com>
Sun, 23 Apr 2023 09:12:41 +0000 (17:12 +0800)
committerBot Blink <blinkbot@samsung.com>
Thu, 22 Feb 2024 13:40:56 +0000 (13:40 +0000)
commit552a32a4138c06dc3ae0cac5d9798178b632a9e3
tree544819e6165986ffe989379665273a7660acbf94
parent0ae487c67caf45514a211a0243d57784a9d7a091
[M120 Migration] Apply opacity/filter/border-radius for video hole.

1. Pass video hole flag to DirectRenderer
2. Disable blend for border-radius case
3. Disable blend and use Black Quad with opacity to simulate
opacity effect.
4. Update render target id for filter effect node
If parent node set filter:brightness, chromium will
create a kFilter effect node. This effect node will create a
contribute render surface which will cover on video. So we need to
update it's render target, let it to render on the same surface with
video hole rectangle.
5. Implement opacity css
Update video layer's target render surface to it's parent target
In some special case, like disney+, Hoichoi.tv opacity animation
will cause opacity abnormal. opacity is 1.0f, but create render surface.

Reference:
https://review.tizen.org/gerrit/#/c/291821/
https://review.tizen.org/gerrit/#/c/292417/
https://review.tizen.org/gerrit/#/c/297840/
https://review.tizen.org/gerrit/#/c/302794/

Change-Id: I6b07af528bb5e912fabec2a7c8a831adb96fbec9
Signed-off-by: Sun-woo Nam <sunny.nam@samsung.com>
20 files changed:
cc/layers/layer_impl.h
cc/layers/video_layer_impl.cc
cc/layers/video_layer_impl.h
cc/trees/draw_property_utils.cc
cc/trees/effect_node.h
components/viz/common/quads/aggregated_render_pass.cc
components/viz/common/quads/aggregated_render_pass.h
components/viz/common/quads/compositor_render_pass.cc
components/viz/common/quads/compositor_render_pass.h
components/viz/common/quads/render_pass_internal.h
components/viz/common/transition_utils.cc
components/viz/service/display/direct_renderer.cc
components/viz/service/display/direct_renderer.h
components/viz/service/display/skia_renderer.cc
components/viz/service/display/surface_aggregator.cc
components/viz/service/display/surface_aggregator.h
services/viz/public/cpp/compositing/compositor_render_pass_mojom_traits.cc
services/viz/public/cpp/compositing/compositor_render_pass_mojom_traits.h
services/viz/public/mojom/BUILD.gn
services/viz/public/mojom/compositing/compositor_render_pass.mojom