1 //
2 // Copyright (c) 2015 The ANGLE Project Authors. All rights reserved.
3 // Use of this source code is governed by a BSD-style license that can be
4 // found in the LICENSE file.
5 //
6 
7 // DeviceImpl.h: Implementation methods of egl::Device
8 
9 #ifndef LIBANGLE_RENDERER_DEVICEIMPL_H_
10 #define LIBANGLE_RENDERER_DEVICEIMPL_H_
11 
12 #include "common/angleutils.h"
13 #include "libANGLE/Error.h"
14 #include "libANGLE/Caps.h"
15 
16 namespace egl
17 {
18 class Device;
19 }
20 
21 namespace rx
22 {
23 class DeviceImpl : angle::NonCopyable
24 {
25   public:
26     DeviceImpl();
27     virtual ~DeviceImpl();
28 
29     virtual egl::Error getDevice(void **outValue) = 0;
30     virtual EGLint getType() = 0;
31     virtual void generateExtensions(egl::DeviceExtensions *outExtensions) const = 0;
32     virtual bool deviceExternallySourced() = 0;
33 };
34 
35 }
36 
37 #endif // LIBANGLE_RENDERER_DEVICEIMPL_H_
38