70 lines
1.8 KiB
C++
70 lines
1.8 KiB
C++
/*
|
|
** tr_lightmanager.h
|
|
*/
|
|
|
|
#ifndef TR_LIGHTMANAGER_H
|
|
#define TR_LIGHTMANAGER_H
|
|
|
|
#include "tr_local.h"
|
|
|
|
#define MAX_NUM_STATIC_LIGHTS 256
|
|
|
|
enum VVlight_type {
|
|
LT_DIRECTIONAL,
|
|
LT_POINT,
|
|
LT_SPOT
|
|
};
|
|
|
|
typedef struct VVdlight_s {
|
|
VVlight_type type;
|
|
vec3_t origin;
|
|
vec3_t direction;
|
|
vec3_t color;
|
|
vec3_t transformed;
|
|
float radius;
|
|
float attenuation;
|
|
} VVdlight_t;
|
|
|
|
typedef struct VVslight_s {
|
|
vec3_t origin;
|
|
vec3_t color;
|
|
float radius;
|
|
} VVslight_t;
|
|
|
|
|
|
class VVLightManager {
|
|
public:
|
|
|
|
int num_dlights;
|
|
int num_slights;
|
|
VVdlight_t dlights[MAX_DLIGHTS];
|
|
/*VVslight_t slights[MAX_NUM_STATIC_LIGHTS];
|
|
unsigned char slightBits[MAX_NUM_STATIC_LIGHTS];*/
|
|
int currentlight;
|
|
|
|
VVLightManager();
|
|
void R_TransformDlights( orientationr_t *orient);
|
|
void RE_AddLightToScene( const vec3_t org, float intensity, float r, float g, float b );
|
|
void RE_AddLightToScene( VVdlight_t *light );
|
|
//void RE_AddStaticLightToScene( VVslight_t *light );
|
|
void R_DlightBmodel( bmodel_t *bmodel, qboolean NoLight );
|
|
int R_DlightFace( srfSurfaceFace_t *face, int dlightBits );
|
|
//void R_SlightFace( srfSurfaceFace_t *face );
|
|
int R_DlightGrid( srfGridMesh_t *grid, int dlightBits );
|
|
//void R_SlightGrid( srfGridMesh_t *grid );
|
|
int R_DlightTrisurf( srfTriangles_t *surf, int dlightBits );
|
|
//void R_SlightTrisurf( srfTriangles_t *surf );
|
|
int R_DlightSurface( msurface_t *surf, int dlightBits );
|
|
void R_SetupEntityLighting( const trRefdef_t *refdef, trRefEntity_t *ent );
|
|
void R_RecursiveWorldNode( mnode_t *node, int planeBits, int dlightBits );
|
|
void RB_CalcDiffuseColorWorld();
|
|
void RB_CalcDiffuseColor( DWORD *colors );
|
|
void RB_CalcDiffuseEntityColor( DWORD *colors );
|
|
void ShortToVec3(const short in[3], vec3_t &out);
|
|
int BoxOnPlaneSide (const short emins[3], const short emaxs[3], struct cplane_s *p);
|
|
};
|
|
|
|
extern VVLightManager VVLightMan;
|
|
|
|
|
|
#endif |