From f8c8498f490d4a06941a31f1d4ee3314fcc0f397 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B3zef=20Kucia?= Date: Sun, 25 Feb 2018 23:23:29 +0100 Subject: [PATCH] wined3d: Cleanup draw_primitive_arrays() a bit. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Józef Kucia Signed-off-by: Henri Verbeet Signed-off-by: Alexandre Julliard --- dlls/wined3d/drawprim.c | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/dlls/wined3d/drawprim.c b/dlls/wined3d/drawprim.c index f87f0919c16..2f3390b5b08 100644 --- a/dlls/wined3d/drawprim.c +++ b/dlls/wined3d/drawprim.c @@ -44,27 +44,29 @@ static void draw_primitive_arrays(struct wined3d_context *context, const struct 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; unsigned int i, j; + indices = (const char *)idx_data + idx_size * start_idx; + if (!instance_count) { if (!idx_size) { - gl_info->gl_ops.gl.p_glDrawArrays(state->gl_primitive_type, start_idx, count); + gl_info->gl_ops.gl.p_glDrawArrays(mode, start_idx, count); checkGLcall("glDrawArrays"); return; } if (gl_info->supported[ARB_DRAW_ELEMENTS_BASE_VERTEX]) { - GL_EXTCALL(glDrawElementsBaseVertex(state->gl_primitive_type, count, idx_type, - (const char *)idx_data + (idx_size * start_idx), base_vertex_idx)); + GL_EXTCALL(glDrawElementsBaseVertex(mode, count, idx_type, indices, base_vertex_idx)); checkGLcall("glDrawElementsBaseVertex"); return; } - gl_info->gl_ops.gl.p_glDrawElements(state->gl_primitive_type, count, - idx_type, (const char *)idx_data + (idx_size * start_idx)); + gl_info->gl_ops.gl.p_glDrawElements(mode, count, idx_type, indices); checkGLcall("glDrawElements"); return; } @@ -78,33 +80,32 @@ static void draw_primitive_arrays(struct wined3d_context *context, const struct { if (gl_info->supported[ARB_BASE_INSTANCE]) { - GL_EXTCALL(glDrawArraysInstancedBaseInstance(state->gl_primitive_type, start_idx, count, instance_count, start_instance)); + GL_EXTCALL(glDrawArraysInstancedBaseInstance(mode, start_idx, count, instance_count, start_instance)); checkGLcall("glDrawArraysInstancedBaseInstance"); return; } - GL_EXTCALL(glDrawArraysInstanced(state->gl_primitive_type, start_idx, count, instance_count)); + GL_EXTCALL(glDrawArraysInstanced(mode, start_idx, count, instance_count)); checkGLcall("glDrawArraysInstanced"); return; } if (gl_info->supported[ARB_BASE_INSTANCE]) { - GL_EXTCALL(glDrawElementsInstancedBaseVertexBaseInstance(state->gl_primitive_type, count, idx_type, - (const char *)idx_data + (idx_size * start_idx), instance_count, base_vertex_idx, start_instance)); + GL_EXTCALL(glDrawElementsInstancedBaseVertexBaseInstance(mode, count, idx_type, + indices, instance_count, base_vertex_idx, start_instance)); checkGLcall("glDrawElementsInstancedBaseVertexBaseInstance"); return; } if (gl_info->supported[ARB_DRAW_ELEMENTS_BASE_VERTEX]) { - GL_EXTCALL(glDrawElementsInstancedBaseVertex(state->gl_primitive_type, count, idx_type, - (const char *)idx_data + (idx_size * start_idx), instance_count, base_vertex_idx)); + GL_EXTCALL(glDrawElementsInstancedBaseVertex(mode, count, idx_type, + indices, instance_count, base_vertex_idx)); checkGLcall("glDrawElementsInstancedBaseVertex"); return; } - GL_EXTCALL(glDrawElementsInstanced(state->gl_primitive_type, count, idx_type, - (const char *)idx_data + (idx_size * start_idx), instance_count)); + GL_EXTCALL(glDrawElementsInstanced(mode, count, idx_type, indices, instance_count)); checkGLcall("glDrawElementsInstanced"); return; } @@ -120,7 +121,7 @@ static void draw_primitive_arrays(struct wined3d_context *context, const struct * has a different meaning in that situation. */ if (!idx_size) { - FIXME("Non-indexed instanced drawing is not supported\n"); + FIXME("Non-indexed instanced drawing is not supported.\n"); return; } @@ -152,14 +153,12 @@ static void draw_primitive_arrays(struct wined3d_context *context, const struct if (gl_info->supported[ARB_DRAW_ELEMENTS_BASE_VERTEX]) { - GL_EXTCALL(glDrawElementsBaseVertex(state->gl_primitive_type, count, idx_type, - (const char *)idx_data + (idx_size * start_idx), base_vertex_idx)); + GL_EXTCALL(glDrawElementsBaseVertex(mode, count, idx_type, indices, base_vertex_idx)); checkGLcall("glDrawElementsBaseVertex"); } else { - gl_info->gl_ops.gl.p_glDrawElements(state->gl_primitive_type, count, idx_type, - (const char *)idx_data + (idx_size * start_idx)); + gl_info->gl_ops.gl.p_glDrawElements(mode, count, idx_type, indices); checkGLcall("glDrawElements"); } }