Index: cc/surfaces/surface.cc |
diff --git a/cc/surfaces/surface.cc b/cc/surfaces/surface.cc |
index 173218c2e8e8aa349cdee2cd4a6a371e218355bc..73181292cc176e0253e83de0cde55330f40ed5f7 100644 |
--- a/cc/surfaces/surface.cc |
+++ b/cc/surfaces/surface.cc |
@@ -24,6 +24,7 @@ static const int kFrameIndexStart = 2; |
Surface::Surface(SurfaceId id, SurfaceFactory* factory) |
: surface_id_(id), |
+ previous_frame_surface_id_(id), |
factory_(factory->AsWeakPtr()), |
frame_index_(kFrameIndexStart), |
destroyed_(false) {} |
@@ -41,6 +42,12 @@ Surface::~Surface() { |
draw_callback_.Run(SurfaceDrawStatus::DRAW_SKIPPED); |
} |
+void Surface::SetPreviousFrameSurface(Surface* surface) { |
+ DCHECK(surface); |
+ frame_index_ = surface->frame_index() + 1; |
+ previous_frame_surface_id_ = surface->surface_id(); |
+} |
+ |
void Surface::QueueFrame(std::unique_ptr<CompositorFrame> frame, |
const DrawCallback& callback) { |
DCHECK(factory_); |
@@ -64,6 +71,8 @@ void Surface::QueueFrame(std::unique_ptr<CompositorFrame> frame, |
!current_frame_->delegated_frame_data->render_pass_list.empty()) |
++frame_index_; |
+ previous_frame_surface_id_ = surface_id(); |
+ |
std::vector<SurfaceId> new_referenced_surfaces; |
if (current_frame_) { |
new_referenced_surfaces = current_frame_->metadata.referenced_surfaces; |