=?UTF-8?Q?J=C3=B3zef=20Kucia=20?=: wined3d: Cleanup draw_primitive_arrays( ) a bit.
Alexandre Julliard
julliard at winehq.org
Mon Feb 26 13:42:20 CST 2018
Module: wine
Branch: master
Commit: f8c8498f490d4a06941a31f1d4ee3314fcc0f397
URL: https://source.winehq.org/git/wine.git/?a=commit;h=f8c8498f490d4a06941a31f1d4ee3314fcc0f397
Author: Józef Kucia <jkucia at codeweavers.com>
Date: Sun Feb 25 23:23:29 2018 +0100
wined3d: Cleanup draw_primitive_arrays() a bit.
Signed-off-by: Józef Kucia <jkucia at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
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 f87f091..2f3390b 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");
}
}
More information about the wine-cvs
mailing list