From 51a901e34ec8b0f204acc95f6da6c4fbacd233c8 Mon Sep 17 00:00:00 2001 From: Henri Verbeet Date: Wed, 20 May 2020 18:12:28 +0430 Subject: [PATCH] wined3d: Store the wined3d primitive type in the wined3d state structure. As opposed to the OpenGL primitive type. Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- dlls/wined3d/context_gl.c | 59 +++++++++++++++-- dlls/wined3d/cs.c | 18 ++--- dlls/wined3d/device.c | 118 ++++----------------------------- dlls/wined3d/glsl_shader.c | 5 +- dlls/wined3d/shader.c | 6 +- dlls/wined3d/stateblock.c | 2 +- dlls/wined3d/utils.c | 6 +- dlls/wined3d/wined3d_private.h | 16 ++--- 8 files changed, 93 insertions(+), 137 deletions(-) diff --git a/dlls/wined3d/context_gl.c b/dlls/wined3d/context_gl.c index f08f138e848..c4f14d24bb2 100644 --- a/dlls/wined3d/context_gl.c +++ b/dlls/wined3d/context_gl.c @@ -38,6 +38,52 @@ WINE_DECLARE_DEBUG_CHANNEL(d3d_synchronous); static DWORD wined3d_context_tls_idx; +/* Note that except for WINED3DPT_POINTLIST and WINED3DPT_LINELIST these + * actually have the same values in GL and D3D. */ +static GLenum gl_primitive_type_from_d3d(enum wined3d_primitive_type primitive_type) +{ + switch (primitive_type) + { + case WINED3D_PT_POINTLIST: + return GL_POINTS; + + case WINED3D_PT_LINELIST: + return GL_LINES; + + case WINED3D_PT_LINESTRIP: + return GL_LINE_STRIP; + + case WINED3D_PT_TRIANGLELIST: + return GL_TRIANGLES; + + case WINED3D_PT_TRIANGLESTRIP: + return GL_TRIANGLE_STRIP; + + case WINED3D_PT_TRIANGLEFAN: + return GL_TRIANGLE_FAN; + + case WINED3D_PT_LINELIST_ADJ: + return GL_LINES_ADJACENCY_ARB; + + case WINED3D_PT_LINESTRIP_ADJ: + return GL_LINE_STRIP_ADJACENCY_ARB; + + case WINED3D_PT_TRIANGLELIST_ADJ: + return GL_TRIANGLES_ADJACENCY_ARB; + + case WINED3D_PT_TRIANGLESTRIP_ADJ: + return GL_TRIANGLE_STRIP_ADJACENCY_ARB; + + case WINED3D_PT_PATCH: + return GL_PATCHES; + + default: + FIXME("Unhandled primitive type %s.\n", debug_d3dprimitivetype(primitive_type)); + case WINED3D_PT_UNDEFINED: + return ~0u; + } +} + /* FBO helper functions */ /* Context activation is done by the caller. */ @@ -3931,10 +3977,10 @@ static void wined3d_context_gl_draw_primitive_arrays(struct wined3d_context_gl * 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_gl->c.stream_info; + GLenum mode = gl_primitive_type_from_d3d(state->primitive_type); const struct wined3d_gl_info *gl_info = context_gl->gl_info; unsigned int instanced_elements[ARRAY_SIZE(si->elements)]; unsigned int instanced_element_count = 0; - GLenum mode = state->gl_primitive_type; const void *indices; unsigned int i, j; @@ -4104,7 +4150,7 @@ static void draw_primitive_immediate_mode(struct wined3d_context_gl *context_gl, ops = &d3d_info->ffp_attrib_ops; - gl_info->gl_ops.gl.p_glBegin(state->gl_primitive_type); + gl_info->gl_ops.gl.p_glBegin(gl_primitive_type_from_d3d(state->primitive_type)); if (use_vs(state) || d3d_info->ffp_generic_attributes) { @@ -4289,6 +4335,7 @@ static void draw_primitive_immediate_mode(struct wined3d_context_gl *context_gl, static void wined3d_context_gl_draw_indirect(struct wined3d_context_gl *context_gl, const struct wined3d_state *state, const struct wined3d_indirect_draw_parameters *parameters, unsigned int idx_size) { + GLenum gl_primitive_type = gl_primitive_type_from_d3d(state->primitive_type); const struct wined3d_gl_info *gl_info = context_gl->gl_info; struct wined3d_buffer *buffer = parameters->buffer; const void *offset; @@ -4307,11 +4354,11 @@ static void wined3d_context_gl_draw_indirect(struct wined3d_context_gl *context_ GLenum idx_type = idx_size == 2 ? GL_UNSIGNED_SHORT : GL_UNSIGNED_INT; if (state->index_offset) FIXME("Ignoring index offset %u.\n", state->index_offset); - GL_EXTCALL(glDrawElementsIndirect(state->gl_primitive_type, idx_type, offset)); + GL_EXTCALL(glDrawElementsIndirect(gl_primitive_type, idx_type, offset)); } else { - GL_EXTCALL(glDrawArraysIndirect(state->gl_primitive_type, offset)); + GL_EXTCALL(glDrawArraysIndirect(gl_primitive_type, offset)); } GL_EXTCALL(glBindBuffer(GL_DRAW_INDIRECT_BUFFER, 0)); @@ -4545,7 +4592,7 @@ void draw_primitive(struct wined3d_device *device, const struct wined3d_state *s else if (!context->transform_feedback_active) { enum wined3d_primitive_type primitive_type = shader->u.gs.output_type - ? shader->u.gs.output_type : d3d_primitive_type_from_gl(state->gl_primitive_type); + ? shader->u.gs.output_type : state->primitive_type; GLenum mode = gl_tfb_primitive_type_from_d3d(primitive_type); GL_EXTCALL(glBeginTransformFeedback(mode)); checkGLcall("glBeginTransformFeedback"); @@ -4553,7 +4600,7 @@ void draw_primitive(struct wined3d_device *device, const struct wined3d_state *s } } - if (state->gl_primitive_type == GL_PATCHES) + if (state->primitive_type == WINED3D_PT_PATCH) { GL_EXTCALL(glPatchParameteri(GL_PATCH_VERTICES, state->gl_patch_vertices)); checkGLcall("glPatchParameteri"); diff --git a/dlls/wined3d/cs.c b/dlls/wined3d/cs.c index c704daaf57e..9b50948d017 100644 --- a/dlls/wined3d/cs.c +++ b/dlls/wined3d/cs.c @@ -121,7 +121,7 @@ struct wined3d_cs_dispatch struct wined3d_cs_draw { enum wined3d_cs_op opcode; - GLenum primitive_type; + enum wined3d_primitive_type primitive_type; GLint patch_vertex_count; struct wined3d_draw_parameters parameters; }; @@ -881,13 +881,13 @@ static void wined3d_cs_exec_draw(struct wined3d_cs *cs, const void *data) device_invalidate_state(cs->device, STATE_BASEVERTEXINDEX); } - if (state->gl_primitive_type != op->primitive_type) + if (state->primitive_type != op->primitive_type) { if ((geometry_shader = state->shader[WINED3D_SHADER_TYPE_GEOMETRY]) && !geometry_shader->function) device_invalidate_state(cs->device, STATE_SHADER(WINED3D_SHADER_TYPE_GEOMETRY)); - if (state->gl_primitive_type == GL_POINTS || op->primitive_type == GL_POINTS) + if (state->primitive_type == WINED3D_PT_POINTLIST || op->primitive_type == WINED3D_PT_POINTLIST) device_invalidate_state(cs->device, STATE_POINT_ENABLE); - state->gl_primitive_type = op->primitive_type; + state->primitive_type = op->primitive_type; } state->gl_patch_vertices = op->patch_vertex_count; @@ -962,9 +962,9 @@ static void acquire_graphics_pipeline_resources(const struct wined3d_state *stat state->unordered_access_view[WINED3D_PIPELINE_GRAPHICS]); } -void wined3d_cs_emit_draw(struct wined3d_cs *cs, GLenum primitive_type, unsigned int patch_vertex_count, - int base_vertex_idx, unsigned int start_idx, unsigned int index_count, - unsigned int start_instance, unsigned int instance_count, BOOL indexed) +void wined3d_cs_emit_draw(struct wined3d_cs *cs, enum wined3d_primitive_type primitive_type, + unsigned int patch_vertex_count, int base_vertex_idx, unsigned int start_idx, + unsigned int index_count, unsigned int start_instance, unsigned int instance_count, bool indexed) { const struct wined3d_d3d_info *d3d_info = &cs->device->adapter->d3d_info; const struct wined3d_state *state = &cs->device->state; @@ -987,8 +987,8 @@ void wined3d_cs_emit_draw(struct wined3d_cs *cs, GLenum primitive_type, unsigned wined3d_cs_submit(cs, WINED3D_CS_QUEUE_DEFAULT); } -void wined3d_cs_emit_draw_indirect(struct wined3d_cs *cs, GLenum primitive_type, unsigned int patch_vertex_count, - struct wined3d_buffer *buffer, unsigned int offset, BOOL indexed) +void wined3d_cs_emit_draw_indirect(struct wined3d_cs *cs, enum wined3d_primitive_type primitive_type, + unsigned int patch_vertex_count, struct wined3d_buffer *buffer, unsigned int offset, bool indexed) { const struct wined3d_d3d_info *d3d_info = &cs->device->adapter->d3d_info; const struct wined3d_state *state = &cs->device->state; diff --git a/dlls/wined3d/device.c b/dlls/wined3d/device.c index 618a9bcbe26..72bd403e2c0 100644 --- a/dlls/wined3d/device.c +++ b/dlls/wined3d/device.c @@ -90,96 +90,6 @@ const struct wined3d_light WINED3D_default_light = 0.0f /* Phi */ }; -/* Note that except for WINED3DPT_POINTLIST and WINED3DPT_LINELIST these - * actually have the same values in GL and D3D. */ -GLenum gl_primitive_type_from_d3d(enum wined3d_primitive_type primitive_type) -{ - switch (primitive_type) - { - case WINED3D_PT_POINTLIST: - return GL_POINTS; - - case WINED3D_PT_LINELIST: - return GL_LINES; - - case WINED3D_PT_LINESTRIP: - return GL_LINE_STRIP; - - case WINED3D_PT_TRIANGLELIST: - return GL_TRIANGLES; - - case WINED3D_PT_TRIANGLESTRIP: - return GL_TRIANGLE_STRIP; - - case WINED3D_PT_TRIANGLEFAN: - return GL_TRIANGLE_FAN; - - case WINED3D_PT_LINELIST_ADJ: - return GL_LINES_ADJACENCY_ARB; - - case WINED3D_PT_LINESTRIP_ADJ: - return GL_LINE_STRIP_ADJACENCY_ARB; - - case WINED3D_PT_TRIANGLELIST_ADJ: - return GL_TRIANGLES_ADJACENCY_ARB; - - case WINED3D_PT_TRIANGLESTRIP_ADJ: - return GL_TRIANGLE_STRIP_ADJACENCY_ARB; - - case WINED3D_PT_PATCH: - return GL_PATCHES; - - default: - FIXME("Unhandled primitive type %s.\n", debug_d3dprimitivetype(primitive_type)); - case WINED3D_PT_UNDEFINED: - return ~0u; - } -} - -enum wined3d_primitive_type d3d_primitive_type_from_gl(GLenum primitive_type) -{ - switch (primitive_type) - { - case GL_POINTS: - return WINED3D_PT_POINTLIST; - - case GL_LINES: - return WINED3D_PT_LINELIST; - - case GL_LINE_STRIP: - return WINED3D_PT_LINESTRIP; - - case GL_TRIANGLES: - return WINED3D_PT_TRIANGLELIST; - - case GL_TRIANGLE_STRIP: - return WINED3D_PT_TRIANGLESTRIP; - - case GL_TRIANGLE_FAN: - return WINED3D_PT_TRIANGLEFAN; - - case GL_LINES_ADJACENCY_ARB: - return WINED3D_PT_LINELIST_ADJ; - - case GL_LINE_STRIP_ADJACENCY_ARB: - return WINED3D_PT_LINESTRIP_ADJ; - - case GL_TRIANGLES_ADJACENCY_ARB: - return WINED3D_PT_TRIANGLELIST_ADJ; - - case GL_TRIANGLE_STRIP_ADJACENCY_ARB: - return WINED3D_PT_TRIANGLESTRIP_ADJ; - - case GL_PATCHES: - return WINED3D_PT_PATCH; - - default: - FIXME("Unhandled primitive type %s.\n", debug_d3dprimitivetype(primitive_type)); - case ~0u: - return WINED3D_PT_UNDEFINED; - } -} - BOOL device_context_add(struct wined3d_device *device, struct wined3d_context *context) { struct wined3d_context **new_array; @@ -4066,7 +3976,7 @@ void CDECL wined3d_device_set_primitive_type(struct wined3d_device *device, TRACE("device %p, primitive_type %s, patch_vertex_count %u.\n", device, debug_d3dprimitivetype(primitive_type), patch_vertex_count); - device->state.gl_primitive_type = gl_primitive_type_from_d3d(primitive_type); + device->state.primitive_type = primitive_type; device->state.gl_patch_vertices = patch_vertex_count; } @@ -4076,7 +3986,7 @@ void CDECL wined3d_device_get_primitive_type(const struct wined3d_device *device TRACE("device %p, primitive_type %p, patch_vertex_count %p.\n", device, primitive_type, patch_vertex_count); - *primitive_type = d3d_primitive_type_from_gl(device->state.gl_primitive_type); + *primitive_type = device->state.primitive_type; if (patch_vertex_count) *patch_vertex_count = device->state.gl_patch_vertices; @@ -4087,8 +3997,8 @@ HRESULT CDECL wined3d_device_draw_primitive(struct wined3d_device *device, UINT { TRACE("device %p, start_vertex %u, vertex_count %u.\n", device, start_vertex, vertex_count); - wined3d_cs_emit_draw(device->cs, device->state.gl_primitive_type, device->state.gl_patch_vertices, - 0, start_vertex, vertex_count, 0, 0, FALSE); + wined3d_cs_emit_draw(device->cs, device->state.primitive_type, + device->state.gl_patch_vertices, 0, start_vertex, vertex_count, 0, 0, false); return WINED3D_OK; } @@ -4099,8 +4009,8 @@ void CDECL wined3d_device_draw_primitive_instanced(struct wined3d_device *device TRACE("device %p, start_vertex %u, vertex_count %u, start_instance %u, instance_count %u.\n", device, start_vertex, vertex_count, start_instance, instance_count); - wined3d_cs_emit_draw(device->cs, device->state.gl_primitive_type, device->state.gl_patch_vertices, - 0, start_vertex, vertex_count, start_instance, instance_count, FALSE); + wined3d_cs_emit_draw(device->cs, device->state.primitive_type, device->state.gl_patch_vertices, + 0, start_vertex, vertex_count, start_instance, instance_count, false); } void CDECL wined3d_device_draw_primitive_instanced_indirect(struct wined3d_device *device, @@ -4108,8 +4018,8 @@ void CDECL wined3d_device_draw_primitive_instanced_indirect(struct wined3d_devic { TRACE("device %p, buffer %p, offset %u.\n", device, buffer, offset); - wined3d_cs_emit_draw_indirect(device->cs, device->state.gl_primitive_type, device->state.gl_patch_vertices, - buffer, offset, FALSE); + wined3d_cs_emit_draw_indirect(device->cs, device->state.primitive_type, + device->state.gl_patch_vertices, buffer, offset, false); } HRESULT CDECL wined3d_device_draw_indexed_primitive(struct wined3d_device *device, UINT start_idx, UINT index_count) @@ -4126,8 +4036,8 @@ HRESULT CDECL wined3d_device_draw_indexed_primitive(struct wined3d_device *devic return WINED3DERR_INVALIDCALL; } - wined3d_cs_emit_draw(device->cs, device->state.gl_primitive_type, device->state.gl_patch_vertices, - device->state.base_vertex_index, start_idx, index_count, 0, 0, TRUE); + wined3d_cs_emit_draw(device->cs, device->state.primitive_type, device->state.gl_patch_vertices, + device->state.base_vertex_index, start_idx, index_count, 0, 0, true); return WINED3D_OK; } @@ -4138,8 +4048,8 @@ void CDECL wined3d_device_draw_indexed_primitive_instanced(struct wined3d_device TRACE("device %p, start_idx %u, index_count %u, start_instance %u, instance_count %u.\n", device, start_idx, index_count, start_instance, instance_count); - wined3d_cs_emit_draw(device->cs, device->state.gl_primitive_type, device->state.gl_patch_vertices, - device->state.base_vertex_index, start_idx, index_count, start_instance, instance_count, TRUE); + wined3d_cs_emit_draw(device->cs, device->state.primitive_type, device->state.gl_patch_vertices, + device->state.base_vertex_index, start_idx, index_count, start_instance, instance_count, true); } void CDECL wined3d_device_draw_indexed_primitive_instanced_indirect(struct wined3d_device *device, @@ -4147,8 +4057,8 @@ void CDECL wined3d_device_draw_indexed_primitive_instanced_indirect(struct wined { TRACE("device %p, buffer %p, offset %u.\n", device, buffer, offset); - wined3d_cs_emit_draw_indirect(device->cs, device->state.gl_primitive_type, device->state.gl_patch_vertices, - buffer, offset, TRUE); + wined3d_cs_emit_draw_indirect(device->cs, device->state.primitive_type, + device->state.gl_patch_vertices, buffer, offset, true); } HRESULT CDECL wined3d_device_update_texture(struct wined3d_device *device, diff --git a/dlls/wined3d/glsl_shader.c b/dlls/wined3d/glsl_shader.c index ddde6e0c104..7d16f03a219 100644 --- a/dlls/wined3d/glsl_shader.c +++ b/dlls/wined3d/glsl_shader.c @@ -10348,7 +10348,7 @@ static void set_glsl_shader_program(const struct wined3d_context_gl *context_gl, if (vshader->reg_maps.shader_version.major < 4) { reorder_shader_id = shader_glsl_generate_vs3_rasterizer_input_setup(priv, vshader, pshader, - state->gl_primitive_type == GL_POINTS && vshader->reg_maps.point_size, + state->primitive_type == WINED3D_PT_POINTLIST && vshader->reg_maps.point_size, d3d_info->emulated_flatshading && state->render_states[WINED3D_RS_SHADEMODE] == WINED3D_SHADE_FLAT, gl_info); TRACE("Attaching GLSL shader object %u to program %u.\n", reorder_shader_id, program_id); @@ -11809,7 +11809,8 @@ static void glsl_vertex_pointsprite_core(struct wined3d_context *context, { static unsigned int once; - if (state->gl_primitive_type == GL_POINTS && !state->render_states[WINED3D_RS_POINTSPRITEENABLE] && !once++) + if (state->primitive_type == WINED3D_PT_POINTLIST + && !state->render_states[WINED3D_RS_POINTSPRITEENABLE] && !once++) FIXME("Non-point sprite points not supported in core profile.\n"); } diff --git a/dlls/wined3d/shader.c b/dlls/wined3d/shader.c index dbc889411d3..f4c4eb07d88 100644 --- a/dlls/wined3d/shader.c +++ b/dlls/wined3d/shader.c @@ -3541,7 +3541,7 @@ void find_vs_compile_args(const struct wined3d_state *state, const struct wined3 == WINED3D_FOG_NONE ? VS_FOG_COORD : VS_FOG_Z; args->clip_enabled = state->render_states[WINED3D_RS_CLIPPING] && state->render_states[WINED3D_RS_CLIPPLANEENABLE]; - args->point_size = state->gl_primitive_type == GL_POINTS; + args->point_size = state->primitive_type == WINED3D_PT_POINTLIST; args->per_vertex_point_size = shader->reg_maps.point_size; args->next_shader_type = hull_shader ? WINED3D_SHADER_TYPE_HULL : geometry_shader ? WINED3D_SHADER_TYPE_GEOMETRY : WINED3D_SHADER_TYPE_PIXEL; @@ -3899,7 +3899,7 @@ void find_gs_compile_args(const struct wined3d_state *state, const struct wined3 args->output_count = pixel_shader ? pixel_shader->limits->packed_input : shader->limits->packed_output; if (!(args->primitive_type = shader->u.gs.input_type)) - args->primitive_type = d3d_primitive_type_from_gl(state->gl_primitive_type); + args->primitive_type = state->primitive_type; init_interpolation_compile_args(args->interpolation_mode, pixel_shader, context->d3d_info); } @@ -4155,7 +4155,7 @@ void find_ps_compile_args(const struct wined3d_state *state, const struct wined3 } args->pointsprite = state->render_states[WINED3D_RS_POINTSPRITEENABLE] - && state->gl_primitive_type == GL_POINTS; + && state->primitive_type == WINED3D_PT_POINTLIST; if (d3d_info->ffp_alpha_test) args->alpha_test_func = WINED3D_CMP_ALWAYS - 1; diff --git a/dlls/wined3d/stateblock.c b/dlls/wined3d/stateblock.c index 7e97c84c19e..1ce8e838992 100644 --- a/dlls/wined3d/stateblock.c +++ b/dlls/wined3d/stateblock.c @@ -1818,7 +1818,7 @@ static void state_init_default(struct wined3d_state *state, const struct wined3d TRACE("state %p, d3d_info %p.\n", state, d3d_info); get_identity_matrix(&identity); - state->gl_primitive_type = ~0u; + state->primitive_type = WINED3D_PT_UNDEFINED; state->gl_patch_vertices = 0; /* Set some of the defaults for lights, transforms etc */ diff --git a/dlls/wined3d/utils.c b/dlls/wined3d/utils.c index 62262b81b2f..df948264f95 100644 --- a/dlls/wined3d/utils.c +++ b/dlls/wined3d/utils.c @@ -6334,7 +6334,7 @@ void gen_ffp_frag_op(const struct wined3d_context *context, const struct wined3d } settings->pointsprite = state->render_states[WINED3D_RS_POINTSPRITEENABLE] - && state->gl_primitive_type == GL_POINTS; + && state->primitive_type == WINED3D_PT_POINTLIST; if (d3d_info->ffp_alpha_test) settings->alpha_test_func = WINED3D_CMP_ALWAYS - 1; @@ -6498,7 +6498,7 @@ void wined3d_ffp_get_vs_settings(const struct wined3d_context *context, if (si->position_transformed) { settings->transformed = 1; - settings->point_size = state->gl_primitive_type == GL_POINTS; + settings->point_size = state->primitive_type == WINED3D_PT_POINTLIST; settings->per_vertex_point_size = !!(si->use_map & 1u << WINED3D_FFP_PSIZE); if (!state->render_states[WINED3D_RS_FOGENABLE]) settings->fog_mode = WINED3D_FFP_VS_FOG_OFF; @@ -6546,7 +6546,7 @@ void wined3d_ffp_get_vs_settings(const struct wined3d_context *context, settings->normalize = settings->normal && state->render_states[WINED3D_RS_NORMALIZENORMALS]; settings->lighting = !!state->render_states[WINED3D_RS_LIGHTING]; settings->localviewer = !!state->render_states[WINED3D_RS_LOCALVIEWER]; - settings->point_size = state->gl_primitive_type == GL_POINTS; + settings->point_size = state->primitive_type == WINED3D_PT_POINTLIST; settings->per_vertex_point_size = !!(si->use_map & 1u << WINED3D_FFP_PSIZE); wined3d_get_material_colour_source(&diffuse_source, &emissive_source, diff --git a/dlls/wined3d/wined3d_private.h b/dlls/wined3d/wined3d_private.h index 84391470657..42b558a8aed 100644 --- a/dlls/wined3d/wined3d_private.h +++ b/dlls/wined3d/wined3d_private.h @@ -3488,7 +3488,7 @@ struct wined3d_state unsigned int index_offset; int base_vertex_index; int load_base_vertex_index; /* Non-indexed drawing needs 0 here, indexed needs base_vertex_index. */ - GLenum gl_primitive_type; + enum wined3d_primitive_type primitive_type; GLint gl_patch_vertices; struct wined3d_query *predicate; BOOL predicate_value; @@ -4490,11 +4490,12 @@ void wined3d_cs_emit_dispatch(struct wined3d_cs *cs, unsigned int group_count_x, unsigned int group_count_y, unsigned int group_count_z) DECLSPEC_HIDDEN; void wined3d_cs_emit_dispatch_indirect(struct wined3d_cs *cs, struct wined3d_buffer *buffer, unsigned int offset) DECLSPEC_HIDDEN; -void wined3d_cs_emit_draw(struct wined3d_cs *cs, GLenum primitive_type, unsigned int patch_vertex_count, - int base_vertex_idx, unsigned int start_idx, unsigned int index_count, - unsigned int start_instance, unsigned int instance_count, BOOL indexed) DECLSPEC_HIDDEN; -void wined3d_cs_emit_draw_indirect(struct wined3d_cs *cs, GLenum primitive_type, unsigned int patch_vertex_count, - struct wined3d_buffer *buffer, unsigned int offset, BOOL indexed) DECLSPEC_HIDDEN; +void wined3d_cs_emit_draw(struct wined3d_cs *cs, enum wined3d_primitive_type primitive_type, + unsigned int patch_vertex_count, int base_vertex_idx, unsigned int start_idx, unsigned int index_count, + unsigned int start_instance, unsigned int instance_count, bool indexed) DECLSPEC_HIDDEN; +void wined3d_cs_emit_draw_indirect(struct wined3d_cs *cs, enum wined3d_primitive_type primitive_type, + unsigned int patch_vertex_count, struct wined3d_buffer *buffer, + unsigned int offset, bool indexed) DECLSPEC_HIDDEN; void wined3d_cs_emit_flush(struct wined3d_cs *cs) DECLSPEC_HIDDEN; void wined3d_cs_emit_generate_mipmaps(struct wined3d_cs *cs, struct wined3d_shader_resource_view *view) DECLSPEC_HIDDEN; void wined3d_cs_emit_preload_resource(struct wined3d_cs *cs, struct wined3d_resource *resource) DECLSPEC_HIDDEN; @@ -5066,9 +5067,6 @@ void state_pointsprite(struct wined3d_context *context, void state_shademode(struct wined3d_context *context, const struct wined3d_state *state, DWORD state_id) DECLSPEC_HIDDEN; -GLenum gl_primitive_type_from_d3d(enum wined3d_primitive_type primitive_type) DECLSPEC_HIDDEN; -enum wined3d_primitive_type d3d_primitive_type_from_gl(GLenum primitive_type) DECLSPEC_HIDDEN; - /* Math utils */ void multiply_matrix(struct wined3d_matrix *dest, const struct wined3d_matrix *src1, const struct wined3d_matrix *src2) DECLSPEC_HIDDEN;