OSDN Git Service

FIRST REPOSITORY
[eos/hostdependOTHERS.git] / I386LINUX / util / I386LINUX / include / GL / uglmesa.h
1 /* uglmesa.h - Public header UGL/Mesa */
2
3 /* Copyright (C) 2001 by Wind River Systems, Inc */
4
5 /*
6  * Mesa 3-D graphics library
7  * Version:  4.0
8  *
9  * The MIT License
10  * Permission is hereby granted, free of charge, to any person obtaining a
11  * copy of this software and associated documentation files (the "Software"),
12  * to deal in the Software without restriction, including without limitation
13  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
14  * and/or sell copies of the Software, and to permit persons to whom the
15  * Software is furnished to do so, subject to the following conditions:
16  *
17  * The above copyright notice and this permission notice shall be included
18  * in all copies or substantial portions of the Software.
19  *
20  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
21  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
22  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
23  * THE AUTHORS OR COPYRIGHT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
24  * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
25  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
26  * DEALINGS IN THE SOFTWARE.
27  */
28
29 /*
30  * Author:
31  * Stephane Raimbault <stephane.raimbault@windriver.com> 
32  */
33
34 #ifndef UGLMESA_H
35 #define UGLMESA_H
36
37 #ifdef __cplusplus
38 extern "C" {
39 #endif
40
41 #define UGL_MESA_MAJOR_VERSION 4
42 #define UGL_MESA_MINOR_VERSION 0
43
44 #include <GL/gl.h>
45 #include <ugl/ugl.h>
46
47 /*
48  * Values for display mode of uglMesaCreateContext ()
49  */
50
51 /*
52  * With these mask values, it's possible to test double buffer mode
53  * with UGL_MESA_DOUBLE mask
54  *
55  * SINGLE  0000 0001
56  * DOUBLE  0000 0110
57  * -  SOFT 0000 0010
58  * -  HARD 0000 0100
59  * WINDML  0001 0000
60  *
61  * 
62  */
63 #define UGL_MESA_SINGLE            0x01
64 #define UGL_MESA_DOUBLE            0x06
65 #define UGL_MESA_DOUBLE_SOFTWARE   0x02
66 #define UGL_MESA_DOUBLE_HARDWARE   0x04
67     
68 #define UGL_MESA_WINDML_EXCLUSIVE  0x10
69
70 #define UGL_MESA_FULLSCREEN_WIDTH  0x0
71 #define UGL_MESA_FULLSCREEN_HEIGHT 0x0
72
73 /*
74  * uglMesaPixelStore() parameters:
75  */
76     
77 #define UGL_MESA_ROW_LENGTH        0x20
78 #define UGL_MESA_Y_UP              0x21
79
80 /* 
81  * Accepted by uglMesaGetIntegerv:
82  */
83
84 #define UGL_MESA_LEFT_X                 0x01
85 #define UGL_MESA_TOP_Y                  0x02    
86 #define UGL_MESA_WIDTH                  0x03
87 #define UGL_MESA_HEIGHT                 0x04
88 #define UGL_MESA_DISPLAY_WIDTH          0x05
89 #define UGL_MESA_DISPLAY_HEIGHT         0x06
90 #define UGL_MESA_COLOR_FORMAT           0x07
91 #define UGL_MESA_COLOR_MODEL            0x08
92 #define UGL_MESA_PIXEL_FORMAT           0x09
93 #define UGL_MESA_TYPE                   0x0A
94 #define UGL_MESA_RGB                    0x0B
95 #define UGL_MESA_COLOR_INDEXED          0x0C
96 #define UGL_MESA_SINGLE_BUFFER          0x0D
97 #define UGL_MESA_DOUBLE_BUFFER          0x0E
98 #define UGL_MESA_DOUBLE_BUFFER_SOFTWARE 0x0F
99 #define UGL_MESA_DOUBLE_BUFFER_HARDWARE 0x10
100     
101 /*
102  * typedefs
103  */
104
105 typedef struct uglMesaContext * UGL_MESA_CONTEXT;
106     
107 UGL_MESA_CONTEXT uglMesaCreateNewContext (GLenum mode,
108                                           UGL_MESA_CONTEXT share_list);
109
110 UGL_MESA_CONTEXT  uglMesaCreateNewContextExt (GLenum mode,
111                                               GLint depth_bits,
112                                               GLint stencil_bits,
113                                               GLint accum_red_bits,
114                                               GLint accum_green_bits,
115                                               GLint accum_blue_bits,
116                                               GLint accum_alpha_bits,
117                                               UGL_MESA_CONTEXT share_list);
118
119 GLboolean uglMesaMakeCurrentContext (UGL_MESA_CONTEXT umc,
120                                      GLsizei left, GLsizei top,
121                                      GLsizei width, GLsizei height);
122
123 GLboolean uglMesaMoveWindow (GLsizei dx, GLsizei dy);
124
125 GLboolean uglMesaMoveToWindow (GLsizei left, GLsizei top);
126
127 GLboolean uglMesaResizeWindow (GLsizei dw, GLsizei dh);
128
129 GLboolean uglMesaResizeToWindow (GLsizei width, GLsizei height);
130
131 void uglMesaDestroyContext (void);
132
133 UGL_MESA_CONTEXT uglMesaGetCurrentContext (void);
134
135 void uglMesaSwapBuffers (void);
136
137 void uglMesaPixelStore (GLint pname, GLint value);
138
139 void uglMesaGetIntegerv (GLint pname, GLint *value);
140
141 GLboolean uglMesaGetDepthBuffer (GLint *width, GLint *height,
142                                  GLint *bytesPerValue, void **buffer);
143
144 GLboolean uglMesaGetColorBuffer (GLint *width, GLint *height,
145                                  GLint *format, void **buffer);
146
147 GLboolean uglMesaSetColor (GLubyte index, GLfloat red,
148                            GLfloat green, GLfloat blue);
149   
150 #ifdef __cplusplus
151 }
152 #endif
153
154
155 #endif