summaryrefslogtreecommitdiffstats
path: root/src/VBox/GuestHost/OpenGL/include/chromium.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/VBox/GuestHost/OpenGL/include/chromium.h')
-rw-r--r--src/VBox/GuestHost/OpenGL/include/chromium.h864
1 files changed, 864 insertions, 0 deletions
diff --git a/src/VBox/GuestHost/OpenGL/include/chromium.h b/src/VBox/GuestHost/OpenGL/include/chromium.h
new file mode 100644
index 00000000..8de678e4
--- /dev/null
+++ b/src/VBox/GuestHost/OpenGL/include/chromium.h
@@ -0,0 +1,864 @@
+/* Copyright (c) 2001, Stanford University
+ * All rights reserved.
+ *
+ * See the file LICENSE.txt for information on redistributing this software.
+ */
+
+/**
+ * Public Chromium exports.
+ * Parallel Chromium applications will include this header.
+ */
+
+
+#ifndef __CHROMIUM_H__
+#define __CHROMIUM_H__
+
+
+/**********************************************************************/
+/***** System includes and other cruft *****/
+/**********************************************************************/
+
+#include "cr_compiler.h"
+
+#ifdef IN_RING0
+
+# ifndef GA_INCLUDED_SRC_WINNT_Graphics_Video_common_VBoxVideoLog_h
+# undef WARN /* VBoxMpUtils.h includes common/VBoxVideoLog.h which */
+# undef LOG /* uncondtionally redefines these three macros. */
+# undef LOGREL
+# endif
+# include <common/VBoxMPUtils.h>
+
+# define WINGDIAPI /* gl/gl.h is using this (wingdi.h defines it a __declspec(dllimport) normaly). */
+
+#endif
+
+/*
+ * We effectively wrap gl.h, glu.h, etc, just like GLUT
+ */
+
+#ifndef GL_GLEXT_PROTOTYPES
+# define GL_GLEXT_PROTOTYPES
+#endif
+
+#if defined(WINDOWS)
+# ifdef IN_RING0
+# error "should not happen!" /* bird: This is certifiably insane, in my opinion. */
+# endif
+# define WIN32_LEAN_AND_MEAN
+# define WGL_APIENTRY __stdcall
+# ifdef VBOX
+# include <iprt/win/windows.h>
+# else
+# include <windows.h>
+# endif
+#elif defined(DARWIN)
+/* nothing */
+#else
+# ifndef IN_RING0
+# define GLX
+# endif
+#endif
+
+#include <GL/gl.h>
+/* Quick fix so as not to update the version of glext.h we provide. */
+#ifdef GL_GLEXT_PROTOTYPES
+# if defined(RT_OS_LINUX) || defined(RT_OS_SOLARIS)
+GLAPI void APIENTRY glBindFramebuffer (GLenum, GLuint);
+GLAPI void APIENTRY glBlitFramebuffer (GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLint, GLbitfield, GLenum);
+GLAPI GLenum APIENTRY glCheckFramebufferStatus (GLenum);
+GLAPI void APIENTRY glDeleteFramebuffers (GLsizei, const GLuint *);
+GLAPI void APIENTRY glFramebufferTexture2D (GLenum, GLenum, GLenum, GLuint, GLint);
+GLAPI void APIENTRY glGenFramebuffers (GLsizei, GLuint *);
+# endif
+#endif
+
+#ifndef WINDOWS
+# ifndef RT_OS_WINDOWS /* If we don't need it in ring-3, we probably not need it in ring-0 either (triggers warnings). */
+# include <iprt/cdefs.h>
+# if RT_GNUC_PREREQ(4, 6)
+# pragma GCC diagnostic push
+# endif
+# if RT_GNUC_PREREQ(4, 2)
+# ifndef __cplusplus
+# pragma GCC diagnostic ignored "-Wstrict-prototypes"
+# endif
+# endif
+# include <GL/glu.h>
+# if RT_GNUC_PREREQ(4, 6)
+# pragma GCC diagnostic pop
+# endif
+# endif /* !RT_OS_WINDOWS */
+#endif
+
+
+#ifdef GLX
+# ifndef GLX_GLXEXT_PROTOTYPES
+# define GLX_GLXEXT_PROTOTYPES
+# endif
+# include <GL/glx.h>
+#endif
+
+#ifdef USE_OSMESA
+# include <GL/osmesa.h>
+#endif
+
+#ifdef DARWIN
+# include <stddef.h>
+#elif !defined(FreeBSD)
+# include <malloc.h> /* to get ptrdiff_t used below */
+#endif
+
+#include "cr_glext.h"
+
+#ifdef IN_RING0
+# undef WINGDIAPI /* don't want it clashing with wingdi.h should it be included. */
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* to shut up gcc warning for struct VBOXUHGSMI * parameters */
+struct VBOXUHGSMI;
+struct VBOXVR_SCR_COMPOSITOR;
+struct VBOXVR_SCR_COMPOSITOR_ENTRY;
+
+#define CR_RENDER_DEFAULT_CONTEXT_ID (INT32_MAX-1)
+#define CR_RENDER_DEFAULT_WINDOW_ID (INT32_MAX-1)
+
+#if defined(IN_GUEST) && defined(RT_OS_WINDOWS) && defined(VBOX_WITH_WDDM)
+# ifdef VBOX_WDDM_WOW64
+# define VBOX_MODNAME_DISPD3D "VBoxDispD3D-x86"
+# else
+# define VBOX_MODNAME_DISPD3D "VBoxDispD3D"
+# endif
+#endif
+
+#ifndef APIENTRY
+#define APIENTRY
+#endif
+
+
+/**********************************************************************/
+/***** Define things that might have been missing in gl.h *****/
+/**********************************************************************/
+
+/*
+ * Define missing GLX tokens:
+ */
+
+#ifndef GLX_SAMPLE_BUFFERS_SGIS
+#define GLX_SAMPLE_BUFFERS_SGIS 0x186a0 /*100000*/
+#endif
+#ifndef GLX_SAMPLES_SGIS
+#define GLX_SAMPLES_SGIS 0x186a1 /*100001*/
+#endif
+#ifndef GLX_VISUAL_CAVEAT_EXT
+#define GLX_VISUAL_CAVEAT_EXT 0x20 /* visual_rating extension type */
+#endif
+
+/*
+ * Define missing WGL tokens:
+ */
+#ifndef WGL_COLOR_BITS_EXT
+#define WGL_COLOR_BITS_EXT 0x2014
+#endif
+#ifndef WGL_DRAW_TO_WINDOW_EXT
+#define WGL_DRAW_TO_WINDOW_EXT 0x2001
+#endif
+#ifndef WGL_FULL_ACCELERATION_EXT
+#define WGL_FULL_ACCELERATION_EXT 0x2027
+#endif
+#ifndef WGL_ACCELERATION_EXT
+#define WGL_ACCELERATION_EXT 0x2003
+#endif
+#ifndef WGL_TYPE_RGBA_EXT
+#define WGL_TYPE_RGBA_EXT 0x202B
+#endif
+#ifndef WGL_RED_BITS_EXT
+#define WGL_RED_BITS_EXT 0x2015
+#endif
+#ifndef WGL_GREEN_BITS_EXT
+#define WGL_GREEN_BITS_EXT 0x2017
+#endif
+#ifndef WGL_BLUE_BITS_EXT
+#define WGL_BLUE_BITS_EXT 0x2019
+#endif
+#ifndef WGL_ALPHA_BITS_EXT
+#define WGL_ALPHA_BITS_EXT 0x201B
+#endif
+#ifndef WGL_DOUBLE_BUFFER_EXT
+#define WGL_DOUBLE_BUFFER_EXT 0x2011
+#endif
+#ifndef WGL_STEREO_EXT
+#define WGL_STEREO_EXT 0x2012
+#endif
+#ifndef WGL_ACCUM_RED_BITS_EXT
+#define WGL_ACCUM_RED_BITS_EXT 0x201E
+#endif
+#ifndef WGL_ACCUM_GREEN_BITS_EXT
+#define WGL_ACCUM_GREEN_BITS_EXT 0x201F
+#endif
+#ifndef WGL_ACCUM_BLUE_BITS_EXT
+#define WGL_ACCUM_BLUE_BITS_EXT 0x2020
+#endif
+#ifndef WGL_ACCUM_ALPHA_BITS_EXT
+#define WGL_ACCUM_ALPHA_BITS_EXT 0x2021
+#endif
+#ifndef WGL_DEPTH_BITS_EXT
+#define WGL_DEPTH_BITS_EXT 0x2022
+#endif
+#ifndef WGL_STENCIL_BITS_EXT
+#define WGL_STENCIL_BITS_EXT 0x2023
+#endif
+#ifndef WGL_SAMPLE_BUFFERS_EXT
+#define WGL_SAMPLE_BUFFERS_EXT 0x2041
+#endif
+#ifndef WGL_SAMPLES_EXT
+#define WGL_SAMPLES_EXT 0x2042
+#endif
+#ifndef WGL_SUPPORT_OPENGL_ARB
+#define WGL_SUPPORT_OPENGL_ARB 0x2010
+#endif
+#ifndef WGL_NUMBER_PIXEL_FORMATS_ARB
+#define WGL_NUMBER_PIXEL_FORMATS_ARB 0x2000
+#endif
+#ifndef WGL_FULL_ACCELERATION_ARB
+#define WGL_FULL_ACCELERATION_ARB 0x2027
+#endif
+#ifndef WGL_SWAP_UNDEFINED_ARB
+#define WGL_SWAP_UNDEFINED_ARB 0x202A
+#endif
+#ifndef WGL_TYPE_RGBA_ARB
+#define WGL_TYPE_RGBA_ARB 0x202B
+#endif
+#ifndef WGL_DRAW_TO_WINDOW_ARB
+#define WGL_DRAW_TO_WINDOW_ARB 0x2001
+#endif
+#ifndef WGL_DRAW_TO_BITMAP_ARB
+#define WGL_DRAW_TO_BITMAP_ARB 0x2002
+#endif
+#ifndef WGL_DOUBLE_BUFFER_ARB
+#define WGL_DOUBLE_BUFFER_ARB 0x2011
+#endif
+#ifndef WGL_NEED_PALETTE_ARB
+#define WGL_NEED_PALETTE_ARB 0x2004
+#endif
+#ifndef WGL_NEED_SYSTEM_PALETTE_ARB
+#define WGL_NEED_SYSTEM_PALETTE_ARB 0x2005
+#endif
+#ifndef WGL_SWAP_LAYER_BUFFERS_ARB
+#define WGL_SWAP_LAYER_BUFFERS_ARB 0x2006
+#endif
+#ifndef WGL_NUMBER_OVERLAYS_ARB
+#define WGL_NUMBER_OVERLAYS_ARB 0x2008
+#endif
+#ifndef WGL_NUMBER_UNDERLAYS_ARB
+#define WGL_NUMBER_UNDERLAYS_ARB 0x2009
+#endif
+#ifndef WGL_TRANSPARENT_ARB
+#define WGL_TRANSPARENT_ARB 0x200A
+#endif
+#ifndef WGL_TRANSPARENT_RED_VALUE_ARB
+#define WGL_TRANSPARENT_RED_VALUE_ARB 0x2037
+#endif
+#ifndef WGL_TRANSPARENT_GREEN_VALUE_ARB
+#define WGL_TRANSPARENT_GREEN_VALUE_ARB 0x2038
+#endif
+#ifndef WGL_TRANSPARENT_BLUE_VALUE_ARB
+#define WGL_TRANSPARENT_BLUE_VALUE_ARB 0x2039
+#endif
+#ifndef WGL_TRANSPARENT_ALPHA_VALUE_ARB
+#define WGL_TRANSPARENT_ALPHA_VALUE_ARB 0x203A
+#endif
+#ifndef WGL_TRANSPARENT_INDEX_VALUE_ARB
+#define WGL_TRANSPARENT_INDEX_VALUE_ARB 0x203B
+#endif
+#ifndef WGL_SHARE_STENCIL_ARB
+#define WGL_SHARE_STENCIL_ARB 0x200D
+#endif
+#ifndef WGL_SHARE_ACCUM_ARB
+#define WGL_SHARE_ACCUM_ARB 0x200E
+#endif
+#ifndef WGL_SUPPORT_GDI_ARB
+#define WGL_SUPPORT_GDI_ARB 0x200F
+#endif
+#ifndef WGL_RED_BITS_ARB
+#define WGL_RED_BITS_ARB 0x2015
+#endif
+#ifndef WGL_RED_SHIFT_ARB
+#define WGL_RED_SHIFT_ARB 0x2016
+#endif
+#ifndef WGL_GREEN_BITS_ARB
+#define WGL_GREEN_BITS_ARB 0x2017
+#endif
+#ifndef WGL_GREEN_SHIFT_ARB
+#define WGL_GREEN_SHIFT_ARB 0x2018
+#endif
+#ifndef WGL_BLUE_BITS_ARB
+#define WGL_BLUE_BITS_ARB 0x2019
+#endif
+#ifndef WGL_BLUE_SHIFT_ARB
+#define WGL_BLUE_SHIFT_ARB 0x201A
+#endif
+#ifndef WGL_ALPHA_BITS_ARB
+#define WGL_ALPHA_BITS_ARB 0x201B
+#endif
+#ifndef WGL_ALPHA_SHIFT_ARB
+#define WGL_ALPHA_SHIFT_ARB 0x201C
+#endif
+#ifndef WGL_ACCUM_BITS_ARB
+#define WGL_ACCUM_BITS_ARB 0x201D
+#endif
+#ifndef WGL_ACCUM_RED_BITS_ARB
+#define WGL_ACCUM_RED_BITS_ARB 0x201E
+#endif
+#ifndef WGL_ACCUM_GREEN_BITS_ARB
+#define WGL_ACCUM_GREEN_BITS_ARB 0x201F
+#endif
+#ifndef WGL_ACCUM_BLUE_BITS_ARB
+#define WGL_ACCUM_BLUE_BITS_ARB 0x2020
+#endif
+#ifndef WGL_ACCUM_ALPHA_BITS_ARB
+#define WGL_ACCUM_ALPHA_BITS_ARB 0x2021
+#endif
+#ifndef WGL_DEPTH_BITS_ARB
+#define WGL_DEPTH_BITS_ARB 0x2022
+#endif
+#ifndef WGL_STENCIL_BITS_ARB
+#define WGL_STENCIL_BITS_ARB 0x2023
+#endif
+#ifndef WGL_AUX_BUFFERS_ARB
+#define WGL_AUX_BUFFERS_ARB 0x2024
+#endif
+#ifndef WGL_STEREO_ARB
+#define WGL_STEREO_ARB 0x2012
+#endif
+#ifndef WGL_ACCELERATION_ARB
+#define WGL_ACCELERATION_ARB 0x2003
+#endif
+#ifndef WGL_SHARE_DEPTH_ARB
+#define WGL_SHARE_DEPTH_ARB 0x200C
+#endif
+#ifndef WGL_PIXEL_TYPE_ARB
+#define WGL_PIXEL_TYPE_ARB 0x2013
+#endif
+#ifndef WGL_COLOR_BITS_ARB
+#define WGL_COLOR_BITS_ARB 0x2014
+#endif
+#ifndef WGL_SWAP_METHOD_ARB
+#define WGL_SWAP_METHOD_ARB 0x2007
+#endif
+
+/*
+ * Define missing 1.2 tokens:
+ */
+#ifndef GL_SMOOTH_POINT_SIZE_RANGE
+#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12
+#endif
+
+#ifndef GL_SMOOTH_POINT_SIZE_GRANULARITY
+#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13
+#endif
+
+#ifndef GL_SMOOTH_LINE_WIDTH_RANGE
+#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22
+#endif
+
+#ifndef GL_SMOOTH_LINE_WIDTH_GRANULARITY
+#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23
+#endif
+
+#ifndef GL_ALIASED_POINT_SIZE_RANGE
+#define GL_ALIASED_POINT_SIZE_RANGE 0x846D
+#endif
+
+#ifndef GL_ALIASED_LINE_WIDTH_RANGE
+#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E
+#endif
+
+#ifndef GL_COLOR_MATRIX_STACK_DEPTH
+#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2
+#endif
+
+#ifndef GL_COLOR_MATRIX
+#define GL_COLOR_MATRIX 0x80B1
+#endif
+
+#ifndef GL_TEXTURE_3D
+#define GL_TEXTURE_3D 0x806F
+#endif
+
+#ifndef GL_MAX_3D_TEXTURE_SIZE
+#define GL_MAX_3D_TEXTURE_SIZE 0x8073
+#endif
+
+#ifndef GL_PACK_SKIP_IMAGES
+#define GL_PACK_SKIP_IMAGES 0x806B
+#endif
+
+#ifndef GL_PACK_IMAGE_HEIGHT
+#define GL_PACK_IMAGE_HEIGHT 0x806C
+#endif
+
+#ifndef GL_UNPACK_SKIP_IMAGES
+#define GL_UNPACK_SKIP_IMAGES 0x806D
+#endif
+
+#ifndef GL_UNPACK_IMAGE_HEIGHT
+#define GL_UNPACK_IMAGE_HEIGHT 0x806E
+#endif
+
+#ifndef GL_PROXY_TEXTURE_3D
+#define GL_PROXY_TEXTURE_3D 0x8070
+#endif
+
+#ifndef GL_TEXTURE_DEPTH
+#define GL_TEXTURE_DEPTH 0x8071
+#endif
+
+#ifndef GL_TEXTURE_WRAP_R
+#define GL_TEXTURE_WRAP_R 0x8072
+#endif
+
+#ifndef GL_TEXTURE_BINDING_3D
+#define GL_TEXTURE_BINDING_3D 0x806A
+#endif
+
+#ifndef GL_MAX_ELEMENTS_VERTICES
+#define GL_MAX_ELEMENTS_VERTICES 0x80E8
+#endif
+
+#ifndef GL_MAX_ELEMENTS_INDICES
+#define GL_MAX_ELEMENTS_INDICES 0x80E9
+#endif
+
+
+/*
+ * Define missing ARB_imaging tokens
+ */
+
+#ifndef GL_BLEND_EQUATION
+#define GL_BLEND_EQUATION 0x8009
+#endif
+
+#ifndef GL_MIN
+#define GL_MIN 0x8007
+#endif
+
+#ifndef GL_MAX
+#define GL_MAX 0x8008
+#endif
+
+#ifndef GL_FUNC_ADD
+#define GL_FUNC_ADD 0x8006
+#endif
+
+#ifndef GL_FUNC_SUBTRACT
+#define GL_FUNC_SUBTRACT 0x800A
+#endif
+
+#ifndef GL_FUNC_REVERSE_SUBTRACT
+#define GL_FUNC_REVERSE_SUBTRACT 0x800B
+#endif
+
+#ifndef GL_BLEND_COLOR
+#define GL_BLEND_COLOR 0x8005
+#endif
+
+#ifndef GL_PER_STAGE_CONSTANTS_NV
+#define GL_PER_STAGE_CONSTANTS_NV 0x8535
+#endif
+
+#ifndef GL_FOG_COORDINATE_ARRAY_POINTER_EXT
+#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456
+#endif
+
+typedef void (*CR_GLXFuncPtr)(void);
+#ifndef GLX_ARB_get_proc_address
+#define GLX_ARB_get_proc_address 1
+CR_GLXFuncPtr glXGetProcAddressARB( const GLubyte *name );
+#endif /* GLX_ARB_get_proc_address */
+
+#ifndef GLX_VERSION_1_4
+CR_GLXFuncPtr glXGetProcAddress( const GLubyte *name );
+#endif /* GLX_ARB_get_proc_address */
+
+#ifndef GL_RASTER_POSITION_UNCLIPPED_IBM
+#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262
+#endif
+
+#ifdef WINDOWS
+/* XXX how about this prototype for wglGetProcAddress()?
+PROC WINAPI wglGetProcAddress_prox( LPCSTR name )
+*/
+#endif
+
+
+#ifndef GL_VERSION_1_5
+
+typedef ptrdiff_t GLintptr;
+typedef ptrdiff_t GLsizeiptr;
+
+/* prototype these functions for opengl_stub/getprocaddress.c */
+extern void APIENTRY glGenQueries(GLsizei n, GLuint *ids);
+extern void APIENTRY glDeleteQueries(GLsizei n, const GLuint *ids);
+extern GLboolean APIENTRY glIsQuery(GLuint id);
+extern void APIENTRY glBeginQuery(GLenum target, GLuint id);
+extern void APIENTRY glEndQuery(GLenum target);
+extern void APIENTRY glGetQueryiv(GLenum target, GLenum pname, GLint *params);
+extern void APIENTRY glGetQueryObjectiv(GLuint id, GLenum pname, GLint *params);
+extern void APIENTRY glGetQueryObjectuiv(GLuint id, GLenum pname, GLuint *params);
+extern void APIENTRY glBindBuffer(GLenum, GLuint);
+extern void APIENTRY glDeleteBuffers(GLsizei, const GLuint *);
+extern void APIENTRY glGenBuffers(GLsizei, GLuint *);
+extern GLboolean APIENTRY glIsBuffer(GLuint);
+extern void APIENTRY glBufferData(GLenum, GLsizeiptr, const GLvoid *, GLenum);
+extern void APIENTRY glBufferSubData(GLenum, GLintptr, GLsizeiptr, const GLvoid *);
+extern void APIENTRY glGetBufferSubData(GLenum, GLintptr, GLsizeiptr, GLvoid *);
+extern GLvoid* APIENTRY glMapBuffer(GLenum, GLenum);
+extern GLboolean APIENTRY glUnmapBuffer(GLenum);
+extern void APIENTRY glGetBufferParameteriv(GLenum, GLenum, GLint *);
+extern void APIENTRY glGetBufferPointerv(GLenum, GLenum, GLvoid* *);
+
+#endif
+
+
+/**********************************************************************/
+/***** Chromium Extensions to OpenGL *****/
+/***** *****/
+/***** Chromium owns the OpenGL enum range 0x8AF0-0x8B2F *****/
+/**********************************************************************/
+
+#ifndef GL_CR_synchronization
+#define GL_CR_synchronization 1
+
+typedef void (APIENTRY *glBarrierCreateCRProc) (GLuint name, GLuint count);
+typedef void (APIENTRY *glBarrierDestroyCRProc) (GLuint name);
+typedef void (APIENTRY *glBarrierExecCRProc) (GLuint name);
+typedef void (APIENTRY *glSemaphoreCreateCRProc) (GLuint name, GLuint count);
+typedef void (APIENTRY *glSemaphoreDestroyCRProc) (GLuint name);
+typedef void (APIENTRY *glSemaphorePCRProc) (GLuint name);
+typedef void (APIENTRY *glSemaphoreVCRProc) (GLuint name);
+
+extern void APIENTRY glBarrierCreateCR(GLuint name, GLuint count);
+extern void APIENTRY glBarrierDestroyCR(GLuint name);
+extern void APIENTRY glBarrierExecCR(GLuint name);
+extern void APIENTRY glSemaphoreCreateCR(GLuint name, GLuint count);
+extern void APIENTRY glSemaphoreDestroyCR(GLuint name);
+extern void APIENTRY glSemaphorePCR(GLuint name);
+extern void APIENTRY glSemaphoreVCR(GLuint name);
+
+#endif /* GL_CR_synchronization */
+
+
+#ifndef GL_CR_bounds_info
+#define GL_CR_bounds_info 1
+/* Private, internal Chromium function */
+/*
+typedef void (APIENTRY *glBoundsInfoCRProc)(const CRrecti *, const GLbyte *, GLint, GLint);
+*/
+#endif /* GL_CR_bounds_info */
+
+
+#ifndef GL_CR_state_parameter
+#define GL_CR_state_parameter 1
+
+typedef void (APIENTRY *glChromiumParameteriCRProc) (GLenum target, GLint value);
+typedef void (APIENTRY *glChromiumParameterfCRProc) (GLenum target, GLfloat value);
+typedef void (APIENTRY *glChromiumParametervCRProc) (GLenum target, GLenum type, GLsizei count, const GLvoid *values);
+typedef void (APIENTRY *glGetChromiumParametervCRProc) (GLenum target, GLuint index, GLenum type, GLsizei count, GLvoid *values);
+
+extern void APIENTRY glChromiumParameteriCR(GLenum target, GLint value);
+extern void APIENTRY glChromiumParameterfCR(GLenum target, GLfloat value);
+extern void APIENTRY glChromiumParametervCR(GLenum target, GLenum type, GLsizei count, const GLvoid *values);
+extern void APIENTRY glGetChromiumParametervCR(GLenum target, GLuint index, GLenum type, GLsizei count, GLvoid *values);
+
+
+#endif /* GL_CR_state_parameter */
+
+
+#ifndef GL_CR_cursor_position
+#define GL_CR_cursor_position 1
+/* For virtual cursor feature (show_cursor) */
+
+#define GL_CURSOR_POSITION_CR 0x8AF0
+
+#endif /* GL_CR_cursor_position */
+
+
+#ifndef GL_CR_bounding_box
+#define GL_CR_bounding_box 1
+/* To set bounding box from client app */
+
+#define GL_DEFAULT_BBOX_CR 0x8AF1
+#define GL_SCREEN_BBOX_CR 0x8AF2
+#define GL_OBJECT_BBOX_CR 0x8AF3
+
+#endif /* GL_CR_bounding_box */
+
+
+#ifndef GL_CR_print_string
+#define GL_CR_print_string 1
+/* To print a string to stdout */
+#define GL_PRINT_STRING_CR 0x8AF4
+
+#endif /* GL_CR_print_string */
+
+
+#ifndef GL_CR_tilesort_info
+#define GL_CR_tilesort_info 1
+/* To query tilesort information */
+
+#define GL_MURAL_SIZE_CR 0x8AF5
+#define GL_NUM_SERVERS_CR 0x8AF6
+#define GL_NUM_TILES_CR 0x8AF7
+#define GL_TILE_BOUNDS_CR 0x8AF8
+#define GL_VERTEX_COUNTS_CR 0x8AF9
+#define GL_RESET_VERTEX_COUNTERS_CR 0x8AFA
+#define GL_SET_MAX_VIEWPORT_CR 0x8AFB
+
+#endif /* GL_CR_tilesort_info */
+
+
+#ifndef GL_CR_head_spu_name
+#define GL_CR_head_spu_name 1
+/* To fetch name of first SPU on a node */
+
+#define GL_HEAD_SPU_NAME_CR 0x8AFC
+
+#endif /* GL_CR_head_spu_name */
+
+
+#ifndef GL_CR_performance_info
+#define GL_CR_performance_info 1
+/* For gathering performance metrics */
+
+#define GL_PERF_GET_FRAME_DATA_CR 0x8AFD
+#define GL_PERF_GET_TIMER_DATA_CR 0x8AFE
+#define GL_PERF_DUMP_COUNTERS_CR 0x8AFF
+#define GL_PERF_SET_TOKEN_CR 0x8B00
+#define GL_PERF_SET_DUMP_ON_SWAP_CR 0x8B01
+#define GL_PERF_SET_DUMP_ON_FINISH_CR 0x8B02
+#define GL_PERF_SET_DUMP_ON_FLUSH_CR 0x8B03
+#define GL_PERF_START_TIMER_CR 0x8B04
+#define GL_PERF_STOP_TIMER_CR 0x8B05
+
+#endif /* GL_CR_performance_info */
+
+
+#ifndef GL_CR_window_size
+#define GL_CR_window_size 1
+/* To communicate window size changes */
+
+#define GL_WINDOW_SIZE_CR 0x8B06
+#define GL_MAX_WINDOW_SIZE_CR 0x8B24 /* new */
+#define GL_WINDOW_VISIBILITY_CR 0x8B25 /* new */
+
+#endif /* GL_CR_window_size */
+
+
+#ifndef GL_CR_tile_info
+#define GL_CR_tile_info 1
+/* To send new tile information to a server */
+
+#define GL_TILE_INFO_CR 0x8B07
+
+#endif /* GL_CR_tile_info */
+
+
+#ifndef GL_CR_gather
+#define GL_CR_gather 1
+/* For aggregate transfers */
+
+#define GL_GATHER_DRAWPIXELS_CR 0x8B08
+#define GL_GATHER_PACK_CR 0x8B09
+#define GL_GATHER_CONNECT_CR 0x8B0A
+#define GL_GATHER_POST_SWAPBUFFERS_CR 0x8B0B
+
+#endif /* GL_CR_gather */
+
+
+#ifndef GL_CR_saveframe
+#define GL_CR_saveframe 1
+
+#define GL_SAVEFRAME_ENABLED_CR 0x8B0C
+#define GL_SAVEFRAME_FRAMENUM_CR 0x8B0D
+#define GL_SAVEFRAME_STRIDE_CR 0x8B0E
+#define GL_SAVEFRAME_SINGLE_CR 0x8B0F
+#define GL_SAVEFRAME_FILESPEC_CR 0x8B10
+
+#endif /* GL_CR_saveframe */
+
+
+#ifndef GL_CR_readback_barrier_size
+#define GL_CR_readback_barrier_size 1
+
+#define GL_READBACK_BARRIER_SIZE_CR 0x8B11
+
+#endif /* GL_CR_readback_barrier_size */
+
+
+#ifndef GL_CR_server_id_sharing
+#define GL_CR_server_id_sharing 1
+
+#define GL_SHARED_DISPLAY_LISTS_CR 0x8B12
+#define GL_SHARED_TEXTURE_OBJECTS_CR 0x8B13
+#define GL_SHARED_PROGRAMS_CR 0x8B14
+
+#endif /* GL_CR_server_id_sharing */
+
+
+#ifndef GL_CR_server_matrix
+#define GL_CR_server_matrix 1
+
+#define GL_SERVER_VIEW_MATRIX_CR 0x8B15
+#define GL_SERVER_PROJECTION_MATRIX_CR 0x8B16
+#define GL_SERVER_FRUSTUM_CR 0x8B17
+#define GL_SERVER_CURRENT_EYE_CR 0x8B18
+
+#endif /* GL_CR_server_matrix */
+
+
+#ifndef GL_CR_window_position
+#define GL_CR_window_position 1
+
+#define GL_WINDOW_POSITION_CR 0x8B19
+
+#endif /* GL_CR_window_position */
+
+
+#ifndef GL_CR_zpix
+#define GL_CR_zpix 1
+
+#define GL_ZLIB_COMPRESSION_CR 0x8B20
+#define GL_RLE_COMPRESSION_CR 0x8B21
+#define GL_PLE_COMPRESSION_CR 0x8B22
+
+/* XXX A better name would be glCompressedDrawPixelsCR() */
+extern void APIENTRY glZPixCR(GLsizei width, GLsizei height, GLenum format,
+ GLenum type, GLenum compressionType,
+ GLint client, GLint compressedSize,
+ const GLvoid *image);
+
+#endif /* GL_CR_zpix */
+
+/*Allow to use glGetString to query real host GPU info*/
+#ifndef GL_CR_real_vendor_strings
+#define GL_CR_real_vendor_strings 1
+#define GL_REAL_VENDOR 0x8B23
+#define GL_REAL_VERSION 0x8B24
+#define GL_REAL_RENDERER 0x8B25
+#define GL_REAL_EXTENSIONS 0x8B26
+#endif
+
+/*Global resource ids sharing*/
+#define GL_SHARE_CONTEXT_RESOURCES_CR 0x8B27
+/*do flush for the command buffer of a thread the context was previusly current for*/
+#define GL_FLUSH_ON_THREAD_SWITCH_CR 0x8B28
+/*report that the shared resource is used by this context, the parameter value is a texture name*/
+#define GL_RCUSAGE_TEXTURE_SET_CR 0x8B29
+/*report that the shared resource is no longer used by this context, the parameter value is a texture name*/
+#define GL_RCUSAGE_TEXTURE_CLEAR_CR 0x8B2A
+/*configures host to create windows initially hidden*/
+#define GL_HOST_WND_CREATED_HIDDEN_CR 0x8B2B
+/* guest requests host whether e debug break is needed*/
+#define GL_DBG_CHECK_BREAK_CR 0x8B2C
+/* Tells renderspu the default context id being used by the crserver */
+#define GL_HH_SET_DEFAULT_SHARED_CTX 0x8B2D
+
+#define GL_HH_SET_TMPCTX_MAKE_CURRENT 0x8B2E
+/* inform renderspu about the current render thread */
+#define GL_HH_RENDERTHREAD_INFORM 0x8B2F
+
+/* enable zero vertex attribute generation to work around wine bug */
+#define GL_CHECK_ZERO_VERT_ARRT 0x8B30
+
+/* share lists */
+#define GL_SHARE_LISTS_CR 0x8B31
+
+#define GL_HH_SET_CLIENT_CALLOUT 0x8B32
+
+/* ensure the resource is */
+#define GL_PIN_TEXTURE_SET_CR 0x8B32
+#define GL_PIN_TEXTURE_CLEAR_CR 0x8B33
+
+/**********************************************************************/
+/***** Chromium-specific API *****/
+/**********************************************************************/
+
+
+/*
+ * Accepted by crCreateContext() and crCreateWindow() visBits parameter.
+ * Used to communicate visual attributes throughout Chromium.
+ */
+#define CR_RGB_BIT 0x1
+#define CR_ALPHA_BIT 0x2
+#define CR_DEPTH_BIT 0x4
+#define CR_STENCIL_BIT 0x8
+#define CR_ACCUM_BIT 0x10
+#define CR_DOUBLE_BIT 0x20
+#define CR_STEREO_BIT 0x40
+#define CR_MULTISAMPLE_BIT 0x80
+#define CR_OVERLAY_BIT 0x100
+#define CR_PBUFFER_BIT 0x200
+#define CR_ALL_BITS 0x3ff
+
+
+/* Accepted by crSwapBuffers() flag parameter */
+#define CR_SUPPRESS_SWAP_BIT 0x1
+
+
+typedef GLint (APIENTRY *crCreateContextProc)(const char *dpyName, GLint visBits);
+typedef void (APIENTRY *crDestroyContextProc)(GLint context);
+typedef void (APIENTRY *crMakeCurrentProc)(GLint window, GLint context);
+typedef GLint (APIENTRY *crGetCurrentContextProc)(void);
+typedef GLint (APIENTRY *crGetCurrentWindowProc)(void);
+typedef void (APIENTRY *crSwapBuffersProc)(GLint window, GLint flags);
+
+typedef GLint (APIENTRY *crWindowCreateProc)(const char *dpyName, GLint visBits);
+typedef void (APIENTRY *crWindowDestroyProc)(GLint window);
+typedef void (APIENTRY *crWindowSizeProc)(GLint window, GLint w, GLint h);
+typedef void (APIENTRY *crWindowPositionProc)(GLint window, GLint x, GLint y);
+typedef void (APIENTRY *crWindowShowProc)( GLint window, GLint flag );
+
+extern GLint APIENTRY crCreateContext(char *dpyName, GLint visBits);
+extern void APIENTRY crDestroyContext(GLint context);
+extern void APIENTRY crMakeCurrent(GLint window, GLint context);
+extern GLint APIENTRY crGetCurrentContext(void);
+extern GLint APIENTRY crGetCurrentWindow(void);
+extern void APIENTRY crSwapBuffers(GLint window, GLint flags);
+extern GLint APIENTRY crWindowCreate(const char *dpyName, GLint visBits);
+extern void APIENTRY crWindowDestroy(GLint window);
+extern void APIENTRY crWindowSize(GLint window, GLint w, GLint h);
+extern void APIENTRY crWindowPosition(GLint window, GLint x, GLint y);
+extern void APIENTRY crWindowVisibleRegion( GLint window, GLint cRects, const void *pRects );
+extern void APIENTRY crWindowShow( GLint window, GLint flag );
+extern void APIENTRY crVBoxTexPresent(GLuint texture, GLuint cfg, GLint xPos, GLint yPos, GLint cRects, const GLint *pRects);
+
+typedef int (CR_APIENTRY *CR_PROC)(void);
+CR_PROC APIENTRY crGetProcAddress( const char *name );
+
+
+
+/**********************************************************************/
+/***** Other useful stuff *****/
+/**********************************************************************/
+
+#ifdef WINDOWS
+#define GET_PROC(NAME) wglGetProcAddress((const GLbyte *) (NAME))
+#elif defined(DARWIN)
+#define GET_PROC(NAME) NULL
+#elif defined(GLX_ARB_get_proc_address)
+#define GET_PROC(NAME) glXGetProcAddressARB((const GLubyte *) (NAME))
+#else
+/* For SGI, etc that don't have glXGetProcAddress(). */
+#define GET_PROC(NAME) NULL
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __CHROMIUM_H__ */