Home | History | Annotate | Download | only in dri
      1 // Copyright 2014 The Chromium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 #include "ui/ozone/platform/dri/gbm_surfaceless.h"
      6 
      7 #include "ui/ozone/platform/dri/dri_vsync_provider.h"
      8 #include "ui/ozone/platform/dri/dri_window_delegate.h"
      9 #include "ui/ozone/platform/dri/gbm_buffer.h"
     10 #include "ui/ozone/platform/dri/hardware_display_controller.h"
     11 
     12 namespace ui {
     13 
     14 GbmSurfaceless::GbmSurfaceless(DriWindowDelegate* window_delegate)
     15     : window_delegate_(window_delegate) {
     16 }
     17 
     18 GbmSurfaceless::~GbmSurfaceless() {}
     19 
     20 intptr_t GbmSurfaceless::GetNativeWindow() {
     21   NOTREACHED();
     22   return 0;
     23 }
     24 
     25 bool GbmSurfaceless::ResizeNativeWindow(const gfx::Size& viewport_size) {
     26   NOTIMPLEMENTED();
     27   return false;
     28 }
     29 
     30 bool GbmSurfaceless::OnSwapBuffers() {
     31   HardwareDisplayController* controller = window_delegate_->GetController();
     32   if (!controller)
     33     return true;
     34 
     35   bool success = controller->SchedulePageFlip();
     36   controller->WaitForPageFlipEvent();
     37 
     38   return success;
     39 }
     40 
     41 scoped_ptr<gfx::VSyncProvider> GbmSurfaceless::CreateVSyncProvider() {
     42   return scoped_ptr<gfx::VSyncProvider>(new DriVSyncProvider(window_delegate_));
     43 }
     44 
     45 }  // namespace ui
     46