aboutsummaryrefslogtreecommitdiff
path: root/mp/src/game/client/ScreenSpaceEffects.cpp
diff options
context:
space:
mode:
authorJørgen P. Tjernø <[email protected]>2013-12-02 19:31:46 -0800
committerJørgen P. Tjernø <[email protected]>2013-12-02 19:46:31 -0800
commitf56bb35301836e56582a575a75864392a0177875 (patch)
treede61ddd39de3e7df52759711950b4c288592f0dc /mp/src/game/client/ScreenSpaceEffects.cpp
parentMark some more files as text. (diff)
downloadsource-sdk-2013-f56bb35301836e56582a575a75864392a0177875.tar.xz
source-sdk-2013-f56bb35301836e56582a575a75864392a0177875.zip
Fix line endings. WHAMMY.
Diffstat (limited to 'mp/src/game/client/ScreenSpaceEffects.cpp')
-rw-r--r--mp/src/game/client/ScreenSpaceEffects.cpp634
1 files changed, 317 insertions, 317 deletions
diff --git a/mp/src/game/client/ScreenSpaceEffects.cpp b/mp/src/game/client/ScreenSpaceEffects.cpp
index d65d7aa3..327939b8 100644
--- a/mp/src/game/client/ScreenSpaceEffects.cpp
+++ b/mp/src/game/client/ScreenSpaceEffects.cpp
@@ -1,317 +1,317 @@
-//========= Copyright Valve Corporation, All rights reserved. ============//
-#include "cbase.h"
-
-#include "KeyValues.h"
-#include "cdll_client_int.h"
-#include "view_scene.h"
-#include "viewrender.h"
-#include "tier0/icommandline.h"
-#include "materialsystem/imesh.h"
-#include "materialsystem/imaterial.h"
-#include "materialsystem/imaterialsystemhardwareconfig.h"
-#include "materialsystem/imaterialvar.h"
-
-#include "ScreenSpaceEffects.h"
-
-// memdbgon must be the last include file in a .cpp file!!!
-#include "tier0/memdbgon.h"
-
-//------------------------------------------------------------------------------
-// CScreenSpaceEffectRegistration code
-// Used to register and effect with the IScreenSpaceEffectManager
-//------------------------------------------------------------------------------
-CScreenSpaceEffectRegistration *CScreenSpaceEffectRegistration::s_pHead = NULL;
-
-CScreenSpaceEffectRegistration::CScreenSpaceEffectRegistration( const char *pName, IScreenSpaceEffect *pEffect )
-{
- m_pEffectName = pName;
- m_pEffect = pEffect;
- m_pNext = s_pHead;
- s_pHead = this;
-}
-
-
-//------------------------------------------------------------------------------
-// CScreenSpaceEffectManager - Implementation of IScreenSpaceEffectManager
-//------------------------------------------------------------------------------
-class CScreenSpaceEffectManager : public IScreenSpaceEffectManager
-{
-public:
-
- virtual void InitScreenSpaceEffects( );
- virtual void ShutdownScreenSpaceEffects( );
-
- virtual IScreenSpaceEffect *GetScreenSpaceEffect( const char *pEffectName );
-
- virtual void SetScreenSpaceEffectParams( const char *pEffectName, KeyValues *params );
- virtual void SetScreenSpaceEffectParams( IScreenSpaceEffect *pEffect, KeyValues *params );
-
- virtual void EnableScreenSpaceEffect( const char *pEffectName );
- virtual void EnableScreenSpaceEffect( IScreenSpaceEffect *pEffect );
-
- virtual void DisableScreenSpaceEffect( const char *pEffectName );
- virtual void DisableScreenSpaceEffect( IScreenSpaceEffect *pEffect );
-
- virtual void DisableAllScreenSpaceEffects( );
-
- virtual void RenderEffects( int x, int y, int w, int h );
-};
-
-CScreenSpaceEffectManager g_ScreenSpaceEffectManager;
-IScreenSpaceEffectManager *g_pScreenSpaceEffects = &g_ScreenSpaceEffectManager;
-
-//---------------------------------------------------------------------------------------
-// CScreenSpaceEffectManager::InitScreenSpaceEffects - Initialise all registered effects
-//---------------------------------------------------------------------------------------
-void CScreenSpaceEffectManager::InitScreenSpaceEffects( )
-{
- if ( CommandLine()->FindParm( "-filmgrain" ) )
- {
- GetScreenSpaceEffect( "filmgrain" )->Enable( true );
- }
-
- for( CScreenSpaceEffectRegistration *pReg=CScreenSpaceEffectRegistration::s_pHead; pReg!=NULL; pReg=pReg->m_pNext )
- {
- IScreenSpaceEffect *pEffect = pReg->m_pEffect;
- if( pEffect )
- {
- bool bIsEnabled = pEffect->IsEnabled( );
- pEffect->Init( );
- pEffect->Enable( bIsEnabled );
- }
- }
-}
-
-
-//----------------------------------------------------------------------------------------
-// CScreenSpaceEffectManager::ShutdownScreenSpaceEffects - Shutdown all registered effects
-//----------------------------------------------------------------------------------------
-void CScreenSpaceEffectManager::ShutdownScreenSpaceEffects( )
-{
- for( CScreenSpaceEffectRegistration *pReg=CScreenSpaceEffectRegistration::s_pHead; pReg!=NULL; pReg=pReg->m_pNext )
- {
- IScreenSpaceEffect *pEffect = pReg->m_pEffect;
- if( pEffect )
- {
- pEffect->Shutdown( );
- }
- }
-}
-
-
-//---------------------------------------------------------------------------------------
-// CScreenSpaceEffectManager::GetScreenSpaceEffect - Returns a point to the named effect
-//---------------------------------------------------------------------------------------
-IScreenSpaceEffect *CScreenSpaceEffectManager::GetScreenSpaceEffect( const char *pEffectName )
-{
- for( CScreenSpaceEffectRegistration *pReg=CScreenSpaceEffectRegistration::s_pHead; pReg!=NULL; pReg=pReg->m_pNext )
- {
- if( !Q_stricmp( pReg->m_pEffectName, pEffectName ) )
- {
- IScreenSpaceEffect *pEffect = pReg->m_pEffect;
- return pEffect;
- }
- }
-
- Warning( "Could not find screen space effect %s\n", pEffectName );
-
- return NULL;
-}
-
-
-//---------------------------------------------------------------------------------------
-// CScreenSpaceEffectManager::SetScreenSpaceEffectParams
-// - Assign parameters to the specified effect
-//---------------------------------------------------------------------------------------
-void CScreenSpaceEffectManager::SetScreenSpaceEffectParams( const char *pEffectName, KeyValues *params )
-{
- IScreenSpaceEffect *pEffect = GetScreenSpaceEffect( pEffectName );
- if( pEffect )
- SetScreenSpaceEffectParams( pEffect, params );
-}
-
-void CScreenSpaceEffectManager::SetScreenSpaceEffectParams( IScreenSpaceEffect *pEffect, KeyValues *params )
-{
- if( pEffect )
- pEffect->SetParameters( params );
-}
-
-
-//---------------------------------------------------------------------------------------
-// CScreenSpaceEffectManager::EnableScreenSpaceEffect
-// - Enables the specified effect
-//---------------------------------------------------------------------------------------
-void CScreenSpaceEffectManager::EnableScreenSpaceEffect( const char *pEffectName )
-{
- IScreenSpaceEffect *pEffect = GetScreenSpaceEffect( pEffectName );
- if( pEffect )
- EnableScreenSpaceEffect( pEffect );
-}
-
-void CScreenSpaceEffectManager::EnableScreenSpaceEffect( IScreenSpaceEffect *pEffect )
-{
- if( pEffect )
- pEffect->Enable( true );
-}
-
-
-//---------------------------------------------------------------------------------------
-// CScreenSpaceEffectManager::DisableScreenSpaceEffect
-// - Disables the specified effect
-//---------------------------------------------------------------------------------------
-void CScreenSpaceEffectManager::DisableScreenSpaceEffect( const char *pEffectName )
-{
- IScreenSpaceEffect *pEffect = GetScreenSpaceEffect( pEffectName );
- if( pEffect )
- DisableScreenSpaceEffect( pEffect );
-}
-
-void CScreenSpaceEffectManager::DisableScreenSpaceEffect( IScreenSpaceEffect *pEffect )
-{
- if( pEffect )
- pEffect->Enable( false );
-}
-
-
-//---------------------------------------------------------------------------------------
-// CScreenSpaceEffectManager::DisableAllScreenSpaceEffects
-// - Disables all registered screen space effects
-//---------------------------------------------------------------------------------------
-void CScreenSpaceEffectManager::DisableAllScreenSpaceEffects( )
-{
- for( CScreenSpaceEffectRegistration *pReg=CScreenSpaceEffectRegistration::s_pHead; pReg!=NULL; pReg=pReg->m_pNext )
- {
- IScreenSpaceEffect *pEffect = pReg->m_pEffect;
- if( pEffect )
- {
- pEffect->Enable( false );
- }
- }
-}
-
-
-//---------------------------------------------------------------------------------------
-// CScreenSpaceEffectManager::RenderEffects
-// - Renders all registered screen space effects
-//---------------------------------------------------------------------------------------
-void CScreenSpaceEffectManager::RenderEffects( int x, int y, int w, int h )
-{
- for( CScreenSpaceEffectRegistration *pReg=CScreenSpaceEffectRegistration::s_pHead; pReg!=NULL; pReg=pReg->m_pNext )
- {
- IScreenSpaceEffect *pEffect = pReg->m_pEffect;
- if( pEffect )
- {
- pEffect->Render( x, y, w, h );
- }
- }
-}
-
-//------------------------------------------------------------------------------
-// Example post-processing effect
-//------------------------------------------------------------------------------
-class CExampleEffect : public IScreenSpaceEffect
-{
-public:
- CExampleEffect( );
- ~CExampleEffect( );
-
- void Init( );
- void Shutdown( );
-
- void SetParameters( KeyValues *params );
-
- void Render( int x, int y, int w, int h );
-
- void Enable( bool bEnable );
- bool IsEnabled( );
-
-private:
-
- bool m_bEnable;
-
- CMaterialReference m_Material;
-};
-
-ADD_SCREENSPACE_EFFECT( CExampleEffect, exampleeffect );
-
-//------------------------------------------------------------------------------
-// CExampleEffect constructor
-//------------------------------------------------------------------------------
-CExampleEffect::CExampleEffect( )
-{
- m_bEnable = false;
-}
-
-
-//------------------------------------------------------------------------------
-// CExampleEffect destructor
-//------------------------------------------------------------------------------
-CExampleEffect::~CExampleEffect( )
-{
-}
-
-
-//------------------------------------------------------------------------------
-// CExampleEffect init
-//------------------------------------------------------------------------------
-void CExampleEffect::Init( )
-{
- // This is just example code, init your effect material here
- //m_Material.Init( "engine/exampleeffect", TEXTURE_GROUP_OTHER );
-
- m_bEnable = false;
-}
-
-
-//------------------------------------------------------------------------------
-// CExampleEffect shutdown
-//------------------------------------------------------------------------------
-void CExampleEffect::Shutdown( )
-{
- m_Material.Shutdown();
-}
-
-//------------------------------------------------------------------------------
-// CExampleEffect enable
-//------------------------------------------------------------------------------
-void CExampleEffect::Enable( bool bEnable )
-{
- // This is just example code, don't enable it
- // m_bEnable = bEnable;
-}
-
-bool CExampleEffect::IsEnabled( )
-{
- return m_bEnable;
-}
-
-//------------------------------------------------------------------------------
-// CExampleEffect SetParameters
-//------------------------------------------------------------------------------
-void CExampleEffect::SetParameters( KeyValues *params )
-{
- if( params->GetDataType( "example_param" ) == KeyValues::TYPE_STRING )
- {
- // ...
- }
-}
-
-//------------------------------------------------------------------------------
-// CExampleEffect render
-//------------------------------------------------------------------------------
-void CExampleEffect::Render( int x, int y, int w, int h )
-{
- if ( !IsEnabled() )
- return;
-
- // Render Effect
- Rect_t actualRect;
- UpdateScreenEffectTexture( 0, x, y, w, h, false, &actualRect );
- ITexture *pTexture = GetFullFrameFrameBufferTexture( 0 );
-
- CMatRenderContextPtr pRenderContext( materials );
-
- pRenderContext->DrawScreenSpaceRectangle( m_Material, x, y, w, h,
- actualRect.x, actualRect.y, actualRect.x+actualRect.width-1, actualRect.y+actualRect.height-1,
- pTexture->GetActualWidth(), pTexture->GetActualHeight() );
-}
+//========= Copyright Valve Corporation, All rights reserved. ============//
+#include "cbase.h"
+
+#include "KeyValues.h"
+#include "cdll_client_int.h"
+#include "view_scene.h"
+#include "viewrender.h"
+#include "tier0/icommandline.h"
+#include "materialsystem/imesh.h"
+#include "materialsystem/imaterial.h"
+#include "materialsystem/imaterialsystemhardwareconfig.h"
+#include "materialsystem/imaterialvar.h"
+
+#include "ScreenSpaceEffects.h"
+
+// memdbgon must be the last include file in a .cpp file!!!
+#include "tier0/memdbgon.h"
+
+//------------------------------------------------------------------------------
+// CScreenSpaceEffectRegistration code
+// Used to register and effect with the IScreenSpaceEffectManager
+//------------------------------------------------------------------------------
+CScreenSpaceEffectRegistration *CScreenSpaceEffectRegistration::s_pHead = NULL;
+
+CScreenSpaceEffectRegistration::CScreenSpaceEffectRegistration( const char *pName, IScreenSpaceEffect *pEffect )
+{
+ m_pEffectName = pName;
+ m_pEffect = pEffect;
+ m_pNext = s_pHead;
+ s_pHead = this;
+}
+
+
+//------------------------------------------------------------------------------
+// CScreenSpaceEffectManager - Implementation of IScreenSpaceEffectManager
+//------------------------------------------------------------------------------
+class CScreenSpaceEffectManager : public IScreenSpaceEffectManager
+{
+public:
+
+ virtual void InitScreenSpaceEffects( );
+ virtual void ShutdownScreenSpaceEffects( );
+
+ virtual IScreenSpaceEffect *GetScreenSpaceEffect( const char *pEffectName );
+
+ virtual void SetScreenSpaceEffectParams( const char *pEffectName, KeyValues *params );
+ virtual void SetScreenSpaceEffectParams( IScreenSpaceEffect *pEffect, KeyValues *params );
+
+ virtual void EnableScreenSpaceEffect( const char *pEffectName );
+ virtual void EnableScreenSpaceEffect( IScreenSpaceEffect *pEffect );
+
+ virtual void DisableScreenSpaceEffect( const char *pEffectName );
+ virtual void DisableScreenSpaceEffect( IScreenSpaceEffect *pEffect );
+
+ virtual void DisableAllScreenSpaceEffects( );
+
+ virtual void RenderEffects( int x, int y, int w, int h );
+};
+
+CScreenSpaceEffectManager g_ScreenSpaceEffectManager;
+IScreenSpaceEffectManager *g_pScreenSpaceEffects = &g_ScreenSpaceEffectManager;
+
+//---------------------------------------------------------------------------------------
+// CScreenSpaceEffectManager::InitScreenSpaceEffects - Initialise all registered effects
+//---------------------------------------------------------------------------------------
+void CScreenSpaceEffectManager::InitScreenSpaceEffects( )
+{
+ if ( CommandLine()->FindParm( "-filmgrain" ) )
+ {
+ GetScreenSpaceEffect( "filmgrain" )->Enable( true );
+ }
+
+ for( CScreenSpaceEffectRegistration *pReg=CScreenSpaceEffectRegistration::s_pHead; pReg!=NULL; pReg=pReg->m_pNext )
+ {
+ IScreenSpaceEffect *pEffect = pReg->m_pEffect;
+ if( pEffect )
+ {
+ bool bIsEnabled = pEffect->IsEnabled( );
+ pEffect->Init( );
+ pEffect->Enable( bIsEnabled );
+ }
+ }
+}
+
+
+//----------------------------------------------------------------------------------------
+// CScreenSpaceEffectManager::ShutdownScreenSpaceEffects - Shutdown all registered effects
+//----------------------------------------------------------------------------------------
+void CScreenSpaceEffectManager::ShutdownScreenSpaceEffects( )
+{
+ for( CScreenSpaceEffectRegistration *pReg=CScreenSpaceEffectRegistration::s_pHead; pReg!=NULL; pReg=pReg->m_pNext )
+ {
+ IScreenSpaceEffect *pEffect = pReg->m_pEffect;
+ if( pEffect )
+ {
+ pEffect->Shutdown( );
+ }
+ }
+}
+
+
+//---------------------------------------------------------------------------------------
+// CScreenSpaceEffectManager::GetScreenSpaceEffect - Returns a point to the named effect
+//---------------------------------------------------------------------------------------
+IScreenSpaceEffect *CScreenSpaceEffectManager::GetScreenSpaceEffect( const char *pEffectName )
+{
+ for( CScreenSpaceEffectRegistration *pReg=CScreenSpaceEffectRegistration::s_pHead; pReg!=NULL; pReg=pReg->m_pNext )
+ {
+ if( !Q_stricmp( pReg->m_pEffectName, pEffectName ) )
+ {
+ IScreenSpaceEffect *pEffect = pReg->m_pEffect;
+ return pEffect;
+ }
+ }
+
+ Warning( "Could not find screen space effect %s\n", pEffectName );
+
+ return NULL;
+}
+
+
+//---------------------------------------------------------------------------------------
+// CScreenSpaceEffectManager::SetScreenSpaceEffectParams
+// - Assign parameters to the specified effect
+//---------------------------------------------------------------------------------------
+void CScreenSpaceEffectManager::SetScreenSpaceEffectParams( const char *pEffectName, KeyValues *params )
+{
+ IScreenSpaceEffect *pEffect = GetScreenSpaceEffect( pEffectName );
+ if( pEffect )
+ SetScreenSpaceEffectParams( pEffect, params );
+}
+
+void CScreenSpaceEffectManager::SetScreenSpaceEffectParams( IScreenSpaceEffect *pEffect, KeyValues *params )
+{
+ if( pEffect )
+ pEffect->SetParameters( params );
+}
+
+
+//---------------------------------------------------------------------------------------
+// CScreenSpaceEffectManager::EnableScreenSpaceEffect
+// - Enables the specified effect
+//---------------------------------------------------------------------------------------
+void CScreenSpaceEffectManager::EnableScreenSpaceEffect( const char *pEffectName )
+{
+ IScreenSpaceEffect *pEffect = GetScreenSpaceEffect( pEffectName );
+ if( pEffect )
+ EnableScreenSpaceEffect( pEffect );
+}
+
+void CScreenSpaceEffectManager::EnableScreenSpaceEffect( IScreenSpaceEffect *pEffect )
+{
+ if( pEffect )
+ pEffect->Enable( true );
+}
+
+
+//---------------------------------------------------------------------------------------
+// CScreenSpaceEffectManager::DisableScreenSpaceEffect
+// - Disables the specified effect
+//---------------------------------------------------------------------------------------
+void CScreenSpaceEffectManager::DisableScreenSpaceEffect( const char *pEffectName )
+{
+ IScreenSpaceEffect *pEffect = GetScreenSpaceEffect( pEffectName );
+ if( pEffect )
+ DisableScreenSpaceEffect( pEffect );
+}
+
+void CScreenSpaceEffectManager::DisableScreenSpaceEffect( IScreenSpaceEffect *pEffect )
+{
+ if( pEffect )
+ pEffect->Enable( false );
+}
+
+
+//---------------------------------------------------------------------------------------
+// CScreenSpaceEffectManager::DisableAllScreenSpaceEffects
+// - Disables all registered screen space effects
+//---------------------------------------------------------------------------------------
+void CScreenSpaceEffectManager::DisableAllScreenSpaceEffects( )
+{
+ for( CScreenSpaceEffectRegistration *pReg=CScreenSpaceEffectRegistration::s_pHead; pReg!=NULL; pReg=pReg->m_pNext )
+ {
+ IScreenSpaceEffect *pEffect = pReg->m_pEffect;
+ if( pEffect )
+ {
+ pEffect->Enable( false );
+ }
+ }
+}
+
+
+//---------------------------------------------------------------------------------------
+// CScreenSpaceEffectManager::RenderEffects
+// - Renders all registered screen space effects
+//---------------------------------------------------------------------------------------
+void CScreenSpaceEffectManager::RenderEffects( int x, int y, int w, int h )
+{
+ for( CScreenSpaceEffectRegistration *pReg=CScreenSpaceEffectRegistration::s_pHead; pReg!=NULL; pReg=pReg->m_pNext )
+ {
+ IScreenSpaceEffect *pEffect = pReg->m_pEffect;
+ if( pEffect )
+ {
+ pEffect->Render( x, y, w, h );
+ }
+ }
+}
+
+//------------------------------------------------------------------------------
+// Example post-processing effect
+//------------------------------------------------------------------------------
+class CExampleEffect : public IScreenSpaceEffect
+{
+public:
+ CExampleEffect( );
+ ~CExampleEffect( );
+
+ void Init( );
+ void Shutdown( );
+
+ void SetParameters( KeyValues *params );
+
+ void Render( int x, int y, int w, int h );
+
+ void Enable( bool bEnable );
+ bool IsEnabled( );
+
+private:
+
+ bool m_bEnable;
+
+ CMaterialReference m_Material;
+};
+
+ADD_SCREENSPACE_EFFECT( CExampleEffect, exampleeffect );
+
+//------------------------------------------------------------------------------
+// CExampleEffect constructor
+//------------------------------------------------------------------------------
+CExampleEffect::CExampleEffect( )
+{
+ m_bEnable = false;
+}
+
+
+//------------------------------------------------------------------------------
+// CExampleEffect destructor
+//------------------------------------------------------------------------------
+CExampleEffect::~CExampleEffect( )
+{
+}
+
+
+//------------------------------------------------------------------------------
+// CExampleEffect init
+//------------------------------------------------------------------------------
+void CExampleEffect::Init( )
+{
+ // This is just example code, init your effect material here
+ //m_Material.Init( "engine/exampleeffect", TEXTURE_GROUP_OTHER );
+
+ m_bEnable = false;
+}
+
+
+//------------------------------------------------------------------------------
+// CExampleEffect shutdown
+//------------------------------------------------------------------------------
+void CExampleEffect::Shutdown( )
+{
+ m_Material.Shutdown();
+}
+
+//------------------------------------------------------------------------------
+// CExampleEffect enable
+//------------------------------------------------------------------------------
+void CExampleEffect::Enable( bool bEnable )
+{
+ // This is just example code, don't enable it
+ // m_bEnable = bEnable;
+}
+
+bool CExampleEffect::IsEnabled( )
+{
+ return m_bEnable;
+}
+
+//------------------------------------------------------------------------------
+// CExampleEffect SetParameters
+//------------------------------------------------------------------------------
+void CExampleEffect::SetParameters( KeyValues *params )
+{
+ if( params->GetDataType( "example_param" ) == KeyValues::TYPE_STRING )
+ {
+ // ...
+ }
+}
+
+//------------------------------------------------------------------------------
+// CExampleEffect render
+//------------------------------------------------------------------------------
+void CExampleEffect::Render( int x, int y, int w, int h )
+{
+ if ( !IsEnabled() )
+ return;
+
+ // Render Effect
+ Rect_t actualRect;
+ UpdateScreenEffectTexture( 0, x, y, w, h, false, &actualRect );
+ ITexture *pTexture = GetFullFrameFrameBufferTexture( 0 );
+
+ CMatRenderContextPtr pRenderContext( materials );
+
+ pRenderContext->DrawScreenSpaceRectangle( m_Material, x, y, w, h,
+ actualRect.x, actualRect.y, actualRect.x+actualRect.width-1, actualRect.y+actualRect.height-1,
+ pTexture->GetActualWidth(), pTexture->GetActualHeight() );
+}