hwui: add extension to support unpack operations in OpenGL ES 2.0

OpenGL ES 3.0+ lets us specify the row length for unpack operations
such as glTexSubImage2D(). This allows us to upload a sub-rectangle
of a texture. Also, the GL_EXT_unpack_subimage extension can also
support this feature in OpenGL ES 2.0

Change-Id: Id43c2c55c5eaefbace67087c955f0b4324fb2c35
Signed-off-by: xiaozhengdong <xiaozhengdong@xiaomi.com>
This commit is contained in:
xiaozhengdong
2015-08-04 16:55:35 +08:00
parent 40f0efe03d
commit d538d30e2f
2 changed files with 3 additions and 1 deletions

View File

@@ -61,6 +61,7 @@ Extensions::Extensions(): Singleton<Extensions>() {
mHasTiledRendering = hasGlExtension("GL_QCOM_tiled_rendering");
mHas1BitStencil = hasGlExtension("GL_OES_stencil1");
mHas4BitStencil = hasGlExtension("GL_OES_stencil4");
mHasUnpackSubImage = hasGlExtension("GL_EXT_unpack_subimage");
// Query EGL extensions
findExtensions(eglQueryString(eglGetCurrentDisplay(), EGL_EXTENSIONS), mEglExtensionList);

View File

@@ -41,7 +41,7 @@ public:
inline bool has1BitStencil() const { return mHas1BitStencil; }
inline bool has4BitStencil() const { return mHas4BitStencil; }
inline bool hasNvSystemTime() const { return mHasNvSystemTime; }
inline bool hasUnpackRowLength() const { return mVersionMajor >= 3; }
inline bool hasUnpackRowLength() const { return mVersionMajor >= 3 || mHasUnpackSubImage; }
inline bool hasPixelBufferObjects() const { return mVersionMajor >= 3; }
inline bool hasOcclusionQueries() const { return mVersionMajor >= 3; }
inline bool hasFloatTextures() const { return mVersionMajor >= 3; }
@@ -74,6 +74,7 @@ private:
bool mHas1BitStencil;
bool mHas4BitStencil;
bool mHasNvSystemTime;
bool mHasUnpackSubImage;
int mVersionMajor;
int mVersionMinor;