change gl_buffer_object's Size field to GLsizeiptrARB type
[mesa.git] / src / mesa / main / fog.c
index a6ebb3e110150b9c96b0eff8f4806d5ebe75093c..d3b8a923aae6e15ede9d4f9143c205836e0565c8 100644 (file)
@@ -1,10 +1,8 @@
-/* $Id: fog.c,v 1.34 2001/03/12 00:48:37 gareth Exp $ */
-
 /*
  * Mesa 3-D graphics library
- * Version:  3.5
+ * Version:  5.1
  *
- * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2003  Brian Paul   All Rights Reserved.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
  */
 
 
-#ifdef PC_HEADER
-#include "all.h"
-#else
 #include "glheader.h"
 #include "colormac.h"
 #include "context.h"
 #include "fog.h"
 #include "mtypes.h"
-#endif
 
 
 
-void
+void GLAPIENTRY
 _mesa_Fogf(GLenum pname, GLfloat param)
 {
    _mesa_Fogfv(pname, &param);
 }
 
 
-void
+void GLAPIENTRY
 _mesa_Fogi(GLenum pname, GLint param )
 {
    GLfloat fparam = (GLfloat) param;
@@ -52,7 +46,7 @@ _mesa_Fogi(GLenum pname, GLint param )
 }
 
 
-void
+void GLAPIENTRY
 _mesa_Fogiv(GLenum pname, const GLint *params )
 {
    GLfloat p[4];
@@ -79,7 +73,7 @@ _mesa_Fogiv(GLenum pname, const GLint *params )
 }
 
 
-void
+void GLAPIENTRY
 _mesa_Fogfv( GLenum pname, const GLfloat *params )
 {
    GET_CURRENT_CONTEXT(ctx);
@@ -135,15 +129,16 @@ _mesa_Fogfv( GLenum pname, const GLfloat *params )
         if (TEST_EQ_4V(ctx->Fog.Color, params))
            return;
         FLUSH_VERTICES(ctx, _NEW_FOG);
-        ctx->Fog.Color[0] = params[0];
-        ctx->Fog.Color[1] = params[1];
-        ctx->Fog.Color[2] = params[2];
-        ctx->Fog.Color[3] = params[3];
+        ctx->Fog.Color[0] = CLAMP(params[0], 0.0F, 1.0F);
+        ctx->Fog.Color[1] = CLAMP(params[1], 0.0F, 1.0F);
+        ctx->Fog.Color[2] = CLAMP(params[2], 0.0F, 1.0F);
+        ctx->Fog.Color[3] = CLAMP(params[3], 0.0F, 1.0F);
          break;
       case GL_FOG_COORDINATE_SOURCE_EXT: {
-        GLenum p = (GLenum)(GLint) *params;
-        if (p != GL_FOG_COORDINATE_EXT && p != GL_FRAGMENT_DEPTH_EXT) {
-           _mesa_error( ctx, GL_INVALID_ENUM, "glFog" );
+        GLenum p = (GLenum) (GLint) *params;
+         if (!ctx->Extensions.EXT_fog_coord ||
+             (p != GL_FOG_COORDINATE_EXT && p != GL_FRAGMENT_DEPTH_EXT)) {
+           _mesa_error(ctx, GL_INVALID_ENUM, "glFog");
            return;
         }
         if (ctx->Fog.FogCoordinateSource == p)
@@ -161,3 +156,22 @@ _mesa_Fogfv( GLenum pname, const GLfloat *params )
       (*ctx->Driver.Fogfv)( ctx, pname, params );
    }
 }
+
+
+/**********************************************************************/
+/*****                      Initialization                        *****/
+/**********************************************************************/
+
+void _mesa_init_fog( GLcontext * ctx )
+{
+   /* Fog group */
+   ctx->Fog.Enabled = GL_FALSE;
+   ctx->Fog.Mode = GL_EXP;
+   ASSIGN_4V( ctx->Fog.Color, 0.0, 0.0, 0.0, 0.0 );
+   ctx->Fog.Index = 0.0;
+   ctx->Fog.Density = 1.0;
+   ctx->Fog.Start = 0.0;
+   ctx->Fog.End = 1.0;
+   ctx->Fog.ColorSumEnabled = GL_FALSE;
+   ctx->Fog.FogCoordinateSource = GL_FRAGMENT_DEPTH_EXT;
+}