diff options
author | Roland Scheidegger <rscheidegger@gmx.ch> | 2006-11-22 22:07:35 +0000 |
---|---|---|
committer | Roland Scheidegger <rscheidegger@gmx.ch> | 2006-11-22 22:07:35 +0000 |
commit | 46e454863ea9dbe8618a67fb5b4b4a8c51607995 (patch) | |
tree | fdbc5d94f9c1917e3a5355a2d26f07ba816dfc5b /src/mesa/tnl/t_vtx_exec.c | |
parent | 40c7cb7e1768cd694bdfc6864cf3a55254ffce56 (diff) |
decrease the current vertex count by 1 if an uneven number of vertices is copied by _tnl_copy_vertices. Otherwise, since in this case it will copy an extra vertex to avoid problems with vertex order in the new buffer, one triangle will be drawn twice. This fixes bug #9062.
Diffstat (limited to 'src/mesa/tnl/t_vtx_exec.c')
-rw-r--r-- | src/mesa/tnl/t_vtx_exec.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/mesa/tnl/t_vtx_exec.c b/src/mesa/tnl/t_vtx_exec.c index 57d842f05f..900c4ab6cc 100644 --- a/src/mesa/tnl/t_vtx_exec.c +++ b/src/mesa/tnl/t_vtx_exec.c @@ -239,6 +239,11 @@ static GLuint _tnl_copy_vertices( GLcontext *ctx ) return 2; } case GL_TRIANGLE_STRIP: + /* no parity issue, but need to make sure the tri is not drawn twice */ + if (nr & 1) { + tnl->vtx.prim[tnl->vtx.prim_count-1].count--; + } + /* fallthrough */ case GL_QUAD_STRIP: switch (nr) { case 0: ovf = 0; break; |