diff --git a/dlls/wined3d/buffer.c b/dlls/wined3d/buffer.c index 52cdc677010..6e1ecb01d01 100644 --- a/dlls/wined3d/buffer.c +++ b/dlls/wined3d/buffer.c @@ -135,12 +135,7 @@ void wined3d_buffer_invalidate_location(struct wined3d_buffer *buffer, DWORD loc /* Context activation is done by the caller. */ static void buffer_bind(struct wined3d_buffer *buffer, struct wined3d_context *context) { - const struct wined3d_gl_info *gl_info = context->gl_info; - - if (buffer->buffer_type_hint == GL_ELEMENT_ARRAY_BUFFER) - context_invalidate_state(context, STATE_INDEXBUFFER); - - GL_EXTCALL(glBindBuffer(buffer->buffer_type_hint, buffer->buffer_object)); + context_bind_bo(context, buffer->buffer_type_hint, buffer->buffer_object); } /* Context activation is done by the caller. */ diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c index 4d1c2a8bd31..3e5e1d03f0b 100644 --- a/dlls/wined3d/context.c +++ b/dlls/wined3d/context.c @@ -2510,6 +2510,16 @@ void context_active_texture(struct wined3d_context *context, const struct wined3 context->active_texture = unit; } +void context_bind_bo(struct wined3d_context *context, GLenum binding, GLuint name) +{ + const struct wined3d_gl_info *gl_info = context->gl_info; + + if (binding == GL_ELEMENT_ARRAY_BUFFER) + context_invalidate_state(context, STATE_INDEXBUFFER); + + GL_EXTCALL(glBindBuffer(binding, name)); +} + void context_bind_texture(struct wined3d_context *context, GLenum target, GLuint name) { const struct wined3d_gl_info *gl_info = context->gl_info; diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 578060a7d10..b5d29074cdb 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -1945,6 +1945,7 @@ void context_apply_fbo_state_blit(struct wined3d_context *context, GLenum target struct wined3d_surface *render_target, struct wined3d_surface *depth_stencil, DWORD location) DECLSPEC_HIDDEN; void context_active_texture(struct wined3d_context *context, const struct wined3d_gl_info *gl_info, unsigned int unit) DECLSPEC_HIDDEN; +void context_bind_bo(struct wined3d_context *context, GLenum binding, GLuint name) DECLSPEC_HIDDEN; void context_bind_dummy_textures(const struct wined3d_device *device, const struct wined3d_context *context) DECLSPEC_HIDDEN; void context_bind_texture(struct wined3d_context *context, GLenum target, GLuint name) DECLSPEC_HIDDEN;