i915: keep track of num_vertex_attribs/buffers for shorter loops

This commit is contained in:
Brian 2008-04-08 21:14:58 -06:00
parent 28cf8c8fdc
commit 1f888abf16
3 changed files with 14 additions and 13 deletions

View file

@ -65,14 +65,12 @@ i915_draw_elements( struct pipe_context *pipe,
/*
* Map vertex buffers
*/
for (i = 0; i < PIPE_MAX_ATTRIBS; i++) {
if (i915->vertex_buffer[i].buffer) {
void *buf
= pipe->winsys->buffer_map(pipe->winsys,
i915->vertex_buffer[i].buffer,
PIPE_BUFFER_USAGE_CPU_READ);
draw_set_mapped_vertex_buffer(draw, i, buf);
}
for (i = 0; i < i915->num_vertex_buffers; i++) {
void *buf
= pipe->winsys->buffer_map(pipe->winsys,
i915->vertex_buffer[i].buffer,
PIPE_BUFFER_USAGE_CPU_READ);
draw_set_mapped_vertex_buffer(draw, i, buf);
}
/* Map index buffer, if present */
if (indexBuffer) {
@ -96,11 +94,9 @@ i915_draw_elements( struct pipe_context *pipe,
/*
* unmap vertex/index buffers
*/
for (i = 0; i < PIPE_MAX_ATTRIBS; i++) {
if (i915->vertex_buffer[i].buffer) {
pipe->winsys->buffer_unmap(pipe->winsys, i915->vertex_buffer[i].buffer);
draw_set_mapped_vertex_buffer(draw, i, NULL);
}
for (i = 0; i < i915->num_vertex_buffers; i++) {
pipe->winsys->buffer_unmap(pipe->winsys, i915->vertex_buffer[i].buffer);
draw_set_mapped_vertex_buffer(draw, i, NULL);
}
if (indexBuffer) {
pipe->winsys->buffer_unmap(pipe->winsys, indexBuffer);

View file

@ -238,6 +238,8 @@ struct i915_context
unsigned num_samplers;
unsigned num_textures;
unsigned num_vertex_elements;
unsigned num_vertex_buffers;
unsigned *batch_start;

View file

@ -694,6 +694,8 @@ static void i915_set_vertex_buffers(struct pipe_context *pipe,
struct i915_context *i915 = i915_context(pipe);
memcpy(i915->vertex_buffer, buffers, count * sizeof(buffers[0]));
i915->num_vertex_buffers = count;
/* pass-through to draw module */
draw_set_vertex_buffers(i915->draw, count, buffers);
}
@ -703,6 +705,7 @@ static void i915_set_vertex_elements(struct pipe_context *pipe,
const struct pipe_vertex_element *elements)
{
struct i915_context *i915 = i915_context(pipe);
i915->num_vertex_elements = count;
/* pass-through to draw module */
draw_set_vertex_elements(i915->draw, count, elements);
}