vbo: simplify some code in vbo_copy_vertices()
authorBrian Paul <brianp@vmware.com>
Fri, 16 Oct 2015 03:25:18 +0000 (21:25 -0600)
committerBrian Paul <brianp@vmware.com>
Tue, 20 Oct 2015 18:52:41 +0000 (12:52 -0600)
As before, use a new 'last_prim' pointer to simplify things.  Plus, add
some const qualifiers.

v2: use 'sz' in another place, per Sinclair.  And update subject line.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
Reviewed-by: Sinclair Yeh <syeh@vmware.com>
src/mesa/vbo/vbo_exec_draw.c

index 781991bd0bf8be6d99b4e6c0ac2e1cd514083a6c..9b1103dad7242c9a7716be4176dac8680077d686 100644 (file)
@@ -75,13 +75,12 @@ vbo_exec_debug_verts( struct vbo_exec_context *exec )
 static GLuint
 vbo_copy_vertices( struct vbo_exec_context *exec )
 {
-   GLuint nr = exec->vtx.prim[exec->vtx.prim_count-1].count;
+   struct _mesa_prim *last_prim = &exec->vtx.prim[exec->vtx.prim_count - 1];
+   const GLuint nr = last_prim->count;
    GLuint ovf, i;
-   GLuint sz = exec->vtx.vertex_size;
+   const GLuint sz = exec->vtx.vertex_size;
    fi_type *dst = exec->vtx.copied.buffer;
-   const fi_type *src = (exec->vtx.buffer_map +
-                         exec->vtx.prim[exec->vtx.prim_count-1].start * 
-                         exec->vtx.vertex_size);
+   const fi_type *src = exec->vtx.buffer_map + last_prim->start * sz;
 
    switch (exec->ctx->Driver.CurrentExecPrimitive) {
    case GL_POINTS:
@@ -127,7 +126,7 @@ vbo_copy_vertices( struct vbo_exec_context *exec )
    case GL_TRIANGLE_STRIP:
       /* no parity issue, but need to make sure the tri is not drawn twice */
       if (nr & 1) {
-        exec->vtx.prim[exec->vtx.prim_count-1].count--;
+        last_prim->count--;
       }
       /* fallthrough */
    case GL_QUAD_STRIP: