diff options
author | jbauman <jbauman@chromium.org> | 2015-01-26 18:53:00 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2015-01-27 02:53:41 +0000 |
commit | c247da12fcca15fdcc948024287b94d6e63e9784 (patch) | |
tree | a70d6b32500dab15367155ce8ffe428a86a6fb85 /cc/surfaces/surface.cc | |
parent | 474ba4f54ed0c050a74c35ec7ec73d849bc9f6ee (diff) | |
download | chromium_src-c247da12fcca15fdcc948024287b94d6e63e9784.zip chromium_src-c247da12fcca15fdcc948024287b94d6e63e9784.tar.gz chromium_src-c247da12fcca15fdcc948024287b94d6e63e9784.tar.bz2 |
Run draw callback immediately if no Display is damaged.
This may cause the draw callback to be run earlier than before if the Surface would later be added to a Display, but prevents it ensures that the callback runs if the Surface wouldn't be drawn at all
BUG=440269
Review URL: https://codereview.chromium.org/792383004
Cr-Commit-Position: refs/heads/master@{#313212}
Diffstat (limited to 'cc/surfaces/surface.cc')
-rw-r--r-- | cc/surfaces/surface.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/cc/surfaces/surface.cc b/cc/surfaces/surface.cc index 98ae58c..25f3114 100644 --- a/cc/surfaces/surface.cc +++ b/cc/surfaces/surface.cc @@ -34,7 +34,7 @@ Surface::~Surface() { factory_->UnrefResources(current_resources); } if (!draw_callback_.is_null()) - draw_callback_.Run(false); + draw_callback_.Run(SurfaceDrawStatus::DRAW_SKIPPED); } void Surface::QueueFrame(scoped_ptr<CompositorFrame> frame, @@ -56,7 +56,7 @@ void Surface::QueueFrame(scoped_ptr<CompositorFrame> frame, factory_->UnrefResources(previous_resources); } if (!draw_callback_.is_null()) - draw_callback_.Run(false); + draw_callback_.Run(SurfaceDrawStatus::DRAW_SKIPPED); draw_callback_ = callback; factory_->manager()->DidSatisfySequences( SurfaceIdAllocator::NamespaceForId(surface_id_), @@ -106,11 +106,11 @@ void Surface::TakeLatencyInfo(std::vector<ui::LatencyInfo>* latency_info) { current_frame_->metadata.latency_info.clear(); } -void Surface::RunDrawCallbacks() { +void Surface::RunDrawCallbacks(SurfaceDrawStatus drawn) { if (!draw_callback_.is_null()) { DrawCallback callback = draw_callback_; draw_callback_ = DrawCallback(); - callback.Run(true); + callback.Run(drawn); } } |