summaryrefslogtreecommitdiffstats
path: root/ui/ozone/platform/drm/gpu/gbm_device.cc
blob: 303450b26c700881e8bc984721bbb3b3f55248f0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// Copyright 2015 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#include "ui/ozone/platform/drm/gpu/gbm_device.h"

#include <gbm.h>

namespace ui {

GbmDevice::GbmDevice(const base::FilePath& device_path)
    : DrmDevice(device_path), device_(nullptr) {
}

GbmDevice::GbmDevice(const base::FilePath& device_path, base::File file)
    : DrmDevice(device_path, file.Pass()), device_(nullptr) {
}

GbmDevice::~GbmDevice() {
  if (device_)
    gbm_device_destroy(device_);
}

bool GbmDevice::Initialize() {
  if (!DrmDevice::Initialize())
    return false;

  device_ = gbm_create_device(get_fd());
  if (!device_) {
    PLOG(ERROR) << "Unable to initialize GBM";
    return false;
  }

  return true;
}

}  // namespace ui