From e43bceafaba72d34dfbea1deecd56c2f694d704a Mon Sep 17 00:00:00 2001 From: neoraider Date: Tue, 24 Oct 2006 15:04:02 +0000 Subject: Beleuchtung und Rendering ge?ndert, um Schatten zu erm?glichen. --- light.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 light.c (limited to 'light.c') diff --git a/light.c b/light.c new file mode 100644 index 0000000..dcea864 --- /dev/null +++ b/light.c @@ -0,0 +1,45 @@ +#include +#include +#include + + +int nLights = 0; +LIGHT *lights; + +static COLOR ambient; + + +static void UpdateAmbient() { + glClearColor(ambient.r/(nLights+1), ambient.g/(nLights+1), ambient.b/(nLights+1), 1.0); +} + +void SetAmbient(COLOR c) { + ambient = c; + + UpdateAmbient(); +} + +void AddLight(LIGHT light) { + if(nLights == 0) + lights = malloc(sizeof(LIGHT)); + else + lights = realloc(lights, sizeof(LIGHT)*(nLights+1)); + + lights[nLights] = light; + nLights++; + + UpdateAmbient(); +} + +void ResetLights() { + if(nLights > 0) { + free(lights); + nLights = 0; + UpdateAmbient(); + } +} + +void ApplyLightScale() { + glAccum(GL_LOAD, 1); + glAccum(GL_RETURN, nLights+1); +} -- cgit v1.2.3