This repository has been archived on 2024-06-13. You can view files and clone it, but cannot push or open issues or pull requests.
2020-08-04 13:13:01 -04:00

75 lines
2.4 KiB
C++

//========= 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