Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(200)

Unified Diff: ui/ozone/platform/drm/gpu/page_flip_request.cc

Issue 1084173004: Adding status to swap complete (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: rebase, separate out use of the result, add enum Created 5 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: ui/ozone/platform/drm/gpu/page_flip_request.cc
diff --git a/ui/ozone/platform/drm/gpu/page_flip_request.cc b/ui/ozone/platform/drm/gpu/page_flip_request.cc
index dfca208874abcfd17c8d9941362c1b202328aa7d..d52573ba6ff8273477307b9a1406efc7cd8caafe 100644
--- a/ui/ozone/platform/drm/gpu/page_flip_request.cc
+++ b/ui/ozone/platform/drm/gpu/page_flip_request.cc
@@ -8,15 +8,22 @@
namespace ui {
-PageFlipRequest::PageFlipRequest(int crtc_count, const base::Closure& callback)
- : callback_(base::BarrierClosure(crtc_count, callback)) {
+PageFlipRequest::PageFlipRequest(
+ int crtc_count,
+ const base::Callback<void(gfx::SwapResult)>& callback)
+ : callback_(callback), count_(crtc_count), result_(gfx::SwapAck) {
}
PageFlipRequest::~PageFlipRequest() {
}
-void PageFlipRequest::Signal() {
- callback_.Run();
+void PageFlipRequest::Signal(gfx::SwapResult result) {
+ if (result != gfx::SwapAck)
alexst (slow to review) 2015/04/29 17:53:37 If one of these fails, we should fail. If we get f
achaulk 2015/05/06 18:29:48 Done.
+ result_ = result;
+ if (!base::AtomicRefCountDec(&count_)) {
+ callback_.Run(result_);
+ callback_.Reset();
+ }
}
} // namespace ui

Powered by Google App Engine
This is Rietveld 408576698