Files
Jedi-Academy/code/renderer/tr_lightmanager.h
2013-04-04 14:32:05 -07:00

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