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