1 // 2 // Copyright (c) 2016 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 // DisplayEGL.h: Common across EGL parts of platform specific egl::Display implementations 8 9 #ifndef LIBANGLE_RENDERER_GL_EGL_DISPLAYEGL_H_ 10 #define LIBANGLE_RENDERER_GL_EGL_DISPLAYEGL_H_ 11 12 #include "libANGLE/renderer/gl/DisplayGL.h" 13 #include "libANGLE/renderer/gl/egl/FunctionsEGL.h" 14 15 namespace rx 16 { 17 18 class DisplayEGL : public DisplayGL 19 { 20 public: 21 DisplayEGL(); 22 ~DisplayEGL() override; 23 24 std::string getVendorString() const override; 25 26 protected: 27 egl::Error initializeContext(const egl::AttributeMap &eglAttributes); 28 29 FunctionsEGL *mEGL; 30 EGLConfig mConfig; 31 EGLContext mContext; 32 FunctionsGL *mFunctionsGL; 33 34 private: 35 void generateExtensions(egl::DisplayExtensions *outExtensions) const override; 36 void generateCaps(egl::Caps *outCaps) const override; 37 38 const FunctionsGL *getFunctionsGL() const override; 39 }; 40 41 } // namespace rx 42 43 #endif /* LIBANGLE_RENDERER_GL_EGL_DISPLAYEGL_H_ */ 44