Index: cc/surfaces/display_scheduler.h |
diff --git a/cc/surfaces/display_scheduler.h b/cc/surfaces/display_scheduler.h |
index 76d21b8b260474a61d14312dfcb6c8c8574dd74f..ce03054987e2c56d4afc1406433c251b2cce2491 100644 |
--- a/cc/surfaces/display_scheduler.h |
+++ b/cc/surfaces/display_scheduler.h |
@@ -13,18 +13,22 @@ |
#include "base/single_thread_task_runner.h" |
#include "cc/output/renderer_settings.h" |
#include "cc/scheduler/begin_frame_source.h" |
+#include "cc/surfaces/surface_aggregator.h" |
#include "cc/surfaces/surface_id.h" |
#include "cc/surfaces/surfaces_export.h" |
namespace cc { |
class BeginFrameSource; |
+class SurfaceManager; |
class CC_SURFACES_EXPORT DisplaySchedulerClient { |
public: |
virtual ~DisplaySchedulerClient() {} |
virtual bool DrawAndSwap() = 0; |
+ virtual const SurfaceAggregator::SurfaceIndexMap& |
+ GetPreviousContainedSurfaces() = 0; |
}; |
class CC_SURFACES_EXPORT DisplayScheduler : public BeginFrameObserverBase { |
@@ -35,6 +39,7 @@ class CC_SURFACES_EXPORT DisplayScheduler : public BeginFrameObserverBase { |
void SetClient(DisplaySchedulerClient* client); |
void SetBeginFrameSource(BeginFrameSource* begin_frame_source); |
+ void SetSurfaceManager(SurfaceManager* surface_manager); |
void SetVisible(bool visible); |
void SetRootSurfaceResourcesLocked(bool locked); |
@@ -42,6 +47,7 @@ class CC_SURFACES_EXPORT DisplayScheduler : public BeginFrameObserverBase { |
virtual void DisplayResized(); |
virtual void SetNewRootSurface(const SurfaceId& root_surface_id); |
virtual void SurfaceDamaged(const SurfaceId& surface_id); |
+ void OnSurfaceProducerStateChanged(const SurfaceId& surface_id); |
virtual void DidSwapBuffers(); |
void DidReceiveSwapBuffersAck(); |
@@ -62,9 +68,11 @@ class CC_SURFACES_EXPORT DisplayScheduler : public BeginFrameObserverBase { |
void StopObservingBeginFrames(); |
bool ShouldDraw(); |
void DidFinishFrame(bool did_draw); |
+ void UpdateHasPendingSurfaces(); |
DisplaySchedulerClient* client_; |
BeginFrameSource* begin_frame_source_; |
+ SurfaceManager* surface_manager_; |
base::SingleThreadTaskRunner* task_runner_; |
BeginFrameArgs current_begin_frame_args_; |
@@ -82,7 +90,7 @@ class CC_SURFACES_EXPORT DisplayScheduler : public BeginFrameObserverBase { |
bool inside_begin_frame_deadline_interval_; |
bool needs_draw_; |
bool expecting_root_surface_damage_because_of_resize_; |
sunnyps
2017/05/19 03:46:34
DisplayScheduler needs a map<SurfaceId, BeginFrame
Eric Seckler
2017/05/19 14:11:42
I'm not sure whether you were suggesting this, but
|
- bool all_active_child_surfaces_ready_to_draw_; |
+ bool has_pending_surfaces_; |
int next_swap_id_; |
int pending_swaps_; |
@@ -91,12 +99,6 @@ class CC_SURFACES_EXPORT DisplayScheduler : public BeginFrameObserverBase { |
bool observing_begin_frame_source_; |
SurfaceId root_surface_id_; |
- bool root_surface_damaged_; |
- bool expect_damage_from_root_surface_; |
- |
- std::set<SurfaceId> child_surface_ids_damaged_; |
- std::set<SurfaceId> child_surface_ids_damaged_prev_; |
- std::vector<SurfaceId> child_surface_ids_to_expect_damage_from_; |
base::WeakPtrFactory<DisplayScheduler> weak_ptr_factory_; |