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