Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
5563 serge 1
#ifndef __gl_core_h_
2
#define __gl_core_h_
3
 
4
/*
5
 * SGI FREE SOFTWARE LICENSE B (Version 2.0, Sept. 18, 2008)
6
 * Copyright (C) 1991-2000 Silicon Graphics, Inc. All Rights Reserved.
7
 *
8
 * Permission is hereby granted, free of charge, to any person obtaining a
9
 * copy of this software and associated documentation files (the "Software"),
10
 * to deal in the Software without restriction, including without limitation
11
 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
12
 * and/or sell copies of the Software, and to permit persons to whom the
13
 * Software is furnished to do so, subject to the following conditions:
14
 *
15
 * The above copyright notice including the dates of first publication and
16
 * either this permission notice or a reference to
17
 * http://oss.sgi.com/projects/FreeB/
18
 * shall be included 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
 * SILICON GRAPHICS, INC. BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
24
 * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF
25
 * OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
26
 * SOFTWARE.
27
 *
28
 * Except as contained in this notice, the name of Silicon Graphics, Inc.
29
 * shall not be used in advertising or otherwise to promote the sale, use or
30
 * other dealings in this Software without prior written authorization from
31
 * Silicon Graphics, Inc.
32
 */
33
 
34
#if !defined(_WIN32_WCE)
35
#include 
36
#endif
37
 
38
#define GL_CORE_SGI  1
39
#define GL_CORE_MESA 2
40
#define GL_CORE_APPLE 4
41
#define GL_CORE_WINDOWS 8
42
 
43
typedef struct __GLcontextRec __GLcontext;
44
 
45
/*
46
** This file defines the interface between the GL core and the surrounding
47
** "operating system" that supports it (currently the GLX or WGL extensions).
48
**
49
** Members (data and function pointers) are documented as imported or
50
** exported according to how they are used by the core rendering functions.
51
** Imported members are initialized by the "operating system" and used by
52
** the core functions.  Exported members are initialized by the core functions
53
** and used by the "operating system".
54
*/
55
 
56
/**
57
 * Mode and limit information for a context.  This information is
58
 * kept around in the context so that values can be used during
59
 * command execution, and for returning information about the
60
 * context to the application.
61
 *
62
 * Instances of this structure are shared by the driver and the loader.  To
63
 * maintain binary compatability, new fields \b must be added only to the
64
 * end of the structure.
65
 *
66
 * \sa _gl_context_modes_create
67
 */
68
typedef struct __GLcontextModesRec {
69
    struct __GLcontextModesRec * next;
70
 
71
    GLboolean rgbMode;
72
    GLboolean floatMode;
73
    GLboolean colorIndexMode;
74
    GLuint doubleBufferMode;
75
    GLuint stereoMode;
76
 
77
    GLboolean haveAccumBuffer;
78
    GLboolean haveDepthBuffer;
79
    GLboolean haveStencilBuffer;
80
 
81
    GLint redBits, greenBits, blueBits, alphaBits;	/* bits per comp */
82
    GLuint redMask, greenMask, blueMask, alphaMask;
83
    GLint rgbBits;		/* total bits for rgb */
84
    GLint indexBits;		/* total bits for colorindex */
85
 
86
    GLint accumRedBits, accumGreenBits, accumBlueBits, accumAlphaBits;
87
    GLint depthBits;
88
    GLint stencilBits;
89
 
90
    GLint numAuxBuffers;
91
 
92
    GLint level;
93
 
94
    GLint pixmapMode;
95
 
96
    /* GLX */
97
    GLint visualID;
98
    GLint visualType;     /**< One of the GLX X visual types. (i.e.,
99
			   * \c GLX_TRUE_COLOR, etc.)
100
			   */
101
 
102
    /* EXT_visual_rating / GLX 1.2 */
103
    GLint visualRating;
104
 
105
    /* EXT_visual_info / GLX 1.2 */
106
    GLint transparentPixel;
107
				/*    colors are floats scaled to ints */
108
    GLint transparentRed, transparentGreen, transparentBlue, transparentAlpha;
109
    GLint transparentIndex;
110
 
111
    /* ARB_multisample / SGIS_multisample */
112
    GLint sampleBuffers;
113
    GLint samples;
114
 
115
    /* SGIX_fbconfig / GLX 1.3 */
116
    GLint drawableType;
117
    GLint renderType;
118
    GLint xRenderable;
119
    GLint fbconfigID;
120
 
121
    /* SGIX_pbuffer / GLX 1.3 */
122
    GLint maxPbufferWidth;
123
    GLint maxPbufferHeight;
124
    GLint maxPbufferPixels;
125
    GLint optimalPbufferWidth;   /* Only for SGIX_pbuffer. */
126
    GLint optimalPbufferHeight;  /* Only for SGIX_pbuffer. */
127
 
128
    /* SGIX_visual_select_group */
129
    GLint visualSelectGroup;
130
 
131
    /* OML_swap_method */
132
    GLint swapMethod;
133
 
134
    GLint screen;
135
 
136
    /* EXT_texture_from_pixmap */
137
    GLint bindToTextureRgb;
138
    GLint bindToTextureRgba;
139
    GLint bindToMipmapTexture;
140
    GLint bindToTextureTargets;
141
    GLint yInverted;
142
} __GLcontextModes;
143
 
144
/* Several fields of __GLcontextModes can take these as values.  Since
145
 * GLX header files may not be available everywhere they need to be used,
146
 * redefine them here.
147
 */
148
#define GLX_NONE                           0x8000
149
#define GLX_SLOW_CONFIG                    0x8001
150
#define GLX_TRUE_COLOR                     0x8002
151
#define GLX_DIRECT_COLOR                   0x8003
152
#define GLX_PSEUDO_COLOR                   0x8004
153
#define GLX_STATIC_COLOR                   0x8005
154
#define GLX_GRAY_SCALE                     0x8006
155
#define GLX_STATIC_GRAY                    0x8007
156
#define GLX_TRANSPARENT_RGB                0x8008
157
#define GLX_TRANSPARENT_INDEX              0x8009
158
#define GLX_NON_CONFORMANT_CONFIG          0x800D
159
#define GLX_SWAP_EXCHANGE_OML              0x8061
160
#define GLX_SWAP_COPY_OML                  0x8062
161
#define GLX_SWAP_UNDEFINED_OML             0x8063
162
 
163
#define GLX_DONT_CARE                      0xFFFFFFFF
164
 
165
#define GLX_RGBA_BIT                       0x00000001
166
#define GLX_COLOR_INDEX_BIT                0x00000002
167
#define GLX_WINDOW_BIT                     0x00000001
168
#define GLX_PIXMAP_BIT                     0x00000002
169
#define GLX_PBUFFER_BIT                    0x00000004
170
 
171
#define GLX_BIND_TO_TEXTURE_RGB_EXT        0x20D0
172
#define GLX_BIND_TO_TEXTURE_RGBA_EXT       0x20D1
173
#define GLX_BIND_TO_MIPMAP_TEXTURE_EXT     0x20D2
174
#define GLX_BIND_TO_TEXTURE_TARGETS_EXT    0x20D3
175
#define GLX_Y_INVERTED_EXT                 0x20D4
176
 
177
#define GLX_TEXTURE_1D_BIT_EXT             0x00000001
178
#define GLX_TEXTURE_2D_BIT_EXT             0x00000002
179
#define GLX_TEXTURE_RECTANGLE_BIT_EXT      0x00000004
180
 
181
#endif /* __gl_core_h_ */