Index: cc/surfaces/surface.h |
diff --git a/cc/surfaces/surface.h b/cc/surfaces/surface.h |
index 8ef332ecb79756735b8f6760d23b34d954d973cd..18ca7442af6b4cd74a5a0d47e6a89b5be4af426b 100644 |
--- a/cc/surfaces/surface.h |
+++ b/cc/surfaces/surface.h |
@@ -6,6 +6,7 @@ |
#define CC_SURFACES_SURFACE_H_ |
#include <map> |
+#include <set> |
#include <vector> |
#include "base/callback.h" |
@@ -80,8 +81,12 @@ class CC_SURFACES_EXPORT Surface { |
bool destroyed() const { return destroyed_; } |
void set_destroyed(bool destroyed) { destroyed_ = destroyed; } |
+ void AddBeginFrameSource(BeginFrameSource* begin_frame_source); |
+ void RemoveBeginFrameSource(BeginFrameSource* begin_frame_source); |
+ |
private: |
void ClearCopyRequests(); |
+ void UpdatePrimaryBeginFrameSource(); |
SurfaceId surface_id_; |
base::WeakPtr<SurfaceFactory> factory_; |
@@ -91,6 +96,10 @@ class CC_SURFACES_EXPORT Surface { |
bool destroyed_; |
std::vector<SurfaceSequence> destruction_dependencies_; |
+ // This surface may have multiple BeginFrameSources if it is |
+ // on multiple Displays. |
+ std::set<BeginFrameSource*> begin_frame_sources_; |
+ |
std::vector<SurfaceId> referenced_surfaces_; |
DrawCallback draw_callback_; |