surfaceflinger: support EGL extensions in GLExtensions
Add EGL_VERSION and EGL_EXTENSIONS support to GLExtensions. This
also remove the unused mHaveFramebufferObject and rename
getExtension to getExtensions.
Test: boots and dumpsys
Change-Id: I759508f05d3255fc97eba14d298fa92938bafa75
diff --git a/services/surfaceflinger/RenderEngine/GLExtensions.h b/services/surfaceflinger/RenderEngine/GLExtensions.h
index ee7b446..47f2f67 100644
--- a/services/surfaceflinger/RenderEngine/GLExtensions.h
+++ b/services/surfaceflinger/RenderEngine/GLExtensions.h
@@ -35,7 +35,7 @@
class GLExtensions : public Singleton<GLExtensions> {
friend class Singleton<GLExtensions>;
- bool mHaveFramebufferObject : 1;
+ bool mHasNoConfigContext = false;
String8 mVendor;
String8 mRenderer;
@@ -43,24 +43,33 @@
String8 mExtensions;
SortedVector<String8> mExtensionList;
+ String8 mEGLVersion;
+ String8 mEGLExtensions;
+ SortedVector<String8> mEGLExtensionList;
+
+ static SortedVector<String8> parseExtensionString(char const* extensions);
+
GLExtensions(const GLExtensions&);
GLExtensions& operator=(const GLExtensions&);
protected:
- GLExtensions();
+ GLExtensions() = default;
public:
- inline bool haveFramebufferObject() const { return mHaveFramebufferObject; }
+ bool hasNoConfigContext() const { return mHasNoConfigContext; }
void initWithGLStrings(GLubyte const* vendor, GLubyte const* renderer, GLubyte const* version,
GLubyte const* extensions);
-
char const* getVendor() const;
char const* getRenderer() const;
char const* getVersion() const;
- char const* getExtension() const;
-
+ char const* getExtensions() const;
bool hasExtension(char const* extension) const;
+
+ void initWithEGLStrings(char const* eglVersion, char const* eglExtensions);
+ char const* getEGLVersion() const;
+ char const* getEGLExtensions() const;
+ bool hasEGLExtension(char const* extension) const;
};
// ---------------------------------------------------------------------------