Chromium Code Reviews| Index: cc/surfaces/surface_manager.cc |
| diff --git a/cc/surfaces/surface_manager.cc b/cc/surfaces/surface_manager.cc |
| index 9875d04d29debce79e941266f16c4eff507e1ed6..d741645a40b516bb4fbf9541577c6375e1474058 100644 |
| --- a/cc/surfaces/surface_manager.cc |
| +++ b/cc/surfaces/surface_manager.cc |
| @@ -118,6 +118,8 @@ std::unique_ptr<Surface> SurfaceManager::CreateSurface( |
| void SurfaceManager::DestroySurface(std::unique_ptr<Surface> surface) { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| surface->set_destroyed(true); |
| + for (auto& observer : observer_list_) |
|
sunnyps
2017/05/25 20:49:13
nit: Why OnSurfaceDestroyed in addition to OnSurfa
Eric Seckler
2017/05/26 10:57:52
I want to avoid waiting for destroyed Surfaces (th
|
| + observer.OnSurfaceDestroyed(surface->surface_id()); |
| surfaces_to_destroy_.push_back(std::move(surface)); |
| GarbageCollectSurfaces(); |
| } |
| @@ -453,11 +455,12 @@ Surface* SurfaceManager::GetSurfaceForId(const SurfaceId& surface_id) { |
| return it->second; |
| } |
| -bool SurfaceManager::SurfaceModified(const SurfaceId& surface_id) { |
| +bool SurfaceManager::SurfaceModified(const SurfaceId& surface_id, |
| + const BeginFrameAck& ack) { |
| CHECK(thread_checker_.CalledOnValidThread()); |
| bool changed = false; |
| for (auto& observer : observer_list_) |
| - observer.OnSurfaceDamaged(surface_id, &changed); |
| + observer.OnSurfaceDamaged(surface_id, ack, &changed); |
| return changed; |
| } |
| @@ -500,6 +503,13 @@ void SurfaceManager::SurfaceDiscarded(Surface* surface) { |
| dependency_tracker_->OnSurfaceDiscarded(surface); |
| } |
| +void SurfaceManager::SurfaceDamageExpected(const SurfaceId& surface_id, |
| + const BeginFrameArgs& args) { |
| + DCHECK(thread_checker_.CalledOnValidThread()); |
| + for (auto& observer : observer_list_) |
| + observer.OnSurfaceDamageExpected(surface_id, args); |
| +} |
| + |
| void SurfaceManager::UnregisterSurface(const SurfaceId& surface_id) { |
| DCHECK(thread_checker_.CalledOnValidThread()); |
| SurfaceMap::iterator it = surface_map_.find(surface_id); |