[GLESv3] versions, es > 2, encoder

- Encoder with ES 3.x entry points
- Allow ES versions > 2 depending on host capability

Change-Id: I71e374f1685610bb0e4f9e04f4bba87b0cbaa02b
diff --git a/system/GLESv2_enc/gl2_ftable.h b/system/GLESv2_enc/gl2_ftable.h
index 25df4f0..82fa018 100644
--- a/system/GLESv2_enc/gl2_ftable.h
+++ b/system/GLESv2_enc/gl2_ftable.h
@@ -209,6 +209,177 @@
 	{"glExtGetProgramBinarySourceQCOM", (void*)glExtGetProgramBinarySourceQCOM},
 	{"glStartTilingQCOM", (void*)glStartTilingQCOM},
 	{"glEndTilingQCOM", (void*)glEndTilingQCOM},
+	{"glGenVertexArrays", (void*)glGenVertexArrays},
+	{"glBindVertexArray", (void*)glBindVertexArray},
+	{"glDeleteVertexArrays", (void*)glDeleteVertexArrays},
+	{"glIsVertexArray", (void*)glIsVertexArray},
+	{"glMapBufferRange", (void*)glMapBufferRange},
+	{"glUnmapBuffer", (void*)glUnmapBuffer},
+	{"glFlushMappedBufferRange", (void*)glFlushMappedBufferRange},
+	{"glBindBufferRange", (void*)glBindBufferRange},
+	{"glBindBufferBase", (void*)glBindBufferBase},
+	{"glCopyBufferSubData", (void*)glCopyBufferSubData},
+	{"glClearBufferiv", (void*)glClearBufferiv},
+	{"glClearBufferuiv", (void*)glClearBufferuiv},
+	{"glClearBufferfv", (void*)glClearBufferfv},
+	{"glClearBufferfi", (void*)glClearBufferfi},
+	{"glGetBufferParameteri64v", (void*)glGetBufferParameteri64v},
+	{"glGetBufferPointerv", (void*)glGetBufferPointerv},
+	{"glUniformBlockBinding", (void*)glUniformBlockBinding},
+	{"glGetUniformBlockIndex", (void*)glGetUniformBlockIndex},
+	{"glGetUniformIndices", (void*)glGetUniformIndices},
+	{"glGetActiveUniformBlockiv", (void*)glGetActiveUniformBlockiv},
+	{"glGetActiveUniformBlockName", (void*)glGetActiveUniformBlockName},
+	{"glUniform1ui", (void*)glUniform1ui},
+	{"glUniform2ui", (void*)glUniform2ui},
+	{"glUniform3ui", (void*)glUniform3ui},
+	{"glUniform4ui", (void*)glUniform4ui},
+	{"glUniform1uiv", (void*)glUniform1uiv},
+	{"glUniform2uiv", (void*)glUniform2uiv},
+	{"glUniform3uiv", (void*)glUniform3uiv},
+	{"glUniform4uiv", (void*)glUniform4uiv},
+	{"glUniformMatrix2x3fv", (void*)glUniformMatrix2x3fv},
+	{"glUniformMatrix3x2fv", (void*)glUniformMatrix3x2fv},
+	{"glUniformMatrix2x4fv", (void*)glUniformMatrix2x4fv},
+	{"glUniformMatrix4x2fv", (void*)glUniformMatrix4x2fv},
+	{"glUniformMatrix3x4fv", (void*)glUniformMatrix3x4fv},
+	{"glUniformMatrix4x3fv", (void*)glUniformMatrix4x3fv},
+	{"glGetUniformuiv", (void*)glGetUniformuiv},
+	{"glGetActiveUniformsiv", (void*)glGetActiveUniformsiv},
+	{"glVertexAttribI4i", (void*)glVertexAttribI4i},
+	{"glVertexAttribI4ui", (void*)glVertexAttribI4ui},
+	{"glVertexAttribI4iv", (void*)glVertexAttribI4iv},
+	{"glVertexAttribI4uiv", (void*)glVertexAttribI4uiv},
+	{"glVertexAttribIPointer", (void*)glVertexAttribIPointer},
+	{"glGetVertexAttribIiv", (void*)glGetVertexAttribIiv},
+	{"glGetVertexAttribIuiv", (void*)glGetVertexAttribIuiv},
+	{"glVertexAttribDivisor", (void*)glVertexAttribDivisor},
+	{"glDrawArraysInstanced", (void*)glDrawArraysInstanced},
+	{"glDrawElementsInstanced", (void*)glDrawElementsInstanced},
+	{"glDrawRangeElements", (void*)glDrawRangeElements},
+	{"glFenceSync", (void*)glFenceSync},
+	{"glClientWaitSync", (void*)glClientWaitSync},
+	{"glWaitSync", (void*)glWaitSync},
+	{"glDeleteSync", (void*)glDeleteSync},
+	{"glIsSync", (void*)glIsSync},
+	{"glGetSynciv", (void*)glGetSynciv},
+	{"glDrawBuffers", (void*)glDrawBuffers},
+	{"glReadBuffer", (void*)glReadBuffer},
+	{"glBlitFramebuffer", (void*)glBlitFramebuffer},
+	{"glInvalidateFramebuffer", (void*)glInvalidateFramebuffer},
+	{"glInvalidateSubFramebuffer", (void*)glInvalidateSubFramebuffer},
+	{"glFramebufferTextureLayer", (void*)glFramebufferTextureLayer},
+	{"glRenderbufferStorageMultisample", (void*)glRenderbufferStorageMultisample},
+	{"glTexStorage2D", (void*)glTexStorage2D},
+	{"glGetInternalformativ", (void*)glGetInternalformativ},
+	{"glBeginTransformFeedback", (void*)glBeginTransformFeedback},
+	{"glEndTransformFeedback", (void*)glEndTransformFeedback},
+	{"glGenTransformFeedbacks", (void*)glGenTransformFeedbacks},
+	{"glDeleteTransformFeedbacks", (void*)glDeleteTransformFeedbacks},
+	{"glBindTransformFeedback", (void*)glBindTransformFeedback},
+	{"glPauseTransformFeedback", (void*)glPauseTransformFeedback},
+	{"glResumeTransformFeedback", (void*)glResumeTransformFeedback},
+	{"glIsTransformFeedback", (void*)glIsTransformFeedback},
+	{"glTransformFeedbackVaryings", (void*)glTransformFeedbackVaryings},
+	{"glGetTransformFeedbackVarying", (void*)glGetTransformFeedbackVarying},
+	{"glGenSamplers", (void*)glGenSamplers},
+	{"glDeleteSamplers", (void*)glDeleteSamplers},
+	{"glBindSampler", (void*)glBindSampler},
+	{"glSamplerParameterf", (void*)glSamplerParameterf},
+	{"glSamplerParameteri", (void*)glSamplerParameteri},
+	{"glSamplerParameterfv", (void*)glSamplerParameterfv},
+	{"glSamplerParameteriv", (void*)glSamplerParameteriv},
+	{"glGetSamplerParameterfv", (void*)glGetSamplerParameterfv},
+	{"glGetSamplerParameteriv", (void*)glGetSamplerParameteriv},
+	{"glIsSampler", (void*)glIsSampler},
+	{"glGenQueries", (void*)glGenQueries},
+	{"glDeleteQueries", (void*)glDeleteQueries},
+	{"glBeginQuery", (void*)glBeginQuery},
+	{"glEndQuery", (void*)glEndQuery},
+	{"glGetQueryiv", (void*)glGetQueryiv},
+	{"glGetQueryObjectuiv", (void*)glGetQueryObjectuiv},
+	{"glIsQuery", (void*)glIsQuery},
+	{"glProgramParameteri", (void*)glProgramParameteri},
+	{"glProgramBinary", (void*)glProgramBinary},
+	{"glGetProgramBinary", (void*)glGetProgramBinary},
+	{"glGetFragDataLocation", (void*)glGetFragDataLocation},
+	{"glGetInteger64v", (void*)glGetInteger64v},
+	{"glGetIntegeri_v", (void*)glGetIntegeri_v},
+	{"glGetInteger64i_v", (void*)glGetInteger64i_v},
+	{"glTexImage3D", (void*)glTexImage3D},
+	{"glTexStorage3D", (void*)glTexStorage3D},
+	{"glTexSubImage3D", (void*)glTexSubImage3D},
+	{"glCompressedTexImage3D", (void*)glCompressedTexImage3D},
+	{"glCompressedTexSubImage3D", (void*)glCompressedTexSubImage3D},
+	{"glCopyTexSubImage3D", (void*)glCopyTexSubImage3D},
+	{"glGetStringi", (void*)glGetStringi},
+	{"glGetBooleani_v", (void*)glGetBooleani_v},
+	{"glMemoryBarrier", (void*)glMemoryBarrier},
+	{"glMemoryBarrierByRegion", (void*)glMemoryBarrierByRegion},
+	{"glGenProgramPipelines", (void*)glGenProgramPipelines},
+	{"glDeleteProgramPipelines", (void*)glDeleteProgramPipelines},
+	{"glBindProgramPipeline", (void*)glBindProgramPipeline},
+	{"glGetProgramPipelineiv", (void*)glGetProgramPipelineiv},
+	{"glGetProgramPipelineInfoLog", (void*)glGetProgramPipelineInfoLog},
+	{"glValidateProgramPipeline", (void*)glValidateProgramPipeline},
+	{"glIsProgramPipeline", (void*)glIsProgramPipeline},
+	{"glUseProgramStages", (void*)glUseProgramStages},
+	{"glCreateShaderProgramv", (void*)glCreateShaderProgramv},
+	{"glProgramUniform1f", (void*)glProgramUniform1f},
+	{"glProgramUniform2f", (void*)glProgramUniform2f},
+	{"glProgramUniform3f", (void*)glProgramUniform3f},
+	{"glProgramUniform4f", (void*)glProgramUniform4f},
+	{"glProgramUniform1i", (void*)glProgramUniform1i},
+	{"glProgramUniform2i", (void*)glProgramUniform2i},
+	{"glProgramUniform3i", (void*)glProgramUniform3i},
+	{"glProgramUniform4i", (void*)glProgramUniform4i},
+	{"glProgramUniform1ui", (void*)glProgramUniform1ui},
+	{"glProgramUniform2ui", (void*)glProgramUniform2ui},
+	{"glProgramUniform3ui", (void*)glProgramUniform3ui},
+	{"glProgramUniform4ui", (void*)glProgramUniform4ui},
+	{"glProgramUniform1fv", (void*)glProgramUniform1fv},
+	{"glProgramUniform2fv", (void*)glProgramUniform2fv},
+	{"glProgramUniform3fv", (void*)glProgramUniform3fv},
+	{"glProgramUniform4fv", (void*)glProgramUniform4fv},
+	{"glProgramUniform1iv", (void*)glProgramUniform1iv},
+	{"glProgramUniform2iv", (void*)glProgramUniform2iv},
+	{"glProgramUniform3iv", (void*)glProgramUniform3iv},
+	{"glProgramUniform4iv", (void*)glProgramUniform4iv},
+	{"glProgramUniform1uiv", (void*)glProgramUniform1uiv},
+	{"glProgramUniform2uiv", (void*)glProgramUniform2uiv},
+	{"glProgramUniform3uiv", (void*)glProgramUniform3uiv},
+	{"glProgramUniform4uiv", (void*)glProgramUniform4uiv},
+	{"glProgramUniformMatrix2fv", (void*)glProgramUniformMatrix2fv},
+	{"glProgramUniformMatrix3fv", (void*)glProgramUniformMatrix3fv},
+	{"glProgramUniformMatrix4fv", (void*)glProgramUniformMatrix4fv},
+	{"glProgramUniformMatrix2x3fv", (void*)glProgramUniformMatrix2x3fv},
+	{"glProgramUniformMatrix3x2fv", (void*)glProgramUniformMatrix3x2fv},
+	{"glProgramUniformMatrix2x4fv", (void*)glProgramUniformMatrix2x4fv},
+	{"glProgramUniformMatrix4x2fv", (void*)glProgramUniformMatrix4x2fv},
+	{"glProgramUniformMatrix3x4fv", (void*)glProgramUniformMatrix3x4fv},
+	{"glProgramUniformMatrix4x3fv", (void*)glProgramUniformMatrix4x3fv},
+	{"glGetProgramInterfaceiv", (void*)glGetProgramInterfaceiv},
+	{"glGetProgramResourceiv", (void*)glGetProgramResourceiv},
+	{"glGetProgramResourceIndex", (void*)glGetProgramResourceIndex},
+	{"glGetProgramResourceLocation", (void*)glGetProgramResourceLocation},
+	{"glGetProgramResourceName", (void*)glGetProgramResourceName},
+	{"glBindImageTexture", (void*)glBindImageTexture},
+	{"glDispatchCompute", (void*)glDispatchCompute},
+	{"glDispatchComputeIndirect", (void*)glDispatchComputeIndirect},
+	{"glBindVertexBuffer", (void*)glBindVertexBuffer},
+	{"glVertexAttribBinding", (void*)glVertexAttribBinding},
+	{"glVertexAttribFormat", (void*)glVertexAttribFormat},
+	{"glVertexAttribIFormat", (void*)glVertexAttribIFormat},
+	{"glVertexBindingDivisor", (void*)glVertexBindingDivisor},
+	{"glDrawArraysIndirect", (void*)glDrawArraysIndirect},
+	{"glDrawElementsIndirect", (void*)glDrawElementsIndirect},
+	{"glTexStorage2DMultisample", (void*)glTexStorage2DMultisample},
+	{"glSampleMaski", (void*)glSampleMaski},
+	{"glGetMultisamplefv", (void*)glGetMultisamplefv},
+	{"glFramebufferParameteri", (void*)glFramebufferParameteri},
+	{"glGetFramebufferParameteriv", (void*)glGetFramebufferParameteriv},
+	{"glGetTexLevelParameterfv", (void*)glGetTexLevelParameterfv},
+	{"glGetTexLevelParameteriv", (void*)glGetTexLevelParameteriv},
 };
 static const int gl2_num_funcs = sizeof(gl2_funcs_by_name) / sizeof(struct _gl2_funcs_by_name);