| Index: ui/ozone/platform/dri/gbm_surfaceless.cc
|
| diff --git a/ui/ozone/platform/dri/gbm_surfaceless.cc b/ui/ozone/platform/dri/gbm_surfaceless.cc
|
| index b3748445a369b53d97866b759da0455c26cc4c0d..a6adb9edf084ba25d7eceed3e1b05f4731c522d0 100644
|
| --- a/ui/ozone/platform/dri/gbm_surfaceless.cc
|
| +++ b/ui/ozone/platform/dri/gbm_surfaceless.cc
|
| @@ -8,11 +8,13 @@
|
| #include "ui/ozone/platform/dri/dri_window_delegate.h"
|
| #include "ui/ozone/platform/dri/gbm_buffer.h"
|
| #include "ui/ozone/platform/dri/hardware_display_controller.h"
|
| +#include "ui/ozone/platform/dri/page_flip_event_handler.h"
|
|
|
| namespace ui {
|
|
|
| -GbmSurfaceless::GbmSurfaceless(DriWindowDelegate* window_delegate)
|
| - : window_delegate_(window_delegate) {
|
| +GbmSurfaceless::GbmSurfaceless(DriWindowDelegate* window_delegate,
|
| + PageFlipEventHandler* handler)
|
| + : window_delegate_(window_delegate), flip_handler_(handler) {
|
| }
|
|
|
| GbmSurfaceless::~GbmSurfaceless() {}
|
| @@ -33,7 +35,11 @@ bool GbmSurfaceless::OnSwapBuffers() {
|
| return true;
|
|
|
| bool success = controller->SchedulePageFlip();
|
| - controller->WaitForPageFlipEvent();
|
| +
|
| + if (flip_handler_)
|
| + flip_handler_->GetPageFlipCompleted(controller, callback_);
|
| + else
|
| + controller->WaitForPageFlipEvent();
|
|
|
| return success;
|
| }
|
| @@ -42,4 +48,9 @@ scoped_ptr<gfx::VSyncProvider> GbmSurfaceless::CreateVSyncProvider() {
|
| return scoped_ptr<gfx::VSyncProvider>(new DriVSyncProvider(window_delegate_));
|
| }
|
|
|
| +void GbmSurfaceless::SetPageFlipCompletionCallback(
|
| + const PageFlipCompletionCallback& callback) {
|
| + callback_ = callback;
|
| +}
|
| +
|
| } // namespace ui
|
|
|