- fixed lens flare effect

- fixed hud render passes ignoring all but last pass
This commit is contained in:
Biohazard 2013-09-23 20:41:10 +02:00
parent 4b0699c10d
commit fab30f204f
12 changed files with 51 additions and 23 deletions

View file

@ -79,7 +79,7 @@ protected:
class C_LightGlow : public CLensflareBase // GSTRINGMIGRATION
{
public:
DECLARE_CLASS( C_LightGlow, C_BaseEntity );
DECLARE_CLASS( C_LightGlow, CLensflareBase ); // GSTRINGMIGRATION
DECLARE_CLIENTCLASS();
C_LightGlow();
@ -113,7 +113,7 @@ static void RecvProxy_HDRColorScale( const CRecvProxyData *pData, void *pStruct,
pLightGlow->m_Glow.m_flHDRColorScale = pData->m_Value.m_Float;
}
IMPLEMENT_CLIENTCLASS_DT_NOBASE( C_LightGlow, DT_LightGlow, CLightGlow )
IMPLEMENT_CLIENTCLASS_DT( C_LightGlow, DT_LightGlow, CLightGlow ) // GSTRINGMIGRATION add base
RecvPropInt( RECVINFO(m_clrRender), 0, RecvProxy_IntToColor32 ),
RecvPropInt( RECVINFO( m_nHorizontalSize ) ),
RecvPropInt( RECVINFO( m_nVerticalSize ) ),
@ -179,6 +179,8 @@ void C_LightGlow::OnDataChanged( DataUpdateType_t updateType )
}
SetNextClientThink( gpGlobals->curtime + RandomFloat(0,3.0) );
CreateLensFlare(); // GSTRINGMIGRATION
}
else if ( updateType == DATA_UPDATE_DATATABLE_CHANGED ) //Right now only color should change.
{

View file

@ -27,7 +27,7 @@ static void RecvProxy_HDRColorScale( const CRecvProxyData *pData, void *pStruct,
pSun->m_GlowOverlay.m_flHDRColorScale = pData->m_Value.m_Float;
}
IMPLEMENT_CLIENTCLASS_DT_NOBASE( C_Sun, DT_Sun, CSun )
IMPLEMENT_CLIENTCLASS_DT( C_Sun, DT_Sun, CSun ) // GSTRINGMIGRATION add base
RecvPropInt( RECVINFO(m_clrRender), 0, RecvProxy_IntToColor32 ),
RecvPropInt( RECVINFO(m_clrOverlay), 0, RecvProxy_IntToColor32 ),
@ -147,6 +147,13 @@ void C_Sun::OnDataChanged( DataUpdateType_t updateType )
m_Overlay.Deactivate();
m_GlowOverlay.Deactivate();
}
// GSTRINGMIGRATION
if ( updateType == DATA_UPDATE_CREATED )
{
CreateLensFlare();
}
// END GSTRINGMIGRATION
}

View file

@ -60,7 +60,7 @@ protected:
class C_Sun : public CLensflareBase // GSTRINGMIGRATION
{
public:
DECLARE_CLASS( C_Sun, C_BaseEntity );
DECLARE_CLASS( C_Sun, CLensflareBase ); // GSTRINGMIGRATION
DECLARE_CLIENTCLASS();
C_Sun();

View file

@ -1085,6 +1085,8 @@ int CHLClient::Init( CreateInterfaceFn appSystemFactory, CreateInterfaceFn physi
ClientWorldFactoryInit();
gHUD.InitPostSystems(); // GSTRINGMIGRATION
C_BaseAnimating::InitBoneSetupThreadPool();
#if defined( WIN32 ) && !defined( _X360 )

View file

@ -146,7 +146,7 @@ CHudDamageIndicator::CHudDamageIndicator( const char *pElementName ) : CHudEleme
m_WhiteAdditiveMaterial.Init( "vgui/white_additive", TEXTURE_GROUP_VGUI );
SetHiddenBits( HIDEHUD_HEALTH );
//SetHiddenBits( HIDEHUD_HEALTH ); // GSTRINGMIGRATION
}
//-----------------------------------------------------------------------------
@ -334,12 +334,14 @@ void CHudDamageIndicator::DrawFullscreenDamageIndicator()
//-----------------------------------------------------------------------------
void CHudDamageIndicator::Paint()
{
// GSTRINGMIGRATION
// draw fullscreen damage indicators
DrawFullscreenDamageIndicator();
//DrawFullscreenDamageIndicator();
// draw side damage indicators
DrawDamageIndicator(0);
DrawDamageIndicator(1);
//DrawDamageIndicator(0);
//DrawDamageIndicator(1);
// END GSTRINGMIGRATION
}
//-----------------------------------------------------------------------------

View file

@ -481,6 +481,16 @@ void CHud::Init( void )
FreeHudTextureList( textureList );
}
// GSTRINGMIGRATION
void CHud::InitPostSystems( void )
{
for ( int i = 0; i < m_HudList.Size(); i++ )
{
m_HudList[i]->PostDLLInit();
}
}
// END GSTRINGMIGRATION
//-----------------------------------------------------------------------------
// Purpose: Init Hud global colors
// Input : *scheme -

View file

@ -113,6 +113,8 @@ public:
// Init's called when the HUD's created at DLL load
void Init( void );
// Called after client dll finished its initialization
void InitPostSystems( void ); // GSTRINGMIGRATION
// VidInit's called when the video mode's changed
void VidInit( void );
// Shutdown's called when the engine's shutting down

View file

@ -53,24 +53,22 @@ void CHud::Think(void)
const bool bPlayingReplay = g_pEngineClientReplay && g_pEngineClientReplay->IsPlayingReplayDemo();
#endif
SetRenderingStage( HUDRENDERSTAGE_ALL ); // GSTRINGMIGRATION
// Determine the visibility of all hud elements
for ( int i = 0; i < m_HudList.Size(); i++ )
{
// GSTRINGMIGRATION
// Visible?
bool visible = m_HudList[i]->ShouldDraw();
#if defined( REPLAY_ENABLED )
visible = visible && !bPlayingReplay;
#endif
m_HudList[i]->SetActive( visible );
bool visible = false;
// If it's a vgui panel, hide/show as appropriate
vgui::Panel *pPanel = dynamic_cast<vgui::Panel*>(m_HudList[i]);
if ( pPanel && pPanel->IsVisible() != visible )
if ( pPanel )
{
pPanel->SetVisible( visible );
visible = pPanel->IsVisible();
}
// END GSTRINGMIGRATION
else if ( !pPanel )
{
// All HUD elements should now derive from vgui!!!

View file

@ -32,6 +32,8 @@ public:
// called when the Hud is initialised (whenever the DLL is loaded)
virtual void Init( void ) { return; }
// called after the dll finished init
virtual void PostDLLInit( void ) { return; } // GSTRINGMIGRATION
// called whenever the video mode changes, and whenever Init() would be called, so the hud can vid init itself
virtual void VidInit( void ) { return; }

View file

@ -22,7 +22,7 @@
class CLightGlow : public CLensflareBase // GSTRINGMIGRATION
{
public:
DECLARE_CLASS( CLightGlow, CBaseEntity );
DECLARE_CLASS( CLightGlow, CLensflareBase ); // GSTRINGMIGRATION
DECLARE_SERVERCLASS();
DECLARE_DATADESC();
@ -47,7 +47,7 @@ public:
extern void SendProxy_Angles( const SendProp *pProp, const void *pStruct, const void *pData, DVariant *pOut, int iElement, int objectID );
IMPLEMENT_SERVERCLASS_ST_NOBASE( CLightGlow, DT_LightGlow )
IMPLEMENT_SERVERCLASS_ST( CLightGlow, DT_LightGlow ) // GSTRINGMIGRATION add base
SendPropInt( SENDINFO(m_clrRender), 32, SPROP_UNSIGNED, SendProxy_Color32ToInt ),
SendPropInt( SENDINFO(m_nHorizontalSize), 16, SPROP_UNSIGNED ),
SendPropInt( SENDINFO(m_nVerticalSize), 16, SPROP_UNSIGNED ),

View file

@ -17,7 +17,7 @@
class CSun : public CLensflareBase // GSTRINGMIGRATION
{
public:
DECLARE_CLASS( CSun, CBaseEntity );
DECLARE_CLASS( CSun, CLensflareBase ); // GSTRINGMIGRATION
DECLARE_SERVERCLASS();
DECLARE_DATADESC();
@ -51,7 +51,7 @@ public:
CNetworkVar( float, m_flHDRColorScale );
};
IMPLEMENT_SERVERCLASS_ST_NOBASE( CSun, DT_Sun )
IMPLEMENT_SERVERCLASS_ST( CSun, DT_Sun ) // GSTRINGMIGRATION add base
SendPropInt( SENDINFO(m_clrRender), 32, SPROP_UNSIGNED, SendProxy_Color32ToInt ),
SendPropInt( SENDINFO(m_clrOverlay), 32, SPROP_UNSIGNED, SendProxy_Color32ToInt ),
SendPropVector( SENDINFO(m_vDirection), 0, SPROP_NORMAL ),

View file

@ -23,8 +23,11 @@ BEGIN_DATADESC( CLensflareBase )
END_DATADESC()
#endif
IMPLEMENT_NETWORKCLASS_DT( CLensflareBase, CLensflareBase_DT )
#ifdef GAME_DLL
IMPLEMENT_SERVERCLASS_ST_NOBASE( CLensflareBase, CLensflareBase_DT )
#else
IMPLEMENT_CLIENTCLASS_DT_NOBASE( CLensflareBase, CLensflareBase_DT, CLensflareBase )
#endif
#ifdef GAME_DLL
SendPropString( SENDINFO( m_netStr_LensFlareScript ) ),