1// Copyright 2013 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#ifndef UI_OZONE_PLATFORM_DRI_OZONE_PLATFORM_DRI_H_
6#define UI_OZONE_PLATFORM_DRI_OZONE_PLATFORM_DRI_H_
7
8#include "ui/events/ozone/evdev/event_factory.h"
9#include "ui/gfx/ozone/dri/dri_surface_factory.h"
10#include "ui/ozone/ozone_platform.h"
11
12namespace ui {
13
14// OzonePlatform for Linux DRI (Direct Rendering Infrastructure)
15//
16// This platform is Linux without any display server (no X, wayland, or
17// anything). This means chrome alone owns the display and input devices.
18class OzonePlatformDri : public OzonePlatform {
19 public:
20  OzonePlatformDri();
21  virtual ~OzonePlatformDri();
22
23  virtual gfx::SurfaceFactoryOzone* GetSurfaceFactoryOzone() OVERRIDE;
24  virtual ui::EventFactoryOzone* GetEventFactoryOzone() OVERRIDE;
25
26 private:
27  gfx::DriSurfaceFactory surface_factory_ozone_;
28  ui::EventFactoryEvdev event_factory_ozone_;
29
30  DISALLOW_COPY_AND_ASSIGN(OzonePlatformDri);
31};
32
33// Constructor hook for use in ozone_platform_list.cc
34OzonePlatform* CreateOzonePlatformDri();
35
36}  // namespace ui
37
38#endif  // UI_OZONE_PLATFORM_DRI_OZONE_PLATFORM_DRI_H_
39