diff options
Diffstat (limited to 'public/iefx.h')
| -rw-r--r-- | public/iefx.h | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/public/iefx.h b/public/iefx.h new file mode 100644 index 0000000..8383538 --- /dev/null +++ b/public/iefx.h @@ -0,0 +1,67 @@ +//========= Copyright Valve Corporation, All rights reserved. ============// +// +// Purpose: +// +// $NoKeywords: $ +// +//===========================================================================// + +#if !defined( IEFX_H ) +#define IEFX_H +#ifdef _WIN32 +#pragma once +#endif + +#include "interface.h" +#include "mathlib/vector.h" + +struct model_t; +struct dlight_t; +class IMaterial; + +#define MAX_DLIGHTS 32 + +//----------------------------------------------------------------------------- +// Purpose: Exposes effects api to client .dll +//----------------------------------------------------------------------------- +abstract_class IVEfx +{ +public: + // Retrieve decal texture index from decal by name + virtual int Draw_DecalIndexFromName ( char *name ) = 0; + + // Apply decal + virtual void DecalShoot ( int textureIndex, int entity, + const model_t *model, const Vector& model_origin, const QAngle& model_angles, + const Vector& position, const Vector *saxis, int flags ) = 0; + + // Apply colored decal + virtual void DecalColorShoot ( int textureIndex, int entity, + const model_t *model, const Vector& model_origin, const QAngle& model_angles, + const Vector& position, const Vector *saxis, int flags, const color32 &rgbaColor ) = 0; + + virtual void PlayerDecalShoot( IMaterial *material, void *userdata, int entity, const model_t *model, + const Vector& model_origin, const QAngle& model_angles, + const Vector& position, const Vector *saxis, int flags, const color32 &rgbaColor ) = 0; + + // Allocate a dynamic world light ( key is the entity to whom it is associated ) + virtual dlight_t *CL_AllocDlight ( int key ) = 0; + + // Allocate a dynamic entity light ( key is the entity to whom it is associated ) + virtual dlight_t *CL_AllocElight ( int key ) = 0; + + // Get a list of the currently-active dynamic lights. + virtual int CL_GetActiveDLights( dlight_t *pList[MAX_DLIGHTS] ) = 0; + + // Retrieve decal texture name from decal by index + virtual const char *Draw_DecalNameFromIndex( int nIndex ) = 0; + + // Given an elight key, find it. Does not search ordinary dlights. May return NULL. + virtual dlight_t *GetElightByKey( int key ) = 0; +}; + +#define VENGINE_EFFECTS_INTERFACE_VERSION "VEngineEffects001" + +extern IVEfx *effects; + +#endif // IEFX_H |