diff options
Diffstat (limited to 'src/mesa/pipe/draw/draw_context.c')
-rw-r--r-- | src/mesa/pipe/draw/draw_context.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/mesa/pipe/draw/draw_context.c b/src/mesa/pipe/draw/draw_context.c index a97f488387..4335b47e09 100644 --- a/src/mesa/pipe/draw/draw_context.c +++ b/src/mesa/pipe/draw/draw_context.c @@ -59,6 +59,16 @@ struct draw_context *draw_create( void ) draw->vf = vf_create( GL_TRUE ); + /* Statically allocate maximum sized vertices for the cache - could be cleverer... + */ + { + int i; + char *tmp = malloc(Elements(draw->vcache.vertex) * MAX_VERTEX_SIZE); + + for (i = 0; i < Elements(draw->vcache.vertex); i++) + draw->vcache.vertex[i] = (struct vertex_header *)(tmp + i * MAX_VERTEX_SIZE); + } + return draw; } @@ -70,6 +80,7 @@ void draw_destroy( struct draw_context *draw ) vf_destroy( draw->vf ); + FREE( draw->vcache.vertex[0] ); /* Frees all the vertices. */ FREE( draw ); } |