Commit 4e77c150 authored by Mohsen Izadi's avatar Mohsen Izadi Committed by Commit Bot

Revert "Damage rect for multiply-embedded surfaces in SurfaceAggregator"

This reverts commit fc049467. This
causes some issues with backdrop filters (crbug/986206).

This also reverts commit a843bfee which
landed some cleanups after the above commit.

TBR=kylechar
BUG=986206

Change-Id: I4bca9752808da555f856bfeeb1ab1516b5e4efb3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/1713442
Commit-Queue: Mohsen Izadi <mohsen@chromium.org>
Reviewed-by: default avatarMohsen Izadi <mohsen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#679856}
parent c2afde6c
...@@ -64,11 +64,25 @@ class VIZ_SERVICE_EXPORT SurfaceAggregator { ...@@ -64,11 +64,25 @@ class VIZ_SERVICE_EXPORT SurfaceAggregator {
bool NotifySurfaceDamageAndCheckForDisplayDamage(const SurfaceId& surface_id); bool NotifySurfaceDamageAndCheckForDisplayDamage(const SurfaceId& surface_id);
private: private:
struct ClipData; struct ClipData {
struct PrewalkResult; ClipData() : is_clipped(false) {}
struct RoundedCornerInfo; ClipData(bool is_clipped, const gfx::Rect& rect)
struct ChildSurfaceInfo; : is_clipped(is_clipped), rect(rect) {}
struct RenderPassMapEntry;
std::string ToString() const;
bool is_clipped;
gfx::Rect rect;
};
struct PrewalkResult {
PrewalkResult();
~PrewalkResult();
// This is the set of Surfaces that were referenced by another Surface, but
// not included in a SurfaceDrawQuad.
base::flat_set<SurfaceId> undrawn_surfaces;
bool may_contain_video = false;
};
struct RenderPassInfo { struct RenderPassInfo {
// This is the id the pass is mapped to. // This is the id the pass is mapped to.
...@@ -77,6 +91,20 @@ class VIZ_SERVICE_EXPORT SurfaceAggregator { ...@@ -77,6 +91,20 @@ class VIZ_SERVICE_EXPORT SurfaceAggregator {
bool in_use = true; bool in_use = true;
}; };
struct RoundedCornerInfo {
RoundedCornerInfo() : is_fast_rounded_corner(false) {}
// |target_transform| is the transform that maps |bounds| from its current
// space into the desired target space. It must be a scale+translation
// matrix.
RoundedCornerInfo(const gfx::RRectF& bounds,
bool is_fast_rounded_corner,
const gfx::Transform target_transform);
bool IsEmpty() const { return bounds.IsEmpty(); }
gfx::RRectF bounds;
bool is_fast_rounded_corner;
};
ClipData CalculateClipRect(const ClipData& surface_clip, ClipData CalculateClipRect(const ClipData& surface_clip,
const ClipData& quad_clip, const ClipData& quad_clip,
const gfx::Transform& target_transform); const gfx::Transform& target_transform);
...@@ -160,14 +188,6 @@ class VIZ_SERVICE_EXPORT SurfaceAggregator { ...@@ -160,14 +188,6 @@ class VIZ_SERVICE_EXPORT SurfaceAggregator {
const gfx::Rect& occluding_damage_rect, const gfx::Rect& occluding_damage_rect,
bool occluding_damage_rect_valid); bool occluding_damage_rect_valid);
void FindChildSurfaces(
SurfaceId surface_id,
base::flat_map<RenderPassId, RenderPassMapEntry>* render_pass_map,
const base::flat_set<RenderPassId>& pixel_moving_background_filter_passes,
const gfx::Transform& parent_transform,
RenderPassId render_pass_id,
base::flat_map<SurfaceRange, ChildSurfaceInfo>* child_surfaces,
gfx::Rect* pixel_moving_backdrop_filters_rect);
gfx::Rect PrewalkTree(Surface* surface, gfx::Rect PrewalkTree(Surface* surface,
bool in_moved_pixel_surface, bool in_moved_pixel_surface,
int parent_pass, int parent_pass,
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment