[PATCH 4/5] wined3d: Pass a wined3d_context_gl structure to draw_primitive_arrays().
Henri Verbeet
hverbeet at codeweavers.com
Mon Jun 17 17:03:35 CDT 2019
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
---
dlls/wined3d/context.c | 21 +++++++++++----------
1 file changed, 11 insertions(+), 10 deletions(-)
diff --git a/dlls/wined3d/context.c b/dlls/wined3d/context.c
index d7c9252e1dc..6a7aafc9625 100644
--- a/dlls/wined3d/context.c
+++ b/dlls/wined3d/context.c
@@ -4347,15 +4347,15 @@ void dispatch_compute(struct wined3d_device *device, const struct wined3d_state
}
/* Context activation is done by the caller. */
-static void draw_primitive_arrays(struct wined3d_context *context, const struct wined3d_state *state,
- const void *idx_data, unsigned int idx_size, int base_vertex_idx, unsigned int start_idx,
- unsigned int count, unsigned int start_instance, unsigned int instance_count)
+static void wined3d_context_gl_draw_primitive_arrays(struct wined3d_context_gl *context_gl,
+ const struct wined3d_state *state, const void *idx_data, unsigned int idx_size, int base_vertex_idx,
+ 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;
- 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)];
- const struct wined3d_gl_info *gl_info = context->gl_info;
unsigned int instanced_element_count = 0;
GLenum mode = state->gl_primitive_type;
const void *indices;
@@ -4460,7 +4460,8 @@ static void draw_primitive_arrays(struct wined3d_context *context, const struct
element = &si->elements[element_idx];
ptr = element->data.addr + element->stride * i;
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);
}
@@ -4991,9 +4992,9 @@ void draw_primitive(struct wined3d_device *device, const struct wined3d_state *s
idx_size, parameters->u.direct.base_vertex_idx,
parameters->u.direct.start_idx, parameters->u.direct.index_count, instance_count);
else
- draw_primitive_arrays(context, state, idx_data, idx_size, parameters->u.direct.base_vertex_idx,
- parameters->u.direct.start_idx, parameters->u.direct.index_count,
- parameters->u.direct.start_instance, instance_count);
+ wined3d_context_gl_draw_primitive_arrays(context_gl, state, idx_data, idx_size,
+ parameters->u.direct.base_vertex_idx, parameters->u.direct.start_idx,
+ parameters->u.direct.index_count, parameters->u.direct.start_instance, instance_count);
}
if (context->uses_uavs)
--
2.11.0
More information about the wine-devel
mailing list