]> de.git.xonotic.org Git - xonotic/darkplaces.git/blobdiff - r_light.h
rewrote most of the RSurfShader_ functions to use R_Mesh_Draw_GetBuffer instead of...
[xonotic/darkplaces.git] / r_light.h
index 6e29e589b0a65c03948e136a64174e44117751b9..cc63e8bbefc038fa0571fb38e07cd02ca3715af3 100644 (file)
--- a/r_light.h
+++ b/r_light.h
@@ -1,20 +1,27 @@
 
-// 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];
+
+void R_BuildLightList(void);
+void R_AnimateLight(void);
+void R_MarkLights(void);
+void R_DrawCoronas(void);
+void R_CompleteLightPoint(vec3_t color, vec3_t p, int dynamic, mleaf_t *leaf);
+void R_LightModel(int numverts, float colorr, float colorg, float colorb, int worldcoords);
 
-// LordHavoc: this affects the lighting scale of the whole game
-#define LIGHTOFFSET 4096.0f
+#endif
 
-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);