Merge "Add internal API to query GL version number" into jb-mr2-dev
This commit is contained in:
@@ -64,10 +64,32 @@ Extensions::Extensions(): Singleton<Extensions>() {
|
||||
mHas4BitStencil = hasExtension("GL_OES_stencil4");
|
||||
|
||||
mExtensions = strdup(buffer);
|
||||
|
||||
const char* version = (const char*) glGetString(GL_VERSION);
|
||||
mVersion = strdup(version);
|
||||
|
||||
// Section 6.1.5 of the OpenGL ES specification indicates the GL version
|
||||
// string strictly follows this format:
|
||||
//
|
||||
// OpenGL<space>ES<space><version number><space><vendor-specific information>
|
||||
//
|
||||
// In addition section 6.1.5 describes the version number thusly:
|
||||
//
|
||||
// "The version number is either of the form major number.minor number or
|
||||
// major number.minor number.release number, where the numbers all have one
|
||||
// or more digits. The release number and vendor specific information are
|
||||
// optional."
|
||||
|
||||
if (sscanf(version, "OpenGL ES %d.%d", &mVersionMajor, &mVersionMinor) !=2) {
|
||||
// If we cannot parse the version number, assume OpenGL ES 2.0
|
||||
mVersionMajor = 2;
|
||||
mVersionMinor = 0;
|
||||
}
|
||||
}
|
||||
|
||||
Extensions::~Extensions() {
|
||||
free(mExtensions);
|
||||
free(mVersion);
|
||||
}
|
||||
|
||||
///////////////////////////////////////////////////////////////////////////////
|
||||
@@ -80,6 +102,7 @@ bool Extensions::hasExtension(const char* extension) const {
|
||||
}
|
||||
|
||||
void Extensions::dump() const {
|
||||
ALOGD("%s", mVersion);
|
||||
ALOGD("Supported extensions:\n%s", mExtensions);
|
||||
}
|
||||
|
||||
|
||||
@@ -45,6 +45,9 @@ public:
|
||||
inline bool has1BitStencil() const { return mHas1BitStencil; }
|
||||
inline bool has4BitStencil() const { return mHas4BitStencil; }
|
||||
|
||||
inline int getMajorGlVersion() const { return mVersionMajor; }
|
||||
inline int getMinorGlVersion() const { return mVersionMinor; }
|
||||
|
||||
bool hasExtension(const char* extension) const;
|
||||
|
||||
void dump() const;
|
||||
@@ -55,6 +58,7 @@ private:
|
||||
SortedVector<String8> mExtensionList;
|
||||
|
||||
char* mExtensions;
|
||||
char* mVersion;
|
||||
|
||||
bool mHasNPot;
|
||||
bool mHasFramebufferFetch;
|
||||
@@ -64,6 +68,9 @@ private:
|
||||
bool mHasTiledRendering;
|
||||
bool mHas1BitStencil;
|
||||
bool mHas4BitStencil;
|
||||
|
||||
int mVersionMajor;
|
||||
int mVersionMinor;
|
||||
}; // class Extensions
|
||||
|
||||
}; // namespace uirenderer
|
||||
|
||||
Reference in New Issue
Block a user