Use SetZWrite, SetZTest instead of SetUseZBuffer for masks, so masks

aren't masked.

When using more than one mask, and they may overlap, use
mask.SetClearZBuffer(true) unless you really know what you're doing.
This commit is contained in:
Glenn Maynard
2003-12-31 22:08:32 +00:00
parent 64b5d82efd
commit 85068dd856
+8 -6
View File
@@ -70,12 +70,14 @@ ScrollingList::ScrollingList()
m_iBounceWait=0;
m_sprBannerMask.SetName( "Banner" ); // use the same metrics and animation as Banner
m_sprBannerMask.Load( THEME->GetPathToG("ScreenSelectMusic banner mask") );
m_RippleCSprite.SetXY(0,0);
m_RippleSprite.SetXY(0,0);
m_sprBannerMask.SetClearZBuffer( true );
m_sprBannerMask.SetBlendMode( BLEND_NO_EFFECT ); // don't draw to color buffer
m_sprBannerMask.SetUseZBuffer( true ); // do draw to the zbuffer
m_sprBannerMask.SetZWrite( true ); // do draw to the zbuffer
m_sprBannerMask.SetWidth(EZ2_BANNER_WIDTH);
m_sprBannerMask.SetHeight(EZ2_BANNER_HEIGHT);
m_RippleCSprite.SetXY(0,0);
m_RippleSprite.SetXY(0,0);
}
void ScrollingList::UseSpriteType(int NewSpriteType)
@@ -515,7 +517,7 @@ void ScrollingList::DrawPrimitives()
if(!m_iBouncingState)
m_apCSprites[iIndexToDraw1]->SetZoom( 1.0f - (ZOOM_OFFSET * i) );
m_apCSprites[iIndexToDraw1]->SetDiffuse( COLOR_SELECTED + RageColor(0,0,0,(1.0f - (FADE_OFFSET * i))) );
m_apCSprites[iIndexToDraw1]->SetUseZBuffer( true ); // do have to pass the z test
m_apCSprites[iIndexToDraw1]->SetZTest( true ); // do have to pass the z test
m_sprBannerMask.SetXY(m_apCSprites[iIndexToDraw1]->GetX(), m_apCSprites[iIndexToDraw1]->GetY());
m_sprBannerMask.SetZ( m_apCSprites[iIndexToDraw1]->GetZ()+0.05f );
m_sprBannerMask.SetZoom( m_apCSprites[iIndexToDraw1]->GetZoom());
@@ -552,13 +554,13 @@ void ScrollingList::DrawPrimitives()
m_apCSprites[iIndexToDraw2]->SetZoom( 1.0f - (ZOOM_OFFSET * i) );
m_apCSprites[iIndexToDraw1]->SetDiffuse( COLOR_NOT_SELECTED + RageColor(0,0,0,(- (FADE_OFFSET * i))) );
m_apCSprites[iIndexToDraw2]->SetDiffuse( COLOR_NOT_SELECTED + RageColor(0,0,0,(- (FADE_OFFSET * i))) );
m_apCSprites[iIndexToDraw1]->SetUseZBuffer( true ); // do have to pass the z test
m_apCSprites[iIndexToDraw1]->SetZTest( true ); // do have to pass the z test
m_sprBannerMask.SetXY(m_apCSprites[iIndexToDraw1]->GetX(), m_apCSprites[iIndexToDraw1]->GetY());
m_sprBannerMask.SetZ( m_apCSprites[iIndexToDraw1]->GetZ()+0.05f );
m_sprBannerMask.SetZoom( m_apCSprites[iIndexToDraw1]->GetZoom());
m_sprBannerMask.Draw();
m_apCSprites[iIndexToDraw1]->Draw();
m_apCSprites[iIndexToDraw2]->SetUseZBuffer( true ); // do have to pass the z test
m_apCSprites[iIndexToDraw2]->SetZTest( true ); // do have to pass the z test
m_sprBannerMask.SetXY(m_apCSprites[iIndexToDraw2]->GetX(), m_apCSprites[iIndexToDraw1]->GetY());
m_sprBannerMask.SetZ( m_apCSprites[iIndexToDraw2]->GetZ()+0.05f );
m_sprBannerMask.SetZoom( m_apCSprites[iIndexToDraw2]->GetZoom());