Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit eaadd123 authored by Romain Guy's avatar Romain Guy Committed by Android (Google) Code Review
Browse files

Merge "Add internal API to query GL version number" into jb-mr2-dev

parents 8712e4cc df1dc28b
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -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);
}

+7 −0
Original line number Diff line number Diff line
@@ -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