Chromium Code Reviews| Index: cc/surfaces/surface.h |
| diff --git a/cc/surfaces/surface.h b/cc/surfaces/surface.h |
| index 7614440fd9c08074f6c33d09a606e376c50ec030..f398f04da7404561e860796c868c1ef0b6dcb304 100644 |
| --- a/cc/surfaces/surface.h |
| +++ b/cc/surfaces/surface.h |
| @@ -41,6 +41,7 @@ class SurfaceFactory; |
| class CC_SURFACES_EXPORT Surface { |
| public: |
| using DrawCallback = SurfaceFactory::DrawCallback; |
| + using WillDrawCallback = SurfaceFactory::WillDrawCallback; |
| Surface(const SurfaceId& id, base::WeakPtr<SurfaceFactory> factory); |
| ~Surface(); |
| @@ -52,7 +53,9 @@ class CC_SURFACES_EXPORT Surface { |
| void SetPreviousFrameSurface(Surface* surface); |
| - void QueueFrame(CompositorFrame frame, const DrawCallback& draw_callback); |
| + void QueueFrame(CompositorFrame frame, |
|
danakj
2017/04/20 17:56:45
Can you add a comment explaining what these 2 call
Alex Z.
2017/04/20 18:10:21
Done.
|
| + const DrawCallback& draw_callback, |
| + const WillDrawCallback& will_draw_callback); |
| void EvictFrame(); |
| void RequestCopyOfOutput(std::unique_ptr<CopyOutputRequest> copy_request); |
| @@ -84,7 +87,8 @@ class CC_SURFACES_EXPORT Surface { |
| int frame_index() const { return frame_index_; } |
| void TakeLatencyInfo(std::vector<ui::LatencyInfo>* latency_info); |
| - void RunDrawCallbacks(); |
| + void RunDrawCallback(); |
| + void RunWillDrawCallback(const gfx::Rect& damage_rect); |
| base::WeakPtr<SurfaceFactory> factory() { return factory_; } |
| @@ -119,12 +123,15 @@ class CC_SURFACES_EXPORT Surface { |
| private: |
| struct FrameData { |
| - FrameData(CompositorFrame&& frame, const DrawCallback& draw_callback); |
| + FrameData(CompositorFrame&& frame, |
| + const DrawCallback& draw_callback, |
| + const WillDrawCallback& will_draw_callback); |
| FrameData(FrameData&& other); |
| ~FrameData(); |
| FrameData& operator=(FrameData&& other); |
| CompositorFrame frame; |
| DrawCallback draw_callback; |
| + WillDrawCallback will_draw_callback; |
| }; |
| void ActivatePendingFrame(); |