less repetition of vertices for triangle strip
git-svn-id: https://svn.code.sf.net/p/freeglut/code/trunk@1268 7f0cb862-5218-0410-a997-914c9d46530a
This commit is contained in:
parent
21268d0831
commit
93e05f42de
@ -1883,28 +1883,30 @@ void FGAPIENTRY glutSolidTorus( double dInnerRadius, double dOuterRadius, GLint
|
|||||||
|
|
||||||
for( i=0; i<nSides; i++ )
|
for( i=0; i<nSides; i++ )
|
||||||
{
|
{
|
||||||
|
int offset;
|
||||||
|
|
||||||
int ioff = 3;
|
int ioff = 3;
|
||||||
if (i==nSides-1)
|
if (i==nSides-1)
|
||||||
ioff = -i*3;
|
ioff = -i*3;
|
||||||
|
|
||||||
glBegin( GL_TRIANGLE_STRIP );
|
glBegin( GL_TRIANGLE_STRIP );
|
||||||
for( j=0; j<nRings; j++ )
|
for( j=0; j<nRings; j++ )
|
||||||
{
|
{
|
||||||
int offset = 3 * ( j * nSides + i ) ;
|
offset = 3 * ( j * nSides + i ) ;
|
||||||
glNormal3fv( normal + offset );
|
|
||||||
glVertex3fv( vertex + offset );
|
|
||||||
glNormal3fv( normal + offset + ioff );
|
|
||||||
glVertex3fv( vertex + offset + ioff );
|
|
||||||
|
|
||||||
offset = 3 * ( ((j+1)%nRings) * nSides + i) ;
|
|
||||||
glNormal3fv( normal + offset );
|
glNormal3fv( normal + offset );
|
||||||
glVertex3fv( vertex + offset );
|
glVertex3fv( vertex + offset );
|
||||||
glNormal3fv( normal + offset + ioff );
|
glNormal3fv( normal + offset + ioff );
|
||||||
glVertex3fv( vertex + offset + ioff );
|
glVertex3fv( vertex + offset + ioff );
|
||||||
}
|
}
|
||||||
|
/* repeat first to close off shape */
|
||||||
|
offset = 3 * i;
|
||||||
|
glNormal3fv( normal + offset );
|
||||||
|
glVertex3fv( vertex + offset );
|
||||||
|
glNormal3fv( normal + offset + ioff );
|
||||||
|
glVertex3fv( vertex + offset + ioff );
|
||||||
glEnd();
|
glEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
free ( vertex ) ;
|
free ( vertex ) ;
|
||||||
free ( normal ) ;
|
free ( normal ) ;
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user