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 12namespace ui { 13 14GbmSurfaceless::GbmSurfaceless(DriWindowDelegate* window_delegate) 15 : window_delegate_(window_delegate) { 16} 17 18GbmSurfaceless::~GbmSurfaceless() {} 19 20intptr_t GbmSurfaceless::GetNativeWindow() { 21 NOTREACHED(); 22 return 0; 23} 24 25bool GbmSurfaceless::ResizeNativeWindow(const gfx::Size& viewport_size) { 26 NOTIMPLEMENTED(); 27 return false; 28} 29 30bool 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 41scoped_ptr<gfx::VSyncProvider> GbmSurfaceless::CreateVSyncProvider() { 42 return scoped_ptr<gfx::VSyncProvider>(new DriVSyncProvider(window_delegate_)); 43} 44 45} // namespace ui 46