+ if (ctx->API != API_OPENGLES2) {
+ SET_ObjectPurgeableAPPLE(exec, _mesa_ObjectPurgeableAPPLE);
+ SET_ObjectUnpurgeableAPPLE(exec, _mesa_ObjectUnpurgeableAPPLE);
+ SET_GetObjectParameterivAPPLE(exec, _mesa_GetObjectParameterivAPPLE);
+ }
+
+ if (ctx->API != API_OPENGLES2) {
+ SET_FramebufferTextureARB(exec, _mesa_FramebufferTextureARB);
+ SET_FramebufferTextureFaceARB(exec, _mesa_FramebufferTextureFaceARB);
+ }
+
+ if (ctx->API != API_OPENGLES2) {
+ SET_ClampColorARB(exec, _mesa_ClampColorARB);
+ }
+
+ /* GL_EXT_texture_integer */
+ if (_mesa_is_desktop_gl(ctx)) {
+ SET_ClearColorIiEXT(exec, _mesa_ClearColorIiEXT);
+ SET_ClearColorIuiEXT(exec, _mesa_ClearColorIuiEXT);
+ }
+ if (ctx->API != API_OPENGLES2) {
+ SET_GetTexParameterIivEXT(exec, _mesa_GetTexParameterIiv);
+ SET_GetTexParameterIuivEXT(exec, _mesa_GetTexParameterIuiv);
+ SET_TexParameterIivEXT(exec, _mesa_TexParameterIiv);
+ SET_TexParameterIuivEXT(exec, _mesa_TexParameterIuiv);
+ }
+
+ /* GL_EXT_gpu_shader4 / OpenGL 3.0 */
+ if (ctx->API != API_OPENGLES2 || _mesa_is_gles3(ctx)) {
+ SET_GetVertexAttribIivEXT(exec, _mesa_GetVertexAttribIiv);
+ SET_GetVertexAttribIuivEXT(exec, _mesa_GetVertexAttribIuiv);
+ SET_VertexAttribIPointerEXT(exec, _mesa_VertexAttribIPointer);
+ }
+
+ /* GL 3.0 (functions not covered by other extensions) */
+ if (ctx->API != API_OPENGLES2 || _mesa_is_gles3(ctx)) {
+ SET_ClearBufferiv(exec, _mesa_ClearBufferiv);
+ SET_ClearBufferuiv(exec, _mesa_ClearBufferuiv);
+ SET_ClearBufferfv(exec, _mesa_ClearBufferfv);
+ SET_ClearBufferfi(exec, _mesa_ClearBufferfi);
+ SET_GetStringi(exec, _mesa_GetStringi);
+ }
+
+ /* GL_ARB_instanced_arrays */
+ if (ctx->API != API_OPENGLES2 || _mesa_is_gles3(ctx)) {
+ SET_VertexAttribDivisorARB(exec, _mesa_VertexAttribDivisor);
+ }
+
+ /* GL_ARB_draw_buffer_blend */
+ if (ctx->API != API_OPENGLES2) {
+ SET_BlendFunciARB(exec, _mesa_BlendFunci);
+ SET_BlendFuncSeparateiARB(exec, _mesa_BlendFuncSeparatei);
+ SET_BlendEquationiARB(exec, _mesa_BlendEquationi);
+ SET_BlendEquationSeparateiARB(exec, _mesa_BlendEquationSeparatei);
+ }
+
+ /* GL_NV_texture_barrier */
+ if (ctx->API != API_OPENGLES2) {
+ SET_TextureBarrierNV(exec, _mesa_TextureBarrierNV);
+ }
+
+ /* GL_ARB_texture_buffer_object */
+ if (ctx->API != API_OPENGLES2) {
+ SET_TexBufferARB(exec, _mesa_TexBuffer);
+ }
+
+ /* GL_ARB_texture_storage */
+ if (ctx->API != API_OPENGLES2) {
+ SET_TexStorage1D(exec, _mesa_TexStorage1D);
+ SET_TextureStorage1DEXT(exec, _mesa_TextureStorage1DEXT);
+ }
+ if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) {
+ SET_TexStorage2D(exec, _mesa_TexStorage2D);
+ SET_TexStorage3D(exec, _mesa_TexStorage3D);
+ }
+ if (_mesa_is_desktop_gl(ctx)) {
+ SET_TextureStorage2DEXT(exec, _mesa_TextureStorage2DEXT);
+ SET_TextureStorage3DEXT(exec, _mesa_TextureStorage3DEXT);
+ }
+
+ if (ctx->API != API_OPENGLES2 || _mesa_is_gles3(ctx)) {
+ _mesa_init_sampler_object_dispatch(ctx, exec);
+ }
+
+ if (_mesa_is_desktop_gl(ctx)) {
+ SET_InvalidateTexSubImage(exec, _mesa_InvalidateTexSubImage);
+ SET_InvalidateTexImage(exec, _mesa_InvalidateTexImage);
+ }
+
+ if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) {
+ SET_InvalidateSubFramebuffer(exec, _mesa_InvalidateSubFramebuffer);
+ SET_InvalidateFramebuffer(exec, _mesa_InvalidateFramebuffer);
+ }