Copy src/mesa dir from Mesa vendor drop to lib/mesa32/src
[reactos.git] / reactos / lib / mesa32 / GL / ggimesa.h
1 /*
2 * Mesa 3-D graphics library GGI bindings (GGIGL [giggle])
3 * Version: 4.0
4 * Copyright (C) 1995-2000 Brian Paul
5 * Copyright (C) 1998 Uwe Maurer
6 * Copyrigth (C) 2001 Filip Spacek
7 *
8 * This library is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU Library General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
12 *
13 * This library is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * Library General Public License for more details.
17 *
18 * You should have received a copy of the GNU Library General Public
19 * License along with this library; if not, write to the Free
20 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 */
22
23
24 #ifndef GGIMESA_H
25 #define GGIMESA_H
26
27 #define GGIMESA_MAJOR_VERSION 4
28 #define GGIMESA_MINOR_VERSION 0
29
30 #ifdef __cplusplus
31 extern "C" {
32 #endif
33
34 #include <ggi/ggi.h>
35 #include "GL/gl.h"
36
37 typedef struct ggi_mesa_context *ggi_mesa_context_t;
38
39 /*
40 * Initialize Mesa GGI extension
41 */
42 int ggiMesaInit(void);
43 /*
44 * Clean up Mesa GGI exension
45 */
46 int ggiMesaExit(void);
47
48 /*
49 * Attach Mesa GGI extension to the visual 'vis'
50 */
51 int ggiMesaAttach(ggi_visual_t vis);
52 /*
53 * Detach Mesa GGI extension from the visual 'vis'
54 */
55 int ggiMesaDetach(ggi_visual_t vis);
56
57 int ggiMesaExtendVisual(ggi_visual_t vis, GLboolean alpha_flag,
58 GLboolean stereo_flag, GLint depth_size,
59 GLint stencil_size, GLint accum_red_size,
60 GLint accum_green_size, GLint accum_blue_size,
61 GLint accum_alpha_size, GLint num_samples);
62
63 /*
64 * Create a new context capable of displaying on the visual vis.
65 */
66 ggi_mesa_context_t ggiMesaCreateContext(ggi_visual_t vis);
67 /*
68 * Destroy the context 'ctx'
69 */
70 void ggiMesaDestroyContext(ggi_mesa_context_t ctx);
71
72 /*
73 * Make context 'ctx' the current context and bind it to visual 'vis'.
74 * Note that the context must have been created with respect to that visual.
75 */
76 void ggiMesaMakeCurrent(ggi_mesa_context_t ctx, ggi_visual_t vis);
77
78 void ggiMesaSwapBuffers(void);
79
80
81 #ifdef __cplusplus
82 }
83 #endif
84
85 #endif