X-Git-Url: http://de.git.xonotic.org/?p=xonotic%2Fdarkplaces.git;a=blobdiff_plain;f=r_light.h;h=c09e26fa1ebe914582b55cd21063fa17ad835634;hp=df11b53b3c41b6c4899eaace89cdaee4d6bcdd38;hb=0896ffc41ce8fdf985d5659b2b572763c527fdf9;hpb=4d162c39ec059b7f3191fbb4fb18304bc9b1db59 diff --git a/r_light.h b/r_light.h index df11b53b..c09e26fa 100644 --- a/r_light.h +++ b/r_light.h @@ -1,22 +1,28 @@ -// LordHavoc: 256 dynamic lights -#define MAX_DLIGHTS 256 +#ifndef R_LIGHT_H +#define R_LIGHT_H + typedef struct { - vec3_t origin; - float radius; - float die; // stop lighting after this time - float decay; // drop this each second - entity_t *ent; // the entity that spawned this light (can be NULL if it is not to be replaced repeatedly) - vec3_t color; // LordHavoc: colored lighting -} dlight_t; + vec3_t origin; + vec_t cullradius2; // only for culling comparisons, squared version + vec3_t light; // the brightness of the light + vec_t cullradius; // only for culling comparisons + vec_t subtract; // to avoid sudden brightness change at cullradius, subtract this + entity_render_t *ent; // owner of this light +} +rdlight_t; + +extern int r_numdlights; +extern rdlight_t r_dlight[MAX_DLIGHTS]; -// LordHavoc: this affects the lighting scale of the whole game -#define LIGHTOFFSET 4096.0f +void R_BuildLightList(void); +void R_AnimateLight(void); +void R_MarkLights(entity_render_t *ent); +void R_DrawCoronas(void); +void R_CompleteLightPoint(vec3_t color, const vec3_t p, int dynamic, const mleaf_t *leaf); +void R_LightModel(const entity_render_t *ent, int numverts, float *vertices, float *normals, float *colors, float colorr, float colorg, float colorb, int worldcoords); +void R_UpdateEntLights(entity_render_t *ent); -extern void R_CompleteLightPoint (vec3_t color, vec3_t p, int dynamic); -extern void R_DynamicLightPoint(vec3_t color, vec3_t org, int *dlightbits); -extern void R_DynamicLightPointNoMask(vec3_t color, vec3_t org); -extern void R_LightPoint (vec3_t color, vec3_t p); +#endif -extern int r_dlightframecount;