summaryrefslogtreecommitdiff
path: root/tf2/ScreenSpaceEffects.h
diff options
context:
space:
mode:
Diffstat (limited to 'tf2/ScreenSpaceEffects.h')
-rw-r--r--tf2/ScreenSpaceEffects.h50
1 files changed, 50 insertions, 0 deletions
diff --git a/tf2/ScreenSpaceEffects.h b/tf2/ScreenSpaceEffects.h
new file mode 100644
index 0000000..ec0b6e8
--- /dev/null
+++ b/tf2/ScreenSpaceEffects.h
@@ -0,0 +1,50 @@
+#pragma once
+class KeyValues;
+
+class IScreenSpaceEffect {
+public:
+
+ virtual void Init( ) = 0;
+ virtual void Shutdown( ) = 0;
+
+ virtual void SetParameters( KeyValues *params ) = 0;
+
+ virtual void Render( int x, int y, int w, int h ) = 0;
+
+ virtual void Enable( bool bEnable ) = 0;
+ virtual bool IsEnabled( ) = 0;
+};
+
+class IScreenSpaceEffectManager {
+public:
+
+ virtual void InitScreenSpaceEffects( ) = 0;
+ virtual void ShutdownScreenSpaceEffects( ) = 0;
+
+ virtual IScreenSpaceEffect *GetScreenSpaceEffect( const char *pEffectName ) = 0;
+
+ virtual void SetScreenSpaceEffectParams( const char *pEffectName, KeyValues *params ) = 0;
+ virtual void SetScreenSpaceEffectParams( IScreenSpaceEffect *pEffect, KeyValues *params ) = 0;
+
+ virtual void EnableScreenSpaceEffect( const char *pEffectName ) = 0;
+ virtual void EnableScreenSpaceEffect( IScreenSpaceEffect *pEffect ) = 0;
+
+ virtual void DisableScreenSpaceEffect( const char *pEffectName ) = 0;
+ virtual void DisableScreenSpaceEffect( IScreenSpaceEffect *pEffect ) = 0;
+
+ virtual void DisableAllScreenSpaceEffects( ) = 0;
+
+ virtual void RenderEffects( int x, int y, int w, int h ) = 0;
+};
+
+class CScreenSpaceEffectRegistration {
+public:
+ CScreenSpaceEffectRegistration( const char *pName, IScreenSpaceEffect *pEffect );
+
+ const char *m_pEffectName;
+ IScreenSpaceEffect *m_pEffect;
+
+ CScreenSpaceEffectRegistration *m_pNext;
+
+ static CScreenSpaceEffectRegistration *s_pHead;
+}; \ No newline at end of file