diff options
author | Keith Whitwell <[email protected]> | 2009-03-03 10:41:57 +0000 |
---|---|---|
committer | Keith Whitwell <[email protected]> | 2009-03-03 10:41:57 +0000 |
commit | c64a2b708944ec671b1104067245500fcfc6ed94 (patch) | |
tree | 6c7a0d642264502993c1be2bc9d3da7e288615fc /src/mesa/main | |
parent | 050ce17799cbe652962f898942ae6551d31f21a2 (diff) |
mesa: Add BeginVertices driver call
Provides notification to the VBO modules prior to the first immediate call.
Pairs with FlushVertices()
Diffstat (limited to 'src/mesa/main')
-rw-r--r-- | src/mesa/main/dd.h | 6 | ||||
-rw-r--r-- | src/mesa/main/vtxfmt.c | 9 |
2 files changed, 12 insertions, 3 deletions
diff --git a/src/mesa/main/dd.h b/src/mesa/main/dd.h index 7fb0a211d7a..b1e006901bf 100644 --- a/src/mesa/main/dd.h +++ b/src/mesa/main/dd.h @@ -947,6 +947,12 @@ struct dd_function_table { GLuint NeedFlush; GLuint SaveNeedFlush; + + /* Called prior to any of the GLvertexformat functions being + * called. Paired with Driver.FlushVertices(). + */ + void (*BeginVertices)( GLcontext *ctx ); + /** * If inside glBegin()/glEnd(), it should ASSERT(0). Otherwise, if * FLUSH_STORED_VERTICES bit in \p flags is set flushes any buffered diff --git a/src/mesa/main/vtxfmt.c b/src/mesa/main/vtxfmt.c index 0204979003e..1f807dc3dc3 100644 --- a/src/mesa/main/vtxfmt.c +++ b/src/mesa/main/vtxfmt.c @@ -54,9 +54,12 @@ ASSERT( tnl->Current ); \ ASSERT( tnl->SwapCount < NUM_VERTEX_FORMAT_ENTRIES ); \ ASSERT( tmp_offset >= 0 ); \ - \ - /* Save the swapped function's dispatch entry so it can be */ \ - /* restored later. */ \ + \ + if (tnl->SwapCount == 0) \ + ctx->Driver.BeginVertices( ctx ); \ + \ + /* Save the swapped function's dispatch entry so it can be */ \ + /* restored later. */ \ tnl->Swapped[tnl->SwapCount].location = & (((_glapi_proc *)ctx->Exec)[tmp_offset]); \ tnl->Swapped[tnl->SwapCount].function = (_glapi_proc)TAG(FUNC); \ tnl->SwapCount++; \ |