wined3d: Pass a wined3d_context_gl structure to draw_primitive_arrays().
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
3dce7bcffd
commit
578e7cd566
|
@ -4347,15 +4347,15 @@ void dispatch_compute(struct wined3d_device *device, const struct wined3d_state
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Context activation is done by the caller. */
|
/* Context activation is done by the caller. */
|
||||||
static void draw_primitive_arrays(struct wined3d_context *context, const struct wined3d_state *state,
|
static void wined3d_context_gl_draw_primitive_arrays(struct wined3d_context_gl *context_gl,
|
||||||
const void *idx_data, unsigned int idx_size, int base_vertex_idx, unsigned int start_idx,
|
const struct wined3d_state *state, const void *idx_data, unsigned int idx_size, int base_vertex_idx,
|
||||||
unsigned int count, unsigned int start_instance, unsigned int instance_count)
|
unsigned int start_idx, unsigned int count, unsigned int start_instance, unsigned int instance_count)
|
||||||
{
|
{
|
||||||
const struct wined3d_ffp_attrib_ops *ops = &context->d3d_info->ffp_attrib_ops;
|
const struct wined3d_ffp_attrib_ops *ops = &context_gl->c.d3d_info->ffp_attrib_ops;
|
||||||
GLenum idx_type = idx_size == 2 ? GL_UNSIGNED_SHORT : GL_UNSIGNED_INT;
|
GLenum idx_type = idx_size == 2 ? GL_UNSIGNED_SHORT : GL_UNSIGNED_INT;
|
||||||
const struct wined3d_stream_info *si = &context->stream_info;
|
const struct wined3d_stream_info *si = &context_gl->c.stream_info;
|
||||||
|
const struct wined3d_gl_info *gl_info = context_gl->c.gl_info;
|
||||||
unsigned int instanced_elements[ARRAY_SIZE(si->elements)];
|
unsigned int instanced_elements[ARRAY_SIZE(si->elements)];
|
||||||
const struct wined3d_gl_info *gl_info = context->gl_info;
|
|
||||||
unsigned int instanced_element_count = 0;
|
unsigned int instanced_element_count = 0;
|
||||||
GLenum mode = state->gl_primitive_type;
|
GLenum mode = state->gl_primitive_type;
|
||||||
const void *indices;
|
const void *indices;
|
||||||
|
@ -4460,7 +4460,8 @@ static void draw_primitive_arrays(struct wined3d_context *context, const struct
|
||||||
element = &si->elements[element_idx];
|
element = &si->elements[element_idx];
|
||||||
ptr = element->data.addr + element->stride * i;
|
ptr = element->data.addr + element->stride * i;
|
||||||
if (element->data.buffer_object)
|
if (element->data.buffer_object)
|
||||||
ptr += (ULONG_PTR)wined3d_buffer_load_sysmem(state->streams[element->stream_idx].buffer, context);
|
ptr += (ULONG_PTR)wined3d_buffer_load_sysmem(state->streams[element->stream_idx].buffer,
|
||||||
|
&context_gl->c);
|
||||||
ops->generic[element->format->emit_idx](element_idx, ptr);
|
ops->generic[element->format->emit_idx](element_idx, ptr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4991,9 +4992,9 @@ void draw_primitive(struct wined3d_device *device, const struct wined3d_state *s
|
||||||
idx_size, parameters->u.direct.base_vertex_idx,
|
idx_size, parameters->u.direct.base_vertex_idx,
|
||||||
parameters->u.direct.start_idx, parameters->u.direct.index_count, instance_count);
|
parameters->u.direct.start_idx, parameters->u.direct.index_count, instance_count);
|
||||||
else
|
else
|
||||||
draw_primitive_arrays(context, state, idx_data, idx_size, parameters->u.direct.base_vertex_idx,
|
wined3d_context_gl_draw_primitive_arrays(context_gl, state, idx_data, idx_size,
|
||||||
parameters->u.direct.start_idx, parameters->u.direct.index_count,
|
parameters->u.direct.base_vertex_idx, parameters->u.direct.start_idx,
|
||||||
parameters->u.direct.start_instance, instance_count);
|
parameters->u.direct.index_count, parameters->u.direct.start_instance, instance_count);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (context->uses_uavs)
|
if (context->uses_uavs)
|
||||||
|
|
Loading…
Reference in New Issue