summary refs log tree commit diff
path: root/src/Fog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/Fog.cpp')
-rw-r--r--src/Fog.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/src/Fog.cpp b/src/Fog.cpp
new file mode 100644
index 0000000..21ca229
--- /dev/null
+++ b/src/Fog.cpp
@@ -0,0 +1,54 @@
+/**> HEADER FILES <**/
+#include "Fog.h"
+
+void Fog::SetFog(float colorR, float colorG, float colorB, float fStart, float fEnd, float Density)
+{
+	fogColor[0]=colorR;
+	fogColor[1]=colorG;
+	fogColor[2]=colorB;
+	fogColor[3]=1;
+	fogStart=fStart;
+	fogEnd=fEnd;
+	fogDensity=Density;
+	fogMode=GL_LINEAR;
+
+	glFogi(GL_FOG_MODE,fogMode);
+	glFogfv(GL_FOG_COLOR,fogColor);
+	glFogf(GL_FOG_DENSITY,fogDensity);
+	glFogi(GL_FOG_HINT,GL_DONT_CARE);
+	glFogi(GL_FOG_START,fogStart);
+	glFogi(GL_FOG_END,fogEnd);
+	
+	glEnable(GL_FOG);
+}
+
+void Fog::TempFog(float colorR, float colorG, float colorB)
+{
+	GLfloat tempfogColor[4];
+	tempfogColor[0]=colorR;
+	tempfogColor[1]=colorG;
+	tempfogColor[2]=colorB;
+	tempfogColor[3]=1;
+
+	glFogi(GL_FOG_MODE,fogMode);
+	glFogfv(GL_FOG_COLOR,tempfogColor);
+	glFogf(GL_FOG_DENSITY,fogDensity);
+	glFogi(GL_FOG_HINT,GL_DONT_CARE);
+	glFogi(GL_FOG_START,fogStart);
+	glFogi(GL_FOG_END,fogEnd);
+	
+	glEnable(GL_FOG);
+}
+
+void Fog::ResetFog()
+{
+	glFogi(GL_FOG_MODE,fogMode);
+	glFogfv(GL_FOG_COLOR,fogColor);
+	glFogf(GL_FOG_DENSITY,fogDensity);
+	glFogi(GL_FOG_HINT,GL_DONT_CARE);
+	glFogi(GL_FOG_START,fogStart);
+	glFogi(GL_FOG_END,fogEnd);
+	
+	glEnable(GL_FOG);
+}
+