Merge commit 'origin/master' into gallium-0.2
[mesa.git] / include / GL / ggimesa.h
index b7f937976b3dab749f9a8127cfeb584b7feb31f7..90e0b422225917538701cd9b8e710c885c2316ae 100644 (file)
@@ -1,10 +1,9 @@
-/* $Id: ggimesa.h,v 1.1 1999/08/19 00:55:40 jtg Exp $ */
-
 /*
- * Mesa 3-D graphics library
- * Version:  3.1
- * Copyright (C) 1995-1998  Brian Paul
+ * Mesa 3-D graphics library GGI bindings (GGIGL [giggle])
+ * Version:  4.0
+ * Copyright (C) 1995-2000  Brian Paul
  * Copyright (C) 1998  Uwe Maurer
+ * Copyrigth (C) 2001 Filip Spacek
  *
  * This library is free software; you can redistribute it and/or
  * modify it under the terms of the GNU Library General Public
  */
 
 
-/*
- * $Log: ggimesa.h,v $
- * Revision 1.1  1999/08/19 00:55:40  jtg
- * Initial revision
- *
- * Revision 1.2  1998/09/29 01:46:40  brianp
- * applied Emmanuel Marty's patches for latest GGI
- *
- */
-
-
 #ifndef GGIMESA_H
 #define GGIMESA_H
 
+#define GGIMESA_MAJOR_VERSION 4
+#define GGIMESA_MINOR_VERSION 0
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+#include <ggi/ggi.h>
 #include "GL/gl.h"
+  
+typedef struct ggi_mesa_context *ggi_mesa_context_t;
 
+/*
+ * Initialize Mesa GGI extension
+ */
+int ggiMesaInit(void);
+/*
+ * Clean up Mesa GGI exension
+ */
+int ggiMesaExit(void);
 
-typedef struct ggi_mesa_context *GGIMesaContext;
-
-#include <ggi/ggi.h>
-
-extern GGIMesaContext GGIMesaCreateContext(void);
+/*
+ * Attach Mesa GGI extension to the visual 'vis'
+ */
+int ggiMesaAttach(ggi_visual_t vis);
+/*
+ * Detach Mesa GGI extension from the visual 'vis'
+ */
+int ggiMesaDetach(ggi_visual_t vis);
 
-extern void GGIMesaDestroyContext( GGIMesaContext ctx );
+int ggiMesaExtendVisual(ggi_visual_t vis, GLboolean alpha_flag,
+                       GLboolean stereo_flag, GLint depth_size,
+                       GLint stencil_size, GLint accum_red_size,
+                       GLint accum_green_size, GLint accum_blue_size,
+                       GLint accum_alpha_size, GLint num_samples);
 
-extern void GGIMesaMakeCurrent(GGIMesaContext ctx );
+/*
+ * Create a new context capable of displaying on the visual vis.
+ */
+ggi_mesa_context_t ggiMesaCreateContext(ggi_visual_t vis);
+/*
+ * Destroy the context 'ctx'
+ */
+void ggiMesaDestroyContext(ggi_mesa_context_t ctx);
 
-extern GGIMesaContext GGIMesaGetCurrentContext( void );
+/*
+ * Make context 'ctx' the current context and bind it to visual 'vis'.
+ * Note that the context must have been created with respect to that visual.
+ */
+void ggiMesaMakeCurrent(ggi_mesa_context_t ctx, ggi_visual_t vis);
 
-extern void GGIMesaSwapBuffers( void );
+void ggiMesaSwapBuffers(void);
 
-extern int GGIMesaSetVisual(GGIMesaContext ctx,ggi_visual_t vis,
-                               GLboolean rgb_flag,GLboolean db_flag);
 
 #ifdef __cplusplus
 }