gallium/draw: initial code to properly support llvm in the draw module
[mesa.git] / include / GL / dmesa.h
index 89df5a4e216424189cd126ba1b706797cf3b3ebb..358082e3ea1e1f509d3f0442749fc268558928c5 100644 (file)
-/*\r
- * Mesa 3-D graphics library\r
- * Version:  5.0\r
- * \r
- * Copyright (C) 1999-2002  Brian Paul   All Rights Reserved.\r
- * \r
- * Permission is hereby granted, free of charge, to any person obtaining a\r
- * copy of this software and associated documentation files (the "Software"),\r
- * to deal in the Software without restriction, including without limitation\r
- * the rights to use, copy, modify, merge, publish, distribute, sublicense,\r
- * and/or sell copies of the Software, and to permit persons to whom the\r
- * Software is furnished to do so, subject to the following conditions:\r
- * \r
- * The above copyright notice and this permission notice shall be included\r
- * in all copies or substantial portions of the Software.\r
- * \r
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS\r
- * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r
- * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL\r
- * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN\r
- * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\r
- * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\r
- */\r
-\r
-/*\r
- * DOS/DJGPP device driver v1.3 for Mesa\r
- *\r
- *  Copyright (C) 2002 - Borca Daniel\r
- *  Email : dborca@yahoo.com\r
- *  Web   : http://www.geocities.com/dborca\r
- */\r
-\r
-\r
-#ifndef DMESA_H_included\r
-#define DMESA_H_included\r
-\r
-#define DMESA_MAJOR_VERSION 5\r
-#define DMESA_MINOR_VERSION 0\r
-\r
-/* Sample Usage:\r
- *\r
- * 1. Call DMesaCreateVisual() to initialize graphics.\r
- * 2. Call DMesaCreateContext() to create a DMesa rendering context.\r
- * 3. Call DMesaCreateBuffer() to define the window.\r
- * 4. Call DMesaMakeCurrent() to bind the DMesaBuffer to a DMesaContext.\r
- * 5. Make gl* calls to render your graphics.\r
- * 6. Use DMesaSwapBuffers() when double buffering to swap front/back buffers.\r
- * 7. Before exiting, destroy DMesaBuffer, DMesaContext and DMesaVisual.\r
- */\r
-\r
-typedef struct dmesa_context *DMesaContext;\r
-typedef struct dmesa_visual *DMesaVisual;\r
-typedef struct dmesa_buffer *DMesaBuffer;\r
-\r
-#ifdef __cplusplus\r
-extern "C" {\r
-#endif\r
-\r
-/*\r
- * Create a new Visual and set graphics mode.\r
- */\r
-DMesaVisual DMesaCreateVisual (GLint width,        /* X res */\r
-                               GLint height,       /* Y res */\r
-                               GLint colDepth,     /* BPP */\r
-                               GLint refresh,      /* refresh rate: 0=default */\r
-                               GLboolean dbFlag,   /* double-buffered */\r
-                               GLboolean rgbFlag,  /* RGB mode */\r
-                               GLboolean alphaFlag,/* alpha buffer requested */\r
-                               GLint depthSize,    /* requested bits/depth */\r
-                               GLint stencilSize,  /* requested bits/stencil */\r
-                               GLint accumSize);   /* requested bits/accum */\r
-\r
-/*\r
- * Destroy Visual and restore screen.\r
- */\r
-void DMesaDestroyVisual (DMesaVisual v);\r
-\r
-\r
-\r
-/*\r
- * Create a new Context for rendering.\r
- */\r
-DMesaContext DMesaCreateContext (DMesaVisual visual, DMesaContext share);\r
-\r
-/*\r
- * Destroy Context.\r
- */\r
-void DMesaDestroyContext (DMesaContext c);\r
-\r
-/*\r
- * Return a handle to the current context.\r
- */\r
-DMesaContext DMesaGetCurrentContext (void);\r
-\r
-\r
-\r
-/*\r
- * Create a new Buffer (window).\r
- */\r
-DMesaBuffer DMesaCreateBuffer (DMesaVisual visual,\r
-                               GLint xpos, GLint ypos,\r
-                               GLint width, GLint height);\r
-\r
-/*\r
- * Destroy Buffer.\r
- */\r
-void DMesaDestroyBuffer (DMesaBuffer b);\r
-\r
-/*\r
- * Swap the front and back buffers for the given Buffer.\r
- * No action is taken if the buffer is not double buffered.\r
- */\r
-void DMesaSwapBuffers (DMesaBuffer b);\r
-\r
-/*\r
- * Bind Buffer to Context and make the Context the current one.\r
- */\r
-GLboolean DMesaMakeCurrent (DMesaContext c, DMesaBuffer b);\r
-\r
-\r
-\r
-/*\r
- * Move/Resize current Buffer.\r
- */\r
-GLboolean DMesaMoveBuffer (GLint xpos, GLint ypos);\r
-GLboolean DMesaResizeBuffer (GLint width, GLint height);\r
-\r
-/*\r
- * Set palette index, using normalized values.\r
- */\r
-void DMesaSetCI (int ndx, GLfloat red, GLfloat green, GLfloat blue);\r
-\r
-/*\r
- * DMesa state retrieval.\r
- */\r
-#define DMESA_GET_SCREEN_SIZE 0x0100\r
-#define DMESA_GET_DRIVER_CAPS 0x0200\r
-\r
-#define DMESA_DRIVER_SWDB_BIT 0x1 /* software double-buffered */\r
-#define DMESA_DRIVER_LLWO_BIT 0x2 /* lower-left window origin */\r
-int DMesaGetIntegerv (GLenum pname, GLint *params);\r
-\r
-#ifdef __cplusplus\r
-}\r
-#endif\r
-\r
-#endif\r
+/*
+ * Mesa 3-D graphics library
+ * Version:  6.1
+ * 
+ * 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"),
+ * 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
+ * BRIAN PAUL BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
+ * AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+ * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/*
+ * DOS/DJGPP device driver for Mesa
+ *
+ *  Author: Daniel Borca
+ *  Email : dborca@users.sourceforge.net
+ *  Web   : http://www.geocities.com/dborca
+ */
+
+
+#ifndef DMESA_H_included
+#define DMESA_H_included
+
+#define DMESA_MAJOR_VERSION 6
+#define DMESA_MINOR_VERSION 5
+
+/* Sample Usage:
+ *
+ * 1. Call DMesaCreateVisual() to initialize graphics.
+ * 2. Call DMesaCreateContext() to create a DMesa rendering context.
+ * 3. Call DMesaCreateBuffer() to define the window.
+ * 4. Call DMesaMakeCurrent() to bind the DMesaBuffer to a DMesaContext.
+ * 5. Make gl* calls to render your graphics.
+ * 6. Use DMesaSwapBuffers() when double buffering to swap front/back buffers.
+ * 7. Before exiting, destroy DMesaBuffer, DMesaContext and DMesaVisual.
+ */
+
+typedef struct dmesa_context *DMesaContext;
+typedef struct dmesa_visual *DMesaVisual;
+typedef struct dmesa_buffer *DMesaBuffer;
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+ * Create a new Visual and set graphics mode.
+ */
+DMesaVisual DMesaCreateVisual (GLint width,        /* X res */
+                               GLint height,       /* Y res */
+                               GLint colDepth,     /* BPP */
+                               GLint refresh,      /* refresh rate: 0=default */
+                               GLboolean dbFlag,   /* double-buffered */
+                               GLboolean rgbFlag,  /* RGB mode */
+                               GLint alphaSize,    /* requested bits/alpha */
+                               GLint depthSize,    /* requested bits/depth */
+                               GLint stencilSize,  /* requested bits/stencil */
+                               GLint accumSize);   /* requested bits/accum */
+
+/*
+ * Destroy Visual and restore screen.
+ */
+void DMesaDestroyVisual (DMesaVisual v);
+
+
+
+/*
+ * Create a new Context for rendering.
+ */
+DMesaContext DMesaCreateContext (DMesaVisual visual, DMesaContext share);
+
+/*
+ * Destroy Context.
+ */
+void DMesaDestroyContext (DMesaContext c);
+
+/*
+ * Return a handle to the current context.
+ */
+DMesaContext DMesaGetCurrentContext (void);
+
+
+
+/*
+ * Create a new Buffer (window).
+ */
+DMesaBuffer DMesaCreateBuffer (DMesaVisual visual,
+                               GLint xpos, GLint ypos,
+                               GLint width, GLint height);
+
+/*
+ * Destroy Buffer.
+ */
+void DMesaDestroyBuffer (DMesaBuffer b);
+
+/*
+ * Return a handle to the current buffer.
+ */
+DMesaBuffer DMesaGetCurrentBuffer (void);
+
+/*
+ * Swap the front and back buffers for the given Buffer.
+ * No action is taken if the buffer is not double buffered.
+ */
+void DMesaSwapBuffers (DMesaBuffer b);
+
+/*
+ * Bind Buffer to Context and make the Context the current one.
+ */
+GLboolean DMesaMakeCurrent (DMesaContext c, DMesaBuffer b);
+
+
+
+/*
+ * Move/Resize current Buffer.
+ */
+GLboolean DMesaMoveBuffer (GLint xpos, GLint ypos);
+GLboolean DMesaResizeBuffer (GLint width, GLint height);
+
+/*
+ * Set palette index, using normalized values.
+ */
+void DMesaSetCI (int ndx, GLfloat red, GLfloat green, GLfloat blue);
+
+/*
+ * DMesa functions
+ */
+typedef void (*DMesaProc) ();
+DMesaProc DMesaGetProcAddress (const char *name);
+
+/*
+ * DMesa state retrieval.
+ */
+#define DMESA_GET_SCREEN_SIZE 0x0100
+#define DMESA_GET_DRIVER_CAPS 0x0200
+#define DMESA_GET_VIDEO_MODES 0x0300
+#define DMESA_GET_BUFFER_ADDR 0x0400
+
+#define DMESA_DRIVER_DBL_BIT 0x1 /* double-buffered */
+#define DMESA_DRIVER_YUP_BIT 0x2 /* lower-left window origin */
+int DMesaGetIntegerv (GLenum pname, GLint *params);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif