[Title] Applied ES3.0 supports for normal path.
authorHaegeun Park <haegeun.park@samsung.com>
Tue, 1 Oct 2013 10:06:53 +0000 (03:06 -0700)
committerHaegeun Park <haegeun.park@samsung.com>
Wed, 2 Oct 2013 05:01:34 +0000 (22:01 -0700)
[Issue#]
[Problem]
[Cause]
[Solution]
- Updated new symbols
- Refactored extension supports

<Details>

Merge branch 'master' into ES3.0

Conflicts:
src/headers/gl.h
src/headers/sym_egl.h
src/headers/sym_gl.h

1  2 
src/coregl_internal.h
src/headers/gl.h
src/headers/sym_egl.h
src/headers/sym_gl.h
src/modules/fastpath/coregl_fastpath.c
src/modules/fastpath/coregl_fastpath.h
src/modules/fastpath/coregl_fastpath_egl.c
src/modules/fastpath/coregl_fastpath_gl.c
src/modules/tracepath/coregl_tracepath.c
src/modules/tracepath/coregl_tracepath_egl.c
src/modules/tracepath/coregl_tracepath_gl.c

Simple merge
@@@ -799,14 -501,33 +799,23 @@@ typedef void* GLeglImageOES
  #define GL_BGRA_EXT                                             0x80E1
  #define GL_UNSIGNED_SHORT_4_4_4_4_REV_EXT                       0x8365
  #define GL_UNSIGNED_SHORT_1_5_5_5_REV_EXT                       0x8366
 -#endif
  
  /* GL_EXT_texture_filter_anisotropic */
 -#ifndef GL_EXT_texture_filter_anisotropic
  #define GL_TEXTURE_MAX_ANISOTROPY_EXT                           0x84FE
  #define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT                       0x84FF
 -#endif
  
  /* GL_EXT_texture_format_BGRA8888 */
 -#ifndef GL_EXT_texture_format_BGRA8888
  #define GL_BGRA_EXT                                             0x80E1
 -#endif
  
  /* GL_OES_standard_derivatives */
 -#ifndef GL_OES_standard_derivatives
  #define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_OES               0x8B8B
 -#endif
  
 -#endif
 -
+ /* GL_ANGLE_framebuffer_blit */
+ #ifndef GL_ANGLE_framebuffer_blit
+ #define GL_READ_FRAMEBUFFER_ANGLE                0x8CA8
+ #define GL_DRAW_FRAMEBUFFER_ANGLE                0x8CA9
+ #define GL_DRAW_FRAMEBUFFER_BINDING_ANGLE        0x8CA6
+ #define GL_READ_FRAMEBUFFER_BINDING_ANGLE        0x8CAA
+ #endif
@@@ -66,21 -66,27 +66,23 @@@ _COREGL_SYMBOL(GL_FALSE, _eng_fn, eglGe
  
  // Extensions
  _COREGL_EXT_SYMBOL(GL_TRUE, EGLImageKHR, eglCreateImageKHR, (EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list))
 -_COREGL_EXT_SYMBOL_ALIAS(eglCreateImageKHR, eglCreateImage)
  _COREGL_EXT_SYMBOL(GL_TRUE, EGLBoolean, eglDestroyImageKHR, (EGLDisplay dpy, EGLImageKHR image))
 -_COREGL_EXT_SYMBOL_ALIAS(eglDestroyImageKHR, eglDestroyImage)
  
  _COREGL_EXT_SYMBOL(GL_TRUE, void*, eglMapImageSEC, (EGLDisplay dpy, EGLImageKHR image, EGLint device_type, EGLint access_option))
 -_COREGL_EXT_SYMBOL_ALIAS(eglMapImageSEC, eglMapImage)
  _COREGL_EXT_SYMBOL(GL_TRUE, EGLBoolean, eglUnmapImageSEC, (EGLDisplay dpy, EGLImageKHR image, EGLint device_type))
 -_COREGL_EXT_SYMBOL_ALIAS(eglUnmapImageSEC, eglUnmapImage)
  _COREGL_EXT_SYMBOL(GL_TRUE, EGLBoolean, eglGetImageAttribSEC, (EGLDisplay dpy, EGLImageKHR image, EGLint attribute, EGLint *value))
 -_COREGL_EXT_SYMBOL_ALIAS(eglGetImageAttribSEC, eglGetImageAttrib)
  
  _COREGL_EXT_SYMBOL(GL_TRUE, EGLBoolean, eglLockSurfaceKHR, (EGLDisplay display, EGLSurface surface, const EGLint *attrib_list))
 -_COREGL_EXT_SYMBOL_ALIAS(eglLockSurfaceKHR, eglLockSurface)
  _COREGL_EXT_SYMBOL(GL_TRUE, EGLBoolean, eglUnlockSurfaceKHR, (EGLDisplay display, EGLSurface surface))
 -_COREGL_EXT_SYMBOL_ALIAS(eglUnlockSurfaceKHR, eglUnlockSurface)
  
 -// Blocked extensions
+ _COREGL_EXT_SYMBOL(GL_TRUE, EGLBoolean, eglSwapBuffersWithDamageEXT, (EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects))
+ _COREGL_EXT_SYMBOL(GL_TRUE, EGLBoolean, eglSwapBuffersRegionEXT, (EGLDisplay dpy, EGLSurface surface, EGLint numRects, const EGLint *rects))
- _COREGL_EXT_SYMBOL_FASTPATH_PASS(eglSwapBuffersRegionEXT)
- _COREGL_EXT_SYMBOL_FASTPATH_PASS(eglSwapBuffersRegionSEC)
- _COREGL_EXT_SYMBOL_FASTPATH_PASS(eglSwapBuffersWithDamageEXT)
 +/* Fastpath Verified extensions */
++//_COREGL_EXT_SYMBOL_FASTPATH_PASS(eglSwapBuffersRegionSEC)
 +
 +/* Fastpath Blocked extensions */
  //_COREGL_EXT_SYMBOL_FASTPATH_BLOCK()
  
  #ifdef _COREGL_EXT_SYMBOL_NOT_DEFINED
@@@ -173,243 -164,117 +173,250 @@@ _COREGL_SYMBOL(GL_FALSE, void, glVertex
  _COREGL_SYMBOL(GL_FALSE, void, glVertexAttribPointer, (GLuint indx, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const void* ptr))
  _COREGL_SYMBOL(GL_FALSE, void, glViewport, (GLint x, GLint y, GLsizei width, GLsizei height))
  
 +/* OpenGL ES 3.0 */
 +_COREGL_SYMBOL(GL_FALSE, void, glReadBuffer, (GLenum mode))
 +_COREGL_SYMBOL(GL_FALSE, void, glDrawRangeElements, (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid* indices))
 +_COREGL_SYMBOL(GL_FALSE, void, glTexImage3D, (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid* pixels))
 +_COREGL_SYMBOL(GL_FALSE, void, glTexSubImage3D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid* pixels))
 +_COREGL_SYMBOL(GL_FALSE, void, glCopyTexSubImage3D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height))
 +_COREGL_SYMBOL(GL_FALSE, void, glCompressedTexImage3D, (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid* data))
 +_COREGL_SYMBOL(GL_FALSE, void, glCompressedTexSubImage3D, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid* data))
 +_COREGL_SYMBOL(GL_FALSE, void, glGenQueries, (GLsizei n, GLuint* ids))
 +_COREGL_SYMBOL(GL_FALSE, void, glDeleteQueries, (GLsizei n, const GLuint* ids))
 +_COREGL_SYMBOL(GL_FALSE, GLboolean, glIsQuery, (GLuint id))
 +_COREGL_SYMBOL(GL_FALSE, void, glBeginQuery, (GLenum target, GLuint id))
 +_COREGL_SYMBOL(GL_FALSE, void, glEndQuery, (GLenum target))
 +_COREGL_SYMBOL(GL_FALSE, void, glGetQueryiv, (GLenum target, GLenum pname, GLint* params))
 +_COREGL_SYMBOL(GL_FALSE, void, glGetQueryObjectuiv, (GLuint id, GLenum pname, GLuint* params))
 +_COREGL_SYMBOL(GL_FALSE, GLboolean, glUnmapBuffer, (GLenum target))
 +_COREGL_SYMBOL(GL_FALSE, void, glGetBufferPointerv, (GLenum target, GLenum pname, GLvoid** params))
 +_COREGL_SYMBOL(GL_FALSE, void, glDrawBuffers, (GLsizei n, const GLenum* bufs))
 +_COREGL_SYMBOL(GL_FALSE, void, glUniformMatrix2x3fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value))
 +_COREGL_SYMBOL(GL_FALSE, void, glUniformMatrix3x2fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value))
 +_COREGL_SYMBOL(GL_FALSE, void, glUniformMatrix2x4fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value))
 +_COREGL_SYMBOL(GL_FALSE, void, glUniformMatrix4x2fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value))
 +_COREGL_SYMBOL(GL_FALSE, void, glUniformMatrix3x4fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value))
 +_COREGL_SYMBOL(GL_FALSE, void, glUniformMatrix4x3fv, (GLint location, GLsizei count, GLboolean transpose, const GLfloat* value))
 +_COREGL_SYMBOL(GL_FALSE, void, glBlitFramebuffer, (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter))
 +_COREGL_SYMBOL(GL_FALSE, void, glRenderbufferStorageMultisample, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height))
 +_COREGL_SYMBOL(GL_FALSE, void, glFramebufferTextureLayer, (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer))
 +_COREGL_SYMBOL(GL_FALSE, GLvoid*, glMapBufferRange, (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access))
 +_COREGL_SYMBOL(GL_FALSE, void, glFlushMappedBufferRange, (GLenum target, GLintptr offset, GLsizeiptr length))
 +_COREGL_SYMBOL(GL_FALSE, void, glBindVertexArray, (GLuint array))
 +_COREGL_SYMBOL(GL_FALSE, void, glDeleteVertexArrays, (GLsizei n, const GLuint* arrays))
 +_COREGL_SYMBOL(GL_FALSE, void, glGenVertexArrays, (GLsizei n, GLuint* arrays))
 +_COREGL_SYMBOL(GL_FALSE, GLboolean, glIsVertexArray, (GLuint array))
 +_COREGL_SYMBOL(GL_FALSE, void, glGetIntegeri_v, (GLenum target, GLuint index, GLint* data))
 +_COREGL_SYMBOL(GL_FALSE, void, glBeginTransformFeedback, (GLenum primitiveMode))
 +_COREGL_SYMBOL(GL_FALSE, void, glEndTransformFeedback, (void))
 +_COREGL_SYMBOL(GL_FALSE, void, glBindBufferRange, (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size))
 +_COREGL_SYMBOL(GL_FALSE, void, glBindBufferBase, (GLenum target, GLuint index, GLuint buffer))
 +_COREGL_SYMBOL(GL_FALSE, void, glTransformFeedbackVaryings, (GLuint program, GLsizei count, const GLchar* const* varyings, GLenum bufferMode))
 +_COREGL_SYMBOL(GL_FALSE, void, glGetTransformFeedbackVarying, (GLuint program, GLuint index, GLsizei bufSize, GLsizei* length, GLsizei* size, GLenum* type, GLchar* name))
 +_COREGL_SYMBOL(GL_FALSE, void, glVertexAttribIPointer, (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid* pointer))
 +_COREGL_SYMBOL(GL_FALSE, void, glGetVertexAttribIiv, (GLuint index, GLenum pname, GLint* params))
 +_COREGL_SYMBOL(GL_FALSE, void, glGetVertexAttribIuiv, (GLuint index, GLenum pname, GLuint* params))
 +_COREGL_SYMBOL(GL_FALSE, void, glVertexAttribI4i, (GLuint index, GLint x, GLint y, GLint z, GLint w))
 +_COREGL_SYMBOL(GL_FALSE, void, glVertexAttribI4ui, (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w))
 +_COREGL_SYMBOL(GL_FALSE, void, glVertexAttribI4iv, (GLuint index, const GLint* v))
 +_COREGL_SYMBOL(GL_FALSE, void, glVertexAttribI4uiv, (GLuint index, const GLuint* v))
 +_COREGL_SYMBOL(GL_FALSE, void, glGetUniformuiv, (GLuint program, GLint location, GLuint* params))
 +_COREGL_SYMBOL(GL_FALSE, GLint, glGetFragDataLocation, (GLuint program, const GLchar *name))
 +_COREGL_SYMBOL(GL_FALSE, void, glUniform1ui, (GLint location, GLuint v0))
 +_COREGL_SYMBOL(GL_FALSE, void, glUniform2ui, (GLint location, GLuint v0, GLuint v1))
 +_COREGL_SYMBOL(GL_FALSE, void, glUniform3ui, (GLint location, GLuint v0, GLuint v1, GLuint v2))
 +_COREGL_SYMBOL(GL_FALSE, void, glUniform4ui, (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3))
 +_COREGL_SYMBOL(GL_FALSE, void, glUniform1uiv, (GLint location, GLsizei count, const GLuint* value))
 +_COREGL_SYMBOL(GL_FALSE, void, glUniform2uiv, (GLint location, GLsizei count, const GLuint* value))
 +_COREGL_SYMBOL(GL_FALSE, void, glUniform3uiv, (GLint location, GLsizei count, const GLuint* value))
 +_COREGL_SYMBOL(GL_FALSE, void, glUniform4uiv, (GLint location, GLsizei count, const GLuint* value))
 +_COREGL_SYMBOL(GL_FALSE, void, glClearBufferiv, (GLenum buffer, GLint drawbuffer, const GLint* value))
 +_COREGL_SYMBOL(GL_FALSE, void, glClearBufferuiv, (GLenum buffer, GLint drawbuffer, const GLuint* value))
 +_COREGL_SYMBOL(GL_FALSE, void, glClearBufferfv, (GLenum buffer, GLint drawbuffer, const GLfloat* value))
 +_COREGL_SYMBOL(GL_FALSE, void, glClearBufferfi, (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil))
 +_COREGL_SYMBOL(GL_FALSE, const GLubyte*, glGetStringi, (GLenum name, GLuint index))
 +_COREGL_SYMBOL(GL_FALSE, void, glCopyBufferSubData, (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size))
 +_COREGL_SYMBOL(GL_FALSE, void, glGetUniformIndices, (GLuint program, GLsizei uniformCount, const GLchar* const* uniformNames, GLuint* uniformIndices))
 +_COREGL_SYMBOL(GL_FALSE, void, glGetActiveUniformsiv, (GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params))
 +_COREGL_SYMBOL(GL_FALSE, GLuint, glGetUniformBlockIndex, (GLuint program, const GLchar* uniformBlockName))
 +_COREGL_SYMBOL(GL_FALSE, void, glGetActiveUniformBlockiv, (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params))
 +_COREGL_SYMBOL(GL_FALSE, void, glGetActiveUniformBlockName, (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName))
 +_COREGL_SYMBOL(GL_FALSE, void, glUniformBlockBinding, (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding))
 +_COREGL_SYMBOL(GL_FALSE, void, glDrawArraysInstanced, (GLenum mode, GLint first, GLsizei count, GLsizei instanceCount))
 +_COREGL_SYMBOL(GL_FALSE, void, glDrawElementsInstanced, (GLenum mode, GLsizei count, GLenum type, const GLvoid* indices, GLsizei instanceCount))
 +_COREGL_SYMBOL(GL_FALSE, GLsync, glFenceSync, (GLenum condition, GLbitfield flags))
 +_COREGL_SYMBOL(GL_FALSE, GLboolean, glIsSync, (GLsync sync))
 +_COREGL_SYMBOL(GL_FALSE, void, glDeleteSync, (GLsync sync))
 +_COREGL_SYMBOL(GL_FALSE, GLenum, glClientWaitSync, (GLsync sync, GLbitfield flags, GLuint64 timeout))
 +_COREGL_SYMBOL(GL_FALSE, void, glWaitSync, (GLsync sync, GLbitfield flags, GLuint64 timeout))
 +_COREGL_SYMBOL(GL_FALSE, void, glGetInteger64v, (GLenum pname, GLint64* params))
 +_COREGL_SYMBOL(GL_FALSE, void, glGetSynciv, (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei* length, GLint* values))
 +_COREGL_SYMBOL(GL_FALSE, void, glGetInteger64i_v, (GLenum target, GLuint index, GLint64* data))
 +_COREGL_SYMBOL(GL_FALSE, void, glGetBufferParameteri64v, (GLenum target, GLenum pname, GLint64* params))
 +_COREGL_SYMBOL(GL_FALSE, void, glGenSamplers, (GLsizei count, GLuint* samplers))
 +_COREGL_SYMBOL(GL_FALSE, void, glDeleteSamplers, (GLsizei count, const GLuint* samplers))
 +_COREGL_SYMBOL(GL_FALSE, GLboolean, glIsSampler, (GLuint sampler))
 +_COREGL_SYMBOL(GL_FALSE, void, glBindSampler, (GLuint unit, GLuint sampler))
 +_COREGL_SYMBOL(GL_FALSE, void, glSamplerParameteri, (GLuint sampler, GLenum pname, GLint param))
 +_COREGL_SYMBOL(GL_FALSE, void, glSamplerParameteriv, (GLuint sampler, GLenum pname, const GLint* param))
 +_COREGL_SYMBOL(GL_FALSE, void, glSamplerParameterf, (GLuint sampler, GLenum pname, GLfloat param))
 +_COREGL_SYMBOL(GL_FALSE, void, glSamplerParameterfv, (GLuint sampler, GLenum pname, const GLfloat* param))
 +_COREGL_SYMBOL(GL_FALSE, void, glGetSamplerParameteriv, (GLuint sampler, GLenum pname, GLint* params))
 +_COREGL_SYMBOL(GL_FALSE, void, glGetSamplerParameterfv, (GLuint sampler, GLenum pname, GLfloat* params))
 +_COREGL_SYMBOL(GL_FALSE, void, glVertexAttribDivisor, (GLuint index, GLuint divisor))
 +_COREGL_SYMBOL(GL_FALSE, void, glBindTransformFeedback, (GLenum target, GLuint id))
 +_COREGL_SYMBOL(GL_FALSE, void, glDeleteTransformFeedbacks, (GLsizei n, const GLuint* ids))
 +_COREGL_SYMBOL(GL_FALSE, void, glGenTransformFeedbacks, (GLsizei n, GLuint* ids))
 +_COREGL_SYMBOL(GL_FALSE, GLboolean, glIsTransformFeedback, (GLuint id))
 +_COREGL_SYMBOL(GL_FALSE, void, glPauseTransformFeedback, (void))
 +_COREGL_SYMBOL(GL_FALSE, void, glResumeTransformFeedback, (void))
 +_COREGL_SYMBOL(GL_FALSE, void, glGetProgramBinary, (GLuint program, GLsizei bufSize, GLsizei* length, GLenum* binaryFormat, GLvoid* binary))
 +_COREGL_SYMBOL(GL_FALSE, void, glProgramBinary, (GLuint program, GLenum binaryFormat, const GLvoid* binary, GLsizei length))
 +_COREGL_SYMBOL(GL_FALSE, void, glProgramParameteri, (GLuint program, GLenum pname, GLint value))
 +_COREGL_SYMBOL(GL_FALSE, void, glInvalidateFramebuffer, (GLenum target, GLsizei numAttachments, const GLenum* attachments))
 +_COREGL_SYMBOL(GL_FALSE, void, glInvalidateSubFramebuffer, (GLenum target, GLsizei numAttachments, const GLenum* attachments, GLint x, GLint y, GLsizei width, GLsizei height))
 +_COREGL_SYMBOL(GL_FALSE, void, glTexStorage2D, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height))
 +_COREGL_SYMBOL(GL_FALSE, void, glTexStorage3D, (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth))
 +_COREGL_SYMBOL(GL_FALSE, void, glGetInternalformativ, (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params))
 +
 +
  /* Extensions */
  
 -// OES_EGL_image
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_EGL_image", 1.1, -1)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glEGLImageTargetTexture2DOES, (GLenum target, GLeglImageOES image))
 -_COREGL_EXT_SYMBOL_ALIAS(glEGLImageTargetTexture2DOES, glEGLImageTargetTexture2D)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glEGLImageTargetRenderbufferStorageOES, (GLenum target, GLeglImageOES image))
 -_COREGL_EXT_SYMBOL_ALIAS(glEGLImageTargetRenderbufferStorageOES, glEGLImageTargetRenderbufferStorage)
 +//_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_EGL_image_external", 1.1, -1)
 +
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_get_program_binary", 2.0, -1)
 +_COREGL_EXT_SYMBOL_ALIAS(glGetProgramBinaryOES, glGetProgramBinary) // Replaced to ES 3.0 API
 +_COREGL_EXT_SYMBOL_ALIAS(glProgramBinaryOES, glProgramBinary) // Replaced to ES 3.0 API
  
 -// OES_get_program_binary
 -_COREGL_EXT_SYMBOL(GL_TRUE, void, glGetProgramBinaryOES, (GLuint program, GLsizei bufsize, GLsizei *length, GLenum *binaryFormat, void *binary))
 -_COREGL_EXT_SYMBOL_ALIAS(glGetProgramBinaryOES, glGetProgramBinary)
 -_COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramBinaryOES, (GLuint program, GLenum binaryFormat, const void *binary, GLint length))
 -_COREGL_EXT_SYMBOL_ALIAS(glProgramBinaryOES, glProgramBinary)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_AMD_program_binary_Z400", 2.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_IMG_program_binary ", 2.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_ARM_mali_program_binary", 2.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_ANGLE_program_binary", 2.0, -1)
  
 -// EXT_separate_shader_objects
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_EXT_separate_shader_objects", 2.0, -1)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glUseProgramStagesEXT, (GLuint pipeline, GLbitfield stages, GLuint program))
 -_COREGL_EXT_SYMBOL_ALIAS(glUseProgramStagesEXT, glUseProgramStages)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glActiveShaderProgramEXT, (GLuint pipeline, GLuint program))
 -_COREGL_EXT_SYMBOL_ALIAS(glActiveShaderProgramEXT, glActiveShaderProgram)
  _COREGL_EXT_SYMBOL(GL_TRUE, GLuint, glCreateShaderProgramvEXT, (GLenum type, GLsizei count, const char **strings))
 -_COREGL_EXT_SYMBOL_ALIAS(glCreateShaderProgramvEXT, glCreateShaderProgramv)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glBindProgramPipelineEXT, (GLuint pipeline))
 -_COREGL_EXT_SYMBOL_ALIAS(glBindProgramPipelineEXT, glBindProgramPipeline)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glDeleteProgramPipelinesEXT, (GLsizei n, const GLuint *pipelines))
 -_COREGL_EXT_SYMBOL_ALIAS(glDeleteProgramPipelinesEXT, glDeleteProgramPipelines)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glGenProgramPipelinesEXT, (GLsizei n, GLuint *pipelines))
 -_COREGL_EXT_SYMBOL_ALIAS(glGenProgramPipelinesEXT, glGenProgramPipelines)
  _COREGL_EXT_SYMBOL(GL_TRUE, GLboolean, glIsProgramPipelineEXT, (GLuint pipeline))
 -_COREGL_EXT_SYMBOL_ALIAS(glIsProgramPipelineEXT, glIsProgramPipeline)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramParameteriEXT, (GLuint program, GLenum pname, GLint value))
 -_COREGL_EXT_SYMBOL_ALIAS(glProgramParameteriEXT, glProgramParameteri)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glGetProgramPipelineivEXT, (GLuint pipeline, GLenum pname, GLint *params))
 -_COREGL_EXT_SYMBOL_ALIAS(glGetProgramPipelineivEXT, glGetProgramPipelineiv)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform1iEXT, (GLuint program, GLint location, GLint x))
 -_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform1iEXT, glProgramUniform1i)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform2iEXT, (GLuint program, GLint location, GLint x, GLint y))
 -_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform2iEXT, glProgramUniform2i)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform3iEXT, (GLuint program, GLint location, GLint x, GLint y, GLint z))
 -_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform3iEXT, glProgramUniform3i)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform4iEXT, (GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w))
 -_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform4iEXT, glProgramUniform4i)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform1fEXT, (GLuint program, GLint location, GLfloat x))
 -_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform1fEXT, glProgramUniform1f)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform2fEXT, (GLuint program, GLint location, GLfloat x, GLfloat y))
 -_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform2fEXT, glProgramUniform2f)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform3fEXT, (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z))
 -_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform3fEXT, glProgramUniform3f)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform4fEXT, (GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w))
 -_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform4fEXT, glProgramUniform4f)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform1ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value))
 -_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform1ivEXT, glProgramUniform1iv)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform2ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value))
 -_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform2ivEXT, glProgramUniform2iv)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform3ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value))
 -_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform3ivEXT, glProgramUniform3iv)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform4ivEXT, (GLuint program, GLint location, GLsizei count, const GLint *value))
 -_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform4ivEXT, glProgramUniform4iv)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform1fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value))
 -_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform1fvEXT, glProgramUniform1fv)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform2fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value))
 -_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform2fvEXT, glProgramUniform2fv)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform3fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value))
 -_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform3fvEXT, glProgramUniform3fv)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniform4fvEXT, (GLuint program, GLint location, GLsizei count, const GLfloat *value))
 -_COREGL_EXT_SYMBOL_ALIAS(glProgramUniform4fvEXT, glProgramUniform4fv)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniformMatrix2fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))
 -_COREGL_EXT_SYMBOL_ALIAS(glProgramUniformMatrix2fvEXT, glProgramUniformMatrix2fv)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniformMatrix3fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))
 -_COREGL_EXT_SYMBOL_ALIAS(glProgramUniformMatrix3fvEXT, glProgramUniformMatrix3fv)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glProgramUniformMatrix4fvEXT, (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value))
 -_COREGL_EXT_SYMBOL_ALIAS(glProgramUniformMatrix4fvEXT, glProgramUniformMatrix4fv)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glValidateProgramPipelineEXT, (GLuint pipeline))
 -_COREGL_EXT_SYMBOL_ALIAS(glValidateProgramPipelineEXT, glValidateProgramPipeline)
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glGetProgramPipelineInfoLogEXT, (GLuint pipeline, GLsizei bufSize, GLsizei *length, char *infoLog))
 -_COREGL_EXT_SYMBOL_ALIAS(glGetProgramPipelineInfoLogEXT, glGetProgramPipelineInfoLog)
  
 -// EXT_multisampled_render_to_texture
 -_COREGL_EXT_SYMBOL(GL_TRUE, void, glRenderbufferStorageMultisampleEXT, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height))
 -_COREGL_EXT_SYMBOL_ALIAS(glRenderbufferStorageMultisampleEXT, glRenderbufferStorageMultisample)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_EXT_multisampled_render_to_texture", 2.0, -1)
 +_COREGL_EXT_SYMBOL_ALIAS(glRenderbufferStorageMultisampleEXT, glRenderbufferStorageMultisample) // Replaced to ES 3.0 API
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glFramebufferTexture2DMultisampleEXT, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLsizei samples))
 -_COREGL_EXT_SYMBOL_ALIAS(glFramebufferTexture2DMultisampleEXT, glFramebufferTexture2DMultisample)
 -
 -// EXT_discard_framebuffer
 -_COREGL_EXT_SYMBOL(GL_TRUE, void, glDiscardFramebufferEXT, (GLenum target, GLsizei numAttachments, const GLenum *attachments))
 -_COREGL_EXT_SYMBOL_ALIAS(glDiscardFramebufferEXT, glDiscardFramebuffer)
 -
 -// OES_texture_3d
 -_COREGL_EXT_SYMBOL(GL_TRUE, void, glTexImage3DOES, (GLenum target, GLint level, GLenum GLinternalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels))
 -_COREGL_EXT_SYMBOL_ALIAS(glTexImage3DOES, glTexImage3D)
 -_COREGL_EXT_SYMBOL(GL_TRUE, void, glTexSubImage3DOES, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels))
 -_COREGL_EXT_SYMBOL_ALIAS(glTexSubImage3DOES, glTexSubImage3D)
 -_COREGL_EXT_SYMBOL(GL_TRUE, void, glCopyTexSubImage3DOES, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height))
 -_COREGL_EXT_SYMBOL_ALIAS(glCopyTexSubImage3DOES, glCopyTexSubImage3D)
 -_COREGL_EXT_SYMBOL(GL_TRUE, void, glCompressedTexImage3DOES, (GLenum target, GLint level, GLenum GLinternalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data))
 -_COREGL_EXT_SYMBOL_ALIAS(glCompressedTexImage3DOES, glCompressedTexImage3D)
 -_COREGL_EXT_SYMBOL(GL_TRUE, void, glCompressedTexSubImage3DOES, (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data))
 -_COREGL_EXT_SYMBOL_ALIAS(glCompressedTexSubImage3DOES, glCompressedTexSubImage3D)
 +
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_EXT_discard_framebuffer", 1.0, -1)
 +_COREGL_EXT_SYMBOL_ALIAS(glDiscardFramebufferEXT, glInvalidateFramebuffer) // Replaced to ES 3.0 API
 +
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_texture_3D", 2.0, -1)
 +_COREGL_EXT_SYMBOL_ALIAS(glTexImage3DOES, glTexImage3D) // Replaced to ES 3.0 API
 +_COREGL_EXT_SYMBOL_ALIAS(glTexSubImage3DOES, glTexSubImage3D) // Replaced to ES 3.0 API
 +_COREGL_EXT_SYMBOL_ALIAS(glCopyTexSubImage3DOES, glCopyTexSubImage3D) // Replaced to ES 3.0 API
 +_COREGL_EXT_SYMBOL_ALIAS(glCompressedTexImage3DOES, glCompressedTexImage3D) // Replaced to ES 3.0 API
 +_COREGL_EXT_SYMBOL_ALIAS(glCompressedTexSubImage3DOES, glCompressedTexSubImage3D) // Replaced to ES 3.0 API
  _COREGL_EXT_SYMBOL(GL_TRUE, void, glFramebufferTexture3DOES, (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset))
 -_COREGL_EXT_SYMBOL_ALIAS(glFramebufferTexture3DOES, glFramebufferTexture3D)
  
+ // ANGLE_framebuffer_blit
+ _COREGL_EXT_SYMBOL(GL_TRUE, void, glBlitFramebufferANGLE, (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter))
+ // ANGLE_framebuffer_multisample
+ _COREGL_EXT_SYMBOL(GL_TRUE, void, glRenderbufferStorageMultisampleANGLE, (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height))
  
 -/* Verified extensions */
 +/* Fastpath Verified extensions */
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_IMG_shader_binary", -1, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_ARM_mali_shader_binary", -1, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_VIV_shader_binary", -1, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_DMP_shader_binary", -1, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_FJ_shader_binary_GCCSO", -1, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_ARM_mali_shader_binary", -1, -1)
 +
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_compressed_ETC1_RGB8_texture", -1, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_compressed_paletted_texture", -1, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_AMD_compressed_3DC_texture", -1, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_AMD_compressed_ATC_texture", -1, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_EXT_texture_compression_dxt1", -1, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_IMG_texture_compression_pvrtc", -1, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_NV_texture_compression_s3tc_update", -1, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_ANGLE_texture_compression_dxt3", -1, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_ANGLE_texture_compression_dxt5", -1, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_KHR_texture_compression_astc_ldr", -1, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_NV_texture_compression_s3tc", -1, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_NV_texture_compression_latc", -1, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_IMG_texture_compression_pvrtc2", -1, -1)
 +
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_EXT_texture_type_2_10_10_10_REV", -1, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_EXT_texture_format_BGRA8888", -1, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_APPLE_texture_format_BGRA8888", 1.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_texture_half_float_linear", 2.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_texture_float_linear", 2.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_texture_half_float", 2.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_texture_float", 2.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_texture_npot", 1.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_IMG_texture_env_enhanced_fixed_function", 1.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_APPLE_texture_max_level", 1.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_NV_texture_npot_2D_mipmap", 2.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_ANGLE_texture_usage", 2.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_EXT_texture_rg", 2.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_EXT_sRGB", 1.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_EXT_texture_sRGB_decode", 2.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_EXT_texture_filter_anisotropic", 1.2, -1)
 +
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_standard_derivatives", 2.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_depth24", 1.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_ARM_rgba8", 1.1, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_depth_texture", 2.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_packed_depth_stencil", 1.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_EXT_texture_format_BGRA8888", 1.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_EXT_blend_minmax", -1, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_EGL_sync", -1, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_rgb8_rgba8", 1.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_EXT_shader_texture_lod", 2.0, -1)
 +
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_element_index_uint", 1.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_fbo_render_mipmap", 1.0, -1)
 +
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_depth_texture_cube_map", 2.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_vertex_half_float", 2.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_vertex_type_10_10_10_2", 2.0, -1)
 +
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_EXT_color_buffer_half_float", 2.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_EXT_color_buffer_float", 3.0, -1)
 +
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_element_index_uint", 1.0, -1)
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_OES_element_index_uint", 1.0, -1)
 +
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_EXT_debug_marker", 1.1, -1)
  
 -// AMD_performance_monitor
 +_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_AMD_performance_monitor", -1, -1)
  _COREGL_EXT_SYMBOL_FASTPATH_PASS(glGetPerfMonitorGroupsAMD)
  _COREGL_EXT_SYMBOL_FASTPATH_PASS(glGetPerfMonitorCountersAMD)
  _COREGL_EXT_SYMBOL_FASTPATH_PASS(glGetPerfMonitorGroupStringAMD)
@@@ -499,15 -327,10 +506,19 @@@ _COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExt
  _COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtIsProgramBinaryQCOM)
  _COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glExtGetProgramBinarySourceQCOM)
  
 +// ANGLE_framebuffer_blit
 +//_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_ANGLE_framebuffer_blit", 1.0, -1)
 +_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glBlitFramebufferANGLE)
 +
 +// ANGLE_framebuffer_multisample
 +//_COREGL_FASTPATH_SUPPORTED_EXTENSION("GL_ANGLE_framebuffer_multisample", 1.0, -1)
 +_COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glRenderbufferStorageMultisampleANGLE)
 +
+ // ES3 Invalid usages
+ _COREGL_EXT_SYMBOL_FASTPATH_BLOCK(glBlitFramebuffer)
 +
  #ifdef _COREGL_EXT_SYMBOL_NOT_DEFINED
  #undef _COREGL_EXT_SYMBOL_NOT_DEFINED
  #undef _COREGL_EXT_SYMBOL