Pass scale and bias values to _mesa_scale_and_bias_rgba().
[mesa.git] / src / mesa / main / context.h
index 97e9d6a80827ff66d52c2646266b21588338e370..9050fabc759abb430bc68f4ae708589818dc748b 100644 (file)
@@ -1,21 +1,21 @@
-/* $Id: context.h,v 1.11 2000/01/18 17:36:16 brianp Exp $ */
+/* $Id: context.h,v 1.22 2000/11/22 07:32:16 joukj Exp $ */
 
 /*
  * Mesa 3-D graphics library
  * Version:  3.3
- * 
+ *
  * Copyright (C) 1999-2000  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"),
  * to deal in the Software without restriction, including without limitation
  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
  * and/or sell copies of the Software, and to permit persons to whom the
  * Software is furnished to do so, subject to the following conditions:
- * 
+ *
  * The above copyright notice and this permission notice shall be included
  * in all copies or substantial portions of the Software.
- * 
+ *
  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
@@ -30,7 +30,7 @@
 
 
 #include "glapi.h"
-#include "types.h"
+#include "mtypes.h"
 
 
 /*
  * the colorbuffer, depth buffer, stencil buffer and accum buffer which will
  * be used by the GL context and framebuffer.
  */
-extern GLvisual *gl_create_visual( GLboolean rgbFlag,
-                                   GLboolean alphaFlag,
-                                   GLboolean dbFlag,
-                                   GLboolean stereoFlag,
-                                   GLint depthBits,
-                                   GLint stencilBits,
-                                   GLint accumBits,
-                                   GLint indexBits,
-                                   GLint redBits,
-                                   GLint greenBits,
-                                   GLint blueBits,
-                                   GLint alphaBits );
-
-extern void gl_destroy_visual( GLvisual *vis );
+extern GLvisual *
+_mesa_create_visual( GLboolean rgbFlag,
+                     GLboolean dbFlag,
+                     GLboolean stereoFlag,
+                     GLint redBits,
+                     GLint greenBits,
+                     GLint blueBits,
+                     GLint alphaBits,
+                     GLint indexBits,
+                     GLint depthBits,
+                     GLint stencilBits,
+                     GLint accumRedBits,
+                     GLint accumGreenBits,
+                     GLint accumBlueBits,
+                     GLint accumAlphaBits,
+                     GLint numSamples );
+
+extern GLboolean
+_mesa_initialize_visual( GLvisual *v,
+                         GLboolean rgbFlag,
+                         GLboolean dbFlag,
+                         GLboolean stereoFlag,
+                         GLint redBits,
+                         GLint greenBits,
+                         GLint blueBits,
+                         GLint alphaBits,
+                         GLint indexBits,
+                         GLint depthBits,
+                         GLint stencilBits,
+                         GLint accumRedBits,
+                         GLint accumGreenBits,
+                         GLint accumBlueBits,
+                         GLint accumAlphaBits,
+                         GLint numSamples );
+
+extern void
+_mesa_destroy_visual( GLvisual *vis );
+
 
 
 /*
@@ -78,13 +102,23 @@ extern void gl_destroy_visual( GLvisual *vis );
  * It bundles up the depth buffer, stencil buffer and accum buffers into a
  * single entity.
  */
-extern GLframebuffer *gl_create_framebuffer( GLvisual *visual,
-                                             GLboolean softwareDepth,
-                                             GLboolean softwareStencil,
-                                             GLboolean softwareAccum,
-                                             GLboolean softwareAlpha );
+extern GLframebuffer *
+_mesa_create_framebuffer( GLvisual *visual,
+                          GLboolean softwareDepth,
+                          GLboolean softwareStencil,
+                          GLboolean softwareAccum,
+                          GLboolean softwareAlpha );
+
+extern void
+_mesa_initialize_framebuffer( GLframebuffer *fb,
+                              GLvisual *visual,
+                              GLboolean softwareDepth,
+                              GLboolean softwareStencil,
+                              GLboolean softwareAccum,
+                              GLboolean softwareAlpha );
 
-extern void gl_destroy_framebuffer( GLframebuffer *buffer );
+extern void
+_mesa_destroy_framebuffer( GLframebuffer *buffer );
 
 
 
@@ -92,65 +126,58 @@ extern void gl_destroy_framebuffer( GLframebuffer *buffer );
  * Create/destroy a GLcontext.  A GLcontext is like a GLX context.  It
  * contains the rendering state.
  */
-extern GLcontext *gl_create_context( GLvisual *visual,
-                                     GLcontext *share_list,
-                                     void *driver_ctx,
-                                     GLboolean direct);
+extern GLcontext *
+_mesa_create_context( GLvisual *visual,
+                      GLcontext *share_list,
+                      void *driver_ctx,
+                      GLboolean direct);
+
+extern GLboolean
+_mesa_initialize_context( GLcontext *ctx,
+                          GLvisual *visual,
+                          GLcontext *share_list,
+                          void *driver_ctx,
+                          GLboolean direct );
 
-extern GLboolean gl_initialize_context_data( GLcontext *ctx,
-                                             GLvisual *visual,
-                                             GLcontext *share_list,
-                                             void *driver_ctx,
-                                             GLboolean direct );
+extern void
+_mesa_free_context_data( GLcontext *ctx );
 
-extern void gl_free_context_data( GLcontext *ctx );
+extern void
+_mesa_destroy_context( GLcontext *ctx );
 
-extern void gl_destroy_context( GLcontext *ctx );
 
+extern void
+_mesa_context_initialize( GLcontext *ctx );
 
-extern void gl_context_initialize( GLcontext *ctx );
 
+extern void
+_mesa_copy_context(const GLcontext *src, GLcontext *dst, GLuint mask);
 
-extern void gl_copy_context(const GLcontext *src, GLcontext *dst, GLuint mask);
 
+extern void
+_mesa_make_current( GLcontext *ctx, GLframebuffer *buffer );
 
-extern void gl_make_current( GLcontext *ctx, GLframebuffer *buffer );
 
+extern void
+_mesa_make_current2( GLcontext *ctx, GLframebuffer *drawBuffer,
+                  GLframebuffer *readBuffer );
 
-extern void gl_make_current2( GLcontext *ctx, GLframebuffer *drawBuffer,
-                              GLframebuffer *readBuffer );
 
+extern GLcontext *
+_mesa_get_current_context(void);
 
-extern GLcontext *gl_get_current_context(void);
 
 
 /*
- * Macros for fetching current context, input buffer, etc.
+ * Macros for fetching current context.
  */
 #ifdef THREADS
 
-#define GET_CURRENT_CONTEXT(C) GLcontext *C = (GLcontext *) (_glapi_CurrentContext ? _glapi_CurrentContext : _glapi_get_current_context())
-
-#define GET_IMMEDIATE  struct immediate *IM = ((GLcontext *) (_glapi_CurrentContext ? _glapi_CurrentContext : _glapi_get_current_context()))->input
-
-#define SET_IMMEDIATE(ctx, im)         \
-do {                                   \
-   ctx->input = im;                    \
-} while (0)
+#define GET_CURRENT_CONTEXT(C) GLcontext *C = (GLcontext *) (_glapi_Context ? _glapi_Context : _glapi_get_context())
 
 #else
 
-extern struct immediate *_mesa_CurrentInput;
-
-#define GET_CURRENT_CONTEXT(C)  GLcontext *C = _glapi_CurrentContext
-
-#define GET_IMMEDIATE struct immediate *IM = _mesa_CurrentInput
-
-#define SET_IMMEDIATE(ctx, im)         \
-do {                                   \
-   ctx->input = im;                    \
-   _mesa_CurrentInput = im;            \
-} while (0)
+#define GET_CURRENT_CONTEXT(C)  GLcontext *C = (GLcontext *) _glapi_Context
 
 #endif
 
@@ -166,37 +193,36 @@ _mesa_get_dispatch(GLcontext *ctx);
 
 
 /*
- * GL_MESA_resize_buffers extension
+ * Miscellaneous
  */
-extern void _mesa_ResizeBuffersMESA( void );
-
 
+extern void
+gl_problem( const GLcontext *ctx, const char *s );
 
-/*
- * Miscellaneous
- */
+extern void
+_mesa_warning( const GLcontext *ctx, const char *s );
 
-extern void gl_problem( const GLcontext *ctx, const char *s );
+extern void
+gl_error( GLcontext *ctx, GLenum error, const char *s );
 
-extern void gl_warning( const GLcontext *ctx, const char *s );
+extern void
+_mesa_compile_error( GLcontext *ctx, GLenum error, const char *s );
 
-extern void gl_error( GLcontext *ctx, GLenum error, const char *s );
 
-extern void gl_compile_error( GLcontext *ctx, GLenum error, const char *s );
 
-extern void gl_update_state( GLcontext *ctx );
+extern void
+_mesa_Finish( void );
 
+extern void
+_mesa_Flush( void );
 
-/* for debugging */
-extern void gl_print_state( const char *msg, GLuint state );
 
-/* for debugging */
-extern void gl_print_enable_flags( const char *msg, GLuint flags );
 
+extern void
+gl_read_config_file(GLcontext *ctx);
 
-#ifdef PROFILE
-extern GLdouble gl_time( void );
-#endif
+extern void
+gl_register_config_var(const char *name, void (*notify)( const char *, int ));
 
 
 #endif