wrap texture coordinates when in texture animation mode

This commit is contained in:
Glenn Maynard
2005-01-09 21:19:09 +00:00
parent f021bba577
commit b67e3c6ebd
+16
View File
@@ -353,6 +353,22 @@ void Sprite::Update( float fDelta )
fTexCoords[6] += fDelta*m_fTexCoordVelocityX;
fTexCoords[7] += fDelta*m_fTexCoordVelocityY;
/* When wrapping, avoid gradual loss of precision and sending unreasonably large
* texture coordinates to the renderer by pushing texture coordinates back to 0.
* As long as we adjust all four coordinates by the same amount,this won't be visible. */
if( m_bTextureWrapping )
{
const float fXAdjust = floor( fTexCoords[0] ), fYAdjust = floor( fTexCoords[1] );
fTexCoords[0] -= fXAdjust;
fTexCoords[2] -= fXAdjust;
fTexCoords[4] -= fXAdjust;
fTexCoords[6] -= fXAdjust;
fTexCoords[1] -= fYAdjust;
fTexCoords[3] -= fYAdjust;
fTexCoords[5] -= fYAdjust;
fTexCoords[7] -= fYAdjust;
}
Sprite::SetCustomTextureCoords( fTexCoords );
}
}