56 lines
1.3 KiB
C++
56 lines
1.3 KiB
C++
/*
|
|
* EffectGlow.hpp
|
|
*
|
|
* Created on: Apr 13, 2017
|
|
* Author: nullifiedcat
|
|
*/
|
|
|
|
#ifndef EFFECTGLOW_HPP_
|
|
#define EFFECTGLOW_HPP_
|
|
|
|
#include "common.hpp"
|
|
#include "sdk.hpp"
|
|
|
|
namespace effect_glow {
|
|
|
|
class EffectGlow : public IScreenSpaceEffect {
|
|
public:
|
|
virtual void Init( );
|
|
inline virtual void Shutdown( ) {};
|
|
|
|
inline virtual void SetParameters( KeyValues *params ) {};
|
|
|
|
virtual void Render( int x, int y, int w, int h );
|
|
|
|
inline virtual void Enable( bool bEnable ) { enabled = bEnable; };
|
|
inline virtual bool IsEnabled( ) { return enabled; };
|
|
|
|
void StartStenciling();
|
|
void EndStenciling();
|
|
void DrawEntity(IClientEntity* entity);
|
|
void DrawToStencil(IClientEntity* entity);
|
|
void DrawToBuffer(IClientEntity* entity);
|
|
rgba_t GlowColor(IClientEntity* entity);
|
|
bool ShouldRenderGlow(IClientEntity* entity);
|
|
void RenderGlow(IClientEntity* entity);
|
|
void BeginRenderGlow();
|
|
void EndRenderGlow();
|
|
public:
|
|
bool init { false };
|
|
bool drawing { false };
|
|
bool enabled;
|
|
float orig_modulation[3];
|
|
CMaterialReference mat_blit;
|
|
CMaterialReference mat_blur_x;
|
|
CMaterialReference mat_blur_y;
|
|
CMaterialReference mat_unlit;
|
|
CMaterialReference mat_unlit_z;
|
|
};
|
|
|
|
extern EffectGlow g_EffectGlow;
|
|
extern CScreenSpaceEffectRegistration* g_pEffectGlow;
|
|
|
|
}
|
|
|
|
#endif /* EFFECTGLOW_HPP_ */
|