1 // 2 // Copyright 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/Caps.h" 14 #include "libANGLE/Error.h" 15 16 namespace egl 17 { 18 class Display; 19 } 20 21 namespace rx 22 { 23 class DisplayImpl; 24 25 class DeviceImpl : angle::NonCopyable 26 { 27 public: 28 DeviceImpl(); 29 virtual ~DeviceImpl(); 30 31 virtual egl::Error initialize() = 0; 32 33 virtual egl::Error getAttribute(const egl::Display *display, 34 EGLint attribute, 35 void **outValue) = 0; 36 virtual EGLint getType() = 0; 37 virtual void generateExtensions(egl::DeviceExtensions *outExtensions) const = 0; 38 }; 39 40 } // namespace rx 41 42 #endif // LIBANGLE_RENDERER_DEVICEIMPL_H_ 43