VirtualBox

source: vbox/trunk/src/VBox/GuestHost/OpenGL/include/chromium.h@ 20411

Last change on this file since 20411 was 20411, checked in by vboxsync, 16 years ago

crOpenGL: allow wine to query real host gpu vendor/version/renderer strings (public #3541)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 17.4 KB
Line 
1/* Copyright (c) 2001, Stanford University
2 * All rights reserved.
3 *
4 * See the file LICENSE.txt for information on redistributing this software.
5 */
6
7/**
8 * Public Chromium exports.
9 * Parallel Chromium applications will include this header.
10 */
11
12
13#ifndef __CHROMIUM_H__
14#define __CHROMIUM_H__
15
16
17/**********************************************************************/
18/***** System includes and other cruft *****/
19/**********************************************************************/
20
21#include "cr_compiler.h"
22
23/*
24 * We effectively wrap gl.h, glu.h, etc, just like GLUT
25 */
26
27#ifndef GL_GLEXT_PROTOTYPES
28#define GL_GLEXT_PROTOTYPES
29#endif
30
31#if defined(WINDOWS)
32#define WIN32_LEAN_AND_MEAN
33#define WGL_APIENTRY __stdcall
34#include <windows.h>
35#elif defined(DARWIN)
36/* nothing */
37#else
38#define GLX
39#endif
40
41#include <GL/gl.h>
42
43#ifndef WINDOWS
44#include <GL/glu.h>
45#endif
46
47
48#ifdef GLX
49#ifndef GLX_GLXEXT_PROTOTYPES
50#define GLX_GLXEXT_PROTOTYPES
51#endif
52#include <GL/glx.h>
53#endif
54
55#ifdef USE_OSMESA
56#include <GL/osmesa.h>
57#endif
58
59#ifdef DARWIN
60#include <stddef.h>
61#elif !defined(FreeBSD)
62#include <malloc.h> /* to get ptrdiff_t used below */
63#endif
64
65#include <GL/glext.h>
66
67#ifdef __cplusplus
68extern "C" {
69#endif
70
71#ifndef APIENTRY
72#define APIENTRY
73#endif
74
75
76/**********************************************************************/
77/***** Define things that might have been missing in gl.h *****/
78/**********************************************************************/
79
80/*
81 * Define missing GLX tokens:
82 */
83
84#ifndef GLX_SAMPLE_BUFFERS_SGIS
85#define GLX_SAMPLE_BUFFERS_SGIS 0x186a0 /*100000*/
86#endif
87#ifndef GLX_SAMPLES_SGIS
88#define GLX_SAMPLES_SGIS 0x186a1 /*100001*/
89#endif
90#ifndef GLX_VISUAL_CAVEAT_EXT
91#define GLX_VISUAL_CAVEAT_EXT 0x20 /* visual_rating extension type */
92#endif
93
94/*
95 * Define missing WGL tokens:
96 */
97#ifndef WGL_COLOR_BITS_EXT
98#define WGL_COLOR_BITS_EXT 0x2014
99#endif
100#ifndef WGL_DRAW_TO_WINDOW_EXT
101#define WGL_DRAW_TO_WINDOW_EXT 0x2001
102#endif
103#ifndef WGL_FULL_ACCELERATION_EXT
104#define WGL_FULL_ACCELERATION_EXT 0x2027
105#endif
106#ifndef WGL_ACCELERATION_EXT
107#define WGL_ACCELERATION_EXT 0x2003
108#endif
109#ifndef WGL_TYPE_RGBA_EXT
110#define WGL_TYPE_RGBA_EXT 0x202B
111#endif
112#ifndef WGL_RED_BITS_EXT
113#define WGL_RED_BITS_EXT 0x2015
114#endif
115#ifndef WGL_GREEN_BITS_EXT
116#define WGL_GREEN_BITS_EXT 0x2017
117#endif
118#ifndef WGL_BLUE_BITS_EXT
119#define WGL_BLUE_BITS_EXT 0x2019
120#endif
121#ifndef WGL_ALPHA_BITS_EXT
122#define WGL_ALPHA_BITS_EXT 0x201B
123#endif
124#ifndef WGL_DOUBLE_BUFFER_EXT
125#define WGL_DOUBLE_BUFFER_EXT 0x2011
126#endif
127#ifndef WGL_STEREO_EXT
128#define WGL_STEREO_EXT 0x2012
129#endif
130#ifndef WGL_ACCUM_RED_BITS_EXT
131#define WGL_ACCUM_RED_BITS_EXT 0x201E
132#endif
133#ifndef WGL_ACCUM_GREEN_BITS_EXT
134#define WGL_ACCUM_GREEN_BITS_EXT 0x201F
135#endif
136#ifndef WGL_ACCUM_BLUE_BITS_EXT
137#define WGL_ACCUM_BLUE_BITS_EXT 0x2020
138#endif
139#ifndef WGL_ACCUM_ALPHA_BITS_EXT
140#define WGL_ACCUM_ALPHA_BITS_EXT 0x2021
141#endif
142#ifndef WGL_DEPTH_BITS_EXT
143#define WGL_DEPTH_BITS_EXT 0x2022
144#endif
145#ifndef WGL_STENCIL_BITS_EXT
146#define WGL_STENCIL_BITS_EXT 0x2023
147#endif
148#ifndef WGL_SAMPLE_BUFFERS_EXT
149#define WGL_SAMPLE_BUFFERS_EXT 0x2041
150#endif
151#ifndef WGL_SAMPLES_EXT
152#define WGL_SAMPLES_EXT 0x2042
153#endif
154
155/*
156 * Define missing 1.2 tokens:
157 */
158#ifndef GL_SMOOTH_POINT_SIZE_RANGE
159#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
160#endif
161
162#ifndef GL_SMOOTH_POINT_SIZE_GRANULARITY
163#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13
164#endif
165
166#ifndef GL_SMOOTH_LINE_WIDTH_RANGE
167#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
168#endif
169
170#ifndef GL_SMOOTH_LINE_WIDTH_GRANULARITY
171#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
172#endif
173
174#ifndef GL_ALIASED_POINT_SIZE_RANGE
175#define GL_ALIASED_POINT_SIZE_RANGE 0x846D
176#endif
177
178#ifndef GL_ALIASED_LINE_WIDTH_RANGE
179#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
180#endif
181
182#ifndef GL_COLOR_MATRIX_STACK_DEPTH
183#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2
184#endif
185
186#ifndef GL_COLOR_MATRIX
187#define GL_COLOR_MATRIX 0x80B1
188#endif
189
190#ifndef GL_TEXTURE_3D
191#define GL_TEXTURE_3D 0x806F
192#endif
193
194#ifndef GL_MAX_3D_TEXTURE_SIZE
195#define GL_MAX_3D_TEXTURE_SIZE 0x8073
196#endif
197
198#ifndef GL_PACK_SKIP_IMAGES
199#define GL_PACK_SKIP_IMAGES 0x806B
200#endif
201
202#ifndef GL_PACK_IMAGE_HEIGHT
203#define GL_PACK_IMAGE_HEIGHT 0x806C
204#endif
205
206#ifndef GL_UNPACK_SKIP_IMAGES
207#define GL_UNPACK_SKIP_IMAGES 0x806D
208#endif
209
210#ifndef GL_UNPACK_IMAGE_HEIGHT
211#define GL_UNPACK_IMAGE_HEIGHT 0x806E
212#endif
213
214#ifndef GL_PROXY_TEXTURE_3D
215#define GL_PROXY_TEXTURE_3D 0x8070
216#endif
217
218#ifndef GL_TEXTURE_DEPTH
219#define GL_TEXTURE_DEPTH 0x8071
220#endif
221
222#ifndef GL_TEXTURE_WRAP_R
223#define GL_TEXTURE_WRAP_R 0x8072
224#endif
225
226#ifndef GL_TEXTURE_BINDING_3D
227#define GL_TEXTURE_BINDING_3D 0x806A
228#endif
229
230#ifndef GL_MAX_ELEMENTS_VERTICES
231#define GL_MAX_ELEMENTS_VERTICES 0x80E8
232#endif
233
234#ifndef GL_MAX_ELEMENTS_INDICES
235#define GL_MAX_ELEMENTS_INDICES 0x80E9
236#endif
237
238
239/*
240 * Define missing ARB_imaging tokens
241 */
242
243#ifndef GL_BLEND_EQUATION
244#define GL_BLEND_EQUATION 0x8009
245#endif
246
247#ifndef GL_MIN
248#define GL_MIN 0x8007
249#endif
250
251#ifndef GL_MAX
252#define GL_MAX 0x8008
253#endif
254
255#ifndef GL_FUNC_ADD
256#define GL_FUNC_ADD 0x8006
257#endif
258
259#ifndef GL_FUNC_SUBTRACT
260#define GL_FUNC_SUBTRACT 0x800A
261#endif
262
263#ifndef GL_FUNC_REVERSE_SUBTRACT
264#define GL_FUNC_REVERSE_SUBTRACT 0x800B
265#endif
266
267#ifndef GL_BLEND_COLOR
268#define GL_BLEND_COLOR 0x8005
269#endif
270
271#ifndef GL_PER_STAGE_CONSTANTS_NV
272#define GL_PER_STAGE_CONSTANTS_NV 0x8535
273#endif
274
275#ifndef GL_FOG_COORDINATE_ARRAY_POINTER_EXT
276#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456
277#endif
278
279typedef void (*CR_GLXFuncPtr)();
280#ifndef GLX_ARB_get_proc_address
281#define GLX_ARB_get_proc_address 1
282CR_GLXFuncPtr glXGetProcAddressARB( const GLubyte *name );
283#endif /* GLX_ARB_get_proc_address */
284
285#ifndef GLX_VERSION_1_4
286CR_GLXFuncPtr glXGetProcAddress( const GLubyte *name );
287#endif /* GLX_ARB_get_proc_address */
288
289#ifndef GL_RASTER_POSITION_UNCLIPPED_IBM
290#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262
291#endif
292
293#ifdef WINDOWS
294/* XXX how about this prototype for wglGetProcAddress()?
295PROC WINAPI wglGetProcAddress_prox( LPCSTR name )
296*/
297#endif
298
299
300#ifndef GL_VERSION_1_5
301
302typedef ptrdiff_t GLintptr;
303typedef ptrdiff_t GLsizeiptr;
304
305/* prototype these functions for opengl_stub/getprocaddress.c */
306extern void APIENTRY glGenQueries(GLsizei n, GLuint *ids);
307extern void APIENTRY glDeleteQueries(GLsizei n, const GLuint *ids);
308extern GLboolean APIENTRY glIsQuery(GLuint id);
309extern void APIENTRY glBeginQuery(GLenum target, GLuint id);
310extern void APIENTRY glEndQuery(GLenum target);
311extern void APIENTRY glGetQueryiv(GLenum target, GLenum pname, GLint *params);
312extern void APIENTRY glGetQueryObjectiv(GLuint id, GLenum pname, GLint *params);
313extern void APIENTRY glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params);
314extern void APIENTRY glBindBuffer(GLenum, GLuint);
315extern void APIENTRY glDeleteBuffers(GLsizei, const GLuint *);
316extern void APIENTRY glGenBuffers(GLsizei, GLuint *);
317extern GLboolean APIENTRY glIsBuffer(GLuint);
318extern void APIENTRY glBufferData(GLenum, GLsizeiptr, const GLvoid *, GLenum);
319extern void APIENTRY glBufferSubData(GLenum, GLintptr, GLsizeiptr, const GLvoid *);
320extern void APIENTRY glGetBufferSubData(GLenum, GLintptr, GLsizeiptr, GLvoid *);
321extern GLvoid* APIENTRY glMapBuffer(GLenum, GLenum);
322extern GLboolean APIENTRY glUnmapBuffer(GLenum);
323extern void APIENTRY glGetBufferParameteriv(GLenum, GLenum, GLint *);
324extern void APIENTRY glGetBufferPointerv(GLenum, GLenum, GLvoid* *);
325
326#endif
327
328
329/**********************************************************************/
330/***** Chromium Extensions to OpenGL *****/
331/***** *****/
332/***** Chromium owns the OpenGL enum range 0x8AF0-0x8B2F *****/
333/**********************************************************************/
334
335#ifndef GL_CR_synchronization
336#define GL_CR_synchronization 1
337
338typedef void (APIENTRY *glBarrierCreateCRProc) (GLuint name, GLuint count);
339typedef void (APIENTRY *glBarrierDestroyCRProc) (GLuint name);
340typedef void (APIENTRY *glBarrierExecCRProc) (GLuint name);
341typedef void (APIENTRY *glSemaphoreCreateCRProc) (GLuint name, GLuint count);
342typedef void (APIENTRY *glSemaphoreDestroyCRProc) (GLuint name);
343typedef void (APIENTRY *glSemaphorePCRProc) (GLuint name);
344typedef void (APIENTRY *glSemaphoreVCRProc) (GLuint name);
345
346extern void APIENTRY glBarrierCreateCR(GLuint name, GLuint count);
347extern void APIENTRY glBarrierDestroyCR(GLuint name);
348extern void APIENTRY glBarrierExecCR(GLuint name);
349extern void APIENTRY glSemaphoreCreateCR(GLuint name, GLuint count);
350extern void APIENTRY glSemaphoreDestroyCR(GLuint name);
351extern void APIENTRY glSemaphorePCR(GLuint name);
352extern void APIENTRY glSemaphoreVCR(GLuint name);
353
354#endif /* GL_CR_synchronization */
355
356
357#ifndef GL_CR_bounds_info
358#define GL_CR_bounds_info 1
359/* Private, internal Chromium function */
360/*
361typedef void (APIENTRY *glBoundsInfoCRProc)(const CRrecti *, const GLbyte *, GLint, GLint);
362*/
363#endif /* GL_CR_bounds_info */
364
365
366#ifndef GL_CR_state_parameter
367#define GL_CR_state_parameter 1
368
369typedef void (APIENTRY *glChromiumParameteriCRProc) (GLenum target, GLint value);
370typedef void (APIENTRY *glChromiumParameterfCRProc) (GLenum target, GLfloat value);
371typedef void (APIENTRY *glChromiumParametervCRProc) (GLenum target, GLenum type, GLsizei count, const GLvoid *values);
372typedef void (APIENTRY *glGetChromiumParametervCRProc) (GLenum target, GLuint index, GLenum type, GLsizei count, GLvoid *values);
373
374extern void APIENTRY glChromiumParameteriCR(GLenum target, GLint value);
375extern void APIENTRY glChromiumParameterfCR(GLenum target, GLfloat value);
376extern void APIENTRY glChromiumParametervCR(GLenum target, GLenum type, GLsizei count, const GLvoid *values);
377extern void APIENTRY glGetChromiumParametervCR(GLenum target, GLuint index, GLenum type, GLsizei count, GLvoid *values);
378
379
380#endif /* GL_CR_state_parameter */
381
382
383#ifndef GL_CR_cursor_position
384#define GL_CR_cursor_position 1
385/* For virtual cursor feature (show_cursor) */
386
387#define GL_CURSOR_POSITION_CR 0x8AF0
388
389#endif /* GL_CR_cursor_position */
390
391
392#ifndef GL_CR_bounding_box
393#define GL_CR_bounding_box 1
394/* To set bounding box from client app */
395
396#define GL_DEFAULT_BBOX_CR 0x8AF1
397#define GL_SCREEN_BBOX_CR 0x8AF2
398#define GL_OBJECT_BBOX_CR 0x8AF3
399
400#endif /* GL_CR_bounding_box */
401
402
403#ifndef GL_CR_print_string
404#define GL_CR_print_string 1
405/* To print a string to stdout */
406#define GL_PRINT_STRING_CR 0x8AF4
407
408#endif /* GL_CR_print_string */
409
410
411#ifndef GL_CR_tilesort_info
412#define GL_CR_tilesort_info 1
413/* To query tilesort information */
414
415#define GL_MURAL_SIZE_CR 0x8AF5
416#define GL_NUM_SERVERS_CR 0x8AF6
417#define GL_NUM_TILES_CR 0x8AF7
418#define GL_TILE_BOUNDS_CR 0x8AF8
419#define GL_VERTEX_COUNTS_CR 0x8AF9
420#define GL_RESET_VERTEX_COUNTERS_CR 0x8AFA
421#define GL_SET_MAX_VIEWPORT_CR 0x8AFB
422
423#endif /* GL_CR_tilesort_info */
424
425
426#ifndef GL_CR_head_spu_name
427#define GL_CR_head_spu_name 1
428/* To fetch name of first SPU on a node */
429
430#define GL_HEAD_SPU_NAME_CR 0x8AFC
431
432#endif /* GL_CR_head_spu_name */
433
434
435#ifndef GL_CR_performance_info
436#define GL_CR_performance_info 1
437/* For gathering performance metrics */
438
439#define GL_PERF_GET_FRAME_DATA_CR 0x8AFD
440#define GL_PERF_GET_TIMER_DATA_CR 0x8AFE
441#define GL_PERF_DUMP_COUNTERS_CR 0x8AFF
442#define GL_PERF_SET_TOKEN_CR 0x8B00
443#define GL_PERF_SET_DUMP_ON_SWAP_CR 0x8B01
444#define GL_PERF_SET_DUMP_ON_FINISH_CR 0x8B02
445#define GL_PERF_SET_DUMP_ON_FLUSH_CR 0x8B03
446#define GL_PERF_START_TIMER_CR 0x8B04
447#define GL_PERF_STOP_TIMER_CR 0x8B05
448
449#endif /* GL_CR_performance_info */
450
451
452#ifndef GL_CR_window_size
453#define GL_CR_window_size 1
454/* To communicate window size changes */
455
456#define GL_WINDOW_SIZE_CR 0x8B06
457#define GL_MAX_WINDOW_SIZE_CR 0x8B24 /* new */
458
459#endif /* GL_CR_window_size */
460
461
462#ifndef GL_CR_tile_info
463#define GL_CR_tile_info 1
464/* To send new tile information to a server */
465
466#define GL_TILE_INFO_CR 0x8B07
467
468#endif /* GL_CR_tile_info */
469
470
471#ifndef GL_CR_gather
472#define GL_CR_gather 1
473/* For aggregate transfers */
474
475#define GL_GATHER_DRAWPIXELS_CR 0x8B08
476#define GL_GATHER_PACK_CR 0x8B09
477#define GL_GATHER_CONNECT_CR 0x8B0A
478#define GL_GATHER_POST_SWAPBUFFERS_CR 0x8B0B
479
480#endif /* GL_CR_gather */
481
482
483#ifndef GL_CR_saveframe
484#define GL_CR_saveframe 1
485
486#define GL_SAVEFRAME_ENABLED_CR 0x8B0C
487#define GL_SAVEFRAME_FRAMENUM_CR 0x8B0D
488#define GL_SAVEFRAME_STRIDE_CR 0x8B0E
489#define GL_SAVEFRAME_SINGLE_CR 0x8B0F
490#define GL_SAVEFRAME_FILESPEC_CR 0x8B10
491
492#endif /* GL_CR_saveframe */
493
494
495#ifndef GL_CR_readback_barrier_size
496#define GL_CR_readback_barrier_size 1
497
498#define GL_READBACK_BARRIER_SIZE_CR 0x8B11
499
500#endif /* GL_CR_readback_barrier_size */
501
502
503#ifndef GL_CR_server_id_sharing
504#define GL_CR_server_id_sharing 1
505
506#define GL_SHARED_DISPLAY_LISTS_CR 0x8B12
507#define GL_SHARED_TEXTURE_OBJECTS_CR 0x8B13
508#define GL_SHARED_PROGRAMS_CR 0x8B14
509
510#endif /* GL_CR_server_id_sharing */
511
512
513#ifndef GL_CR_server_matrix
514#define GL_CR_server_matrix 1
515
516#define GL_SERVER_VIEW_MATRIX_CR 0x8B15
517#define GL_SERVER_PROJECTION_MATRIX_CR 0x8B16
518#define GL_SERVER_FRUSTUM_CR 0x8B17
519#define GL_SERVER_CURRENT_EYE_CR 0x8B18
520
521#endif /* GL_CR_server_matrix */
522
523
524#ifndef GL_CR_window_position
525#define GL_CR_window_position 1
526
527#define GL_WINDOW_POSITION_CR 0x8B19
528
529#endif /* GL_CR_window_position */
530
531
532#ifndef GL_CR_zpix
533#define GL_CR_zpix 1
534
535#define GL_ZLIB_COMPRESSION_CR 0x8B20
536#define GL_RLE_COMPRESSION_CR 0x8B21
537#define GL_PLE_COMPRESSION_CR 0x8B22
538
539/* XXX A better name would be glCompressedDrawPixelsCR() */
540extern void APIENTRY glZPixCR(GLsizei width, GLsizei height, GLenum format,
541 GLenum type, GLenum compressionType,
542 GLint client, GLint compressedSize,
543 const GLvoid *image);
544
545#endif /* GL_CR_zpix */
546
547/*Allow to use glGetString to query real host GPU info*/
548#ifndef GL_CR_real_vendor_strings
549#define GL_CR_real_vendor_strings 1
550#define GL_REAL_VENDOR 0x8B23
551#define GL_REAL_VERSION 0x8B24
552#define GL_REAL_RENDERER 0x8B25
553#endif
554
555
556/**********************************************************************/
557/***** Chromium-specific API *****/
558/**********************************************************************/
559
560
561/*
562 * Accepted by crCreateContext() and crCreateWindow() visBits parameter.
563 * Used to communicate visual attributes throughout Chromium.
564 */
565#define CR_RGB_BIT 0x1
566#define CR_ALPHA_BIT 0x2
567#define CR_DEPTH_BIT 0x4
568#define CR_STENCIL_BIT 0x8
569#define CR_ACCUM_BIT 0x10
570#define CR_DOUBLE_BIT 0x20
571#define CR_STEREO_BIT 0x40
572#define CR_MULTISAMPLE_BIT 0x80
573#define CR_OVERLAY_BIT 0x100
574#define CR_PBUFFER_BIT 0x200
575#define CR_ALL_BITS 0x3ff
576
577
578/* Accepted by crSwapBuffers() flag parameter */
579#define CR_SUPPRESS_SWAP_BIT 0x1
580
581
582typedef GLint (APIENTRY *crCreateContextProc)(const char *dpyName, GLint visBits);
583typedef void (APIENTRY *crDestroyContextProc)(GLint context);
584typedef void (APIENTRY *crMakeCurrentProc)(GLint window, GLint context);
585typedef GLint (APIENTRY *crGetCurrentContextProc)(void);
586typedef GLint (APIENTRY *crGetCurrentWindowProc)(void);
587typedef void (APIENTRY *crSwapBuffersProc)(GLint window, GLint flags);
588
589typedef GLint (APIENTRY *crWindowCreateProc)(const char *dpyName, GLint visBits);
590typedef void (APIENTRY *crWindowDestroyProc)(GLint window);
591typedef void (APIENTRY *crWindowSizeProc)(GLint window, GLint w, GLint h);
592typedef void (APIENTRY *crWindowPositionProc)(GLint window, GLint x, GLint y);
593typedef void (APIENTRY *crWindowShowProc)( GLint window, GLint flag );
594
595extern GLint APIENTRY crCreateContext(const char *dpyName, GLint visBits);
596extern void APIENTRY crDestroyContext(GLint context);
597extern void APIENTRY crMakeCurrent(GLint window, GLint context);
598extern GLint APIENTRY crGetCurrentContext(void);
599extern GLint APIENTRY crGetCurrentWindow(void);
600extern void APIENTRY crSwapBuffers(GLint window, GLint flags);
601extern GLint APIENTRY crWindowCreate(const char *dpyName, GLint visBits);
602extern void APIENTRY crWindowDestroy(GLint window);
603extern void APIENTRY crWindowSize(GLint window, GLint w, GLint h);
604extern void APIENTRY crWindowPosition(GLint window, GLint x, GLint y);
605extern void APIENTRY crWindowVisibleRegion( GLint window, GLint cRects, void *pRects );
606extern void APIENTRY crWindowShow( GLint window, GLint flag );
607
608typedef int (CR_APIENTRY *CR_PROC)();
609CR_PROC APIENTRY crGetProcAddress( const char *name );
610
611
612
613/**********************************************************************/
614/***** Other useful stuff *****/
615/**********************************************************************/
616
617#ifdef WINDOWS
618#define GET_PROC(NAME) wglGetProcAddress((const GLbyte *) (NAME))
619#elif defined(DARWIN)
620#define GET_PROC(NAME) NULL
621#elif defined(GLX_ARB_get_proc_address)
622#define GET_PROC(NAME) glXGetProcAddressARB((const GLubyte *) (NAME))
623#else
624/* For SGI, etc that don't have glXGetProcAddress(). */
625#define GET_PROC(NAME) NULL
626#endif
627
628#ifdef __cplusplus
629}
630#endif
631
632#endif /* __CHROMIUM_H__ */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette