Updating framework/opengl to support OpenGL ES 3.2

- Updated src_util.py to download appropriate gl.xml from Khronos.
- Dropped EXT/KHR suffix in certain function names
- Context wrapper is no longer created if native context fails to be created
Change-Id: I3b93c70ec779b7b0664925b6c57dcf16f1e8610d
diff --git a/framework/opengl/wrapper/glwInitES32Direct.inl b/framework/opengl/wrapper/glwInitES32Direct.inl
new file mode 100644
index 0000000..f30b57e
--- /dev/null
+++ b/framework/opengl/wrapper/glwInitES32Direct.inl
@@ -0,0 +1,363 @@
+/* WARNING: This is auto-generated file. Do not modify, since changes will
+ * be lost! Modify the generating script instead.
+ *
+ * Generated from Khronos GL API description (gl.xml) revision 32093.
+ */
+gl->activeShaderProgram					= &glActiveShaderProgram;
+gl->activeTexture						= &glActiveTexture;
+gl->attachShader						= &glAttachShader;
+gl->beginQuery							= &glBeginQuery;
+gl->beginTransformFeedback				= &glBeginTransformFeedback;
+gl->bindAttribLocation					= &glBindAttribLocation;
+gl->bindBuffer							= &glBindBuffer;
+gl->bindBufferBase						= &glBindBufferBase;
+gl->bindBufferRange						= &glBindBufferRange;
+gl->bindFramebuffer						= &glBindFramebuffer;
+gl->bindImageTexture					= &glBindImageTexture;
+gl->bindProgramPipeline					= &glBindProgramPipeline;
+gl->bindRenderbuffer					= &glBindRenderbuffer;
+gl->bindSampler							= &glBindSampler;
+gl->bindTexture							= &glBindTexture;
+gl->bindTransformFeedback				= &glBindTransformFeedback;
+gl->bindVertexArray						= &glBindVertexArray;
+gl->bindVertexBuffer					= &glBindVertexBuffer;
+gl->blendBarrier						= &glBlendBarrier;
+gl->blendColor							= &glBlendColor;
+gl->blendEquation						= &glBlendEquation;
+gl->blendEquationSeparate				= &glBlendEquationSeparate;
+gl->blendEquationSeparatei				= &glBlendEquationSeparatei;
+gl->blendEquationi						= &glBlendEquationi;
+gl->blendFunc							= &glBlendFunc;
+gl->blendFuncSeparate					= &glBlendFuncSeparate;
+gl->blendFuncSeparatei					= &glBlendFuncSeparatei;
+gl->blendFunci							= &glBlendFunci;
+gl->blitFramebuffer						= &glBlitFramebuffer;
+gl->bufferData							= &glBufferData;
+gl->bufferSubData						= &glBufferSubData;
+gl->checkFramebufferStatus				= &glCheckFramebufferStatus;
+gl->clear								= &glClear;
+gl->clearBufferfi						= &glClearBufferfi;
+gl->clearBufferfv						= &glClearBufferfv;
+gl->clearBufferiv						= &glClearBufferiv;
+gl->clearBufferuiv						= &glClearBufferuiv;
+gl->clearColor							= &glClearColor;
+gl->clearDepthf							= &glClearDepthf;
+gl->clearStencil						= &glClearStencil;
+gl->clientWaitSync						= &glClientWaitSync;
+gl->colorMask							= &glColorMask;
+gl->colorMaski							= &glColorMaski;
+gl->compileShader						= &glCompileShader;
+gl->compressedTexImage2D				= &glCompressedTexImage2D;
+gl->compressedTexImage3D				= &glCompressedTexImage3D;
+gl->compressedTexSubImage2D				= &glCompressedTexSubImage2D;
+gl->compressedTexSubImage3D				= &glCompressedTexSubImage3D;
+gl->copyBufferSubData					= &glCopyBufferSubData;
+gl->copyImageSubData					= &glCopyImageSubData;
+gl->copyTexImage2D						= &glCopyTexImage2D;
+gl->copyTexSubImage2D					= &glCopyTexSubImage2D;
+gl->copyTexSubImage3D					= &glCopyTexSubImage3D;
+gl->createProgram						= &glCreateProgram;
+gl->createShader						= &glCreateShader;
+gl->createShaderProgramv				= &glCreateShaderProgramv;
+gl->cullFace							= &glCullFace;
+gl->debugMessageCallback				= &glDebugMessageCallback;
+gl->debugMessageControl					= &glDebugMessageControl;
+gl->debugMessageInsert					= &glDebugMessageInsert;
+gl->deleteBuffers						= &glDeleteBuffers;
+gl->deleteFramebuffers					= &glDeleteFramebuffers;
+gl->deleteProgram						= &glDeleteProgram;
+gl->deleteProgramPipelines				= &glDeleteProgramPipelines;
+gl->deleteQueries						= &glDeleteQueries;
+gl->deleteRenderbuffers					= &glDeleteRenderbuffers;
+gl->deleteSamplers						= &glDeleteSamplers;
+gl->deleteShader						= &glDeleteShader;
+gl->deleteSync							= &glDeleteSync;
+gl->deleteTextures						= &glDeleteTextures;
+gl->deleteTransformFeedbacks			= &glDeleteTransformFeedbacks;
+gl->deleteVertexArrays					= &glDeleteVertexArrays;
+gl->depthFunc							= &glDepthFunc;
+gl->depthMask							= &glDepthMask;
+gl->depthRangef							= &glDepthRangef;
+gl->detachShader						= &glDetachShader;
+gl->disable								= &glDisable;
+gl->disableVertexAttribArray			= &glDisableVertexAttribArray;
+gl->disablei							= &glDisablei;
+gl->dispatchCompute						= &glDispatchCompute;
+gl->dispatchComputeIndirect				= &glDispatchComputeIndirect;
+gl->drawArrays							= &glDrawArrays;
+gl->drawArraysIndirect					= &glDrawArraysIndirect;
+gl->drawArraysInstanced					= &glDrawArraysInstanced;
+gl->drawBuffers							= &glDrawBuffers;
+gl->drawElements						= &glDrawElements;
+gl->drawElementsBaseVertex				= &glDrawElementsBaseVertex;
+gl->drawElementsIndirect				= &glDrawElementsIndirect;
+gl->drawElementsInstanced				= &glDrawElementsInstanced;
+gl->drawElementsInstancedBaseVertex		= &glDrawElementsInstancedBaseVertex;
+gl->drawRangeElements					= &glDrawRangeElements;
+gl->drawRangeElementsBaseVertex			= &glDrawRangeElementsBaseVertex;
+gl->enable								= &glEnable;
+gl->enableVertexAttribArray				= &glEnableVertexAttribArray;
+gl->enablei								= &glEnablei;
+gl->endQuery							= &glEndQuery;
+gl->endTransformFeedback				= &glEndTransformFeedback;
+gl->fenceSync							= &glFenceSync;
+gl->finish								= &glFinish;
+gl->flush								= &glFlush;
+gl->flushMappedBufferRange				= &glFlushMappedBufferRange;
+gl->framebufferParameteri				= &glFramebufferParameteri;
+gl->framebufferRenderbuffer				= &glFramebufferRenderbuffer;
+gl->framebufferTexture					= &glFramebufferTexture;
+gl->framebufferTexture2D				= &glFramebufferTexture2D;
+gl->framebufferTextureLayer				= &glFramebufferTextureLayer;
+gl->frontFace							= &glFrontFace;
+gl->genBuffers							= &glGenBuffers;
+gl->genFramebuffers						= &glGenFramebuffers;
+gl->genProgramPipelines					= &glGenProgramPipelines;
+gl->genQueries							= &glGenQueries;
+gl->genRenderbuffers					= &glGenRenderbuffers;
+gl->genSamplers							= &glGenSamplers;
+gl->genTextures							= &glGenTextures;
+gl->genTransformFeedbacks				= &glGenTransformFeedbacks;
+gl->genVertexArrays						= &glGenVertexArrays;
+gl->generateMipmap						= &glGenerateMipmap;
+gl->getActiveAttrib						= &glGetActiveAttrib;
+gl->getActiveUniform					= &glGetActiveUniform;
+gl->getActiveUniformBlockName			= &glGetActiveUniformBlockName;
+gl->getActiveUniformBlockiv				= &glGetActiveUniformBlockiv;
+gl->getActiveUniformsiv					= &glGetActiveUniformsiv;
+gl->getAttachedShaders					= &glGetAttachedShaders;
+gl->getAttribLocation					= &glGetAttribLocation;
+gl->getBooleani_v						= &glGetBooleani_v;
+gl->getBooleanv							= &glGetBooleanv;
+gl->getBufferParameteri64v				= &glGetBufferParameteri64v;
+gl->getBufferParameteriv				= &glGetBufferParameteriv;
+gl->getBufferPointerv					= &glGetBufferPointerv;
+gl->getDebugMessageLog					= &glGetDebugMessageLog;
+gl->getError							= &glGetError;
+gl->getFloatv							= &glGetFloatv;
+gl->getFragDataLocation					= &glGetFragDataLocation;
+gl->getFramebufferAttachmentParameteriv	= &glGetFramebufferAttachmentParameteriv;
+gl->getFramebufferParameteriv			= &glGetFramebufferParameteriv;
+gl->getGraphicsResetStatus				= &glGetGraphicsResetStatus;
+gl->getInteger64i_v						= &glGetInteger64i_v;
+gl->getInteger64v						= &glGetInteger64v;
+gl->getIntegeri_v						= &glGetIntegeri_v;
+gl->getIntegerv							= &glGetIntegerv;
+gl->getInternalformativ					= &glGetInternalformativ;
+gl->getMultisamplefv					= &glGetMultisamplefv;
+gl->getObjectLabel						= &glGetObjectLabel;
+gl->getObjectPtrLabel					= &glGetObjectPtrLabel;
+gl->getPointerv							= &glGetPointerv;
+gl->getProgramBinary					= &glGetProgramBinary;
+gl->getProgramInfoLog					= &glGetProgramInfoLog;
+gl->getProgramInterfaceiv				= &glGetProgramInterfaceiv;
+gl->getProgramPipelineInfoLog			= &glGetProgramPipelineInfoLog;
+gl->getProgramPipelineiv				= &glGetProgramPipelineiv;
+gl->getProgramResourceIndex				= &glGetProgramResourceIndex;
+gl->getProgramResourceLocation			= &glGetProgramResourceLocation;
+gl->getProgramResourceName				= &glGetProgramResourceName;
+gl->getProgramResourceiv				= &glGetProgramResourceiv;
+gl->getProgramiv						= &glGetProgramiv;
+gl->getQueryObjectuiv					= &glGetQueryObjectuiv;
+gl->getQueryiv							= &glGetQueryiv;
+gl->getRenderbufferParameteriv			= &glGetRenderbufferParameteriv;
+gl->getSamplerParameterIiv				= &glGetSamplerParameterIiv;
+gl->getSamplerParameterIuiv				= &glGetSamplerParameterIuiv;
+gl->getSamplerParameterfv				= &glGetSamplerParameterfv;
+gl->getSamplerParameteriv				= &glGetSamplerParameteriv;
+gl->getShaderInfoLog					= &glGetShaderInfoLog;
+gl->getShaderPrecisionFormat			= &glGetShaderPrecisionFormat;
+gl->getShaderSource						= &glGetShaderSource;
+gl->getShaderiv							= &glGetShaderiv;
+gl->getString							= &glGetString;
+gl->getStringi							= &glGetStringi;
+gl->getSynciv							= &glGetSynciv;
+gl->getTexLevelParameterfv				= &glGetTexLevelParameterfv;
+gl->getTexLevelParameteriv				= &glGetTexLevelParameteriv;
+gl->getTexParameterIiv					= &glGetTexParameterIiv;
+gl->getTexParameterIuiv					= &glGetTexParameterIuiv;
+gl->getTexParameterfv					= &glGetTexParameterfv;
+gl->getTexParameteriv					= &glGetTexParameteriv;
+gl->getTransformFeedbackVarying			= &glGetTransformFeedbackVarying;
+gl->getUniformBlockIndex				= &glGetUniformBlockIndex;
+gl->getUniformIndices					= &glGetUniformIndices;
+gl->getUniformLocation					= &glGetUniformLocation;
+gl->getUniformfv						= &glGetUniformfv;
+gl->getUniformiv						= &glGetUniformiv;
+gl->getUniformuiv						= &glGetUniformuiv;
+gl->getVertexAttribIiv					= &glGetVertexAttribIiv;
+gl->getVertexAttribIuiv					= &glGetVertexAttribIuiv;
+gl->getVertexAttribPointerv				= &glGetVertexAttribPointerv;
+gl->getVertexAttribfv					= &glGetVertexAttribfv;
+gl->getVertexAttribiv					= &glGetVertexAttribiv;
+gl->getnUniformfv						= &glGetnUniformfv;
+gl->getnUniformiv						= &glGetnUniformiv;
+gl->getnUniformuiv						= &glGetnUniformuiv;
+gl->hint								= &glHint;
+gl->invalidateFramebuffer				= &glInvalidateFramebuffer;
+gl->invalidateSubFramebuffer			= &glInvalidateSubFramebuffer;
+gl->isBuffer							= &glIsBuffer;
+gl->isEnabled							= &glIsEnabled;
+gl->isEnabledi							= &glIsEnabledi;
+gl->isFramebuffer						= &glIsFramebuffer;
+gl->isProgram							= &glIsProgram;
+gl->isProgramPipeline					= &glIsProgramPipeline;
+gl->isQuery								= &glIsQuery;
+gl->isRenderbuffer						= &glIsRenderbuffer;
+gl->isSampler							= &glIsSampler;
+gl->isShader							= &glIsShader;
+gl->isSync								= &glIsSync;
+gl->isTexture							= &glIsTexture;
+gl->isTransformFeedback					= &glIsTransformFeedback;
+gl->isVertexArray						= &glIsVertexArray;
+gl->lineWidth							= &glLineWidth;
+gl->linkProgram							= &glLinkProgram;
+gl->mapBufferRange						= &glMapBufferRange;
+gl->memoryBarrier						= &glMemoryBarrier;
+gl->memoryBarrierByRegion				= &glMemoryBarrierByRegion;
+gl->minSampleShading					= &glMinSampleShading;
+gl->objectLabel							= &glObjectLabel;
+gl->objectPtrLabel						= &glObjectPtrLabel;
+gl->patchParameteri						= &glPatchParameteri;
+gl->pauseTransformFeedback				= &glPauseTransformFeedback;
+gl->pixelStorei							= &glPixelStorei;
+gl->polygonOffset						= &glPolygonOffset;
+gl->popDebugGroup						= &glPopDebugGroup;
+gl->primitiveBoundingBox				= &glPrimitiveBoundingBox;
+gl->programBinary						= &glProgramBinary;
+gl->programParameteri					= &glProgramParameteri;
+gl->programUniform1f					= &glProgramUniform1f;
+gl->programUniform1fv					= &glProgramUniform1fv;
+gl->programUniform1i					= &glProgramUniform1i;
+gl->programUniform1iv					= &glProgramUniform1iv;
+gl->programUniform1ui					= &glProgramUniform1ui;
+gl->programUniform1uiv					= &glProgramUniform1uiv;
+gl->programUniform2f					= &glProgramUniform2f;
+gl->programUniform2fv					= &glProgramUniform2fv;
+gl->programUniform2i					= &glProgramUniform2i;
+gl->programUniform2iv					= &glProgramUniform2iv;
+gl->programUniform2ui					= &glProgramUniform2ui;
+gl->programUniform2uiv					= &glProgramUniform2uiv;
+gl->programUniform3f					= &glProgramUniform3f;
+gl->programUniform3fv					= &glProgramUniform3fv;
+gl->programUniform3i					= &glProgramUniform3i;
+gl->programUniform3iv					= &glProgramUniform3iv;
+gl->programUniform3ui					= &glProgramUniform3ui;
+gl->programUniform3uiv					= &glProgramUniform3uiv;
+gl->programUniform4f					= &glProgramUniform4f;
+gl->programUniform4fv					= &glProgramUniform4fv;
+gl->programUniform4i					= &glProgramUniform4i;
+gl->programUniform4iv					= &glProgramUniform4iv;
+gl->programUniform4ui					= &glProgramUniform4ui;
+gl->programUniform4uiv					= &glProgramUniform4uiv;
+gl->programUniformMatrix2fv				= &glProgramUniformMatrix2fv;
+gl->programUniformMatrix2x3fv			= &glProgramUniformMatrix2x3fv;
+gl->programUniformMatrix2x4fv			= &glProgramUniformMatrix2x4fv;
+gl->programUniformMatrix3fv				= &glProgramUniformMatrix3fv;
+gl->programUniformMatrix3x2fv			= &glProgramUniformMatrix3x2fv;
+gl->programUniformMatrix3x4fv			= &glProgramUniformMatrix3x4fv;
+gl->programUniformMatrix4fv				= &glProgramUniformMatrix4fv;
+gl->programUniformMatrix4x2fv			= &glProgramUniformMatrix4x2fv;
+gl->programUniformMatrix4x3fv			= &glProgramUniformMatrix4x3fv;
+gl->pushDebugGroup						= &glPushDebugGroup;
+gl->readBuffer							= &glReadBuffer;
+gl->readPixels							= &glReadPixels;
+gl->readnPixels							= &glReadnPixels;
+gl->releaseShaderCompiler				= &glReleaseShaderCompiler;
+gl->renderbufferStorage					= &glRenderbufferStorage;
+gl->renderbufferStorageMultisample		= &glRenderbufferStorageMultisample;
+gl->resumeTransformFeedback				= &glResumeTransformFeedback;
+gl->sampleCoverage						= &glSampleCoverage;
+gl->sampleMaski							= &glSampleMaski;
+gl->samplerParameterIiv					= &glSamplerParameterIiv;
+gl->samplerParameterIuiv				= &glSamplerParameterIuiv;
+gl->samplerParameterf					= &glSamplerParameterf;
+gl->samplerParameterfv					= &glSamplerParameterfv;
+gl->samplerParameteri					= &glSamplerParameteri;
+gl->samplerParameteriv					= &glSamplerParameteriv;
+gl->scissor								= &glScissor;
+gl->shaderBinary						= &glShaderBinary;
+gl->shaderSource						= (glShaderSourceFunc)&glShaderSource;
+gl->stencilFunc							= &glStencilFunc;
+gl->stencilFuncSeparate					= &glStencilFuncSeparate;
+gl->stencilMask							= &glStencilMask;
+gl->stencilMaskSeparate					= &glStencilMaskSeparate;
+gl->stencilOp							= &glStencilOp;
+gl->stencilOpSeparate					= &glStencilOpSeparate;
+gl->texBuffer							= &glTexBuffer;
+gl->texBufferRange						= &glTexBufferRange;
+gl->texImage2D							= &glTexImage2D;
+gl->texImage3D							= &glTexImage3D;
+gl->texParameterIiv						= &glTexParameterIiv;
+gl->texParameterIuiv					= &glTexParameterIuiv;
+gl->texParameterf						= &glTexParameterf;
+gl->texParameterfv						= &glTexParameterfv;
+gl->texParameteri						= &glTexParameteri;
+gl->texParameteriv						= &glTexParameteriv;
+gl->texStorage2D						= &glTexStorage2D;
+gl->texStorage2DMultisample				= &glTexStorage2DMultisample;
+gl->texStorage3D						= &glTexStorage3D;
+gl->texStorage3DMultisample				= &glTexStorage3DMultisample;
+gl->texSubImage2D						= &glTexSubImage2D;
+gl->texSubImage3D						= &glTexSubImage3D;
+gl->transformFeedbackVaryings			= &glTransformFeedbackVaryings;
+gl->uniform1f							= &glUniform1f;
+gl->uniform1fv							= &glUniform1fv;
+gl->uniform1i							= &glUniform1i;
+gl->uniform1iv							= &glUniform1iv;
+gl->uniform1ui							= &glUniform1ui;
+gl->uniform1uiv							= &glUniform1uiv;
+gl->uniform2f							= &glUniform2f;
+gl->uniform2fv							= &glUniform2fv;
+gl->uniform2i							= &glUniform2i;
+gl->uniform2iv							= &glUniform2iv;
+gl->uniform2ui							= &glUniform2ui;
+gl->uniform2uiv							= &glUniform2uiv;
+gl->uniform3f							= &glUniform3f;
+gl->uniform3fv							= &glUniform3fv;
+gl->uniform3i							= &glUniform3i;
+gl->uniform3iv							= &glUniform3iv;
+gl->uniform3ui							= &glUniform3ui;
+gl->uniform3uiv							= &glUniform3uiv;
+gl->uniform4f							= &glUniform4f;
+gl->uniform4fv							= &glUniform4fv;
+gl->uniform4i							= &glUniform4i;
+gl->uniform4iv							= &glUniform4iv;
+gl->uniform4ui							= &glUniform4ui;
+gl->uniform4uiv							= &glUniform4uiv;
+gl->uniformBlockBinding					= &glUniformBlockBinding;
+gl->uniformMatrix2fv					= &glUniformMatrix2fv;
+gl->uniformMatrix2x3fv					= &glUniformMatrix2x3fv;
+gl->uniformMatrix2x4fv					= &glUniformMatrix2x4fv;
+gl->uniformMatrix3fv					= &glUniformMatrix3fv;
+gl->uniformMatrix3x2fv					= &glUniformMatrix3x2fv;
+gl->uniformMatrix3x4fv					= &glUniformMatrix3x4fv;
+gl->uniformMatrix4fv					= &glUniformMatrix4fv;
+gl->uniformMatrix4x2fv					= &glUniformMatrix4x2fv;
+gl->uniformMatrix4x3fv					= &glUniformMatrix4x3fv;
+gl->unmapBuffer							= &glUnmapBuffer;
+gl->useProgram							= &glUseProgram;
+gl->useProgramStages					= &glUseProgramStages;
+gl->validateProgram						= &glValidateProgram;
+gl->validateProgramPipeline				= &glValidateProgramPipeline;
+gl->vertexAttrib1f						= &glVertexAttrib1f;
+gl->vertexAttrib1fv						= &glVertexAttrib1fv;
+gl->vertexAttrib2f						= &glVertexAttrib2f;
+gl->vertexAttrib2fv						= &glVertexAttrib2fv;
+gl->vertexAttrib3f						= &glVertexAttrib3f;
+gl->vertexAttrib3fv						= &glVertexAttrib3fv;
+gl->vertexAttrib4f						= &glVertexAttrib4f;
+gl->vertexAttrib4fv						= &glVertexAttrib4fv;
+gl->vertexAttribBinding					= &glVertexAttribBinding;
+gl->vertexAttribDivisor					= &glVertexAttribDivisor;
+gl->vertexAttribFormat					= &glVertexAttribFormat;
+gl->vertexAttribI4i						= &glVertexAttribI4i;
+gl->vertexAttribI4iv					= &glVertexAttribI4iv;
+gl->vertexAttribI4ui					= &glVertexAttribI4ui;
+gl->vertexAttribI4uiv					= &glVertexAttribI4uiv;
+gl->vertexAttribIFormat					= &glVertexAttribIFormat;
+gl->vertexAttribIPointer				= &glVertexAttribIPointer;
+gl->vertexAttribPointer					= &glVertexAttribPointer;
+gl->vertexBindingDivisor				= &glVertexBindingDivisor;
+gl->viewport							= &glViewport;
+gl->waitSync							= &glWaitSync;