Upstream version 5.34.104.0
[platform/framework/web/crosswalk.git] / src / ui / ozone / platform / dri / ozone_platform_dri.h
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_evdev.h"
9 #include "ui/gfx/ozone/dri/dri_surface_factory.h"
10 #include "ui/ozone/ozone_platform.h"
11
12 namespace 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.
18 class OzonePlatformDri : public OzonePlatform {
19  public:
20   OzonePlatformDri();
21   virtual ~OzonePlatformDri();
22
23   virtual gfx::SurfaceFactoryOzone* GetSurfaceFactoryOzone() OVERRIDE;
24   virtual ui::EventFactoryOzone* GetEventFactoryOzone() OVERRIDE;
25   virtual ui::InputMethodContextFactoryOzone*
26       GetInputMethodContextFactoryOzone() OVERRIDE;
27
28  private:
29   gfx::DriSurfaceFactory surface_factory_ozone_;
30   ui::EventFactoryEvdev event_factory_ozone_;
31   // This creates a minimal input context.
32   ui::InputMethodContextFactoryOzone input_method_context_factory_ozone_;
33
34   DISALLOW_COPY_AND_ASSIGN(OzonePlatformDri);
35 };
36
37 // Constructor hook for use in ozone_platform_list.cc
38 OzonePlatform* CreateOzonePlatformDri();
39
40 }  // namespace ui
41
42 #endif  // UI_OZONE_PLATFORM_DRI_OZONE_PLATFORM_DRI_H_