https://bugs.freedesktop.org/show_bug.cgi?id=51641
Bug #: 51641 Summary: GLU_TESS_COMBINE callback called with NULL data pointers, conflicting documentation. Classification: Unclassified Product: Mesa Version: 8.0 Platform: All OS/Version: All Status: NEW Severity: normal Priority: medium Component: GLU AssignedTo: mesa-dev@lists.freedesktop.org ReportedBy: carlchatfi...@gmail.com According to http://www.opengl.org/sdk/docs/man/xhtml/gluTessCallback.xml (don't know if this is official or not.): void combine( GLdouble coords[3], void *vertex_data[4], GLfloat weight[4], void **outData ); All vertex pointers are valid even when some of the weights are 0. coords gives the location of the new vertex. The following example code is also given: void myCombine( GLdouble coords[3], VERTEX *d[4], GLfloat w[4], VERTEX **dataOut ) { VERTEX *new = new_vertex(); new->x = coords[0]; new->y = coords[1]; new->z = coords[2]; new->r = w[0]*d[0]->r + w[1]*d[1]->r + w[2]*d[2]->r + w[3]*d[3]->r; new->g = w[0]*d[0]->g + w[1]*d[1]->g + w[2]*d[2]->g + w[3]*d[3]->g; new->b = w[0]*d[0]->b + w[1]*d[1]->b + w[2]*d[2]->b + w[3]*d[3]->b; new->a = w[0]*d[0]->a + w[1]*d[1]->a + w[2]*d[2]->a + w[3]*d[3]->a; *dataOut = new; } Implying that all vertex pointers are indeed valid. However, in the function static void SpliceMergeVertices( GLUtesselator *tess, GLUhalfEdge *e1, GLUhalfEdge *e2 ) /* * Two vertices with idential coordinates are combined into one. * e1->Org is kept, while e2->Org is discarded. */ { void *data[4] = { NULL, NULL, NULL, NULL }; GLfloat weights[4] = { 0.5, 0.5, 0.0, 0.0 }; data[0] = e1->Org->data; data[1] = e2->Org->data; CallCombine( tess, e1->Org, data, weights, FALSE ); if ( !__gl_meshSplice( e1, e2 ) ) longjmp(tess->env,1); } data[3] and data[4] are NULL. Thus if an application expects the pointers to be valid, they will crash. A possible fix: data[0] = data[2] = e1->Org->data; data[1] = data[3] = e2->Org->data; -- Configure bugmail: https://bugs.freedesktop.org/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug. _______________________________________________ mesa-dev mailing list mesa-dev@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/mesa-dev