wined3d: Introduce a context function to bind a buffer object.

Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Henri Verbeet 2017-04-19 23:40:53 +02:00 committed by Alexandre Julliard
parent da321cebf7
commit 49da36a501
3 changed files with 12 additions and 6 deletions

View File

@ -135,12 +135,7 @@ void wined3d_buffer_invalidate_location(struct wined3d_buffer *buffer, DWORD loc
/* Context activation is done by the caller. */ /* Context activation is done by the caller. */
static void buffer_bind(struct wined3d_buffer *buffer, struct wined3d_context *context) static void buffer_bind(struct wined3d_buffer *buffer, struct wined3d_context *context)
{ {
const struct wined3d_gl_info *gl_info = context->gl_info; context_bind_bo(context, buffer->buffer_type_hint, buffer->buffer_object);
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 activation is done by the caller. */ /* Context activation is done by the caller. */

View File

@ -2510,6 +2510,16 @@ void context_active_texture(struct wined3d_context *context, const struct wined3
context->active_texture = unit; 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) void context_bind_texture(struct wined3d_context *context, GLenum target, GLuint name)
{ {
const struct wined3d_gl_info *gl_info = context->gl_info; const struct wined3d_gl_info *gl_info = context->gl_info;

View File

@ -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; 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, void context_active_texture(struct wined3d_context *context, const struct wined3d_gl_info *gl_info,
unsigned int unit) DECLSPEC_HIDDEN; 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, void context_bind_dummy_textures(const struct wined3d_device *device,
const struct wined3d_context *context) DECLSPEC_HIDDEN; const struct wined3d_context *context) DECLSPEC_HIDDEN;
void context_bind_texture(struct wined3d_context *context, GLenum target, GLuint name) DECLSPEC_HIDDEN; void context_bind_texture(struct wined3d_context *context, GLenum target, GLuint name) DECLSPEC_HIDDEN;