mesa/es: Pass context to _mesa_init_bufferobj_dispatch

With this change _mesa_init_bufferobj_dispatch won't set function
pointers that don't exist in OpenGL ES.

v2: Use _mesa_is_desktop_gl and _mesa_is_gles3 as suggested by Ken.

Signed-off-by: Ian Romanick <ian.d.romanick@intel.com>
Reviewed-by: Brian Paul <brianp@vmware.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
This commit is contained in:
Ian Romanick 2012-08-13 10:23:22 -07:00
parent 342be8aa88
commit e2370bcc1d
3 changed files with 9 additions and 5 deletions

View File

@ -653,7 +653,7 @@ _mesa_create_exec_table(struct gl_context *ctx)
#endif
/* ARB 28. GL_ARB_vertex_buffer_object */
_mesa_init_bufferobj_dispatch(exec);
_mesa_init_bufferobj_dispatch(ctx, exec);
/* ARB 29. GL_ARB_occlusion_query */
_mesa_init_queryobj_dispatch(exec);

View File

@ -2201,7 +2201,7 @@ _mesa_BindBufferBase(GLenum target, GLuint index, GLuint buffer)
}
void
_mesa_init_bufferobj_dispatch(struct _glapi_table *disp)
_mesa_init_bufferobj_dispatch(struct gl_context *ctx, struct _glapi_table *disp)
{
SET_BindBufferARB(disp, _mesa_BindBufferARB);
SET_BufferDataARB(disp, _mesa_BufferDataARB);
@ -2214,6 +2214,9 @@ _mesa_init_bufferobj_dispatch(struct _glapi_table *disp)
SET_IsBufferARB(disp, _mesa_IsBufferARB);
SET_MapBufferARB(disp, _mesa_MapBufferARB);
SET_UnmapBufferARB(disp, _mesa_UnmapBufferARB);
SET_BindBufferRangeEXT(disp, _mesa_BindBufferRange);
SET_BindBufferBaseEXT(disp, _mesa_BindBufferBase);
if (_mesa_is_desktop_gl(ctx) || _mesa_is_gles3(ctx)) {
SET_BindBufferRangeEXT(disp, _mesa_BindBufferRange);
SET_BindBufferBaseEXT(disp, _mesa_BindBufferBase);
}
}

View File

@ -167,6 +167,7 @@ _mesa_BindBufferRange(GLenum target, GLuint index,
GLuint buffer, GLintptr offset, GLsizeiptr size);
extern void
_mesa_init_bufferobj_dispatch(struct _glapi_table *disp);
_mesa_init_bufferobj_dispatch(struct gl_context *ctx,
struct _glapi_table *disp);
#endif