[Mesa-dev] [PATCH 01/11] vbo: lift common code out of switch cases

Brian Paul brianp at vmware.com
Wed Jan 17 05:17:52 UTC 2018


Both switch cases began with the same code.
---
 src/mesa/vbo/vbo_exec_draw.c | 15 ++++++---------
 src/mesa/vbo/vbo_save_draw.c | 15 ++++++---------
 2 files changed, 12 insertions(+), 18 deletions(-)

diff --git a/src/mesa/vbo/vbo_exec_draw.c b/src/mesa/vbo/vbo_exec_draw.c
index 34cb4ff..de17322 100644
--- a/src/mesa/vbo/vbo_exec_draw.c
+++ b/src/mesa/vbo/vbo_exec_draw.c
@@ -180,14 +180,14 @@ vbo_exec_bind_arrays( struct gl_context *ctx )
    GLbitfield varying_inputs = 0x0;
    bool swap_pos = false;
 
-   /* Install the default (ie Current) attributes first, then overlay
-    * all active ones.
-    */
+   /* Install the default (ie Current) attributes first */
+   for (attr = 0; attr < VERT_ATTRIB_FF_MAX; attr++) {
+      exec->vtx.inputs[attr] = &vbo->currval[VBO_ATTRIB_POS+attr];
+   }
+
+   /* Overlay other active attributes */
    switch (get_program_mode(exec->ctx)) {
    case VP_NONE:
-      for (attr = 0; attr < VERT_ATTRIB_FF_MAX; attr++) {
-         exec->vtx.inputs[attr] = &vbo->currval[VBO_ATTRIB_POS+attr];
-      }
       for (attr = 0; attr < MAT_ATTRIB_MAX; attr++) {
          assert(VERT_ATTRIB_GENERIC(attr) < ARRAY_SIZE(exec->vtx.inputs));
          exec->vtx.inputs[VERT_ATTRIB_GENERIC(attr)] =
@@ -196,9 +196,6 @@ vbo_exec_bind_arrays( struct gl_context *ctx )
       map = vbo->map_vp_none;
       break;
    case VP_ARB:
-      for (attr = 0; attr < VERT_ATTRIB_FF_MAX; attr++) {
-         exec->vtx.inputs[attr] = &vbo->currval[VBO_ATTRIB_POS+attr];
-      }
       for (attr = 0; attr < VERT_ATTRIB_GENERIC_MAX; attr++) {
          assert(VERT_ATTRIB_GENERIC(attr) < ARRAY_SIZE(exec->vtx.inputs));
          exec->vtx.inputs[VERT_ATTRIB_GENERIC(attr)] =
diff --git a/src/mesa/vbo/vbo_save_draw.c b/src/mesa/vbo/vbo_save_draw.c
index b63a9a8..4101022 100644
--- a/src/mesa/vbo/vbo_save_draw.c
+++ b/src/mesa/vbo/vbo_save_draw.c
@@ -158,14 +158,14 @@ bind_vertex_list(struct gl_context *ctx,
       buffer_offset = 0;
    }
 
-   /* Install the default (ie Current) attributes first, then overlay
-    * all active ones.
-    */
+   /* Install the default (ie Current) attributes first */
+   for (attr = 0; attr < VERT_ATTRIB_FF_MAX; attr++) {
+      save->inputs[attr] = &vbo->currval[VBO_ATTRIB_POS+attr];
+   }
+
+   /* Overlay other active attributes */
    switch (get_program_mode(ctx)) {
    case VP_NONE:
-      for (attr = 0; attr < VERT_ATTRIB_FF_MAX; attr++) {
-         save->inputs[attr] = &vbo->currval[VBO_ATTRIB_POS+attr];
-      }
       for (attr = 0; attr < MAT_ATTRIB_MAX; attr++) {
          save->inputs[VERT_ATTRIB_GENERIC(attr)] =
             &vbo->currval[VBO_ATTRIB_MAT_FRONT_AMBIENT+attr];
@@ -173,9 +173,6 @@ bind_vertex_list(struct gl_context *ctx,
       map = vbo->map_vp_none;
       break;
    case VP_ARB:
-      for (attr = 0; attr < VERT_ATTRIB_FF_MAX; attr++) {
-         save->inputs[attr] = &vbo->currval[VBO_ATTRIB_POS+attr];
-      }
       for (attr = 0; attr < VERT_ATTRIB_GENERIC_MAX; attr++) {
          save->inputs[VERT_ATTRIB_GENERIC(attr)] =
             &vbo->currval[VBO_ATTRIB_GENERIC0+attr];
-- 
2.7.4



More information about the mesa-dev mailing list