xref: /aosp_15_r20/external/mesa3d/include/GL/osmesa.h (revision 6104692788411f58d303aa86923a9ff6ecaded22)
1*61046927SAndroid Build Coastguard Worker /*
2*61046927SAndroid Build Coastguard Worker  * Mesa 3-D graphics library
3*61046927SAndroid Build Coastguard Worker  *
4*61046927SAndroid Build Coastguard Worker  * Copyright (C) 1999-2005  Brian Paul   All Rights Reserved.
5*61046927SAndroid Build Coastguard Worker  *
6*61046927SAndroid Build Coastguard Worker  * Permission is hereby granted, free of charge, to any person obtaining a
7*61046927SAndroid Build Coastguard Worker  * copy of this software and associated documentation files (the "Software"),
8*61046927SAndroid Build Coastguard Worker  * to deal in the Software without restriction, including without limitation
9*61046927SAndroid Build Coastguard Worker  * the rights to use, copy, modify, merge, publish, distribute, sublicense,
10*61046927SAndroid Build Coastguard Worker  * and/or sell copies of the Software, and to permit persons to whom the
11*61046927SAndroid Build Coastguard Worker  * Software is furnished to do so, subject to the following conditions:
12*61046927SAndroid Build Coastguard Worker  *
13*61046927SAndroid Build Coastguard Worker  * The above copyright notice and this permission notice shall be included
14*61046927SAndroid Build Coastguard Worker  * in all copies or substantial portions of the Software.
15*61046927SAndroid Build Coastguard Worker  *
16*61046927SAndroid Build Coastguard Worker  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17*61046927SAndroid Build Coastguard Worker  * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18*61046927SAndroid Build Coastguard Worker  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
19*61046927SAndroid Build Coastguard Worker  * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
20*61046927SAndroid Build Coastguard Worker  * OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
21*61046927SAndroid Build Coastguard Worker  * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
22*61046927SAndroid Build Coastguard Worker  * OTHER DEALINGS IN THE SOFTWARE.
23*61046927SAndroid Build Coastguard Worker  */
24*61046927SAndroid Build Coastguard Worker 
25*61046927SAndroid Build Coastguard Worker 
26*61046927SAndroid Build Coastguard Worker /*
27*61046927SAndroid Build Coastguard Worker  * Mesa Off-Screen rendering interface.
28*61046927SAndroid Build Coastguard Worker  *
29*61046927SAndroid Build Coastguard Worker  * This is an operating system and window system independent interface to
30*61046927SAndroid Build Coastguard Worker  * Mesa which allows one to render images into a client-supplied buffer in
31*61046927SAndroid Build Coastguard Worker  * main memory.  Such images may manipulated or saved in whatever way the
32*61046927SAndroid Build Coastguard Worker  * client wants.
33*61046927SAndroid Build Coastguard Worker  *
34*61046927SAndroid Build Coastguard Worker  * These are the API functions:
35*61046927SAndroid Build Coastguard Worker  *   OSMesaCreateContext - create a new Off-Screen Mesa rendering context
36*61046927SAndroid Build Coastguard Worker  *   OSMesaMakeCurrent - bind an OSMesaContext to a client's image buffer
37*61046927SAndroid Build Coastguard Worker  *                       and make the specified context the current one.
38*61046927SAndroid Build Coastguard Worker  *   OSMesaDestroyContext - destroy an OSMesaContext
39*61046927SAndroid Build Coastguard Worker  *   OSMesaGetCurrentContext - return thread's current context ID
40*61046927SAndroid Build Coastguard Worker  *   OSMesaPixelStore - controls how pixels are stored in image buffer
41*61046927SAndroid Build Coastguard Worker  *   OSMesaGetIntegerv - return OSMesa state parameters
42*61046927SAndroid Build Coastguard Worker  *
43*61046927SAndroid Build Coastguard Worker  *
44*61046927SAndroid Build Coastguard Worker  * The limits on the width and height of an image buffer can be retrieved
45*61046927SAndroid Build Coastguard Worker  * via OSMesaGetIntegerv(OSMESA_MAX_WIDTH/OSMESA_MAX_HEIGHT).
46*61046927SAndroid Build Coastguard Worker  */
47*61046927SAndroid Build Coastguard Worker 
48*61046927SAndroid Build Coastguard Worker 
49*61046927SAndroid Build Coastguard Worker #ifndef OSMESA_H
50*61046927SAndroid Build Coastguard Worker #define OSMESA_H
51*61046927SAndroid Build Coastguard Worker 
52*61046927SAndroid Build Coastguard Worker 
53*61046927SAndroid Build Coastguard Worker #ifdef __cplusplus
54*61046927SAndroid Build Coastguard Worker extern "C" {
55*61046927SAndroid Build Coastguard Worker #endif
56*61046927SAndroid Build Coastguard Worker 
57*61046927SAndroid Build Coastguard Worker 
58*61046927SAndroid Build Coastguard Worker #include <GL/gl.h>
59*61046927SAndroid Build Coastguard Worker 
60*61046927SAndroid Build Coastguard Worker 
61*61046927SAndroid Build Coastguard Worker #define OSMESA_MAJOR_VERSION 11
62*61046927SAndroid Build Coastguard Worker #define OSMESA_MINOR_VERSION 2
63*61046927SAndroid Build Coastguard Worker #define OSMESA_PATCH_VERSION 0
64*61046927SAndroid Build Coastguard Worker 
65*61046927SAndroid Build Coastguard Worker 
66*61046927SAndroid Build Coastguard Worker 
67*61046927SAndroid Build Coastguard Worker /*
68*61046927SAndroid Build Coastguard Worker  * Values for the format parameter of OSMesaCreateContext()
69*61046927SAndroid Build Coastguard Worker  * New in version 2.0.
70*61046927SAndroid Build Coastguard Worker  */
71*61046927SAndroid Build Coastguard Worker #define OSMESA_COLOR_INDEX	GL_COLOR_INDEX
72*61046927SAndroid Build Coastguard Worker #define OSMESA_RGBA		GL_RGBA
73*61046927SAndroid Build Coastguard Worker #define OSMESA_BGRA		0x1
74*61046927SAndroid Build Coastguard Worker #define OSMESA_ARGB		0x2
75*61046927SAndroid Build Coastguard Worker #define OSMESA_RGB		GL_RGB
76*61046927SAndroid Build Coastguard Worker #define OSMESA_BGR		0x4
77*61046927SAndroid Build Coastguard Worker #define OSMESA_RGB_565		0x5
78*61046927SAndroid Build Coastguard Worker 
79*61046927SAndroid Build Coastguard Worker 
80*61046927SAndroid Build Coastguard Worker /*
81*61046927SAndroid Build Coastguard Worker  * OSMesaPixelStore() parameters:
82*61046927SAndroid Build Coastguard Worker  * New in version 2.0.
83*61046927SAndroid Build Coastguard Worker  */
84*61046927SAndroid Build Coastguard Worker #define OSMESA_ROW_LENGTH	0x10
85*61046927SAndroid Build Coastguard Worker #define OSMESA_Y_UP		0x11
86*61046927SAndroid Build Coastguard Worker 
87*61046927SAndroid Build Coastguard Worker 
88*61046927SAndroid Build Coastguard Worker /*
89*61046927SAndroid Build Coastguard Worker  * Accepted by OSMesaGetIntegerv:
90*61046927SAndroid Build Coastguard Worker  */
91*61046927SAndroid Build Coastguard Worker #define OSMESA_WIDTH		0x20
92*61046927SAndroid Build Coastguard Worker #define OSMESA_HEIGHT		0x21
93*61046927SAndroid Build Coastguard Worker #define OSMESA_FORMAT		0x22
94*61046927SAndroid Build Coastguard Worker #define OSMESA_TYPE		0x23
95*61046927SAndroid Build Coastguard Worker #define OSMESA_MAX_WIDTH	0x24  /* new in 4.0 */
96*61046927SAndroid Build Coastguard Worker #define OSMESA_MAX_HEIGHT	0x25  /* new in 4.0 */
97*61046927SAndroid Build Coastguard Worker 
98*61046927SAndroid Build Coastguard Worker /*
99*61046927SAndroid Build Coastguard Worker  * Accepted in OSMesaCreateContextAttrib's attribute list.
100*61046927SAndroid Build Coastguard Worker  */
101*61046927SAndroid Build Coastguard Worker #define OSMESA_DEPTH_BITS            0x30
102*61046927SAndroid Build Coastguard Worker #define OSMESA_STENCIL_BITS          0x31
103*61046927SAndroid Build Coastguard Worker #define OSMESA_ACCUM_BITS            0x32
104*61046927SAndroid Build Coastguard Worker #define OSMESA_PROFILE               0x33
105*61046927SAndroid Build Coastguard Worker #define OSMESA_CORE_PROFILE          0x34
106*61046927SAndroid Build Coastguard Worker #define OSMESA_COMPAT_PROFILE        0x35
107*61046927SAndroid Build Coastguard Worker #define OSMESA_CONTEXT_MAJOR_VERSION 0x36
108*61046927SAndroid Build Coastguard Worker #define OSMESA_CONTEXT_MINOR_VERSION 0x37
109*61046927SAndroid Build Coastguard Worker 
110*61046927SAndroid Build Coastguard Worker 
111*61046927SAndroid Build Coastguard Worker typedef struct osmesa_context *OSMesaContext;
112*61046927SAndroid Build Coastguard Worker 
113*61046927SAndroid Build Coastguard Worker 
114*61046927SAndroid Build Coastguard Worker /*
115*61046927SAndroid Build Coastguard Worker  * Create an Off-Screen Mesa rendering context.  The only attribute needed is
116*61046927SAndroid Build Coastguard Worker  * an RGBA vs Color-Index mode flag.
117*61046927SAndroid Build Coastguard Worker  *
118*61046927SAndroid Build Coastguard Worker  * Input:  format - one of OSMESA_COLOR_INDEX, OSMESA_RGBA, OSMESA_BGRA,
119*61046927SAndroid Build Coastguard Worker  *                  OSMESA_ARGB, OSMESA_RGB, or OSMESA_BGR.
120*61046927SAndroid Build Coastguard Worker  *         sharelist - specifies another OSMesaContext with which to share
121*61046927SAndroid Build Coastguard Worker  *                     display lists.  NULL indicates no sharing.
122*61046927SAndroid Build Coastguard Worker  * Return:  an OSMesaContext or 0 if error
123*61046927SAndroid Build Coastguard Worker  */
124*61046927SAndroid Build Coastguard Worker GLAPI OSMesaContext APIENTRY
125*61046927SAndroid Build Coastguard Worker OSMesaCreateContext( GLenum format, OSMesaContext sharelist );
126*61046927SAndroid Build Coastguard Worker 
127*61046927SAndroid Build Coastguard Worker 
128*61046927SAndroid Build Coastguard Worker 
129*61046927SAndroid Build Coastguard Worker /*
130*61046927SAndroid Build Coastguard Worker  * Create an Off-Screen Mesa rendering context and specify desired
131*61046927SAndroid Build Coastguard Worker  * size of depth buffer, stencil buffer and accumulation buffer.
132*61046927SAndroid Build Coastguard Worker  * If you specify zero for depthBits, stencilBits, accumBits you
133*61046927SAndroid Build Coastguard Worker  * can save some memory.
134*61046927SAndroid Build Coastguard Worker  *
135*61046927SAndroid Build Coastguard Worker  * New in Mesa 3.5
136*61046927SAndroid Build Coastguard Worker  */
137*61046927SAndroid Build Coastguard Worker GLAPI OSMesaContext APIENTRY
138*61046927SAndroid Build Coastguard Worker OSMesaCreateContextExt( GLenum format, GLint depthBits, GLint stencilBits,
139*61046927SAndroid Build Coastguard Worker                         GLint accumBits, OSMesaContext sharelist);
140*61046927SAndroid Build Coastguard Worker 
141*61046927SAndroid Build Coastguard Worker 
142*61046927SAndroid Build Coastguard Worker /*
143*61046927SAndroid Build Coastguard Worker  * Create an Off-Screen Mesa rendering context with attribute list.
144*61046927SAndroid Build Coastguard Worker  * The list is composed of (attribute, value) pairs and terminated with
145*61046927SAndroid Build Coastguard Worker  * attribute==0.  Supported Attributes:
146*61046927SAndroid Build Coastguard Worker  *
147*61046927SAndroid Build Coastguard Worker  * Attributes                    Values
148*61046927SAndroid Build Coastguard Worker  * --------------------------------------------------------------------------
149*61046927SAndroid Build Coastguard Worker  * OSMESA_FORMAT                 OSMESA_RGBA*, OSMESA_BGRA, OSMESA_ARGB, etc.
150*61046927SAndroid Build Coastguard Worker  * OSMESA_DEPTH_BITS             0*, 16, 24, 32
151*61046927SAndroid Build Coastguard Worker  * OSMESA_STENCIL_BITS           0*, 8
152*61046927SAndroid Build Coastguard Worker  * OSMESA_ACCUM_BITS             0*, 16
153*61046927SAndroid Build Coastguard Worker  * OSMESA_PROFILE                OSMESA_COMPAT_PROFILE*, OSMESA_CORE_PROFILE
154*61046927SAndroid Build Coastguard Worker  * OSMESA_CONTEXT_MAJOR_VERSION  1*, 2, 3
155*61046927SAndroid Build Coastguard Worker  * OSMESA_CONTEXT_MINOR_VERSION  0+
156*61046927SAndroid Build Coastguard Worker  *
157*61046927SAndroid Build Coastguard Worker  * Note: * = default value
158*61046927SAndroid Build Coastguard Worker  *
159*61046927SAndroid Build Coastguard Worker  * We return a context version >= what's specified by OSMESA_CONTEXT_MAJOR/
160*61046927SAndroid Build Coastguard Worker  * MINOR_VERSION for the given profile.  For example, if you request a GL 1.4
161*61046927SAndroid Build Coastguard Worker  * compat profile, you might get a GL 3.0 compat profile.
162*61046927SAndroid Build Coastguard Worker  * Otherwise, null is returned if the version/profile is not supported.
163*61046927SAndroid Build Coastguard Worker  *
164*61046927SAndroid Build Coastguard Worker  * New in Mesa 11.2
165*61046927SAndroid Build Coastguard Worker  */
166*61046927SAndroid Build Coastguard Worker GLAPI OSMesaContext APIENTRY
167*61046927SAndroid Build Coastguard Worker OSMesaCreateContextAttribs( const int *attribList, OSMesaContext sharelist );
168*61046927SAndroid Build Coastguard Worker 
169*61046927SAndroid Build Coastguard Worker 
170*61046927SAndroid Build Coastguard Worker 
171*61046927SAndroid Build Coastguard Worker /*
172*61046927SAndroid Build Coastguard Worker  * Destroy an Off-Screen Mesa rendering context.
173*61046927SAndroid Build Coastguard Worker  *
174*61046927SAndroid Build Coastguard Worker  * Input:  ctx - the context to destroy
175*61046927SAndroid Build Coastguard Worker  */
176*61046927SAndroid Build Coastguard Worker GLAPI void APIENTRY
177*61046927SAndroid Build Coastguard Worker OSMesaDestroyContext( OSMesaContext ctx );
178*61046927SAndroid Build Coastguard Worker 
179*61046927SAndroid Build Coastguard Worker 
180*61046927SAndroid Build Coastguard Worker 
181*61046927SAndroid Build Coastguard Worker /*
182*61046927SAndroid Build Coastguard Worker  * Bind an OSMesaContext to an image buffer.  The image buffer is just a
183*61046927SAndroid Build Coastguard Worker  * block of memory which the client provides.  Its size must be at least
184*61046927SAndroid Build Coastguard Worker  * as large as width*height*sizeof(type).  Its address should be a multiple
185*61046927SAndroid Build Coastguard Worker  * of 4 if using RGBA mode.
186*61046927SAndroid Build Coastguard Worker  *
187*61046927SAndroid Build Coastguard Worker  * Image data is stored in the order of glDrawPixels:  row-major order
188*61046927SAndroid Build Coastguard Worker  * with the lower-left image pixel stored in the first array position
189*61046927SAndroid Build Coastguard Worker  * (ie. bottom-to-top).
190*61046927SAndroid Build Coastguard Worker  *
191*61046927SAndroid Build Coastguard Worker  * Since the only type initially supported is GL_UNSIGNED_BYTE, if the
192*61046927SAndroid Build Coastguard Worker  * context is in RGBA mode, each pixel will be stored as a 4-byte RGBA
193*61046927SAndroid Build Coastguard Worker  * value.  If the context is in color indexed mode, each pixel will be
194*61046927SAndroid Build Coastguard Worker  * stored as a 1-byte value.
195*61046927SAndroid Build Coastguard Worker  *
196*61046927SAndroid Build Coastguard Worker  * If the context's viewport hasn't been initialized yet, it will now be
197*61046927SAndroid Build Coastguard Worker  * initialized to (0,0,width,height).
198*61046927SAndroid Build Coastguard Worker  *
199*61046927SAndroid Build Coastguard Worker  * Input:  ctx - the rendering context
200*61046927SAndroid Build Coastguard Worker  *         buffer - the image buffer memory
201*61046927SAndroid Build Coastguard Worker  *         type - data type for pixel components, only GL_UNSIGNED_BYTE
202*61046927SAndroid Build Coastguard Worker  *                supported now
203*61046927SAndroid Build Coastguard Worker  *         width, height - size of image buffer in pixels, at least 1
204*61046927SAndroid Build Coastguard Worker  * Return:  GL_TRUE if success, GL_FALSE if error because of invalid ctx,
205*61046927SAndroid Build Coastguard Worker  *          invalid buffer address, type!=GL_UNSIGNED_BYTE, width<1, height<1,
206*61046927SAndroid Build Coastguard Worker  *          width>internal limit or height>internal limit.
207*61046927SAndroid Build Coastguard Worker  */
208*61046927SAndroid Build Coastguard Worker GLAPI GLboolean APIENTRY
209*61046927SAndroid Build Coastguard Worker OSMesaMakeCurrent( OSMesaContext ctx, void *buffer, GLenum type,
210*61046927SAndroid Build Coastguard Worker                    GLsizei width, GLsizei height );
211*61046927SAndroid Build Coastguard Worker 
212*61046927SAndroid Build Coastguard Worker 
213*61046927SAndroid Build Coastguard Worker 
214*61046927SAndroid Build Coastguard Worker 
215*61046927SAndroid Build Coastguard Worker /*
216*61046927SAndroid Build Coastguard Worker  * Return the current Off-Screen Mesa rendering context handle.
217*61046927SAndroid Build Coastguard Worker  */
218*61046927SAndroid Build Coastguard Worker GLAPI OSMesaContext APIENTRY
219*61046927SAndroid Build Coastguard Worker OSMesaGetCurrentContext( void );
220*61046927SAndroid Build Coastguard Worker 
221*61046927SAndroid Build Coastguard Worker 
222*61046927SAndroid Build Coastguard Worker 
223*61046927SAndroid Build Coastguard Worker /*
224*61046927SAndroid Build Coastguard Worker  * Set pixel store/packing parameters for the current context.
225*61046927SAndroid Build Coastguard Worker  * This is similar to glPixelStore.
226*61046927SAndroid Build Coastguard Worker  * Input:  pname - OSMESA_ROW_LENGTH
227*61046927SAndroid Build Coastguard Worker  *                    specify actual pixels per row in image buffer
228*61046927SAndroid Build Coastguard Worker  *                    0 = same as image width (default)
229*61046927SAndroid Build Coastguard Worker  *                 OSMESA_Y_UP
230*61046927SAndroid Build Coastguard Worker  *                    zero = Y coordinates increase downward
231*61046927SAndroid Build Coastguard Worker  *                    non-zero = Y coordinates increase upward (default)
232*61046927SAndroid Build Coastguard Worker  *         value - the value for the parameter pname
233*61046927SAndroid Build Coastguard Worker  *
234*61046927SAndroid Build Coastguard Worker  * New in version 2.0.
235*61046927SAndroid Build Coastguard Worker  */
236*61046927SAndroid Build Coastguard Worker GLAPI void APIENTRY
237*61046927SAndroid Build Coastguard Worker OSMesaPixelStore( GLint pname, GLint value );
238*61046927SAndroid Build Coastguard Worker 
239*61046927SAndroid Build Coastguard Worker 
240*61046927SAndroid Build Coastguard Worker 
241*61046927SAndroid Build Coastguard Worker /*
242*61046927SAndroid Build Coastguard Worker  * Return an integer value like glGetIntegerv.
243*61046927SAndroid Build Coastguard Worker  * Input:  pname -
244*61046927SAndroid Build Coastguard Worker  *                 OSMESA_WIDTH  return current image width
245*61046927SAndroid Build Coastguard Worker  *                 OSMESA_HEIGHT  return current image height
246*61046927SAndroid Build Coastguard Worker  *                 OSMESA_FORMAT  return image format
247*61046927SAndroid Build Coastguard Worker  *                 OSMESA_TYPE  return color component data type
248*61046927SAndroid Build Coastguard Worker  *                 OSMESA_ROW_LENGTH return row length in pixels
249*61046927SAndroid Build Coastguard Worker  *                 OSMESA_Y_UP returns 1 or 0 to indicate Y axis direction
250*61046927SAndroid Build Coastguard Worker  *         value - pointer to integer in which to return result.
251*61046927SAndroid Build Coastguard Worker  */
252*61046927SAndroid Build Coastguard Worker GLAPI void APIENTRY
253*61046927SAndroid Build Coastguard Worker OSMesaGetIntegerv( GLint pname, GLint *value );
254*61046927SAndroid Build Coastguard Worker 
255*61046927SAndroid Build Coastguard Worker 
256*61046927SAndroid Build Coastguard Worker 
257*61046927SAndroid Build Coastguard Worker /*
258*61046927SAndroid Build Coastguard Worker  * Return the depth buffer associated with an OSMesa context.
259*61046927SAndroid Build Coastguard Worker  * Input:  c - the OSMesa context
260*61046927SAndroid Build Coastguard Worker  * Output:  width, height - size of buffer in pixels
261*61046927SAndroid Build Coastguard Worker  *          bytesPerValue - bytes per depth value (2 or 4)
262*61046927SAndroid Build Coastguard Worker  *          buffer - pointer to depth buffer values
263*61046927SAndroid Build Coastguard Worker  * Return:  GL_TRUE or GL_FALSE to indicate success or failure.
264*61046927SAndroid Build Coastguard Worker  *
265*61046927SAndroid Build Coastguard Worker  * New in Mesa 2.4.
266*61046927SAndroid Build Coastguard Worker  */
267*61046927SAndroid Build Coastguard Worker GLAPI GLboolean APIENTRY
268*61046927SAndroid Build Coastguard Worker OSMesaGetDepthBuffer( OSMesaContext c, GLint *width, GLint *height,
269*61046927SAndroid Build Coastguard Worker                       GLint *bytesPerValue, void **buffer );
270*61046927SAndroid Build Coastguard Worker 
271*61046927SAndroid Build Coastguard Worker 
272*61046927SAndroid Build Coastguard Worker 
273*61046927SAndroid Build Coastguard Worker /*
274*61046927SAndroid Build Coastguard Worker  * Return the color buffer associated with an OSMesa context.
275*61046927SAndroid Build Coastguard Worker  * Input:  c - the OSMesa context
276*61046927SAndroid Build Coastguard Worker  * Output:  width, height - size of buffer in pixels
277*61046927SAndroid Build Coastguard Worker  *          format - buffer format (OSMESA_FORMAT)
278*61046927SAndroid Build Coastguard Worker  *          buffer - pointer to depth buffer values
279*61046927SAndroid Build Coastguard Worker  * Return:  GL_TRUE or GL_FALSE to indicate success or failure.
280*61046927SAndroid Build Coastguard Worker  *
281*61046927SAndroid Build Coastguard Worker  * New in Mesa 3.3.
282*61046927SAndroid Build Coastguard Worker  */
283*61046927SAndroid Build Coastguard Worker GLAPI GLboolean APIENTRY
284*61046927SAndroid Build Coastguard Worker OSMesaGetColorBuffer( OSMesaContext c, GLint *width, GLint *height,
285*61046927SAndroid Build Coastguard Worker                       GLint *format, void **buffer );
286*61046927SAndroid Build Coastguard Worker 
287*61046927SAndroid Build Coastguard Worker 
288*61046927SAndroid Build Coastguard Worker 
289*61046927SAndroid Build Coastguard Worker /**
290*61046927SAndroid Build Coastguard Worker  * This typedef is new in Mesa 6.3.
291*61046927SAndroid Build Coastguard Worker  */
292*61046927SAndroid Build Coastguard Worker typedef void (*OSMESAproc)();
293*61046927SAndroid Build Coastguard Worker 
294*61046927SAndroid Build Coastguard Worker 
295*61046927SAndroid Build Coastguard Worker /*
296*61046927SAndroid Build Coastguard Worker  * Return pointer to the named function.
297*61046927SAndroid Build Coastguard Worker  * New in Mesa 4.1
298*61046927SAndroid Build Coastguard Worker  * Return OSMESAproc in 6.3.
299*61046927SAndroid Build Coastguard Worker  */
300*61046927SAndroid Build Coastguard Worker GLAPI OSMESAproc APIENTRY
301*61046927SAndroid Build Coastguard Worker OSMesaGetProcAddress( const char *funcName );
302*61046927SAndroid Build Coastguard Worker 
303*61046927SAndroid Build Coastguard Worker 
304*61046927SAndroid Build Coastguard Worker 
305*61046927SAndroid Build Coastguard Worker /**
306*61046927SAndroid Build Coastguard Worker  * Enable/disable color clamping, off by default.
307*61046927SAndroid Build Coastguard Worker  * New in Mesa 6.4.2
308*61046927SAndroid Build Coastguard Worker  */
309*61046927SAndroid Build Coastguard Worker GLAPI void APIENTRY
310*61046927SAndroid Build Coastguard Worker OSMesaColorClamp(GLboolean enable);
311*61046927SAndroid Build Coastguard Worker 
312*61046927SAndroid Build Coastguard Worker 
313*61046927SAndroid Build Coastguard Worker /**
314*61046927SAndroid Build Coastguard Worker  * Enable/disable Gallium post-process filters.
315*61046927SAndroid Build Coastguard Worker  * This should be called after a context is created, but before it is
316*61046927SAndroid Build Coastguard Worker  * made current for the first time.  After a context has been made
317*61046927SAndroid Build Coastguard Worker  * current, this function has no effect.
318*61046927SAndroid Build Coastguard Worker  * If the enable_value param is zero, the filter is disabled.  Otherwise
319*61046927SAndroid Build Coastguard Worker  * the filter is enabled, and the value may control the filter's quality.
320*61046927SAndroid Build Coastguard Worker  * New in Mesa 10.0
321*61046927SAndroid Build Coastguard Worker  */
322*61046927SAndroid Build Coastguard Worker GLAPI void APIENTRY
323*61046927SAndroid Build Coastguard Worker OSMesaPostprocess(OSMesaContext osmesa, const char *filter,
324*61046927SAndroid Build Coastguard Worker                   unsigned enable_value);
325*61046927SAndroid Build Coastguard Worker 
326*61046927SAndroid Build Coastguard Worker 
327*61046927SAndroid Build Coastguard Worker #ifdef __cplusplus
328*61046927SAndroid Build Coastguard Worker }
329*61046927SAndroid Build Coastguard Worker #endif
330*61046927SAndroid Build Coastguard Worker 
331*61046927SAndroid Build Coastguard Worker 
332*61046927SAndroid Build Coastguard Worker #endif
333