change gl_buffer_object's Size field to GLsizeiptrARB type
[mesa.git] / src / mesa / main / context.h
index 838b7bbcddd23c9be31ff613ea4fef4b19e66d32..c59a8b2118671c5ae06e4f81141a50d177b708a4 100644 (file)
@@ -21,9 +21,9 @@
 
 /*
  * Mesa 3-D graphics library
- * Version:  4.1
+ * Version:  6.1
  *
- * Copyright (C) 1999-2001  Brian Paul   All Rights Reserved.
+ * Copyright (C) 1999-2004  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"),
@@ -49,6 +49,7 @@
 
 
 #include "glapi.h"
+#include "imports.h"
 #include "mtypes.h"
 
 
@@ -132,15 +133,15 @@ _mesa_destroy_framebuffer( GLframebuffer *buffer );
 extern GLcontext *
 _mesa_create_context( const GLvisual *visual,
                       GLcontext *share_list,
-                      void *driver_ctx,
-                      GLboolean direct );
+                      const struct dd_function_table *driverFunctions,
+                      void *driverContext );
 
 extern GLboolean
 _mesa_initialize_context( GLcontext *ctx,
                           const GLvisual *visual,
                           GLcontext *share_list,
-                          void *driver_ctx,
-                          GLboolean direct );
+                          const struct dd_function_table *driverFunctions,
+                          void *driverContext );
 
 extern void
 _mesa_free_context_data( GLcontext *ctx );
@@ -263,6 +264,7 @@ _mesa_Flush( void );
 /** \name Macros for contexts/flushing. */
 /*@{*/
 
+
 /**
  * Flush vertices.
  *
@@ -272,13 +274,11 @@ _mesa_Flush( void );
  * Checks if dd_function_table::NeedFlush is marked to flush stored vertices,
  * and calls dd_function_table::FlushVertices if so. Marks
  * __GLcontextRec::NewState with \p newstate.
- * 
- * \todo Eventually let the driver specify what state changes require a flush:
  */
 #define FLUSH_VERTICES(ctx, newstate)                          \
 do {                                                           \
    if (MESA_VERBOSE & VERBOSE_STATE)                           \
-      _mesa_debug(ctx, "FLUSH_VERTICES in %s\n", __FUNCTION__);        \
+      _mesa_debug(ctx, "FLUSH_VERTICES in %s\n", MESA_FUNCTION);\
    if (ctx->Driver.NeedFlush & FLUSH_STORED_VERTICES)          \
       ctx->Driver.FlushVertices(ctx, FLUSH_STORED_VERTICES);   \
    ctx->NewState |= newstate;                                  \
@@ -297,7 +297,7 @@ do {                                                                \
 #define FLUSH_CURRENT(ctx, newstate)                           \
 do {                                                           \
    if (MESA_VERBOSE & VERBOSE_STATE)                           \
-      _mesa_debug(ctx, "FLUSH_CURRENT in %s\n", __FUNCTION__); \
+      _mesa_debug(ctx, "FLUSH_CURRENT in %s\n", MESA_FUNCTION);        \
    if (ctx->Driver.NeedFlush & FLUSH_UPDATE_CURRENT)           \
       ctx->Driver.FlushVertices(ctx, FLUSH_UPDATE_CURRENT);    \
    ctx->NewState |= newstate;                                  \
@@ -374,7 +374,12 @@ do {                                                                       \
 #define NEED_SECONDARY_COLOR(CTX)                                      \
    (((CTX)->Light.Enabled &&                                           \
      (CTX)->Light.Model.ColorControl == GL_SEPARATE_SPECULAR_COLOR)    \
-    || (CTX)->Fog.ColorSumEnabled)
+    || (CTX)->Fog.ColorSumEnabled                                      \
+    || ((CTX)->VertexProgram._Enabled &&                               \
+        ((CTX)->VertexProgram.Current->InputsRead & VERT_BIT_COLOR1))  \
+    || ((CTX)->FragmentProgram._Enabled &&                             \
+        ((CTX)->FragmentProgram.Current->InputsRead & FRAG_BIT_COL1))  \
+   )
 
 
 /**