Match the exports ordinals to PowerVR.

BUG=18110152

Change-Id: I6152faa4c5717fdb34e10b9d8f5b531683886910
Reviewed-on: https://swiftshader-review.googlesource.com/1280
Reviewed-by: Nicolas Capens <nicolascapens@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/GLES2/libGLES_CM/libGLES_CM.cpp b/src/GLES2/libGLES_CM/libGLES_CM.cpp
index 6d71b43..1033613 100644
--- a/src/GLES2/libGLES_CM/libGLES_CM.cpp
+++ b/src/GLES2/libGLES_CM/libGLES_CM.cpp
@@ -20,9 +20,14 @@
 #include "Texture.h"

 #include "Query.h"

 #include "common/debug.h"

+#include "Common/SharedLibrary.hpp"

 #include "Common/Version.h"

 #include "Main/Register.hpp"

 

+#define EGLAPI

+#include <EGL/egl.h>

+#include <EGL/eglext.h>

+

 #define GL_API

 #include <GLES/gl.h>

 #define GL_GLEXT_PROTOTYPES

@@ -120,6 +125,222 @@
 extern "C"

 {

 

+EGLint EGLAPIENTRY eglGetError(void)

+{

+	static auto eglGetError = (EGLint (EGLAPIENTRY*)(void))getProcAddress(libEGL, "eglGetError");

+	return eglGetError();

+}

+

+EGLDisplay EGLAPIENTRY eglGetDisplay(EGLNativeDisplayType display_id)

+{

+    static auto eglGetDisplay = (EGLDisplay (EGLAPIENTRY*)(EGLNativeDisplayType display_id))getProcAddress(libEGL, "eglGetDisplay");

+	return eglGetDisplay(display_id);

+}

+

+EGLBoolean EGLAPIENTRY eglInitialize(EGLDisplay dpy, EGLint *major, EGLint *minor)

+{

+    static auto eglInitialize = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLint *major, EGLint *minor))getProcAddress(libEGL, "eglInitialize");

+	return eglInitialize(dpy, major, minor);

+}

+

+EGLBoolean EGLAPIENTRY eglTerminate(EGLDisplay dpy)

+{

+    static auto eglTerminate = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy))getProcAddress(libEGL, "eglTerminate");

+	return eglTerminate(dpy);

+}

+

+const char *EGLAPIENTRY eglQueryString(EGLDisplay dpy, EGLint name)

+{

+    static auto eglQueryString = (const char *(EGLAPIENTRY*)(EGLDisplay dpy, EGLint name))getProcAddress(libEGL, "eglQueryString");

+	return eglQueryString(dpy, name);

+}

+

+EGLBoolean EGLAPIENTRY eglGetConfigs(EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config)

+{

+    static auto eglGetConfigs = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLConfig *configs, EGLint config_size, EGLint *num_config))getProcAddress(libEGL, "eglGetConfigs");

+	return eglGetConfigs(dpy, configs, config_size, num_config);

+}

+

+EGLBoolean EGLAPIENTRY eglChooseConfig(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config)

+{

+    static auto eglChooseConfig = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, const EGLint *attrib_list, EGLConfig *configs, EGLint config_size, EGLint *num_config))getProcAddress(libEGL, "eglChooseConfig");

+	return eglChooseConfig(dpy, attrib_list, configs, config_size, num_config);

+}

+

+EGLBoolean EGLAPIENTRY eglGetConfigAttrib(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value)

+{

+    static auto eglGetConfigAttrib = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLConfig config, EGLint attribute, EGLint *value))getProcAddress(libEGL, "eglGetConfigAttrib");

+	return eglGetConfigAttrib(dpy, config, attribute, value);

+}

+

+EGLSurface EGLAPIENTRY eglCreateWindowSurface(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType window, const EGLint *attrib_list)

+{

+    static auto eglCreateWindowSurface = (EGLSurface (EGLAPIENTRY*)(EGLDisplay dpy, EGLConfig config, EGLNativeWindowType window, const EGLint *attrib_list))getProcAddress(libEGL, "eglCreateWindowSurface");

+	return eglCreateWindowSurface(dpy, config, window, attrib_list);

+}

+

+EGLSurface EGLAPIENTRY eglCreatePbufferSurface(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list)

+{

+    static auto eglCreatePbufferSurface = (EGLSurface (EGLAPIENTRY*)(EGLDisplay dpy, EGLConfig config, const EGLint *attrib_list))getProcAddress(libEGL, "eglCreatePbufferSurface");

+	return eglCreatePbufferSurface(dpy, config, attrib_list);

+}

+

+EGLSurface EGLAPIENTRY eglCreatePixmapSurface(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list)

+{

+    static auto eglCreatePixmapSurface = (EGLSurface (EGLAPIENTRY*)(EGLDisplay dpy, EGLConfig config, EGLNativePixmapType pixmap, const EGLint *attrib_list))getProcAddress(libEGL, "eglCreatePixmapSurface");

+	return eglCreatePixmapSurface(dpy, config, pixmap, attrib_list);

+}

+

+EGLBoolean EGLAPIENTRY eglDestroySurface(EGLDisplay dpy, EGLSurface surface)

+{

+    static auto eglDestroySurface = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLSurface surface))getProcAddress(libEGL, "eglDestroySurface");

+	return eglDestroySurface(dpy, surface);

+}

+

+EGLBoolean EGLAPIENTRY eglQuerySurface(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value)

+{

+    static auto eglQuerySurface = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint *value))getProcAddress(libEGL, "eglQuerySurface");

+	return eglQuerySurface(dpy, surface, attribute, value);

+}

+

+EGLBoolean EGLAPIENTRY eglBindAPI(EGLenum api)

+{

+    static auto eglBindAPI = (EGLBoolean (EGLAPIENTRY*)(EGLenum api))getProcAddress(libEGL, "eglBindAPI");

+	return eglBindAPI(api);

+}

+

+EGLenum EGLAPIENTRY eglQueryAPI(void)

+{

+    static auto eglQueryAPI = (EGLenum (EGLAPIENTRY*)(void))getProcAddress(libEGL, "eglQueryAPI");

+	return eglQueryAPI();

+}

+

+EGLBoolean EGLAPIENTRY eglWaitClient(void)

+{

+	static auto eglWaitClient = (EGLBoolean (EGLAPIENTRY*)(void))getProcAddress(libEGL, "eglWaitClient");

+	return eglWaitClient();

+}

+

+EGLBoolean EGLAPIENTRY eglReleaseThread(void)

+{

+    static auto eglReleaseThread = (EGLBoolean (EGLAPIENTRY*)(void))getProcAddress(libEGL, "eglReleaseThread");

+	return eglReleaseThread();

+}

+

+EGLSurface EGLAPIENTRY eglCreatePbufferFromClientBuffer(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list)

+{

+    static auto eglCreatePbufferFromClientBuffer = (EGLSurface (EGLAPIENTRY*)(EGLDisplay dpy, EGLenum buftype, EGLClientBuffer buffer, EGLConfig config, const EGLint *attrib_list))getProcAddress(libEGL, "eglCreatePbufferFromClientBuffer");

+	return eglCreatePbufferFromClientBuffer(dpy, buftype, buffer, config, attrib_list);

+}

+

+EGLBoolean EGLAPIENTRY eglSurfaceAttrib(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value)

+{

+    static auto eglSurfaceAttrib = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLSurface surface, EGLint attribute, EGLint value))getProcAddress(libEGL, "eglSurfaceAttrib");

+	return eglSurfaceAttrib(dpy, surface, attribute, value);

+}

+

+EGLBoolean EGLAPIENTRY eglBindTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer)

+{

+    static auto eglBindTexImage = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLSurface surface, EGLint buffer))getProcAddress(libEGL, "eglBindTexImage");

+	return eglBindTexImage(dpy, surface, buffer);

+}

+

+EGLBoolean EGLAPIENTRY eglReleaseTexImage(EGLDisplay dpy, EGLSurface surface, EGLint buffer)

+{

+    static auto eglReleaseTexImage = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLSurface surface, EGLint buffer))getProcAddress(libEGL, "eglReleaseTexImage");

+	return eglReleaseTexImage(dpy, surface, buffer);

+}

+

+EGLBoolean EGLAPIENTRY eglSwapInterval(EGLDisplay dpy, EGLint interval)

+{

+    static auto eglSwapInterval = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLint interval))getProcAddress(libEGL, "eglSwapInterval");

+	return eglSwapInterval(dpy, interval);

+}

+

+EGLContext EGLAPIENTRY eglCreateContext(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list)

+{

+    static auto eglCreateContext = (EGLContext (EGLAPIENTRY*)(EGLDisplay dpy, EGLConfig config, EGLContext share_context, const EGLint *attrib_list))getProcAddress(libEGL, "eglCreateContext");

+	return eglCreateContext(dpy, config, share_context, attrib_list);

+}

+

+EGLBoolean EGLAPIENTRY eglDestroyContext(EGLDisplay dpy, EGLContext ctx)

+{

+    static auto eglDestroyContext = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLContext ctx))getProcAddress(libEGL, "eglDestroyContext");

+	return eglDestroyContext(dpy, ctx);

+}

+

+EGLBoolean EGLAPIENTRY eglMakeCurrent(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx)

+{

+    static auto eglMakeCurrent = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLSurface draw, EGLSurface read, EGLContext ctx))getProcAddress(libEGL, "eglMakeCurrent");

+	return eglMakeCurrent(dpy, draw, read, ctx);

+}

+

+EGLContext EGLAPIENTRY eglGetCurrentContext(void)

+{

+    static auto eglGetCurrentContext = (EGLContext (EGLAPIENTRY*)(void))getProcAddress(libEGL, "eglGetCurrentContext");

+	return eglGetCurrentContext();

+}

+

+EGLSurface EGLAPIENTRY eglGetCurrentSurface(EGLint readdraw)

+{

+    static auto eglGetCurrentSurface = (EGLSurface (EGLAPIENTRY*)(EGLint readdraw))getProcAddress(libEGL, "eglGetCurrentSurface");

+	return eglGetCurrentSurface(readdraw);

+}

+

+EGLDisplay EGLAPIENTRY eglGetCurrentDisplay(void)

+{

+    static auto eglGetCurrentDisplay = (EGLDisplay (EGLAPIENTRY*)(void))getProcAddress(libEGL, "eglGetCurrentDisplay");

+	return eglGetCurrentDisplay();

+}

+

+EGLBoolean EGLAPIENTRY eglQueryContext(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value)

+{

+    static auto eglQueryContext = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLContext ctx, EGLint attribute, EGLint *value))getProcAddress(libEGL, "eglQueryContext");

+	return eglQueryContext(dpy, ctx, attribute, value);

+}

+

+EGLBoolean EGLAPIENTRY eglWaitGL(void)

+{

+    static auto eglWaitGL = (EGLBoolean (EGLAPIENTRY*)(void))getProcAddress(libEGL, "eglWaitGL");

+	return eglWaitGL();

+}

+

+EGLBoolean EGLAPIENTRY eglWaitNative(EGLint engine)

+{

+    static auto eglWaitNative = (EGLBoolean (EGLAPIENTRY*)(EGLint engine))getProcAddress(libEGL, "eglWaitNative");

+	return eglWaitNative(engine);

+}

+

+EGLBoolean EGLAPIENTRY eglSwapBuffers(EGLDisplay dpy, EGLSurface surface)

+{

+    static auto eglSwapBuffers = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLSurface surface))getProcAddress(libEGL, "eglSwapBuffers");

+	return eglSwapBuffers(dpy, surface);

+}

+

+EGLBoolean EGLAPIENTRY eglCopyBuffers(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target)

+{

+    static auto eglCopyBuffers = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLSurface surface, EGLNativePixmapType target))getProcAddress(libEGL, "eglCopyBuffers");

+	return eglCopyBuffers(dpy, surface, target);

+}

+

+EGLImageKHR EGLAPIENTRY eglCreateImageKHR(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list)

+{

+    static auto eglCreateImageKHR = (EGLImageKHR (EGLAPIENTRY*)(EGLDisplay dpy, EGLContext ctx, EGLenum target, EGLClientBuffer buffer, const EGLint *attrib_list))getProcAddress(libEGL, "eglCreateImageKHR");

+	return eglCreateImageKHR(dpy, ctx, target, buffer, attrib_list);

+}

+

+EGLBoolean EGLAPIENTRY eglDestroyImageKHR(EGLDisplay dpy, EGLImageKHR image)

+{

+    static auto eglDestroyImageKHR = (EGLBoolean (EGLAPIENTRY*)(EGLDisplay dpy, EGLImageKHR image))getProcAddress(libEGL, "eglDestroyImageKHR");

+	return eglDestroyImageKHR(dpy, image);

+}

+

+__eglMustCastToProperFunctionPointerType EGLAPIENTRY eglGetProcAddress(const char *procname)

+{

+    static auto eglGetProcAddress = (__eglMustCastToProperFunctionPointerType (EGLAPIENTRY*)(const char*))getProcAddress(libEGL, "eglGetProcAddress");

+	return eglGetProcAddress(procname);

+}

+

 void GL_APIENTRY glActiveTexture(GLenum texture)

 {

     TRACE("(GLenum texture = 0x%X)", texture);

@@ -2859,6 +3080,11 @@
 	UNIMPLEMENTED();

 }

 

+void GL_APIENTRY glPointSizePointerOES(GLenum type, GLsizei stride, const GLvoid *pointer)

+{

+	UNIMPLEMENTED();

+}

+

 void GL_APIENTRY glPointSizex(GLfixed size)

 {

 	UNIMPLEMENTED();

@@ -3683,7 +3909,8 @@
 		{"glGetFramebufferAttachmentParameterivOES", (__eglMustCastToProperFunctionPointerType)glGetFramebufferAttachmentParameterivOES},

 		{"glGenerateMipmapOES", (__eglMustCastToProperFunctionPointerType)glGenerateMipmapOES},

 		{"glBlendEquationSeparateOES", (__eglMustCastToProperFunctionPointerType)glBlendEquationSeparateOES},

-		{"glBlendFuncSeparateOES", (__eglMustCastToProperFunctionPointerType)glBlendFuncSeparateOES}

+		{"glBlendFuncSeparateOES", (__eglMustCastToProperFunctionPointerType)glBlendFuncSeparateOES},

+		{"glPointSizePointerOES", (__eglMustCastToProperFunctionPointerType)glPointSizePointerOES}

     };

 

     for(int ext = 0; ext < sizeof(glExtensions) / sizeof(Extension); ext++)

diff --git a/src/GLES2/libGLES_CM/libGLES_CM.def b/src/GLES2/libGLES_CM/libGLES_CM.def
index ea03026..253c1c5 100644
--- a/src/GLES2/libGLES_CM/libGLES_CM.def
+++ b/src/GLES2/libGLES_CM/libGLES_CM.def
@@ -1,156 +1,186 @@
 LIBRARY libGLES_CM
 EXPORTS
-    glActiveTexture
-    glAlphaFunc
-    glAlphaFuncx
-    glBindBuffer
-    glBindTexture
-    glBlendFunc
-    glBufferData
-    glBufferSubData
-    glClear
-    glClearColor
-    glClearColorx
-    glClearDepthf
-    glClearDepthx
-    glClearStencil
-    glClientActiveTexture
-    glClipPlanef
-    glClipPlanex
-    glColor4f
-    glColor4ub
-    glColor4x
-    glColorMask
-    glColorPointer
-    glCompressedTexImage2D
-    glCompressedTexSubImage2D
-    glCopyTexImage2D
-    glCopyTexSubImage2D
-    glCullFace
-    glDeleteBuffers
-    glDeleteTextures
-    glDepthFunc
-    glDepthMask
-    glDepthRangef
-    glDepthRangex
-    glDisable
-    glDisableClientState
-    glDrawArrays
-    glDrawElements
-    glEnable
-    glEnableClientState
-    glFinish
-    glFlush
-    glFogf
-    glFogfv
-    glFogx
-    glFogxv
-    glFrontFace
-    glFrustumf
-    glFrustumx
-    glGenBuffers
-    glGenTextures
-    glGetBooleanv
-    glGetBufferParameteriv
-    glGetClipPlanef
-    glGetClipPlanex
-    glGetError
-    glGetFixedv
-    glGetFloatv
-    glGetIntegerv
-    glGetLightfv
-    glGetLightxv
-    glGetMaterialfv
-    glGetMaterialxv
-    glGetPointerv
-    glGetString
-    glGetTexEnvfv
-    glGetTexEnviv
-    glGetTexEnvxv
-    glGetTexParameterfv
-    glGetTexParameteriv
-    glGetTexParameterxv
-    glHint
-    glIsBuffer
-    glIsEnabled
-    glIsTexture
-    glLightModelf
-    glLightModelfv
-    glLightModelx
-    glLightModelxv
-    glLightf
-    glLightfv
-    glLightx
-    glLightxv
-    glLineWidth
-    glLineWidthx
-    glLoadIdentity
-    glLoadMatrixf
-    glLoadMatrixx
-    glLogicOp
-    glMaterialf
-    glMaterialfv
-    glMaterialx
-    glMaterialxv
-    glMatrixMode
-    glMultMatrixf
-    glMultMatrixx
-    glMultiTexCoord4f
-    glMultiTexCoord4x
-    glNormal3f
-    glNormal3x
-    glNormalPointer
-    glOrthof
-    glOrthox
-    glPixelStorei
-    glPointParameterf
-    glPointParameterfv
-    glPointParameterx
-    glPointParameterxv
-    glPointSize
-    glPointSizex
-    glPolygonOffset
-    glPolygonOffsetx
-    glPopMatrix
-    glPushMatrix
-    glReadPixels
-    glRotatef
-    glRotatex
-    glSampleCoverage
-    glSampleCoveragex
-    glScalef
-    glScalex
-    glScissor
-    glShadeModel
-    glStencilFunc
-    glStencilMask
-    glStencilOp
-    glTexCoordPointer
-    glTexEnvf
-    glTexEnvfv
-    glTexEnvi
-    glTexEnviv
-    glTexEnvx
-    glTexEnvxv
-    glTexImage2D
-    glTexParameterf
-    glTexParameterfv
-    glTexParameteri
-    glTexParameteriv
-    glTexParameterx
-    glTexParameterxv
-    glTexSubImage2D
-    glTranslatef
-    glTranslatex
-    glVertexPointer
-    glViewport
+	eglBindTexImage    @134
+    eglChooseConfig    @1
+    eglCopyBuffers    @2
+    eglCreateContext    @3
+    eglCreatePbufferSurface    @4
+    eglCreatePixmapSurface    @5
+    eglCreateWindowSurface    @6
+    eglDestroyContext    @7
+    eglDestroySurface    @8
+    eglGetConfigAttrib    @9
+    eglGetConfigs    @10
+    eglGetCurrentContext    @11
+    eglGetCurrentDisplay    @12
+    eglGetCurrentSurface    @13
+    eglGetDisplay    @14
+    eglGetError    @15
+    eglGetProcAddress    @16
+    eglInitialize    @17
+    eglMakeCurrent    @18
+    eglQueryContext    @19
+    eglQueryString    @20
+    eglQuerySurface    @21
+    eglReleaseTexImage    @135
+    eglSurfaceAttrib    @133
+    eglSwapBuffers    @22
+    eglSwapInterval    @132
+    eglTerminate    @23
+    eglWaitGL    @24
+    eglWaitNative    @25
+    glActiveTexture    @26
+    glAlphaFunc    @27
+    glAlphaFuncx    @28
+    glBindBuffer    @136
+    glBindTexture    @29
+    glBlendFunc    @30
+    glBufferData    @137
+    glBufferSubData    @138
+    glClear    @31
+    glClearColor    @32
+    glClearColorx    @33
+    glClearDepthf    @34
+    glClearDepthx    @35
+    glClearStencil    @36
+    glClientActiveTexture    @37
+    glClipPlanef    @139
+    glClipPlanex    @140
+    glColor4f    @38
+    glColor4ub    @141
+    glColor4x    @39
+    glColorMask    @40
+    glColorPointer    @41
+    glCompressedTexImage2D    @42
+    glCompressedTexSubImage2D    @43
+    glCopyTexImage2D    @44
+    glCopyTexSubImage2D    @45
+    glCullFace    @46
+    glDeleteBuffers    @142
+    glDeleteTextures    @47
+    glDepthFunc    @48
+    glDepthMask    @49
+    glDepthRangef    @50
+    glDepthRangex    @51
+    glDisable    @52
+    glDisableClientState    @53
+    glDrawArrays    @54
+    glDrawElements    @55
+    glEnable    @56
+    glEnableClientState    @57
+    glFinish    @58
+    glFlush    @59
+    glFogf    @60
+    glFogfv    @61
+    glFogx    @62
+    glFogxv    @63
+    glFrontFace    @64
+    glFrustumf    @65
+    glFrustumx    @66
+    glGenBuffers    @147
+    glGenTextures    @67
+    glGetBooleanv    @143
+    glGetBufferParameteriv    @144
+    glGetClipPlanef    @145
+    glGetClipPlanex    @146
+    glGetError    @68
+    glGetFixedv    @148
+    glGetFloatv    @149
+    glGetIntegerv    @69
+    glGetLightfv    @150
+    glGetLightxv    @151
+    glGetMaterialfv    @152
+    glGetMaterialxv    @153
+    glGetPointerv    @154
+    glGetString    @70
+    glGetTexEnvfv    @156
+    glGetTexEnviv    @155
+    glGetTexEnvxv    @157
+    glGetTexParameterfv    @159
+    glGetTexParameteriv    @158
+    glGetTexParameterxv    @160
+    glHint    @71
+    glIsBuffer    @161
+    glIsEnabled    @162
+    glIsTexture    @163
+    glLightModelf    @72
+    glLightModelfv    @73
+    glLightModelx    @74
+    glLightModelxv    @75
+    glLightf    @76
+    glLightfv    @77
+    glLightx    @78
+    glLightxv    @79
+    glLineWidth    @80
+    glLineWidthx    @81
+    glLoadIdentity    @82
+    glLoadMatrixf    @83
+    glLoadMatrixx    @84
+    glLogicOp    @85
+    glMaterialf    @86
+    glMaterialfv    @87
+    glMaterialx    @88
+    glMaterialxv    @89
+    glMatrixMode    @90
+    glMultMatrixf    @91
+    glMultMatrixx    @92
+    glMultiTexCoord4f    @93
+    glMultiTexCoord4x    @94
+    glNormal3f    @95
+    glNormal3x    @96
+    glNormalPointer    @97
+    glOrthof    @98
+    glOrthox    @99
+    glPixelStorei    @100
+    glPointParameterf    @164
+    glPointParameterfv    @165
+    glPointParameterx    @166
+    glPointParameterxv    @167
+    glPointSize    @101
+    glPointSizePointerOES    @168
+    glPointSizex    @102
+    glPolygonOffset    @103
+    glPolygonOffsetx    @104
+    glPopMatrix    @105
+    glPushMatrix    @106
+    glReadPixels    @107
+    glRotatef    @108
+    glRotatex    @109
+    glSampleCoverage    @110
+    glSampleCoveragex    @111
+    glScalef    @112
+    glScalex    @113
+    glScissor    @114
+    glShadeModel    @115
+    glStencilFunc    @116
+    glStencilMask    @117
+    glStencilOp    @118
+    glTexCoordPointer    @119
+    glTexEnvf    @120
+    glTexEnvfv    @121
+    glTexEnvi    @169
+    glTexEnviv    @174
+    glTexEnvx    @122
+    glTexEnvxv    @123
+    glTexImage2D    @124
+    glTexParameterf    @125
+    glTexParameterfv    @171
+    glTexParameteri    @170
+    glTexParameteriv    @172
+    glTexParameterx    @126
+    glTexParameterxv    @173
+    glTexSubImage2D    @127
+    glTranslatef    @128
+    glTranslatex    @129
+    glVertexPointer    @130
+    glViewport    @131
 
     ; EGL dependencies
-    glCreateContext                 @144
-    glGetProcAddress                @148
+    glCreateContext
+    glGetProcAddress
 
-	createFrameBuffer               @172
-	createBackBuffer                @173
-	createDepthStencil              @175
+	createFrameBuffer
+	createBackBuffer
+	createDepthStencil
 
 	Register
\ No newline at end of file
diff --git a/src/GLES2/libGLES_CM/libGLES_CM.vcxproj b/src/GLES2/libGLES_CM/libGLES_CM.vcxproj
index 549e620..b3a4689 100644
--- a/src/GLES2/libGLES_CM/libGLES_CM.vcxproj
+++ b/src/GLES2/libGLES_CM/libGLES_CM.vcxproj
@@ -179,9 +179,10 @@
   </ItemGroup>

   <ItemGroup>

     <ClInclude Include="..\common\debug.h" />

-    <ClInclude Include="..\include\GLES2\gl2.h" />

-    <ClInclude Include="..\include\GLES2\gl2ext.h" />

-    <ClInclude Include="..\include\GLES2\gl2platform.h" />

+    <ClInclude Include="..\include\GLES\egl.h" />

+    <ClInclude Include="..\include\GLES\gl.h" />

+    <ClInclude Include="..\include\GLES\glext.h" />

+    <ClInclude Include="..\include\GLES\glplatform.h" />

     <ClInclude Include="Buffer.h" />

     <ClInclude Include="Context.h" />

     <ClInclude Include="Device.hpp" />

diff --git a/src/GLES2/libGLES_CM/libGLES_CM.vcxproj.filters b/src/GLES2/libGLES_CM/libGLES_CM.vcxproj.filters
index ba143d2..b90d7b9 100644
--- a/src/GLES2/libGLES_CM/libGLES_CM.vcxproj.filters
+++ b/src/GLES2/libGLES_CM/libGLES_CM.vcxproj.filters
@@ -109,18 +109,21 @@
     <ClInclude Include="Image.hpp">

       <Filter>Header Files</Filter>

     </ClInclude>

-    <ClInclude Include="..\include\GLES2\gl2.h">

-      <Filter>Header Files</Filter>

-    </ClInclude>

-    <ClInclude Include="..\include\GLES2\gl2ext.h">

-      <Filter>Header Files</Filter>

-    </ClInclude>

-    <ClInclude Include="..\include\GLES2\gl2platform.h">

-      <Filter>Header Files</Filter>

-    </ClInclude>

     <ClInclude Include="..\common\debug.h">

       <Filter>Header Files</Filter>

     </ClInclude>

+    <ClInclude Include="..\include\GLES\egl.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="..\include\GLES\gl.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="..\include\GLES\glext.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

+    <ClInclude Include="..\include\GLES\glplatform.h">

+      <Filter>Header Files</Filter>

+    </ClInclude>

   </ItemGroup>

   <ItemGroup>

     <ResourceCompile Include="libGLES_CM.rc" />

diff --git a/src/GLES2/libGLESv2/libGLESv2.cpp b/src/GLES2/libGLESv2/libGLESv2.cpp
index d6a4904..bef619c 100644
--- a/src/GLES2/libGLESv2/libGLESv2.cpp
+++ b/src/GLES2/libGLESv2/libGLESv2.cpp
@@ -6100,7 +6100,7 @@
 {

 	if(egl::getClientVersion() == 1)

 	{

-		static PFNGLEGLIMAGETARGETTEXTURE2DOESPROC glEGLImageTargetTexture2DOES = (PFNGLEGLIMAGETARGETTEXTURE2DOESPROC)es1::getProcAddress("glEGLImageTargetTexture2DOES");

+		static auto glEGLImageTargetTexture2DOES = (PFNGLEGLIMAGETARGETTEXTURE2DOESPROC)es1::getProcAddress("glEGLImageTargetTexture2DOES");

 		return glEGLImageTargetTexture2DOES(target, image);

 	}

 

diff --git a/src/GLES2/libGLESv2/libGLESv2.def b/src/GLES2/libGLESv2/libGLESv2.def
index c3b133e..07f295d 100644
--- a/src/GLES2/libGLESv2/libGLESv2.def
+++ b/src/GLES2/libGLESv2/libGLESv2.def
@@ -169,11 +169,11 @@
     glGetQueryObjectuivEXT          @171
 
     ; EGL dependencies
-    glCreateContext                 @144
-    glGetProcAddress                @148
+    glCreateContext
+    glGetProcAddress
 
-	createFrameBuffer               @172
-	createBackBuffer                @173
-	createDepthStencil              @175
+	createFrameBuffer
+	createBackBuffer
+	createDepthStencil
 
 	Register
\ No newline at end of file
diff --git a/src/SwiftShader.sln b/src/SwiftShader.sln
index 9984441..105f22e 100644
--- a/src/SwiftShader.sln
+++ b/src/SwiftShader.sln
@@ -18,12 +18,12 @@
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libGLESv2", "GLES2\libGLESv2\libGLESv2.vcxproj", "{B5871A7A-968C-42E3-A33B-981E6F448E78}"

 	ProjectSection(ProjectDependencies) = postProject

 		{7B02CB19-4CDF-4F79-BC9B-7F3F6164A003} = {7B02CB19-4CDF-4F79-BC9B-7F3F6164A003}

+		{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6} = {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}

 	EndProjectSection

 EndProject

 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libEGL", "GLES2\libEGL\libEGL.vcxproj", "{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}"

 	ProjectSection(ProjectDependencies) = postProject

 		{7B02CB19-4CDF-4F79-BC9B-7F3F6164A003} = {7B02CB19-4CDF-4F79-BC9B-7F3F6164A003}

-		{B5871A7A-968C-42E3-A33B-981E6F448E78} = {B5871A7A-968C-42E3-A33B-981E6F448E78}

 	EndProjectSection

 EndProject

 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LLVMAnalysis", "LLVM\lib\Analysis\LLVMAnalysis.vcxproj", "{97EDF19C-6360-4770-9255-EBA2F1A13E9B}"

@@ -226,6 +226,9 @@
 	EndProjectSection

 EndProject

 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libGLES_CM", "GLES2\libGLES_CM\libGLES_CM.vcxproj", "{235B1D85-E6B6-45E2-BA5D-5C60396428FF}"

+	ProjectSection(ProjectDependencies) = postProject

+		{E746FCA9-64C3-433E-85E8-9A5A67AB7ED6} = {E746FCA9-64C3-433E-85E8-9A5A67AB7ED6}

+	EndProjectSection

 EndProject

 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OGLESBasicTnL", "..\tests\third_party\PowerVR\Examples\Beginner\04_BasicTnL\OGLES\Build\WindowsVC2010\OGLESBasicTnL.vcxproj", "{AB1EB229-D86C-41B3-8E20-7A7E1FF5DDF5}"

 	ProjectSection(ProjectDependencies) = postProject