=?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