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(); |