fix ActorFrame ZTest propogation
This commit is contained in:
@@ -729,7 +729,7 @@ void Actor::HandleCommand( const ParsedCommand &command )
|
||||
else if( sName=="additiveblend" ) SetBlendMode( bParam(1) ? BLEND_ADD : BLEND_NORMAL );
|
||||
else if( sName=="blend" ) SetBlendMode( sParam(1) );
|
||||
else if( sName=="zbuffer" ) SetUseZBuffer( bParam(1) );
|
||||
else if( sName=="ztest" ) SetZTest( bParam(1) );
|
||||
else if( sName=="ztest" ) SetZTestMode( bParam(1)?ZTEST_WRITE_ON_PASS:ZTEST_OFF );
|
||||
else if( sName=="ztestmode" ) SetZTestMode( sParam(1) );
|
||||
else if( sName=="zwrite" ) SetZWrite( bParam(1) );
|
||||
else if( sName=="clearzbuffer" ) SetClearZBuffer( bParam(1) );
|
||||
@@ -890,10 +890,7 @@ void Actor::SetZTestMode( CString s )
|
||||
s.MakeLower();
|
||||
|
||||
// for metrics backward compatibility
|
||||
if (s=="1") SetZTestMode( ZTEST_WRITE_ON_PASS );
|
||||
else if(s=="0") SetZTestMode( ZTEST_OFF );
|
||||
|
||||
else if(s=="off") SetZTestMode( ZTEST_OFF );
|
||||
if(s=="off") SetZTestMode( ZTEST_OFF );
|
||||
else if(s=="writeonpass") SetZTestMode( ZTEST_WRITE_ON_PASS );
|
||||
else if(s=="writeonfail") SetZTestMode( ZTEST_WRITE_ON_FAIL );
|
||||
else ASSERT(0);
|
||||
|
||||
@@ -293,14 +293,13 @@ public:
|
||||
//
|
||||
// render states
|
||||
//
|
||||
void SetBlendMode( BlendMode mode ) { m_BlendMode = mode; }
|
||||
void SetBlendMode( BlendMode mode ) { m_BlendMode = mode; }
|
||||
void SetBlendMode( CString );
|
||||
void SetTextureWrapping( bool b ) { m_bTextureWrapping = b; }
|
||||
void SetClearZBuffer( bool b ) { m_bClearZBuffer = b; }
|
||||
void SetUseZBuffer( bool b ) { SetZTestMode(b?ZTEST_WRITE_ON_PASS:ZTEST_OFF); SetZWrite(b); }
|
||||
void SetTextureWrapping( bool b ) { m_bTextureWrapping = b; }
|
||||
void SetClearZBuffer( bool b ) { m_bClearZBuffer = b; }
|
||||
void SetUseZBuffer( bool b ) { SetZTestMode(b?ZTEST_WRITE_ON_PASS:ZTEST_OFF); SetZWrite(b); }
|
||||
virtual void SetZTestMode( ZTestMode mode ) { m_ZTestMode = mode; }
|
||||
virtual void SetZTestMode( CString );
|
||||
void SetZTest( bool b ) { SetZTestMode(b?ZTEST_WRITE_ON_PASS:ZTEST_OFF); }
|
||||
virtual void SetZWrite( bool b ) { m_bZWrite = b; }
|
||||
virtual void SetCullMode( CullMode mode ) { m_CullMode = mode; }
|
||||
virtual void SetCullMode( CString );
|
||||
|
||||
@@ -316,12 +316,12 @@ void MusicWheelItem::DrawPrimitives()
|
||||
}
|
||||
|
||||
|
||||
void MusicWheelItem::SetZTest( bool b )
|
||||
void MusicWheelItem::SetZTestMode( ZTestMode mode )
|
||||
{
|
||||
ActorFrame::SetZTest( b );
|
||||
ActorFrame::SetZTestMode( mode );
|
||||
|
||||
// set all sub-Actors
|
||||
m_All.SetZTest( b );
|
||||
m_All.SetZTestMode( mode );
|
||||
}
|
||||
|
||||
void MusicWheelItem::SetZWrite( bool b )
|
||||
|
||||
@@ -30,7 +30,7 @@ public:
|
||||
|
||||
virtual void Update( float fDeltaTime );
|
||||
virtual void DrawPrimitives();
|
||||
virtual void SetZTest( bool b );
|
||||
virtual void SetZTestMode( ZTestMode mode );
|
||||
virtual void SetZWrite( bool b );
|
||||
|
||||
void LoadFromWheelItemData( WheelItemData* pWID );
|
||||
|
||||
@@ -807,7 +807,8 @@ void NoteDisplay::DrawHold( const HoldNote& hn, bool bIsBeingHeld, bool bIsActiv
|
||||
DISPLAY->SetTextureModeGlow();
|
||||
else
|
||||
DISPLAY->SetTextureModeModulate();
|
||||
DISPLAY->SetZBuffer( WavyPartsNeedZBuffer );
|
||||
DISPLAY->SetZTestMode( WavyPartsNeedZBuffer?ZTEST_WRITE_ON_PASS:ZTEST_OFF );
|
||||
DISPLAY->SetZWrite( WavyPartsNeedZBuffer );
|
||||
|
||||
if( !bFlipHeadAndTail )
|
||||
DrawHoldBottomCap( hn, bIsBeingHeld, fYHead, fYTail, fYStep, iCol, fPercentFadeToFail, fColorScale, bDrawGlowOnly );
|
||||
|
||||
@@ -197,7 +197,8 @@ void RageDisplay::SetDefaultRenderStates()
|
||||
{
|
||||
SetLighting( false );
|
||||
SetCullMode( CULL_NONE );
|
||||
SetZBuffer( false );
|
||||
SetZWrite( false );
|
||||
SetZTestMode( ZTEST_OFF );
|
||||
SetAlphaTest( true );
|
||||
SetBlendMode( BLEND_NORMAL );
|
||||
SetTextureFiltering( true );
|
||||
|
||||
@@ -195,10 +195,8 @@ public:
|
||||
virtual bool IsZTestEnabled() const = 0;
|
||||
virtual bool IsZWriteEnabled() const = 0;
|
||||
virtual void SetZWrite( bool b ) = 0;
|
||||
void SetZTest( bool b ) { SetZTestMode(b?ZTEST_WRITE_ON_PASS:ZTEST_OFF); }
|
||||
virtual void SetZTestMode( ZTestMode mode ) = 0;
|
||||
virtual void ClearZBuffer() = 0;
|
||||
void SetZBuffer( bool b ) { SetZWrite(b); SetZTest(b); } // shortcut
|
||||
|
||||
virtual void SetCullMode( CullMode mode ) = 0;
|
||||
|
||||
|
||||
@@ -1056,6 +1056,7 @@ void RageDisplay_D3D::SetZTestMode( ZTestMode mode )
|
||||
case ZTEST_WRITE_ON_FAIL: dw = D3DCMP_GREATER; break;
|
||||
default: ASSERT( 0 );
|
||||
}
|
||||
g_pd3dDevice->SetRenderState( D3DRS_ZFUNC, dw );
|
||||
}
|
||||
|
||||
void RageDisplay_D3D::ClearZBuffer()
|
||||
|
||||
@@ -53,7 +53,6 @@ public:
|
||||
bool IsZWriteEnabled() const;
|
||||
bool IsZTestEnabled() const;
|
||||
void SetZWrite( bool b );
|
||||
void SetZTest( bool b );
|
||||
void SetZTestMode( ZTestMode mode );
|
||||
void ClearZBuffer();
|
||||
void SetCullMode( CullMode mode );
|
||||
|
||||
@@ -42,7 +42,6 @@ public:
|
||||
bool IsZWriteEnabled() const;
|
||||
bool IsZTestEnabled() const;
|
||||
void SetZWrite( bool b );
|
||||
void SetZTest( bool b );
|
||||
void SetZTestMode( ZTestMode mode );
|
||||
void ClearZBuffer();
|
||||
void SetCullMode( CullMode mode );
|
||||
|
||||
@@ -131,7 +131,7 @@ ScreenSelectMusic::ScreenSelectMusic( CString sClassName ) : ScreenWithMenuEleme
|
||||
|
||||
// this is loaded SetSong and TweenToSong
|
||||
m_Banner.SetName( "Banner" );
|
||||
m_Banner.SetZTest( true ); // do have to pass the z test
|
||||
m_Banner.SetZTestMode( ZTEST_WRITE_ON_PASS ); // do have to pass the z test
|
||||
m_Banner.ScaleToClipped( BANNER_WIDTH, BANNER_HEIGHT );
|
||||
SET_XY( m_Banner );
|
||||
this->AddChild( &m_Banner );
|
||||
|
||||
@@ -515,7 +515,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]->SetZTest( true ); // do have to pass the z test
|
||||
m_apCSprites[iIndexToDraw1]->SetZTestMode( ZTEST_WRITE_ON_PASS ); // do have to pass the z test
|
||||
m_sprBannerMask.SetXY(m_apCSprites[iIndexToDraw1]->GetX(), m_apCSprites[iIndexToDraw1]->GetY());
|
||||
m_sprBannerMask.SetZoom( m_apCSprites[iIndexToDraw1]->GetZoom());
|
||||
m_sprBannerMask.Draw();
|
||||
@@ -548,12 +548,12 @@ 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]->SetZTest( true ); // do have to pass the z test
|
||||
m_apCSprites[iIndexToDraw1]->SetZTestMode( ZTEST_WRITE_ON_PASS ); // do have to pass the z test
|
||||
m_sprBannerMask.SetXY(m_apCSprites[iIndexToDraw1]->GetX(), m_apCSprites[iIndexToDraw1]->GetY());
|
||||
m_sprBannerMask.SetZoom( m_apCSprites[iIndexToDraw1]->GetZoom());
|
||||
m_sprBannerMask.Draw();
|
||||
m_apCSprites[iIndexToDraw1]->Draw();
|
||||
m_apCSprites[iIndexToDraw2]->SetZTest( true ); // do have to pass the z test
|
||||
m_apCSprites[iIndexToDraw2]->SetZTestMode( ZTEST_WRITE_ON_PASS ); // do have to pass the z test
|
||||
m_sprBannerMask.SetXY(m_apCSprites[iIndexToDraw2]->GetX(), m_apCSprites[iIndexToDraw1]->GetY());
|
||||
m_sprBannerMask.SetZoom( m_apCSprites[iIndexToDraw2]->GetZoom());
|
||||
m_sprBannerMask.Draw();
|
||||
|
||||
Reference in New Issue
Block a user