summaryrefslogtreecommitdiffstats
path: root/cc/surfaces/surface.cc
diff options
context:
space:
mode:
authorjbauman <jbauman@chromium.org>2015-01-26 18:53:00 -0800
committerCommit bot <commit-bot@chromium.org>2015-01-27 02:53:41 +0000
commitc247da12fcca15fdcc948024287b94d6e63e9784 (patch)
treea70d6b32500dab15367155ce8ffe428a86a6fb85 /cc/surfaces/surface.cc
parent474ba4f54ed0c050a74c35ec7ec73d849bc9f6ee (diff)
downloadchromium_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.cc8
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);
}
}