Merge branch 'gallium-0.2' of git+ssh://marcheu@git.freedesktop.org/git/mesa/mesa...
[mesa.git] / src / gallium / drivers / failover / fo_state_emit.c
index c663dd49476883fc6525e6f2bb77f5cc8d83e7e5..bd4fce9d2090a52b2667f46985d0205b59ac6af0 100644 (file)
@@ -53,8 +53,6 @@
 void
 failover_state_emit( struct failover_context *failover )
 {
-   unsigned i;
-
    if (failover->dirty & FO_NEW_BLEND)
       failover->sw->bind_blend_state( failover->sw,
                                       failover->blend->sw_state );
@@ -94,44 +92,26 @@ failover_state_emit( struct failover_context *failover )
       failover->sw->set_viewport_state( failover->sw, &failover->viewport );
 
    if (failover->dirty & FO_NEW_SAMPLER) {
-      for (i = 0; i < PIPE_MAX_SAMPLERS; i++) {
-        if (failover->dirty_sampler & (1<<i)) {
-           failover->sw->bind_sampler_state( failover->sw, i,
-                                              failover->sampler[i]->sw_state );
-        }
-      }
+      failover->sw->bind_sampler_states( failover->sw, failover->num_samplers,
+                                         failover->sw_sampler_state );
    }
 
    if (failover->dirty & FO_NEW_TEXTURE) {
-      for (i = 0; i < PIPE_MAX_SAMPLERS; i++) {
-        if (failover->dirty_texture & (1<<i)) {
-           failover->sw->set_sampler_texture( failover->sw, i, 
-                                            failover->texture[i] );
-        }
-      }
+      failover->sw->set_sampler_textures( failover->sw, failover->num_textures, 
+                                          failover->texture );
    }
 
    if (failover->dirty & FO_NEW_VERTEX_BUFFER) {
-      for (i = 0; i < PIPE_ATTRIB_MAX; i++) {
-        if (failover->dirty_vertex_buffer & (1<<i)) {
-           failover->sw->set_vertex_buffer( failover->sw, i, 
-                                            &failover->vertex_buffer[i] );
-        }
-      }
+      failover->sw->set_vertex_buffers( failover->sw,
+                                        failover->num_vertex_buffers,
+                                        failover->vertex_buffers );
    }
 
    if (failover->dirty & FO_NEW_VERTEX_ELEMENT) {
-      for (i = 0; i < PIPE_ATTRIB_MAX; i++) {
-        if (failover->dirty_vertex_element & (1<<i)) {
-           failover->sw->set_vertex_element( failover->sw, i, 
-                                             &failover->vertex_element[i] );
-        }
-      }
+      failover->sw->set_vertex_elements( failover->sw,
+                                         failover->num_vertex_elements,
+                                         failover->vertex_elements );
    }
 
    failover->dirty = 0;
-   failover->dirty_vertex_element = 0;
-   failover->dirty_vertex_buffer = 0;
-   failover->dirty_texture = 0;
-   failover->dirty_sampler = 0;
 }