diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork01/YCOpenGLHomeWork01.xcodeproj/project.xcworkspace/xcuserdata/YCFile.xcuserdatad/UserInterfaceState.xcuserstate" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork01/YCOpenGLHomeWork01.xcodeproj/project.xcworkspace/xcuserdata/YCFile.xcuserdatad/UserInterfaceState.xcuserstate" index 7bad22a..6407183 100644 Binary files "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork01/YCOpenGLHomeWork01.xcodeproj/project.xcworkspace/xcuserdata/YCFile.xcuserdatad/UserInterfaceState.xcuserstate" and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork01/YCOpenGLHomeWork01.xcodeproj/project.xcworkspace/xcuserdata/YCFile.xcuserdatad/UserInterfaceState.xcuserstate" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork01/YCOpenGLHomeWork01.xcodeproj/xcuserdata/YCFile.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork01/YCOpenGLHomeWork01.xcodeproj/xcuserdata/YCFile.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist" new file mode 100644 index 0000000..fe2b454 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork01/YCOpenGLHomeWork01.xcodeproj/xcuserdata/YCFile.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist" @@ -0,0 +1,5 @@ + + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork01/YCOpenGLHomeWork01/main.cpp" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork01/YCOpenGLHomeWork01/main.cpp" index f64f0e3..bec1531 100644 --- "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork01/YCOpenGLHomeWork01/main.cpp" +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork01/YCOpenGLHomeWork01/main.cpp" @@ -7,247 +7,162 @@ // #include -#include #include #include #include #include using namespace std; -GLfloat spin = 0; -const GLfloat lightPosition[] = {10.0,10.0,10.0,0.0}; -const GLfloat whiteLight[] = {0.8,0.8,0.8,1.0}; -GLfloat matSpecular [] = {0.3,0.3,0.3,1.0}; -GLfloat matShininess [] = {20.0}; -GLfloat matEmission [] = {0.3,0.3,0.3,1.0}; - -void display() +void myAxis() { - glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); - glMatrixMode(GL_PROJECTION); - glLoadIdentity();; - glOrtho(-10.0,10.0,-10.0,10.0,-10.0,10.0); - - gluLookAt(1.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0);//设置观察角度 - //绘制坐标系 + //绘制X轴 + glColor3f(1.0f, 0.0f, 0.0f); glBegin(GL_LINES); - glVertex3f(0.0,0.0,0.0); - glVertex3f(10.0,0.0,0.0);//X轴 - glVertex3f(0.0,0.0,0.0); - glVertex3f(0.0,10.0,0.0);//Y轴 - glVertex3f(0.0,0.0,0.0); - glVertex3f(0.0,0.0,10.0);//Z轴 + { + glVertex3f( 0.0f, 0.0f, 0.0f); + glVertex3f( 50.0f, 0.0f, 0.0f); + //绘制坐标轴的箭头 + glVertex3f( 50.0f, 0.0f, 0.0f); + glVertex3f( 49.0f, 1.0f, 0.0f); + glVertex3f( 50.0f, 0.0f, 0.0f); + glVertex3f( 49.0f,-1.0f, 0.0f); + } glEnd(); - glFlush(); - //绘制太阳 - glMatrixMode(GL_MODELVIEW); + //绘制Y轴 glColor3f(0.0f, 1.0f, 0.0f); - glPushMatrix(); - glRotatef(spin,0.0,1.0,0.0); - glMaterialfv(GL_FRONT,GL_SPECULAR,matSpecular); - glMaterialfv(GL_FRONT,GL_SHININESS,matShininess); - glMaterialfv(GL_FRONT,GL_EMISSION,matEmission); - glutSolidSphere(2.5,160,16); - - glPopMatrix(); - glFlush(); - + glBegin(GL_LINES); + { + glVertex3f( 0.0f, 0.0f, 0.0f); + glVertex3f( 0.0f, 50.0f, 0.0f); + glVertex3f( 0.0f, 50.0f, 0.0f); + glVertex3f( 1.0f, 49.0f, 0.0f); + glVertex3f( 0.0f, 50.0f, 0.0f); + glVertex3f( -1.0f, 49.0f, 0.0f); + } + glEnd(); - //绘制地球 - GLfloat RADIUS = 6.0f; - glMatrixMode(GL_MODELVIEW); + //绘制Z轴 glColor3f(0.0f, 0.0f, 1.0f); + glBegin( GL_LINES ); + { + glVertex3f( 0.0f, 0.0f, 0.0f ); + glVertex3f( 0.0f, 0.0f, 50.0f ); + glVertex3f( 0.0f, 0.0f, 50.0f ); + glVertex3f( 0.0f, 1.0f, 49.0f ); + glVertex3f( 0.0f, 0.0f, 50.0f ); + glVertex3f( 0.0f, -1.0f, 49.0f); + } + glEnd(); +} + +//x轴和y轴位置 +static GLfloat X_Axis = 0.0f; +static GLfloat Y_Axis = 0.0f; + +//绘制太阳地球月亮的函数 +void myDisplay() +{ + //清除缓冲区(颜色缓冲区、深度缓冲区、模板缓冲区),填充的颜色由glClearColor()指定 + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); + + //开始渲染 glPushMatrix(); - glRotatef(spin, 0.0, 1.0,0.0); - glTranslatef(RADIUS, 0, 0); - glMaterialfv(GL_FRONT,GL_SPECULAR,matSpecular); - glMaterialfv(GL_FRONT,GL_SHININESS,matShininess); - glMaterialfv(GL_FRONT,GL_EMISSION,matEmission); - glutSolidSphere(1.2,160,16); - glPopMatrix(); + //使用键盘控制X轴、Y轴旋转 + glRotatef(X_Axis, 1.0f, 0.0f, 0.0f); + glRotatef(Y_Axis, 0.0f, 1.0f, 0.0f); + //绘制坐标系 + myAxis(); + glDisable(GL_LIGHTING); - //绘制月亮 - glMatrixMode(GL_MODELVIEW); - glColor3f(1.0f, 1.0f, 0.0f); - glPushMatrix(); - glRotatef(spin, 0.0, 1.0, 0.0); - GLfloat alpha = spin; - if (spin > 180) - alpha = 360 - spin; - GLfloat t = sqrt(RADIUS*RADIUS + RADIUS*RADIUS*0.25 - RADIUS*RADIUS*cos(alpha)); - glTranslatef(t, 0, 0); - glMaterialfv(GL_FRONT,GL_SPECULAR,matSpecular); - glMaterialfv(GL_FRONT,GL_SHININESS,matShininess); - glMaterialfv(GL_FRONT,GL_EMISSION,matEmission); - glutSolidSphere(1.0,160,16); + //绘制太阳 + glColor3f(0.9f, 0.1f, 0.1f);//设置太阳颜色 + glutSolidSphere(10.0f, 30, 30);//后面两个参数越大,绘制的球体越“圆” - glPopMatrix(); + //绘制地球 + static GLfloat alpha = 0.0f; + const GLfloat radius = 20.f; + glRotatef(alpha, 0, 0, 1); + glTranslatef(radius, radius, 0); + glColor3f(0.2f, 0.2f, 0.9f); + glutSolidSphere(4.0f, 30, 30); + + //绘制“月亮” + glColor3f(1.0f, 1.0f, 0.0f); + glRotatef(alpha/30.0*360.0 - alpha/360.0*360.0, 0.0f, 0.0f, -1.0f); + glTranslatef(radius/2, 0.0f, 0.0f); + glutSolidSphere(1.5f, 40, 40); - spin = spin + 1; - if (spin>=360) + //开始旋转 + alpha += 0.3f; + if (alpha >= 360) { - spin = 0; + alpha -= 360; } - //sleep(500); - glFlush(); + //显示所绘制图像 + glPopMatrix(); + + //使用双缓存,避免刷新时闪烁 + glutSwapBuffers(); } -void MyKeyboard(unsigned char key,int x,int y)//键盘事件 +void myReshape(GLsizei w, GLsizei h) { - switch(key) + //如果h为0的情况,w为0的情况呢 + if(!h) { - case 'a': - { - while (true) - { - spin = spin + 10; - display(); - //Sleep(500); - } - break; - } + h = 1; } -} - -void myReshape(int w, int h)//针对窗体大小改变而写的函数 -{ - if (!h) - return; + //视口映射 把绘图坐标映射到窗口坐标、从逻辑笛卡尔坐标映射到物理屏幕像素坐标 + //视口就是窗口内部用于绘制裁剪区域的客户区域 + //从左下角开始,如果刚好和main函数中WindowSize相同大小,则显示图像刚好,否则有裁剪或者包裹 glViewport(0, 0, w, h); + + //重置投影矩阵 glMatrixMode(GL_PROJECTION); + //将之前矩阵变换导致变化过的栈顶矩阵重新归位,置为单位矩阵!等于是之前的矩阵变换带来的影响到此为止了! glLoadIdentity(); - gluPerspective(60.0, 1.0*(GLfloat)w/(GLfloat)h,1.0, 30.0);//视角 + + //正投影(也叫平行投影)设置 + GLfloat Ortho_Parm = 40.0f;//这个参数与绘制的球的半径有关,一般比半径大一些,把球体包裹在里面 + if (w <= h) + { + glOrtho(-Ortho_Parm, Ortho_Parm, -Ortho_Parm*h/w, Ortho_Parm*h/w, -Ortho_Parm, Ortho_Parm); + } + else + { + glOrtho(-Ortho_Parm*w/h, Ortho_Parm*w/h, -Ortho_Parm, Ortho_Parm, -Ortho_Parm, Ortho_Parm); + } + //重置模型视图矩阵 glMatrixMode(GL_MODELVIEW); glLoadIdentity(); - glTranslatef(0.0, 0.0, -3.0);//平移 -} - -void SetMatrial()//设置光源和材质,以材质为主 -{ - /*设置合适的光源和材质,设置材质的各种光的颜色成分反射比率*/ - GLfloat mat_ambient[]={0.8,0.8,0.8,1.0}; - GLfloat mat_diffuse[]={0.8,0.0,0.8,1.0};/* 紫色 */ - GLfloat mat_specular[] = { 1.0, 0.0, 1.0, 1.0 };/* 亮紫色 */ - GLfloat mat_shininess[] = { 50.0 }; - GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 };//材质光源位置 - - glMaterialfv(GL_FRONT, GL_AMBIENT, mat_ambient); - glMaterialfv(GL_FRONT, GL_DIFFUSE, mat_diffuse); - glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular); - glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess); - - glLightfv(GL_LIGHT0, GL_POSITION,light_position); - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); -} - -void SetLightSource()//设置光源和材质,以光源为主 -{ - //设置合适的光源和材质 - GLfloat mat_specular[] = { 1.0, 1.0, 1.0, 1.0 };//设置材质光 - GLfloat mat_shininess[] = { 50.0 }; - GLfloat light_ambient[] = { 1.0, 0.0, 1.0, 1.0 };//设置环境光,这三种光的颜色要是一样的,现在是紫色 - GLfloat light_diffuse[] = { 1.0, 0.0, 1.0, 1.0 }; - GLfloat light_specular[] = { 1.0, 0.0, 1.0, 1.0 }; - GLfloat light_position[] = { 1.0, 1.0, 1.0, 0.0 }; //最后一个参数为0表示该光源是directional的 - //GLfloat light_position[] = { 1.0, 1.0, 1.0, 1.0 }; //最后一个参数非0表示该光源是positional的 - //GLfloat Light_Model_Ambient[] = { 0.0 , 0.0 , 0.0 , 1.0 }; //全局环境光设为黑色 - GLfloat Light_Model_Ambient[] = { 0.2 , 0.2 , 0.2 , 1.0 }; //默认的全局环境光 - glLightModelfv( GL_LIGHT_MODEL_AMBIENT , Light_Model_Ambient ); //设置全局环境光的方法 - - glClearColor (0.0, 0.0, 0.0, 0.0);//清除颜色 - glShadeModel (GL_SMOOTH); - - glMaterialfv(GL_FRONT, GL_SPECULAR, mat_specular); - glMaterialfv(GL_FRONT, GL_SHININESS, mat_shininess); - glLightfv(GL_LIGHT0, GL_AMBIENT, light_ambient); - glLightfv(GL_LIGHT0, GL_DIFFUSE, light_diffuse); - glLightfv(GL_LIGHT0, GL_SPECULAR, light_specular); - glLightfv(GL_LIGHT0, GL_POSITION, light_position); - - glEnable(GL_LIGHTING); - glEnable(GL_LIGHT0); //把全局环境光设置为黑色,然后注释掉本句可以发现"黑屏" + //设置外部观察角度 + gluLookAt(1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); } +//初始化界面 void myInit(void) { - glClearColor(1.0,1.0,1.0,0.0); - glEnable(GL_DEPTH_TEST);//打开深度测试 + //RGB颜色空间 + glClearColor(1.0, 1.0, 1.0, 0.0); glShadeModel(GL_SMOOTH); - glDepthFunc(GL_LESS); - //SetLightSource(); - SetMatrial(); - glShadeModel (GL_FLAT); -} - -void draw() { - - //设置清屏色 - glClearColor(0.0f, 0.0f, 0.0f, 0.0f); - glClear(GL_COLOR_BUFFER_BIT); - //设置颜色,红色 - glColor3f(1.0f, 0.0f, 0.0f); - //设置绘图时的坐标系统 - glOrtho(0.0f, 1.0f, 0.0f, 1.0f, -1.0f, 1.0f); - //开始渲染 - glBegin(GL_POLYGON); - //设置多边形的4个顶点 - glVertex3f(0.25f, 0.25f, 0.0f); - glVertex3f(0.75f, 0.25f, 0.0f); - glVertex3f(0.75f, 0.75f, 0.0f); - glVertex3f(0.25f, 0.75f, 0.0f); - //结束渲染 - glEnd(); - - -// glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); -// glMatrixMode(GL_PROJECTION); -// glLoadIdentity();; -// glOrtho(-10.0,10.0,-10.0,10.0,-10.0,10.0); -// -// gluLookAt(1.0,1.0,1.0,0.0,0.0,0.0,0.0,1.0,0.0);//设置观察角度 -// //绘制坐标系 -// glBegin(GL_LINES); -// glVertex3f(0.0,0.0,0.0); -// glVertex3f(10.0,0.0,0.0);//X轴 -// glVertex3f(0.0,0.0,0.0); -// glVertex3f(0.0,10.0,0.0);//Y轴 -// glVertex3f(0.0,0.0,0.0); -// glVertex3f(0.0,0.0,10.0);//Z轴 -// glEnd(); -// glFlush(); -// //绘制太阳 -// glMatrixMode(GL_MODELVIEW); -// glColor3f(0.0f, 1.0f, 0.0f); -// glPushMatrix(); -// glRotatef(spin,0.0,1.0,0.0); -// glMaterialfv(GL_FRONT,GL_SPECULAR,matSpecular); -// glMaterialfv(GL_FRONT,GL_SHININESS,matShininess); -// glMaterialfv(GL_FRONT,GL_EMISSION,matEmission); -// glutSolidSphere(2.5,160,16); -// glPopMatrix(); - - //强制刷新缓冲区,保证绘制命令被执行 - glFlush(); - + glEnable(GL_DEPTH_TEST);//打开深度测试 } -int main(int argc, const char * argv[]) { - glutInit(&argc, (char**)argv); - glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB); - glutInitWindowSize(1000,1000); - glutInitWindowPosition (300,300); +int main(int argc, char * argv[]) { + glutInit(&argc, argv); + glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); + glutInitWindowSize(800,600); + glutInitWindowPosition (400,200); glutCreateWindow("绘制太阳系"); - myInit(); -// glutDisplayFunc(draw); - glutDisplayFunc(display); - glutIdleFunc (display); + glutDisplayFunc(myDisplay); + glutIdleFunc (myDisplay); + glutReshapeFunc(myReshape); -// glutKeyboardFunc(MyKeyboard); + myInit(); glutMainLoop(); return 0; diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/GLUT" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/GLUT" new file mode 100755 index 0000000..cb0529a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/GLUT" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/copy.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/copy.h" new file mode 100644 index 0000000..a5116e2 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/copy.h" @@ -0,0 +1,18 @@ + +/* + * + * Written By Linas Vepstas November 1991 + */ + + +#define COPY_THREE_WORDS(A,B) { \ + struct three_words { int a, b, c, }; \ + *(struct three_words *) (A) = *(struct three_words *) (B); \ +} + +#define COPY_FOUR_WORDS(A,B) { \ + struct four_words { int a, b, c, d, }; \ + *(struct four_words *) (A) = *(struct four_words *) (B); \ +} + +/* ============================================================= */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/extrude.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/extrude.h" new file mode 100644 index 0000000..c50d874 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/extrude.h" @@ -0,0 +1,96 @@ + +/* + * extrude.h + * + * FUNCTION: + * prototypes for privately used subroutines for the tubing library + * + * HISTORY: + * Linas Vepstas 1991 + */ + +#include "port.h" /* for gleDouble */ + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +/* ============================================================ */ +/* + * Provides choice of calling subroutine, vs. invoking macro. + * Basically, inlines the source, or not. + * Trades performance for executable size. + */ + +#define INLINE_INTERSECT +#ifdef INLINE_INTERSECT +#define INNERSECT(sect,p,n,v1,v2) { INTERSECT(sect,p,n,v1,v2); } +#else +#define INNERSECT(sect,p,n,v1,v2) intersect(sect,p,n,v1,v2) +#endif /* INLINE_INTERSECT */ + +/* ============================================================ */ +/* The folowing defines give a kludgy way of accessing the qmesh primitive */ + +/* +#define bgntmesh _emu_qmesh_bgnqmesh +#define endtmesh _emu_qmesh_endqmesh +#define c3f _emu_qmesh_c3f +#define n3f _emu_qmesh_n3f +#define v3f _emu_qmesh_v3f +*/ + +/* ============================================================ */ + +extern void up_sanity_check (gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3]) OPENGL_DEPRECATED(10_0, 10_9); /* polyline */ + + +extern void draw_raw_style_end_cap (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble zval, /* where to draw cap */ + int frontwards) OPENGL_DEPRECATED(10_0, 10_9); /* front or back cap */ + +extern void draw_round_style_cap_callback (int iloop, + double cap[][3], + float face_color[3], + gleDouble cut_vector[3], + gleDouble bisect_vector[3], + double norms[][3], + int frontwards) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_angle_style_front_cap (int ncp, + gleDouble bi[3], + gleDouble point_array[][3]) OPENGL_DEPRECATED(10_0, 10_9); + +extern void extrusion_raw_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]) OPENGL_DEPRECATED(10_0, 10_9); /* 2D contour xforms */ + + +extern void extrusion_round_or_cut_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]) OPENGL_DEPRECATED(10_0, 10_9); /* 2D contour xforms */ + + +extern void extrusion_angle_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]) OPENGL_DEPRECATED(10_0, 10_9); /* 2D contour xforms */ + +/* -------------------------- end of file -------------------------------- */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/glsmap.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/glsmap.h" new file mode 100644 index 0000000..6fca9b8 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/glsmap.h" @@ -0,0 +1,138 @@ +#ifndef __glsmap_h__ +#define __glsmap_h__ + +/* Copyright (c) Mark J. Kilgard, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#if defined(_WIN32) + +/* Try hard to avoid including to avoid name space pollution, + but Win32's needs APIENTRY and WINGDIAPI defined properly. */ +# if 0 +# define WIN32_LEAN_AND_MEAN +# include +# else + /* XXX This is from Win32's */ +# ifndef APIENTRY +# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) +# define APIENTRY __stdcall +# else +# define APIENTRY +# endif +# endif +# ifndef CALLBACK + /* XXX This is from Win32's */ +# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) +# define CALLBACK __stdcall +# else +# define CALLBACK +# endif +# endif + /* XXX This is from Win32's and */ +# ifndef WINGDIAPI +# define WINGDIAPI __declspec(dllimport) +# endif + /* XXX This is from Win32's */ +# ifndef _WCHAR_T_DEFINED +typedef unsigned short wchar_t; +# define _WCHAR_T_DEFINED +# endif +# endif + +#pragma warning (disable:4244) /* Disable bogus conversion warnings. */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ + +#endif /* _WIN32 */ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum { + SMAP_CLEAR_SMAP_TEXTURE = 0x1, + SMAP_GENERATE_VIEW_MIPMAPS = 0x2, + SMAP_GENERATE_SMAP_MIPMAPS = 0x4, + SMAP_GENERATE_MIPMAPS = 0x6 /* both of above */ +} SphereMapFlags OPENGL_DEPRECATED(10_0, 10_9); + +/* Cube view enumerants. */ +enum { + SMAP_FRONT = 0, + SMAP_TOP = 1, + SMAP_BOTTOM = 2, + SMAP_LEFT = 3, + SMAP_RIGHT = 4, + SMAP_BACK = 5 +}; + +typedef struct _SphereMap SphereMap OPENGL_DEPRECATED(10_0, 10_9); + +extern SphereMap *smapCreateSphereMap(SphereMap *shareSmap) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapDestroySphereMap(SphereMap *smap) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapConfigureSphereMapMesh(SphereMap *smap, int steps, int rings, int edgeExtend) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetSphereMapTexObj(SphereMap *smap, GLuint texobj) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetViewTexObj(SphereMap *smap, GLuint texobj) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetViewTexObjs(SphereMap *smap, GLuint texobjs[6]) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetSphereMapTexObj(SphereMap *smap, GLuint *texobj) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetViewTexObj(SphereMap *smap, GLuint *texobj) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetViewTexObjs(SphereMap *smap, GLuint texobjs[6]) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetFlags(SphereMap *smap, SphereMapFlags flags) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetFlags(SphereMap *smap, SphereMapFlags *flags) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetViewOrigin(SphereMap *smap, GLint x, GLint y) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetSphereMapOrigin(SphereMap *smap, GLint x, GLint y) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetViewOrigin(SphereMap *smap, GLint *x, GLint *y) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetSphereMapOrigin(SphereMap *smap, GLint *x, GLint *y) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetEye(SphereMap *smap, GLfloat eyex, GLfloat eyey, GLfloat eyez) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetEyeVector(SphereMap *smap, GLfloat *eye) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetUp(SphereMap *smap, GLfloat upx, GLfloat upy, GLfloat upz) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetUpVector(SphereMap *smap, GLfloat *up) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetObject(SphereMap *smap, GLfloat objx, GLfloat objy, GLfloat objz) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetObjectVector(SphereMap *smap, GLfloat *obj) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetEye(SphereMap *smap, GLfloat *eyex, GLfloat *eyey, GLfloat *eyez) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetEyeVector(SphereMap *smap, GLfloat *eye) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetUp(SphereMap *smap, GLfloat *upx, GLfloat *upy, GLfloat *upz) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetUpVector(SphereMap *smap, GLfloat *up) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetObject(SphereMap *smap, GLfloat *objx, GLfloat *objy, GLfloat *objz) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetObjectVector(SphereMap *smap, GLfloat *obj) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetNearFar(SphereMap *smap, GLfloat viewNear, GLfloat viewFar) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetNearFar(SphereMap *smap, GLfloat *viewNear, GLfloat *viewFar) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetSphereMapTexDim(SphereMap *smap, GLsizei texdim) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetViewTexDim(SphereMap *smap, GLsizei texdim) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetSphereMapTexDim(SphereMap *smap, GLsizei *texdim) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetViewTexDim(SphereMap *smap, GLsizei *texdim) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetContextData(SphereMap *smap, void *context) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetContextData(SphereMap *smap, void **context) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetPositionLightsFunc(SphereMap *smap, void (*positionLights)(int view, void *context)) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetDrawViewFunc(SphereMap *smap, void (*drawView)(int view, void *context)) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetPositionLightsFunc(SphereMap *smap, void (**positionLights)(int view, void *context)) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetDrawViewFunc(SphereMap *smap, void (**drawView)(int view, void *context)) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapGenViewTex(SphereMap *smap, int view) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGenViewTexs(SphereMap *smap) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGenSphereMapFromViewTexs(SphereMap *smap) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGenSphereMap(SphereMap *smap) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGenSphereMapWithOneViewTex(SphereMap *smap) OPENGL_DEPRECATED(10_0, 10_9); + +extern int smapRvecToSt(float rvec[3], float st[2]) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapStToRvec(float *st, float *rvec) OPENGL_DEPRECATED(10_0, 10_9); + +#ifdef __cplusplus +} + +#endif +#endif /* __glsmap_h__ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/glsmapint.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/glsmapint.h" new file mode 100644 index 0000000..b2a9914 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/glsmapint.h" @@ -0,0 +1,102 @@ +#ifndef __glsmapint_h__ +#define __glsmapint_h__ + +/* Copyright (c) Mark J. Kilgard, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#include "glsmap.h" + +enum { X = 0, Y = 1, Z = 2 }; + +#define INITFACE(mesh) \ + int steps = mesh->steps; \ + int sqsteps = mesh->steps * mesh->steps + +#define FACE(side,y,x) \ + mesh->face[(side)*sqsteps + (y)*steps + (x)] + +#define FACExy(side,i,j) \ + (&FACE(side,i,j).x) + +#define FACEst(side,i,j) \ + (&FACE(side,i,j).s) + +#define INITBACK(mesh) \ + int allrings = mesh->rings + mesh->edgeExtend; \ + int ringedspokes = allrings * mesh->steps + +#define BACK(edge,ring,spoke) \ + mesh->back[(edge)*ringedspokes + (ring)*mesh->steps + (spoke)] + +#define BACKxy(edge,ring,spoke) \ + (&BACK(edge,ring,spoke).x) + +#define BACKst(edge,ring,spoke) \ + (&BACK(edge,ring,spoke).s) + +typedef struct _STXY { + GLfloat s, t; + GLfloat x, y; +} STXY OPENGL_DEPRECATED(10_0, 10_9); + +typedef struct _SphereMapMesh { + + int refcnt; + + int steps; + int rings; + int edgeExtend; + + STXY *face; + STXY *back; + +} SphereMapMesh OPENGL_DEPRECATED(10_0, 10_9); + +struct _SphereMap { + + /* Shared sphere map mesh vertex data. */ + SphereMapMesh *mesh; + + /* Texture object ids. */ + GLuint smapTexObj; + GLuint viewTexObjs[6]; + GLuint viewTexObj; + + /* Flags */ + SphereMapFlags flags; + + /* Texture dimensions must be a power of two. */ + int viewTexDim; /* view texture dimension */ + int smapTexDim; /* sphere map texture dimension */ + + /* Viewport origins for view and sphere map rendering. */ + int viewOrigin[2]; + int smapOrigin[2]; + + /* Viewing vectors. */ + GLfloat eye[3]; + GLfloat up[3]; + GLfloat obj[3]; + + /* Projection parameters. */ + GLfloat viewNear; + GLfloat viewFar; + + /* Rendering callbacks. */ + void (*positionLights)(int view, void *context); + void (*drawView)(int view, void *context); + + /* Application specified callback data. */ + void *context; + +} OPENGL_DEPRECATED(10_0, 10_9); + +/* Library internal routines. */ +extern void __smapDrawSphereMapMeshSide(SphereMapMesh *mesh, int side) OPENGL_DEPRECATED(10_0, 10_9); +extern void __smapDrawSphereMapMeshBack(SphereMapMesh *mesh) OPENGL_DEPRECATED(10_0, 10_9); +extern void __smapValidateSphereMapMesh(SphereMapMesh *mesh) OPENGL_DEPRECATED(10_0, 10_9); + +#endif /* __glsmapint_h__ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/glut.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/glut.h" new file mode 100644 index 0000000..9cf1f17 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/glut.h" @@ -0,0 +1,649 @@ +#ifndef __glut_h__ +#define __glut_h__ + +/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */ + +/* This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. */ + +#if defined(_WIN32) + +/* GLUT 3.7 now tries to avoid including + to avoid name space pollution, but Win32's + needs APIENTRY and WINGDIAPI defined properly. */ +# if 0 +# define WIN32_LEAN_AND_MEAN +# include +# else + /* XXX This is from Win32's */ +# ifndef APIENTRY +# define GLUT_APIENTRY_DEFINED +# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) +# define APIENTRY __stdcall +# else +# define APIENTRY +# endif +# endif + /* XXX This is from Win32's */ +# ifndef CALLBACK +# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) +# define CALLBACK __stdcall +# else +# define CALLBACK +# endif +# endif + /* XXX This is from Win32's and */ +# ifndef WINGDIAPI +# define GLUT_WINGDIAPI_DEFINED +# define WINGDIAPI __declspec(dllimport) +# endif + /* XXX This is from Win32's */ +# ifndef _WCHAR_T_DEFINED +typedef unsigned short wchar_t; +# define _WCHAR_T_DEFINED +# endif +# endif + +#pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */ +#pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */ +#pragma comment (lib, "glu32.lib") /* link with OpenGL Utility lib */ +#pragma comment (lib, "glut32.lib") /* link with Win32 GLUT lib */ + +#pragma warning (disable:4244) /* Disable bogus conversion warnings. */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ + +#endif + +#if defined(__APPLE__) || defined(MACOSX) +#include +#include +#include +#else +#include +#include +#endif + +/* define APIENTRY and CALLBACK to null string if we aren't on Win32 */ +#if !defined(_WIN32) +#define APIENTRY +#define GLUT_APIENTRY_DEFINED +#define CALLBACK +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/** + GLUT API revision history: + + GLUT_API_VERSION is updated to reflect incompatible GLUT + API changes (interface changes, semantic changes, deletions, + or additions). + + GLUT_API_VERSION=1 First public release of GLUT. 11/29/94 + + GLUT_API_VERSION=2 Added support for OpenGL/GLX multisampling, + extension. Supports new input devices like tablet, dial and button + box, and Spaceball. Easy to query OpenGL extensions. + + GLUT_API_VERSION=3 glutMenuStatus added. + + GLUT_API_VERSION=4 glutInitDisplayString, glutWarpPointer, + glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic + video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc, + glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat, + glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!). + + GLUT_API_VERSION=5 glutGetProcAddress (added by BrianP) +**/ +#ifndef GLUT_API_VERSION /* allow this to be overriden */ +#define GLUT_API_VERSION 5 +#endif + +/** + GLUT implementation revision history: + + GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT + API revisions and implementation revisions (ie, bug fixes). + + GLUT_XLIB_IMPLEMENTATION=1 mjk's first public release of + GLUT Xlib-based implementation. 11/29/94 + + GLUT_XLIB_IMPLEMENTATION=2 mjk's second public release of + GLUT Xlib-based implementation providing GLUT version 2 + interfaces. + + GLUT_XLIB_IMPLEMENTATION=3 mjk's GLUT 2.2 images. 4/17/95 + + GLUT_XLIB_IMPLEMENTATION=4 mjk's GLUT 2.3 images. 6/?/95 + + GLUT_XLIB_IMPLEMENTATION=5 mjk's GLUT 3.0 images. 10/?/95 + + GLUT_XLIB_IMPLEMENTATION=7 mjk's GLUT 3.1+ with glutWarpPoitner. 7/24/96 + + GLUT_XLIB_IMPLEMENTATION=8 mjk's GLUT 3.1+ with glutWarpPoitner + and video resize. 1/3/97 + + GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines. + + GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release. + + GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling. + + GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support. + + GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface. + + GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa +**/ +#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overriden. */ +#define GLUT_XLIB_IMPLEMENTATION 15 +#endif + +/** + MacOS X GLUT implementation revision history: + + GLUT_MACOSX_IMPLEMENTATION is updated to reflect MacOS X + specific GLUT API revisions and implementation revisions + (ie, bug fixes). + + GLUT_MACOSX_IMPLEMENTATION=1 glutSurfaceTexture. + + GLUT_MACOSX_IMPLEMENTATION=2 glutWMCloseFunc, glutCheckLoop. + + GLUT_MACOSX_IMPLEMENTATION=3 GLUT_NO_RECOVERY. + + GLUT_MACOSX_IMPLEMENTATION=4 GLUT_3_2_CORE_PROFILE. + +**/ +#ifndef GLUT_MACOSX_IMPLEMENTATION /* Allow this to be overriden. */ +#define GLUT_MACOSX_IMPLEMENTATION 4 +#endif + +/* Display mode bit masks. */ +#define GLUT_RGB 0 +#define GLUT_RGBA GLUT_RGB +#define GLUT_INDEX 1 +#define GLUT_SINGLE 0 +#define GLUT_DOUBLE 2 +#define GLUT_ACCUM 4 +#define GLUT_ALPHA 8 +#define GLUT_DEPTH 16 +#define GLUT_STENCIL 32 +#if (GLUT_API_VERSION >= 2) +#define GLUT_MULTISAMPLE 128 +#define GLUT_STEREO 256 +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_LUMINANCE 512 +#endif +#if (GLUT_MACOSX_IMPLEMENTATION >= 3) +#define GLUT_NO_RECOVERY 1024 +#endif +#if (GLUT_MACOSX_IMPLEMENTATION >= 4) +#define GLUT_3_2_CORE_PROFILE 2048 +#endif + +/* Mouse buttons. */ +#define GLUT_LEFT_BUTTON 0 +#define GLUT_MIDDLE_BUTTON 1 +#define GLUT_RIGHT_BUTTON 2 + +/* Mouse button state. */ +#define GLUT_DOWN 0 +#define GLUT_UP 1 + +#if (GLUT_API_VERSION >= 2) +/* function keys */ +#define GLUT_KEY_F1 1 +#define GLUT_KEY_F2 2 +#define GLUT_KEY_F3 3 +#define GLUT_KEY_F4 4 +#define GLUT_KEY_F5 5 +#define GLUT_KEY_F6 6 +#define GLUT_KEY_F7 7 +#define GLUT_KEY_F8 8 +#define GLUT_KEY_F9 9 +#define GLUT_KEY_F10 10 +#define GLUT_KEY_F11 11 +#define GLUT_KEY_F12 12 +/* directional keys */ +#define GLUT_KEY_LEFT 100 +#define GLUT_KEY_UP 101 +#define GLUT_KEY_RIGHT 102 +#define GLUT_KEY_DOWN 103 +#define GLUT_KEY_PAGE_UP 104 +#define GLUT_KEY_PAGE_DOWN 105 +#define GLUT_KEY_HOME 106 +#define GLUT_KEY_END 107 +#define GLUT_KEY_INSERT 108 +#endif + +/* Entry/exit state. */ +#define GLUT_LEFT 0 +#define GLUT_ENTERED 1 + +/* Menu usage state. */ +#define GLUT_MENU_NOT_IN_USE 0 +#define GLUT_MENU_IN_USE 1 + +/* Visibility state. */ +#define GLUT_NOT_VISIBLE 0 +#define GLUT_VISIBLE 1 + +/* Window status state. */ +#define GLUT_HIDDEN 0 +#define GLUT_FULLY_RETAINED 1 +#define GLUT_PARTIALLY_RETAINED 2 +#define GLUT_FULLY_COVERED 3 + +/* Color index component selection values. */ +#define GLUT_RED 0 +#define GLUT_GREEN 1 +#define GLUT_BLUE 2 + +/* Layers for use. */ +#define GLUT_NORMAL 0 +#define GLUT_OVERLAY 1 + +#if defined(_WIN32) +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN ((void*)0) +#define GLUT_STROKE_MONO_ROMAN ((void*)1) + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 ((void*)2) +#define GLUT_BITMAP_8_BY_13 ((void*)3) +#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4) +#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 ((void*)6) +#define GLUT_BITMAP_HELVETICA_12 ((void*)7) +#define GLUT_BITMAP_HELVETICA_18 ((void*)8) +#endif +#else +/* Stroke font opaque addresses (use constants instead in source code). */ +extern void *glutStrokeRoman; +extern void *glutStrokeMonoRoman; + +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN (&glutStrokeRoman) +#define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman) + +/* Bitmap font opaque addresses (use constants instead in source code). */ +extern void *glutBitmap9By15; +extern void *glutBitmap8By13; +extern void *glutBitmapTimesRoman10; +extern void *glutBitmapTimesRoman24; +extern void *glutBitmapHelvetica10; +extern void *glutBitmapHelvetica12; +extern void *glutBitmapHelvetica18; + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15) +#define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13) +#define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10) +#define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10) +#define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12) +#define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18) +#endif +#endif + +/* glutGet parameters. */ +#define GLUT_WINDOW_X 100 +#define GLUT_WINDOW_Y 101 +#define GLUT_WINDOW_WIDTH 102 +#define GLUT_WINDOW_HEIGHT 103 +#define GLUT_WINDOW_BUFFER_SIZE 104 +#define GLUT_WINDOW_STENCIL_SIZE 105 +#define GLUT_WINDOW_DEPTH_SIZE 106 +#define GLUT_WINDOW_RED_SIZE 107 +#define GLUT_WINDOW_GREEN_SIZE 108 +#define GLUT_WINDOW_BLUE_SIZE 109 +#define GLUT_WINDOW_ALPHA_SIZE 110 +#define GLUT_WINDOW_ACCUM_RED_SIZE 111 +#define GLUT_WINDOW_ACCUM_GREEN_SIZE 112 +#define GLUT_WINDOW_ACCUM_BLUE_SIZE 113 +#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 114 +#define GLUT_WINDOW_DOUBLEBUFFER 115 +#define GLUT_WINDOW_RGBA 116 +#define GLUT_WINDOW_PARENT 117 +#define GLUT_WINDOW_NUM_CHILDREN 118 +#define GLUT_WINDOW_COLORMAP_SIZE 119 +#if (GLUT_API_VERSION >= 2) +#define GLUT_WINDOW_NUM_SAMPLES 120 +#define GLUT_WINDOW_STEREO 121 +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_WINDOW_CURSOR 122 +#endif +#define GLUT_SCREEN_WIDTH 200 +#define GLUT_SCREEN_HEIGHT 201 +#define GLUT_SCREEN_WIDTH_MM 202 +#define GLUT_SCREEN_HEIGHT_MM 203 +#define GLUT_MENU_NUM_ITEMS 300 +#define GLUT_DISPLAY_MODE_POSSIBLE 400 +#define GLUT_INIT_WINDOW_X 500 +#define GLUT_INIT_WINDOW_Y 501 +#define GLUT_INIT_WINDOW_WIDTH 502 +#define GLUT_INIT_WINDOW_HEIGHT 503 +#define GLUT_INIT_DISPLAY_MODE 504 +#if (GLUT_API_VERSION >= 2) +#define GLUT_ELAPSED_TIME 700 +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +#define GLUT_WINDOW_FORMAT_ID 123 +#endif + +#if (GLUT_API_VERSION >= 2) +/* glutDeviceGet parameters. */ +#define GLUT_HAS_KEYBOARD 600 +#define GLUT_HAS_MOUSE 601 +#define GLUT_HAS_SPACEBALL 602 +#define GLUT_HAS_DIAL_AND_BUTTON_BOX 603 +#define GLUT_HAS_TABLET 604 +#define GLUT_NUM_MOUSE_BUTTONS 605 +#define GLUT_NUM_SPACEBALL_BUTTONS 606 +#define GLUT_NUM_BUTTON_BOX_BUTTONS 607 +#define GLUT_NUM_DIALS 608 +#define GLUT_NUM_TABLET_BUTTONS 609 +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +#define GLUT_DEVICE_IGNORE_KEY_REPEAT 610 +#define GLUT_DEVICE_KEY_REPEAT 611 +#define GLUT_HAS_JOYSTICK 612 +#define GLUT_OWNS_JOYSTICK 613 +#define GLUT_JOYSTICK_BUTTONS 614 +#define GLUT_JOYSTICK_AXES 615 +#define GLUT_JOYSTICK_POLL_RATE 616 +#endif + +#if (GLUT_API_VERSION >= 3) +/* glutLayerGet parameters. */ +#define GLUT_OVERLAY_POSSIBLE 800 +#define GLUT_LAYER_IN_USE 801 +#define GLUT_HAS_OVERLAY 802 +#define GLUT_TRANSPARENT_INDEX 803 +#define GLUT_NORMAL_DAMAGED 804 +#define GLUT_OVERLAY_DAMAGED 805 + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* glutVideoResizeGet parameters. */ +#define GLUT_VIDEO_RESIZE_POSSIBLE 900 +#define GLUT_VIDEO_RESIZE_IN_USE 901 +#define GLUT_VIDEO_RESIZE_X_DELTA 902 +#define GLUT_VIDEO_RESIZE_Y_DELTA 903 +#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 904 +#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 905 +#define GLUT_VIDEO_RESIZE_X 906 +#define GLUT_VIDEO_RESIZE_Y 907 +#define GLUT_VIDEO_RESIZE_WIDTH 908 +#define GLUT_VIDEO_RESIZE_HEIGHT 909 +#endif + +/* glutUseLayer parameters. */ +#define GLUT_NORMAL 0 +#define GLUT_OVERLAY 1 + +/* glutGetModifiers return mask. */ +#define GLUT_ACTIVE_SHIFT 1 +#define GLUT_ACTIVE_CTRL 2 +#define GLUT_ACTIVE_ALT 4 + +/* glutSetCursor parameters. */ +/* Basic arrows. */ +#define GLUT_CURSOR_RIGHT_ARROW 0 +#define GLUT_CURSOR_LEFT_ARROW 1 +/* Symbolic cursor shapes. */ +#define GLUT_CURSOR_INFO 2 +#define GLUT_CURSOR_DESTROY 3 +#define GLUT_CURSOR_HELP 4 +#define GLUT_CURSOR_CYCLE 5 +#define GLUT_CURSOR_SPRAY 6 +#define GLUT_CURSOR_WAIT 7 +#define GLUT_CURSOR_TEXT 8 +#define GLUT_CURSOR_CROSSHAIR 9 +/* Directional cursors. */ +#define GLUT_CURSOR_UP_DOWN 10 +#define GLUT_CURSOR_LEFT_RIGHT 11 +/* Sizing cursors. */ +#define GLUT_CURSOR_TOP_SIDE 12 +#define GLUT_CURSOR_BOTTOM_SIDE 13 +#define GLUT_CURSOR_LEFT_SIDE 14 +#define GLUT_CURSOR_RIGHT_SIDE 15 +#define GLUT_CURSOR_TOP_LEFT_CORNER 16 +#define GLUT_CURSOR_TOP_RIGHT_CORNER 17 +#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18 +#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 19 +/* Inherit from parent window. */ +#define GLUT_CURSOR_INHERIT 100 +/* Blank cursor. */ +#define GLUT_CURSOR_NONE 101 +/* Fullscreen crosshair (if available). */ +#define GLUT_CURSOR_FULL_CROSSHAIR 102 +#endif + +/* GLUT initialization sub-API. */ +extern void APIENTRY glutInit(int *argcp, char **argv) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutInitDisplayMode(unsigned int mode) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutInitDisplayString(const char *string) OPENGL_DEPRECATED(10_0, 10_9); +#endif +extern void APIENTRY glutInitWindowPosition(int x, int y) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutInitWindowSize(int width, int height) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutMainLoop(void) OPENGL_DEPRECATED(10_0, 10_9); + +/* GLUT window sub-API. */ +extern int APIENTRY glutCreateWindow(const char *title) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutDestroyWindow(int win) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutPostRedisplay(void) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) +extern void APIENTRY glutPostWindowRedisplay(int win) OPENGL_DEPRECATED(10_0, 10_9); +#endif +extern void APIENTRY glutSwapBuffers(void) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutGetWindow(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSetWindow(int win) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSetWindowTitle(const char *title) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSetIconTitle(const char *title) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutPositionWindow(int x, int y) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutReshapeWindow(int width, int height) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutPopWindow(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutPushWindow(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutIconifyWindow(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutShowWindow(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutHideWindow(void) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 3) +extern void APIENTRY glutFullScreen(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSetCursor(int cursor) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutWarpPointer(int x, int y) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_MACOSX_IMPLEMENTATION >= 1) +/* surface texturing API OS X specific +* Note: +* glutSurfaceTexture has been deprecated, use GL_EXT_framebuffer_object +*/ +extern void APIENTRY glutSurfaceTexture (GLenum target, GLenum internalformat, int surfacewin) OPENGL_DEPRECATED(10_2, 10_5); +#endif +#if (GLUT_MACOSX_IMPLEMENTATION >= 2) +/* OS X specific API */ +extern void APIENTRY glutWMCloseFunc(void (*func)(void)) OPENGL_DEPRECATED(10_3, 10_9); +extern void APIENTRY glutCheckLoop(void) OPENGL_DEPRECATED(10_3, 10_9); +#endif +#endif + +/* GLUT overlay sub-API. */ +extern void APIENTRY glutEstablishOverlay(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutRemoveOverlay(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutUseLayer(GLenum layer) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutPostOverlayRedisplay(void) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) +extern void APIENTRY glutPostWindowOverlayRedisplay(int win) OPENGL_DEPRECATED(10_0, 10_9); +#endif +extern void APIENTRY glutShowOverlay(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutHideOverlay(void) OPENGL_DEPRECATED(10_0, 10_9); +#endif + +/* GLUT menu sub-API. */ +extern int APIENTRY glutCreateMenu(void (*)(int)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutDestroyMenu(int menu) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutGetMenu(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSetMenu(int menu) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutAddMenuEntry(const char *label, int value) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutAddSubMenu(const char *label, int submenu) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutRemoveMenuItem(int item) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutAttachMenu(int button) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutDetachMenu(int button) OPENGL_DEPRECATED(10_0, 10_9); + +/* GLUT window callback sub-API. */ +extern void APIENTRY glutDisplayFunc(void (*func)(void)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutReshapeFunc(void (*func)(int width, int height)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutKeyboardFunc(void (*func)(unsigned char key, int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutMouseFunc(void (*func)(int button, int state, int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutMotionFunc(void (*func)(int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutPassiveMotionFunc(void (*func)(int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutEntryFunc(void (*func)(int state)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutVisibilityFunc(void (*func)(int state)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutIdleFunc(void (*func)(void)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutTimerFunc(unsigned int millis, void (*func)(int value), int value) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutMenuStateFunc(void (*func)(int state)) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 2) +extern void APIENTRY glutSpecialFunc(void (*func)(int key, int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSpaceballMotionFunc(void (*func)(int x, int y, int z)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSpaceballRotateFunc(void (*func)(int x, int y, int z)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSpaceballButtonFunc(void (*func)(int button, int state)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutButtonBoxFunc(void (*func)(int button, int state)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutDialsFunc(void (*func)(int dial, int value)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutTabletMotionFunc(void (*func)(int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutTabletButtonFunc(void (*func)(int button, int state, int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 3) +extern void APIENTRY glutMenuStatusFunc(void (*func)(int status, int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutOverlayDisplayFunc(void (*func)(void)) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutWindowStatusFunc(void (*func)(int state)) OPENGL_DEPRECATED(10_0, 10_9); +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +extern void APIENTRY glutKeyboardUpFunc(void (*func)(unsigned char key, int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSpecialUpFunc(void (*func)(int key, int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutJoystickFunc(void (*func)(unsigned int buttonMask, int x, int y, int z), int pollInterval) OPENGL_DEPRECATED(10_0, 10_9); +#endif +#endif +#endif + +/* GLUT color index sub-API. */ +extern void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue) OPENGL_DEPRECATED(10_0, 10_9); +extern GLfloat APIENTRY glutGetColor(int ndx, int component) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutCopyColormap(int win) OPENGL_DEPRECATED(10_0, 10_9); + +/* GLUT state retrieval sub-API. */ +extern int APIENTRY glutGet(GLenum type) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutDeviceGet(GLenum type) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 2) +/* GLUT extension support sub-API */ +extern int APIENTRY glutExtensionSupported(const char *name) OPENGL_DEPRECATED(10_0, 10_9); +#endif +#if (GLUT_API_VERSION >= 3) +extern int APIENTRY glutGetModifiers(void) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutLayerGet(GLenum type) OPENGL_DEPRECATED(10_0, 10_9); +#endif +#if (GLUT_API_VERSION >= 5) +extern void * APIENTRY glutGetProcAddress(const char *procName) OPENGL_DEPRECATED(10_3, 10_9); +#endif + +/* GLUT font sub-API */ +extern void APIENTRY glutBitmapCharacter(void *font, int character) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutBitmapWidth(void *font, int character) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutStrokeCharacter(void *font, int character) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutStrokeWidth(void *font, int character) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern int APIENTRY glutBitmapLength(void *font, const unsigned char *string) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutStrokeLength(void *font, const unsigned char *string) OPENGL_DEPRECATED(10_0, 10_9); +#endif + +/* GLUT pre-built models sub-API */ +extern void APIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireCube(GLdouble size) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidCube(GLdouble size) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireDodecahedron(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidDodecahedron(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireTeapot(GLdouble size) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidTeapot(GLdouble size) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireOctahedron(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidOctahedron(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireTetrahedron(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidTetrahedron(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireIcosahedron(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidIcosahedron(void) OPENGL_DEPRECATED(10_0, 10_9); + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* GLUT video resize sub-API. */ +extern int APIENTRY glutVideoResizeGet(GLenum param) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSetupVideoResizing(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutStopVideoResizing(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutVideoResize(int x, int y, int width, int height) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutVideoPan(int x, int y, int width, int height) OPENGL_DEPRECATED(10_0, 10_9); + +/* GLUT debugging sub-API. */ +extern void APIENTRY glutReportErrors(void) OPENGL_DEPRECATED(10_0, 10_9); +#endif + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +/* GLUT device control sub-API. */ +/* glutSetKeyRepeat modes. */ +#define GLUT_KEY_REPEAT_OFF 0 +#define GLUT_KEY_REPEAT_ON 1 +#define GLUT_KEY_REPEAT_DEFAULT 2 + +/* Joystick button masks. */ +#define GLUT_JOYSTICK_BUTTON_A 1 +#define GLUT_JOYSTICK_BUTTON_B 2 +#define GLUT_JOYSTICK_BUTTON_C 4 +#define GLUT_JOYSTICK_BUTTON_D 8 + +extern void APIENTRY glutIgnoreKeyRepeat(int ignore) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSetKeyRepeat(int repeatMode) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutForceJoystickFunc(void) OPENGL_DEPRECATED(10_0, 10_9); + +/* GLUT game mode sub-API. */ +/* glutGameModeGet. */ +#define GLUT_GAME_MODE_ACTIVE 0 +#define GLUT_GAME_MODE_POSSIBLE 1 +#define GLUT_GAME_MODE_WIDTH 2 +#define GLUT_GAME_MODE_HEIGHT 3 +#define GLUT_GAME_MODE_PIXEL_DEPTH 4 +#define GLUT_GAME_MODE_REFRESH_RATE 5 +#define GLUT_GAME_MODE_DISPLAY_CHANGED 6 + +extern void APIENTRY glutGameModeString(const char *string) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutEnterGameMode(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutLeaveGameMode(void) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutGameModeGet(GLenum mode) OPENGL_DEPRECATED(10_0, 10_9); +#endif + +#ifdef __cplusplus +} + +#endif + +#ifdef GLUT_APIENTRY_DEFINED +# undef GLUT_APIENTRY_DEFINED +# undef APIENTRY +#endif + +#ifdef GLUT_WINGDIAPI_DEFINED +# undef GLUT_WINGDIAPI_DEFINED +# undef WINGDIAPI +#endif + +#endif /* __glut_h__ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/glutbitmap.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/glutbitmap.h" new file mode 100644 index 0000000..08c39ed --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/glutbitmap.h" @@ -0,0 +1,30 @@ +#ifndef __glutbitmap_h__ +#define __glutbitmap_h__ + +/* Copyright (c) Mark J. Kilgard, 1994. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#include "glut.h" + +typedef struct { + const GLsizei width; + const GLsizei height; + const GLfloat xorig; + const GLfloat yorig; + const GLfloat advance; + const GLubyte *bitmap; +} BitmapCharRec OPENGL_DEPRECATED(10_0, 10_9), *BitmapCharPtr OPENGL_DEPRECATED(10_0, 10_9); + +typedef struct { + const char *name; + const int num_chars; + const int first; + const BitmapCharRec * const *ch; +} BitmapFontRec OPENGL_DEPRECATED(10_0, 10_9), *BitmapFontPtr OPENGL_DEPRECATED(10_0, 10_9); + +typedef void *GLUTbitmapFont OPENGL_DEPRECATED(10_0, 10_9); + +#endif /* __glutbitmap_h__ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/glutf90.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/glutf90.h" new file mode 100644 index 0000000..f9211c3 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/glutf90.h" @@ -0,0 +1,90 @@ +#ifndef __glutf90_h__ +#define __glutf90_h__ + +/* Copyright (c) Mark J. Kilgard & Willam F. Mitchell, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +/* This header provides the binding interface for William Mitchell's + f90gl Fortran 90 GLUT binding. Other GLUT language bindings + can and should use this interace. */ + +/* I appreciate the guidance from William Mitchell + (mitchell@cam.nist.gov) in developing this friend interface + for use by the f90gl package. See ../../README.fortran */ + +#include + +#ifndef GLUTCALLBACK + #define GLUTCALLBACK +#endif +#ifndef APIENTRY + #define APIENTRY +#endif + +/* Which callback enumerants for the __glutSetFCB/__glutGetFCB routines. */ +/* NOTE These values are part of a binary interface for the f90gl Fortran + 90 binding and so must NOT changes (additions are allowed). */ + +/* GLUTwindow callbacks. */ +#define GLUT_FCB_DISPLAY 0 /* GLUTdisplayFCB */ +#define GLUT_FCB_RESHAPE 1 /* GLUTreshapeFCB */ +#define GLUT_FCB_MOUSE 2 /* GLUTmouseFCB */ +#define GLUT_FCB_MOTION 3 /* GLUTmotionFCB */ +#define GLUT_FCB_PASSIVE 4 /* GLUTpassiveFCB */ +#define GLUT_FCB_ENTRY 5 /* GLUTentryFCB */ +#define GLUT_FCB_KEYBOARD 6 /* GLUTkeyboardFCB */ +#define GLUT_FCB_KEYBOARD_UP 7 /* GLUTkeyboardFCB */ +#define GLUT_FCB_WINDOW_STATUS 8 /* GLUTwindowStatusFCB */ +#define GLUT_FCB_VISIBILITY 9 /* GLUTvisibilityFCB */ +#define GLUT_FCB_SPECIAL 10 /* GLUTspecialFCB */ +#define GLUT_FCB_SPECIAL_UP 11 /* GLUTspecialFCB */ +#define GLUT_FCB_BUTTON_BOX 12 /* GLUTbuttonBoxFCB */ +#define GLUT_FCB_DIALS 13 /* GLUTdialsFCB */ +#define GLUT_FCB_SPACE_MOTION 14 /* GLUTspaceMotionFCB */ +#define GLUT_FCB_SPACE_ROTATE 15 /* GLUTspaceRotateFCB */ +#define GLUT_FCB_SPACE_BUTTON 16 /* GLUTspaceButtonFCB */ +#define GLUT_FCB_TABLET_MOTION 17 /* GLUTtabletMotionFCB */ +#define GLUT_FCB_TABLET_BUTTON 18 /* GLUTtabletButtonFCB */ +#define GLUT_FCB_JOYSTICK 19 /* GLUTjoystickFCB */ +#define GLUT_FCB_WMCLOSE 20 /* GLUTwmcloseFCB */ +/* Non-GLUTwindow callbacks. */ +#define GLUT_FCB_OVERLAY_DISPLAY 100 /* GLUTdisplayFCB */ +#define GLUT_FCB_SELECT 101 /* GLUTselectFCB */ +#define GLUT_FCB_TIMER 102 /* GLUTtimerFCB */ + +/* GLUT Fortran callback function types. */ +typedef void (GLUTCALLBACK *GLUTdisplayFCB) (void) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTwmcloseFCB) (void) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTreshapeFCB) (int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +/* NOTE the pressed key is int, not unsigned char for Fortran! */ +typedef void (GLUTCALLBACK *GLUTkeyboardFCB) (int *, int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTmouseFCB) (int *, int *, int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTmotionFCB) (int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTpassiveFCB) (int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTentryFCB) (int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTwindowStatusFCB) (int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTvisibilityFCB) (int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTspecialFCB) (int *, int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTbuttonBoxFCB) (int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTdialsFCB) (int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTspaceMotionFCB) (int *, int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTspaceRotateFCB) (int *, int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTspaceButtonFCB) (int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTtabletMotionFCB) (int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTtabletButtonFCB) (int *, int *, int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTjoystickFCB) (unsigned int *buttonMask, int *x, int *y, int *z) OPENGL_DEPRECATED(10_0, 10_9); + +typedef void (GLUTCALLBACK *GLUTselectFCB) (int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTtimerFCB) (int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTmenuStateFCB) (int *) OPENGL_DEPRECATED(10_0, 10_9); /* DEPRECATED. */ +typedef void (GLUTCALLBACK *GLUTmenuStatusFCB) (int *, int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTidleFCB) (void) OPENGL_DEPRECATED(10_0, 10_9); + +/* Functions that set and return Fortran callback functions. */ +extern void* APIENTRY __glutGetFCB(int which) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY __glutSetFCB(int which, void *func) OPENGL_DEPRECATED(10_0, 10_9); + +#endif /* __glutf90_h__ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/glutstroke.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/glutstroke.h" new file mode 100644 index 0000000..80cfe0d --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/glutstroke.h" @@ -0,0 +1,44 @@ +#ifndef __glutstroke_h__ +#define __glutstroke_h__ + +#include + +/* Copyright (c) Mark J. Kilgard, 1994. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#if defined(_WIN32) +#pragma warning (disable:4244) /* disable bogus conversion warnings */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ +#endif + +typedef struct { + float x; + float y; +} CoordRec OPENGL_DEPRECATED(10_0, 10_9), *CoordPtr OPENGL_DEPRECATED(10_0, 10_9); + +typedef struct { + int num_coords; + const CoordRec *coord; +} StrokeRec OPENGL_DEPRECATED(10_0, 10_9), *StrokePtr OPENGL_DEPRECATED(10_0, 10_9); + +typedef struct { + int num_strokes; + const StrokeRec *stroke; + float center; + float right; +} StrokeCharRec OPENGL_DEPRECATED(10_0, 10_9), *StrokeCharPtr OPENGL_DEPRECATED(10_0, 10_9); + +typedef struct { + const char *name; + int num_chars; + const StrokeCharRec *ch; + float top; + float bottom; +} StrokeFontRec OPENGL_DEPRECATED(10_0, 10_9), *StrokeFontPtr OPENGL_DEPRECATED(10_0, 10_9); + +typedef void *GLUTstrokeFont OPENGL_DEPRECATED(10_0, 10_9); + +#endif /* __glutstroke_h__ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/gutil.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/gutil.h" new file mode 100644 index 0000000..02dd936 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/gutil.h" @@ -0,0 +1,91 @@ + +/* + * gutil.h + * + * FUNCTION: + * Provide utilities that allow rotation to occur + * around any axis. + * + * HISTORY: + * created by Linas Vepstas 1990 + * added single & double precision, June 1991, Linas Vepstas + */ + +#ifndef __GUTIL_H__ +#define __GUTIL_H__ + +#include + +#ifdef __GUTIL_DOUBLE +#define gutDouble double +#else +#define gutDouble float +#endif + + +#ifdef _NO_PROTO /* NO ANSI C PROTOTYPING */ + +/* Rotation Utilities */ +extern void rot_axis_f () OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_about_axis_f () OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_omega_f () OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_axis_f () OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_about_axis_f () OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_omega_f () OPENGL_DEPRECATED(10_0, 10_9); + +/* double-precision versions */ +extern void rot_axis_d () OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_about_axis_d () OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_omega_d () OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_axis_d () OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_about_axis_d () OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_omega_d () OPENGL_DEPRECATED(10_0, 10_9); + +/* viewpoint functions */ +extern void uview_direction_d () OPENGL_DEPRECATED(10_0, 10_9); +extern void uview_direction_f () OPENGL_DEPRECATED(10_0, 10_9); +extern void uviewpoint_d () OPENGL_DEPRECATED(10_0, 10_9); +extern void uviewpoint_f () OPENGL_DEPRECATED(10_0, 10_9); + +#else /* _NO_PROTO */ /* ANSI C PROTOTYPING */ + +/* Rotation Utilities */ +extern void rot_axis_f (float omega, float axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_about_axis_f (float angle, float axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_omega_f (float axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_axis_f (float m[4][4], float omega, float axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_about_axis_f (float m[4][4], float angle, float axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_omega_f (float m[4][4], float axis[3]) OPENGL_DEPRECATED(10_0, 10_9); + +/* double-precision versions */ +extern void rot_axis_d (double omega, double axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_about_axis_d (double angle, double axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_omega_d (double axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_axis_d (double m[4][4], double omega, double axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_about_axis_d (double m[4][4], double angle, double axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_omega_d (double m[4][4], double axis[3]) OPENGL_DEPRECATED(10_0, 10_9); + +/* viewpoint functions */ +extern void uview_direction_d (double m[4][4], /* returned */ + double v21[3], /* input */ + double up[3]) OPENGL_DEPRECATED(10_0, 10_9); /* input */ + +extern void uview_direction_f (float m[4][4], /* returned */ + float v21[3], /* input */ + float up[3]) OPENGL_DEPRECATED(10_0, 10_9); /* input */ + +extern void uviewpoint_d (double m[4][4], /* returned */ + double v1[3], /* input */ + double v2[3], /* input */ + double up[3]) OPENGL_DEPRECATED(10_0, 10_9); /* input */ + +extern void uviewpoint_f (float m[4][4], /* returned */ + float v1[3], /* input */ + float v2[3], /* input */ + float up[3]) OPENGL_DEPRECATED(10_0, 10_9); /* input */ + +#endif /* _NO_PROTO */ + +#endif /* _GUTIL_H__ */ + +/* ------------------- end of file ---------------------- */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/intersect.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/intersect.h" new file mode 100644 index 0000000..b6b2433 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/intersect.h" @@ -0,0 +1,391 @@ +/* + * FUNCTION: + * This file contains a number of utilities useful to 3D graphics in + * general, and to the generation of tubing and extrusions in particular + * + * HISTORY: + * Written by Linas Vepstas, August 1991 + * Updated to correctly handle degenerate cases, Linas, February 1993 + */ + +#include +#include "port.h" +#include "vvector.h" + +#define BACKWARDS_INTERSECT (2) + +/* ========================================================== */ +/* + * the Degenerate_Tolerance token represents the greatest amount by + * which different scales in a graphics environment can differ before + * they should be considered "degenerate". That is, when one vector is + * a million times longer than another, changces are that the second will + * be less than a pixel int, and therefore was probably meant to be + * degenerate (by the CAD package, etc.) But what should this tolerance + * be? At least 1 in onethousand (since screen sizes are 1K pixels), but + * les than 1 in 4 million (since this is the limit of single-precision + * floating point accuracy). Of course, if double precision were used, + * then the tolerance could be increased. + * + * Potentially, this naive assumption could cause problems if the CAD + * package attempts to zoom in on small details, and turns out, certain + * points should not hvae been degenerate. The problem presented here + * is that the tolerance could run out before single-precision ran + * out, and so the CAD packages would perceive this as a "bug". + * One alternative is to fiddle around & try to tighten the tolerance. + * However, the right alternative is to code the graphics pipeline in + * double-precision (and tighten the tolerance). + * + * By the way, note that Degernate Tolerance is a "dimensionless" + * quantitiy -- it has no units -- it does not measure feet, inches, + * millimeters or pixels. It is used only in the computations of ratios + * and relative lengths. + */ + +/* + * Right now, the tolerance is set to 2 parts in a million, which + * corresponds to a 19-bit distinction of mantissas. Note that + * single-precsion numbers have 24 bit mantissas. + */ + +#define DEGENERATE_TOLERANCE (0.000002) + +/* ========================================================== */ +/* + * The macro and subroutine INTERSECT are designed to compute the + * intersection of a line (defined by the points v1 and v2) and a plane + * (defined as plane which is normal to the vector n, and contains the + * point p). Both return the point sect, which is the point of + * interesection. + * + * This MACRO attemps to be fairly robust by checking for a divide by + * zero. + */ + +/* ========================================================== */ +/* + * HACK ALERT + * The intersection parameter t has the nice property that if t>1, + * then the intersection is "in front of" p1, and if t<0, then the + * intersection is "behind" p2. Unfortunately, as the intersecting plane + * and the line become parallel, t wraps through infinity -- i.e. t can + * become so large that t becomes "greater than infinity" and comes back + * as a negative number (i.e. winding number hopped by one unit). We + * have no way of detecting this situation without adding gazzillions + * of lines of code of topological algebra to detect the winding number; + * and this would be incredibly difficult, and ruin performance. + * + * Thus, we've installed a cheap hack for use by the "cut style" drawing + * routines. If t proves to be a large negative number (more negative + * than -5), then we assume that t was positive and wound through + * infinity. This makes most cuts look good, without introducing bogus + * cuts at infinity. + */ +/* ========================================================== */ + +#define INTERSECT(sect,p,n,v1,v2) \ +{ \ + gleDouble deno, numer, t, omt; \ + \ + deno = (v1[0] - v2[0]) * n[0]; \ + deno += (v1[1] - v2[1]) * n[1]; \ + deno += (v1[2] - v2[2]) * n[2]; \ + \ + if (deno == 0.0) { \ + VEC_COPY (n, v1); \ + /* printf ("Intersect: Warning: line is coplanar with plane \n"); */ \ + } else { \ + \ + numer = (p[0] - v2[0]) * n[0]; \ + numer += (p[1] - v2[1]) * n[1]; \ + numer += (p[2] - v2[2]) * n[2]; \ + \ + t = numer / deno; \ + omt = 1.0 - t; \ + \ + sect[0] = t * v1[0] + omt * v2[0]; \ + sect[1] = t * v1[1] + omt * v2[1]; \ + sect[2] = t * v1[2] + omt * v2[2]; \ + } \ +} + +/* ========================================================== */ +/* + * The macro and subroutine BISECTING_PLANE compute a normal vector that + * describes the bisecting plane between three points (v1, v2 and v3). + * This bisecting plane has the following properties: + * 1) it contains the point v2 + * 2) the angle it makes with v21 == v2 - v1 is equal to the angle it + * makes with v32 == v3 - v2 + * 3) it is perpendicular to the plane defined by v1, v2, v3. + * + * Having input v1, v2, and v3, it returns a unit vector n. + * + * In some cases, the user may specify degenerate points, and still + * expect "reasonable" or "obvious" behaviour. The "expected" + * behaviour for these degenerate cases is: + * + * 1) if v1 == v2 == v3, then return n=0 + * 2) if v1 == v2, then return v32 (normalized). + * 3) if v2 == v3, then return v21 (normalized). + * 4) if v1, v2 and v3 co-linear, then return v21 (normalized). + * + * Mathematically, these special cases "make sense" -- we just have to + * code around potential divide-by-zero's in the code below. + */ + +/* ========================================================== */ + +#define BISECTING_PLANE(valid,n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double vdot; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 <= DEGENERATE_TOLERANCE * len32) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as bisector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + valid = TRUE; \ + } \ + \ + } else { \ + \ + valid = TRUE; \ + \ + if (len32 <= DEGENERATE_TOLERANCE * len21) { \ + /* return a normalized copy of v21 as bisector */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (n, len21, v21); \ + \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DOT_PRODUCT (vdot, v32, v21); \ + \ + /* if vdot == 1 or -1, then points are colinear */ \ + if ((vdot >= (1.0-DEGENERATE_TOLERANCE)) || \ + (vdot <= (-1.0+DEGENERATE_TOLERANCE))) { \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* go do the full computation */ \ + n[0] = vdot * (v32[0] + v21[0]) - v32[0] - v21[0]; \ + n[1] = vdot * (v32[1] + v21[1]) - v32[1] - v21[1]; \ + n[2] = vdot * (v32[2] + v21[2]) - v32[2] - v21[2]; \ + \ + /* if above if-test's passed, \ + * n should NEVER be of zero length */ \ + VEC_NORMALIZE (n); \ + } \ + } \ + } \ +} + +/* ========================================================== */ +/* + * The block of code below is ifdef'd out, and is here for reference + * purposes only. It performs the "mathematically right thing" for + * computing a bisecting plane, but is, unfortunately, subject ot noise + * in the presence of near degenerate points. Since computer graphics, + * due to sloppy coding, laziness, or correctness, is filled with + * degenerate points, we can't really use this version. The code above + * is far more appropriate for graphics. + */ + +#ifdef MATHEMATICALLY_EXACT_GRAPHICALLY_A_KILLER +#define BISECTING_PLANE(n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double vdot; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 == 0.0) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as bisector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + } \ + \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + if (len32 == 0.0) { \ + /* return a normalized copy of v21 as bisector */ \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DOT_PRODUCT (vdot, v32, v21); \ + \ + /* if vdot == 1 or -1, then points are colinear */ \ + if ((vdot == 1.0) || (vdot == -1.0)) { \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* go do the full computation */ \ + n[0] = vdot * (v32[0] + v21[0]) - v32[0] - v21[0]; \ + n[1] = vdot * (v32[1] + v21[1]) - v32[1] - v21[1]; \ + n[2] = vdot * (v32[2] + v21[2]) - v32[2] - v21[2]; \ + \ + /* if above if-test's passed, \ + * n should NEVER be of zero length */ \ + VEC_NORMALIZE (n); \ + } \ + } \ + } \ +} +#endif + +/* ========================================================== */ +/* + * This macro computes the plane perpendicular to the the plane + * defined by three points, and whose normal vector is givven as the + * difference between the two vectors ... + * + * (See way below for the "math" model if you want to understand this. + * The comments about relative errors above apply here.) + */ + +#define CUTTING_PLANE(valid,n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double lendiff; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 <= DEGENERATE_TOLERANCE * len32) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as cut-vector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + valid = TRUE; \ + } \ + \ + } else { \ + \ + valid = TRUE; \ + \ + if (len32 <= DEGENERATE_TOLERANCE * len21) { \ + /* return a normalized copy of v21 as cut vector */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (n, len21, v21); \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DIFF (n, v21, v32); \ + VEC_LENGTH (lendiff, n); \ + \ + /* if the perp vector is very small, then the two \ + * vectors are darn near collinear, and the cut \ + * vector is probably poorly defined. */ \ + if (lendiff < DEGENERATE_TOLERANCE) { \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + lendiff = 1.0 / lendiff; \ + VEC_SCALE (n, lendiff, n); \ + } \ + } \ + } \ +} + +/* ========================================================== */ + +#ifdef MATHEMATICALLY_EXACT_GRAPHICALLY_A_KILLER +#define CUTTING_PLANE(n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_NORMALIZE (v21); \ + VEC_NORMALIZE (v32); \ + \ + VEC_DIFF (n, v21, v32); \ + VEC_NORMALIZE (n); \ +} +#endif + + +/* ============================================================ */ +/* This macro is used in several places to cycle through a series of + * points to find the next non-degenerate point in a series */ + +#define FIND_NON_DEGENERATE_POINT(inext,npoints,len,diff,point_array) \ +{ \ + gleDouble slen; \ + gleDouble summa[3]; \ + \ + do { \ + /* get distance to next point */ \ + VEC_DIFF (diff, point_array[inext+1], point_array[inext]); \ + VEC_LENGTH (len, diff); \ + VEC_SUM (summa, point_array[inext+1], point_array[inext]); \ + VEC_LENGTH (slen, summa); \ + slen *= DEGENERATE_TOLERANCE; \ + inext ++; \ + } while ((len <= slen) && (inext < npoints-1)); \ +} + +/* ========================================================== */ + +extern int bisecting_plane (gleDouble n[3], /* returned */ + gleDouble v1[3], /* input */ + gleDouble v2[3], /* input */ + gleDouble v3[3]) OPENGL_DEPRECATED(10_0, 10_9); /* input */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/port.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/port.h" new file mode 100644 index 0000000..2827bbf --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/port.h" @@ -0,0 +1,298 @@ + +/* + * port.h + * + * FUNCTION: + * This file contains defines for porting the tubing toolkit from GL to + * OpenGL to some callback scheme. + * + * HISTORY: + * Created by Linas Vepstas -- February 1993 + * Added auto texture coord generation hacks, Linas April 1994 + */ + +#ifndef __GLE_PORT_H__ +#define __GLE_PORT_H__ + + +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +/* ====================================================== */ +/* Some compilers can't handle multiply-subscripted array's */ + +#ifdef FUNKY_C +typedef gleDouble gleVector; +#define AVAL(arr,n,i,j) arr(6*n+3*i+j) +#define VVAL(arr,n,i) arr(3*n+i) + +#else /* FUNKY_C */ +typedef double gleVector[3]; +typedef double glePoint[2]; +#define AVAL(arr,n,i,j) arr[n][i][j] +#define VVAL(arr,n,i) arr[n][i]; + +#endif /* FUNKY_C */ + +/* ====================================================== */ +/* These are used to convey info about topography to the + * texture mapping routines */ + +#define FRONT 1 +#define BACK 2 +#define FRONT_CAP 3 +#define BACK_CAP 4 +#define FILLET 5 + +/* ====================================================== */ + +#define __GLE_DOUBLE + +/* ====================================================== */ + +#ifdef __GLE_DOUBLE +#ifndef gleDouble + #define gleDouble double +#endif +#define urot_axis(a,b,c) urot_axis_d(a,b,c) +#define uview_direction(a,b,c) uview_direction_d(a,b,c) +#define uviewpoint(a,b,c,d) uviewpoint_d(a,b,c,d) +#define MULTMATRIX(m) MULTMATRIX_D(m) +#define LOADMATRIX(m) LOADMATRIX_D(m) +#define V3F(x,j,id) V3F_D(x,j,id) +#define N3F(x) N3F_D(x) +#define T2F(x,y) T2F_D(x,y) +#else +#define gleDouble float +#define urot_axis(a,b,c) urot_axis_f(a,b,c) +#define uview_direction(a,b,c) uview_direction_f(a,b,c) +#define uviewpoint(a,b,c,d) uviewpoint_f(a,b,c,d) +#define MULTMATRIX(m) MULTMATRIX_F(m) +#define LOADMATRIX(m) LOADMATRIX_F(m) +#define V3F(x,j,id) V3F_F(x,j,id) +#define N3F(x) N3F_F(x) +#define T2F(x,y) T2F_F(x,y) +#endif + +/* ====================================================== */ + +#if (defined DEBUG_GL_32 || DEBUG_OPENGL_10) +#undef GL_32 +#undef OPENGL_10 + +#define BGNTMESH(i,len) printf ("bgntmesh() \n"); +#define ENDTMESH() printf ("endtmesh() \n"); +#define BGNPOLYGON() printf ("bgnpolygon() \n"); +#define ENDPOLYGON() printf ("endpolygon() \n"); +#define V3F_F(x,j,id) printf ("v3f(x) %f %f %f \n", x[0], x[1], x[2]); +#define V3F_D(x,j,id) printf ("v3d(x) %f %f %f \n", x[0], x[1], x[2]); +#define N3F_F(x) printf ("n3f(x) %f %f %f \n", x[0], x[1], x[2]); +#define N3F_D(x) printf ("n3d(x) %f %f %f \n", x[0], x[1], x[2]); +#define C3F(x) printf ("c3f(x) %f %f %f \n", x[0], x[1], x[2]); + +#define POPMATRIX() printf ("popmatrix () \n"); +#define PUSHMATRIX() printf ("pushmatrix() \n"); +#define MULTMATRIX_F(x) MULTMATRIX_D(x) +#define LOADMATRIX_F(x) LOADMATRIX_D(x) + + +#define LOADMATRIX_D(x) { \ + int i, j; \ + printf ("loadmatrix (x) \n"); \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ( "%f ", x[i][j]); \ + } \ + printf (" \n"); \ + } \ +} + +#define MULTMATRIX_D(x) { \ + int i, j; \ + printf ("multmatrix (x) \n"); \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ( "%f ", x[i][j]); \ + } \ + printf (" \n"); \ + } \ +} + +#define __IS_LIGHTING_ON (1) + +#endif + +/* ====================================================== */ + +#ifdef GL_32 + +#include + +#define BGNTMESH(i,len) bgntmesh() +#define ENDTMESH() endtmesh() +#define BGNPOLYGON() bgnpolygon() +#define ENDPOLYGON() endpolygon() +#define V3F_F(x,j,id) v3f(x) +#define V3F_D(x,j,id) v3d(x) +#define N3F_F(x) n3f(x) +#define T2F_F(x,y) +#define T2F_D(x,y) +#define C3F(x) c3f(x) + +#define POPMATRIX() popmatrix () +#define PUSHMATRIX() pushmatrix() +#define MULTMATRIX_F(x) multmatrix (x) +#define LOADMATRIX_F(x) loadmatrix (x) + +#define N3F_D(x) { \ + float nnn[3]; \ + nnn[0] = (float) x[0]; \ + nnn[1] = (float) x[1]; \ + nnn[2] = (float) x[2]; \ + n3f (nnn); \ +} + +#define LOADMATRIX_D(x) { \ + int i, j; \ + float mmm[4][4]; \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + mmm[i][j] = (float) x[i][j]; \ + } \ + } \ + loadmatrix(mmm); \ +} + +#define MULTMATRIX_D(x) { \ + int i, j; \ + float mmm[4][4]; \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + mmm[i][j] = (float) x[i][j]; \ + } \ + } \ + multmatrix(mmm); \ +} + +/* #define __IS_LIGHTING_ON (MSINGLE == getmmode()) */ +#define __IS_LIGHTING_ON (extrusion_join_style & TUBE_LIGHTING_ON) + +#endif /* GL_32 */ + +/* ====================================================== */ +#ifdef OPENGL_10 + +#if defined(_WIN32) +#include +#pragma warning (disable:4244) /* disable bogus conversion warnings */ +#endif +#include +#include + +/* +#define N3F_F(x) { \ + float nnn[3]; \ + nnn[0] = - (float) x[0]; \ + nnn[1] = - (float) x[1]; \ + nnn[2] = - (float) x[2]; \ + glNormal3fv (nnn); \ +} +#define N3F_D(x) { \ + float nnn[3]; \ + nnn[0] = - (float) x[0]; \ + nnn[1] = - (float) x[1]; \ + nnn[2] = - (float) x[2]; \ + glNormal3fv (nnn); \ +} +*/ + +#define C3F(x) glColor3fv(x) +#define T2F_F(x,y) glTexCoord2f(x,y) +#define T2F_D(x,y) glTexCoord2d(x,y) + +#define POPMATRIX() glPopMatrix() +#define PUSHMATRIX() glPushMatrix() + +#define MULTMATRIX_F(x) glMultMatrixf ((const GLfloat *)x) +#define LOADMATRIX_F(x) glLoadMatrixf ((const GLfloat *)x) + +#define MULTMATRIX_D(x) glMultMatrixd ((const GLdouble *)x) +#define LOADMATRIX_D(x) glLoadMatrixd ((const GLdouble *)x) + +#define __IS_LIGHTING_ON (glIsEnabled(GL_LIGHTING)) + +/* ====================================================== */ +#ifdef AUTO_TEXTURE + +#define BGNTMESH(i,len) { \ + if(_gle_gc -> bgn_gen_texture) (*(_gle_gc -> bgn_gen_texture))(i,len);\ + glBegin (GL_TRIANGLE_STRIP); \ +} + +#define BGNPOLYGON() { \ + if(_gle_gc -> bgn_gen_texture) (*(_gle_gc -> bgn_gen_texture))();\ + glBegin (GL_POLYGON); \ +} + +#define N3F_F(x) { \ + if(_gle_gc -> n3f_gen_texture) (*(_gle_gc -> n3f_gen_texture))(x); \ + glNormal3fv(x); \ +} + +#define N3F_D(x) { \ + if(_gle_gc -> n3d_gen_texture) (*(_gle_gc -> n3d_gen_texture))(x); \ + glNormal3dv(x); \ +} + +#define V3F_F(x,j,id) { \ + if(_gle_gc -> v3f_gen_texture) (*(_gle_gc -> v3f_gen_texture))(x,j,id);\ + glVertex3fv(x); \ +} + +#define V3F_D(x,j,id) { \ + if(_gle_gc -> v3d_gen_texture) (*(_gle_gc -> v3d_gen_texture))(x,j,id); \ + glVertex3dv(x); \ +} + +#define ENDTMESH() { \ + if(_gle_gc -> end_gen_texture) (*(_gle_gc -> end_gen_texture))(); \ + glEnd (); \ +} + +#define ENDPOLYGON() { \ + if(_gle_gc -> end_gen_texture) (*(_gle_gc -> end_gen_texture))(); \ + glEnd (); \ +} + +/* ====================================================== */ +#else /* AUTO_TEXTURE */ + +#define BGNTMESH(i,len) glBegin (GL_TRIANGLE_STRIP); +#define BGNPOLYGON() glBegin (GL_POLYGON); + +#define N3F_F(x) glNormal3fv(x) +#define N3F_D(x) glNormal3dv(x) +#define V3F_F(x,j,id) glVertex3fv(x); +#define V3F_D(x,j,id) glVertex3dv(x); + +#define ENDTMESH() glEnd () +#define ENDPOLYGON() glEnd() + +#endif /* AUTO_TEXTURE */ + +#endif /* OPENGL_10 */ + +/* ====================================================== */ + + +#endif /* __GLE_PORT_H__ */ +/* ================== END OF FILE ======================= */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/rot.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/rot.h" new file mode 100644 index 0000000..91083e9 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/rot.h" @@ -0,0 +1,98 @@ + +/* + * rot.h + * + * FUNCTION: + * rotation matrix utilities + * + * HISTORY: + * Linas Vepstas Aug 1990 + */ + +/* ========================================================== */ +/* + * The MACROS below generate and return more traditional rotation + * matrices -- matrices for rotations about principal axes. + */ +/* ========================================================== */ + +#define ROTX_CS(m,cosine,sine) \ +{ \ + /* rotation about the x-axis */ \ + \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = (cosine); \ + m[1][2] = (sine); \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = -(sine); \ + m[2][2] = (cosine); \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ + +#define ROTY_CS(m,cosine,sine) \ +{ \ + /* rotation about the y-axis */ \ + \ + m[0][0] = (cosine); \ + m[0][1] = 0.0; \ + m[0][2] = -(sine); \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = (sine); \ + m[2][1] = 0.0; \ + m[2][2] = (cosine); \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ + +#define ROTZ_CS(m,cosine,sine) \ +{ \ + /* rotation about the z-axis */ \ + \ + m[0][0] = (cosine); \ + m[0][1] = (sine); \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = -(sine); \ + m[1][1] = (cosine); \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/segment.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/segment.h" new file mode 100644 index 0000000..6d51637 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/segment.h" @@ -0,0 +1,98 @@ + +/* + * MODULE: segment.h + * + * FUNCTION: + * Contains function prototypes for segment drawing subroutines. + * These are used only internally, and are not to be exported to + * the user. + * + * HISTORY: + * Create by Linas Vepstas + * Added tube.h include to define gleDouble, tad February 2002 + */ + +/* ============================================================ */ + +#include "tube.h" + +extern void draw_segment_plain (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_segment_color (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + float color_last[3], + float color_next[3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_segment_edge_n (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_segment_c_and_edge_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + float color_last[3], + float color_next[3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_segment_facet_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_segment_c_and_facet_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + float color_last[3], + float color_next[3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +/* ============================================================ */ + +extern void draw_binorm_segment_edge_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_binorm_segment_c_and_edge_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + float color_last[3], + float color_next[3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_binorm_segment_facet_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_binorm_segment_c_and_facet_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + float color_last[3], + float color_next[3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_angle_style_back_cap (int ncp, /* number of contour points */ + gleDouble bi[3], /* biscetor */ + gleDouble point_array[][3]) OPENGL_DEPRECATED(10_0, 10_9); /* polyline */ + +/* -------------------------- end of file -------------------------------- */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/tube.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/tube.h" new file mode 100644 index 0000000..9954333 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/tube.h" @@ -0,0 +1,205 @@ +/* + * tube.h + * + * FUNCTION: + * Tubing and Extrusion header file. + * This file provides protypes and defines for the extrusion + * and tubing primitives. + * + * HISTORY: + * Linas Vepstas 1990, 1991 + */ + +#ifndef __TUBE_H__ +#define __TUBE_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + GLE API revision history: + + GLE_API_VERSION is updated to reflect GLE API changes (interface + changes, semantic changes, deletions, or additions). + + GLE_API_VERSION=228 GLUT 3.7 release of GLE. +**/ +#ifndef GLE_API_VERSION /* allow this to be overriden */ +#define GLE_API_VERSION 228 +#endif + +/* some types */ +#ifndef gleDouble + #define gleDouble double +#endif +typedef gleDouble gleAffine[2][3] OPENGL_DEPRECATED(10_0, 10_9); + +/* ====================================================== */ + +/* defines for tubing join styles */ +#define TUBE_JN_RAW 0x1 +#define TUBE_JN_ANGLE 0x2 +#define TUBE_JN_CUT 0x3 +#define TUBE_JN_ROUND 0x4 +#define TUBE_JN_MASK 0xf /* mask bits */ +#define TUBE_JN_CAP 0x10 + +/* determine how normal vectors are to be handled */ +#define TUBE_NORM_FACET 0x100 +#define TUBE_NORM_EDGE 0x200 +#define TUBE_NORM_PATH_EDGE 0x400 /* for spiral, lathe, helix primitives */ +#define TUBE_NORM_MASK 0xf00 /* mask bits */ + +/* closed or open countours */ +#define TUBE_CONTOUR_CLOSED 0x1000 + +#define GLE_TEXTURE_ENABLE 0x10000 +#define GLE_TEXTURE_STYLE_MASK 0xff +#define GLE_TEXTURE_VERTEX_FLAT 1 +#define GLE_TEXTURE_NORMAL_FLAT 2 +#define GLE_TEXTURE_VERTEX_CYL 3 +#define GLE_TEXTURE_NORMAL_CYL 4 +#define GLE_TEXTURE_VERTEX_SPH 5 +#define GLE_TEXTURE_NORMAL_SPH 6 +#define GLE_TEXTURE_VERTEX_MODEL_FLAT 7 +#define GLE_TEXTURE_NORMAL_MODEL_FLAT 8 +#define GLE_TEXTURE_VERTEX_MODEL_CYL 9 +#define GLE_TEXTURE_NORMAL_MODEL_CYL 10 +#define GLE_TEXTURE_VERTEX_MODEL_SPH 11 +#define GLE_TEXTURE_NORMAL_MODEL_SPH 12 + +#ifdef GL_32 +/* HACK for GL 3.2 -- needed because no way to tell if lighting is on. */ +#define TUBE_LIGHTING_ON 0x80000000 + +#define gleExtrusion extrusion +#define gleSetJoinStyle setjoinstyle +#define gleGetJoinStyle getjoinstyle +#define glePolyCone polycone +#define glePolyCylinder polycylinder +#define gleSuperExtrusion super_extrusion +#define gleTwistExtrusion twist_extrusion +#define gleSpiral spiral +#define gleLathe lathe +#define gleHelicoid helicoid +#define gleToroid toroid +#define gleScrew screw + +#endif /* GL_32 */ + +extern int gleGetJoinStyle (void) OPENGL_DEPRECATED(10_0, 10_9); +extern void gleSetJoinStyle (int style) OPENGL_DEPRECATED(10_0, 10_9); /* bitwise OR of flags */ +extern int gleGetNumSlices(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void gleSetNumSlices(int slices) OPENGL_DEPRECATED(10_0, 10_9); + +/* draw polyclinder, specified as a polyline */ +extern void glePolyCylinder (int npoints, /* num points in polyline */ + gleDouble point_array[][3], /* polyline vertces */ + float color_array[][3], /* colors at polyline verts */ + gleDouble radius) OPENGL_DEPRECATED(10_0, 10_9); /* radius of polycylinder */ + +/* draw polycone, specified as a polyline with radii */ +extern void glePolyCone (int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* colors at polyline verts */ + gleDouble radius_array[]) OPENGL_DEPRECATED(10_0, 10_9); /* cone radii at polyline verts */ + +/* extrude arbitrary 2D contour along arbitrary 3D path */ +extern void gleExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3]) OPENGL_DEPRECATED(10_0, 10_9); /* colors at polyline verts */ + +/* extrude 2D contour, specifying local rotations (twists) */ +extern void gleTwistExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* color at polyline verts */ + gleDouble twist_array[]) OPENGL_DEPRECATED(10_0, 10_9); /* countour twists (in degrees) */ + +/* extrude 2D contour, specifying local affine tranformations */ +extern void gleSuperExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* color at polyline verts */ + gleDouble xform_array[][2][3]) OPENGL_DEPRECATED(10_0, 10_9); /* 2D contour xforms */ + +/* spiral moves contour along helical path by parallel transport */ +extern void gleSpiral (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta) OPENGL_DEPRECATED(10_0, 10_9); /* degrees to spiral around */ + +/* lathe moves contour along helical path by helically shearing 3D space */ +extern void gleLathe (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta) OPENGL_DEPRECATED(10_0, 10_9); /* degrees to spiral around */ + +/* similar to spiral, except contour is a circle */ +extern void gleHelicoid (gleDouble rToroid, /* circle contour (torus) radius */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta) OPENGL_DEPRECATED(10_0, 10_9); /* degrees to spiral around */ + +/* similar to lathe, except contour is a circle */ +extern void gleToroid (gleDouble rToroid, /* circle contour (torus) radius */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta) OPENGL_DEPRECATED(10_0, 10_9); /* degrees to spiral around */ + +/* draws a screw shape */ +extern void gleScrew (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startz, /* start of segment */ + gleDouble endz, /* end of segment */ + gleDouble twist) OPENGL_DEPRECATED(10_0, 10_9); /* number of rotations */ + +extern void gleTextureMode (int mode) OPENGL_DEPRECATED(10_0, 10_9); + +#ifdef __cplusplus +} + +#endif +#endif /* __TUBE_H__ */ +/* ================== END OF FILE ======================= */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/tube_gc.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/tube_gc.h" new file mode 100644 index 0000000..8da9b9f --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/tube_gc.h" @@ -0,0 +1,78 @@ + +/* + * tube_gc.h + * + * FUNCTION: + * This file allows for easy changes to changes in the way the extrusion + * library handles state info (i.e. context). + * + * HISTORY: + * Linas Vepstas --- February 1993 + * Added auto texture coord generation hacks, Linas April 1994 + * Added tube.h include to define gleDouble, tad February 2002 + */ + +#include "tube.h" +#include "port.h" /* for gleVector */ + +typedef float gleColor[3] OPENGL_DEPRECATED(10_0, 10_9); +typedef double gleTwoVec[2] OPENGL_DEPRECATED(10_0, 10_9); + +typedef struct { + + /* public methods */ + void (*bgn_gen_texture) (int, double); + void (*n3f_gen_texture) (float *); + void (*n3d_gen_texture) (double *); + void (*v3f_gen_texture) (float *, int, int); + void (*v3d_gen_texture) (double *, int, int); + void (*end_gen_texture) (void); + + /* protected members -- "general knowledge" stuff */ + int join_style; + + /* arguments passed into extrusion code */ + int ncp; /* number of contour points */ + gleTwoVec *contour; /* 2D contour */ + gleTwoVec *cont_normal; /* 2D contour normals */ + gleDouble *up; /* up vector */ + int npoints; /* number of points in polyline */ + gleVector *point_array; /* path */ + gleColor *color_array; /* path colors */ + gleAffine *xform_array; /* contour xforms */ + + /* private members, used by texturing code */ + int num_vert; + int segment_number; + double segment_length; + double accum_seg_len; + double prev_x; + double prev_y; + + void (*save_bgn_gen_texture) (int, double); + void (*save_n3f_gen_texture) (float *); + void (*save_n3d_gen_texture) (double *); + void (*save_v3f_gen_texture) (float *, int, int); + void (*save_v3d_gen_texture) (double *, int, int); + void (*save_end_gen_texture) (void); + +} gleGC OPENGL_DEPRECATED(10_0, 10_9); + +extern gleGC *_gle_gc OPENGL_DEPRECATED(10_0, 10_9); +extern gleGC * gleCreateGC (void) OPENGL_DEPRECATED(10_0, 10_9); + +#define INIT_GC() {if (!_gle_gc) _gle_gc = gleCreateGC(); } +#define extrusion_join_style (_gle_gc->join_style) + +#define __TUBE_CLOSE_CONTOUR (extrusion_join_style & TUBE_CONTOUR_CLOSED) +#define __TUBE_DRAW_CAP (extrusion_join_style & TUBE_JN_CAP) +#define __TUBE_DRAW_FACET_NORMALS (extrusion_join_style & TUBE_NORM_FACET) +#define __TUBE_DRAW_PATH_EDGE_NORMALS (extrusion_join_style & TUBE_NORM_PATH_EDGE) + +#define __TUBE_STYLE (extrusion_join_style & TUBE_JN_MASK) +#define __TUBE_RAW_JOIN (extrusion_join_style & TUBE_JN_RAW) +#define __TUBE_CUT_JOIN (extrusion_join_style & TUBE_JN_CUT) +#define __TUBE_ANGLE_JOIN (extrusion_join_style & TUBE_JN_ANGLE) +#define __TUBE_ROUND_JOIN (extrusion_join_style & TUBE_JN_ROUND) + +/* ======================= END OF FILE ========================== */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/vvector.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/vvector.h" new file mode 100644 index 0000000..b58dcd6 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Headers/vvector.h" @@ -0,0 +1,1339 @@ + +/* + * vvector.h + * + * FUNCTION: + * This file contains a number of utilities useful for handling + * 3D vectors + * + * HISTORY: + * Written by Linas Vepstas, August 1991 + * Added 2D code, March 1993 + * Added Outer products, C++ proofed, Linas Vepstas October 1993 + */ + +#ifndef __GUTIL_VECTOR_H__ +#define __GUTIL_VECTOR_H__ + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + + +#include +#include "port.h" + +/* ========================================================== */ +/* Zero out a 2D vector */ + +#define VEC_ZERO_2(a) \ +{ \ + (a)[0] = (a)[1] = 0.0; \ +} + +/* ========================================================== */ +/* Zero out a 3D vector */ + +#define VEC_ZERO(a) \ +{ \ + (a)[0] = (a)[1] = (a)[2] = 0.0; \ +} + +/* ========================================================== */ +/* Zero out a 4D vector */ + +#define VEC_ZERO_4(a) \ +{ \ + (a)[0] = (a)[1] = (a)[2] = (a)[3] = 0.0; \ +} + +/* ========================================================== */ +/* Vector copy */ + +#define VEC_COPY_2(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ +} + +/* ========================================================== */ +/* Copy 3D vector */ + +#define VEC_COPY(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ + (b)[2] = (a)[2]; \ +} + +/* ========================================================== */ +/* Copy 4D vector */ + +#define VEC_COPY_4(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ + (b)[2] = (a)[2]; \ + (b)[3] = (a)[3]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF_2(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ + (v21)[2] = (v2)[2] - (v1)[2]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF_4(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ + (v21)[2] = (v2)[2] - (v1)[2]; \ + (v21)[3] = (v2)[3] - (v1)[3]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM_2(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ + (v21)[2] = (v2)[2] + (v1)[2]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM_4(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ + (v21)[2] = (v2)[2] + (v1)[2]; \ + (v21)[3] = (v2)[3] + (v1)[3]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE_2(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ + (c)[2] = (a)*(b)[2]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE_4(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ + (c)[2] = (a)*(b)[2]; \ + (c)[3] = (a)*(b)[3]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM_2(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ + (c)[2] += (a)*(b)[2]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM_4(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ + (c)[2] += (a)*(b)[2]; \ + (c)[3] += (a)*(b)[3]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT_2(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT_4(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2] + (a)[3]*(b)[3] ; \ +} + +/* ========================================================== */ +/* vector impact parameter (squared) */ + +#define VEC_IMPACT_SQ(bsq,direction,position) \ +{ \ + gleDouble vlen, llel; \ + VEC_DOT_PRODUCT (vlen, position, position); \ + VEC_DOT_PRODUCT (llel, direction, position); \ + bsq = vlen - llel*llel; \ +} + +/* ========================================================== */ +/* vector impact parameter */ + +#define VEC_IMPACT(bsq,direction,position) \ +{ \ + VEC_IMPACT_SQ(bsq,direction,position); \ + bsq = sqrt (bsq); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH_2(vlen,a) \ +{ \ + vlen = a[0]*a[0] + a[1]*a[1]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH(vlen,a) \ +{ \ + vlen = (a)[0]*(a)[0] + (a)[1]*(a)[1]; \ + vlen += (a)[2]*(a)[2]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH_4(vlen,a) \ +{ \ + vlen = (a)[0]*(a)[0] + (a)[1]*(a)[1]; \ + vlen += (a)[2]*(a)[2]; \ + vlen += (a)[3] * (a)[3]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* distance between two points */ + +#define VEC_DISTANCE(vlen,va,vb) \ +{ \ + gleDouble tmp[4]; \ + VEC_DIFF (tmp, vb, va); \ + VEC_LENGTH (vlen, tmp); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_CONJUGATE_LENGTH(vlen,a) \ +{ \ + vlen = 1.0 - a[0]*a[0] - a[1]*a[1] - a[2]*a[2];\ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_NORMALIZE(a) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen,a); \ + if (vlen != 0.0) { \ + vlen = 1.0 / vlen; \ + a[0] *= vlen; \ + a[1] *= vlen; \ + a[2] *= vlen; \ + } \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_RENORMALIZE(a,newlen) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen,a); \ + if (vlen != 0.0) { \ + vlen = newlen / vlen; \ + a[0] *= vlen; \ + a[1] *= vlen; \ + a[2] *= vlen; \ + } \ +} + +/* ========================================================== */ +/* 3D Vector cross product yeilding vector */ + +#define VEC_CROSS_PRODUCT(c,a,b) \ +{ \ + c[0] = (a)[1] * (b)[2] - (a)[2] * (b)[1]; \ + c[1] = (a)[2] * (b)[0] - (a)[0] * (b)[2]; \ + c[2] = (a)[0] * (b)[1] - (a)[1] * (b)[0]; \ +} + +/* ========================================================== */ +/* Vector perp -- assumes that n is of unit length + * accepts vector v, subtracts out any component parallel to n */ + +#define VEC_PERP(vp,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vp[0] = (v)[0] - (vdot) * (n)[0]; \ + vp[1] = (v)[1] - (vdot) * (n)[1]; \ + vp[2] = (v)[2] - (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector parallel -- assumes that n is of unit length + * accepts vector v, subtracts out any component perpendicular to n */ + +#define VEC_PARALLEL(vp,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vp[0] = (vdot) * (n)[0]; \ + vp[1] = (vdot) * (n)[1]; \ + vp[2] = (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector reflection -- assumes n is of unit length */ +/* Takes vector v, reflects it against reflector n, and returns vr */ + +#define VEC_REFLECT(vr,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vr[0] = (v)[0] - 2.0 * (vdot) * (n)[0]; \ + vr[1] = (v)[1] - 2.0 * (vdot) * (n)[1]; \ + vr[2] = (v)[2] - 2.0 * (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector blending */ +/* Takes two vectors a, b, blends them together */ + +#define VEC_BLEND(vr,sa,a,sb,b) \ +{ \ + \ + vr[0] = (sa) * (a)[0] + (sb) * (b)[0]; \ + vr[1] = (sa) * (a)[1] + (sb) * (b)[1]; \ + vr[2] = (sa) * (a)[2] + (sb) * (b)[2]; \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT_2(a) \ +{ \ + double vlen; \ + VEC_LENGTH_2 (vlen, a); \ + printf (" a is %f %f length of a is %f \n", a[0], a[1], vlen); \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT(a) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen, (a)); \ + printf (" a is %f %f %f length of a is %f \n", (a)[0], (a)[1], (a)[2], vlen); \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT_4(a) \ +{ \ + double vlen; \ + VEC_LENGTH_4 (vlen, (a)); \ + printf (" a is %f %f %f %f length of a is %f \n", \ + (a)[0], (a)[1], (a)[2], (a)[3], vlen); \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_4X4(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_3X3(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<3; i++) { \ + for (j=0; j<3; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_2X3(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<2; i++) { \ + for (j=0; j<3; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* initialize matrix */ + +#define IDENTIFY_MATRIX_3X3(m) \ +{ \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ +} + +/* ========================================================== */ +/* initialize matrix */ + +#define IDENTIFY_MATRIX_4X4(m) \ +{ \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_2X2(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_2X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_3X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ + \ + b[2][0] = a[2][0]; \ + b[2][1] = a[2][1]; \ + b[2][2] = a[2][2]; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_4X4(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + b[0][3] = a[0][3]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ + b[1][3] = a[1][3]; \ + \ + b[2][0] = a[2][0]; \ + b[2][1] = a[2][1]; \ + b[2][2] = a[2][2]; \ + b[2][3] = a[2][3]; \ + \ + b[3][0] = a[3][0]; \ + b[3][1] = a[3][1]; \ + b[3][2] = a[3][2]; \ + b[3][3] = a[3][3]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_2X2(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_3X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + b[0][2] = a[2][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[2][1]; \ + \ + b[2][0] = a[0][2]; \ + b[2][1] = a[1][2]; \ + b[2][2] = a[2][2]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_4X4(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + b[0][2] = a[2][0]; \ + b[0][3] = a[3][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[2][1]; \ + b[1][3] = a[3][1]; \ + \ + b[2][0] = a[0][2]; \ + b[2][1] = a[1][2]; \ + b[2][2] = a[2][2]; \ + b[2][3] = a[3][2]; \ + \ + b[3][0] = a[0][3]; \ + b[3][1] = a[1][3]; \ + b[3][2] = a[2][3]; \ + b[3][3] = a[3][3]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_2X2(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_3X3(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + b[0][2] = (s) * a[0][2]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ + b[1][2] = (s) * a[1][2]; \ + \ + b[2][0] = (s) * a[2][0]; \ + b[2][1] = (s) * a[2][1]; \ + b[2][2] = (s) * a[2][2]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_4X4(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + b[0][2] = (s) * a[0][2]; \ + b[0][3] = (s) * a[0][3]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ + b[1][2] = (s) * a[1][2]; \ + b[1][3] = (s) * a[1][3]; \ + \ + b[2][0] = (s) * a[2][0]; \ + b[2][1] = (s) * a[2][1]; \ + b[2][2] = (s) * a[2][2]; \ + b[2][3] = (s) * a[2][3]; \ + \ + b[3][0] = s * a[3][0]; \ + b[3][1] = s * a[3][1]; \ + b[3][2] = s * a[3][2]; \ + b[3][3] = s * a[3][3]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_2X2(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ +} + +/* +========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_3X3(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + b[0][2] += (s) * a[0][2]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ + b[1][2] += (s) * a[1][2]; \ + \ + b[2][0] += (s) * a[2][0]; \ + b[2][1] += (s) * a[2][1]; \ + b[2][2] += (s) * a[2][2]; \ +} + +/* +========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_4X4(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + b[0][2] += (s) * a[0][2]; \ + b[0][3] += (s) * a[0][3]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ + b[1][2] += (s) * a[1][2]; \ + b[1][3] += (s) * a[1][3]; \ + \ + b[2][0] += (s) * a[2][0]; \ + b[2][1] += (s) * a[2][1]; \ + b[2][2] += (s) * a[2][2]; \ + b[2][3] += (s) * a[2][3]; \ + \ + b[3][0] += (s) * a[3][0]; \ + b[3][1] += (s) * a[3][1]; \ + b[3][2] += (s) * a[3][2]; \ + b[3][3] += (s) * a[3][3]; \ +} + +/* +========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_2X2(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]; \ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]; \ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]; \ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]; \ + \ +} + +/* ========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_3X3(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]; \ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1]; \ + c[0][2] = a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2]; \ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0]; \ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1]; \ + c[1][2] = a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2]; \ + \ + c[2][0] = a[2][0]*b[0][0]+a[2][1]*b[1][0]+a[2][2]*b[2][0]; \ + c[2][1] = a[2][0]*b[0][1]+a[2][1]*b[1][1]+a[2][2]*b[2][1]; \ + c[2][2] = a[2][0]*b[0][2]+a[2][1]*b[1][2]+a[2][2]*b[2][2]; \ +} + +/* ========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_4X4(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]+a[0][3]*b[3][0];\ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1]+a[0][3]*b[3][1];\ + c[0][2] = a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2]+a[0][3]*b[3][2];\ + c[0][3] = a[0][0]*b[0][3]+a[0][1]*b[1][3]+a[0][2]*b[2][3]+a[0][3]*b[3][3];\ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0]+a[1][3]*b[3][0];\ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1]+a[1][3]*b[3][1];\ + c[1][2] = a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2]+a[1][3]*b[3][2];\ + c[1][3] = a[1][0]*b[0][3]+a[1][1]*b[1][3]+a[1][2]*b[2][3]+a[1][3]*b[3][3];\ + \ + c[2][0] = a[2][0]*b[0][0]+a[2][1]*b[1][0]+a[2][2]*b[2][0]+a[2][3]*b[3][0];\ + c[2][1] = a[2][0]*b[0][1]+a[2][1]*b[1][1]+a[2][2]*b[2][1]+a[2][3]*b[3][1];\ + c[2][2] = a[2][0]*b[0][2]+a[2][1]*b[1][2]+a[2][2]*b[2][2]+a[2][3]*b[3][2];\ + c[2][3] = a[2][0]*b[0][3]+a[2][1]*b[1][3]+a[2][2]*b[2][3]+a[2][3]*b[3][3];\ + \ + c[3][0] = a[3][0]*b[0][0]+a[3][1]*b[1][0]+a[3][2]*b[2][0]+a[3][3]*b[3][0];\ + c[3][1] = a[3][0]*b[0][1]+a[3][1]*b[1][1]+a[3][2]*b[2][1]+a[3][3]*b[3][1];\ + c[3][2] = a[3][0]*b[0][2]+a[3][1]*b[1][2]+a[3][2]*b[2][2]+a[3][3]*b[3][2];\ + c[3][3] = a[3][0]*b[0][3]+a[3][1]*b[1][3]+a[3][2]*b[2][3]+a[3][3]*b[3][3];\ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_2X2(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1]; \ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_3X3(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2]; \ + p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2]; \ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_4X4(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2] + m[0][3]*v[3]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2] + m[1][3]*v[3]; \ + p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2] + m[2][3]*v[3]; \ + p[3] = m[3][0]*v[0] + m[3][1]*v[1] + m[3][2]*v[2] + m[3][3]*v[3]; \ +} + +/* ========================================================== */ +/* vector transpose times matrix */ +/* p[j] = v[0]*m[0][j] + v[1]*m[1][j] + v[2]*m[2][j]; */ + +#define VEC_DOT_MAT_3X3(p,v,m) \ +{ \ + p[0] = v[0]*m[0][0] + v[1]*m[1][0] + v[2]*m[2][0]; \ + p[1] = v[0]*m[0][1] + v[1]*m[1][1] + v[2]*m[2][1]; \ + p[2] = v[0]*m[0][2] + v[1]*m[1][2] + v[2]*m[2][2]; \ +} + +/* ========================================================== */ +/* affine matrix times vector */ +/* The matrix is assumed to be an affine matrix, with last two + * entries representing a translation */ + +#define MAT_DOT_VEC_2X3(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]; \ +} + +/* ========================================================== */ +/* inverse transpose of matrix times vector + * + * This macro computes inverse transpose of matrix m, + * and multiplies vector v into it, to yeild vector p + * + * DANGER !!! Do Not use this on normal vectors!!! + * It will leave normals the wrong length !!! + * See macro below for use on normals. + */ + +#define INV_TRANSP_MAT_DOT_VEC_2X2(p,m,v) \ +{ \ + gleDouble det; \ + \ + det = m[0][0]*m[1][1] - m[0][1]*m[1][0]; \ + p[0] = m[1][1]*v[0] - m[1][0]*v[1]; \ + p[1] = - m[0][1]*v[0] + m[0][0]*v[1]; \ + \ + /* if matrix not singular, and not orthonormal, then renormalize */ \ + if ((det!=1.0) && (det != 0.0)) { \ + det = 1.0 / det; \ + p[0] *= det; \ + p[1] *= det; \ + } \ +} + +/* ========================================================== */ +/* transform normal vector by inverse transpose of matrix + * and then renormalize the vector + * + * This macro computes inverse transpose of matrix m, + * and multiplies vector v into it, to yeild vector p + * Vector p is then normalized. + */ + + +#define NORM_XFORM_2X2(p,m,v) \ +{ \ + double mlen; \ + \ + /* do nothing if off-diagonals are zero and diagonals are \ + * equal */ \ + if ((m[0][1] != 0.0) || (m[1][0] != 0.0) || (m[0][0] != m[1][1])) { \ + p[0] = m[1][1]*v[0] - m[1][0]*v[1]; \ + p[1] = - m[0][1]*v[0] + m[0][0]*v[1]; \ + \ + mlen = p[0]*p[0] + p[1]*p[1]; \ + mlen = 1.0 / sqrt (mlen); \ + p[0] *= mlen; \ + p[1] *= mlen; \ + } else { \ + VEC_COPY_2 (p, v); \ + } \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_2X2(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_3X3(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + m[0][2] = v[0] * t[2]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ + m[1][2] = v[1] * t[2]; \ + \ + m[2][0] = v[2] * t[0]; \ + m[2][1] = v[2] * t[1]; \ + m[2][2] = v[2] * t[2]; \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_4X4(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + m[0][2] = v[0] * t[2]; \ + m[0][3] = v[0] * t[3]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ + m[1][2] = v[1] * t[2]; \ + m[1][3] = v[1] * t[3]; \ + \ + m[2][0] = v[2] * t[0]; \ + m[2][1] = v[2] * t[1]; \ + m[2][2] = v[2] * t[2]; \ + m[2][3] = v[2] * t[3]; \ + \ + m[3][0] = v[3] * t[0]; \ + m[3][1] = v[3] * t[1]; \ + m[3][2] = v[3] * t[2]; \ + m[3][3] = v[3] * t[3]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_2X2(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_3X3(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + m[0][2] += v[0] * t[2]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ + m[1][2] += v[1] * t[2]; \ + \ + m[2][0] += v[2] * t[0]; \ + m[2][1] += v[2] * t[1]; \ + m[2][2] += v[2] * t[2]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_4X4(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + m[0][2] += v[0] * t[2]; \ + m[0][3] += v[0] * t[3]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ + m[1][2] += v[1] * t[2]; \ + m[1][3] += v[1] * t[3]; \ + \ + m[2][0] += v[2] * t[0]; \ + m[2][1] += v[2] * t[1]; \ + m[2][2] += v[2] * t[2]; \ + m[2][3] += v[2] * t[3]; \ + \ + m[3][0] += v[3] * t[0]; \ + m[3][1] += v[3] * t[1]; \ + m[3][2] += v[3] * t[2]; \ + m[3][3] += v[3] * t[3]; \ +} + +/* +========================================================== */ +/* determinant of matrix + * + * Computes determinant of matrix m, returning d + */ + +#define DETERMINANT_2X2(d,m) \ +{ \ + d = m[0][0] * m[1][1] - m[0][1] * m[1][0]; \ +} + +/* ========================================================== */ +/* determinant of matrix + * + * Computes determinant of matrix m, returning d + */ + +#define DETERMINANT_3X3(d,m) \ +{ \ + d = m[0][0] * (m[1][1]*m[2][2] - m[1][2] * m[2][1]); \ + d -= m[0][1] * (m[1][0]*m[2][2] - m[1][2] * m[2][0]); \ + d += m[0][2] * (m[1][0]*m[2][1] - m[1][1] * m[2][0]); \ +} + +/* ========================================================== */ +/* i,j,th cofactor of a 4x4 matrix + * + */ + +#define COFACTOR_4X4_IJ(fac,m,i,j) \ +{ \ + int ii[4], jj[4], k; \ + \ + /* compute which row, columnt to skip */ \ + for (k=0; k + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Caution.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Caution.tiff" new file mode 100644 index 0000000..ec49652 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Caution.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Dutch.lproj/GLUT.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Dutch.lproj/GLUT.nib/objects.nib" new file mode 100644 index 0000000..79b06be Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Dutch.lproj/GLUT.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Dutch.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Dutch.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..c7e4bac Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Dutch.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Dutch.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Dutch.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..eab0cef Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Dutch.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Dutch.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Dutch.lproj/GLUTUI.strings" new file mode 100644 index 0000000..d8a91c1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Dutch.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Dutch.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Dutch.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Dutch.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/English.lproj/GLUT.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/English.lproj/GLUT.nib/objects.nib" new file mode 100644 index 0000000..8a7140e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/English.lproj/GLUT.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/English.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/English.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..29125d4 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/English.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/English.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/English.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..ecc3879 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/English.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/English.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/English.lproj/GLUTUI.strings" new file mode 100644 index 0000000..1dcf9ee Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/English.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/English.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/English.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/English.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/French.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/French.lproj/GLUT.nib" new file mode 100644 index 0000000..966fa89 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/French.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/French.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/French.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..a1c0d52 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/French.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/French.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/French.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..696cfe4 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/French.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/French.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/French.lproj/GLUTUI.strings" new file mode 100644 index 0000000..f1eab3b Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/French.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/French.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/French.lproj/InfoPlist.strings" new file mode 100644 index 0000000..b812d82 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/French.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/German.lproj/GLUT.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/German.lproj/GLUT.nib/objects.nib" new file mode 100644 index 0000000..22bf5af Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/German.lproj/GLUT.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/German.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/German.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..d7b5720 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/German.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/German.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/German.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..282e62a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/German.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/German.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/German.lproj/GLUTUI.strings" new file mode 100644 index 0000000..09b9d2c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/German.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/German.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/German.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/German.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Info.plist" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Info.plist" new file mode 100644 index 0000000..61c93a5 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Info.plist" @@ -0,0 +1,44 @@ + + + + + BuildMachineOSBuild + 15A281 + CFBundleDevelopmentRegion + English + CFBundleExecutable + GLUT + CFBundleGetInfoString + 3.6.3, Copyright © 2001-2014 Apple Inc. All rights reserved. + CFBundleIdentifier + com.apple.glut + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + FMWK + CFBundleShortVersionString + 3.6.3 + CFBundleSignature + ???? + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + GLUT-3.6.3 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 7A176g + DTPlatformVersion + GM + DTSDKBuild + 15A281 + DTSDKName + macosx10.11internal + DTXcode + 0700 + DTXcodeBuild + 7A176g + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Italian.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Italian.lproj/GLUT.nib" new file mode 100644 index 0000000..212372d Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Italian.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Italian.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Italian.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..1988355 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Italian.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Italian.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Italian.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..18d5944 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Italian.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Italian.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Italian.lproj/GLUTUI.strings" new file mode 100644 index 0000000..db99f3f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Italian.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Italian.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Italian.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Italian.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Japanese.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Japanese.lproj/GLUT.nib" new file mode 100644 index 0000000..22bf9b6 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Japanese.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Japanese.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Japanese.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..39af42a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Japanese.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Japanese.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Japanese.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..987249c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Japanese.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Japanese.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Japanese.lproj/GLUTUI.strings" new file mode 100644 index 0000000..e9e7306 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Japanese.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Japanese.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Japanese.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Japanese.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Spanish.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Spanish.lproj/GLUT.nib" new file mode 100644 index 0000000..203e64a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Spanish.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Spanish.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Spanish.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..a129bb0 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Spanish.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Spanish.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Spanish.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..b31b35f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Spanish.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Spanish.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Spanish.lproj/GLUTUI.strings" new file mode 100644 index 0000000..7818349 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Spanish.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Spanish.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Spanish.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/Spanish.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ar.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ar.lproj/GLUT.nib" new file mode 100644 index 0000000..d23e520 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ar.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ar.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ar.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..cc12579 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ar.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ar.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ar.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..ccc49d1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ar.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ar.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ar.lproj/GLUTUI.strings" new file mode 100644 index 0000000..f9101cb Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ar.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ar.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ar.lproj/InfoPlist.strings" new file mode 100644 index 0000000..0db71cb Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ar.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/blankCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/blankCursor.tiff" new file mode 100644 index 0000000..a2b0cf1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/blankCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/bottomCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/bottomCursor.tiff" new file mode 100644 index 0000000..c3f4795 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/bottomCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/bottomleftCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/bottomleftCursor.tiff" new file mode 100644 index 0000000..274529f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/bottomleftCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/bottomrightCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/bottomrightCursor.tiff" new file mode 100644 index 0000000..dec4252 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/bottomrightCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ca.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ca.lproj/GLUT.nib" new file mode 100644 index 0000000..2455871 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ca.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ca.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ca.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..c2c1360 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ca.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ca.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ca.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..c3f15ec Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ca.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ca.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ca.lproj/GLUTUI.strings" new file mode 100644 index 0000000..56eb700 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ca.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ca.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ca.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ca.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/crossCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/crossCursor.tiff" new file mode 100644 index 0000000..8536c0e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/crossCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/cs.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/cs.lproj/GLUT.nib" new file mode 100644 index 0000000..3ca1fc4 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/cs.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/cs.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/cs.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..7a8ac5a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/cs.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/cs.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/cs.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..724a434 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/cs.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/cs.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/cs.lproj/GLUTUI.strings" new file mode 100644 index 0000000..9b1b585 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/cs.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/cs.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/cs.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/cs.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/cycleCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/cycleCursor.tiff" new file mode 100644 index 0000000..34b52f6 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/cycleCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/da.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/da.lproj/GLUT.nib" new file mode 100644 index 0000000..b437c34 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/da.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/da.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/da.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..0fcbc83 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/da.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/da.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/da.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..d594ecf Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/da.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/da.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/da.lproj/GLUTUI.strings" new file mode 100644 index 0000000..461744c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/da.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/da.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/da.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/da.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/destroyCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/destroyCursor.tiff" new file mode 100644 index 0000000..9e3a1cb Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/destroyCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/el.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/el.lproj/GLUT.nib" new file mode 100644 index 0000000..c3f55f1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/el.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/el.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/el.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..33013a0 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/el.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/el.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/el.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..a8d7cbd Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/el.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/el.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/el.lproj/GLUTUI.strings" new file mode 100644 index 0000000..89d4d1c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/el.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/el.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/el.lproj/InfoPlist.strings" new file mode 100644 index 0000000..5a5b1d6 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/el.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/es_MX.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/es_MX.lproj/GLUT.nib" new file mode 100644 index 0000000..3b621c6 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/es_MX.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/es_MX.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/es_MX.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..be5edf7 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/es_MX.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/es_MX.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/es_MX.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..cc867aa Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/es_MX.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/es_MX.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/es_MX.lproj/GLUTUI.strings" new file mode 100644 index 0000000..df8bace Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/es_MX.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/es_MX.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/es_MX.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/es_MX.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/fi.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/fi.lproj/GLUT.nib" new file mode 100644 index 0000000..ea0bfa1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/fi.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/fi.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/fi.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..305ab42 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/fi.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/fi.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/fi.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..6a130d2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/fi.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/fi.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/fi.lproj/GLUTUI.strings" new file mode 100644 index 0000000..d80a9b3 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/fi.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/fi.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/fi.lproj/InfoPlist.strings" new file mode 100644 index 0000000..92c7a04 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/fi.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/fingerCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/fingerCursor.tiff" new file mode 100644 index 0000000..0087c66 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/fingerCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/he.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/he.lproj/GLUT.nib" new file mode 100644 index 0000000..839571e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/he.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/he.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/he.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..eadda01 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/he.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/he.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/he.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..79555da Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/he.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/he.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/he.lproj/GLUTUI.strings" new file mode 100644 index 0000000..9d7e5f7 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/he.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/he.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/he.lproj/InfoPlist.strings" new file mode 100644 index 0000000..8ee9790 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/he.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/helpCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/helpCursor.tiff" new file mode 100644 index 0000000..fc4a88a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/helpCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hr.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hr.lproj/GLUT.nib" new file mode 100644 index 0000000..4903126 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hr.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hr.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hr.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..17f8705 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hr.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hr.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hr.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..6b1b193 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hr.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hr.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hr.lproj/GLUTUI.strings" new file mode 100644 index 0000000..5fe6297 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hr.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hr.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hr.lproj/InfoPlist.strings" new file mode 100644 index 0000000..1be586d Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hr.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hu.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hu.lproj/GLUT.nib" new file mode 100644 index 0000000..f970c5f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hu.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hu.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hu.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..207ccff Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hu.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hu.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hu.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..e18ca17 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hu.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hu.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hu.lproj/GLUTUI.strings" new file mode 100644 index 0000000..b21b15c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hu.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hu.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hu.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/hu.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/id.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/id.lproj/GLUT.nib" new file mode 100644 index 0000000..a2af2f3 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/id.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/id.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/id.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..ca149b3 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/id.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/id.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/id.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..9dbcdfd Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/id.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/id.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/id.lproj/GLUTUI.strings" new file mode 100644 index 0000000..580bb84 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/id.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/id.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/id.lproj/InfoPlist.strings" new file mode 100644 index 0000000..d84993a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/id.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ko.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ko.lproj/GLUT.nib" new file mode 100644 index 0000000..3924043 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ko.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ko.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ko.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..8c62d65 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ko.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ko.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ko.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..3597eaf Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ko.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ko.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ko.lproj/GLUTUI.strings" new file mode 100644 index 0000000..b756109 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ko.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ko.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ko.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ko.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/leftCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/leftCursor.tiff" new file mode 100644 index 0000000..852b69b Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/leftCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/leftRightCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/leftRightCursor.tiff" new file mode 100644 index 0000000..37fe393 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/leftRightCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ms.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ms.lproj/GLUT.nib" new file mode 100644 index 0000000..f3b5d1e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ms.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ms.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ms.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..03b8228 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ms.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ms.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ms.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..58ccc40 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ms.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ms.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ms.lproj/GLUTUI.strings" new file mode 100644 index 0000000..e8feaee Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ms.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ms.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ms.lproj/InfoPlist.strings" new file mode 100644 index 0000000..d84993a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ms.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/no.lproj/GLUT.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/no.lproj/GLUT.nib/objects.nib" new file mode 100644 index 0000000..c64d501 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/no.lproj/GLUT.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/no.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/no.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..b4bb024 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/no.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/no.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/no.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..fc46ede Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/no.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/no.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/no.lproj/GLUTUI.strings" new file mode 100644 index 0000000..dbe9bd4 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/no.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/no.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/no.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/no.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pl.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pl.lproj/GLUT.nib" new file mode 100644 index 0000000..de39520 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pl.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pl.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pl.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..78a7a88 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pl.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pl.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pl.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..bbc1931 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pl.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pl.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pl.lproj/GLUTUI.strings" new file mode 100644 index 0000000..c162e2f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pl.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pl.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pl.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pl.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt.lproj/GLUT.nib" new file mode 100644 index 0000000..cb3d269 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..66de19c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..af003ce Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt.lproj/GLUTUI.strings" new file mode 100644 index 0000000..41b8837 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt_PT.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt_PT.lproj/GLUT.nib" new file mode 100644 index 0000000..dde36df Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt_PT.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt_PT.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt_PT.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..c751967 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt_PT.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt_PT.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt_PT.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..c5af435 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt_PT.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt_PT.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt_PT.lproj/GLUTUI.strings" new file mode 100644 index 0000000..beb9372 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt_PT.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt_PT.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt_PT.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/pt_PT.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/rightArrowCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/rightArrowCursor.tiff" new file mode 100644 index 0000000..d852616 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/rightArrowCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/rightCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/rightCursor.tiff" new file mode 100644 index 0000000..9781f22 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/rightCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ro.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ro.lproj/GLUT.nib" new file mode 100644 index 0000000..43164d5 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ro.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ro.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ro.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..5ad661c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ro.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ro.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ro.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..d13c841 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ro.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ro.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ro.lproj/GLUTUI.strings" new file mode 100644 index 0000000..d256df7 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ro.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ro.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ro.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ro.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ru.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ru.lproj/GLUT.nib" new file mode 100644 index 0000000..c189bc1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ru.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ru.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ru.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..66f8047 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ru.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ru.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ru.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..b5f52d9 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ru.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ru.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ru.lproj/GLUTUI.strings" new file mode 100644 index 0000000..eda51a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ru.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ru.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ru.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/ru.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sk.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sk.lproj/GLUT.nib" new file mode 100644 index 0000000..bea5da5 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sk.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sk.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sk.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..52fe2b9 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sk.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sk.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sk.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..9db485b Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sk.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sk.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sk.lproj/GLUTUI.strings" new file mode 100644 index 0000000..9f203b8 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sk.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sk.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sk.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sk.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sprayCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sprayCursor.tiff" new file mode 100644 index 0000000..9bec966 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sprayCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sv.lproj/GLUT.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sv.lproj/GLUT.nib/objects.nib" new file mode 100644 index 0000000..6dbbc6e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sv.lproj/GLUT.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sv.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sv.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..6329f5a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sv.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sv.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sv.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..eed0bce Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sv.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sv.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sv.lproj/GLUTUI.strings" new file mode 100644 index 0000000..7fbf5f5 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sv.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sv.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sv.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/sv.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/th.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/th.lproj/GLUT.nib" new file mode 100644 index 0000000..24be49b Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/th.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/th.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/th.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..36ad216 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/th.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/th.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/th.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..39827a1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/th.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/th.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/th.lproj/GLUTUI.strings" new file mode 100644 index 0000000..df219c9 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/th.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/th.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/th.lproj/InfoPlist.strings" new file mode 100644 index 0000000..d7f23a7 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/th.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/topCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/topCursor.tiff" new file mode 100644 index 0000000..e4df0de Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/topCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/topleftCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/topleftCursor.tiff" new file mode 100644 index 0000000..43cf97f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/topleftCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/toprightCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/toprightCursor.tiff" new file mode 100644 index 0000000..429b01b Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/toprightCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/tr.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/tr.lproj/GLUT.nib" new file mode 100644 index 0000000..db7b81d Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/tr.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/tr.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/tr.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..793a3d8 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/tr.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/tr.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/tr.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..0c2b23a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/tr.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/tr.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/tr.lproj/GLUTUI.strings" new file mode 100644 index 0000000..201f646 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/tr.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/tr.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/tr.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/tr.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/uk.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/uk.lproj/GLUT.nib" new file mode 100644 index 0000000..1376302 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/uk.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/uk.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/uk.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..f9e501e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/uk.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/uk.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/uk.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..61b2706 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/uk.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/uk.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/uk.lproj/GLUTUI.strings" new file mode 100644 index 0000000..5a8d21b Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/uk.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/uk.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/uk.lproj/InfoPlist.strings" new file mode 100644 index 0000000..d40f670 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/uk.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/upDownCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/upDownCursor.tiff" new file mode 100644 index 0000000..1605063 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/upDownCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/version.plist" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/version.plist" new file mode 100644 index 0000000..0b48b86 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/version.plist" @@ -0,0 +1,16 @@ + + + + + BuildVersion + 1221 + CFBundleShortVersionString + 3.6.3 + CFBundleVersion + GLUT-3.6.3 + ProjectName + GLUT + SourceVersion + 3006003000000 + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/vi.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/vi.lproj/GLUT.nib" new file mode 100644 index 0000000..9ef11d4 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/vi.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/vi.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/vi.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..efbfb4c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/vi.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/vi.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/vi.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..acb2360 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/vi.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/vi.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/vi.lproj/GLUTUI.strings" new file mode 100644 index 0000000..e3602a1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/vi.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/vi.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/vi.lproj/InfoPlist.strings" new file mode 100644 index 0000000..0d3bc86 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/vi.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/waitCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/waitCursor.tiff" new file mode 100644 index 0000000..81ba1aa Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/waitCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_CN.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_CN.lproj/GLUT.nib" new file mode 100644 index 0000000..3fcbf00 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_CN.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_CN.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_CN.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..135210a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_CN.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_CN.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_CN.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..3918fe6 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_CN.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_CN.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_CN.lproj/GLUTUI.strings" new file mode 100644 index 0000000..ca52410 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_CN.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_CN.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_CN.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_CN.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_TW.lproj/GLUT.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_TW.lproj/GLUT.nib/objects.nib" new file mode 100644 index 0000000..daa31c0 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_TW.lproj/GLUT.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_TW.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_TW.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..4659493 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_TW.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_TW.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_TW.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..5a2fac6 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_TW.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_TW.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_TW.lproj/GLUTUI.strings" new file mode 100644 index 0000000..23e9e8f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_TW.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_TW.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_TW.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Resources/zh_TW.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/GLUT" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/GLUT" new file mode 100755 index 0000000..cb0529a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/GLUT" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/copy.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/copy.h" new file mode 100644 index 0000000..a5116e2 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/copy.h" @@ -0,0 +1,18 @@ + +/* + * + * Written By Linas Vepstas November 1991 + */ + + +#define COPY_THREE_WORDS(A,B) { \ + struct three_words { int a, b, c, }; \ + *(struct three_words *) (A) = *(struct three_words *) (B); \ +} + +#define COPY_FOUR_WORDS(A,B) { \ + struct four_words { int a, b, c, d, }; \ + *(struct four_words *) (A) = *(struct four_words *) (B); \ +} + +/* ============================================================= */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/extrude.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/extrude.h" new file mode 100644 index 0000000..c50d874 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/extrude.h" @@ -0,0 +1,96 @@ + +/* + * extrude.h + * + * FUNCTION: + * prototypes for privately used subroutines for the tubing library + * + * HISTORY: + * Linas Vepstas 1991 + */ + +#include "port.h" /* for gleDouble */ + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +/* ============================================================ */ +/* + * Provides choice of calling subroutine, vs. invoking macro. + * Basically, inlines the source, or not. + * Trades performance for executable size. + */ + +#define INLINE_INTERSECT +#ifdef INLINE_INTERSECT +#define INNERSECT(sect,p,n,v1,v2) { INTERSECT(sect,p,n,v1,v2); } +#else +#define INNERSECT(sect,p,n,v1,v2) intersect(sect,p,n,v1,v2) +#endif /* INLINE_INTERSECT */ + +/* ============================================================ */ +/* The folowing defines give a kludgy way of accessing the qmesh primitive */ + +/* +#define bgntmesh _emu_qmesh_bgnqmesh +#define endtmesh _emu_qmesh_endqmesh +#define c3f _emu_qmesh_c3f +#define n3f _emu_qmesh_n3f +#define v3f _emu_qmesh_v3f +*/ + +/* ============================================================ */ + +extern void up_sanity_check (gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3]) OPENGL_DEPRECATED(10_0, 10_9); /* polyline */ + + +extern void draw_raw_style_end_cap (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble zval, /* where to draw cap */ + int frontwards) OPENGL_DEPRECATED(10_0, 10_9); /* front or back cap */ + +extern void draw_round_style_cap_callback (int iloop, + double cap[][3], + float face_color[3], + gleDouble cut_vector[3], + gleDouble bisect_vector[3], + double norms[][3], + int frontwards) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_angle_style_front_cap (int ncp, + gleDouble bi[3], + gleDouble point_array[][3]) OPENGL_DEPRECATED(10_0, 10_9); + +extern void extrusion_raw_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]) OPENGL_DEPRECATED(10_0, 10_9); /* 2D contour xforms */ + + +extern void extrusion_round_or_cut_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]) OPENGL_DEPRECATED(10_0, 10_9); /* 2D contour xforms */ + + +extern void extrusion_angle_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]) OPENGL_DEPRECATED(10_0, 10_9); /* 2D contour xforms */ + +/* -------------------------- end of file -------------------------------- */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/glsmap.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/glsmap.h" new file mode 100644 index 0000000..6fca9b8 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/glsmap.h" @@ -0,0 +1,138 @@ +#ifndef __glsmap_h__ +#define __glsmap_h__ + +/* Copyright (c) Mark J. Kilgard, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#if defined(_WIN32) + +/* Try hard to avoid including to avoid name space pollution, + but Win32's needs APIENTRY and WINGDIAPI defined properly. */ +# if 0 +# define WIN32_LEAN_AND_MEAN +# include +# else + /* XXX This is from Win32's */ +# ifndef APIENTRY +# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) +# define APIENTRY __stdcall +# else +# define APIENTRY +# endif +# endif +# ifndef CALLBACK + /* XXX This is from Win32's */ +# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) +# define CALLBACK __stdcall +# else +# define CALLBACK +# endif +# endif + /* XXX This is from Win32's and */ +# ifndef WINGDIAPI +# define WINGDIAPI __declspec(dllimport) +# endif + /* XXX This is from Win32's */ +# ifndef _WCHAR_T_DEFINED +typedef unsigned short wchar_t; +# define _WCHAR_T_DEFINED +# endif +# endif + +#pragma warning (disable:4244) /* Disable bogus conversion warnings. */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ + +#endif /* _WIN32 */ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum { + SMAP_CLEAR_SMAP_TEXTURE = 0x1, + SMAP_GENERATE_VIEW_MIPMAPS = 0x2, + SMAP_GENERATE_SMAP_MIPMAPS = 0x4, + SMAP_GENERATE_MIPMAPS = 0x6 /* both of above */ +} SphereMapFlags OPENGL_DEPRECATED(10_0, 10_9); + +/* Cube view enumerants. */ +enum { + SMAP_FRONT = 0, + SMAP_TOP = 1, + SMAP_BOTTOM = 2, + SMAP_LEFT = 3, + SMAP_RIGHT = 4, + SMAP_BACK = 5 +}; + +typedef struct _SphereMap SphereMap OPENGL_DEPRECATED(10_0, 10_9); + +extern SphereMap *smapCreateSphereMap(SphereMap *shareSmap) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapDestroySphereMap(SphereMap *smap) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapConfigureSphereMapMesh(SphereMap *smap, int steps, int rings, int edgeExtend) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetSphereMapTexObj(SphereMap *smap, GLuint texobj) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetViewTexObj(SphereMap *smap, GLuint texobj) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetViewTexObjs(SphereMap *smap, GLuint texobjs[6]) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetSphereMapTexObj(SphereMap *smap, GLuint *texobj) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetViewTexObj(SphereMap *smap, GLuint *texobj) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetViewTexObjs(SphereMap *smap, GLuint texobjs[6]) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetFlags(SphereMap *smap, SphereMapFlags flags) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetFlags(SphereMap *smap, SphereMapFlags *flags) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetViewOrigin(SphereMap *smap, GLint x, GLint y) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetSphereMapOrigin(SphereMap *smap, GLint x, GLint y) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetViewOrigin(SphereMap *smap, GLint *x, GLint *y) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetSphereMapOrigin(SphereMap *smap, GLint *x, GLint *y) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetEye(SphereMap *smap, GLfloat eyex, GLfloat eyey, GLfloat eyez) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetEyeVector(SphereMap *smap, GLfloat *eye) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetUp(SphereMap *smap, GLfloat upx, GLfloat upy, GLfloat upz) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetUpVector(SphereMap *smap, GLfloat *up) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetObject(SphereMap *smap, GLfloat objx, GLfloat objy, GLfloat objz) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetObjectVector(SphereMap *smap, GLfloat *obj) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetEye(SphereMap *smap, GLfloat *eyex, GLfloat *eyey, GLfloat *eyez) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetEyeVector(SphereMap *smap, GLfloat *eye) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetUp(SphereMap *smap, GLfloat *upx, GLfloat *upy, GLfloat *upz) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetUpVector(SphereMap *smap, GLfloat *up) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetObject(SphereMap *smap, GLfloat *objx, GLfloat *objy, GLfloat *objz) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetObjectVector(SphereMap *smap, GLfloat *obj) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetNearFar(SphereMap *smap, GLfloat viewNear, GLfloat viewFar) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetNearFar(SphereMap *smap, GLfloat *viewNear, GLfloat *viewFar) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetSphereMapTexDim(SphereMap *smap, GLsizei texdim) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetViewTexDim(SphereMap *smap, GLsizei texdim) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetSphereMapTexDim(SphereMap *smap, GLsizei *texdim) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetViewTexDim(SphereMap *smap, GLsizei *texdim) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetContextData(SphereMap *smap, void *context) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetContextData(SphereMap *smap, void **context) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetPositionLightsFunc(SphereMap *smap, void (*positionLights)(int view, void *context)) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetDrawViewFunc(SphereMap *smap, void (*drawView)(int view, void *context)) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetPositionLightsFunc(SphereMap *smap, void (**positionLights)(int view, void *context)) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetDrawViewFunc(SphereMap *smap, void (**drawView)(int view, void *context)) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapGenViewTex(SphereMap *smap, int view) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGenViewTexs(SphereMap *smap) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGenSphereMapFromViewTexs(SphereMap *smap) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGenSphereMap(SphereMap *smap) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGenSphereMapWithOneViewTex(SphereMap *smap) OPENGL_DEPRECATED(10_0, 10_9); + +extern int smapRvecToSt(float rvec[3], float st[2]) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapStToRvec(float *st, float *rvec) OPENGL_DEPRECATED(10_0, 10_9); + +#ifdef __cplusplus +} + +#endif +#endif /* __glsmap_h__ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/glsmapint.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/glsmapint.h" new file mode 100644 index 0000000..b2a9914 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/glsmapint.h" @@ -0,0 +1,102 @@ +#ifndef __glsmapint_h__ +#define __glsmapint_h__ + +/* Copyright (c) Mark J. Kilgard, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#include "glsmap.h" + +enum { X = 0, Y = 1, Z = 2 }; + +#define INITFACE(mesh) \ + int steps = mesh->steps; \ + int sqsteps = mesh->steps * mesh->steps + +#define FACE(side,y,x) \ + mesh->face[(side)*sqsteps + (y)*steps + (x)] + +#define FACExy(side,i,j) \ + (&FACE(side,i,j).x) + +#define FACEst(side,i,j) \ + (&FACE(side,i,j).s) + +#define INITBACK(mesh) \ + int allrings = mesh->rings + mesh->edgeExtend; \ + int ringedspokes = allrings * mesh->steps + +#define BACK(edge,ring,spoke) \ + mesh->back[(edge)*ringedspokes + (ring)*mesh->steps + (spoke)] + +#define BACKxy(edge,ring,spoke) \ + (&BACK(edge,ring,spoke).x) + +#define BACKst(edge,ring,spoke) \ + (&BACK(edge,ring,spoke).s) + +typedef struct _STXY { + GLfloat s, t; + GLfloat x, y; +} STXY OPENGL_DEPRECATED(10_0, 10_9); + +typedef struct _SphereMapMesh { + + int refcnt; + + int steps; + int rings; + int edgeExtend; + + STXY *face; + STXY *back; + +} SphereMapMesh OPENGL_DEPRECATED(10_0, 10_9); + +struct _SphereMap { + + /* Shared sphere map mesh vertex data. */ + SphereMapMesh *mesh; + + /* Texture object ids. */ + GLuint smapTexObj; + GLuint viewTexObjs[6]; + GLuint viewTexObj; + + /* Flags */ + SphereMapFlags flags; + + /* Texture dimensions must be a power of two. */ + int viewTexDim; /* view texture dimension */ + int smapTexDim; /* sphere map texture dimension */ + + /* Viewport origins for view and sphere map rendering. */ + int viewOrigin[2]; + int smapOrigin[2]; + + /* Viewing vectors. */ + GLfloat eye[3]; + GLfloat up[3]; + GLfloat obj[3]; + + /* Projection parameters. */ + GLfloat viewNear; + GLfloat viewFar; + + /* Rendering callbacks. */ + void (*positionLights)(int view, void *context); + void (*drawView)(int view, void *context); + + /* Application specified callback data. */ + void *context; + +} OPENGL_DEPRECATED(10_0, 10_9); + +/* Library internal routines. */ +extern void __smapDrawSphereMapMeshSide(SphereMapMesh *mesh, int side) OPENGL_DEPRECATED(10_0, 10_9); +extern void __smapDrawSphereMapMeshBack(SphereMapMesh *mesh) OPENGL_DEPRECATED(10_0, 10_9); +extern void __smapValidateSphereMapMesh(SphereMapMesh *mesh) OPENGL_DEPRECATED(10_0, 10_9); + +#endif /* __glsmapint_h__ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/glut.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/glut.h" new file mode 100644 index 0000000..9cf1f17 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/glut.h" @@ -0,0 +1,649 @@ +#ifndef __glut_h__ +#define __glut_h__ + +/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */ + +/* This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. */ + +#if defined(_WIN32) + +/* GLUT 3.7 now tries to avoid including + to avoid name space pollution, but Win32's + needs APIENTRY and WINGDIAPI defined properly. */ +# if 0 +# define WIN32_LEAN_AND_MEAN +# include +# else + /* XXX This is from Win32's */ +# ifndef APIENTRY +# define GLUT_APIENTRY_DEFINED +# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) +# define APIENTRY __stdcall +# else +# define APIENTRY +# endif +# endif + /* XXX This is from Win32's */ +# ifndef CALLBACK +# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) +# define CALLBACK __stdcall +# else +# define CALLBACK +# endif +# endif + /* XXX This is from Win32's and */ +# ifndef WINGDIAPI +# define GLUT_WINGDIAPI_DEFINED +# define WINGDIAPI __declspec(dllimport) +# endif + /* XXX This is from Win32's */ +# ifndef _WCHAR_T_DEFINED +typedef unsigned short wchar_t; +# define _WCHAR_T_DEFINED +# endif +# endif + +#pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */ +#pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */ +#pragma comment (lib, "glu32.lib") /* link with OpenGL Utility lib */ +#pragma comment (lib, "glut32.lib") /* link with Win32 GLUT lib */ + +#pragma warning (disable:4244) /* Disable bogus conversion warnings. */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ + +#endif + +#if defined(__APPLE__) || defined(MACOSX) +#include +#include +#include +#else +#include +#include +#endif + +/* define APIENTRY and CALLBACK to null string if we aren't on Win32 */ +#if !defined(_WIN32) +#define APIENTRY +#define GLUT_APIENTRY_DEFINED +#define CALLBACK +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/** + GLUT API revision history: + + GLUT_API_VERSION is updated to reflect incompatible GLUT + API changes (interface changes, semantic changes, deletions, + or additions). + + GLUT_API_VERSION=1 First public release of GLUT. 11/29/94 + + GLUT_API_VERSION=2 Added support for OpenGL/GLX multisampling, + extension. Supports new input devices like tablet, dial and button + box, and Spaceball. Easy to query OpenGL extensions. + + GLUT_API_VERSION=3 glutMenuStatus added. + + GLUT_API_VERSION=4 glutInitDisplayString, glutWarpPointer, + glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic + video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc, + glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat, + glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!). + + GLUT_API_VERSION=5 glutGetProcAddress (added by BrianP) +**/ +#ifndef GLUT_API_VERSION /* allow this to be overriden */ +#define GLUT_API_VERSION 5 +#endif + +/** + GLUT implementation revision history: + + GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT + API revisions and implementation revisions (ie, bug fixes). + + GLUT_XLIB_IMPLEMENTATION=1 mjk's first public release of + GLUT Xlib-based implementation. 11/29/94 + + GLUT_XLIB_IMPLEMENTATION=2 mjk's second public release of + GLUT Xlib-based implementation providing GLUT version 2 + interfaces. + + GLUT_XLIB_IMPLEMENTATION=3 mjk's GLUT 2.2 images. 4/17/95 + + GLUT_XLIB_IMPLEMENTATION=4 mjk's GLUT 2.3 images. 6/?/95 + + GLUT_XLIB_IMPLEMENTATION=5 mjk's GLUT 3.0 images. 10/?/95 + + GLUT_XLIB_IMPLEMENTATION=7 mjk's GLUT 3.1+ with glutWarpPoitner. 7/24/96 + + GLUT_XLIB_IMPLEMENTATION=8 mjk's GLUT 3.1+ with glutWarpPoitner + and video resize. 1/3/97 + + GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines. + + GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release. + + GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling. + + GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support. + + GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface. + + GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa +**/ +#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overriden. */ +#define GLUT_XLIB_IMPLEMENTATION 15 +#endif + +/** + MacOS X GLUT implementation revision history: + + GLUT_MACOSX_IMPLEMENTATION is updated to reflect MacOS X + specific GLUT API revisions and implementation revisions + (ie, bug fixes). + + GLUT_MACOSX_IMPLEMENTATION=1 glutSurfaceTexture. + + GLUT_MACOSX_IMPLEMENTATION=2 glutWMCloseFunc, glutCheckLoop. + + GLUT_MACOSX_IMPLEMENTATION=3 GLUT_NO_RECOVERY. + + GLUT_MACOSX_IMPLEMENTATION=4 GLUT_3_2_CORE_PROFILE. + +**/ +#ifndef GLUT_MACOSX_IMPLEMENTATION /* Allow this to be overriden. */ +#define GLUT_MACOSX_IMPLEMENTATION 4 +#endif + +/* Display mode bit masks. */ +#define GLUT_RGB 0 +#define GLUT_RGBA GLUT_RGB +#define GLUT_INDEX 1 +#define GLUT_SINGLE 0 +#define GLUT_DOUBLE 2 +#define GLUT_ACCUM 4 +#define GLUT_ALPHA 8 +#define GLUT_DEPTH 16 +#define GLUT_STENCIL 32 +#if (GLUT_API_VERSION >= 2) +#define GLUT_MULTISAMPLE 128 +#define GLUT_STEREO 256 +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_LUMINANCE 512 +#endif +#if (GLUT_MACOSX_IMPLEMENTATION >= 3) +#define GLUT_NO_RECOVERY 1024 +#endif +#if (GLUT_MACOSX_IMPLEMENTATION >= 4) +#define GLUT_3_2_CORE_PROFILE 2048 +#endif + +/* Mouse buttons. */ +#define GLUT_LEFT_BUTTON 0 +#define GLUT_MIDDLE_BUTTON 1 +#define GLUT_RIGHT_BUTTON 2 + +/* Mouse button state. */ +#define GLUT_DOWN 0 +#define GLUT_UP 1 + +#if (GLUT_API_VERSION >= 2) +/* function keys */ +#define GLUT_KEY_F1 1 +#define GLUT_KEY_F2 2 +#define GLUT_KEY_F3 3 +#define GLUT_KEY_F4 4 +#define GLUT_KEY_F5 5 +#define GLUT_KEY_F6 6 +#define GLUT_KEY_F7 7 +#define GLUT_KEY_F8 8 +#define GLUT_KEY_F9 9 +#define GLUT_KEY_F10 10 +#define GLUT_KEY_F11 11 +#define GLUT_KEY_F12 12 +/* directional keys */ +#define GLUT_KEY_LEFT 100 +#define GLUT_KEY_UP 101 +#define GLUT_KEY_RIGHT 102 +#define GLUT_KEY_DOWN 103 +#define GLUT_KEY_PAGE_UP 104 +#define GLUT_KEY_PAGE_DOWN 105 +#define GLUT_KEY_HOME 106 +#define GLUT_KEY_END 107 +#define GLUT_KEY_INSERT 108 +#endif + +/* Entry/exit state. */ +#define GLUT_LEFT 0 +#define GLUT_ENTERED 1 + +/* Menu usage state. */ +#define GLUT_MENU_NOT_IN_USE 0 +#define GLUT_MENU_IN_USE 1 + +/* Visibility state. */ +#define GLUT_NOT_VISIBLE 0 +#define GLUT_VISIBLE 1 + +/* Window status state. */ +#define GLUT_HIDDEN 0 +#define GLUT_FULLY_RETAINED 1 +#define GLUT_PARTIALLY_RETAINED 2 +#define GLUT_FULLY_COVERED 3 + +/* Color index component selection values. */ +#define GLUT_RED 0 +#define GLUT_GREEN 1 +#define GLUT_BLUE 2 + +/* Layers for use. */ +#define GLUT_NORMAL 0 +#define GLUT_OVERLAY 1 + +#if defined(_WIN32) +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN ((void*)0) +#define GLUT_STROKE_MONO_ROMAN ((void*)1) + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 ((void*)2) +#define GLUT_BITMAP_8_BY_13 ((void*)3) +#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4) +#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 ((void*)6) +#define GLUT_BITMAP_HELVETICA_12 ((void*)7) +#define GLUT_BITMAP_HELVETICA_18 ((void*)8) +#endif +#else +/* Stroke font opaque addresses (use constants instead in source code). */ +extern void *glutStrokeRoman; +extern void *glutStrokeMonoRoman; + +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN (&glutStrokeRoman) +#define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman) + +/* Bitmap font opaque addresses (use constants instead in source code). */ +extern void *glutBitmap9By15; +extern void *glutBitmap8By13; +extern void *glutBitmapTimesRoman10; +extern void *glutBitmapTimesRoman24; +extern void *glutBitmapHelvetica10; +extern void *glutBitmapHelvetica12; +extern void *glutBitmapHelvetica18; + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15) +#define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13) +#define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10) +#define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10) +#define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12) +#define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18) +#endif +#endif + +/* glutGet parameters. */ +#define GLUT_WINDOW_X 100 +#define GLUT_WINDOW_Y 101 +#define GLUT_WINDOW_WIDTH 102 +#define GLUT_WINDOW_HEIGHT 103 +#define GLUT_WINDOW_BUFFER_SIZE 104 +#define GLUT_WINDOW_STENCIL_SIZE 105 +#define GLUT_WINDOW_DEPTH_SIZE 106 +#define GLUT_WINDOW_RED_SIZE 107 +#define GLUT_WINDOW_GREEN_SIZE 108 +#define GLUT_WINDOW_BLUE_SIZE 109 +#define GLUT_WINDOW_ALPHA_SIZE 110 +#define GLUT_WINDOW_ACCUM_RED_SIZE 111 +#define GLUT_WINDOW_ACCUM_GREEN_SIZE 112 +#define GLUT_WINDOW_ACCUM_BLUE_SIZE 113 +#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 114 +#define GLUT_WINDOW_DOUBLEBUFFER 115 +#define GLUT_WINDOW_RGBA 116 +#define GLUT_WINDOW_PARENT 117 +#define GLUT_WINDOW_NUM_CHILDREN 118 +#define GLUT_WINDOW_COLORMAP_SIZE 119 +#if (GLUT_API_VERSION >= 2) +#define GLUT_WINDOW_NUM_SAMPLES 120 +#define GLUT_WINDOW_STEREO 121 +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_WINDOW_CURSOR 122 +#endif +#define GLUT_SCREEN_WIDTH 200 +#define GLUT_SCREEN_HEIGHT 201 +#define GLUT_SCREEN_WIDTH_MM 202 +#define GLUT_SCREEN_HEIGHT_MM 203 +#define GLUT_MENU_NUM_ITEMS 300 +#define GLUT_DISPLAY_MODE_POSSIBLE 400 +#define GLUT_INIT_WINDOW_X 500 +#define GLUT_INIT_WINDOW_Y 501 +#define GLUT_INIT_WINDOW_WIDTH 502 +#define GLUT_INIT_WINDOW_HEIGHT 503 +#define GLUT_INIT_DISPLAY_MODE 504 +#if (GLUT_API_VERSION >= 2) +#define GLUT_ELAPSED_TIME 700 +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +#define GLUT_WINDOW_FORMAT_ID 123 +#endif + +#if (GLUT_API_VERSION >= 2) +/* glutDeviceGet parameters. */ +#define GLUT_HAS_KEYBOARD 600 +#define GLUT_HAS_MOUSE 601 +#define GLUT_HAS_SPACEBALL 602 +#define GLUT_HAS_DIAL_AND_BUTTON_BOX 603 +#define GLUT_HAS_TABLET 604 +#define GLUT_NUM_MOUSE_BUTTONS 605 +#define GLUT_NUM_SPACEBALL_BUTTONS 606 +#define GLUT_NUM_BUTTON_BOX_BUTTONS 607 +#define GLUT_NUM_DIALS 608 +#define GLUT_NUM_TABLET_BUTTONS 609 +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +#define GLUT_DEVICE_IGNORE_KEY_REPEAT 610 +#define GLUT_DEVICE_KEY_REPEAT 611 +#define GLUT_HAS_JOYSTICK 612 +#define GLUT_OWNS_JOYSTICK 613 +#define GLUT_JOYSTICK_BUTTONS 614 +#define GLUT_JOYSTICK_AXES 615 +#define GLUT_JOYSTICK_POLL_RATE 616 +#endif + +#if (GLUT_API_VERSION >= 3) +/* glutLayerGet parameters. */ +#define GLUT_OVERLAY_POSSIBLE 800 +#define GLUT_LAYER_IN_USE 801 +#define GLUT_HAS_OVERLAY 802 +#define GLUT_TRANSPARENT_INDEX 803 +#define GLUT_NORMAL_DAMAGED 804 +#define GLUT_OVERLAY_DAMAGED 805 + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* glutVideoResizeGet parameters. */ +#define GLUT_VIDEO_RESIZE_POSSIBLE 900 +#define GLUT_VIDEO_RESIZE_IN_USE 901 +#define GLUT_VIDEO_RESIZE_X_DELTA 902 +#define GLUT_VIDEO_RESIZE_Y_DELTA 903 +#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 904 +#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 905 +#define GLUT_VIDEO_RESIZE_X 906 +#define GLUT_VIDEO_RESIZE_Y 907 +#define GLUT_VIDEO_RESIZE_WIDTH 908 +#define GLUT_VIDEO_RESIZE_HEIGHT 909 +#endif + +/* glutUseLayer parameters. */ +#define GLUT_NORMAL 0 +#define GLUT_OVERLAY 1 + +/* glutGetModifiers return mask. */ +#define GLUT_ACTIVE_SHIFT 1 +#define GLUT_ACTIVE_CTRL 2 +#define GLUT_ACTIVE_ALT 4 + +/* glutSetCursor parameters. */ +/* Basic arrows. */ +#define GLUT_CURSOR_RIGHT_ARROW 0 +#define GLUT_CURSOR_LEFT_ARROW 1 +/* Symbolic cursor shapes. */ +#define GLUT_CURSOR_INFO 2 +#define GLUT_CURSOR_DESTROY 3 +#define GLUT_CURSOR_HELP 4 +#define GLUT_CURSOR_CYCLE 5 +#define GLUT_CURSOR_SPRAY 6 +#define GLUT_CURSOR_WAIT 7 +#define GLUT_CURSOR_TEXT 8 +#define GLUT_CURSOR_CROSSHAIR 9 +/* Directional cursors. */ +#define GLUT_CURSOR_UP_DOWN 10 +#define GLUT_CURSOR_LEFT_RIGHT 11 +/* Sizing cursors. */ +#define GLUT_CURSOR_TOP_SIDE 12 +#define GLUT_CURSOR_BOTTOM_SIDE 13 +#define GLUT_CURSOR_LEFT_SIDE 14 +#define GLUT_CURSOR_RIGHT_SIDE 15 +#define GLUT_CURSOR_TOP_LEFT_CORNER 16 +#define GLUT_CURSOR_TOP_RIGHT_CORNER 17 +#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18 +#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 19 +/* Inherit from parent window. */ +#define GLUT_CURSOR_INHERIT 100 +/* Blank cursor. */ +#define GLUT_CURSOR_NONE 101 +/* Fullscreen crosshair (if available). */ +#define GLUT_CURSOR_FULL_CROSSHAIR 102 +#endif + +/* GLUT initialization sub-API. */ +extern void APIENTRY glutInit(int *argcp, char **argv) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutInitDisplayMode(unsigned int mode) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutInitDisplayString(const char *string) OPENGL_DEPRECATED(10_0, 10_9); +#endif +extern void APIENTRY glutInitWindowPosition(int x, int y) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutInitWindowSize(int width, int height) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutMainLoop(void) OPENGL_DEPRECATED(10_0, 10_9); + +/* GLUT window sub-API. */ +extern int APIENTRY glutCreateWindow(const char *title) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutDestroyWindow(int win) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutPostRedisplay(void) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) +extern void APIENTRY glutPostWindowRedisplay(int win) OPENGL_DEPRECATED(10_0, 10_9); +#endif +extern void APIENTRY glutSwapBuffers(void) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutGetWindow(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSetWindow(int win) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSetWindowTitle(const char *title) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSetIconTitle(const char *title) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutPositionWindow(int x, int y) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutReshapeWindow(int width, int height) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutPopWindow(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutPushWindow(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutIconifyWindow(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutShowWindow(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutHideWindow(void) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 3) +extern void APIENTRY glutFullScreen(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSetCursor(int cursor) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutWarpPointer(int x, int y) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_MACOSX_IMPLEMENTATION >= 1) +/* surface texturing API OS X specific +* Note: +* glutSurfaceTexture has been deprecated, use GL_EXT_framebuffer_object +*/ +extern void APIENTRY glutSurfaceTexture (GLenum target, GLenum internalformat, int surfacewin) OPENGL_DEPRECATED(10_2, 10_5); +#endif +#if (GLUT_MACOSX_IMPLEMENTATION >= 2) +/* OS X specific API */ +extern void APIENTRY glutWMCloseFunc(void (*func)(void)) OPENGL_DEPRECATED(10_3, 10_9); +extern void APIENTRY glutCheckLoop(void) OPENGL_DEPRECATED(10_3, 10_9); +#endif +#endif + +/* GLUT overlay sub-API. */ +extern void APIENTRY glutEstablishOverlay(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutRemoveOverlay(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutUseLayer(GLenum layer) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutPostOverlayRedisplay(void) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) +extern void APIENTRY glutPostWindowOverlayRedisplay(int win) OPENGL_DEPRECATED(10_0, 10_9); +#endif +extern void APIENTRY glutShowOverlay(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutHideOverlay(void) OPENGL_DEPRECATED(10_0, 10_9); +#endif + +/* GLUT menu sub-API. */ +extern int APIENTRY glutCreateMenu(void (*)(int)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutDestroyMenu(int menu) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutGetMenu(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSetMenu(int menu) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutAddMenuEntry(const char *label, int value) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutAddSubMenu(const char *label, int submenu) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutRemoveMenuItem(int item) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutAttachMenu(int button) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutDetachMenu(int button) OPENGL_DEPRECATED(10_0, 10_9); + +/* GLUT window callback sub-API. */ +extern void APIENTRY glutDisplayFunc(void (*func)(void)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutReshapeFunc(void (*func)(int width, int height)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutKeyboardFunc(void (*func)(unsigned char key, int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutMouseFunc(void (*func)(int button, int state, int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutMotionFunc(void (*func)(int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutPassiveMotionFunc(void (*func)(int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutEntryFunc(void (*func)(int state)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutVisibilityFunc(void (*func)(int state)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutIdleFunc(void (*func)(void)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutTimerFunc(unsigned int millis, void (*func)(int value), int value) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutMenuStateFunc(void (*func)(int state)) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 2) +extern void APIENTRY glutSpecialFunc(void (*func)(int key, int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSpaceballMotionFunc(void (*func)(int x, int y, int z)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSpaceballRotateFunc(void (*func)(int x, int y, int z)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSpaceballButtonFunc(void (*func)(int button, int state)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutButtonBoxFunc(void (*func)(int button, int state)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutDialsFunc(void (*func)(int dial, int value)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutTabletMotionFunc(void (*func)(int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutTabletButtonFunc(void (*func)(int button, int state, int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 3) +extern void APIENTRY glutMenuStatusFunc(void (*func)(int status, int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutOverlayDisplayFunc(void (*func)(void)) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutWindowStatusFunc(void (*func)(int state)) OPENGL_DEPRECATED(10_0, 10_9); +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +extern void APIENTRY glutKeyboardUpFunc(void (*func)(unsigned char key, int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSpecialUpFunc(void (*func)(int key, int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutJoystickFunc(void (*func)(unsigned int buttonMask, int x, int y, int z), int pollInterval) OPENGL_DEPRECATED(10_0, 10_9); +#endif +#endif +#endif + +/* GLUT color index sub-API. */ +extern void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue) OPENGL_DEPRECATED(10_0, 10_9); +extern GLfloat APIENTRY glutGetColor(int ndx, int component) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutCopyColormap(int win) OPENGL_DEPRECATED(10_0, 10_9); + +/* GLUT state retrieval sub-API. */ +extern int APIENTRY glutGet(GLenum type) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutDeviceGet(GLenum type) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 2) +/* GLUT extension support sub-API */ +extern int APIENTRY glutExtensionSupported(const char *name) OPENGL_DEPRECATED(10_0, 10_9); +#endif +#if (GLUT_API_VERSION >= 3) +extern int APIENTRY glutGetModifiers(void) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutLayerGet(GLenum type) OPENGL_DEPRECATED(10_0, 10_9); +#endif +#if (GLUT_API_VERSION >= 5) +extern void * APIENTRY glutGetProcAddress(const char *procName) OPENGL_DEPRECATED(10_3, 10_9); +#endif + +/* GLUT font sub-API */ +extern void APIENTRY glutBitmapCharacter(void *font, int character) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutBitmapWidth(void *font, int character) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutStrokeCharacter(void *font, int character) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutStrokeWidth(void *font, int character) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern int APIENTRY glutBitmapLength(void *font, const unsigned char *string) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutStrokeLength(void *font, const unsigned char *string) OPENGL_DEPRECATED(10_0, 10_9); +#endif + +/* GLUT pre-built models sub-API */ +extern void APIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireCube(GLdouble size) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidCube(GLdouble size) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireDodecahedron(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidDodecahedron(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireTeapot(GLdouble size) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidTeapot(GLdouble size) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireOctahedron(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidOctahedron(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireTetrahedron(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidTetrahedron(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireIcosahedron(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidIcosahedron(void) OPENGL_DEPRECATED(10_0, 10_9); + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* GLUT video resize sub-API. */ +extern int APIENTRY glutVideoResizeGet(GLenum param) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSetupVideoResizing(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutStopVideoResizing(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutVideoResize(int x, int y, int width, int height) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutVideoPan(int x, int y, int width, int height) OPENGL_DEPRECATED(10_0, 10_9); + +/* GLUT debugging sub-API. */ +extern void APIENTRY glutReportErrors(void) OPENGL_DEPRECATED(10_0, 10_9); +#endif + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +/* GLUT device control sub-API. */ +/* glutSetKeyRepeat modes. */ +#define GLUT_KEY_REPEAT_OFF 0 +#define GLUT_KEY_REPEAT_ON 1 +#define GLUT_KEY_REPEAT_DEFAULT 2 + +/* Joystick button masks. */ +#define GLUT_JOYSTICK_BUTTON_A 1 +#define GLUT_JOYSTICK_BUTTON_B 2 +#define GLUT_JOYSTICK_BUTTON_C 4 +#define GLUT_JOYSTICK_BUTTON_D 8 + +extern void APIENTRY glutIgnoreKeyRepeat(int ignore) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSetKeyRepeat(int repeatMode) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutForceJoystickFunc(void) OPENGL_DEPRECATED(10_0, 10_9); + +/* GLUT game mode sub-API. */ +/* glutGameModeGet. */ +#define GLUT_GAME_MODE_ACTIVE 0 +#define GLUT_GAME_MODE_POSSIBLE 1 +#define GLUT_GAME_MODE_WIDTH 2 +#define GLUT_GAME_MODE_HEIGHT 3 +#define GLUT_GAME_MODE_PIXEL_DEPTH 4 +#define GLUT_GAME_MODE_REFRESH_RATE 5 +#define GLUT_GAME_MODE_DISPLAY_CHANGED 6 + +extern void APIENTRY glutGameModeString(const char *string) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutEnterGameMode(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutLeaveGameMode(void) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutGameModeGet(GLenum mode) OPENGL_DEPRECATED(10_0, 10_9); +#endif + +#ifdef __cplusplus +} + +#endif + +#ifdef GLUT_APIENTRY_DEFINED +# undef GLUT_APIENTRY_DEFINED +# undef APIENTRY +#endif + +#ifdef GLUT_WINGDIAPI_DEFINED +# undef GLUT_WINGDIAPI_DEFINED +# undef WINGDIAPI +#endif + +#endif /* __glut_h__ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/glutbitmap.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/glutbitmap.h" new file mode 100644 index 0000000..08c39ed --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/glutbitmap.h" @@ -0,0 +1,30 @@ +#ifndef __glutbitmap_h__ +#define __glutbitmap_h__ + +/* Copyright (c) Mark J. Kilgard, 1994. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#include "glut.h" + +typedef struct { + const GLsizei width; + const GLsizei height; + const GLfloat xorig; + const GLfloat yorig; + const GLfloat advance; + const GLubyte *bitmap; +} BitmapCharRec OPENGL_DEPRECATED(10_0, 10_9), *BitmapCharPtr OPENGL_DEPRECATED(10_0, 10_9); + +typedef struct { + const char *name; + const int num_chars; + const int first; + const BitmapCharRec * const *ch; +} BitmapFontRec OPENGL_DEPRECATED(10_0, 10_9), *BitmapFontPtr OPENGL_DEPRECATED(10_0, 10_9); + +typedef void *GLUTbitmapFont OPENGL_DEPRECATED(10_0, 10_9); + +#endif /* __glutbitmap_h__ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/glutf90.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/glutf90.h" new file mode 100644 index 0000000..f9211c3 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/glutf90.h" @@ -0,0 +1,90 @@ +#ifndef __glutf90_h__ +#define __glutf90_h__ + +/* Copyright (c) Mark J. Kilgard & Willam F. Mitchell, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +/* This header provides the binding interface for William Mitchell's + f90gl Fortran 90 GLUT binding. Other GLUT language bindings + can and should use this interace. */ + +/* I appreciate the guidance from William Mitchell + (mitchell@cam.nist.gov) in developing this friend interface + for use by the f90gl package. See ../../README.fortran */ + +#include + +#ifndef GLUTCALLBACK + #define GLUTCALLBACK +#endif +#ifndef APIENTRY + #define APIENTRY +#endif + +/* Which callback enumerants for the __glutSetFCB/__glutGetFCB routines. */ +/* NOTE These values are part of a binary interface for the f90gl Fortran + 90 binding and so must NOT changes (additions are allowed). */ + +/* GLUTwindow callbacks. */ +#define GLUT_FCB_DISPLAY 0 /* GLUTdisplayFCB */ +#define GLUT_FCB_RESHAPE 1 /* GLUTreshapeFCB */ +#define GLUT_FCB_MOUSE 2 /* GLUTmouseFCB */ +#define GLUT_FCB_MOTION 3 /* GLUTmotionFCB */ +#define GLUT_FCB_PASSIVE 4 /* GLUTpassiveFCB */ +#define GLUT_FCB_ENTRY 5 /* GLUTentryFCB */ +#define GLUT_FCB_KEYBOARD 6 /* GLUTkeyboardFCB */ +#define GLUT_FCB_KEYBOARD_UP 7 /* GLUTkeyboardFCB */ +#define GLUT_FCB_WINDOW_STATUS 8 /* GLUTwindowStatusFCB */ +#define GLUT_FCB_VISIBILITY 9 /* GLUTvisibilityFCB */ +#define GLUT_FCB_SPECIAL 10 /* GLUTspecialFCB */ +#define GLUT_FCB_SPECIAL_UP 11 /* GLUTspecialFCB */ +#define GLUT_FCB_BUTTON_BOX 12 /* GLUTbuttonBoxFCB */ +#define GLUT_FCB_DIALS 13 /* GLUTdialsFCB */ +#define GLUT_FCB_SPACE_MOTION 14 /* GLUTspaceMotionFCB */ +#define GLUT_FCB_SPACE_ROTATE 15 /* GLUTspaceRotateFCB */ +#define GLUT_FCB_SPACE_BUTTON 16 /* GLUTspaceButtonFCB */ +#define GLUT_FCB_TABLET_MOTION 17 /* GLUTtabletMotionFCB */ +#define GLUT_FCB_TABLET_BUTTON 18 /* GLUTtabletButtonFCB */ +#define GLUT_FCB_JOYSTICK 19 /* GLUTjoystickFCB */ +#define GLUT_FCB_WMCLOSE 20 /* GLUTwmcloseFCB */ +/* Non-GLUTwindow callbacks. */ +#define GLUT_FCB_OVERLAY_DISPLAY 100 /* GLUTdisplayFCB */ +#define GLUT_FCB_SELECT 101 /* GLUTselectFCB */ +#define GLUT_FCB_TIMER 102 /* GLUTtimerFCB */ + +/* GLUT Fortran callback function types. */ +typedef void (GLUTCALLBACK *GLUTdisplayFCB) (void) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTwmcloseFCB) (void) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTreshapeFCB) (int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +/* NOTE the pressed key is int, not unsigned char for Fortran! */ +typedef void (GLUTCALLBACK *GLUTkeyboardFCB) (int *, int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTmouseFCB) (int *, int *, int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTmotionFCB) (int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTpassiveFCB) (int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTentryFCB) (int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTwindowStatusFCB) (int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTvisibilityFCB) (int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTspecialFCB) (int *, int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTbuttonBoxFCB) (int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTdialsFCB) (int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTspaceMotionFCB) (int *, int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTspaceRotateFCB) (int *, int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTspaceButtonFCB) (int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTtabletMotionFCB) (int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTtabletButtonFCB) (int *, int *, int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTjoystickFCB) (unsigned int *buttonMask, int *x, int *y, int *z) OPENGL_DEPRECATED(10_0, 10_9); + +typedef void (GLUTCALLBACK *GLUTselectFCB) (int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTtimerFCB) (int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTmenuStateFCB) (int *) OPENGL_DEPRECATED(10_0, 10_9); /* DEPRECATED. */ +typedef void (GLUTCALLBACK *GLUTmenuStatusFCB) (int *, int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTidleFCB) (void) OPENGL_DEPRECATED(10_0, 10_9); + +/* Functions that set and return Fortran callback functions. */ +extern void* APIENTRY __glutGetFCB(int which) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY __glutSetFCB(int which, void *func) OPENGL_DEPRECATED(10_0, 10_9); + +#endif /* __glutf90_h__ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/glutstroke.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/glutstroke.h" new file mode 100644 index 0000000..80cfe0d --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/glutstroke.h" @@ -0,0 +1,44 @@ +#ifndef __glutstroke_h__ +#define __glutstroke_h__ + +#include + +/* Copyright (c) Mark J. Kilgard, 1994. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#if defined(_WIN32) +#pragma warning (disable:4244) /* disable bogus conversion warnings */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ +#endif + +typedef struct { + float x; + float y; +} CoordRec OPENGL_DEPRECATED(10_0, 10_9), *CoordPtr OPENGL_DEPRECATED(10_0, 10_9); + +typedef struct { + int num_coords; + const CoordRec *coord; +} StrokeRec OPENGL_DEPRECATED(10_0, 10_9), *StrokePtr OPENGL_DEPRECATED(10_0, 10_9); + +typedef struct { + int num_strokes; + const StrokeRec *stroke; + float center; + float right; +} StrokeCharRec OPENGL_DEPRECATED(10_0, 10_9), *StrokeCharPtr OPENGL_DEPRECATED(10_0, 10_9); + +typedef struct { + const char *name; + int num_chars; + const StrokeCharRec *ch; + float top; + float bottom; +} StrokeFontRec OPENGL_DEPRECATED(10_0, 10_9), *StrokeFontPtr OPENGL_DEPRECATED(10_0, 10_9); + +typedef void *GLUTstrokeFont OPENGL_DEPRECATED(10_0, 10_9); + +#endif /* __glutstroke_h__ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/gutil.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/gutil.h" new file mode 100644 index 0000000..02dd936 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/gutil.h" @@ -0,0 +1,91 @@ + +/* + * gutil.h + * + * FUNCTION: + * Provide utilities that allow rotation to occur + * around any axis. + * + * HISTORY: + * created by Linas Vepstas 1990 + * added single & double precision, June 1991, Linas Vepstas + */ + +#ifndef __GUTIL_H__ +#define __GUTIL_H__ + +#include + +#ifdef __GUTIL_DOUBLE +#define gutDouble double +#else +#define gutDouble float +#endif + + +#ifdef _NO_PROTO /* NO ANSI C PROTOTYPING */ + +/* Rotation Utilities */ +extern void rot_axis_f () OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_about_axis_f () OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_omega_f () OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_axis_f () OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_about_axis_f () OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_omega_f () OPENGL_DEPRECATED(10_0, 10_9); + +/* double-precision versions */ +extern void rot_axis_d () OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_about_axis_d () OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_omega_d () OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_axis_d () OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_about_axis_d () OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_omega_d () OPENGL_DEPRECATED(10_0, 10_9); + +/* viewpoint functions */ +extern void uview_direction_d () OPENGL_DEPRECATED(10_0, 10_9); +extern void uview_direction_f () OPENGL_DEPRECATED(10_0, 10_9); +extern void uviewpoint_d () OPENGL_DEPRECATED(10_0, 10_9); +extern void uviewpoint_f () OPENGL_DEPRECATED(10_0, 10_9); + +#else /* _NO_PROTO */ /* ANSI C PROTOTYPING */ + +/* Rotation Utilities */ +extern void rot_axis_f (float omega, float axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_about_axis_f (float angle, float axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_omega_f (float axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_axis_f (float m[4][4], float omega, float axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_about_axis_f (float m[4][4], float angle, float axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_omega_f (float m[4][4], float axis[3]) OPENGL_DEPRECATED(10_0, 10_9); + +/* double-precision versions */ +extern void rot_axis_d (double omega, double axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_about_axis_d (double angle, double axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_omega_d (double axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_axis_d (double m[4][4], double omega, double axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_about_axis_d (double m[4][4], double angle, double axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_omega_d (double m[4][4], double axis[3]) OPENGL_DEPRECATED(10_0, 10_9); + +/* viewpoint functions */ +extern void uview_direction_d (double m[4][4], /* returned */ + double v21[3], /* input */ + double up[3]) OPENGL_DEPRECATED(10_0, 10_9); /* input */ + +extern void uview_direction_f (float m[4][4], /* returned */ + float v21[3], /* input */ + float up[3]) OPENGL_DEPRECATED(10_0, 10_9); /* input */ + +extern void uviewpoint_d (double m[4][4], /* returned */ + double v1[3], /* input */ + double v2[3], /* input */ + double up[3]) OPENGL_DEPRECATED(10_0, 10_9); /* input */ + +extern void uviewpoint_f (float m[4][4], /* returned */ + float v1[3], /* input */ + float v2[3], /* input */ + float up[3]) OPENGL_DEPRECATED(10_0, 10_9); /* input */ + +#endif /* _NO_PROTO */ + +#endif /* _GUTIL_H__ */ + +/* ------------------- end of file ---------------------- */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/intersect.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/intersect.h" new file mode 100644 index 0000000..b6b2433 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/intersect.h" @@ -0,0 +1,391 @@ +/* + * FUNCTION: + * This file contains a number of utilities useful to 3D graphics in + * general, and to the generation of tubing and extrusions in particular + * + * HISTORY: + * Written by Linas Vepstas, August 1991 + * Updated to correctly handle degenerate cases, Linas, February 1993 + */ + +#include +#include "port.h" +#include "vvector.h" + +#define BACKWARDS_INTERSECT (2) + +/* ========================================================== */ +/* + * the Degenerate_Tolerance token represents the greatest amount by + * which different scales in a graphics environment can differ before + * they should be considered "degenerate". That is, when one vector is + * a million times longer than another, changces are that the second will + * be less than a pixel int, and therefore was probably meant to be + * degenerate (by the CAD package, etc.) But what should this tolerance + * be? At least 1 in onethousand (since screen sizes are 1K pixels), but + * les than 1 in 4 million (since this is the limit of single-precision + * floating point accuracy). Of course, if double precision were used, + * then the tolerance could be increased. + * + * Potentially, this naive assumption could cause problems if the CAD + * package attempts to zoom in on small details, and turns out, certain + * points should not hvae been degenerate. The problem presented here + * is that the tolerance could run out before single-precision ran + * out, and so the CAD packages would perceive this as a "bug". + * One alternative is to fiddle around & try to tighten the tolerance. + * However, the right alternative is to code the graphics pipeline in + * double-precision (and tighten the tolerance). + * + * By the way, note that Degernate Tolerance is a "dimensionless" + * quantitiy -- it has no units -- it does not measure feet, inches, + * millimeters or pixels. It is used only in the computations of ratios + * and relative lengths. + */ + +/* + * Right now, the tolerance is set to 2 parts in a million, which + * corresponds to a 19-bit distinction of mantissas. Note that + * single-precsion numbers have 24 bit mantissas. + */ + +#define DEGENERATE_TOLERANCE (0.000002) + +/* ========================================================== */ +/* + * The macro and subroutine INTERSECT are designed to compute the + * intersection of a line (defined by the points v1 and v2) and a plane + * (defined as plane which is normal to the vector n, and contains the + * point p). Both return the point sect, which is the point of + * interesection. + * + * This MACRO attemps to be fairly robust by checking for a divide by + * zero. + */ + +/* ========================================================== */ +/* + * HACK ALERT + * The intersection parameter t has the nice property that if t>1, + * then the intersection is "in front of" p1, and if t<0, then the + * intersection is "behind" p2. Unfortunately, as the intersecting plane + * and the line become parallel, t wraps through infinity -- i.e. t can + * become so large that t becomes "greater than infinity" and comes back + * as a negative number (i.e. winding number hopped by one unit). We + * have no way of detecting this situation without adding gazzillions + * of lines of code of topological algebra to detect the winding number; + * and this would be incredibly difficult, and ruin performance. + * + * Thus, we've installed a cheap hack for use by the "cut style" drawing + * routines. If t proves to be a large negative number (more negative + * than -5), then we assume that t was positive and wound through + * infinity. This makes most cuts look good, without introducing bogus + * cuts at infinity. + */ +/* ========================================================== */ + +#define INTERSECT(sect,p,n,v1,v2) \ +{ \ + gleDouble deno, numer, t, omt; \ + \ + deno = (v1[0] - v2[0]) * n[0]; \ + deno += (v1[1] - v2[1]) * n[1]; \ + deno += (v1[2] - v2[2]) * n[2]; \ + \ + if (deno == 0.0) { \ + VEC_COPY (n, v1); \ + /* printf ("Intersect: Warning: line is coplanar with plane \n"); */ \ + } else { \ + \ + numer = (p[0] - v2[0]) * n[0]; \ + numer += (p[1] - v2[1]) * n[1]; \ + numer += (p[2] - v2[2]) * n[2]; \ + \ + t = numer / deno; \ + omt = 1.0 - t; \ + \ + sect[0] = t * v1[0] + omt * v2[0]; \ + sect[1] = t * v1[1] + omt * v2[1]; \ + sect[2] = t * v1[2] + omt * v2[2]; \ + } \ +} + +/* ========================================================== */ +/* + * The macro and subroutine BISECTING_PLANE compute a normal vector that + * describes the bisecting plane between three points (v1, v2 and v3). + * This bisecting plane has the following properties: + * 1) it contains the point v2 + * 2) the angle it makes with v21 == v2 - v1 is equal to the angle it + * makes with v32 == v3 - v2 + * 3) it is perpendicular to the plane defined by v1, v2, v3. + * + * Having input v1, v2, and v3, it returns a unit vector n. + * + * In some cases, the user may specify degenerate points, and still + * expect "reasonable" or "obvious" behaviour. The "expected" + * behaviour for these degenerate cases is: + * + * 1) if v1 == v2 == v3, then return n=0 + * 2) if v1 == v2, then return v32 (normalized). + * 3) if v2 == v3, then return v21 (normalized). + * 4) if v1, v2 and v3 co-linear, then return v21 (normalized). + * + * Mathematically, these special cases "make sense" -- we just have to + * code around potential divide-by-zero's in the code below. + */ + +/* ========================================================== */ + +#define BISECTING_PLANE(valid,n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double vdot; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 <= DEGENERATE_TOLERANCE * len32) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as bisector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + valid = TRUE; \ + } \ + \ + } else { \ + \ + valid = TRUE; \ + \ + if (len32 <= DEGENERATE_TOLERANCE * len21) { \ + /* return a normalized copy of v21 as bisector */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (n, len21, v21); \ + \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DOT_PRODUCT (vdot, v32, v21); \ + \ + /* if vdot == 1 or -1, then points are colinear */ \ + if ((vdot >= (1.0-DEGENERATE_TOLERANCE)) || \ + (vdot <= (-1.0+DEGENERATE_TOLERANCE))) { \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* go do the full computation */ \ + n[0] = vdot * (v32[0] + v21[0]) - v32[0] - v21[0]; \ + n[1] = vdot * (v32[1] + v21[1]) - v32[1] - v21[1]; \ + n[2] = vdot * (v32[2] + v21[2]) - v32[2] - v21[2]; \ + \ + /* if above if-test's passed, \ + * n should NEVER be of zero length */ \ + VEC_NORMALIZE (n); \ + } \ + } \ + } \ +} + +/* ========================================================== */ +/* + * The block of code below is ifdef'd out, and is here for reference + * purposes only. It performs the "mathematically right thing" for + * computing a bisecting plane, but is, unfortunately, subject ot noise + * in the presence of near degenerate points. Since computer graphics, + * due to sloppy coding, laziness, or correctness, is filled with + * degenerate points, we can't really use this version. The code above + * is far more appropriate for graphics. + */ + +#ifdef MATHEMATICALLY_EXACT_GRAPHICALLY_A_KILLER +#define BISECTING_PLANE(n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double vdot; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 == 0.0) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as bisector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + } \ + \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + if (len32 == 0.0) { \ + /* return a normalized copy of v21 as bisector */ \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DOT_PRODUCT (vdot, v32, v21); \ + \ + /* if vdot == 1 or -1, then points are colinear */ \ + if ((vdot == 1.0) || (vdot == -1.0)) { \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* go do the full computation */ \ + n[0] = vdot * (v32[0] + v21[0]) - v32[0] - v21[0]; \ + n[1] = vdot * (v32[1] + v21[1]) - v32[1] - v21[1]; \ + n[2] = vdot * (v32[2] + v21[2]) - v32[2] - v21[2]; \ + \ + /* if above if-test's passed, \ + * n should NEVER be of zero length */ \ + VEC_NORMALIZE (n); \ + } \ + } \ + } \ +} +#endif + +/* ========================================================== */ +/* + * This macro computes the plane perpendicular to the the plane + * defined by three points, and whose normal vector is givven as the + * difference between the two vectors ... + * + * (See way below for the "math" model if you want to understand this. + * The comments about relative errors above apply here.) + */ + +#define CUTTING_PLANE(valid,n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double lendiff; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 <= DEGENERATE_TOLERANCE * len32) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as cut-vector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + valid = TRUE; \ + } \ + \ + } else { \ + \ + valid = TRUE; \ + \ + if (len32 <= DEGENERATE_TOLERANCE * len21) { \ + /* return a normalized copy of v21 as cut vector */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (n, len21, v21); \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DIFF (n, v21, v32); \ + VEC_LENGTH (lendiff, n); \ + \ + /* if the perp vector is very small, then the two \ + * vectors are darn near collinear, and the cut \ + * vector is probably poorly defined. */ \ + if (lendiff < DEGENERATE_TOLERANCE) { \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + lendiff = 1.0 / lendiff; \ + VEC_SCALE (n, lendiff, n); \ + } \ + } \ + } \ +} + +/* ========================================================== */ + +#ifdef MATHEMATICALLY_EXACT_GRAPHICALLY_A_KILLER +#define CUTTING_PLANE(n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_NORMALIZE (v21); \ + VEC_NORMALIZE (v32); \ + \ + VEC_DIFF (n, v21, v32); \ + VEC_NORMALIZE (n); \ +} +#endif + + +/* ============================================================ */ +/* This macro is used in several places to cycle through a series of + * points to find the next non-degenerate point in a series */ + +#define FIND_NON_DEGENERATE_POINT(inext,npoints,len,diff,point_array) \ +{ \ + gleDouble slen; \ + gleDouble summa[3]; \ + \ + do { \ + /* get distance to next point */ \ + VEC_DIFF (diff, point_array[inext+1], point_array[inext]); \ + VEC_LENGTH (len, diff); \ + VEC_SUM (summa, point_array[inext+1], point_array[inext]); \ + VEC_LENGTH (slen, summa); \ + slen *= DEGENERATE_TOLERANCE; \ + inext ++; \ + } while ((len <= slen) && (inext < npoints-1)); \ +} + +/* ========================================================== */ + +extern int bisecting_plane (gleDouble n[3], /* returned */ + gleDouble v1[3], /* input */ + gleDouble v2[3], /* input */ + gleDouble v3[3]) OPENGL_DEPRECATED(10_0, 10_9); /* input */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/port.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/port.h" new file mode 100644 index 0000000..2827bbf --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/port.h" @@ -0,0 +1,298 @@ + +/* + * port.h + * + * FUNCTION: + * This file contains defines for porting the tubing toolkit from GL to + * OpenGL to some callback scheme. + * + * HISTORY: + * Created by Linas Vepstas -- February 1993 + * Added auto texture coord generation hacks, Linas April 1994 + */ + +#ifndef __GLE_PORT_H__ +#define __GLE_PORT_H__ + + +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +/* ====================================================== */ +/* Some compilers can't handle multiply-subscripted array's */ + +#ifdef FUNKY_C +typedef gleDouble gleVector; +#define AVAL(arr,n,i,j) arr(6*n+3*i+j) +#define VVAL(arr,n,i) arr(3*n+i) + +#else /* FUNKY_C */ +typedef double gleVector[3]; +typedef double glePoint[2]; +#define AVAL(arr,n,i,j) arr[n][i][j] +#define VVAL(arr,n,i) arr[n][i]; + +#endif /* FUNKY_C */ + +/* ====================================================== */ +/* These are used to convey info about topography to the + * texture mapping routines */ + +#define FRONT 1 +#define BACK 2 +#define FRONT_CAP 3 +#define BACK_CAP 4 +#define FILLET 5 + +/* ====================================================== */ + +#define __GLE_DOUBLE + +/* ====================================================== */ + +#ifdef __GLE_DOUBLE +#ifndef gleDouble + #define gleDouble double +#endif +#define urot_axis(a,b,c) urot_axis_d(a,b,c) +#define uview_direction(a,b,c) uview_direction_d(a,b,c) +#define uviewpoint(a,b,c,d) uviewpoint_d(a,b,c,d) +#define MULTMATRIX(m) MULTMATRIX_D(m) +#define LOADMATRIX(m) LOADMATRIX_D(m) +#define V3F(x,j,id) V3F_D(x,j,id) +#define N3F(x) N3F_D(x) +#define T2F(x,y) T2F_D(x,y) +#else +#define gleDouble float +#define urot_axis(a,b,c) urot_axis_f(a,b,c) +#define uview_direction(a,b,c) uview_direction_f(a,b,c) +#define uviewpoint(a,b,c,d) uviewpoint_f(a,b,c,d) +#define MULTMATRIX(m) MULTMATRIX_F(m) +#define LOADMATRIX(m) LOADMATRIX_F(m) +#define V3F(x,j,id) V3F_F(x,j,id) +#define N3F(x) N3F_F(x) +#define T2F(x,y) T2F_F(x,y) +#endif + +/* ====================================================== */ + +#if (defined DEBUG_GL_32 || DEBUG_OPENGL_10) +#undef GL_32 +#undef OPENGL_10 + +#define BGNTMESH(i,len) printf ("bgntmesh() \n"); +#define ENDTMESH() printf ("endtmesh() \n"); +#define BGNPOLYGON() printf ("bgnpolygon() \n"); +#define ENDPOLYGON() printf ("endpolygon() \n"); +#define V3F_F(x,j,id) printf ("v3f(x) %f %f %f \n", x[0], x[1], x[2]); +#define V3F_D(x,j,id) printf ("v3d(x) %f %f %f \n", x[0], x[1], x[2]); +#define N3F_F(x) printf ("n3f(x) %f %f %f \n", x[0], x[1], x[2]); +#define N3F_D(x) printf ("n3d(x) %f %f %f \n", x[0], x[1], x[2]); +#define C3F(x) printf ("c3f(x) %f %f %f \n", x[0], x[1], x[2]); + +#define POPMATRIX() printf ("popmatrix () \n"); +#define PUSHMATRIX() printf ("pushmatrix() \n"); +#define MULTMATRIX_F(x) MULTMATRIX_D(x) +#define LOADMATRIX_F(x) LOADMATRIX_D(x) + + +#define LOADMATRIX_D(x) { \ + int i, j; \ + printf ("loadmatrix (x) \n"); \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ( "%f ", x[i][j]); \ + } \ + printf (" \n"); \ + } \ +} + +#define MULTMATRIX_D(x) { \ + int i, j; \ + printf ("multmatrix (x) \n"); \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ( "%f ", x[i][j]); \ + } \ + printf (" \n"); \ + } \ +} + +#define __IS_LIGHTING_ON (1) + +#endif + +/* ====================================================== */ + +#ifdef GL_32 + +#include + +#define BGNTMESH(i,len) bgntmesh() +#define ENDTMESH() endtmesh() +#define BGNPOLYGON() bgnpolygon() +#define ENDPOLYGON() endpolygon() +#define V3F_F(x,j,id) v3f(x) +#define V3F_D(x,j,id) v3d(x) +#define N3F_F(x) n3f(x) +#define T2F_F(x,y) +#define T2F_D(x,y) +#define C3F(x) c3f(x) + +#define POPMATRIX() popmatrix () +#define PUSHMATRIX() pushmatrix() +#define MULTMATRIX_F(x) multmatrix (x) +#define LOADMATRIX_F(x) loadmatrix (x) + +#define N3F_D(x) { \ + float nnn[3]; \ + nnn[0] = (float) x[0]; \ + nnn[1] = (float) x[1]; \ + nnn[2] = (float) x[2]; \ + n3f (nnn); \ +} + +#define LOADMATRIX_D(x) { \ + int i, j; \ + float mmm[4][4]; \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + mmm[i][j] = (float) x[i][j]; \ + } \ + } \ + loadmatrix(mmm); \ +} + +#define MULTMATRIX_D(x) { \ + int i, j; \ + float mmm[4][4]; \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + mmm[i][j] = (float) x[i][j]; \ + } \ + } \ + multmatrix(mmm); \ +} + +/* #define __IS_LIGHTING_ON (MSINGLE == getmmode()) */ +#define __IS_LIGHTING_ON (extrusion_join_style & TUBE_LIGHTING_ON) + +#endif /* GL_32 */ + +/* ====================================================== */ +#ifdef OPENGL_10 + +#if defined(_WIN32) +#include +#pragma warning (disable:4244) /* disable bogus conversion warnings */ +#endif +#include +#include + +/* +#define N3F_F(x) { \ + float nnn[3]; \ + nnn[0] = - (float) x[0]; \ + nnn[1] = - (float) x[1]; \ + nnn[2] = - (float) x[2]; \ + glNormal3fv (nnn); \ +} +#define N3F_D(x) { \ + float nnn[3]; \ + nnn[0] = - (float) x[0]; \ + nnn[1] = - (float) x[1]; \ + nnn[2] = - (float) x[2]; \ + glNormal3fv (nnn); \ +} +*/ + +#define C3F(x) glColor3fv(x) +#define T2F_F(x,y) glTexCoord2f(x,y) +#define T2F_D(x,y) glTexCoord2d(x,y) + +#define POPMATRIX() glPopMatrix() +#define PUSHMATRIX() glPushMatrix() + +#define MULTMATRIX_F(x) glMultMatrixf ((const GLfloat *)x) +#define LOADMATRIX_F(x) glLoadMatrixf ((const GLfloat *)x) + +#define MULTMATRIX_D(x) glMultMatrixd ((const GLdouble *)x) +#define LOADMATRIX_D(x) glLoadMatrixd ((const GLdouble *)x) + +#define __IS_LIGHTING_ON (glIsEnabled(GL_LIGHTING)) + +/* ====================================================== */ +#ifdef AUTO_TEXTURE + +#define BGNTMESH(i,len) { \ + if(_gle_gc -> bgn_gen_texture) (*(_gle_gc -> bgn_gen_texture))(i,len);\ + glBegin (GL_TRIANGLE_STRIP); \ +} + +#define BGNPOLYGON() { \ + if(_gle_gc -> bgn_gen_texture) (*(_gle_gc -> bgn_gen_texture))();\ + glBegin (GL_POLYGON); \ +} + +#define N3F_F(x) { \ + if(_gle_gc -> n3f_gen_texture) (*(_gle_gc -> n3f_gen_texture))(x); \ + glNormal3fv(x); \ +} + +#define N3F_D(x) { \ + if(_gle_gc -> n3d_gen_texture) (*(_gle_gc -> n3d_gen_texture))(x); \ + glNormal3dv(x); \ +} + +#define V3F_F(x,j,id) { \ + if(_gle_gc -> v3f_gen_texture) (*(_gle_gc -> v3f_gen_texture))(x,j,id);\ + glVertex3fv(x); \ +} + +#define V3F_D(x,j,id) { \ + if(_gle_gc -> v3d_gen_texture) (*(_gle_gc -> v3d_gen_texture))(x,j,id); \ + glVertex3dv(x); \ +} + +#define ENDTMESH() { \ + if(_gle_gc -> end_gen_texture) (*(_gle_gc -> end_gen_texture))(); \ + glEnd (); \ +} + +#define ENDPOLYGON() { \ + if(_gle_gc -> end_gen_texture) (*(_gle_gc -> end_gen_texture))(); \ + glEnd (); \ +} + +/* ====================================================== */ +#else /* AUTO_TEXTURE */ + +#define BGNTMESH(i,len) glBegin (GL_TRIANGLE_STRIP); +#define BGNPOLYGON() glBegin (GL_POLYGON); + +#define N3F_F(x) glNormal3fv(x) +#define N3F_D(x) glNormal3dv(x) +#define V3F_F(x,j,id) glVertex3fv(x); +#define V3F_D(x,j,id) glVertex3dv(x); + +#define ENDTMESH() glEnd () +#define ENDPOLYGON() glEnd() + +#endif /* AUTO_TEXTURE */ + +#endif /* OPENGL_10 */ + +/* ====================================================== */ + + +#endif /* __GLE_PORT_H__ */ +/* ================== END OF FILE ======================= */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/rot.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/rot.h" new file mode 100644 index 0000000..91083e9 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/rot.h" @@ -0,0 +1,98 @@ + +/* + * rot.h + * + * FUNCTION: + * rotation matrix utilities + * + * HISTORY: + * Linas Vepstas Aug 1990 + */ + +/* ========================================================== */ +/* + * The MACROS below generate and return more traditional rotation + * matrices -- matrices for rotations about principal axes. + */ +/* ========================================================== */ + +#define ROTX_CS(m,cosine,sine) \ +{ \ + /* rotation about the x-axis */ \ + \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = (cosine); \ + m[1][2] = (sine); \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = -(sine); \ + m[2][2] = (cosine); \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ + +#define ROTY_CS(m,cosine,sine) \ +{ \ + /* rotation about the y-axis */ \ + \ + m[0][0] = (cosine); \ + m[0][1] = 0.0; \ + m[0][2] = -(sine); \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = (sine); \ + m[2][1] = 0.0; \ + m[2][2] = (cosine); \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ + +#define ROTZ_CS(m,cosine,sine) \ +{ \ + /* rotation about the z-axis */ \ + \ + m[0][0] = (cosine); \ + m[0][1] = (sine); \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = -(sine); \ + m[1][1] = (cosine); \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/segment.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/segment.h" new file mode 100644 index 0000000..6d51637 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/segment.h" @@ -0,0 +1,98 @@ + +/* + * MODULE: segment.h + * + * FUNCTION: + * Contains function prototypes for segment drawing subroutines. + * These are used only internally, and are not to be exported to + * the user. + * + * HISTORY: + * Create by Linas Vepstas + * Added tube.h include to define gleDouble, tad February 2002 + */ + +/* ============================================================ */ + +#include "tube.h" + +extern void draw_segment_plain (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_segment_color (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + float color_last[3], + float color_next[3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_segment_edge_n (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_segment_c_and_edge_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + float color_last[3], + float color_next[3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_segment_facet_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_segment_c_and_facet_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + float color_last[3], + float color_next[3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +/* ============================================================ */ + +extern void draw_binorm_segment_edge_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_binorm_segment_c_and_edge_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + float color_last[3], + float color_next[3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_binorm_segment_facet_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_binorm_segment_c_and_facet_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + float color_last[3], + float color_next[3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_angle_style_back_cap (int ncp, /* number of contour points */ + gleDouble bi[3], /* biscetor */ + gleDouble point_array[][3]) OPENGL_DEPRECATED(10_0, 10_9); /* polyline */ + +/* -------------------------- end of file -------------------------------- */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/tube.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/tube.h" new file mode 100644 index 0000000..9954333 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/tube.h" @@ -0,0 +1,205 @@ +/* + * tube.h + * + * FUNCTION: + * Tubing and Extrusion header file. + * This file provides protypes and defines for the extrusion + * and tubing primitives. + * + * HISTORY: + * Linas Vepstas 1990, 1991 + */ + +#ifndef __TUBE_H__ +#define __TUBE_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + GLE API revision history: + + GLE_API_VERSION is updated to reflect GLE API changes (interface + changes, semantic changes, deletions, or additions). + + GLE_API_VERSION=228 GLUT 3.7 release of GLE. +**/ +#ifndef GLE_API_VERSION /* allow this to be overriden */ +#define GLE_API_VERSION 228 +#endif + +/* some types */ +#ifndef gleDouble + #define gleDouble double +#endif +typedef gleDouble gleAffine[2][3] OPENGL_DEPRECATED(10_0, 10_9); + +/* ====================================================== */ + +/* defines for tubing join styles */ +#define TUBE_JN_RAW 0x1 +#define TUBE_JN_ANGLE 0x2 +#define TUBE_JN_CUT 0x3 +#define TUBE_JN_ROUND 0x4 +#define TUBE_JN_MASK 0xf /* mask bits */ +#define TUBE_JN_CAP 0x10 + +/* determine how normal vectors are to be handled */ +#define TUBE_NORM_FACET 0x100 +#define TUBE_NORM_EDGE 0x200 +#define TUBE_NORM_PATH_EDGE 0x400 /* for spiral, lathe, helix primitives */ +#define TUBE_NORM_MASK 0xf00 /* mask bits */ + +/* closed or open countours */ +#define TUBE_CONTOUR_CLOSED 0x1000 + +#define GLE_TEXTURE_ENABLE 0x10000 +#define GLE_TEXTURE_STYLE_MASK 0xff +#define GLE_TEXTURE_VERTEX_FLAT 1 +#define GLE_TEXTURE_NORMAL_FLAT 2 +#define GLE_TEXTURE_VERTEX_CYL 3 +#define GLE_TEXTURE_NORMAL_CYL 4 +#define GLE_TEXTURE_VERTEX_SPH 5 +#define GLE_TEXTURE_NORMAL_SPH 6 +#define GLE_TEXTURE_VERTEX_MODEL_FLAT 7 +#define GLE_TEXTURE_NORMAL_MODEL_FLAT 8 +#define GLE_TEXTURE_VERTEX_MODEL_CYL 9 +#define GLE_TEXTURE_NORMAL_MODEL_CYL 10 +#define GLE_TEXTURE_VERTEX_MODEL_SPH 11 +#define GLE_TEXTURE_NORMAL_MODEL_SPH 12 + +#ifdef GL_32 +/* HACK for GL 3.2 -- needed because no way to tell if lighting is on. */ +#define TUBE_LIGHTING_ON 0x80000000 + +#define gleExtrusion extrusion +#define gleSetJoinStyle setjoinstyle +#define gleGetJoinStyle getjoinstyle +#define glePolyCone polycone +#define glePolyCylinder polycylinder +#define gleSuperExtrusion super_extrusion +#define gleTwistExtrusion twist_extrusion +#define gleSpiral spiral +#define gleLathe lathe +#define gleHelicoid helicoid +#define gleToroid toroid +#define gleScrew screw + +#endif /* GL_32 */ + +extern int gleGetJoinStyle (void) OPENGL_DEPRECATED(10_0, 10_9); +extern void gleSetJoinStyle (int style) OPENGL_DEPRECATED(10_0, 10_9); /* bitwise OR of flags */ +extern int gleGetNumSlices(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void gleSetNumSlices(int slices) OPENGL_DEPRECATED(10_0, 10_9); + +/* draw polyclinder, specified as a polyline */ +extern void glePolyCylinder (int npoints, /* num points in polyline */ + gleDouble point_array[][3], /* polyline vertces */ + float color_array[][3], /* colors at polyline verts */ + gleDouble radius) OPENGL_DEPRECATED(10_0, 10_9); /* radius of polycylinder */ + +/* draw polycone, specified as a polyline with radii */ +extern void glePolyCone (int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* colors at polyline verts */ + gleDouble radius_array[]) OPENGL_DEPRECATED(10_0, 10_9); /* cone radii at polyline verts */ + +/* extrude arbitrary 2D contour along arbitrary 3D path */ +extern void gleExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3]) OPENGL_DEPRECATED(10_0, 10_9); /* colors at polyline verts */ + +/* extrude 2D contour, specifying local rotations (twists) */ +extern void gleTwistExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* color at polyline verts */ + gleDouble twist_array[]) OPENGL_DEPRECATED(10_0, 10_9); /* countour twists (in degrees) */ + +/* extrude 2D contour, specifying local affine tranformations */ +extern void gleSuperExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* color at polyline verts */ + gleDouble xform_array[][2][3]) OPENGL_DEPRECATED(10_0, 10_9); /* 2D contour xforms */ + +/* spiral moves contour along helical path by parallel transport */ +extern void gleSpiral (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta) OPENGL_DEPRECATED(10_0, 10_9); /* degrees to spiral around */ + +/* lathe moves contour along helical path by helically shearing 3D space */ +extern void gleLathe (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta) OPENGL_DEPRECATED(10_0, 10_9); /* degrees to spiral around */ + +/* similar to spiral, except contour is a circle */ +extern void gleHelicoid (gleDouble rToroid, /* circle contour (torus) radius */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta) OPENGL_DEPRECATED(10_0, 10_9); /* degrees to spiral around */ + +/* similar to lathe, except contour is a circle */ +extern void gleToroid (gleDouble rToroid, /* circle contour (torus) radius */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta) OPENGL_DEPRECATED(10_0, 10_9); /* degrees to spiral around */ + +/* draws a screw shape */ +extern void gleScrew (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startz, /* start of segment */ + gleDouble endz, /* end of segment */ + gleDouble twist) OPENGL_DEPRECATED(10_0, 10_9); /* number of rotations */ + +extern void gleTextureMode (int mode) OPENGL_DEPRECATED(10_0, 10_9); + +#ifdef __cplusplus +} + +#endif +#endif /* __TUBE_H__ */ +/* ================== END OF FILE ======================= */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/tube_gc.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/tube_gc.h" new file mode 100644 index 0000000..8da9b9f --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/tube_gc.h" @@ -0,0 +1,78 @@ + +/* + * tube_gc.h + * + * FUNCTION: + * This file allows for easy changes to changes in the way the extrusion + * library handles state info (i.e. context). + * + * HISTORY: + * Linas Vepstas --- February 1993 + * Added auto texture coord generation hacks, Linas April 1994 + * Added tube.h include to define gleDouble, tad February 2002 + */ + +#include "tube.h" +#include "port.h" /* for gleVector */ + +typedef float gleColor[3] OPENGL_DEPRECATED(10_0, 10_9); +typedef double gleTwoVec[2] OPENGL_DEPRECATED(10_0, 10_9); + +typedef struct { + + /* public methods */ + void (*bgn_gen_texture) (int, double); + void (*n3f_gen_texture) (float *); + void (*n3d_gen_texture) (double *); + void (*v3f_gen_texture) (float *, int, int); + void (*v3d_gen_texture) (double *, int, int); + void (*end_gen_texture) (void); + + /* protected members -- "general knowledge" stuff */ + int join_style; + + /* arguments passed into extrusion code */ + int ncp; /* number of contour points */ + gleTwoVec *contour; /* 2D contour */ + gleTwoVec *cont_normal; /* 2D contour normals */ + gleDouble *up; /* up vector */ + int npoints; /* number of points in polyline */ + gleVector *point_array; /* path */ + gleColor *color_array; /* path colors */ + gleAffine *xform_array; /* contour xforms */ + + /* private members, used by texturing code */ + int num_vert; + int segment_number; + double segment_length; + double accum_seg_len; + double prev_x; + double prev_y; + + void (*save_bgn_gen_texture) (int, double); + void (*save_n3f_gen_texture) (float *); + void (*save_n3d_gen_texture) (double *); + void (*save_v3f_gen_texture) (float *, int, int); + void (*save_v3d_gen_texture) (double *, int, int); + void (*save_end_gen_texture) (void); + +} gleGC OPENGL_DEPRECATED(10_0, 10_9); + +extern gleGC *_gle_gc OPENGL_DEPRECATED(10_0, 10_9); +extern gleGC * gleCreateGC (void) OPENGL_DEPRECATED(10_0, 10_9); + +#define INIT_GC() {if (!_gle_gc) _gle_gc = gleCreateGC(); } +#define extrusion_join_style (_gle_gc->join_style) + +#define __TUBE_CLOSE_CONTOUR (extrusion_join_style & TUBE_CONTOUR_CLOSED) +#define __TUBE_DRAW_CAP (extrusion_join_style & TUBE_JN_CAP) +#define __TUBE_DRAW_FACET_NORMALS (extrusion_join_style & TUBE_NORM_FACET) +#define __TUBE_DRAW_PATH_EDGE_NORMALS (extrusion_join_style & TUBE_NORM_PATH_EDGE) + +#define __TUBE_STYLE (extrusion_join_style & TUBE_JN_MASK) +#define __TUBE_RAW_JOIN (extrusion_join_style & TUBE_JN_RAW) +#define __TUBE_CUT_JOIN (extrusion_join_style & TUBE_JN_CUT) +#define __TUBE_ANGLE_JOIN (extrusion_join_style & TUBE_JN_ANGLE) +#define __TUBE_ROUND_JOIN (extrusion_join_style & TUBE_JN_ROUND) + +/* ======================= END OF FILE ========================== */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/vvector.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/vvector.h" new file mode 100644 index 0000000..b58dcd6 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Headers/vvector.h" @@ -0,0 +1,1339 @@ + +/* + * vvector.h + * + * FUNCTION: + * This file contains a number of utilities useful for handling + * 3D vectors + * + * HISTORY: + * Written by Linas Vepstas, August 1991 + * Added 2D code, March 1993 + * Added Outer products, C++ proofed, Linas Vepstas October 1993 + */ + +#ifndef __GUTIL_VECTOR_H__ +#define __GUTIL_VECTOR_H__ + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + + +#include +#include "port.h" + +/* ========================================================== */ +/* Zero out a 2D vector */ + +#define VEC_ZERO_2(a) \ +{ \ + (a)[0] = (a)[1] = 0.0; \ +} + +/* ========================================================== */ +/* Zero out a 3D vector */ + +#define VEC_ZERO(a) \ +{ \ + (a)[0] = (a)[1] = (a)[2] = 0.0; \ +} + +/* ========================================================== */ +/* Zero out a 4D vector */ + +#define VEC_ZERO_4(a) \ +{ \ + (a)[0] = (a)[1] = (a)[2] = (a)[3] = 0.0; \ +} + +/* ========================================================== */ +/* Vector copy */ + +#define VEC_COPY_2(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ +} + +/* ========================================================== */ +/* Copy 3D vector */ + +#define VEC_COPY(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ + (b)[2] = (a)[2]; \ +} + +/* ========================================================== */ +/* Copy 4D vector */ + +#define VEC_COPY_4(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ + (b)[2] = (a)[2]; \ + (b)[3] = (a)[3]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF_2(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ + (v21)[2] = (v2)[2] - (v1)[2]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF_4(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ + (v21)[2] = (v2)[2] - (v1)[2]; \ + (v21)[3] = (v2)[3] - (v1)[3]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM_2(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ + (v21)[2] = (v2)[2] + (v1)[2]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM_4(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ + (v21)[2] = (v2)[2] + (v1)[2]; \ + (v21)[3] = (v2)[3] + (v1)[3]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE_2(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ + (c)[2] = (a)*(b)[2]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE_4(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ + (c)[2] = (a)*(b)[2]; \ + (c)[3] = (a)*(b)[3]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM_2(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ + (c)[2] += (a)*(b)[2]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM_4(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ + (c)[2] += (a)*(b)[2]; \ + (c)[3] += (a)*(b)[3]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT_2(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT_4(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2] + (a)[3]*(b)[3] ; \ +} + +/* ========================================================== */ +/* vector impact parameter (squared) */ + +#define VEC_IMPACT_SQ(bsq,direction,position) \ +{ \ + gleDouble vlen, llel; \ + VEC_DOT_PRODUCT (vlen, position, position); \ + VEC_DOT_PRODUCT (llel, direction, position); \ + bsq = vlen - llel*llel; \ +} + +/* ========================================================== */ +/* vector impact parameter */ + +#define VEC_IMPACT(bsq,direction,position) \ +{ \ + VEC_IMPACT_SQ(bsq,direction,position); \ + bsq = sqrt (bsq); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH_2(vlen,a) \ +{ \ + vlen = a[0]*a[0] + a[1]*a[1]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH(vlen,a) \ +{ \ + vlen = (a)[0]*(a)[0] + (a)[1]*(a)[1]; \ + vlen += (a)[2]*(a)[2]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH_4(vlen,a) \ +{ \ + vlen = (a)[0]*(a)[0] + (a)[1]*(a)[1]; \ + vlen += (a)[2]*(a)[2]; \ + vlen += (a)[3] * (a)[3]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* distance between two points */ + +#define VEC_DISTANCE(vlen,va,vb) \ +{ \ + gleDouble tmp[4]; \ + VEC_DIFF (tmp, vb, va); \ + VEC_LENGTH (vlen, tmp); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_CONJUGATE_LENGTH(vlen,a) \ +{ \ + vlen = 1.0 - a[0]*a[0] - a[1]*a[1] - a[2]*a[2];\ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_NORMALIZE(a) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen,a); \ + if (vlen != 0.0) { \ + vlen = 1.0 / vlen; \ + a[0] *= vlen; \ + a[1] *= vlen; \ + a[2] *= vlen; \ + } \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_RENORMALIZE(a,newlen) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen,a); \ + if (vlen != 0.0) { \ + vlen = newlen / vlen; \ + a[0] *= vlen; \ + a[1] *= vlen; \ + a[2] *= vlen; \ + } \ +} + +/* ========================================================== */ +/* 3D Vector cross product yeilding vector */ + +#define VEC_CROSS_PRODUCT(c,a,b) \ +{ \ + c[0] = (a)[1] * (b)[2] - (a)[2] * (b)[1]; \ + c[1] = (a)[2] * (b)[0] - (a)[0] * (b)[2]; \ + c[2] = (a)[0] * (b)[1] - (a)[1] * (b)[0]; \ +} + +/* ========================================================== */ +/* Vector perp -- assumes that n is of unit length + * accepts vector v, subtracts out any component parallel to n */ + +#define VEC_PERP(vp,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vp[0] = (v)[0] - (vdot) * (n)[0]; \ + vp[1] = (v)[1] - (vdot) * (n)[1]; \ + vp[2] = (v)[2] - (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector parallel -- assumes that n is of unit length + * accepts vector v, subtracts out any component perpendicular to n */ + +#define VEC_PARALLEL(vp,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vp[0] = (vdot) * (n)[0]; \ + vp[1] = (vdot) * (n)[1]; \ + vp[2] = (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector reflection -- assumes n is of unit length */ +/* Takes vector v, reflects it against reflector n, and returns vr */ + +#define VEC_REFLECT(vr,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vr[0] = (v)[0] - 2.0 * (vdot) * (n)[0]; \ + vr[1] = (v)[1] - 2.0 * (vdot) * (n)[1]; \ + vr[2] = (v)[2] - 2.0 * (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector blending */ +/* Takes two vectors a, b, blends them together */ + +#define VEC_BLEND(vr,sa,a,sb,b) \ +{ \ + \ + vr[0] = (sa) * (a)[0] + (sb) * (b)[0]; \ + vr[1] = (sa) * (a)[1] + (sb) * (b)[1]; \ + vr[2] = (sa) * (a)[2] + (sb) * (b)[2]; \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT_2(a) \ +{ \ + double vlen; \ + VEC_LENGTH_2 (vlen, a); \ + printf (" a is %f %f length of a is %f \n", a[0], a[1], vlen); \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT(a) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen, (a)); \ + printf (" a is %f %f %f length of a is %f \n", (a)[0], (a)[1], (a)[2], vlen); \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT_4(a) \ +{ \ + double vlen; \ + VEC_LENGTH_4 (vlen, (a)); \ + printf (" a is %f %f %f %f length of a is %f \n", \ + (a)[0], (a)[1], (a)[2], (a)[3], vlen); \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_4X4(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_3X3(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<3; i++) { \ + for (j=0; j<3; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_2X3(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<2; i++) { \ + for (j=0; j<3; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* initialize matrix */ + +#define IDENTIFY_MATRIX_3X3(m) \ +{ \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ +} + +/* ========================================================== */ +/* initialize matrix */ + +#define IDENTIFY_MATRIX_4X4(m) \ +{ \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_2X2(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_2X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_3X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ + \ + b[2][0] = a[2][0]; \ + b[2][1] = a[2][1]; \ + b[2][2] = a[2][2]; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_4X4(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + b[0][3] = a[0][3]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ + b[1][3] = a[1][3]; \ + \ + b[2][0] = a[2][0]; \ + b[2][1] = a[2][1]; \ + b[2][2] = a[2][2]; \ + b[2][3] = a[2][3]; \ + \ + b[3][0] = a[3][0]; \ + b[3][1] = a[3][1]; \ + b[3][2] = a[3][2]; \ + b[3][3] = a[3][3]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_2X2(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_3X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + b[0][2] = a[2][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[2][1]; \ + \ + b[2][0] = a[0][2]; \ + b[2][1] = a[1][2]; \ + b[2][2] = a[2][2]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_4X4(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + b[0][2] = a[2][0]; \ + b[0][3] = a[3][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[2][1]; \ + b[1][3] = a[3][1]; \ + \ + b[2][0] = a[0][2]; \ + b[2][1] = a[1][2]; \ + b[2][2] = a[2][2]; \ + b[2][3] = a[3][2]; \ + \ + b[3][0] = a[0][3]; \ + b[3][1] = a[1][3]; \ + b[3][2] = a[2][3]; \ + b[3][3] = a[3][3]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_2X2(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_3X3(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + b[0][2] = (s) * a[0][2]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ + b[1][2] = (s) * a[1][2]; \ + \ + b[2][0] = (s) * a[2][0]; \ + b[2][1] = (s) * a[2][1]; \ + b[2][2] = (s) * a[2][2]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_4X4(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + b[0][2] = (s) * a[0][2]; \ + b[0][3] = (s) * a[0][3]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ + b[1][2] = (s) * a[1][2]; \ + b[1][3] = (s) * a[1][3]; \ + \ + b[2][0] = (s) * a[2][0]; \ + b[2][1] = (s) * a[2][1]; \ + b[2][2] = (s) * a[2][2]; \ + b[2][3] = (s) * a[2][3]; \ + \ + b[3][0] = s * a[3][0]; \ + b[3][1] = s * a[3][1]; \ + b[3][2] = s * a[3][2]; \ + b[3][3] = s * a[3][3]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_2X2(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ +} + +/* +========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_3X3(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + b[0][2] += (s) * a[0][2]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ + b[1][2] += (s) * a[1][2]; \ + \ + b[2][0] += (s) * a[2][0]; \ + b[2][1] += (s) * a[2][1]; \ + b[2][2] += (s) * a[2][2]; \ +} + +/* +========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_4X4(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + b[0][2] += (s) * a[0][2]; \ + b[0][3] += (s) * a[0][3]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ + b[1][2] += (s) * a[1][2]; \ + b[1][3] += (s) * a[1][3]; \ + \ + b[2][0] += (s) * a[2][0]; \ + b[2][1] += (s) * a[2][1]; \ + b[2][2] += (s) * a[2][2]; \ + b[2][3] += (s) * a[2][3]; \ + \ + b[3][0] += (s) * a[3][0]; \ + b[3][1] += (s) * a[3][1]; \ + b[3][2] += (s) * a[3][2]; \ + b[3][3] += (s) * a[3][3]; \ +} + +/* +========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_2X2(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]; \ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]; \ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]; \ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]; \ + \ +} + +/* ========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_3X3(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]; \ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1]; \ + c[0][2] = a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2]; \ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0]; \ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1]; \ + c[1][2] = a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2]; \ + \ + c[2][0] = a[2][0]*b[0][0]+a[2][1]*b[1][0]+a[2][2]*b[2][0]; \ + c[2][1] = a[2][0]*b[0][1]+a[2][1]*b[1][1]+a[2][2]*b[2][1]; \ + c[2][2] = a[2][0]*b[0][2]+a[2][1]*b[1][2]+a[2][2]*b[2][2]; \ +} + +/* ========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_4X4(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]+a[0][3]*b[3][0];\ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1]+a[0][3]*b[3][1];\ + c[0][2] = a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2]+a[0][3]*b[3][2];\ + c[0][3] = a[0][0]*b[0][3]+a[0][1]*b[1][3]+a[0][2]*b[2][3]+a[0][3]*b[3][3];\ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0]+a[1][3]*b[3][0];\ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1]+a[1][3]*b[3][1];\ + c[1][2] = a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2]+a[1][3]*b[3][2];\ + c[1][3] = a[1][0]*b[0][3]+a[1][1]*b[1][3]+a[1][2]*b[2][3]+a[1][3]*b[3][3];\ + \ + c[2][0] = a[2][0]*b[0][0]+a[2][1]*b[1][0]+a[2][2]*b[2][0]+a[2][3]*b[3][0];\ + c[2][1] = a[2][0]*b[0][1]+a[2][1]*b[1][1]+a[2][2]*b[2][1]+a[2][3]*b[3][1];\ + c[2][2] = a[2][0]*b[0][2]+a[2][1]*b[1][2]+a[2][2]*b[2][2]+a[2][3]*b[3][2];\ + c[2][3] = a[2][0]*b[0][3]+a[2][1]*b[1][3]+a[2][2]*b[2][3]+a[2][3]*b[3][3];\ + \ + c[3][0] = a[3][0]*b[0][0]+a[3][1]*b[1][0]+a[3][2]*b[2][0]+a[3][3]*b[3][0];\ + c[3][1] = a[3][0]*b[0][1]+a[3][1]*b[1][1]+a[3][2]*b[2][1]+a[3][3]*b[3][1];\ + c[3][2] = a[3][0]*b[0][2]+a[3][1]*b[1][2]+a[3][2]*b[2][2]+a[3][3]*b[3][2];\ + c[3][3] = a[3][0]*b[0][3]+a[3][1]*b[1][3]+a[3][2]*b[2][3]+a[3][3]*b[3][3];\ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_2X2(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1]; \ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_3X3(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2]; \ + p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2]; \ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_4X4(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2] + m[0][3]*v[3]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2] + m[1][3]*v[3]; \ + p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2] + m[2][3]*v[3]; \ + p[3] = m[3][0]*v[0] + m[3][1]*v[1] + m[3][2]*v[2] + m[3][3]*v[3]; \ +} + +/* ========================================================== */ +/* vector transpose times matrix */ +/* p[j] = v[0]*m[0][j] + v[1]*m[1][j] + v[2]*m[2][j]; */ + +#define VEC_DOT_MAT_3X3(p,v,m) \ +{ \ + p[0] = v[0]*m[0][0] + v[1]*m[1][0] + v[2]*m[2][0]; \ + p[1] = v[0]*m[0][1] + v[1]*m[1][1] + v[2]*m[2][1]; \ + p[2] = v[0]*m[0][2] + v[1]*m[1][2] + v[2]*m[2][2]; \ +} + +/* ========================================================== */ +/* affine matrix times vector */ +/* The matrix is assumed to be an affine matrix, with last two + * entries representing a translation */ + +#define MAT_DOT_VEC_2X3(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]; \ +} + +/* ========================================================== */ +/* inverse transpose of matrix times vector + * + * This macro computes inverse transpose of matrix m, + * and multiplies vector v into it, to yeild vector p + * + * DANGER !!! Do Not use this on normal vectors!!! + * It will leave normals the wrong length !!! + * See macro below for use on normals. + */ + +#define INV_TRANSP_MAT_DOT_VEC_2X2(p,m,v) \ +{ \ + gleDouble det; \ + \ + det = m[0][0]*m[1][1] - m[0][1]*m[1][0]; \ + p[0] = m[1][1]*v[0] - m[1][0]*v[1]; \ + p[1] = - m[0][1]*v[0] + m[0][0]*v[1]; \ + \ + /* if matrix not singular, and not orthonormal, then renormalize */ \ + if ((det!=1.0) && (det != 0.0)) { \ + det = 1.0 / det; \ + p[0] *= det; \ + p[1] *= det; \ + } \ +} + +/* ========================================================== */ +/* transform normal vector by inverse transpose of matrix + * and then renormalize the vector + * + * This macro computes inverse transpose of matrix m, + * and multiplies vector v into it, to yeild vector p + * Vector p is then normalized. + */ + + +#define NORM_XFORM_2X2(p,m,v) \ +{ \ + double mlen; \ + \ + /* do nothing if off-diagonals are zero and diagonals are \ + * equal */ \ + if ((m[0][1] != 0.0) || (m[1][0] != 0.0) || (m[0][0] != m[1][1])) { \ + p[0] = m[1][1]*v[0] - m[1][0]*v[1]; \ + p[1] = - m[0][1]*v[0] + m[0][0]*v[1]; \ + \ + mlen = p[0]*p[0] + p[1]*p[1]; \ + mlen = 1.0 / sqrt (mlen); \ + p[0] *= mlen; \ + p[1] *= mlen; \ + } else { \ + VEC_COPY_2 (p, v); \ + } \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_2X2(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_3X3(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + m[0][2] = v[0] * t[2]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ + m[1][2] = v[1] * t[2]; \ + \ + m[2][0] = v[2] * t[0]; \ + m[2][1] = v[2] * t[1]; \ + m[2][2] = v[2] * t[2]; \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_4X4(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + m[0][2] = v[0] * t[2]; \ + m[0][3] = v[0] * t[3]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ + m[1][2] = v[1] * t[2]; \ + m[1][3] = v[1] * t[3]; \ + \ + m[2][0] = v[2] * t[0]; \ + m[2][1] = v[2] * t[1]; \ + m[2][2] = v[2] * t[2]; \ + m[2][3] = v[2] * t[3]; \ + \ + m[3][0] = v[3] * t[0]; \ + m[3][1] = v[3] * t[1]; \ + m[3][2] = v[3] * t[2]; \ + m[3][3] = v[3] * t[3]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_2X2(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_3X3(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + m[0][2] += v[0] * t[2]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ + m[1][2] += v[1] * t[2]; \ + \ + m[2][0] += v[2] * t[0]; \ + m[2][1] += v[2] * t[1]; \ + m[2][2] += v[2] * t[2]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_4X4(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + m[0][2] += v[0] * t[2]; \ + m[0][3] += v[0] * t[3]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ + m[1][2] += v[1] * t[2]; \ + m[1][3] += v[1] * t[3]; \ + \ + m[2][0] += v[2] * t[0]; \ + m[2][1] += v[2] * t[1]; \ + m[2][2] += v[2] * t[2]; \ + m[2][3] += v[2] * t[3]; \ + \ + m[3][0] += v[3] * t[0]; \ + m[3][1] += v[3] * t[1]; \ + m[3][2] += v[3] * t[2]; \ + m[3][3] += v[3] * t[3]; \ +} + +/* +========================================================== */ +/* determinant of matrix + * + * Computes determinant of matrix m, returning d + */ + +#define DETERMINANT_2X2(d,m) \ +{ \ + d = m[0][0] * m[1][1] - m[0][1] * m[1][0]; \ +} + +/* ========================================================== */ +/* determinant of matrix + * + * Computes determinant of matrix m, returning d + */ + +#define DETERMINANT_3X3(d,m) \ +{ \ + d = m[0][0] * (m[1][1]*m[2][2] - m[1][2] * m[2][1]); \ + d -= m[0][1] * (m[1][0]*m[2][2] - m[1][2] * m[2][0]); \ + d += m[0][2] * (m[1][0]*m[2][1] - m[1][1] * m[2][0]); \ +} + +/* ========================================================== */ +/* i,j,th cofactor of a 4x4 matrix + * + */ + +#define COFACTOR_4X4_IJ(fac,m,i,j) \ +{ \ + int ii[4], jj[4], k; \ + \ + /* compute which row, columnt to skip */ \ + for (k=0; k + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Caution.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Caution.tiff" new file mode 100644 index 0000000..ec49652 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Caution.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Dutch.lproj/GLUT.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Dutch.lproj/GLUT.nib/objects.nib" new file mode 100644 index 0000000..79b06be Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Dutch.lproj/GLUT.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Dutch.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Dutch.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..c7e4bac Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Dutch.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Dutch.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Dutch.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..eab0cef Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Dutch.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Dutch.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Dutch.lproj/GLUTUI.strings" new file mode 100644 index 0000000..d8a91c1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Dutch.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Dutch.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Dutch.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Dutch.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/objects.nib" new file mode 100644 index 0000000..8a7140e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/English.lproj/GLUT.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..29125d4 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/English.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..ecc3879 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/English.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/English.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/English.lproj/GLUTUI.strings" new file mode 100644 index 0000000..1dcf9ee Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/English.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/English.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/English.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/English.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/French.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/French.lproj/GLUT.nib" new file mode 100644 index 0000000..966fa89 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/French.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/French.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/French.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..a1c0d52 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/French.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/French.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/French.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..696cfe4 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/French.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/French.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/French.lproj/GLUTUI.strings" new file mode 100644 index 0000000..f1eab3b Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/French.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/French.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/French.lproj/InfoPlist.strings" new file mode 100644 index 0000000..b812d82 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/French.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/German.lproj/GLUT.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/German.lproj/GLUT.nib/objects.nib" new file mode 100644 index 0000000..22bf5af Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/German.lproj/GLUT.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/German.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/German.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..d7b5720 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/German.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/German.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/German.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..282e62a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/German.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/German.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/German.lproj/GLUTUI.strings" new file mode 100644 index 0000000..09b9d2c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/German.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/German.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/German.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/German.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Info.plist" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Info.plist" new file mode 100644 index 0000000..61c93a5 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Info.plist" @@ -0,0 +1,44 @@ + + + + + BuildMachineOSBuild + 15A281 + CFBundleDevelopmentRegion + English + CFBundleExecutable + GLUT + CFBundleGetInfoString + 3.6.3, Copyright © 2001-2014 Apple Inc. All rights reserved. + CFBundleIdentifier + com.apple.glut + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + FMWK + CFBundleShortVersionString + 3.6.3 + CFBundleSignature + ???? + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + GLUT-3.6.3 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 7A176g + DTPlatformVersion + GM + DTSDKBuild + 15A281 + DTSDKName + macosx10.11internal + DTXcode + 0700 + DTXcodeBuild + 7A176g + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Italian.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Italian.lproj/GLUT.nib" new file mode 100644 index 0000000..212372d Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Italian.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Italian.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Italian.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..1988355 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Italian.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Italian.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Italian.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..18d5944 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Italian.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Italian.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Italian.lproj/GLUTUI.strings" new file mode 100644 index 0000000..db99f3f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Italian.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Italian.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Italian.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Italian.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Japanese.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Japanese.lproj/GLUT.nib" new file mode 100644 index 0000000..22bf9b6 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Japanese.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Japanese.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Japanese.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..39af42a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Japanese.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Japanese.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Japanese.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..987249c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Japanese.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Japanese.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Japanese.lproj/GLUTUI.strings" new file mode 100644 index 0000000..e9e7306 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Japanese.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Japanese.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Japanese.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Japanese.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Spanish.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Spanish.lproj/GLUT.nib" new file mode 100644 index 0000000..203e64a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Spanish.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Spanish.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Spanish.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..a129bb0 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Spanish.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Spanish.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Spanish.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..b31b35f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Spanish.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Spanish.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Spanish.lproj/GLUTUI.strings" new file mode 100644 index 0000000..7818349 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Spanish.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Spanish.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Spanish.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/Spanish.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ar.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ar.lproj/GLUT.nib" new file mode 100644 index 0000000..d23e520 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ar.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ar.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ar.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..cc12579 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ar.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ar.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ar.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..ccc49d1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ar.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ar.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ar.lproj/GLUTUI.strings" new file mode 100644 index 0000000..f9101cb Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ar.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ar.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ar.lproj/InfoPlist.strings" new file mode 100644 index 0000000..0db71cb Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ar.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/blankCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/blankCursor.tiff" new file mode 100644 index 0000000..a2b0cf1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/blankCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/bottomCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/bottomCursor.tiff" new file mode 100644 index 0000000..c3f4795 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/bottomCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/bottomleftCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/bottomleftCursor.tiff" new file mode 100644 index 0000000..274529f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/bottomleftCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/bottomrightCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/bottomrightCursor.tiff" new file mode 100644 index 0000000..dec4252 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/bottomrightCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ca.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ca.lproj/GLUT.nib" new file mode 100644 index 0000000..2455871 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ca.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ca.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ca.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..c2c1360 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ca.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ca.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ca.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..c3f15ec Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ca.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ca.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ca.lproj/GLUTUI.strings" new file mode 100644 index 0000000..56eb700 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ca.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ca.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ca.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ca.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/crossCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/crossCursor.tiff" new file mode 100644 index 0000000..8536c0e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/crossCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/cs.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/cs.lproj/GLUT.nib" new file mode 100644 index 0000000..3ca1fc4 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/cs.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/cs.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/cs.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..7a8ac5a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/cs.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/cs.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/cs.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..724a434 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/cs.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/cs.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/cs.lproj/GLUTUI.strings" new file mode 100644 index 0000000..9b1b585 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/cs.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/cs.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/cs.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/cs.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/cycleCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/cycleCursor.tiff" new file mode 100644 index 0000000..34b52f6 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/cycleCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/da.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/da.lproj/GLUT.nib" new file mode 100644 index 0000000..b437c34 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/da.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/da.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/da.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..0fcbc83 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/da.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/da.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/da.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..d594ecf Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/da.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/da.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/da.lproj/GLUTUI.strings" new file mode 100644 index 0000000..461744c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/da.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/da.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/da.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/da.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/destroyCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/destroyCursor.tiff" new file mode 100644 index 0000000..9e3a1cb Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/destroyCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/el.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/el.lproj/GLUT.nib" new file mode 100644 index 0000000..c3f55f1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/el.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/el.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/el.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..33013a0 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/el.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/el.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/el.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..a8d7cbd Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/el.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/el.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/el.lproj/GLUTUI.strings" new file mode 100644 index 0000000..89d4d1c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/el.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/el.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/el.lproj/InfoPlist.strings" new file mode 100644 index 0000000..5a5b1d6 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/el.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/es_MX.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/es_MX.lproj/GLUT.nib" new file mode 100644 index 0000000..3b621c6 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/es_MX.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/es_MX.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/es_MX.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..be5edf7 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/es_MX.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/es_MX.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/es_MX.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..cc867aa Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/es_MX.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/es_MX.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/es_MX.lproj/GLUTUI.strings" new file mode 100644 index 0000000..df8bace Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/es_MX.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/es_MX.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/es_MX.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/es_MX.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/fi.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/fi.lproj/GLUT.nib" new file mode 100644 index 0000000..ea0bfa1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/fi.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/fi.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/fi.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..305ab42 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/fi.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/fi.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/fi.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..6a130d2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/fi.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/fi.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/fi.lproj/GLUTUI.strings" new file mode 100644 index 0000000..d80a9b3 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/fi.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/fi.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/fi.lproj/InfoPlist.strings" new file mode 100644 index 0000000..92c7a04 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/fi.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/fingerCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/fingerCursor.tiff" new file mode 100644 index 0000000..0087c66 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/fingerCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/he.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/he.lproj/GLUT.nib" new file mode 100644 index 0000000..839571e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/he.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/he.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/he.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..eadda01 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/he.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/he.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/he.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..79555da Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/he.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/he.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/he.lproj/GLUTUI.strings" new file mode 100644 index 0000000..9d7e5f7 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/he.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/he.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/he.lproj/InfoPlist.strings" new file mode 100644 index 0000000..8ee9790 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/he.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/helpCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/helpCursor.tiff" new file mode 100644 index 0000000..fc4a88a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/helpCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hr.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hr.lproj/GLUT.nib" new file mode 100644 index 0000000..4903126 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hr.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hr.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hr.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..17f8705 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hr.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hr.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hr.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..6b1b193 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hr.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hr.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hr.lproj/GLUTUI.strings" new file mode 100644 index 0000000..5fe6297 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hr.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hr.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hr.lproj/InfoPlist.strings" new file mode 100644 index 0000000..1be586d Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hr.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hu.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hu.lproj/GLUT.nib" new file mode 100644 index 0000000..f970c5f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hu.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hu.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hu.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..207ccff Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hu.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hu.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hu.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..e18ca17 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hu.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hu.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hu.lproj/GLUTUI.strings" new file mode 100644 index 0000000..b21b15c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hu.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hu.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hu.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/hu.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/id.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/id.lproj/GLUT.nib" new file mode 100644 index 0000000..a2af2f3 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/id.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/id.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/id.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..ca149b3 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/id.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/id.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/id.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..9dbcdfd Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/id.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/id.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/id.lproj/GLUTUI.strings" new file mode 100644 index 0000000..580bb84 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/id.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/id.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/id.lproj/InfoPlist.strings" new file mode 100644 index 0000000..d84993a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/id.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ko.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ko.lproj/GLUT.nib" new file mode 100644 index 0000000..3924043 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ko.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ko.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ko.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..8c62d65 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ko.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ko.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ko.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..3597eaf Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ko.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ko.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ko.lproj/GLUTUI.strings" new file mode 100644 index 0000000..b756109 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ko.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ko.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ko.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ko.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/leftCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/leftCursor.tiff" new file mode 100644 index 0000000..852b69b Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/leftCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/leftRightCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/leftRightCursor.tiff" new file mode 100644 index 0000000..37fe393 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/leftRightCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ms.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ms.lproj/GLUT.nib" new file mode 100644 index 0000000..f3b5d1e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ms.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ms.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ms.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..03b8228 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ms.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ms.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ms.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..58ccc40 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ms.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ms.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ms.lproj/GLUTUI.strings" new file mode 100644 index 0000000..e8feaee Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ms.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ms.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ms.lproj/InfoPlist.strings" new file mode 100644 index 0000000..d84993a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ms.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/no.lproj/GLUT.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/no.lproj/GLUT.nib/objects.nib" new file mode 100644 index 0000000..c64d501 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/no.lproj/GLUT.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/no.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/no.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..b4bb024 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/no.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/no.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/no.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..fc46ede Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/no.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/no.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/no.lproj/GLUTUI.strings" new file mode 100644 index 0000000..dbe9bd4 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/no.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/no.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/no.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/no.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pl.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pl.lproj/GLUT.nib" new file mode 100644 index 0000000..de39520 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pl.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pl.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pl.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..78a7a88 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pl.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pl.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pl.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..bbc1931 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pl.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pl.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pl.lproj/GLUTUI.strings" new file mode 100644 index 0000000..c162e2f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pl.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pl.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pl.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pl.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt.lproj/GLUT.nib" new file mode 100644 index 0000000..cb3d269 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..66de19c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..af003ce Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt.lproj/GLUTUI.strings" new file mode 100644 index 0000000..41b8837 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt_PT.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt_PT.lproj/GLUT.nib" new file mode 100644 index 0000000..dde36df Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt_PT.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt_PT.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt_PT.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..c751967 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt_PT.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt_PT.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt_PT.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..c5af435 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt_PT.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt_PT.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt_PT.lproj/GLUTUI.strings" new file mode 100644 index 0000000..beb9372 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt_PT.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt_PT.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt_PT.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/pt_PT.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/rightArrowCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/rightArrowCursor.tiff" new file mode 100644 index 0000000..d852616 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/rightArrowCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/rightCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/rightCursor.tiff" new file mode 100644 index 0000000..9781f22 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/rightCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ro.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ro.lproj/GLUT.nib" new file mode 100644 index 0000000..43164d5 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ro.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ro.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ro.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..5ad661c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ro.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ro.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ro.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..d13c841 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ro.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ro.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ro.lproj/GLUTUI.strings" new file mode 100644 index 0000000..d256df7 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ro.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ro.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ro.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ro.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ru.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ru.lproj/GLUT.nib" new file mode 100644 index 0000000..c189bc1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ru.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ru.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ru.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..66f8047 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ru.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ru.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ru.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..b5f52d9 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ru.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ru.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ru.lproj/GLUTUI.strings" new file mode 100644 index 0000000..eda51a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ru.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ru.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ru.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/ru.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sk.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sk.lproj/GLUT.nib" new file mode 100644 index 0000000..bea5da5 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sk.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sk.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sk.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..52fe2b9 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sk.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sk.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sk.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..9db485b Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sk.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sk.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sk.lproj/GLUTUI.strings" new file mode 100644 index 0000000..9f203b8 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sk.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sk.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sk.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sk.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sprayCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sprayCursor.tiff" new file mode 100644 index 0000000..9bec966 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sprayCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sv.lproj/GLUT.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sv.lproj/GLUT.nib/objects.nib" new file mode 100644 index 0000000..6dbbc6e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sv.lproj/GLUT.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sv.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sv.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..6329f5a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sv.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sv.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sv.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..eed0bce Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sv.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sv.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sv.lproj/GLUTUI.strings" new file mode 100644 index 0000000..7fbf5f5 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sv.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sv.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sv.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/sv.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/th.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/th.lproj/GLUT.nib" new file mode 100644 index 0000000..24be49b Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/th.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/th.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/th.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..36ad216 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/th.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/th.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/th.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..39827a1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/th.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/th.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/th.lproj/GLUTUI.strings" new file mode 100644 index 0000000..df219c9 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/th.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/th.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/th.lproj/InfoPlist.strings" new file mode 100644 index 0000000..d7f23a7 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/th.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/topCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/topCursor.tiff" new file mode 100644 index 0000000..e4df0de Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/topCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/topleftCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/topleftCursor.tiff" new file mode 100644 index 0000000..43cf97f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/topleftCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/toprightCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/toprightCursor.tiff" new file mode 100644 index 0000000..429b01b Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/toprightCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/tr.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/tr.lproj/GLUT.nib" new file mode 100644 index 0000000..db7b81d Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/tr.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/tr.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/tr.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..793a3d8 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/tr.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/tr.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/tr.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..0c2b23a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/tr.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/tr.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/tr.lproj/GLUTUI.strings" new file mode 100644 index 0000000..201f646 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/tr.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/tr.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/tr.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/tr.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/uk.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/uk.lproj/GLUT.nib" new file mode 100644 index 0000000..1376302 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/uk.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/uk.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/uk.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..f9e501e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/uk.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/uk.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/uk.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..61b2706 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/uk.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/uk.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/uk.lproj/GLUTUI.strings" new file mode 100644 index 0000000..5a8d21b Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/uk.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/uk.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/uk.lproj/InfoPlist.strings" new file mode 100644 index 0000000..d40f670 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/uk.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/upDownCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/upDownCursor.tiff" new file mode 100644 index 0000000..1605063 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/upDownCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/version.plist" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/version.plist" new file mode 100644 index 0000000..0b48b86 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/version.plist" @@ -0,0 +1,16 @@ + + + + + BuildVersion + 1221 + CFBundleShortVersionString + 3.6.3 + CFBundleVersion + GLUT-3.6.3 + ProjectName + GLUT + SourceVersion + 3006003000000 + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/vi.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/vi.lproj/GLUT.nib" new file mode 100644 index 0000000..9ef11d4 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/vi.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/vi.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/vi.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..efbfb4c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/vi.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/vi.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/vi.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..acb2360 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/vi.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/vi.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/vi.lproj/GLUTUI.strings" new file mode 100644 index 0000000..e3602a1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/vi.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/vi.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/vi.lproj/InfoPlist.strings" new file mode 100644 index 0000000..0d3bc86 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/vi.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/waitCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/waitCursor.tiff" new file mode 100644 index 0000000..81ba1aa Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/waitCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_CN.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_CN.lproj/GLUT.nib" new file mode 100644 index 0000000..3fcbf00 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_CN.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_CN.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_CN.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..135210a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_CN.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_CN.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_CN.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..3918fe6 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_CN.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_CN.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_CN.lproj/GLUTUI.strings" new file mode 100644 index 0000000..ca52410 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_CN.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_CN.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_CN.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_CN.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_TW.lproj/GLUT.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_TW.lproj/GLUT.nib/objects.nib" new file mode 100644 index 0000000..daa31c0 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_TW.lproj/GLUT.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_TW.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_TW.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..4659493 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_TW.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_TW.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_TW.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..5a2fac6 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_TW.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_TW.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_TW.lproj/GLUTUI.strings" new file mode 100644 index 0000000..23e9e8f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_TW.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_TW.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_TW.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/Resources/zh_TW.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/_CodeSignature/CodeResources" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/_CodeSignature/CodeResources" new file mode 100644 index 0000000..6c0c008 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/A/_CodeSignature/CodeResources" @@ -0,0 +1,3351 @@ + + + + + files + + Resources/BridgeSupport/GLUT.bridgesupport + + BWKOC+zF1CG9itgzEScLAMirZX0= + + Resources/Caution.tiff + + aq58DGymNs2GkMusLQddWP5QpLE= + + Resources/Dutch.lproj/GLUT.nib/objects.nib + + hash + + RUqtUA1q49i+fPoYYAZMISMf980= + + optional + + + Resources/Dutch.lproj/GLUTClipboard.nib/objects.nib + + hash + + /Bi20kpPAo6W800p4TNjJKiaKHc= + + optional + + + Resources/Dutch.lproj/GLUTPreferences.nib + + hash + + 4zFaO41I2dj+filPRVuoItZvI+g= + + optional + + + Resources/Dutch.lproj/GLUTUI.strings + + hash + + Hqdk3N8in0eQcQ4PDEm2LciH2M8= + + optional + + + Resources/Dutch.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/English.lproj/GLUT.nib/objects.nib + + hash + + d24mK12Ba7H/PiM68logXwqt9dU= + + optional + + + Resources/English.lproj/GLUTClipboard.nib/objects.nib + + hash + + d1PebKfRw4oQuVfBfqR3+tzaG7s= + + optional + + + Resources/English.lproj/GLUTPreferences.nib + + hash + + 0PJEZd7Quhcvsn3aA7m+/CA0rEc= + + optional + + + Resources/English.lproj/GLUTUI.strings + + hash + + a3Z37BGGjLTYyC/UyF2iWECFR9Q= + + optional + + + Resources/English.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/French.lproj/GLUT.nib + + hash + + d4LkRRtpyv1Usa8OSbsFEuEWLsc= + + optional + + + Resources/French.lproj/GLUTClipboard.nib/objects.nib + + hash + + cqcCHWGCMzUkHZfHnsMUXKdiRH0= + + optional + + + Resources/French.lproj/GLUTPreferences.nib + + hash + + q23yspVZBH+Hd4vRTq3Vtg1NfhU= + + optional + + + Resources/French.lproj/GLUTUI.strings + + hash + + qjrq6Q4znepNhzg3R6x2wWHWulY= + + optional + + + Resources/French.lproj/InfoPlist.strings + + hash + + iQq4EJoApceAl6McSzuz7DhY+9I= + + optional + + + Resources/German.lproj/GLUT.nib/objects.nib + + hash + + y2YmORDJ5/emrMmeJkKg0PPMY8s= + + optional + + + Resources/German.lproj/GLUTClipboard.nib/objects.nib + + hash + + YbhigPquJ5pfQ/shc+E9aqND3GQ= + + optional + + + Resources/German.lproj/GLUTPreferences.nib + + hash + + 51zWfRylEDPZPUmA3TIjuIGie0g= + + optional + + + Resources/German.lproj/GLUTUI.strings + + hash + + TaQI5UA5b0eVbDgygTqhyW1Q+Rs= + + optional + + + Resources/German.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/Info.plist + + 4SVBzbYPdSZViG5GIwOUIUKgdaA= + + Resources/Italian.lproj/GLUT.nib + + hash + + 4h0Qao/ZROKHoqahgfSVoX4BzmY= + + optional + + + Resources/Italian.lproj/GLUTClipboard.nib/objects.nib + + hash + + 2ppYrSKJ4W6wQ4F493XNCrDm7WA= + + optional + + + Resources/Italian.lproj/GLUTPreferences.nib + + hash + + JPDfl8iLRXj6fWr9WnmxWXflCx0= + + optional + + + Resources/Italian.lproj/GLUTUI.strings + + hash + + OIK2tOGOmoiNARy+1W7uhIAAkc4= + + optional + + + Resources/Italian.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/Japanese.lproj/GLUT.nib + + hash + + j6CIa4hB7r/UwOGCjSjH4f5znOs= + + optional + + + Resources/Japanese.lproj/GLUTClipboard.nib + + hash + + kfWT5G6Zk6PcoJoAutfYw/P3eT0= + + optional + + + Resources/Japanese.lproj/GLUTPreferences.nib + + hash + + Ai4aTJSdBSjg4bQzYiQkd4ZH5eY= + + optional + + + Resources/Japanese.lproj/GLUTUI.strings + + hash + + 98fWihIj/+RmLymDJeaQMb+Bq2o= + + optional + + + Resources/Japanese.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/Spanish.lproj/GLUT.nib + + hash + + 9W+kzbkBumt3FNKXaZRJ18zH1Kc= + + optional + + + Resources/Spanish.lproj/GLUTClipboard.nib/objects.nib + + hash + + BuofGSoOL5Q14CGaXhZoQLf/s7w= + + optional + + + Resources/Spanish.lproj/GLUTPreferences.nib + + hash + + NOOLH+RAw/Xosw0h33x2Dz8BH4s= + + optional + + + Resources/Spanish.lproj/GLUTUI.strings + + hash + + XtEBIlcpj2ctLkukjTAmYe26zvs= + + optional + + + Resources/Spanish.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/ar.lproj/GLUT.nib + + hash + + Z7FqU95ffJM2SmtLyCnqim0uEyo= + + optional + + + Resources/ar.lproj/GLUTClipboard.nib + + hash + + lLFCBrBmxdwk/m4NPhwJemm4CCA= + + optional + + + Resources/ar.lproj/GLUTPreferences.nib + + hash + + ROmI3XxDKLIUP8npuzp0djV0OkI= + + optional + + + Resources/ar.lproj/GLUTUI.strings + + hash + + ASe78OKFIdck715VkoupLnKDP80= + + optional + + + Resources/ar.lproj/InfoPlist.strings + + hash + + cs4uZV2k5jHFvVG+UvGcITv8Ofo= + + optional + + + Resources/blankCursor.tiff + + 71RmRfl/KEi+d8FoM7rhYoEQVvc= + + Resources/bottomCursor.tiff + + DOuotwaM4sJfBiFjCxPwKTuSsvU= + + Resources/bottomleftCursor.tiff + + /NQEJiCyCbZ9GQ+Q5YdoFVZy/Fg= + + Resources/bottomrightCursor.tiff + + Ee1kclbc0dgTJxX05Bn46Yq9djs= + + Resources/ca.lproj/GLUT.nib + + hash + + h3KeaFyDiSqsvs7Q+jaiaU1aZ1U= + + optional + + + Resources/ca.lproj/GLUTClipboard.nib + + hash + + 4yselpa+i5h0jBJRlmIchS9nvyE= + + optional + + + Resources/ca.lproj/GLUTPreferences.nib + + hash + + gOssZFMU+wEXqT8PNjl/ElrKRsw= + + optional + + + Resources/ca.lproj/GLUTUI.strings + + hash + + 4GHcmdPSWpmVcTTEHzc1PAFSbx8= + + optional + + + Resources/ca.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/crossCursor.tiff + + ySVy2eE2fXYsSalgFbpsm7InVZI= + + Resources/cs.lproj/GLUT.nib + + hash + + wRq8OmbS2G5LF0/5lGr638hN818= + + optional + + + Resources/cs.lproj/GLUTClipboard.nib + + hash + + gcVbNhZG09Yn7BuhXkBHQVbUBgQ= + + optional + + + Resources/cs.lproj/GLUTPreferences.nib + + hash + + 4X+p6hWgIH0WtO0LzqogMIfCk6Y= + + optional + + + Resources/cs.lproj/GLUTUI.strings + + hash + + VFXmJMdKiIhidnx1tKYUmZ+6lTo= + + optional + + + Resources/cs.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/cycleCursor.tiff + + 8jHeTtrVTfwQB49SB9r7quiubx0= + + Resources/da.lproj/GLUT.nib + + hash + + H7ZA3tC6iUJ/sYhQnVoe0uVvyV8= + + optional + + + Resources/da.lproj/GLUTClipboard.nib/objects.nib + + hash + + uBoakuoItz2j2lwusu4uNrLYDM4= + + optional + + + Resources/da.lproj/GLUTPreferences.nib + + hash + + nPWhVMDYPRPHQZPzJ7HLH/Rjvqo= + + optional + + + Resources/da.lproj/GLUTUI.strings + + hash + + 6dpISGTB31rqDTOcagKR5AoXM+k= + + optional + + + Resources/da.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/destroyCursor.tiff + + tkYCf5NXocfX+VKto+04wex2K+Q= + + Resources/el.lproj/GLUT.nib + + hash + + c7P6jFK+xLMQrc54PXRuAr4xwz4= + + optional + + + Resources/el.lproj/GLUTClipboard.nib + + hash + + FD1Bbfc+Xdnna1eCLeBXdn7vVyY= + + optional + + + Resources/el.lproj/GLUTPreferences.nib + + hash + + GyUJXxmj76iqV/jrgjlrGg3m2bo= + + optional + + + Resources/el.lproj/GLUTUI.strings + + hash + + VioaIj44YLMJnuEeoHe+PS/+KKM= + + optional + + + Resources/el.lproj/InfoPlist.strings + + hash + + kaREhGRlcwI1cXiAqPSCyoIbQ4Y= + + optional + + + Resources/es_MX.lproj/GLUT.nib + + hash + + EGxRUHjvx9eNffWH+v2aVGTwEIM= + + optional + + + Resources/es_MX.lproj/GLUTClipboard.nib + + hash + + 3zEwhN2ED0zIbGTz/CBEubmAMfA= + + optional + + + Resources/es_MX.lproj/GLUTPreferences.nib + + hash + + yUqv71JO5wbmtC+4sUigpflF7lc= + + optional + + + Resources/es_MX.lproj/GLUTUI.strings + + hash + + 24z1HDS8dDtq3952T25ZkRejvlk= + + optional + + + Resources/es_MX.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/fi.lproj/GLUT.nib + + hash + + d5gCFkjOBjAesXJ7EbIkc12X938= + + optional + + + Resources/fi.lproj/GLUTClipboard.nib/objects.nib + + hash + + 4tFU1zhOPsU5K5iil8MJPk3RKa0= + + optional + + + Resources/fi.lproj/GLUTPreferences.nib + + hash + + pFVMfXXoW+Bu2K5Sp4kep9Myt6E= + + optional + + + Resources/fi.lproj/GLUTUI.strings + + hash + + zj3hb9JzA/0lYgSHvjFJSbUJCEk= + + optional + + + Resources/fi.lproj/InfoPlist.strings + + hash + + rd0zLDNzEF4yG/H8drOK/0IV9r0= + + optional + + + Resources/fingerCursor.tiff + + u1gKLmqCWIvJhMIQAE7AEoJTDy0= + + Resources/he.lproj/GLUT.nib + + hash + + bIJpK9+By6M8J018cyscSZHRvZA= + + optional + + + Resources/he.lproj/GLUTClipboard.nib + + hash + + X2iqZmKSiM5ewrhtP5QtLNaS2Fo= + + optional + + + Resources/he.lproj/GLUTPreferences.nib + + hash + + btMHguC+hqbHT7C0AbLViX9K/bU= + + optional + + + Resources/he.lproj/GLUTUI.strings + + hash + + gWI3ZBiECszzhJneomE/p3nbDW4= + + optional + + + Resources/he.lproj/InfoPlist.strings + + hash + + IWRMGqIMKXPJH/4z/PZchGYh57g= + + optional + + + Resources/helpCursor.tiff + + 2vlbHXOdcb4sWRCy3CNJws7wHQU= + + Resources/hr.lproj/GLUT.nib + + hash + + DKTO11a7C9ByXo9xdUjmTkpcKKs= + + optional + + + Resources/hr.lproj/GLUTClipboard.nib + + hash + + fWvi93aofaQMbnzJDMWh9vtZZls= + + optional + + + Resources/hr.lproj/GLUTPreferences.nib + + hash + + 2WgYnx5R38Yfe/mC3lNKb0ZFmAQ= + + optional + + + Resources/hr.lproj/GLUTUI.strings + + hash + + 5C6YMo8lb776jbF1wdkOOPsWme0= + + optional + + + Resources/hr.lproj/InfoPlist.strings + + hash + + J52bfD41z5QaHmK6izXMlK6J9zk= + + optional + + + Resources/hu.lproj/GLUT.nib + + hash + + roOcN67DdkWOrb3A0oi7qav2ccI= + + optional + + + Resources/hu.lproj/GLUTClipboard.nib + + hash + + Rzqa2UgIJRCDoey5SQjH37BG72Q= + + optional + + + Resources/hu.lproj/GLUTPreferences.nib + + hash + + 0wgicb9++6eBZ/pGL0zoAZhIVi0= + + optional + + + Resources/hu.lproj/GLUTUI.strings + + hash + + DzcP2BRnVXd4O6chhtSRWs13NM4= + + optional + + + Resources/hu.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/id.lproj/GLUT.nib + + hash + + rDzHGYlCpbpMPZw2j1QQXNp4tnw= + + optional + + + Resources/id.lproj/GLUTClipboard.nib + + hash + + mIqa9rz7oJiMiLYFNmeaaY6XWfY= + + optional + + + Resources/id.lproj/GLUTPreferences.nib + + hash + + oBcfTazT2ChaDZ6z6n5UPKoIKN4= + + optional + + + Resources/id.lproj/GLUTUI.strings + + hash + + E48coG0TAfi0Z6ekKKLg+HtubwQ= + + optional + + + Resources/id.lproj/InfoPlist.strings + + hash + + kicaNpuzJEmaugT03YKlUtulj5U= + + optional + + + Resources/ko.lproj/GLUT.nib + + hash + + i4uVhGemM15DSUIdZpxZ3BkVmkA= + + optional + + + Resources/ko.lproj/GLUTClipboard.nib/objects.nib + + hash + + azdBxSt/IZq5ZAjWqW+23xrz7wA= + + optional + + + Resources/ko.lproj/GLUTPreferences.nib + + hash + + kJULxR7NQD0QCbq8cg49kEo1A7E= + + optional + + + Resources/ko.lproj/GLUTUI.strings + + hash + + L83/tT4j4ClEyWv8IycEJEHAZzE= + + optional + + + Resources/ko.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/leftCursor.tiff + + UuLAchbhcmBfyHNPujanbcWtWVw= + + Resources/leftRightCursor.tiff + + iDFAKKJOw4Nk1e6tS7cmxhQoTec= + + Resources/ms.lproj/GLUT.nib + + hash + + GVnrI5Ug7j+Odz0CvevkHz56pxk= + + optional + + + Resources/ms.lproj/GLUTClipboard.nib + + hash + + qpdll90JLp25zihmmelAsqeqRbk= + + optional + + + Resources/ms.lproj/GLUTPreferences.nib + + hash + + Ve+nswhwjb5p3pl/JVeU/votRGQ= + + optional + + + Resources/ms.lproj/GLUTUI.strings + + hash + + zfZooTQ4x3lsEcwFa7Alilw7YDs= + + optional + + + Resources/ms.lproj/InfoPlist.strings + + hash + + kicaNpuzJEmaugT03YKlUtulj5U= + + optional + + + Resources/no.lproj/GLUT.nib/objects.nib + + hash + + f4clOZFBVlC/DwWYFID3TbsN/ig= + + optional + + + Resources/no.lproj/GLUTClipboard.nib/objects.nib + + hash + + jKis0G/aC7CyUVp8oYKl+Gvs4qY= + + optional + + + Resources/no.lproj/GLUTPreferences.nib + + hash + + UrpmVpWERaESTiUlsAhNtlgx2ek= + + optional + + + Resources/no.lproj/GLUTUI.strings + + hash + + J69/NwRHIr6CVqbFOnLb7CSL2Mo= + + optional + + + Resources/no.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/pl.lproj/GLUT.nib + + hash + + HnkyZhz9P8pB93CMNI1AKDpqFyY= + + optional + + + Resources/pl.lproj/GLUTClipboard.nib + + hash + + wQ3qZQS0FLKBHEXJc0o3Hf14HUA= + + optional + + + Resources/pl.lproj/GLUTPreferences.nib + + hash + + hIFWDulC+jaJit6lo0GxIMC/7S8= + + optional + + + Resources/pl.lproj/GLUTUI.strings + + hash + + YIWjI6pJrdUgnJeaQDpWY7wK5p4= + + optional + + + Resources/pl.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/pt.lproj/GLUT.nib + + hash + + MjmlNCV8DEBlmz8RMhVXMMskdHY= + + optional + + + Resources/pt.lproj/GLUTClipboard.nib/objects.nib + + hash + + uMMqPOen4ZhPRWAWqWmDzcHsICA= + + optional + + + Resources/pt.lproj/GLUTPreferences.nib + + hash + + c+dzx9e1xi1AdVZabFjGmXu2Jns= + + optional + + + Resources/pt.lproj/GLUTUI.strings + + hash + + dXFy6zHZh/JR+LcyhNmRjmlX12k= + + optional + + + Resources/pt.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/pt_PT.lproj/GLUT.nib + + hash + + wDHD1A87v3rlpSwIg4JvyiY4k0k= + + optional + + + Resources/pt_PT.lproj/GLUTClipboard.nib + + hash + + zS20SbBg9w7lVzUouSpOH66ZSuc= + + optional + + + Resources/pt_PT.lproj/GLUTPreferences.nib + + hash + + DbZU+TVRD8ZsWvRtOwRtsNqhKGs= + + optional + + + Resources/pt_PT.lproj/GLUTUI.strings + + hash + + 2PXu8o8Xos9q5cafAw2h+C6m66I= + + optional + + + Resources/pt_PT.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/rightArrowCursor.tiff + + 7K3jXpKlDtkkjHXTGcY9EeesMhU= + + Resources/rightCursor.tiff + + q9GmlIh4lCQk/ow13gGDjnHFsJo= + + Resources/ro.lproj/GLUT.nib + + hash + + nww/x1dIqEUFDnxzc/5vwQWysbo= + + optional + + + Resources/ro.lproj/GLUTClipboard.nib + + hash + + 8Xc8g89kByEAaU70JEf1ZNBdXMA= + + optional + + + Resources/ro.lproj/GLUTPreferences.nib + + hash + + Jq4Xr2Abgv8LPJmR0a00NNWymiU= + + optional + + + Resources/ro.lproj/GLUTUI.strings + + hash + + /98VbyObWKIEYnluJ82Ppgnhpjk= + + optional + + + Resources/ro.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/ru.lproj/GLUT.nib + + hash + + NptvOjRRjioRXc4lhz15UU9onMc= + + optional + + + Resources/ru.lproj/GLUTClipboard.nib + + hash + + vAJ8XsU2fs7jm60Up8Od2iHhG9w= + + optional + + + Resources/ru.lproj/GLUTPreferences.nib + + hash + + GJiamMeOpvM1Ql4WdT7lnn3VLwo= + + optional + + + Resources/ru.lproj/GLUTUI.strings + + hash + + HHeT534DvlzBbNEiR7hewOyDQVU= + + optional + + + Resources/ru.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/sk.lproj/GLUT.nib + + hash + + rWzkDeFRABaL9jaNC2Jg/mfHENw= + + optional + + + Resources/sk.lproj/GLUTClipboard.nib + + hash + + 6FAp4Ukk2ixJDCOxtWGlo/Sp6nM= + + optional + + + Resources/sk.lproj/GLUTPreferences.nib + + hash + + 5zYmSOARhnizPhB8Pf7dG+k8bU8= + + optional + + + Resources/sk.lproj/GLUTUI.strings + + hash + + OvN+fe/mGzaL01orEWEJp9SUHrg= + + optional + + + Resources/sk.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/sprayCursor.tiff + + dGquzbXCgTh0tAT400liHFqKMQg= + + Resources/sv.lproj/GLUT.nib/objects.nib + + hash + + mv+oXLtWzpRJdGwnM1ALwgsg8P4= + + optional + + + Resources/sv.lproj/GLUTClipboard.nib/objects.nib + + hash + + zbyujlfwrCBSHqmDjSnOIi67OR8= + + optional + + + Resources/sv.lproj/GLUTPreferences.nib + + hash + + m2yS9EPlbM/w2lqdxJz/loq11Aw= + + optional + + + Resources/sv.lproj/GLUTUI.strings + + hash + + tJTwzCxG9LaOIYGhS6aN/Okx/gg= + + optional + + + Resources/sv.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/th.lproj/GLUT.nib + + hash + + XwvxYcs04m3hiJXUGjdBR9Uvu0A= + + optional + + + Resources/th.lproj/GLUTClipboard.nib + + hash + + yVGifw22EFWjc9c2deV7wsG4Kw8= + + optional + + + Resources/th.lproj/GLUTPreferences.nib + + hash + + tccCw6Gwe97H58JxOje/vRKuTEs= + + optional + + + Resources/th.lproj/GLUTUI.strings + + hash + + bHzJbhI9D44T3pTU30asWYHpQUc= + + optional + + + Resources/th.lproj/InfoPlist.strings + + hash + + beOBXBvt1wfWvLfjJeuctbxc5g8= + + optional + + + Resources/topCursor.tiff + + MMgN7P7qDQqXsBUfpIDB93Ql6sk= + + Resources/topleftCursor.tiff + + 8qrlRyy9LBBZR2A47KeQ4NlBD9A= + + Resources/toprightCursor.tiff + + mF9JHrzd3nIzDrkOaMOtrkgB0SI= + + Resources/tr.lproj/GLUT.nib + + hash + + c1W04X9lHRr+2mCEDO0jIz8F/Bs= + + optional + + + Resources/tr.lproj/GLUTClipboard.nib + + hash + + eei+HqmJj+rVS3C/PRqgcJJ33Tk= + + optional + + + Resources/tr.lproj/GLUTPreferences.nib + + hash + + v9B8N7ifqek/0/OGvYkFozl/ujY= + + optional + + + Resources/tr.lproj/GLUTUI.strings + + hash + + K/QvPe5MuGRbPIXCHmJtiBKmFdg= + + optional + + + Resources/tr.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/uk.lproj/GLUT.nib + + hash + + YfXUuI32C6+nTxbViHfSzDuzTp4= + + optional + + + Resources/uk.lproj/GLUTClipboard.nib + + hash + + hkFh7mFKOIFGTMTRDoaayhhz67Q= + + optional + + + Resources/uk.lproj/GLUTPreferences.nib + + hash + + zSIaWYJSAvL5R1OwIfjblRVJV50= + + optional + + + Resources/uk.lproj/GLUTUI.strings + + hash + + xVJBCyxklXTXQin6BVmDoB1Lw3o= + + optional + + + Resources/uk.lproj/InfoPlist.strings + + hash + + 9MSFvcDNYZyBJZDjwahM31cVmqc= + + optional + + + Resources/upDownCursor.tiff + + y5wHeRc7vaGr9ml9ZlsAkzCuC4I= + + Resources/version.plist + + j7cRI4GkkD9tslXKFjfurzhEtV4= + + Resources/vi.lproj/GLUT.nib + + hash + + AZX6we4AJmYW3xvYTpR6xytXeo0= + + optional + + + Resources/vi.lproj/GLUTClipboard.nib + + hash + + 1/Xe+/1sszTdWG1amiwfz8nEuCs= + + optional + + + Resources/vi.lproj/GLUTPreferences.nib + + hash + + gi5VrYkzMKc2BkhIESK+5G1Ofm0= + + optional + + + Resources/vi.lproj/GLUTUI.strings + + hash + + TUmFN8hGm9fL1MnkySi29SrLpJg= + + optional + + + Resources/vi.lproj/InfoPlist.strings + + hash + + La/yVT9EY5j59K8HNnd5AhtIwGo= + + optional + + + Resources/waitCursor.tiff + + be1dmGFyl0hglygvvwrFZowZlS4= + + Resources/zh_CN.lproj/GLUT.nib + + hash + + ARdB90/+PR1HFznveSq9Di1A1mM= + + optional + + + Resources/zh_CN.lproj/GLUTClipboard.nib + + hash + + m+KFusPA+RF2COvMLc114jdHbk8= + + optional + + + Resources/zh_CN.lproj/GLUTPreferences.nib + + hash + + nU8sXTF6oTwATcyFqbLkXRiiZUM= + + optional + + + Resources/zh_CN.lproj/GLUTUI.strings + + hash + + Yll6M7tVY5FRiSpPHAFV2ctwvTo= + + optional + + + Resources/zh_CN.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/zh_TW.lproj/GLUT.nib/objects.nib + + hash + + m5EAb+uENLje+gyxLwGr5cpp2nI= + + optional + + + Resources/zh_TW.lproj/GLUTClipboard.nib + + hash + + e2Iv4Q/bToBTYou42g401ETXOU4= + + optional + + + Resources/zh_TW.lproj/GLUTPreferences.nib + + hash + + lvV/3uOTUe4xGlWN3M+2b+vaaOI= + + optional + + + Resources/zh_TW.lproj/GLUTUI.strings + + hash + + GbfzS9jsiYJQ7XnCQzV0QNv+1FA= + + optional + + + Resources/zh_TW.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + + files2 + + Resources/BridgeSupport/GLUT.bridgesupport + + BWKOC+zF1CG9itgzEScLAMirZX0= + + Resources/Caution.tiff + + aq58DGymNs2GkMusLQddWP5QpLE= + + Resources/Dutch.lproj/GLUT.nib/objects.nib + + hash + + RUqtUA1q49i+fPoYYAZMISMf980= + + optional + + + Resources/Dutch.lproj/GLUTClipboard.nib/objects.nib + + hash + + /Bi20kpPAo6W800p4TNjJKiaKHc= + + optional + + + Resources/Dutch.lproj/GLUTPreferences.nib + + hash + + 4zFaO41I2dj+filPRVuoItZvI+g= + + optional + + + Resources/Dutch.lproj/GLUTUI.strings + + hash + + Hqdk3N8in0eQcQ4PDEm2LciH2M8= + + optional + + + Resources/Dutch.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/English.lproj/GLUT.nib/objects.nib + + hash + + d24mK12Ba7H/PiM68logXwqt9dU= + + optional + + + Resources/English.lproj/GLUTClipboard.nib/objects.nib + + hash + + d1PebKfRw4oQuVfBfqR3+tzaG7s= + + optional + + + Resources/English.lproj/GLUTPreferences.nib + + hash + + 0PJEZd7Quhcvsn3aA7m+/CA0rEc= + + optional + + + Resources/English.lproj/GLUTUI.strings + + hash + + a3Z37BGGjLTYyC/UyF2iWECFR9Q= + + optional + + + Resources/English.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/French.lproj/GLUT.nib + + hash + + d4LkRRtpyv1Usa8OSbsFEuEWLsc= + + optional + + + Resources/French.lproj/GLUTClipboard.nib/objects.nib + + hash + + cqcCHWGCMzUkHZfHnsMUXKdiRH0= + + optional + + + Resources/French.lproj/GLUTPreferences.nib + + hash + + q23yspVZBH+Hd4vRTq3Vtg1NfhU= + + optional + + + Resources/French.lproj/GLUTUI.strings + + hash + + qjrq6Q4znepNhzg3R6x2wWHWulY= + + optional + + + Resources/French.lproj/InfoPlist.strings + + hash + + iQq4EJoApceAl6McSzuz7DhY+9I= + + optional + + + Resources/German.lproj/GLUT.nib/objects.nib + + hash + + y2YmORDJ5/emrMmeJkKg0PPMY8s= + + optional + + + Resources/German.lproj/GLUTClipboard.nib/objects.nib + + hash + + YbhigPquJ5pfQ/shc+E9aqND3GQ= + + optional + + + Resources/German.lproj/GLUTPreferences.nib + + hash + + 51zWfRylEDPZPUmA3TIjuIGie0g= + + optional + + + Resources/German.lproj/GLUTUI.strings + + hash + + TaQI5UA5b0eVbDgygTqhyW1Q+Rs= + + optional + + + Resources/German.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/Info.plist + + 4SVBzbYPdSZViG5GIwOUIUKgdaA= + + Resources/Italian.lproj/GLUT.nib + + hash + + 4h0Qao/ZROKHoqahgfSVoX4BzmY= + + optional + + + Resources/Italian.lproj/GLUTClipboard.nib/objects.nib + + hash + + 2ppYrSKJ4W6wQ4F493XNCrDm7WA= + + optional + + + Resources/Italian.lproj/GLUTPreferences.nib + + hash + + JPDfl8iLRXj6fWr9WnmxWXflCx0= + + optional + + + Resources/Italian.lproj/GLUTUI.strings + + hash + + OIK2tOGOmoiNARy+1W7uhIAAkc4= + + optional + + + Resources/Italian.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/Japanese.lproj/GLUT.nib + + hash + + j6CIa4hB7r/UwOGCjSjH4f5znOs= + + optional + + + Resources/Japanese.lproj/GLUTClipboard.nib + + hash + + kfWT5G6Zk6PcoJoAutfYw/P3eT0= + + optional + + + Resources/Japanese.lproj/GLUTPreferences.nib + + hash + + Ai4aTJSdBSjg4bQzYiQkd4ZH5eY= + + optional + + + Resources/Japanese.lproj/GLUTUI.strings + + hash + + 98fWihIj/+RmLymDJeaQMb+Bq2o= + + optional + + + Resources/Japanese.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/Spanish.lproj/GLUT.nib + + hash + + 9W+kzbkBumt3FNKXaZRJ18zH1Kc= + + optional + + + Resources/Spanish.lproj/GLUTClipboard.nib/objects.nib + + hash + + BuofGSoOL5Q14CGaXhZoQLf/s7w= + + optional + + + Resources/Spanish.lproj/GLUTPreferences.nib + + hash + + NOOLH+RAw/Xosw0h33x2Dz8BH4s= + + optional + + + Resources/Spanish.lproj/GLUTUI.strings + + hash + + XtEBIlcpj2ctLkukjTAmYe26zvs= + + optional + + + Resources/Spanish.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/ar.lproj/GLUT.nib + + hash + + Z7FqU95ffJM2SmtLyCnqim0uEyo= + + optional + + + Resources/ar.lproj/GLUTClipboard.nib + + hash + + lLFCBrBmxdwk/m4NPhwJemm4CCA= + + optional + + + Resources/ar.lproj/GLUTPreferences.nib + + hash + + ROmI3XxDKLIUP8npuzp0djV0OkI= + + optional + + + Resources/ar.lproj/GLUTUI.strings + + hash + + ASe78OKFIdck715VkoupLnKDP80= + + optional + + + Resources/ar.lproj/InfoPlist.strings + + hash + + cs4uZV2k5jHFvVG+UvGcITv8Ofo= + + optional + + + Resources/blankCursor.tiff + + 71RmRfl/KEi+d8FoM7rhYoEQVvc= + + Resources/bottomCursor.tiff + + DOuotwaM4sJfBiFjCxPwKTuSsvU= + + Resources/bottomleftCursor.tiff + + /NQEJiCyCbZ9GQ+Q5YdoFVZy/Fg= + + Resources/bottomrightCursor.tiff + + Ee1kclbc0dgTJxX05Bn46Yq9djs= + + Resources/ca.lproj/GLUT.nib + + hash + + h3KeaFyDiSqsvs7Q+jaiaU1aZ1U= + + optional + + + Resources/ca.lproj/GLUTClipboard.nib + + hash + + 4yselpa+i5h0jBJRlmIchS9nvyE= + + optional + + + Resources/ca.lproj/GLUTPreferences.nib + + hash + + gOssZFMU+wEXqT8PNjl/ElrKRsw= + + optional + + + Resources/ca.lproj/GLUTUI.strings + + hash + + 4GHcmdPSWpmVcTTEHzc1PAFSbx8= + + optional + + + Resources/ca.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/crossCursor.tiff + + ySVy2eE2fXYsSalgFbpsm7InVZI= + + Resources/cs.lproj/GLUT.nib + + hash + + wRq8OmbS2G5LF0/5lGr638hN818= + + optional + + + Resources/cs.lproj/GLUTClipboard.nib + + hash + + gcVbNhZG09Yn7BuhXkBHQVbUBgQ= + + optional + + + Resources/cs.lproj/GLUTPreferences.nib + + hash + + 4X+p6hWgIH0WtO0LzqogMIfCk6Y= + + optional + + + Resources/cs.lproj/GLUTUI.strings + + hash + + VFXmJMdKiIhidnx1tKYUmZ+6lTo= + + optional + + + Resources/cs.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/cycleCursor.tiff + + 8jHeTtrVTfwQB49SB9r7quiubx0= + + Resources/da.lproj/GLUT.nib + + hash + + H7ZA3tC6iUJ/sYhQnVoe0uVvyV8= + + optional + + + Resources/da.lproj/GLUTClipboard.nib/objects.nib + + hash + + uBoakuoItz2j2lwusu4uNrLYDM4= + + optional + + + Resources/da.lproj/GLUTPreferences.nib + + hash + + nPWhVMDYPRPHQZPzJ7HLH/Rjvqo= + + optional + + + Resources/da.lproj/GLUTUI.strings + + hash + + 6dpISGTB31rqDTOcagKR5AoXM+k= + + optional + + + Resources/da.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/destroyCursor.tiff + + tkYCf5NXocfX+VKto+04wex2K+Q= + + Resources/el.lproj/GLUT.nib + + hash + + c7P6jFK+xLMQrc54PXRuAr4xwz4= + + optional + + + Resources/el.lproj/GLUTClipboard.nib + + hash + + FD1Bbfc+Xdnna1eCLeBXdn7vVyY= + + optional + + + Resources/el.lproj/GLUTPreferences.nib + + hash + + GyUJXxmj76iqV/jrgjlrGg3m2bo= + + optional + + + Resources/el.lproj/GLUTUI.strings + + hash + + VioaIj44YLMJnuEeoHe+PS/+KKM= + + optional + + + Resources/el.lproj/InfoPlist.strings + + hash + + kaREhGRlcwI1cXiAqPSCyoIbQ4Y= + + optional + + + Resources/es_MX.lproj/GLUT.nib + + hash + + EGxRUHjvx9eNffWH+v2aVGTwEIM= + + optional + + + Resources/es_MX.lproj/GLUTClipboard.nib + + hash + + 3zEwhN2ED0zIbGTz/CBEubmAMfA= + + optional + + + Resources/es_MX.lproj/GLUTPreferences.nib + + hash + + yUqv71JO5wbmtC+4sUigpflF7lc= + + optional + + + Resources/es_MX.lproj/GLUTUI.strings + + hash + + 24z1HDS8dDtq3952T25ZkRejvlk= + + optional + + + Resources/es_MX.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/fi.lproj/GLUT.nib + + hash + + d5gCFkjOBjAesXJ7EbIkc12X938= + + optional + + + Resources/fi.lproj/GLUTClipboard.nib/objects.nib + + hash + + 4tFU1zhOPsU5K5iil8MJPk3RKa0= + + optional + + + Resources/fi.lproj/GLUTPreferences.nib + + hash + + pFVMfXXoW+Bu2K5Sp4kep9Myt6E= + + optional + + + Resources/fi.lproj/GLUTUI.strings + + hash + + zj3hb9JzA/0lYgSHvjFJSbUJCEk= + + optional + + + Resources/fi.lproj/InfoPlist.strings + + hash + + rd0zLDNzEF4yG/H8drOK/0IV9r0= + + optional + + + Resources/fingerCursor.tiff + + u1gKLmqCWIvJhMIQAE7AEoJTDy0= + + Resources/he.lproj/GLUT.nib + + hash + + bIJpK9+By6M8J018cyscSZHRvZA= + + optional + + + Resources/he.lproj/GLUTClipboard.nib + + hash + + X2iqZmKSiM5ewrhtP5QtLNaS2Fo= + + optional + + + Resources/he.lproj/GLUTPreferences.nib + + hash + + btMHguC+hqbHT7C0AbLViX9K/bU= + + optional + + + Resources/he.lproj/GLUTUI.strings + + hash + + gWI3ZBiECszzhJneomE/p3nbDW4= + + optional + + + Resources/he.lproj/InfoPlist.strings + + hash + + IWRMGqIMKXPJH/4z/PZchGYh57g= + + optional + + + Resources/helpCursor.tiff + + 2vlbHXOdcb4sWRCy3CNJws7wHQU= + + Resources/hr.lproj/GLUT.nib + + hash + + DKTO11a7C9ByXo9xdUjmTkpcKKs= + + optional + + + Resources/hr.lproj/GLUTClipboard.nib + + hash + + fWvi93aofaQMbnzJDMWh9vtZZls= + + optional + + + Resources/hr.lproj/GLUTPreferences.nib + + hash + + 2WgYnx5R38Yfe/mC3lNKb0ZFmAQ= + + optional + + + Resources/hr.lproj/GLUTUI.strings + + hash + + 5C6YMo8lb776jbF1wdkOOPsWme0= + + optional + + + Resources/hr.lproj/InfoPlist.strings + + hash + + J52bfD41z5QaHmK6izXMlK6J9zk= + + optional + + + Resources/hu.lproj/GLUT.nib + + hash + + roOcN67DdkWOrb3A0oi7qav2ccI= + + optional + + + Resources/hu.lproj/GLUTClipboard.nib + + hash + + Rzqa2UgIJRCDoey5SQjH37BG72Q= + + optional + + + Resources/hu.lproj/GLUTPreferences.nib + + hash + + 0wgicb9++6eBZ/pGL0zoAZhIVi0= + + optional + + + Resources/hu.lproj/GLUTUI.strings + + hash + + DzcP2BRnVXd4O6chhtSRWs13NM4= + + optional + + + Resources/hu.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/id.lproj/GLUT.nib + + hash + + rDzHGYlCpbpMPZw2j1QQXNp4tnw= + + optional + + + Resources/id.lproj/GLUTClipboard.nib + + hash + + mIqa9rz7oJiMiLYFNmeaaY6XWfY= + + optional + + + Resources/id.lproj/GLUTPreferences.nib + + hash + + oBcfTazT2ChaDZ6z6n5UPKoIKN4= + + optional + + + Resources/id.lproj/GLUTUI.strings + + hash + + E48coG0TAfi0Z6ekKKLg+HtubwQ= + + optional + + + Resources/id.lproj/InfoPlist.strings + + hash + + kicaNpuzJEmaugT03YKlUtulj5U= + + optional + + + Resources/ko.lproj/GLUT.nib + + hash + + i4uVhGemM15DSUIdZpxZ3BkVmkA= + + optional + + + Resources/ko.lproj/GLUTClipboard.nib/objects.nib + + hash + + azdBxSt/IZq5ZAjWqW+23xrz7wA= + + optional + + + Resources/ko.lproj/GLUTPreferences.nib + + hash + + kJULxR7NQD0QCbq8cg49kEo1A7E= + + optional + + + Resources/ko.lproj/GLUTUI.strings + + hash + + L83/tT4j4ClEyWv8IycEJEHAZzE= + + optional + + + Resources/ko.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/leftCursor.tiff + + UuLAchbhcmBfyHNPujanbcWtWVw= + + Resources/leftRightCursor.tiff + + iDFAKKJOw4Nk1e6tS7cmxhQoTec= + + Resources/ms.lproj/GLUT.nib + + hash + + GVnrI5Ug7j+Odz0CvevkHz56pxk= + + optional + + + Resources/ms.lproj/GLUTClipboard.nib + + hash + + qpdll90JLp25zihmmelAsqeqRbk= + + optional + + + Resources/ms.lproj/GLUTPreferences.nib + + hash + + Ve+nswhwjb5p3pl/JVeU/votRGQ= + + optional + + + Resources/ms.lproj/GLUTUI.strings + + hash + + zfZooTQ4x3lsEcwFa7Alilw7YDs= + + optional + + + Resources/ms.lproj/InfoPlist.strings + + hash + + kicaNpuzJEmaugT03YKlUtulj5U= + + optional + + + Resources/no.lproj/GLUT.nib/objects.nib + + hash + + f4clOZFBVlC/DwWYFID3TbsN/ig= + + optional + + + Resources/no.lproj/GLUTClipboard.nib/objects.nib + + hash + + jKis0G/aC7CyUVp8oYKl+Gvs4qY= + + optional + + + Resources/no.lproj/GLUTPreferences.nib + + hash + + UrpmVpWERaESTiUlsAhNtlgx2ek= + + optional + + + Resources/no.lproj/GLUTUI.strings + + hash + + J69/NwRHIr6CVqbFOnLb7CSL2Mo= + + optional + + + Resources/no.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/pl.lproj/GLUT.nib + + hash + + HnkyZhz9P8pB93CMNI1AKDpqFyY= + + optional + + + Resources/pl.lproj/GLUTClipboard.nib + + hash + + wQ3qZQS0FLKBHEXJc0o3Hf14HUA= + + optional + + + Resources/pl.lproj/GLUTPreferences.nib + + hash + + hIFWDulC+jaJit6lo0GxIMC/7S8= + + optional + + + Resources/pl.lproj/GLUTUI.strings + + hash + + YIWjI6pJrdUgnJeaQDpWY7wK5p4= + + optional + + + Resources/pl.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/pt.lproj/GLUT.nib + + hash + + MjmlNCV8DEBlmz8RMhVXMMskdHY= + + optional + + + Resources/pt.lproj/GLUTClipboard.nib/objects.nib + + hash + + uMMqPOen4ZhPRWAWqWmDzcHsICA= + + optional + + + Resources/pt.lproj/GLUTPreferences.nib + + hash + + c+dzx9e1xi1AdVZabFjGmXu2Jns= + + optional + + + Resources/pt.lproj/GLUTUI.strings + + hash + + dXFy6zHZh/JR+LcyhNmRjmlX12k= + + optional + + + Resources/pt.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/pt_PT.lproj/GLUT.nib + + hash + + wDHD1A87v3rlpSwIg4JvyiY4k0k= + + optional + + + Resources/pt_PT.lproj/GLUTClipboard.nib + + hash + + zS20SbBg9w7lVzUouSpOH66ZSuc= + + optional + + + Resources/pt_PT.lproj/GLUTPreferences.nib + + hash + + DbZU+TVRD8ZsWvRtOwRtsNqhKGs= + + optional + + + Resources/pt_PT.lproj/GLUTUI.strings + + hash + + 2PXu8o8Xos9q5cafAw2h+C6m66I= + + optional + + + Resources/pt_PT.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/rightArrowCursor.tiff + + 7K3jXpKlDtkkjHXTGcY9EeesMhU= + + Resources/rightCursor.tiff + + q9GmlIh4lCQk/ow13gGDjnHFsJo= + + Resources/ro.lproj/GLUT.nib + + hash + + nww/x1dIqEUFDnxzc/5vwQWysbo= + + optional + + + Resources/ro.lproj/GLUTClipboard.nib + + hash + + 8Xc8g89kByEAaU70JEf1ZNBdXMA= + + optional + + + Resources/ro.lproj/GLUTPreferences.nib + + hash + + Jq4Xr2Abgv8LPJmR0a00NNWymiU= + + optional + + + Resources/ro.lproj/GLUTUI.strings + + hash + + /98VbyObWKIEYnluJ82Ppgnhpjk= + + optional + + + Resources/ro.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/ru.lproj/GLUT.nib + + hash + + NptvOjRRjioRXc4lhz15UU9onMc= + + optional + + + Resources/ru.lproj/GLUTClipboard.nib + + hash + + vAJ8XsU2fs7jm60Up8Od2iHhG9w= + + optional + + + Resources/ru.lproj/GLUTPreferences.nib + + hash + + GJiamMeOpvM1Ql4WdT7lnn3VLwo= + + optional + + + Resources/ru.lproj/GLUTUI.strings + + hash + + HHeT534DvlzBbNEiR7hewOyDQVU= + + optional + + + Resources/ru.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/sk.lproj/GLUT.nib + + hash + + rWzkDeFRABaL9jaNC2Jg/mfHENw= + + optional + + + Resources/sk.lproj/GLUTClipboard.nib + + hash + + 6FAp4Ukk2ixJDCOxtWGlo/Sp6nM= + + optional + + + Resources/sk.lproj/GLUTPreferences.nib + + hash + + 5zYmSOARhnizPhB8Pf7dG+k8bU8= + + optional + + + Resources/sk.lproj/GLUTUI.strings + + hash + + OvN+fe/mGzaL01orEWEJp9SUHrg= + + optional + + + Resources/sk.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/sprayCursor.tiff + + dGquzbXCgTh0tAT400liHFqKMQg= + + Resources/sv.lproj/GLUT.nib/objects.nib + + hash + + mv+oXLtWzpRJdGwnM1ALwgsg8P4= + + optional + + + Resources/sv.lproj/GLUTClipboard.nib/objects.nib + + hash + + zbyujlfwrCBSHqmDjSnOIi67OR8= + + optional + + + Resources/sv.lproj/GLUTPreferences.nib + + hash + + m2yS9EPlbM/w2lqdxJz/loq11Aw= + + optional + + + Resources/sv.lproj/GLUTUI.strings + + hash + + tJTwzCxG9LaOIYGhS6aN/Okx/gg= + + optional + + + Resources/sv.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/th.lproj/GLUT.nib + + hash + + XwvxYcs04m3hiJXUGjdBR9Uvu0A= + + optional + + + Resources/th.lproj/GLUTClipboard.nib + + hash + + yVGifw22EFWjc9c2deV7wsG4Kw8= + + optional + + + Resources/th.lproj/GLUTPreferences.nib + + hash + + tccCw6Gwe97H58JxOje/vRKuTEs= + + optional + + + Resources/th.lproj/GLUTUI.strings + + hash + + bHzJbhI9D44T3pTU30asWYHpQUc= + + optional + + + Resources/th.lproj/InfoPlist.strings + + hash + + beOBXBvt1wfWvLfjJeuctbxc5g8= + + optional + + + Resources/topCursor.tiff + + MMgN7P7qDQqXsBUfpIDB93Ql6sk= + + Resources/topleftCursor.tiff + + 8qrlRyy9LBBZR2A47KeQ4NlBD9A= + + Resources/toprightCursor.tiff + + mF9JHrzd3nIzDrkOaMOtrkgB0SI= + + Resources/tr.lproj/GLUT.nib + + hash + + c1W04X9lHRr+2mCEDO0jIz8F/Bs= + + optional + + + Resources/tr.lproj/GLUTClipboard.nib + + hash + + eei+HqmJj+rVS3C/PRqgcJJ33Tk= + + optional + + + Resources/tr.lproj/GLUTPreferences.nib + + hash + + v9B8N7ifqek/0/OGvYkFozl/ujY= + + optional + + + Resources/tr.lproj/GLUTUI.strings + + hash + + K/QvPe5MuGRbPIXCHmJtiBKmFdg= + + optional + + + Resources/tr.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/uk.lproj/GLUT.nib + + hash + + YfXUuI32C6+nTxbViHfSzDuzTp4= + + optional + + + Resources/uk.lproj/GLUTClipboard.nib + + hash + + hkFh7mFKOIFGTMTRDoaayhhz67Q= + + optional + + + Resources/uk.lproj/GLUTPreferences.nib + + hash + + zSIaWYJSAvL5R1OwIfjblRVJV50= + + optional + + + Resources/uk.lproj/GLUTUI.strings + + hash + + xVJBCyxklXTXQin6BVmDoB1Lw3o= + + optional + + + Resources/uk.lproj/InfoPlist.strings + + hash + + 9MSFvcDNYZyBJZDjwahM31cVmqc= + + optional + + + Resources/upDownCursor.tiff + + y5wHeRc7vaGr9ml9ZlsAkzCuC4I= + + Resources/version.plist + + j7cRI4GkkD9tslXKFjfurzhEtV4= + + Resources/vi.lproj/GLUT.nib + + hash + + AZX6we4AJmYW3xvYTpR6xytXeo0= + + optional + + + Resources/vi.lproj/GLUTClipboard.nib + + hash + + 1/Xe+/1sszTdWG1amiwfz8nEuCs= + + optional + + + Resources/vi.lproj/GLUTPreferences.nib + + hash + + gi5VrYkzMKc2BkhIESK+5G1Ofm0= + + optional + + + Resources/vi.lproj/GLUTUI.strings + + hash + + TUmFN8hGm9fL1MnkySi29SrLpJg= + + optional + + + Resources/vi.lproj/InfoPlist.strings + + hash + + La/yVT9EY5j59K8HNnd5AhtIwGo= + + optional + + + Resources/waitCursor.tiff + + be1dmGFyl0hglygvvwrFZowZlS4= + + Resources/zh_CN.lproj/GLUT.nib + + hash + + ARdB90/+PR1HFznveSq9Di1A1mM= + + optional + + + Resources/zh_CN.lproj/GLUTClipboard.nib + + hash + + m+KFusPA+RF2COvMLc114jdHbk8= + + optional + + + Resources/zh_CN.lproj/GLUTPreferences.nib + + hash + + nU8sXTF6oTwATcyFqbLkXRiiZUM= + + optional + + + Resources/zh_CN.lproj/GLUTUI.strings + + hash + + Yll6M7tVY5FRiSpPHAFV2ctwvTo= + + optional + + + Resources/zh_CN.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/zh_TW.lproj/GLUT.nib/objects.nib + + hash + + m5EAb+uENLje+gyxLwGr5cpp2nI= + + optional + + + Resources/zh_TW.lproj/GLUTClipboard.nib + + hash + + e2Iv4Q/bToBTYou42g401ETXOU4= + + optional + + + Resources/zh_TW.lproj/GLUTPreferences.nib + + hash + + lvV/3uOTUe4xGlWN3M+2b+vaaOI= + + optional + + + Resources/zh_TW.lproj/GLUTUI.strings + + hash + + GbfzS9jsiYJQ7XnCQzV0QNv+1FA= + + optional + + + Resources/zh_TW.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/GLUT" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/GLUT" new file mode 100755 index 0000000..cb0529a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/GLUT" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/copy.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/copy.h" new file mode 100644 index 0000000..a5116e2 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/copy.h" @@ -0,0 +1,18 @@ + +/* + * + * Written By Linas Vepstas November 1991 + */ + + +#define COPY_THREE_WORDS(A,B) { \ + struct three_words { int a, b, c, }; \ + *(struct three_words *) (A) = *(struct three_words *) (B); \ +} + +#define COPY_FOUR_WORDS(A,B) { \ + struct four_words { int a, b, c, d, }; \ + *(struct four_words *) (A) = *(struct four_words *) (B); \ +} + +/* ============================================================= */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/extrude.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/extrude.h" new file mode 100644 index 0000000..c50d874 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/extrude.h" @@ -0,0 +1,96 @@ + +/* + * extrude.h + * + * FUNCTION: + * prototypes for privately used subroutines for the tubing library + * + * HISTORY: + * Linas Vepstas 1991 + */ + +#include "port.h" /* for gleDouble */ + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +/* ============================================================ */ +/* + * Provides choice of calling subroutine, vs. invoking macro. + * Basically, inlines the source, or not. + * Trades performance for executable size. + */ + +#define INLINE_INTERSECT +#ifdef INLINE_INTERSECT +#define INNERSECT(sect,p,n,v1,v2) { INTERSECT(sect,p,n,v1,v2); } +#else +#define INNERSECT(sect,p,n,v1,v2) intersect(sect,p,n,v1,v2) +#endif /* INLINE_INTERSECT */ + +/* ============================================================ */ +/* The folowing defines give a kludgy way of accessing the qmesh primitive */ + +/* +#define bgntmesh _emu_qmesh_bgnqmesh +#define endtmesh _emu_qmesh_endqmesh +#define c3f _emu_qmesh_c3f +#define n3f _emu_qmesh_n3f +#define v3f _emu_qmesh_v3f +*/ + +/* ============================================================ */ + +extern void up_sanity_check (gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3]) OPENGL_DEPRECATED(10_0, 10_9); /* polyline */ + + +extern void draw_raw_style_end_cap (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble zval, /* where to draw cap */ + int frontwards) OPENGL_DEPRECATED(10_0, 10_9); /* front or back cap */ + +extern void draw_round_style_cap_callback (int iloop, + double cap[][3], + float face_color[3], + gleDouble cut_vector[3], + gleDouble bisect_vector[3], + double norms[][3], + int frontwards) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_angle_style_front_cap (int ncp, + gleDouble bi[3], + gleDouble point_array[][3]) OPENGL_DEPRECATED(10_0, 10_9); + +extern void extrusion_raw_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]) OPENGL_DEPRECATED(10_0, 10_9); /* 2D contour xforms */ + + +extern void extrusion_round_or_cut_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]) OPENGL_DEPRECATED(10_0, 10_9); /* 2D contour xforms */ + + +extern void extrusion_angle_join (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2],/* 2D contour normal vecs */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline */ + float color_array[][3], /* color of polyline */ + gleDouble xform_array[][2][3]) OPENGL_DEPRECATED(10_0, 10_9); /* 2D contour xforms */ + +/* -------------------------- end of file -------------------------------- */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/glsmap.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/glsmap.h" new file mode 100644 index 0000000..6fca9b8 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/glsmap.h" @@ -0,0 +1,138 @@ +#ifndef __glsmap_h__ +#define __glsmap_h__ + +/* Copyright (c) Mark J. Kilgard, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#if defined(_WIN32) + +/* Try hard to avoid including to avoid name space pollution, + but Win32's needs APIENTRY and WINGDIAPI defined properly. */ +# if 0 +# define WIN32_LEAN_AND_MEAN +# include +# else + /* XXX This is from Win32's */ +# ifndef APIENTRY +# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) +# define APIENTRY __stdcall +# else +# define APIENTRY +# endif +# endif +# ifndef CALLBACK + /* XXX This is from Win32's */ +# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) +# define CALLBACK __stdcall +# else +# define CALLBACK +# endif +# endif + /* XXX This is from Win32's and */ +# ifndef WINGDIAPI +# define WINGDIAPI __declspec(dllimport) +# endif + /* XXX This is from Win32's */ +# ifndef _WCHAR_T_DEFINED +typedef unsigned short wchar_t; +# define _WCHAR_T_DEFINED +# endif +# endif + +#pragma warning (disable:4244) /* Disable bogus conversion warnings. */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ + +#endif /* _WIN32 */ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum { + SMAP_CLEAR_SMAP_TEXTURE = 0x1, + SMAP_GENERATE_VIEW_MIPMAPS = 0x2, + SMAP_GENERATE_SMAP_MIPMAPS = 0x4, + SMAP_GENERATE_MIPMAPS = 0x6 /* both of above */ +} SphereMapFlags OPENGL_DEPRECATED(10_0, 10_9); + +/* Cube view enumerants. */ +enum { + SMAP_FRONT = 0, + SMAP_TOP = 1, + SMAP_BOTTOM = 2, + SMAP_LEFT = 3, + SMAP_RIGHT = 4, + SMAP_BACK = 5 +}; + +typedef struct _SphereMap SphereMap OPENGL_DEPRECATED(10_0, 10_9); + +extern SphereMap *smapCreateSphereMap(SphereMap *shareSmap) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapDestroySphereMap(SphereMap *smap) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapConfigureSphereMapMesh(SphereMap *smap, int steps, int rings, int edgeExtend) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetSphereMapTexObj(SphereMap *smap, GLuint texobj) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetViewTexObj(SphereMap *smap, GLuint texobj) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetViewTexObjs(SphereMap *smap, GLuint texobjs[6]) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetSphereMapTexObj(SphereMap *smap, GLuint *texobj) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetViewTexObj(SphereMap *smap, GLuint *texobj) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetViewTexObjs(SphereMap *smap, GLuint texobjs[6]) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetFlags(SphereMap *smap, SphereMapFlags flags) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetFlags(SphereMap *smap, SphereMapFlags *flags) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetViewOrigin(SphereMap *smap, GLint x, GLint y) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetSphereMapOrigin(SphereMap *smap, GLint x, GLint y) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetViewOrigin(SphereMap *smap, GLint *x, GLint *y) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetSphereMapOrigin(SphereMap *smap, GLint *x, GLint *y) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetEye(SphereMap *smap, GLfloat eyex, GLfloat eyey, GLfloat eyez) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetEyeVector(SphereMap *smap, GLfloat *eye) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetUp(SphereMap *smap, GLfloat upx, GLfloat upy, GLfloat upz) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetUpVector(SphereMap *smap, GLfloat *up) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetObject(SphereMap *smap, GLfloat objx, GLfloat objy, GLfloat objz) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetObjectVector(SphereMap *smap, GLfloat *obj) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetEye(SphereMap *smap, GLfloat *eyex, GLfloat *eyey, GLfloat *eyez) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetEyeVector(SphereMap *smap, GLfloat *eye) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetUp(SphereMap *smap, GLfloat *upx, GLfloat *upy, GLfloat *upz) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetUpVector(SphereMap *smap, GLfloat *up) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetObject(SphereMap *smap, GLfloat *objx, GLfloat *objy, GLfloat *objz) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetObjectVector(SphereMap *smap, GLfloat *obj) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetNearFar(SphereMap *smap, GLfloat viewNear, GLfloat viewFar) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetNearFar(SphereMap *smap, GLfloat *viewNear, GLfloat *viewFar) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetSphereMapTexDim(SphereMap *smap, GLsizei texdim) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetViewTexDim(SphereMap *smap, GLsizei texdim) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetSphereMapTexDim(SphereMap *smap, GLsizei *texdim) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetViewTexDim(SphereMap *smap, GLsizei *texdim) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetContextData(SphereMap *smap, void *context) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetContextData(SphereMap *smap, void **context) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapSetPositionLightsFunc(SphereMap *smap, void (*positionLights)(int view, void *context)) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapSetDrawViewFunc(SphereMap *smap, void (*drawView)(int view, void *context)) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetPositionLightsFunc(SphereMap *smap, void (**positionLights)(int view, void *context)) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGetDrawViewFunc(SphereMap *smap, void (**drawView)(int view, void *context)) OPENGL_DEPRECATED(10_0, 10_9); + +extern void smapGenViewTex(SphereMap *smap, int view) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGenViewTexs(SphereMap *smap) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGenSphereMapFromViewTexs(SphereMap *smap) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGenSphereMap(SphereMap *smap) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapGenSphereMapWithOneViewTex(SphereMap *smap) OPENGL_DEPRECATED(10_0, 10_9); + +extern int smapRvecToSt(float rvec[3], float st[2]) OPENGL_DEPRECATED(10_0, 10_9); +extern void smapStToRvec(float *st, float *rvec) OPENGL_DEPRECATED(10_0, 10_9); + +#ifdef __cplusplus +} + +#endif +#endif /* __glsmap_h__ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/glsmapint.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/glsmapint.h" new file mode 100644 index 0000000..b2a9914 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/glsmapint.h" @@ -0,0 +1,102 @@ +#ifndef __glsmapint_h__ +#define __glsmapint_h__ + +/* Copyright (c) Mark J. Kilgard, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#include "glsmap.h" + +enum { X = 0, Y = 1, Z = 2 }; + +#define INITFACE(mesh) \ + int steps = mesh->steps; \ + int sqsteps = mesh->steps * mesh->steps + +#define FACE(side,y,x) \ + mesh->face[(side)*sqsteps + (y)*steps + (x)] + +#define FACExy(side,i,j) \ + (&FACE(side,i,j).x) + +#define FACEst(side,i,j) \ + (&FACE(side,i,j).s) + +#define INITBACK(mesh) \ + int allrings = mesh->rings + mesh->edgeExtend; \ + int ringedspokes = allrings * mesh->steps + +#define BACK(edge,ring,spoke) \ + mesh->back[(edge)*ringedspokes + (ring)*mesh->steps + (spoke)] + +#define BACKxy(edge,ring,spoke) \ + (&BACK(edge,ring,spoke).x) + +#define BACKst(edge,ring,spoke) \ + (&BACK(edge,ring,spoke).s) + +typedef struct _STXY { + GLfloat s, t; + GLfloat x, y; +} STXY OPENGL_DEPRECATED(10_0, 10_9); + +typedef struct _SphereMapMesh { + + int refcnt; + + int steps; + int rings; + int edgeExtend; + + STXY *face; + STXY *back; + +} SphereMapMesh OPENGL_DEPRECATED(10_0, 10_9); + +struct _SphereMap { + + /* Shared sphere map mesh vertex data. */ + SphereMapMesh *mesh; + + /* Texture object ids. */ + GLuint smapTexObj; + GLuint viewTexObjs[6]; + GLuint viewTexObj; + + /* Flags */ + SphereMapFlags flags; + + /* Texture dimensions must be a power of two. */ + int viewTexDim; /* view texture dimension */ + int smapTexDim; /* sphere map texture dimension */ + + /* Viewport origins for view and sphere map rendering. */ + int viewOrigin[2]; + int smapOrigin[2]; + + /* Viewing vectors. */ + GLfloat eye[3]; + GLfloat up[3]; + GLfloat obj[3]; + + /* Projection parameters. */ + GLfloat viewNear; + GLfloat viewFar; + + /* Rendering callbacks. */ + void (*positionLights)(int view, void *context); + void (*drawView)(int view, void *context); + + /* Application specified callback data. */ + void *context; + +} OPENGL_DEPRECATED(10_0, 10_9); + +/* Library internal routines. */ +extern void __smapDrawSphereMapMeshSide(SphereMapMesh *mesh, int side) OPENGL_DEPRECATED(10_0, 10_9); +extern void __smapDrawSphereMapMeshBack(SphereMapMesh *mesh) OPENGL_DEPRECATED(10_0, 10_9); +extern void __smapValidateSphereMapMesh(SphereMapMesh *mesh) OPENGL_DEPRECATED(10_0, 10_9); + +#endif /* __glsmapint_h__ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/glut.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/glut.h" new file mode 100644 index 0000000..9cf1f17 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/glut.h" @@ -0,0 +1,649 @@ +#ifndef __glut_h__ +#define __glut_h__ + +/* Copyright (c) Mark J. Kilgard, 1994, 1995, 1996, 1998. */ + +/* This program is freely distributable without licensing fees and is + provided without guarantee or warrantee expressed or implied. This + program is -not- in the public domain. */ + +#if defined(_WIN32) + +/* GLUT 3.7 now tries to avoid including + to avoid name space pollution, but Win32's + needs APIENTRY and WINGDIAPI defined properly. */ +# if 0 +# define WIN32_LEAN_AND_MEAN +# include +# else + /* XXX This is from Win32's */ +# ifndef APIENTRY +# define GLUT_APIENTRY_DEFINED +# if (_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED) +# define APIENTRY __stdcall +# else +# define APIENTRY +# endif +# endif + /* XXX This is from Win32's */ +# ifndef CALLBACK +# if (defined(_M_MRX000) || defined(_M_IX86) || defined(_M_ALPHA) || defined(_M_PPC)) && !defined(MIDL_PASS) +# define CALLBACK __stdcall +# else +# define CALLBACK +# endif +# endif + /* XXX This is from Win32's and */ +# ifndef WINGDIAPI +# define GLUT_WINGDIAPI_DEFINED +# define WINGDIAPI __declspec(dllimport) +# endif + /* XXX This is from Win32's */ +# ifndef _WCHAR_T_DEFINED +typedef unsigned short wchar_t; +# define _WCHAR_T_DEFINED +# endif +# endif + +#pragma comment (lib, "winmm.lib") /* link with Windows MultiMedia lib */ +#pragma comment (lib, "opengl32.lib") /* link with Microsoft OpenGL lib */ +#pragma comment (lib, "glu32.lib") /* link with OpenGL Utility lib */ +#pragma comment (lib, "glut32.lib") /* link with Win32 GLUT lib */ + +#pragma warning (disable:4244) /* Disable bogus conversion warnings. */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ + +#endif + +#if defined(__APPLE__) || defined(MACOSX) +#include +#include +#include +#else +#include +#include +#endif + +/* define APIENTRY and CALLBACK to null string if we aren't on Win32 */ +#if !defined(_WIN32) +#define APIENTRY +#define GLUT_APIENTRY_DEFINED +#define CALLBACK +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/** + GLUT API revision history: + + GLUT_API_VERSION is updated to reflect incompatible GLUT + API changes (interface changes, semantic changes, deletions, + or additions). + + GLUT_API_VERSION=1 First public release of GLUT. 11/29/94 + + GLUT_API_VERSION=2 Added support for OpenGL/GLX multisampling, + extension. Supports new input devices like tablet, dial and button + box, and Spaceball. Easy to query OpenGL extensions. + + GLUT_API_VERSION=3 glutMenuStatus added. + + GLUT_API_VERSION=4 glutInitDisplayString, glutWarpPointer, + glutBitmapLength, glutStrokeLength, glutWindowStatusFunc, dynamic + video resize subAPI, glutPostWindowRedisplay, glutKeyboardUpFunc, + glutSpecialUpFunc, glutIgnoreKeyRepeat, glutSetKeyRepeat, + glutJoystickFunc, glutForceJoystickFunc (NOT FINALIZED!). + + GLUT_API_VERSION=5 glutGetProcAddress (added by BrianP) +**/ +#ifndef GLUT_API_VERSION /* allow this to be overriden */ +#define GLUT_API_VERSION 5 +#endif + +/** + GLUT implementation revision history: + + GLUT_XLIB_IMPLEMENTATION is updated to reflect both GLUT + API revisions and implementation revisions (ie, bug fixes). + + GLUT_XLIB_IMPLEMENTATION=1 mjk's first public release of + GLUT Xlib-based implementation. 11/29/94 + + GLUT_XLIB_IMPLEMENTATION=2 mjk's second public release of + GLUT Xlib-based implementation providing GLUT version 2 + interfaces. + + GLUT_XLIB_IMPLEMENTATION=3 mjk's GLUT 2.2 images. 4/17/95 + + GLUT_XLIB_IMPLEMENTATION=4 mjk's GLUT 2.3 images. 6/?/95 + + GLUT_XLIB_IMPLEMENTATION=5 mjk's GLUT 3.0 images. 10/?/95 + + GLUT_XLIB_IMPLEMENTATION=7 mjk's GLUT 3.1+ with glutWarpPoitner. 7/24/96 + + GLUT_XLIB_IMPLEMENTATION=8 mjk's GLUT 3.1+ with glutWarpPoitner + and video resize. 1/3/97 + + GLUT_XLIB_IMPLEMENTATION=9 mjk's GLUT 3.4 release with early GLUT 4 routines. + + GLUT_XLIB_IMPLEMENTATION=11 Mesa 2.5's GLUT 3.6 release. + + GLUT_XLIB_IMPLEMENTATION=12 mjk's GLUT 3.6 release with early GLUT 4 routines + signal handling. + + GLUT_XLIB_IMPLEMENTATION=13 mjk's GLUT 3.7 beta with GameGLUT support. + + GLUT_XLIB_IMPLEMENTATION=14 mjk's GLUT 3.7 beta with f90gl friend interface. + + GLUT_XLIB_IMPLEMENTATION=15 mjk's GLUT 3.7 beta sync'ed with Mesa +**/ +#ifndef GLUT_XLIB_IMPLEMENTATION /* Allow this to be overriden. */ +#define GLUT_XLIB_IMPLEMENTATION 15 +#endif + +/** + MacOS X GLUT implementation revision history: + + GLUT_MACOSX_IMPLEMENTATION is updated to reflect MacOS X + specific GLUT API revisions and implementation revisions + (ie, bug fixes). + + GLUT_MACOSX_IMPLEMENTATION=1 glutSurfaceTexture. + + GLUT_MACOSX_IMPLEMENTATION=2 glutWMCloseFunc, glutCheckLoop. + + GLUT_MACOSX_IMPLEMENTATION=3 GLUT_NO_RECOVERY. + + GLUT_MACOSX_IMPLEMENTATION=4 GLUT_3_2_CORE_PROFILE. + +**/ +#ifndef GLUT_MACOSX_IMPLEMENTATION /* Allow this to be overriden. */ +#define GLUT_MACOSX_IMPLEMENTATION 4 +#endif + +/* Display mode bit masks. */ +#define GLUT_RGB 0 +#define GLUT_RGBA GLUT_RGB +#define GLUT_INDEX 1 +#define GLUT_SINGLE 0 +#define GLUT_DOUBLE 2 +#define GLUT_ACCUM 4 +#define GLUT_ALPHA 8 +#define GLUT_DEPTH 16 +#define GLUT_STENCIL 32 +#if (GLUT_API_VERSION >= 2) +#define GLUT_MULTISAMPLE 128 +#define GLUT_STEREO 256 +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_LUMINANCE 512 +#endif +#if (GLUT_MACOSX_IMPLEMENTATION >= 3) +#define GLUT_NO_RECOVERY 1024 +#endif +#if (GLUT_MACOSX_IMPLEMENTATION >= 4) +#define GLUT_3_2_CORE_PROFILE 2048 +#endif + +/* Mouse buttons. */ +#define GLUT_LEFT_BUTTON 0 +#define GLUT_MIDDLE_BUTTON 1 +#define GLUT_RIGHT_BUTTON 2 + +/* Mouse button state. */ +#define GLUT_DOWN 0 +#define GLUT_UP 1 + +#if (GLUT_API_VERSION >= 2) +/* function keys */ +#define GLUT_KEY_F1 1 +#define GLUT_KEY_F2 2 +#define GLUT_KEY_F3 3 +#define GLUT_KEY_F4 4 +#define GLUT_KEY_F5 5 +#define GLUT_KEY_F6 6 +#define GLUT_KEY_F7 7 +#define GLUT_KEY_F8 8 +#define GLUT_KEY_F9 9 +#define GLUT_KEY_F10 10 +#define GLUT_KEY_F11 11 +#define GLUT_KEY_F12 12 +/* directional keys */ +#define GLUT_KEY_LEFT 100 +#define GLUT_KEY_UP 101 +#define GLUT_KEY_RIGHT 102 +#define GLUT_KEY_DOWN 103 +#define GLUT_KEY_PAGE_UP 104 +#define GLUT_KEY_PAGE_DOWN 105 +#define GLUT_KEY_HOME 106 +#define GLUT_KEY_END 107 +#define GLUT_KEY_INSERT 108 +#endif + +/* Entry/exit state. */ +#define GLUT_LEFT 0 +#define GLUT_ENTERED 1 + +/* Menu usage state. */ +#define GLUT_MENU_NOT_IN_USE 0 +#define GLUT_MENU_IN_USE 1 + +/* Visibility state. */ +#define GLUT_NOT_VISIBLE 0 +#define GLUT_VISIBLE 1 + +/* Window status state. */ +#define GLUT_HIDDEN 0 +#define GLUT_FULLY_RETAINED 1 +#define GLUT_PARTIALLY_RETAINED 2 +#define GLUT_FULLY_COVERED 3 + +/* Color index component selection values. */ +#define GLUT_RED 0 +#define GLUT_GREEN 1 +#define GLUT_BLUE 2 + +/* Layers for use. */ +#define GLUT_NORMAL 0 +#define GLUT_OVERLAY 1 + +#if defined(_WIN32) +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN ((void*)0) +#define GLUT_STROKE_MONO_ROMAN ((void*)1) + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 ((void*)2) +#define GLUT_BITMAP_8_BY_13 ((void*)3) +#define GLUT_BITMAP_TIMES_ROMAN_10 ((void*)4) +#define GLUT_BITMAP_TIMES_ROMAN_24 ((void*)5) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 ((void*)6) +#define GLUT_BITMAP_HELVETICA_12 ((void*)7) +#define GLUT_BITMAP_HELVETICA_18 ((void*)8) +#endif +#else +/* Stroke font opaque addresses (use constants instead in source code). */ +extern void *glutStrokeRoman; +extern void *glutStrokeMonoRoman; + +/* Stroke font constants (use these in GLUT program). */ +#define GLUT_STROKE_ROMAN (&glutStrokeRoman) +#define GLUT_STROKE_MONO_ROMAN (&glutStrokeMonoRoman) + +/* Bitmap font opaque addresses (use constants instead in source code). */ +extern void *glutBitmap9By15; +extern void *glutBitmap8By13; +extern void *glutBitmapTimesRoman10; +extern void *glutBitmapTimesRoman24; +extern void *glutBitmapHelvetica10; +extern void *glutBitmapHelvetica12; +extern void *glutBitmapHelvetica18; + +/* Bitmap font constants (use these in GLUT program). */ +#define GLUT_BITMAP_9_BY_15 (&glutBitmap9By15) +#define GLUT_BITMAP_8_BY_13 (&glutBitmap8By13) +#define GLUT_BITMAP_TIMES_ROMAN_10 (&glutBitmapTimesRoman10) +#define GLUT_BITMAP_TIMES_ROMAN_24 (&glutBitmapTimesRoman24) +#if (GLUT_API_VERSION >= 3) +#define GLUT_BITMAP_HELVETICA_10 (&glutBitmapHelvetica10) +#define GLUT_BITMAP_HELVETICA_12 (&glutBitmapHelvetica12) +#define GLUT_BITMAP_HELVETICA_18 (&glutBitmapHelvetica18) +#endif +#endif + +/* glutGet parameters. */ +#define GLUT_WINDOW_X 100 +#define GLUT_WINDOW_Y 101 +#define GLUT_WINDOW_WIDTH 102 +#define GLUT_WINDOW_HEIGHT 103 +#define GLUT_WINDOW_BUFFER_SIZE 104 +#define GLUT_WINDOW_STENCIL_SIZE 105 +#define GLUT_WINDOW_DEPTH_SIZE 106 +#define GLUT_WINDOW_RED_SIZE 107 +#define GLUT_WINDOW_GREEN_SIZE 108 +#define GLUT_WINDOW_BLUE_SIZE 109 +#define GLUT_WINDOW_ALPHA_SIZE 110 +#define GLUT_WINDOW_ACCUM_RED_SIZE 111 +#define GLUT_WINDOW_ACCUM_GREEN_SIZE 112 +#define GLUT_WINDOW_ACCUM_BLUE_SIZE 113 +#define GLUT_WINDOW_ACCUM_ALPHA_SIZE 114 +#define GLUT_WINDOW_DOUBLEBUFFER 115 +#define GLUT_WINDOW_RGBA 116 +#define GLUT_WINDOW_PARENT 117 +#define GLUT_WINDOW_NUM_CHILDREN 118 +#define GLUT_WINDOW_COLORMAP_SIZE 119 +#if (GLUT_API_VERSION >= 2) +#define GLUT_WINDOW_NUM_SAMPLES 120 +#define GLUT_WINDOW_STEREO 121 +#endif +#if (GLUT_API_VERSION >= 3) +#define GLUT_WINDOW_CURSOR 122 +#endif +#define GLUT_SCREEN_WIDTH 200 +#define GLUT_SCREEN_HEIGHT 201 +#define GLUT_SCREEN_WIDTH_MM 202 +#define GLUT_SCREEN_HEIGHT_MM 203 +#define GLUT_MENU_NUM_ITEMS 300 +#define GLUT_DISPLAY_MODE_POSSIBLE 400 +#define GLUT_INIT_WINDOW_X 500 +#define GLUT_INIT_WINDOW_Y 501 +#define GLUT_INIT_WINDOW_WIDTH 502 +#define GLUT_INIT_WINDOW_HEIGHT 503 +#define GLUT_INIT_DISPLAY_MODE 504 +#if (GLUT_API_VERSION >= 2) +#define GLUT_ELAPSED_TIME 700 +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +#define GLUT_WINDOW_FORMAT_ID 123 +#endif + +#if (GLUT_API_VERSION >= 2) +/* glutDeviceGet parameters. */ +#define GLUT_HAS_KEYBOARD 600 +#define GLUT_HAS_MOUSE 601 +#define GLUT_HAS_SPACEBALL 602 +#define GLUT_HAS_DIAL_AND_BUTTON_BOX 603 +#define GLUT_HAS_TABLET 604 +#define GLUT_NUM_MOUSE_BUTTONS 605 +#define GLUT_NUM_SPACEBALL_BUTTONS 606 +#define GLUT_NUM_BUTTON_BOX_BUTTONS 607 +#define GLUT_NUM_DIALS 608 +#define GLUT_NUM_TABLET_BUTTONS 609 +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +#define GLUT_DEVICE_IGNORE_KEY_REPEAT 610 +#define GLUT_DEVICE_KEY_REPEAT 611 +#define GLUT_HAS_JOYSTICK 612 +#define GLUT_OWNS_JOYSTICK 613 +#define GLUT_JOYSTICK_BUTTONS 614 +#define GLUT_JOYSTICK_AXES 615 +#define GLUT_JOYSTICK_POLL_RATE 616 +#endif + +#if (GLUT_API_VERSION >= 3) +/* glutLayerGet parameters. */ +#define GLUT_OVERLAY_POSSIBLE 800 +#define GLUT_LAYER_IN_USE 801 +#define GLUT_HAS_OVERLAY 802 +#define GLUT_TRANSPARENT_INDEX 803 +#define GLUT_NORMAL_DAMAGED 804 +#define GLUT_OVERLAY_DAMAGED 805 + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* glutVideoResizeGet parameters. */ +#define GLUT_VIDEO_RESIZE_POSSIBLE 900 +#define GLUT_VIDEO_RESIZE_IN_USE 901 +#define GLUT_VIDEO_RESIZE_X_DELTA 902 +#define GLUT_VIDEO_RESIZE_Y_DELTA 903 +#define GLUT_VIDEO_RESIZE_WIDTH_DELTA 904 +#define GLUT_VIDEO_RESIZE_HEIGHT_DELTA 905 +#define GLUT_VIDEO_RESIZE_X 906 +#define GLUT_VIDEO_RESIZE_Y 907 +#define GLUT_VIDEO_RESIZE_WIDTH 908 +#define GLUT_VIDEO_RESIZE_HEIGHT 909 +#endif + +/* glutUseLayer parameters. */ +#define GLUT_NORMAL 0 +#define GLUT_OVERLAY 1 + +/* glutGetModifiers return mask. */ +#define GLUT_ACTIVE_SHIFT 1 +#define GLUT_ACTIVE_CTRL 2 +#define GLUT_ACTIVE_ALT 4 + +/* glutSetCursor parameters. */ +/* Basic arrows. */ +#define GLUT_CURSOR_RIGHT_ARROW 0 +#define GLUT_CURSOR_LEFT_ARROW 1 +/* Symbolic cursor shapes. */ +#define GLUT_CURSOR_INFO 2 +#define GLUT_CURSOR_DESTROY 3 +#define GLUT_CURSOR_HELP 4 +#define GLUT_CURSOR_CYCLE 5 +#define GLUT_CURSOR_SPRAY 6 +#define GLUT_CURSOR_WAIT 7 +#define GLUT_CURSOR_TEXT 8 +#define GLUT_CURSOR_CROSSHAIR 9 +/* Directional cursors. */ +#define GLUT_CURSOR_UP_DOWN 10 +#define GLUT_CURSOR_LEFT_RIGHT 11 +/* Sizing cursors. */ +#define GLUT_CURSOR_TOP_SIDE 12 +#define GLUT_CURSOR_BOTTOM_SIDE 13 +#define GLUT_CURSOR_LEFT_SIDE 14 +#define GLUT_CURSOR_RIGHT_SIDE 15 +#define GLUT_CURSOR_TOP_LEFT_CORNER 16 +#define GLUT_CURSOR_TOP_RIGHT_CORNER 17 +#define GLUT_CURSOR_BOTTOM_RIGHT_CORNER 18 +#define GLUT_CURSOR_BOTTOM_LEFT_CORNER 19 +/* Inherit from parent window. */ +#define GLUT_CURSOR_INHERIT 100 +/* Blank cursor. */ +#define GLUT_CURSOR_NONE 101 +/* Fullscreen crosshair (if available). */ +#define GLUT_CURSOR_FULL_CROSSHAIR 102 +#endif + +/* GLUT initialization sub-API. */ +extern void APIENTRY glutInit(int *argcp, char **argv) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutInitDisplayMode(unsigned int mode) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutInitDisplayString(const char *string) OPENGL_DEPRECATED(10_0, 10_9); +#endif +extern void APIENTRY glutInitWindowPosition(int x, int y) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutInitWindowSize(int width, int height) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutMainLoop(void) OPENGL_DEPRECATED(10_0, 10_9); + +/* GLUT window sub-API. */ +extern int APIENTRY glutCreateWindow(const char *title) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutCreateSubWindow(int win, int x, int y, int width, int height) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutDestroyWindow(int win) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutPostRedisplay(void) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) +extern void APIENTRY glutPostWindowRedisplay(int win) OPENGL_DEPRECATED(10_0, 10_9); +#endif +extern void APIENTRY glutSwapBuffers(void) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutGetWindow(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSetWindow(int win) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSetWindowTitle(const char *title) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSetIconTitle(const char *title) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutPositionWindow(int x, int y) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutReshapeWindow(int width, int height) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutPopWindow(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutPushWindow(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutIconifyWindow(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutShowWindow(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutHideWindow(void) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 3) +extern void APIENTRY glutFullScreen(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSetCursor(int cursor) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutWarpPointer(int x, int y) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_MACOSX_IMPLEMENTATION >= 1) +/* surface texturing API OS X specific +* Note: +* glutSurfaceTexture has been deprecated, use GL_EXT_framebuffer_object +*/ +extern void APIENTRY glutSurfaceTexture (GLenum target, GLenum internalformat, int surfacewin) OPENGL_DEPRECATED(10_2, 10_5); +#endif +#if (GLUT_MACOSX_IMPLEMENTATION >= 2) +/* OS X specific API */ +extern void APIENTRY glutWMCloseFunc(void (*func)(void)) OPENGL_DEPRECATED(10_3, 10_9); +extern void APIENTRY glutCheckLoop(void) OPENGL_DEPRECATED(10_3, 10_9); +#endif +#endif + +/* GLUT overlay sub-API. */ +extern void APIENTRY glutEstablishOverlay(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutRemoveOverlay(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutUseLayer(GLenum layer) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutPostOverlayRedisplay(void) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 11) +extern void APIENTRY glutPostWindowOverlayRedisplay(int win) OPENGL_DEPRECATED(10_0, 10_9); +#endif +extern void APIENTRY glutShowOverlay(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutHideOverlay(void) OPENGL_DEPRECATED(10_0, 10_9); +#endif + +/* GLUT menu sub-API. */ +extern int APIENTRY glutCreateMenu(void (*)(int)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutDestroyMenu(int menu) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutGetMenu(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSetMenu(int menu) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutAddMenuEntry(const char *label, int value) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutAddSubMenu(const char *label, int submenu) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutChangeToMenuEntry(int item, const char *label, int value) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutChangeToSubMenu(int item, const char *label, int submenu) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutRemoveMenuItem(int item) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutAttachMenu(int button) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutDetachMenu(int button) OPENGL_DEPRECATED(10_0, 10_9); + +/* GLUT window callback sub-API. */ +extern void APIENTRY glutDisplayFunc(void (*func)(void)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutReshapeFunc(void (*func)(int width, int height)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutKeyboardFunc(void (*func)(unsigned char key, int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutMouseFunc(void (*func)(int button, int state, int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutMotionFunc(void (*func)(int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutPassiveMotionFunc(void (*func)(int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutEntryFunc(void (*func)(int state)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutVisibilityFunc(void (*func)(int state)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutIdleFunc(void (*func)(void)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutTimerFunc(unsigned int millis, void (*func)(int value), int value) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutMenuStateFunc(void (*func)(int state)) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 2) +extern void APIENTRY glutSpecialFunc(void (*func)(int key, int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSpaceballMotionFunc(void (*func)(int x, int y, int z)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSpaceballRotateFunc(void (*func)(int x, int y, int z)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSpaceballButtonFunc(void (*func)(int button, int state)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutButtonBoxFunc(void (*func)(int button, int state)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutDialsFunc(void (*func)(int dial, int value)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutTabletMotionFunc(void (*func)(int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutTabletButtonFunc(void (*func)(int button, int state, int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 3) +extern void APIENTRY glutMenuStatusFunc(void (*func)(int status, int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutOverlayDisplayFunc(void (*func)(void)) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern void APIENTRY glutWindowStatusFunc(void (*func)(int state)) OPENGL_DEPRECATED(10_0, 10_9); +#endif +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +extern void APIENTRY glutKeyboardUpFunc(void (*func)(unsigned char key, int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSpecialUpFunc(void (*func)(int key, int x, int y)) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutJoystickFunc(void (*func)(unsigned int buttonMask, int x, int y, int z), int pollInterval) OPENGL_DEPRECATED(10_0, 10_9); +#endif +#endif +#endif + +/* GLUT color index sub-API. */ +extern void APIENTRY glutSetColor(int, GLfloat red, GLfloat green, GLfloat blue) OPENGL_DEPRECATED(10_0, 10_9); +extern GLfloat APIENTRY glutGetColor(int ndx, int component) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutCopyColormap(int win) OPENGL_DEPRECATED(10_0, 10_9); + +/* GLUT state retrieval sub-API. */ +extern int APIENTRY glutGet(GLenum type) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutDeviceGet(GLenum type) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 2) +/* GLUT extension support sub-API */ +extern int APIENTRY glutExtensionSupported(const char *name) OPENGL_DEPRECATED(10_0, 10_9); +#endif +#if (GLUT_API_VERSION >= 3) +extern int APIENTRY glutGetModifiers(void) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutLayerGet(GLenum type) OPENGL_DEPRECATED(10_0, 10_9); +#endif +#if (GLUT_API_VERSION >= 5) +extern void * APIENTRY glutGetProcAddress(const char *procName) OPENGL_DEPRECATED(10_3, 10_9); +#endif + +/* GLUT font sub-API */ +extern void APIENTRY glutBitmapCharacter(void *font, int character) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutBitmapWidth(void *font, int character) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutStrokeCharacter(void *font, int character) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutStrokeWidth(void *font, int character) OPENGL_DEPRECATED(10_0, 10_9); +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +extern int APIENTRY glutBitmapLength(void *font, const unsigned char *string) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutStrokeLength(void *font, const unsigned char *string) OPENGL_DEPRECATED(10_0, 10_9); +#endif + +/* GLUT pre-built models sub-API */ +extern void APIENTRY glutWireSphere(GLdouble radius, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidSphere(GLdouble radius, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireCube(GLdouble size) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidCube(GLdouble size) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireDodecahedron(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidDodecahedron(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireTeapot(GLdouble size) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidTeapot(GLdouble size) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireOctahedron(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidOctahedron(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireTetrahedron(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidTetrahedron(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutWireIcosahedron(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSolidIcosahedron(void) OPENGL_DEPRECATED(10_0, 10_9); + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 9) +/* GLUT video resize sub-API. */ +extern int APIENTRY glutVideoResizeGet(GLenum param) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSetupVideoResizing(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutStopVideoResizing(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutVideoResize(int x, int y, int width, int height) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutVideoPan(int x, int y, int width, int height) OPENGL_DEPRECATED(10_0, 10_9); + +/* GLUT debugging sub-API. */ +extern void APIENTRY glutReportErrors(void) OPENGL_DEPRECATED(10_0, 10_9); +#endif + +#if (GLUT_API_VERSION >= 4 || GLUT_XLIB_IMPLEMENTATION >= 13) +/* GLUT device control sub-API. */ +/* glutSetKeyRepeat modes. */ +#define GLUT_KEY_REPEAT_OFF 0 +#define GLUT_KEY_REPEAT_ON 1 +#define GLUT_KEY_REPEAT_DEFAULT 2 + +/* Joystick button masks. */ +#define GLUT_JOYSTICK_BUTTON_A 1 +#define GLUT_JOYSTICK_BUTTON_B 2 +#define GLUT_JOYSTICK_BUTTON_C 4 +#define GLUT_JOYSTICK_BUTTON_D 8 + +extern void APIENTRY glutIgnoreKeyRepeat(int ignore) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutSetKeyRepeat(int repeatMode) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutForceJoystickFunc(void) OPENGL_DEPRECATED(10_0, 10_9); + +/* GLUT game mode sub-API. */ +/* glutGameModeGet. */ +#define GLUT_GAME_MODE_ACTIVE 0 +#define GLUT_GAME_MODE_POSSIBLE 1 +#define GLUT_GAME_MODE_WIDTH 2 +#define GLUT_GAME_MODE_HEIGHT 3 +#define GLUT_GAME_MODE_PIXEL_DEPTH 4 +#define GLUT_GAME_MODE_REFRESH_RATE 5 +#define GLUT_GAME_MODE_DISPLAY_CHANGED 6 + +extern void APIENTRY glutGameModeString(const char *string) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutEnterGameMode(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY glutLeaveGameMode(void) OPENGL_DEPRECATED(10_0, 10_9); +extern int APIENTRY glutGameModeGet(GLenum mode) OPENGL_DEPRECATED(10_0, 10_9); +#endif + +#ifdef __cplusplus +} + +#endif + +#ifdef GLUT_APIENTRY_DEFINED +# undef GLUT_APIENTRY_DEFINED +# undef APIENTRY +#endif + +#ifdef GLUT_WINGDIAPI_DEFINED +# undef GLUT_WINGDIAPI_DEFINED +# undef WINGDIAPI +#endif + +#endif /* __glut_h__ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/glutbitmap.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/glutbitmap.h" new file mode 100644 index 0000000..08c39ed --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/glutbitmap.h" @@ -0,0 +1,30 @@ +#ifndef __glutbitmap_h__ +#define __glutbitmap_h__ + +/* Copyright (c) Mark J. Kilgard, 1994. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#include "glut.h" + +typedef struct { + const GLsizei width; + const GLsizei height; + const GLfloat xorig; + const GLfloat yorig; + const GLfloat advance; + const GLubyte *bitmap; +} BitmapCharRec OPENGL_DEPRECATED(10_0, 10_9), *BitmapCharPtr OPENGL_DEPRECATED(10_0, 10_9); + +typedef struct { + const char *name; + const int num_chars; + const int first; + const BitmapCharRec * const *ch; +} BitmapFontRec OPENGL_DEPRECATED(10_0, 10_9), *BitmapFontPtr OPENGL_DEPRECATED(10_0, 10_9); + +typedef void *GLUTbitmapFont OPENGL_DEPRECATED(10_0, 10_9); + +#endif /* __glutbitmap_h__ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/glutf90.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/glutf90.h" new file mode 100644 index 0000000..f9211c3 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/glutf90.h" @@ -0,0 +1,90 @@ +#ifndef __glutf90_h__ +#define __glutf90_h__ + +/* Copyright (c) Mark J. Kilgard & Willam F. Mitchell, 1998. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +/* This header provides the binding interface for William Mitchell's + f90gl Fortran 90 GLUT binding. Other GLUT language bindings + can and should use this interace. */ + +/* I appreciate the guidance from William Mitchell + (mitchell@cam.nist.gov) in developing this friend interface + for use by the f90gl package. See ../../README.fortran */ + +#include + +#ifndef GLUTCALLBACK + #define GLUTCALLBACK +#endif +#ifndef APIENTRY + #define APIENTRY +#endif + +/* Which callback enumerants for the __glutSetFCB/__glutGetFCB routines. */ +/* NOTE These values are part of a binary interface for the f90gl Fortran + 90 binding and so must NOT changes (additions are allowed). */ + +/* GLUTwindow callbacks. */ +#define GLUT_FCB_DISPLAY 0 /* GLUTdisplayFCB */ +#define GLUT_FCB_RESHAPE 1 /* GLUTreshapeFCB */ +#define GLUT_FCB_MOUSE 2 /* GLUTmouseFCB */ +#define GLUT_FCB_MOTION 3 /* GLUTmotionFCB */ +#define GLUT_FCB_PASSIVE 4 /* GLUTpassiveFCB */ +#define GLUT_FCB_ENTRY 5 /* GLUTentryFCB */ +#define GLUT_FCB_KEYBOARD 6 /* GLUTkeyboardFCB */ +#define GLUT_FCB_KEYBOARD_UP 7 /* GLUTkeyboardFCB */ +#define GLUT_FCB_WINDOW_STATUS 8 /* GLUTwindowStatusFCB */ +#define GLUT_FCB_VISIBILITY 9 /* GLUTvisibilityFCB */ +#define GLUT_FCB_SPECIAL 10 /* GLUTspecialFCB */ +#define GLUT_FCB_SPECIAL_UP 11 /* GLUTspecialFCB */ +#define GLUT_FCB_BUTTON_BOX 12 /* GLUTbuttonBoxFCB */ +#define GLUT_FCB_DIALS 13 /* GLUTdialsFCB */ +#define GLUT_FCB_SPACE_MOTION 14 /* GLUTspaceMotionFCB */ +#define GLUT_FCB_SPACE_ROTATE 15 /* GLUTspaceRotateFCB */ +#define GLUT_FCB_SPACE_BUTTON 16 /* GLUTspaceButtonFCB */ +#define GLUT_FCB_TABLET_MOTION 17 /* GLUTtabletMotionFCB */ +#define GLUT_FCB_TABLET_BUTTON 18 /* GLUTtabletButtonFCB */ +#define GLUT_FCB_JOYSTICK 19 /* GLUTjoystickFCB */ +#define GLUT_FCB_WMCLOSE 20 /* GLUTwmcloseFCB */ +/* Non-GLUTwindow callbacks. */ +#define GLUT_FCB_OVERLAY_DISPLAY 100 /* GLUTdisplayFCB */ +#define GLUT_FCB_SELECT 101 /* GLUTselectFCB */ +#define GLUT_FCB_TIMER 102 /* GLUTtimerFCB */ + +/* GLUT Fortran callback function types. */ +typedef void (GLUTCALLBACK *GLUTdisplayFCB) (void) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTwmcloseFCB) (void) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTreshapeFCB) (int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +/* NOTE the pressed key is int, not unsigned char for Fortran! */ +typedef void (GLUTCALLBACK *GLUTkeyboardFCB) (int *, int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTmouseFCB) (int *, int *, int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTmotionFCB) (int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTpassiveFCB) (int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTentryFCB) (int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTwindowStatusFCB) (int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTvisibilityFCB) (int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTspecialFCB) (int *, int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTbuttonBoxFCB) (int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTdialsFCB) (int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTspaceMotionFCB) (int *, int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTspaceRotateFCB) (int *, int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTspaceButtonFCB) (int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTtabletMotionFCB) (int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTtabletButtonFCB) (int *, int *, int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTjoystickFCB) (unsigned int *buttonMask, int *x, int *y, int *z) OPENGL_DEPRECATED(10_0, 10_9); + +typedef void (GLUTCALLBACK *GLUTselectFCB) (int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTtimerFCB) (int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTmenuStateFCB) (int *) OPENGL_DEPRECATED(10_0, 10_9); /* DEPRECATED. */ +typedef void (GLUTCALLBACK *GLUTmenuStatusFCB) (int *, int *, int *) OPENGL_DEPRECATED(10_0, 10_9); +typedef void (GLUTCALLBACK *GLUTidleFCB) (void) OPENGL_DEPRECATED(10_0, 10_9); + +/* Functions that set and return Fortran callback functions. */ +extern void* APIENTRY __glutGetFCB(int which) OPENGL_DEPRECATED(10_0, 10_9); +extern void APIENTRY __glutSetFCB(int which, void *func) OPENGL_DEPRECATED(10_0, 10_9); + +#endif /* __glutf90_h__ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/glutstroke.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/glutstroke.h" new file mode 100644 index 0000000..80cfe0d --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/glutstroke.h" @@ -0,0 +1,44 @@ +#ifndef __glutstroke_h__ +#define __glutstroke_h__ + +#include + +/* Copyright (c) Mark J. Kilgard, 1994. */ + +/* This program is freely distributable without licensing fees + and is provided without guarantee or warrantee expressed or + implied. This program is -not- in the public domain. */ + +#if defined(_WIN32) +#pragma warning (disable:4244) /* disable bogus conversion warnings */ +#pragma warning (disable:4305) /* VC++ 5.0 version of above warning. */ +#endif + +typedef struct { + float x; + float y; +} CoordRec OPENGL_DEPRECATED(10_0, 10_9), *CoordPtr OPENGL_DEPRECATED(10_0, 10_9); + +typedef struct { + int num_coords; + const CoordRec *coord; +} StrokeRec OPENGL_DEPRECATED(10_0, 10_9), *StrokePtr OPENGL_DEPRECATED(10_0, 10_9); + +typedef struct { + int num_strokes; + const StrokeRec *stroke; + float center; + float right; +} StrokeCharRec OPENGL_DEPRECATED(10_0, 10_9), *StrokeCharPtr OPENGL_DEPRECATED(10_0, 10_9); + +typedef struct { + const char *name; + int num_chars; + const StrokeCharRec *ch; + float top; + float bottom; +} StrokeFontRec OPENGL_DEPRECATED(10_0, 10_9), *StrokeFontPtr OPENGL_DEPRECATED(10_0, 10_9); + +typedef void *GLUTstrokeFont OPENGL_DEPRECATED(10_0, 10_9); + +#endif /* __glutstroke_h__ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/gutil.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/gutil.h" new file mode 100644 index 0000000..02dd936 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/gutil.h" @@ -0,0 +1,91 @@ + +/* + * gutil.h + * + * FUNCTION: + * Provide utilities that allow rotation to occur + * around any axis. + * + * HISTORY: + * created by Linas Vepstas 1990 + * added single & double precision, June 1991, Linas Vepstas + */ + +#ifndef __GUTIL_H__ +#define __GUTIL_H__ + +#include + +#ifdef __GUTIL_DOUBLE +#define gutDouble double +#else +#define gutDouble float +#endif + + +#ifdef _NO_PROTO /* NO ANSI C PROTOTYPING */ + +/* Rotation Utilities */ +extern void rot_axis_f () OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_about_axis_f () OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_omega_f () OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_axis_f () OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_about_axis_f () OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_omega_f () OPENGL_DEPRECATED(10_0, 10_9); + +/* double-precision versions */ +extern void rot_axis_d () OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_about_axis_d () OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_omega_d () OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_axis_d () OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_about_axis_d () OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_omega_d () OPENGL_DEPRECATED(10_0, 10_9); + +/* viewpoint functions */ +extern void uview_direction_d () OPENGL_DEPRECATED(10_0, 10_9); +extern void uview_direction_f () OPENGL_DEPRECATED(10_0, 10_9); +extern void uviewpoint_d () OPENGL_DEPRECATED(10_0, 10_9); +extern void uviewpoint_f () OPENGL_DEPRECATED(10_0, 10_9); + +#else /* _NO_PROTO */ /* ANSI C PROTOTYPING */ + +/* Rotation Utilities */ +extern void rot_axis_f (float omega, float axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_about_axis_f (float angle, float axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_omega_f (float axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_axis_f (float m[4][4], float omega, float axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_about_axis_f (float m[4][4], float angle, float axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_omega_f (float m[4][4], float axis[3]) OPENGL_DEPRECATED(10_0, 10_9); + +/* double-precision versions */ +extern void rot_axis_d (double omega, double axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_about_axis_d (double angle, double axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void rot_omega_d (double axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_axis_d (double m[4][4], double omega, double axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_about_axis_d (double m[4][4], double angle, double axis[3]) OPENGL_DEPRECATED(10_0, 10_9); +extern void urot_omega_d (double m[4][4], double axis[3]) OPENGL_DEPRECATED(10_0, 10_9); + +/* viewpoint functions */ +extern void uview_direction_d (double m[4][4], /* returned */ + double v21[3], /* input */ + double up[3]) OPENGL_DEPRECATED(10_0, 10_9); /* input */ + +extern void uview_direction_f (float m[4][4], /* returned */ + float v21[3], /* input */ + float up[3]) OPENGL_DEPRECATED(10_0, 10_9); /* input */ + +extern void uviewpoint_d (double m[4][4], /* returned */ + double v1[3], /* input */ + double v2[3], /* input */ + double up[3]) OPENGL_DEPRECATED(10_0, 10_9); /* input */ + +extern void uviewpoint_f (float m[4][4], /* returned */ + float v1[3], /* input */ + float v2[3], /* input */ + float up[3]) OPENGL_DEPRECATED(10_0, 10_9); /* input */ + +#endif /* _NO_PROTO */ + +#endif /* _GUTIL_H__ */ + +/* ------------------- end of file ---------------------- */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/intersect.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/intersect.h" new file mode 100644 index 0000000..b6b2433 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/intersect.h" @@ -0,0 +1,391 @@ +/* + * FUNCTION: + * This file contains a number of utilities useful to 3D graphics in + * general, and to the generation of tubing and extrusions in particular + * + * HISTORY: + * Written by Linas Vepstas, August 1991 + * Updated to correctly handle degenerate cases, Linas, February 1993 + */ + +#include +#include "port.h" +#include "vvector.h" + +#define BACKWARDS_INTERSECT (2) + +/* ========================================================== */ +/* + * the Degenerate_Tolerance token represents the greatest amount by + * which different scales in a graphics environment can differ before + * they should be considered "degenerate". That is, when one vector is + * a million times longer than another, changces are that the second will + * be less than a pixel int, and therefore was probably meant to be + * degenerate (by the CAD package, etc.) But what should this tolerance + * be? At least 1 in onethousand (since screen sizes are 1K pixels), but + * les than 1 in 4 million (since this is the limit of single-precision + * floating point accuracy). Of course, if double precision were used, + * then the tolerance could be increased. + * + * Potentially, this naive assumption could cause problems if the CAD + * package attempts to zoom in on small details, and turns out, certain + * points should not hvae been degenerate. The problem presented here + * is that the tolerance could run out before single-precision ran + * out, and so the CAD packages would perceive this as a "bug". + * One alternative is to fiddle around & try to tighten the tolerance. + * However, the right alternative is to code the graphics pipeline in + * double-precision (and tighten the tolerance). + * + * By the way, note that Degernate Tolerance is a "dimensionless" + * quantitiy -- it has no units -- it does not measure feet, inches, + * millimeters or pixels. It is used only in the computations of ratios + * and relative lengths. + */ + +/* + * Right now, the tolerance is set to 2 parts in a million, which + * corresponds to a 19-bit distinction of mantissas. Note that + * single-precsion numbers have 24 bit mantissas. + */ + +#define DEGENERATE_TOLERANCE (0.000002) + +/* ========================================================== */ +/* + * The macro and subroutine INTERSECT are designed to compute the + * intersection of a line (defined by the points v1 and v2) and a plane + * (defined as plane which is normal to the vector n, and contains the + * point p). Both return the point sect, which is the point of + * interesection. + * + * This MACRO attemps to be fairly robust by checking for a divide by + * zero. + */ + +/* ========================================================== */ +/* + * HACK ALERT + * The intersection parameter t has the nice property that if t>1, + * then the intersection is "in front of" p1, and if t<0, then the + * intersection is "behind" p2. Unfortunately, as the intersecting plane + * and the line become parallel, t wraps through infinity -- i.e. t can + * become so large that t becomes "greater than infinity" and comes back + * as a negative number (i.e. winding number hopped by one unit). We + * have no way of detecting this situation without adding gazzillions + * of lines of code of topological algebra to detect the winding number; + * and this would be incredibly difficult, and ruin performance. + * + * Thus, we've installed a cheap hack for use by the "cut style" drawing + * routines. If t proves to be a large negative number (more negative + * than -5), then we assume that t was positive and wound through + * infinity. This makes most cuts look good, without introducing bogus + * cuts at infinity. + */ +/* ========================================================== */ + +#define INTERSECT(sect,p,n,v1,v2) \ +{ \ + gleDouble deno, numer, t, omt; \ + \ + deno = (v1[0] - v2[0]) * n[0]; \ + deno += (v1[1] - v2[1]) * n[1]; \ + deno += (v1[2] - v2[2]) * n[2]; \ + \ + if (deno == 0.0) { \ + VEC_COPY (n, v1); \ + /* printf ("Intersect: Warning: line is coplanar with plane \n"); */ \ + } else { \ + \ + numer = (p[0] - v2[0]) * n[0]; \ + numer += (p[1] - v2[1]) * n[1]; \ + numer += (p[2] - v2[2]) * n[2]; \ + \ + t = numer / deno; \ + omt = 1.0 - t; \ + \ + sect[0] = t * v1[0] + omt * v2[0]; \ + sect[1] = t * v1[1] + omt * v2[1]; \ + sect[2] = t * v1[2] + omt * v2[2]; \ + } \ +} + +/* ========================================================== */ +/* + * The macro and subroutine BISECTING_PLANE compute a normal vector that + * describes the bisecting plane between three points (v1, v2 and v3). + * This bisecting plane has the following properties: + * 1) it contains the point v2 + * 2) the angle it makes with v21 == v2 - v1 is equal to the angle it + * makes with v32 == v3 - v2 + * 3) it is perpendicular to the plane defined by v1, v2, v3. + * + * Having input v1, v2, and v3, it returns a unit vector n. + * + * In some cases, the user may specify degenerate points, and still + * expect "reasonable" or "obvious" behaviour. The "expected" + * behaviour for these degenerate cases is: + * + * 1) if v1 == v2 == v3, then return n=0 + * 2) if v1 == v2, then return v32 (normalized). + * 3) if v2 == v3, then return v21 (normalized). + * 4) if v1, v2 and v3 co-linear, then return v21 (normalized). + * + * Mathematically, these special cases "make sense" -- we just have to + * code around potential divide-by-zero's in the code below. + */ + +/* ========================================================== */ + +#define BISECTING_PLANE(valid,n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double vdot; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 <= DEGENERATE_TOLERANCE * len32) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as bisector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + valid = TRUE; \ + } \ + \ + } else { \ + \ + valid = TRUE; \ + \ + if (len32 <= DEGENERATE_TOLERANCE * len21) { \ + /* return a normalized copy of v21 as bisector */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (n, len21, v21); \ + \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DOT_PRODUCT (vdot, v32, v21); \ + \ + /* if vdot == 1 or -1, then points are colinear */ \ + if ((vdot >= (1.0-DEGENERATE_TOLERANCE)) || \ + (vdot <= (-1.0+DEGENERATE_TOLERANCE))) { \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* go do the full computation */ \ + n[0] = vdot * (v32[0] + v21[0]) - v32[0] - v21[0]; \ + n[1] = vdot * (v32[1] + v21[1]) - v32[1] - v21[1]; \ + n[2] = vdot * (v32[2] + v21[2]) - v32[2] - v21[2]; \ + \ + /* if above if-test's passed, \ + * n should NEVER be of zero length */ \ + VEC_NORMALIZE (n); \ + } \ + } \ + } \ +} + +/* ========================================================== */ +/* + * The block of code below is ifdef'd out, and is here for reference + * purposes only. It performs the "mathematically right thing" for + * computing a bisecting plane, but is, unfortunately, subject ot noise + * in the presence of near degenerate points. Since computer graphics, + * due to sloppy coding, laziness, or correctness, is filled with + * degenerate points, we can't really use this version. The code above + * is far more appropriate for graphics. + */ + +#ifdef MATHEMATICALLY_EXACT_GRAPHICALLY_A_KILLER +#define BISECTING_PLANE(n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double vdot; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 == 0.0) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as bisector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + } \ + \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + if (len32 == 0.0) { \ + /* return a normalized copy of v21 as bisector */ \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DOT_PRODUCT (vdot, v32, v21); \ + \ + /* if vdot == 1 or -1, then points are colinear */ \ + if ((vdot == 1.0) || (vdot == -1.0)) { \ + VEC_COPY (n, v21); \ + } else { \ + \ + /* go do the full computation */ \ + n[0] = vdot * (v32[0] + v21[0]) - v32[0] - v21[0]; \ + n[1] = vdot * (v32[1] + v21[1]) - v32[1] - v21[1]; \ + n[2] = vdot * (v32[2] + v21[2]) - v32[2] - v21[2]; \ + \ + /* if above if-test's passed, \ + * n should NEVER be of zero length */ \ + VEC_NORMALIZE (n); \ + } \ + } \ + } \ +} +#endif + +/* ========================================================== */ +/* + * This macro computes the plane perpendicular to the the plane + * defined by three points, and whose normal vector is givven as the + * difference between the two vectors ... + * + * (See way below for the "math" model if you want to understand this. + * The comments about relative errors above apply here.) + */ + +#define CUTTING_PLANE(valid,n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + double len21, len32; \ + double lendiff; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_LENGTH (len21, v21); \ + VEC_LENGTH (len32, v32); \ + \ + if (len21 <= DEGENERATE_TOLERANCE * len32) { \ + \ + if (len32 == 0.0) { \ + /* all three points lie ontop of one-another */ \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + /* return a normalized copy of v32 as cut-vector */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (n, len32, v32); \ + valid = TRUE; \ + } \ + \ + } else { \ + \ + valid = TRUE; \ + \ + if (len32 <= DEGENERATE_TOLERANCE * len21) { \ + /* return a normalized copy of v21 as cut vector */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (n, len21, v21); \ + } else { \ + \ + /* normalize v21 to be of unit length */ \ + len21 = 1.0 / len21; \ + VEC_SCALE (v21, len21, v21); \ + \ + /* normalize v32 to be of unit length */ \ + len32 = 1.0 / len32; \ + VEC_SCALE (v32, len32, v32); \ + \ + VEC_DIFF (n, v21, v32); \ + VEC_LENGTH (lendiff, n); \ + \ + /* if the perp vector is very small, then the two \ + * vectors are darn near collinear, and the cut \ + * vector is probably poorly defined. */ \ + if (lendiff < DEGENERATE_TOLERANCE) { \ + VEC_ZERO (n); \ + valid = FALSE; \ + } else { \ + lendiff = 1.0 / lendiff; \ + VEC_SCALE (n, lendiff, n); \ + } \ + } \ + } \ +} + +/* ========================================================== */ + +#ifdef MATHEMATICALLY_EXACT_GRAPHICALLY_A_KILLER +#define CUTTING_PLANE(n,v1,v2,v3) \ +{ \ + double v21[3], v32[3]; \ + \ + VEC_DIFF (v21, v2, v1); \ + VEC_DIFF (v32, v3, v2); \ + \ + VEC_NORMALIZE (v21); \ + VEC_NORMALIZE (v32); \ + \ + VEC_DIFF (n, v21, v32); \ + VEC_NORMALIZE (n); \ +} +#endif + + +/* ============================================================ */ +/* This macro is used in several places to cycle through a series of + * points to find the next non-degenerate point in a series */ + +#define FIND_NON_DEGENERATE_POINT(inext,npoints,len,diff,point_array) \ +{ \ + gleDouble slen; \ + gleDouble summa[3]; \ + \ + do { \ + /* get distance to next point */ \ + VEC_DIFF (diff, point_array[inext+1], point_array[inext]); \ + VEC_LENGTH (len, diff); \ + VEC_SUM (summa, point_array[inext+1], point_array[inext]); \ + VEC_LENGTH (slen, summa); \ + slen *= DEGENERATE_TOLERANCE; \ + inext ++; \ + } while ((len <= slen) && (inext < npoints-1)); \ +} + +/* ========================================================== */ + +extern int bisecting_plane (gleDouble n[3], /* returned */ + gleDouble v1[3], /* input */ + gleDouble v2[3], /* input */ + gleDouble v3[3]) OPENGL_DEPRECATED(10_0, 10_9); /* input */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/port.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/port.h" new file mode 100644 index 0000000..2827bbf --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/port.h" @@ -0,0 +1,298 @@ + +/* + * port.h + * + * FUNCTION: + * This file contains defines for porting the tubing toolkit from GL to + * OpenGL to some callback scheme. + * + * HISTORY: + * Created by Linas Vepstas -- February 1993 + * Added auto texture coord generation hacks, Linas April 1994 + */ + +#ifndef __GLE_PORT_H__ +#define __GLE_PORT_H__ + + +#ifndef TRUE +#define TRUE 1 +#endif + +#ifndef FALSE +#define FALSE 0 +#endif + +#ifndef M_PI +#define M_PI 3.14159265358979323846 +#endif + +/* ====================================================== */ +/* Some compilers can't handle multiply-subscripted array's */ + +#ifdef FUNKY_C +typedef gleDouble gleVector; +#define AVAL(arr,n,i,j) arr(6*n+3*i+j) +#define VVAL(arr,n,i) arr(3*n+i) + +#else /* FUNKY_C */ +typedef double gleVector[3]; +typedef double glePoint[2]; +#define AVAL(arr,n,i,j) arr[n][i][j] +#define VVAL(arr,n,i) arr[n][i]; + +#endif /* FUNKY_C */ + +/* ====================================================== */ +/* These are used to convey info about topography to the + * texture mapping routines */ + +#define FRONT 1 +#define BACK 2 +#define FRONT_CAP 3 +#define BACK_CAP 4 +#define FILLET 5 + +/* ====================================================== */ + +#define __GLE_DOUBLE + +/* ====================================================== */ + +#ifdef __GLE_DOUBLE +#ifndef gleDouble + #define gleDouble double +#endif +#define urot_axis(a,b,c) urot_axis_d(a,b,c) +#define uview_direction(a,b,c) uview_direction_d(a,b,c) +#define uviewpoint(a,b,c,d) uviewpoint_d(a,b,c,d) +#define MULTMATRIX(m) MULTMATRIX_D(m) +#define LOADMATRIX(m) LOADMATRIX_D(m) +#define V3F(x,j,id) V3F_D(x,j,id) +#define N3F(x) N3F_D(x) +#define T2F(x,y) T2F_D(x,y) +#else +#define gleDouble float +#define urot_axis(a,b,c) urot_axis_f(a,b,c) +#define uview_direction(a,b,c) uview_direction_f(a,b,c) +#define uviewpoint(a,b,c,d) uviewpoint_f(a,b,c,d) +#define MULTMATRIX(m) MULTMATRIX_F(m) +#define LOADMATRIX(m) LOADMATRIX_F(m) +#define V3F(x,j,id) V3F_F(x,j,id) +#define N3F(x) N3F_F(x) +#define T2F(x,y) T2F_F(x,y) +#endif + +/* ====================================================== */ + +#if (defined DEBUG_GL_32 || DEBUG_OPENGL_10) +#undef GL_32 +#undef OPENGL_10 + +#define BGNTMESH(i,len) printf ("bgntmesh() \n"); +#define ENDTMESH() printf ("endtmesh() \n"); +#define BGNPOLYGON() printf ("bgnpolygon() \n"); +#define ENDPOLYGON() printf ("endpolygon() \n"); +#define V3F_F(x,j,id) printf ("v3f(x) %f %f %f \n", x[0], x[1], x[2]); +#define V3F_D(x,j,id) printf ("v3d(x) %f %f %f \n", x[0], x[1], x[2]); +#define N3F_F(x) printf ("n3f(x) %f %f %f \n", x[0], x[1], x[2]); +#define N3F_D(x) printf ("n3d(x) %f %f %f \n", x[0], x[1], x[2]); +#define C3F(x) printf ("c3f(x) %f %f %f \n", x[0], x[1], x[2]); + +#define POPMATRIX() printf ("popmatrix () \n"); +#define PUSHMATRIX() printf ("pushmatrix() \n"); +#define MULTMATRIX_F(x) MULTMATRIX_D(x) +#define LOADMATRIX_F(x) LOADMATRIX_D(x) + + +#define LOADMATRIX_D(x) { \ + int i, j; \ + printf ("loadmatrix (x) \n"); \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ( "%f ", x[i][j]); \ + } \ + printf (" \n"); \ + } \ +} + +#define MULTMATRIX_D(x) { \ + int i, j; \ + printf ("multmatrix (x) \n"); \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ( "%f ", x[i][j]); \ + } \ + printf (" \n"); \ + } \ +} + +#define __IS_LIGHTING_ON (1) + +#endif + +/* ====================================================== */ + +#ifdef GL_32 + +#include + +#define BGNTMESH(i,len) bgntmesh() +#define ENDTMESH() endtmesh() +#define BGNPOLYGON() bgnpolygon() +#define ENDPOLYGON() endpolygon() +#define V3F_F(x,j,id) v3f(x) +#define V3F_D(x,j,id) v3d(x) +#define N3F_F(x) n3f(x) +#define T2F_F(x,y) +#define T2F_D(x,y) +#define C3F(x) c3f(x) + +#define POPMATRIX() popmatrix () +#define PUSHMATRIX() pushmatrix() +#define MULTMATRIX_F(x) multmatrix (x) +#define LOADMATRIX_F(x) loadmatrix (x) + +#define N3F_D(x) { \ + float nnn[3]; \ + nnn[0] = (float) x[0]; \ + nnn[1] = (float) x[1]; \ + nnn[2] = (float) x[2]; \ + n3f (nnn); \ +} + +#define LOADMATRIX_D(x) { \ + int i, j; \ + float mmm[4][4]; \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + mmm[i][j] = (float) x[i][j]; \ + } \ + } \ + loadmatrix(mmm); \ +} + +#define MULTMATRIX_D(x) { \ + int i, j; \ + float mmm[4][4]; \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + mmm[i][j] = (float) x[i][j]; \ + } \ + } \ + multmatrix(mmm); \ +} + +/* #define __IS_LIGHTING_ON (MSINGLE == getmmode()) */ +#define __IS_LIGHTING_ON (extrusion_join_style & TUBE_LIGHTING_ON) + +#endif /* GL_32 */ + +/* ====================================================== */ +#ifdef OPENGL_10 + +#if defined(_WIN32) +#include +#pragma warning (disable:4244) /* disable bogus conversion warnings */ +#endif +#include +#include + +/* +#define N3F_F(x) { \ + float nnn[3]; \ + nnn[0] = - (float) x[0]; \ + nnn[1] = - (float) x[1]; \ + nnn[2] = - (float) x[2]; \ + glNormal3fv (nnn); \ +} +#define N3F_D(x) { \ + float nnn[3]; \ + nnn[0] = - (float) x[0]; \ + nnn[1] = - (float) x[1]; \ + nnn[2] = - (float) x[2]; \ + glNormal3fv (nnn); \ +} +*/ + +#define C3F(x) glColor3fv(x) +#define T2F_F(x,y) glTexCoord2f(x,y) +#define T2F_D(x,y) glTexCoord2d(x,y) + +#define POPMATRIX() glPopMatrix() +#define PUSHMATRIX() glPushMatrix() + +#define MULTMATRIX_F(x) glMultMatrixf ((const GLfloat *)x) +#define LOADMATRIX_F(x) glLoadMatrixf ((const GLfloat *)x) + +#define MULTMATRIX_D(x) glMultMatrixd ((const GLdouble *)x) +#define LOADMATRIX_D(x) glLoadMatrixd ((const GLdouble *)x) + +#define __IS_LIGHTING_ON (glIsEnabled(GL_LIGHTING)) + +/* ====================================================== */ +#ifdef AUTO_TEXTURE + +#define BGNTMESH(i,len) { \ + if(_gle_gc -> bgn_gen_texture) (*(_gle_gc -> bgn_gen_texture))(i,len);\ + glBegin (GL_TRIANGLE_STRIP); \ +} + +#define BGNPOLYGON() { \ + if(_gle_gc -> bgn_gen_texture) (*(_gle_gc -> bgn_gen_texture))();\ + glBegin (GL_POLYGON); \ +} + +#define N3F_F(x) { \ + if(_gle_gc -> n3f_gen_texture) (*(_gle_gc -> n3f_gen_texture))(x); \ + glNormal3fv(x); \ +} + +#define N3F_D(x) { \ + if(_gle_gc -> n3d_gen_texture) (*(_gle_gc -> n3d_gen_texture))(x); \ + glNormal3dv(x); \ +} + +#define V3F_F(x,j,id) { \ + if(_gle_gc -> v3f_gen_texture) (*(_gle_gc -> v3f_gen_texture))(x,j,id);\ + glVertex3fv(x); \ +} + +#define V3F_D(x,j,id) { \ + if(_gle_gc -> v3d_gen_texture) (*(_gle_gc -> v3d_gen_texture))(x,j,id); \ + glVertex3dv(x); \ +} + +#define ENDTMESH() { \ + if(_gle_gc -> end_gen_texture) (*(_gle_gc -> end_gen_texture))(); \ + glEnd (); \ +} + +#define ENDPOLYGON() { \ + if(_gle_gc -> end_gen_texture) (*(_gle_gc -> end_gen_texture))(); \ + glEnd (); \ +} + +/* ====================================================== */ +#else /* AUTO_TEXTURE */ + +#define BGNTMESH(i,len) glBegin (GL_TRIANGLE_STRIP); +#define BGNPOLYGON() glBegin (GL_POLYGON); + +#define N3F_F(x) glNormal3fv(x) +#define N3F_D(x) glNormal3dv(x) +#define V3F_F(x,j,id) glVertex3fv(x); +#define V3F_D(x,j,id) glVertex3dv(x); + +#define ENDTMESH() glEnd () +#define ENDPOLYGON() glEnd() + +#endif /* AUTO_TEXTURE */ + +#endif /* OPENGL_10 */ + +/* ====================================================== */ + + +#endif /* __GLE_PORT_H__ */ +/* ================== END OF FILE ======================= */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/rot.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/rot.h" new file mode 100644 index 0000000..91083e9 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/rot.h" @@ -0,0 +1,98 @@ + +/* + * rot.h + * + * FUNCTION: + * rotation matrix utilities + * + * HISTORY: + * Linas Vepstas Aug 1990 + */ + +/* ========================================================== */ +/* + * The MACROS below generate and return more traditional rotation + * matrices -- matrices for rotations about principal axes. + */ +/* ========================================================== */ + +#define ROTX_CS(m,cosine,sine) \ +{ \ + /* rotation about the x-axis */ \ + \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = (cosine); \ + m[1][2] = (sine); \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = -(sine); \ + m[2][2] = (cosine); \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ + +#define ROTY_CS(m,cosine,sine) \ +{ \ + /* rotation about the y-axis */ \ + \ + m[0][0] = (cosine); \ + m[0][1] = 0.0; \ + m[0][2] = -(sine); \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = (sine); \ + m[2][1] = 0.0; \ + m[2][2] = (cosine); \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ + +#define ROTZ_CS(m,cosine,sine) \ +{ \ + /* rotation about the z-axis */ \ + \ + m[0][0] = (cosine); \ + m[0][1] = (sine); \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = -(sine); \ + m[1][1] = (cosine); \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/segment.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/segment.h" new file mode 100644 index 0000000..6d51637 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/segment.h" @@ -0,0 +1,98 @@ + +/* + * MODULE: segment.h + * + * FUNCTION: + * Contains function prototypes for segment drawing subroutines. + * These are used only internally, and are not to be exported to + * the user. + * + * HISTORY: + * Create by Linas Vepstas + * Added tube.h include to define gleDouble, tad February 2002 + */ + +/* ============================================================ */ + +#include "tube.h" + +extern void draw_segment_plain (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_segment_color (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + float color_last[3], + float color_next[3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_segment_edge_n (int ncp, /* number of contour points */ + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_segment_c_and_edge_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + float color_last[3], + float color_next[3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_segment_facet_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_segment_c_and_facet_n (int ncp, + gleDouble front_contour[][3], + gleDouble back_contour[][3], + double norm_cont[][3], + float color_last[3], + float color_next[3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +/* ============================================================ */ + +extern void draw_binorm_segment_edge_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_binorm_segment_c_and_edge_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + float color_last[3], + float color_next[3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_binorm_segment_facet_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_binorm_segment_c_and_facet_n (int ncp, + double front_contour[][3], + double back_contour[][3], + double front_norm[][3], + double back_norm[][3], + float color_last[3], + float color_next[3], + int inext, double len) OPENGL_DEPRECATED(10_0, 10_9); + +extern void draw_angle_style_back_cap (int ncp, /* number of contour points */ + gleDouble bi[3], /* biscetor */ + gleDouble point_array[][3]) OPENGL_DEPRECATED(10_0, 10_9); /* polyline */ + +/* -------------------------- end of file -------------------------------- */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/tube.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/tube.h" new file mode 100644 index 0000000..9954333 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/tube.h" @@ -0,0 +1,205 @@ +/* + * tube.h + * + * FUNCTION: + * Tubing and Extrusion header file. + * This file provides protypes and defines for the extrusion + * and tubing primitives. + * + * HISTORY: + * Linas Vepstas 1990, 1991 + */ + +#ifndef __TUBE_H__ +#define __TUBE_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/** + GLE API revision history: + + GLE_API_VERSION is updated to reflect GLE API changes (interface + changes, semantic changes, deletions, or additions). + + GLE_API_VERSION=228 GLUT 3.7 release of GLE. +**/ +#ifndef GLE_API_VERSION /* allow this to be overriden */ +#define GLE_API_VERSION 228 +#endif + +/* some types */ +#ifndef gleDouble + #define gleDouble double +#endif +typedef gleDouble gleAffine[2][3] OPENGL_DEPRECATED(10_0, 10_9); + +/* ====================================================== */ + +/* defines for tubing join styles */ +#define TUBE_JN_RAW 0x1 +#define TUBE_JN_ANGLE 0x2 +#define TUBE_JN_CUT 0x3 +#define TUBE_JN_ROUND 0x4 +#define TUBE_JN_MASK 0xf /* mask bits */ +#define TUBE_JN_CAP 0x10 + +/* determine how normal vectors are to be handled */ +#define TUBE_NORM_FACET 0x100 +#define TUBE_NORM_EDGE 0x200 +#define TUBE_NORM_PATH_EDGE 0x400 /* for spiral, lathe, helix primitives */ +#define TUBE_NORM_MASK 0xf00 /* mask bits */ + +/* closed or open countours */ +#define TUBE_CONTOUR_CLOSED 0x1000 + +#define GLE_TEXTURE_ENABLE 0x10000 +#define GLE_TEXTURE_STYLE_MASK 0xff +#define GLE_TEXTURE_VERTEX_FLAT 1 +#define GLE_TEXTURE_NORMAL_FLAT 2 +#define GLE_TEXTURE_VERTEX_CYL 3 +#define GLE_TEXTURE_NORMAL_CYL 4 +#define GLE_TEXTURE_VERTEX_SPH 5 +#define GLE_TEXTURE_NORMAL_SPH 6 +#define GLE_TEXTURE_VERTEX_MODEL_FLAT 7 +#define GLE_TEXTURE_NORMAL_MODEL_FLAT 8 +#define GLE_TEXTURE_VERTEX_MODEL_CYL 9 +#define GLE_TEXTURE_NORMAL_MODEL_CYL 10 +#define GLE_TEXTURE_VERTEX_MODEL_SPH 11 +#define GLE_TEXTURE_NORMAL_MODEL_SPH 12 + +#ifdef GL_32 +/* HACK for GL 3.2 -- needed because no way to tell if lighting is on. */ +#define TUBE_LIGHTING_ON 0x80000000 + +#define gleExtrusion extrusion +#define gleSetJoinStyle setjoinstyle +#define gleGetJoinStyle getjoinstyle +#define glePolyCone polycone +#define glePolyCylinder polycylinder +#define gleSuperExtrusion super_extrusion +#define gleTwistExtrusion twist_extrusion +#define gleSpiral spiral +#define gleLathe lathe +#define gleHelicoid helicoid +#define gleToroid toroid +#define gleScrew screw + +#endif /* GL_32 */ + +extern int gleGetJoinStyle (void) OPENGL_DEPRECATED(10_0, 10_9); +extern void gleSetJoinStyle (int style) OPENGL_DEPRECATED(10_0, 10_9); /* bitwise OR of flags */ +extern int gleGetNumSlices(void) OPENGL_DEPRECATED(10_0, 10_9); +extern void gleSetNumSlices(int slices) OPENGL_DEPRECATED(10_0, 10_9); + +/* draw polyclinder, specified as a polyline */ +extern void glePolyCylinder (int npoints, /* num points in polyline */ + gleDouble point_array[][3], /* polyline vertces */ + float color_array[][3], /* colors at polyline verts */ + gleDouble radius) OPENGL_DEPRECATED(10_0, 10_9); /* radius of polycylinder */ + +/* draw polycone, specified as a polyline with radii */ +extern void glePolyCone (int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* colors at polyline verts */ + gleDouble radius_array[]) OPENGL_DEPRECATED(10_0, 10_9); /* cone radii at polyline verts */ + +/* extrude arbitrary 2D contour along arbitrary 3D path */ +extern void gleExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3]) OPENGL_DEPRECATED(10_0, 10_9); /* colors at polyline verts */ + +/* extrude 2D contour, specifying local rotations (twists) */ +extern void gleTwistExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* color at polyline verts */ + gleDouble twist_array[]) OPENGL_DEPRECATED(10_0, 10_9); /* countour twists (in degrees) */ + +/* extrude 2D contour, specifying local affine tranformations */ +extern void gleSuperExtrusion (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + int npoints, /* numpoints in poly-line */ + gleDouble point_array[][3], /* polyline vertices */ + float color_array[][3], /* color at polyline verts */ + gleDouble xform_array[][2][3]) OPENGL_DEPRECATED(10_0, 10_9); /* 2D contour xforms */ + +/* spiral moves contour along helical path by parallel transport */ +extern void gleSpiral (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta) OPENGL_DEPRECATED(10_0, 10_9); /* degrees to spiral around */ + +/* lathe moves contour along helical path by helically shearing 3D space */ +extern void gleLathe (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta) OPENGL_DEPRECATED(10_0, 10_9); /* degrees to spiral around */ + +/* similar to spiral, except contour is a circle */ +extern void gleHelicoid (gleDouble rToroid, /* circle contour (torus) radius */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta) OPENGL_DEPRECATED(10_0, 10_9); /* degrees to spiral around */ + +/* similar to lathe, except contour is a circle */ +extern void gleToroid (gleDouble rToroid, /* circle contour (torus) radius */ + gleDouble startRadius, /* spiral starts in x-y plane */ + gleDouble drdTheta, /* change in radius per revolution */ + gleDouble startZ, /* starting z value */ + gleDouble dzdTheta, /* change in Z per revolution */ + gleDouble startXform[2][3], /* starting contour affine xform */ + gleDouble dXformdTheta[2][3], /* tangent change xform per revoln */ + gleDouble startTheta, /* start angle in x-y plane */ + gleDouble sweepTheta) OPENGL_DEPRECATED(10_0, 10_9); /* degrees to spiral around */ + +/* draws a screw shape */ +extern void gleScrew (int ncp, /* number of contour points */ + gleDouble contour[][2], /* 2D contour */ + gleDouble cont_normal[][2], /* 2D contour normals */ + gleDouble up[3], /* up vector for contour */ + gleDouble startz, /* start of segment */ + gleDouble endz, /* end of segment */ + gleDouble twist) OPENGL_DEPRECATED(10_0, 10_9); /* number of rotations */ + +extern void gleTextureMode (int mode) OPENGL_DEPRECATED(10_0, 10_9); + +#ifdef __cplusplus +} + +#endif +#endif /* __TUBE_H__ */ +/* ================== END OF FILE ======================= */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/tube_gc.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/tube_gc.h" new file mode 100644 index 0000000..8da9b9f --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/tube_gc.h" @@ -0,0 +1,78 @@ + +/* + * tube_gc.h + * + * FUNCTION: + * This file allows for easy changes to changes in the way the extrusion + * library handles state info (i.e. context). + * + * HISTORY: + * Linas Vepstas --- February 1993 + * Added auto texture coord generation hacks, Linas April 1994 + * Added tube.h include to define gleDouble, tad February 2002 + */ + +#include "tube.h" +#include "port.h" /* for gleVector */ + +typedef float gleColor[3] OPENGL_DEPRECATED(10_0, 10_9); +typedef double gleTwoVec[2] OPENGL_DEPRECATED(10_0, 10_9); + +typedef struct { + + /* public methods */ + void (*bgn_gen_texture) (int, double); + void (*n3f_gen_texture) (float *); + void (*n3d_gen_texture) (double *); + void (*v3f_gen_texture) (float *, int, int); + void (*v3d_gen_texture) (double *, int, int); + void (*end_gen_texture) (void); + + /* protected members -- "general knowledge" stuff */ + int join_style; + + /* arguments passed into extrusion code */ + int ncp; /* number of contour points */ + gleTwoVec *contour; /* 2D contour */ + gleTwoVec *cont_normal; /* 2D contour normals */ + gleDouble *up; /* up vector */ + int npoints; /* number of points in polyline */ + gleVector *point_array; /* path */ + gleColor *color_array; /* path colors */ + gleAffine *xform_array; /* contour xforms */ + + /* private members, used by texturing code */ + int num_vert; + int segment_number; + double segment_length; + double accum_seg_len; + double prev_x; + double prev_y; + + void (*save_bgn_gen_texture) (int, double); + void (*save_n3f_gen_texture) (float *); + void (*save_n3d_gen_texture) (double *); + void (*save_v3f_gen_texture) (float *, int, int); + void (*save_v3d_gen_texture) (double *, int, int); + void (*save_end_gen_texture) (void); + +} gleGC OPENGL_DEPRECATED(10_0, 10_9); + +extern gleGC *_gle_gc OPENGL_DEPRECATED(10_0, 10_9); +extern gleGC * gleCreateGC (void) OPENGL_DEPRECATED(10_0, 10_9); + +#define INIT_GC() {if (!_gle_gc) _gle_gc = gleCreateGC(); } +#define extrusion_join_style (_gle_gc->join_style) + +#define __TUBE_CLOSE_CONTOUR (extrusion_join_style & TUBE_CONTOUR_CLOSED) +#define __TUBE_DRAW_CAP (extrusion_join_style & TUBE_JN_CAP) +#define __TUBE_DRAW_FACET_NORMALS (extrusion_join_style & TUBE_NORM_FACET) +#define __TUBE_DRAW_PATH_EDGE_NORMALS (extrusion_join_style & TUBE_NORM_PATH_EDGE) + +#define __TUBE_STYLE (extrusion_join_style & TUBE_JN_MASK) +#define __TUBE_RAW_JOIN (extrusion_join_style & TUBE_JN_RAW) +#define __TUBE_CUT_JOIN (extrusion_join_style & TUBE_JN_CUT) +#define __TUBE_ANGLE_JOIN (extrusion_join_style & TUBE_JN_ANGLE) +#define __TUBE_ROUND_JOIN (extrusion_join_style & TUBE_JN_ROUND) + +/* ======================= END OF FILE ========================== */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/vvector.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/vvector.h" new file mode 100644 index 0000000..b58dcd6 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Headers/vvector.h" @@ -0,0 +1,1339 @@ + +/* + * vvector.h + * + * FUNCTION: + * This file contains a number of utilities useful for handling + * 3D vectors + * + * HISTORY: + * Written by Linas Vepstas, August 1991 + * Added 2D code, March 1993 + * Added Outer products, C++ proofed, Linas Vepstas October 1993 + */ + +#ifndef __GUTIL_VECTOR_H__ +#define __GUTIL_VECTOR_H__ + +#if defined(__cplusplus) || defined(c_plusplus) +extern "C" { +#endif + + +#include +#include "port.h" + +/* ========================================================== */ +/* Zero out a 2D vector */ + +#define VEC_ZERO_2(a) \ +{ \ + (a)[0] = (a)[1] = 0.0; \ +} + +/* ========================================================== */ +/* Zero out a 3D vector */ + +#define VEC_ZERO(a) \ +{ \ + (a)[0] = (a)[1] = (a)[2] = 0.0; \ +} + +/* ========================================================== */ +/* Zero out a 4D vector */ + +#define VEC_ZERO_4(a) \ +{ \ + (a)[0] = (a)[1] = (a)[2] = (a)[3] = 0.0; \ +} + +/* ========================================================== */ +/* Vector copy */ + +#define VEC_COPY_2(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ +} + +/* ========================================================== */ +/* Copy 3D vector */ + +#define VEC_COPY(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ + (b)[2] = (a)[2]; \ +} + +/* ========================================================== */ +/* Copy 4D vector */ + +#define VEC_COPY_4(b,a) \ +{ \ + (b)[0] = (a)[0]; \ + (b)[1] = (a)[1]; \ + (b)[2] = (a)[2]; \ + (b)[3] = (a)[3]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF_2(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ + (v21)[2] = (v2)[2] - (v1)[2]; \ +} + +/* ========================================================== */ +/* Vector difference */ + +#define VEC_DIFF_4(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] - (v1)[0]; \ + (v21)[1] = (v2)[1] - (v1)[1]; \ + (v21)[2] = (v2)[2] - (v1)[2]; \ + (v21)[3] = (v2)[3] - (v1)[3]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM_2(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ + (v21)[2] = (v2)[2] + (v1)[2]; \ +} + +/* ========================================================== */ +/* Vector sum */ + +#define VEC_SUM_4(v21,v2,v1) \ +{ \ + (v21)[0] = (v2)[0] + (v1)[0]; \ + (v21)[1] = (v2)[1] + (v1)[1]; \ + (v21)[2] = (v2)[2] + (v1)[2]; \ + (v21)[3] = (v2)[3] + (v1)[3]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE_2(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ + (c)[2] = (a)*(b)[2]; \ +} + +/* ========================================================== */ +/* scalar times vector */ + +#define VEC_SCALE_4(c,a,b) \ +{ \ + (c)[0] = (a)*(b)[0]; \ + (c)[1] = (a)*(b)[1]; \ + (c)[2] = (a)*(b)[2]; \ + (c)[3] = (a)*(b)[3]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM_2(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ + (c)[2] += (a)*(b)[2]; \ +} + +/* ========================================================== */ +/* accumulate scaled vector */ + +#define VEC_ACCUM_4(c,a,b) \ +{ \ + (c)[0] += (a)*(b)[0]; \ + (c)[1] += (a)*(b)[1]; \ + (c)[2] += (a)*(b)[2]; \ + (c)[3] += (a)*(b)[3]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT_2(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2]; \ +} + +/* ========================================================== */ +/* Vector dot product */ + +#define VEC_DOT_PRODUCT_4(c,a,b) \ +{ \ + c = (a)[0]*(b)[0] + (a)[1]*(b)[1] + (a)[2]*(b)[2] + (a)[3]*(b)[3] ; \ +} + +/* ========================================================== */ +/* vector impact parameter (squared) */ + +#define VEC_IMPACT_SQ(bsq,direction,position) \ +{ \ + gleDouble vlen, llel; \ + VEC_DOT_PRODUCT (vlen, position, position); \ + VEC_DOT_PRODUCT (llel, direction, position); \ + bsq = vlen - llel*llel; \ +} + +/* ========================================================== */ +/* vector impact parameter */ + +#define VEC_IMPACT(bsq,direction,position) \ +{ \ + VEC_IMPACT_SQ(bsq,direction,position); \ + bsq = sqrt (bsq); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH_2(vlen,a) \ +{ \ + vlen = a[0]*a[0] + a[1]*a[1]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH(vlen,a) \ +{ \ + vlen = (a)[0]*(a)[0] + (a)[1]*(a)[1]; \ + vlen += (a)[2]*(a)[2]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_LENGTH_4(vlen,a) \ +{ \ + vlen = (a)[0]*(a)[0] + (a)[1]*(a)[1]; \ + vlen += (a)[2]*(a)[2]; \ + vlen += (a)[3] * (a)[3]; \ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* distance between two points */ + +#define VEC_DISTANCE(vlen,va,vb) \ +{ \ + gleDouble tmp[4]; \ + VEC_DIFF (tmp, vb, va); \ + VEC_LENGTH (vlen, tmp); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_CONJUGATE_LENGTH(vlen,a) \ +{ \ + vlen = 1.0 - a[0]*a[0] - a[1]*a[1] - a[2]*a[2];\ + vlen = sqrt (vlen); \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_NORMALIZE(a) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen,a); \ + if (vlen != 0.0) { \ + vlen = 1.0 / vlen; \ + a[0] *= vlen; \ + a[1] *= vlen; \ + a[2] *= vlen; \ + } \ +} + +/* ========================================================== */ +/* Vector length */ + +#define VEC_RENORMALIZE(a,newlen) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen,a); \ + if (vlen != 0.0) { \ + vlen = newlen / vlen; \ + a[0] *= vlen; \ + a[1] *= vlen; \ + a[2] *= vlen; \ + } \ +} + +/* ========================================================== */ +/* 3D Vector cross product yeilding vector */ + +#define VEC_CROSS_PRODUCT(c,a,b) \ +{ \ + c[0] = (a)[1] * (b)[2] - (a)[2] * (b)[1]; \ + c[1] = (a)[2] * (b)[0] - (a)[0] * (b)[2]; \ + c[2] = (a)[0] * (b)[1] - (a)[1] * (b)[0]; \ +} + +/* ========================================================== */ +/* Vector perp -- assumes that n is of unit length + * accepts vector v, subtracts out any component parallel to n */ + +#define VEC_PERP(vp,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vp[0] = (v)[0] - (vdot) * (n)[0]; \ + vp[1] = (v)[1] - (vdot) * (n)[1]; \ + vp[2] = (v)[2] - (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector parallel -- assumes that n is of unit length + * accepts vector v, subtracts out any component perpendicular to n */ + +#define VEC_PARALLEL(vp,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vp[0] = (vdot) * (n)[0]; \ + vp[1] = (vdot) * (n)[1]; \ + vp[2] = (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector reflection -- assumes n is of unit length */ +/* Takes vector v, reflects it against reflector n, and returns vr */ + +#define VEC_REFLECT(vr,v,n) \ +{ \ + double vdot; \ + \ + VEC_DOT_PRODUCT (vdot, v, n); \ + vr[0] = (v)[0] - 2.0 * (vdot) * (n)[0]; \ + vr[1] = (v)[1] - 2.0 * (vdot) * (n)[1]; \ + vr[2] = (v)[2] - 2.0 * (vdot) * (n)[2]; \ +} + +/* ========================================================== */ +/* Vector blending */ +/* Takes two vectors a, b, blends them together */ + +#define VEC_BLEND(vr,sa,a,sb,b) \ +{ \ + \ + vr[0] = (sa) * (a)[0] + (sb) * (b)[0]; \ + vr[1] = (sa) * (a)[1] + (sb) * (b)[1]; \ + vr[2] = (sa) * (a)[2] + (sb) * (b)[2]; \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT_2(a) \ +{ \ + double vlen; \ + VEC_LENGTH_2 (vlen, a); \ + printf (" a is %f %f length of a is %f \n", a[0], a[1], vlen); \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT(a) \ +{ \ + double vlen; \ + VEC_LENGTH (vlen, (a)); \ + printf (" a is %f %f %f length of a is %f \n", (a)[0], (a)[1], (a)[2], vlen); \ +} + +/* ========================================================== */ +/* Vector print */ + +#define VEC_PRINT_4(a) \ +{ \ + double vlen; \ + VEC_LENGTH_4 (vlen, (a)); \ + printf (" a is %f %f %f %f length of a is %f \n", \ + (a)[0], (a)[1], (a)[2], (a)[3], vlen); \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_4X4(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<4; i++) { \ + for (j=0; j<4; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_3X3(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<3; i++) { \ + for (j=0; j<3; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* print matrix */ + +#define MAT_PRINT_2X3(mmm) { \ + int i,j; \ + printf ("matrix mmm is \n"); \ + if (mmm == NULL) { \ + printf (" Null \n"); \ + } else { \ + for (i=0; i<2; i++) { \ + for (j=0; j<3; j++) { \ + printf ("%f ", mmm[i][j]); \ + } \ + printf (" \n"); \ + } \ + } \ +} + +/* ========================================================== */ +/* initialize matrix */ + +#define IDENTIFY_MATRIX_3X3(m) \ +{ \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ +} + +/* ========================================================== */ +/* initialize matrix */ + +#define IDENTIFY_MATRIX_4X4(m) \ +{ \ + m[0][0] = 1.0; \ + m[0][1] = 0.0; \ + m[0][2] = 0.0; \ + m[0][3] = 0.0; \ + \ + m[1][0] = 0.0; \ + m[1][1] = 1.0; \ + m[1][2] = 0.0; \ + m[1][3] = 0.0; \ + \ + m[2][0] = 0.0; \ + m[2][1] = 0.0; \ + m[2][2] = 1.0; \ + m[2][3] = 0.0; \ + \ + m[3][0] = 0.0; \ + m[3][1] = 0.0; \ + m[3][2] = 0.0; \ + m[3][3] = 1.0; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_2X2(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_2X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_3X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ + \ + b[2][0] = a[2][0]; \ + b[2][1] = a[2][1]; \ + b[2][2] = a[2][2]; \ +} + +/* ========================================================== */ +/* matrix copy */ + +#define COPY_MATRIX_4X4(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[0][1]; \ + b[0][2] = a[0][2]; \ + b[0][3] = a[0][3]; \ + \ + b[1][0] = a[1][0]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[1][2]; \ + b[1][3] = a[1][3]; \ + \ + b[2][0] = a[2][0]; \ + b[2][1] = a[2][1]; \ + b[2][2] = a[2][2]; \ + b[2][3] = a[2][3]; \ + \ + b[3][0] = a[3][0]; \ + b[3][1] = a[3][1]; \ + b[3][2] = a[3][2]; \ + b[3][3] = a[3][3]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_2X2(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_3X3(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + b[0][2] = a[2][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[2][1]; \ + \ + b[2][0] = a[0][2]; \ + b[2][1] = a[1][2]; \ + b[2][2] = a[2][2]; \ +} + +/* ========================================================== */ +/* matrix transpose */ + +#define TRANSPOSE_MATRIX_4X4(b,a) \ +{ \ + b[0][0] = a[0][0]; \ + b[0][1] = a[1][0]; \ + b[0][2] = a[2][0]; \ + b[0][3] = a[3][0]; \ + \ + b[1][0] = a[0][1]; \ + b[1][1] = a[1][1]; \ + b[1][2] = a[2][1]; \ + b[1][3] = a[3][1]; \ + \ + b[2][0] = a[0][2]; \ + b[2][1] = a[1][2]; \ + b[2][2] = a[2][2]; \ + b[2][3] = a[3][2]; \ + \ + b[3][0] = a[0][3]; \ + b[3][1] = a[1][3]; \ + b[3][2] = a[2][3]; \ + b[3][3] = a[3][3]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_2X2(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_3X3(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + b[0][2] = (s) * a[0][2]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ + b[1][2] = (s) * a[1][2]; \ + \ + b[2][0] = (s) * a[2][0]; \ + b[2][1] = (s) * a[2][1]; \ + b[2][2] = (s) * a[2][2]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define SCALE_MATRIX_4X4(b,s,a) \ +{ \ + b[0][0] = (s) * a[0][0]; \ + b[0][1] = (s) * a[0][1]; \ + b[0][2] = (s) * a[0][2]; \ + b[0][3] = (s) * a[0][3]; \ + \ + b[1][0] = (s) * a[1][0]; \ + b[1][1] = (s) * a[1][1]; \ + b[1][2] = (s) * a[1][2]; \ + b[1][3] = (s) * a[1][3]; \ + \ + b[2][0] = (s) * a[2][0]; \ + b[2][1] = (s) * a[2][1]; \ + b[2][2] = (s) * a[2][2]; \ + b[2][3] = (s) * a[2][3]; \ + \ + b[3][0] = s * a[3][0]; \ + b[3][1] = s * a[3][1]; \ + b[3][2] = s * a[3][2]; \ + b[3][3] = s * a[3][3]; \ +} + +/* ========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_2X2(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ +} + +/* +========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_3X3(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + b[0][2] += (s) * a[0][2]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ + b[1][2] += (s) * a[1][2]; \ + \ + b[2][0] += (s) * a[2][0]; \ + b[2][1] += (s) * a[2][1]; \ + b[2][2] += (s) * a[2][2]; \ +} + +/* +========================================================== */ +/* multiply matrix by scalar */ + +#define ACCUM_SCALE_MATRIX_4X4(b,s,a) \ +{ \ + b[0][0] += (s) * a[0][0]; \ + b[0][1] += (s) * a[0][1]; \ + b[0][2] += (s) * a[0][2]; \ + b[0][3] += (s) * a[0][3]; \ + \ + b[1][0] += (s) * a[1][0]; \ + b[1][1] += (s) * a[1][1]; \ + b[1][2] += (s) * a[1][2]; \ + b[1][3] += (s) * a[1][3]; \ + \ + b[2][0] += (s) * a[2][0]; \ + b[2][1] += (s) * a[2][1]; \ + b[2][2] += (s) * a[2][2]; \ + b[2][3] += (s) * a[2][3]; \ + \ + b[3][0] += (s) * a[3][0]; \ + b[3][1] += (s) * a[3][1]; \ + b[3][2] += (s) * a[3][2]; \ + b[3][3] += (s) * a[3][3]; \ +} + +/* +========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_2X2(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]; \ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]; \ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]; \ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]; \ + \ +} + +/* ========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_3X3(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]; \ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1]; \ + c[0][2] = a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2]; \ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0]; \ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1]; \ + c[1][2] = a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2]; \ + \ + c[2][0] = a[2][0]*b[0][0]+a[2][1]*b[1][0]+a[2][2]*b[2][0]; \ + c[2][1] = a[2][0]*b[0][1]+a[2][1]*b[1][1]+a[2][2]*b[2][1]; \ + c[2][2] = a[2][0]*b[0][2]+a[2][1]*b[1][2]+a[2][2]*b[2][2]; \ +} + +/* ========================================================== */ +/* matrix product */ +/* c[x][y] = a[x][0]*b[0][y]+a[x][1]*b[1][y]+a[x][2]*b[2][y]+a[x][3]*b[3][y];*/ + +#define MATRIX_PRODUCT_4X4(c,a,b) \ +{ \ + c[0][0] = a[0][0]*b[0][0]+a[0][1]*b[1][0]+a[0][2]*b[2][0]+a[0][3]*b[3][0];\ + c[0][1] = a[0][0]*b[0][1]+a[0][1]*b[1][1]+a[0][2]*b[2][1]+a[0][3]*b[3][1];\ + c[0][2] = a[0][0]*b[0][2]+a[0][1]*b[1][2]+a[0][2]*b[2][2]+a[0][3]*b[3][2];\ + c[0][3] = a[0][0]*b[0][3]+a[0][1]*b[1][3]+a[0][2]*b[2][3]+a[0][3]*b[3][3];\ + \ + c[1][0] = a[1][0]*b[0][0]+a[1][1]*b[1][0]+a[1][2]*b[2][0]+a[1][3]*b[3][0];\ + c[1][1] = a[1][0]*b[0][1]+a[1][1]*b[1][1]+a[1][2]*b[2][1]+a[1][3]*b[3][1];\ + c[1][2] = a[1][0]*b[0][2]+a[1][1]*b[1][2]+a[1][2]*b[2][2]+a[1][3]*b[3][2];\ + c[1][3] = a[1][0]*b[0][3]+a[1][1]*b[1][3]+a[1][2]*b[2][3]+a[1][3]*b[3][3];\ + \ + c[2][0] = a[2][0]*b[0][0]+a[2][1]*b[1][0]+a[2][2]*b[2][0]+a[2][3]*b[3][0];\ + c[2][1] = a[2][0]*b[0][1]+a[2][1]*b[1][1]+a[2][2]*b[2][1]+a[2][3]*b[3][1];\ + c[2][2] = a[2][0]*b[0][2]+a[2][1]*b[1][2]+a[2][2]*b[2][2]+a[2][3]*b[3][2];\ + c[2][3] = a[2][0]*b[0][3]+a[2][1]*b[1][3]+a[2][2]*b[2][3]+a[2][3]*b[3][3];\ + \ + c[3][0] = a[3][0]*b[0][0]+a[3][1]*b[1][0]+a[3][2]*b[2][0]+a[3][3]*b[3][0];\ + c[3][1] = a[3][0]*b[0][1]+a[3][1]*b[1][1]+a[3][2]*b[2][1]+a[3][3]*b[3][1];\ + c[3][2] = a[3][0]*b[0][2]+a[3][1]*b[1][2]+a[3][2]*b[2][2]+a[3][3]*b[3][2];\ + c[3][3] = a[3][0]*b[0][3]+a[3][1]*b[1][3]+a[3][2]*b[2][3]+a[3][3]*b[3][3];\ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_2X2(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1]; \ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_3X3(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2]; \ + p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2]; \ +} + +/* ========================================================== */ +/* matrix times vector */ + +#define MAT_DOT_VEC_4X4(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]*v[2] + m[0][3]*v[3]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]*v[2] + m[1][3]*v[3]; \ + p[2] = m[2][0]*v[0] + m[2][1]*v[1] + m[2][2]*v[2] + m[2][3]*v[3]; \ + p[3] = m[3][0]*v[0] + m[3][1]*v[1] + m[3][2]*v[2] + m[3][3]*v[3]; \ +} + +/* ========================================================== */ +/* vector transpose times matrix */ +/* p[j] = v[0]*m[0][j] + v[1]*m[1][j] + v[2]*m[2][j]; */ + +#define VEC_DOT_MAT_3X3(p,v,m) \ +{ \ + p[0] = v[0]*m[0][0] + v[1]*m[1][0] + v[2]*m[2][0]; \ + p[1] = v[0]*m[0][1] + v[1]*m[1][1] + v[2]*m[2][1]; \ + p[2] = v[0]*m[0][2] + v[1]*m[1][2] + v[2]*m[2][2]; \ +} + +/* ========================================================== */ +/* affine matrix times vector */ +/* The matrix is assumed to be an affine matrix, with last two + * entries representing a translation */ + +#define MAT_DOT_VEC_2X3(p,m,v) \ +{ \ + p[0] = m[0][0]*v[0] + m[0][1]*v[1] + m[0][2]; \ + p[1] = m[1][0]*v[0] + m[1][1]*v[1] + m[1][2]; \ +} + +/* ========================================================== */ +/* inverse transpose of matrix times vector + * + * This macro computes inverse transpose of matrix m, + * and multiplies vector v into it, to yeild vector p + * + * DANGER !!! Do Not use this on normal vectors!!! + * It will leave normals the wrong length !!! + * See macro below for use on normals. + */ + +#define INV_TRANSP_MAT_DOT_VEC_2X2(p,m,v) \ +{ \ + gleDouble det; \ + \ + det = m[0][0]*m[1][1] - m[0][1]*m[1][0]; \ + p[0] = m[1][1]*v[0] - m[1][0]*v[1]; \ + p[1] = - m[0][1]*v[0] + m[0][0]*v[1]; \ + \ + /* if matrix not singular, and not orthonormal, then renormalize */ \ + if ((det!=1.0) && (det != 0.0)) { \ + det = 1.0 / det; \ + p[0] *= det; \ + p[1] *= det; \ + } \ +} + +/* ========================================================== */ +/* transform normal vector by inverse transpose of matrix + * and then renormalize the vector + * + * This macro computes inverse transpose of matrix m, + * and multiplies vector v into it, to yeild vector p + * Vector p is then normalized. + */ + + +#define NORM_XFORM_2X2(p,m,v) \ +{ \ + double mlen; \ + \ + /* do nothing if off-diagonals are zero and diagonals are \ + * equal */ \ + if ((m[0][1] != 0.0) || (m[1][0] != 0.0) || (m[0][0] != m[1][1])) { \ + p[0] = m[1][1]*v[0] - m[1][0]*v[1]; \ + p[1] = - m[0][1]*v[0] + m[0][0]*v[1]; \ + \ + mlen = p[0]*p[0] + p[1]*p[1]; \ + mlen = 1.0 / sqrt (mlen); \ + p[0] *= mlen; \ + p[1] *= mlen; \ + } else { \ + VEC_COPY_2 (p, v); \ + } \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_2X2(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_3X3(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + m[0][2] = v[0] * t[2]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ + m[1][2] = v[1] * t[2]; \ + \ + m[2][0] = v[2] * t[0]; \ + m[2][1] = v[2] * t[1]; \ + m[2][2] = v[2] * t[2]; \ +} + +/* ========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define OUTER_PRODUCT_4X4(m,v,t) \ +{ \ + m[0][0] = v[0] * t[0]; \ + m[0][1] = v[0] * t[1]; \ + m[0][2] = v[0] * t[2]; \ + m[0][3] = v[0] * t[3]; \ + \ + m[1][0] = v[1] * t[0]; \ + m[1][1] = v[1] * t[1]; \ + m[1][2] = v[1] * t[2]; \ + m[1][3] = v[1] * t[3]; \ + \ + m[2][0] = v[2] * t[0]; \ + m[2][1] = v[2] * t[1]; \ + m[2][2] = v[2] * t[2]; \ + m[2][3] = v[2] * t[3]; \ + \ + m[3][0] = v[3] * t[0]; \ + m[3][1] = v[3] * t[1]; \ + m[3][2] = v[3] * t[2]; \ + m[3][3] = v[3] * t[3]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_2X2(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_3X3(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + m[0][2] += v[0] * t[2]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ + m[1][2] += v[1] * t[2]; \ + \ + m[2][0] += v[2] * t[0]; \ + m[2][1] += v[2] * t[1]; \ + m[2][2] += v[2] * t[2]; \ +} + +/* +========================================================== */ +/* outer product of vector times vector transpose + * + * The outer product of vector v and vector transpose t yeilds + * dyadic matrix m. + */ + +#define ACCUM_OUTER_PRODUCT_4X4(m,v,t) \ +{ \ + m[0][0] += v[0] * t[0]; \ + m[0][1] += v[0] * t[1]; \ + m[0][2] += v[0] * t[2]; \ + m[0][3] += v[0] * t[3]; \ + \ + m[1][0] += v[1] * t[0]; \ + m[1][1] += v[1] * t[1]; \ + m[1][2] += v[1] * t[2]; \ + m[1][3] += v[1] * t[3]; \ + \ + m[2][0] += v[2] * t[0]; \ + m[2][1] += v[2] * t[1]; \ + m[2][2] += v[2] * t[2]; \ + m[2][3] += v[2] * t[3]; \ + \ + m[3][0] += v[3] * t[0]; \ + m[3][1] += v[3] * t[1]; \ + m[3][2] += v[3] * t[2]; \ + m[3][3] += v[3] * t[3]; \ +} + +/* +========================================================== */ +/* determinant of matrix + * + * Computes determinant of matrix m, returning d + */ + +#define DETERMINANT_2X2(d,m) \ +{ \ + d = m[0][0] * m[1][1] - m[0][1] * m[1][0]; \ +} + +/* ========================================================== */ +/* determinant of matrix + * + * Computes determinant of matrix m, returning d + */ + +#define DETERMINANT_3X3(d,m) \ +{ \ + d = m[0][0] * (m[1][1]*m[2][2] - m[1][2] * m[2][1]); \ + d -= m[0][1] * (m[1][0]*m[2][2] - m[1][2] * m[2][0]); \ + d += m[0][2] * (m[1][0]*m[2][1] - m[1][1] * m[2][0]); \ +} + +/* ========================================================== */ +/* i,j,th cofactor of a 4x4 matrix + * + */ + +#define COFACTOR_4X4_IJ(fac,m,i,j) \ +{ \ + int ii[4], jj[4], k; \ + \ + /* compute which row, columnt to skip */ \ + for (k=0; k + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Caution.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Caution.tiff" new file mode 100644 index 0000000..ec49652 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Caution.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Dutch.lproj/GLUT.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Dutch.lproj/GLUT.nib/objects.nib" new file mode 100644 index 0000000..79b06be Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Dutch.lproj/GLUT.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Dutch.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Dutch.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..c7e4bac Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Dutch.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Dutch.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Dutch.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..eab0cef Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Dutch.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Dutch.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Dutch.lproj/GLUTUI.strings" new file mode 100644 index 0000000..d8a91c1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Dutch.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Dutch.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Dutch.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Dutch.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/English.lproj/GLUT.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/English.lproj/GLUT.nib/objects.nib" new file mode 100644 index 0000000..8a7140e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/English.lproj/GLUT.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..29125d4 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..ecc3879 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTUI.strings" new file mode 100644 index 0000000..1dcf9ee Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/English.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/English.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/English.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/English.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/French.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/French.lproj/GLUT.nib" new file mode 100644 index 0000000..966fa89 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/French.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/French.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/French.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..a1c0d52 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/French.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/French.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/French.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..696cfe4 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/French.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/French.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/French.lproj/GLUTUI.strings" new file mode 100644 index 0000000..f1eab3b Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/French.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/French.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/French.lproj/InfoPlist.strings" new file mode 100644 index 0000000..b812d82 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/French.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/German.lproj/GLUT.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/German.lproj/GLUT.nib/objects.nib" new file mode 100644 index 0000000..22bf5af Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/German.lproj/GLUT.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/German.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/German.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..d7b5720 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/German.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/German.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/German.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..282e62a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/German.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/German.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/German.lproj/GLUTUI.strings" new file mode 100644 index 0000000..09b9d2c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/German.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/German.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/German.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/German.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Info.plist" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Info.plist" new file mode 100644 index 0000000..61c93a5 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Info.plist" @@ -0,0 +1,44 @@ + + + + + BuildMachineOSBuild + 15A281 + CFBundleDevelopmentRegion + English + CFBundleExecutable + GLUT + CFBundleGetInfoString + 3.6.3, Copyright © 2001-2014 Apple Inc. All rights reserved. + CFBundleIdentifier + com.apple.glut + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + FMWK + CFBundleShortVersionString + 3.6.3 + CFBundleSignature + ???? + CFBundleSupportedPlatforms + + MacOSX + + CFBundleVersion + GLUT-3.6.3 + DTCompiler + com.apple.compilers.llvm.clang.1_0 + DTPlatformBuild + 7A176g + DTPlatformVersion + GM + DTSDKBuild + 15A281 + DTSDKName + macosx10.11internal + DTXcode + 0700 + DTXcodeBuild + 7A176g + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Italian.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Italian.lproj/GLUT.nib" new file mode 100644 index 0000000..212372d Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Italian.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Italian.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Italian.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..1988355 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Italian.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Italian.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Italian.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..18d5944 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Italian.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Italian.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Italian.lproj/GLUTUI.strings" new file mode 100644 index 0000000..db99f3f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Italian.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Italian.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Italian.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Italian.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Japanese.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Japanese.lproj/GLUT.nib" new file mode 100644 index 0000000..22bf9b6 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Japanese.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Japanese.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Japanese.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..39af42a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Japanese.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Japanese.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Japanese.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..987249c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Japanese.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Japanese.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Japanese.lproj/GLUTUI.strings" new file mode 100644 index 0000000..e9e7306 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Japanese.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Japanese.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Japanese.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Japanese.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Spanish.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Spanish.lproj/GLUT.nib" new file mode 100644 index 0000000..203e64a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Spanish.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Spanish.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Spanish.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..a129bb0 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Spanish.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Spanish.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Spanish.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..b31b35f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Spanish.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Spanish.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Spanish.lproj/GLUTUI.strings" new file mode 100644 index 0000000..7818349 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Spanish.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Spanish.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Spanish.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/Spanish.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ar.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ar.lproj/GLUT.nib" new file mode 100644 index 0000000..d23e520 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ar.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ar.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ar.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..cc12579 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ar.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ar.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ar.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..ccc49d1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ar.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ar.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ar.lproj/GLUTUI.strings" new file mode 100644 index 0000000..f9101cb Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ar.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ar.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ar.lproj/InfoPlist.strings" new file mode 100644 index 0000000..0db71cb Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ar.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/blankCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/blankCursor.tiff" new file mode 100644 index 0000000..a2b0cf1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/blankCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/bottomCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/bottomCursor.tiff" new file mode 100644 index 0000000..c3f4795 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/bottomCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/bottomleftCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/bottomleftCursor.tiff" new file mode 100644 index 0000000..274529f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/bottomleftCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/bottomrightCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/bottomrightCursor.tiff" new file mode 100644 index 0000000..dec4252 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/bottomrightCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ca.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ca.lproj/GLUT.nib" new file mode 100644 index 0000000..2455871 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ca.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ca.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ca.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..c2c1360 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ca.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ca.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ca.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..c3f15ec Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ca.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ca.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ca.lproj/GLUTUI.strings" new file mode 100644 index 0000000..56eb700 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ca.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ca.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ca.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ca.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/crossCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/crossCursor.tiff" new file mode 100644 index 0000000..8536c0e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/crossCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/cs.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/cs.lproj/GLUT.nib" new file mode 100644 index 0000000..3ca1fc4 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/cs.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/cs.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/cs.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..7a8ac5a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/cs.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/cs.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/cs.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..724a434 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/cs.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/cs.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/cs.lproj/GLUTUI.strings" new file mode 100644 index 0000000..9b1b585 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/cs.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/cs.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/cs.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/cs.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/cycleCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/cycleCursor.tiff" new file mode 100644 index 0000000..34b52f6 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/cycleCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/da.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/da.lproj/GLUT.nib" new file mode 100644 index 0000000..b437c34 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/da.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/da.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/da.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..0fcbc83 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/da.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/da.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/da.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..d594ecf Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/da.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/da.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/da.lproj/GLUTUI.strings" new file mode 100644 index 0000000..461744c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/da.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/da.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/da.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/da.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/destroyCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/destroyCursor.tiff" new file mode 100644 index 0000000..9e3a1cb Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/destroyCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/el.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/el.lproj/GLUT.nib" new file mode 100644 index 0000000..c3f55f1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/el.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/el.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/el.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..33013a0 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/el.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/el.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/el.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..a8d7cbd Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/el.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/el.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/el.lproj/GLUTUI.strings" new file mode 100644 index 0000000..89d4d1c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/el.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/el.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/el.lproj/InfoPlist.strings" new file mode 100644 index 0000000..5a5b1d6 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/el.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/es_MX.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/es_MX.lproj/GLUT.nib" new file mode 100644 index 0000000..3b621c6 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/es_MX.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/es_MX.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/es_MX.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..be5edf7 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/es_MX.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/es_MX.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/es_MX.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..cc867aa Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/es_MX.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/es_MX.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/es_MX.lproj/GLUTUI.strings" new file mode 100644 index 0000000..df8bace Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/es_MX.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/es_MX.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/es_MX.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/es_MX.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/fi.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/fi.lproj/GLUT.nib" new file mode 100644 index 0000000..ea0bfa1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/fi.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/fi.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/fi.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..305ab42 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/fi.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/fi.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/fi.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..6a130d2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/fi.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/fi.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/fi.lproj/GLUTUI.strings" new file mode 100644 index 0000000..d80a9b3 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/fi.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/fi.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/fi.lproj/InfoPlist.strings" new file mode 100644 index 0000000..92c7a04 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/fi.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/fingerCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/fingerCursor.tiff" new file mode 100644 index 0000000..0087c66 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/fingerCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/he.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/he.lproj/GLUT.nib" new file mode 100644 index 0000000..839571e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/he.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/he.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/he.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..eadda01 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/he.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/he.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/he.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..79555da Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/he.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/he.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/he.lproj/GLUTUI.strings" new file mode 100644 index 0000000..9d7e5f7 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/he.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/he.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/he.lproj/InfoPlist.strings" new file mode 100644 index 0000000..8ee9790 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/he.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/helpCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/helpCursor.tiff" new file mode 100644 index 0000000..fc4a88a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/helpCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hr.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hr.lproj/GLUT.nib" new file mode 100644 index 0000000..4903126 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hr.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hr.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hr.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..17f8705 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hr.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hr.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hr.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..6b1b193 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hr.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hr.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hr.lproj/GLUTUI.strings" new file mode 100644 index 0000000..5fe6297 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hr.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hr.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hr.lproj/InfoPlist.strings" new file mode 100644 index 0000000..1be586d Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hr.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hu.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hu.lproj/GLUT.nib" new file mode 100644 index 0000000..f970c5f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hu.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hu.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hu.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..207ccff Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hu.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hu.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hu.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..e18ca17 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hu.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hu.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hu.lproj/GLUTUI.strings" new file mode 100644 index 0000000..b21b15c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hu.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hu.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hu.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/hu.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/id.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/id.lproj/GLUT.nib" new file mode 100644 index 0000000..a2af2f3 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/id.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/id.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/id.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..ca149b3 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/id.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/id.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/id.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..9dbcdfd Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/id.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/id.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/id.lproj/GLUTUI.strings" new file mode 100644 index 0000000..580bb84 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/id.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/id.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/id.lproj/InfoPlist.strings" new file mode 100644 index 0000000..d84993a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/id.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ko.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ko.lproj/GLUT.nib" new file mode 100644 index 0000000..3924043 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ko.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ko.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ko.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..8c62d65 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ko.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ko.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ko.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..3597eaf Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ko.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ko.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ko.lproj/GLUTUI.strings" new file mode 100644 index 0000000..b756109 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ko.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ko.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ko.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ko.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/leftCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/leftCursor.tiff" new file mode 100644 index 0000000..852b69b Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/leftCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/leftRightCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/leftRightCursor.tiff" new file mode 100644 index 0000000..37fe393 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/leftRightCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ms.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ms.lproj/GLUT.nib" new file mode 100644 index 0000000..f3b5d1e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ms.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ms.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ms.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..03b8228 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ms.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ms.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ms.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..58ccc40 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ms.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ms.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ms.lproj/GLUTUI.strings" new file mode 100644 index 0000000..e8feaee Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ms.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ms.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ms.lproj/InfoPlist.strings" new file mode 100644 index 0000000..d84993a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ms.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/no.lproj/GLUT.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/no.lproj/GLUT.nib/objects.nib" new file mode 100644 index 0000000..c64d501 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/no.lproj/GLUT.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/no.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/no.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..b4bb024 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/no.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/no.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/no.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..fc46ede Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/no.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/no.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/no.lproj/GLUTUI.strings" new file mode 100644 index 0000000..dbe9bd4 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/no.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/no.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/no.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/no.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pl.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pl.lproj/GLUT.nib" new file mode 100644 index 0000000..de39520 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pl.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pl.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pl.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..78a7a88 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pl.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pl.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pl.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..bbc1931 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pl.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pl.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pl.lproj/GLUTUI.strings" new file mode 100644 index 0000000..c162e2f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pl.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pl.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pl.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pl.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt.lproj/GLUT.nib" new file mode 100644 index 0000000..cb3d269 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..66de19c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..af003ce Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt.lproj/GLUTUI.strings" new file mode 100644 index 0000000..41b8837 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt_PT.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt_PT.lproj/GLUT.nib" new file mode 100644 index 0000000..dde36df Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt_PT.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt_PT.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt_PT.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..c751967 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt_PT.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt_PT.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt_PT.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..c5af435 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt_PT.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt_PT.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt_PT.lproj/GLUTUI.strings" new file mode 100644 index 0000000..beb9372 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt_PT.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt_PT.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt_PT.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/pt_PT.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/rightArrowCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/rightArrowCursor.tiff" new file mode 100644 index 0000000..d852616 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/rightArrowCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/rightCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/rightCursor.tiff" new file mode 100644 index 0000000..9781f22 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/rightCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ro.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ro.lproj/GLUT.nib" new file mode 100644 index 0000000..43164d5 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ro.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ro.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ro.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..5ad661c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ro.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ro.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ro.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..d13c841 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ro.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ro.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ro.lproj/GLUTUI.strings" new file mode 100644 index 0000000..d256df7 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ro.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ro.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ro.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ro.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ru.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ru.lproj/GLUT.nib" new file mode 100644 index 0000000..c189bc1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ru.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ru.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ru.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..66f8047 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ru.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ru.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ru.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..b5f52d9 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ru.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ru.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ru.lproj/GLUTUI.strings" new file mode 100644 index 0000000..eda51a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ru.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ru.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ru.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/ru.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sk.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sk.lproj/GLUT.nib" new file mode 100644 index 0000000..bea5da5 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sk.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sk.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sk.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..52fe2b9 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sk.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sk.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sk.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..9db485b Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sk.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sk.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sk.lproj/GLUTUI.strings" new file mode 100644 index 0000000..9f203b8 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sk.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sk.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sk.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sk.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sprayCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sprayCursor.tiff" new file mode 100644 index 0000000..9bec966 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sprayCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sv.lproj/GLUT.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sv.lproj/GLUT.nib/objects.nib" new file mode 100644 index 0000000..6dbbc6e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sv.lproj/GLUT.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sv.lproj/GLUTClipboard.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sv.lproj/GLUTClipboard.nib/objects.nib" new file mode 100644 index 0000000..6329f5a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sv.lproj/GLUTClipboard.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sv.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sv.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..eed0bce Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sv.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sv.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sv.lproj/GLUTUI.strings" new file mode 100644 index 0000000..7fbf5f5 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sv.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sv.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sv.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/sv.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/th.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/th.lproj/GLUT.nib" new file mode 100644 index 0000000..24be49b Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/th.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/th.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/th.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..36ad216 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/th.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/th.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/th.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..39827a1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/th.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/th.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/th.lproj/GLUTUI.strings" new file mode 100644 index 0000000..df219c9 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/th.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/th.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/th.lproj/InfoPlist.strings" new file mode 100644 index 0000000..d7f23a7 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/th.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/topCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/topCursor.tiff" new file mode 100644 index 0000000..e4df0de Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/topCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/topleftCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/topleftCursor.tiff" new file mode 100644 index 0000000..43cf97f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/topleftCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/toprightCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/toprightCursor.tiff" new file mode 100644 index 0000000..429b01b Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/toprightCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/tr.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/tr.lproj/GLUT.nib" new file mode 100644 index 0000000..db7b81d Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/tr.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/tr.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/tr.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..793a3d8 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/tr.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/tr.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/tr.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..0c2b23a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/tr.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/tr.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/tr.lproj/GLUTUI.strings" new file mode 100644 index 0000000..201f646 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/tr.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/tr.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/tr.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/tr.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/uk.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/uk.lproj/GLUT.nib" new file mode 100644 index 0000000..1376302 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/uk.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/uk.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/uk.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..f9e501e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/uk.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/uk.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/uk.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..61b2706 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/uk.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/uk.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/uk.lproj/GLUTUI.strings" new file mode 100644 index 0000000..5a8d21b Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/uk.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/uk.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/uk.lproj/InfoPlist.strings" new file mode 100644 index 0000000..d40f670 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/uk.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/upDownCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/upDownCursor.tiff" new file mode 100644 index 0000000..1605063 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/upDownCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/version.plist" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/version.plist" new file mode 100644 index 0000000..0b48b86 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/version.plist" @@ -0,0 +1,16 @@ + + + + + BuildVersion + 1221 + CFBundleShortVersionString + 3.6.3 + CFBundleVersion + GLUT-3.6.3 + ProjectName + GLUT + SourceVersion + 3006003000000 + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/vi.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/vi.lproj/GLUT.nib" new file mode 100644 index 0000000..9ef11d4 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/vi.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/vi.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/vi.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..efbfb4c Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/vi.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/vi.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/vi.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..acb2360 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/vi.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/vi.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/vi.lproj/GLUTUI.strings" new file mode 100644 index 0000000..e3602a1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/vi.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/vi.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/vi.lproj/InfoPlist.strings" new file mode 100644 index 0000000..0d3bc86 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/vi.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/waitCursor.tiff" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/waitCursor.tiff" new file mode 100644 index 0000000..81ba1aa Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/waitCursor.tiff" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_CN.lproj/GLUT.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_CN.lproj/GLUT.nib" new file mode 100644 index 0000000..3fcbf00 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_CN.lproj/GLUT.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_CN.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_CN.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..135210a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_CN.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_CN.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_CN.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..3918fe6 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_CN.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_CN.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_CN.lproj/GLUTUI.strings" new file mode 100644 index 0000000..ca52410 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_CN.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_CN.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_CN.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_CN.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_TW.lproj/GLUT.nib/objects.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_TW.lproj/GLUT.nib/objects.nib" new file mode 100644 index 0000000..daa31c0 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_TW.lproj/GLUT.nib/objects.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_TW.lproj/GLUTClipboard.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_TW.lproj/GLUTClipboard.nib" new file mode 100644 index 0000000..4659493 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_TW.lproj/GLUTClipboard.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_TW.lproj/GLUTPreferences.nib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_TW.lproj/GLUTPreferences.nib" new file mode 100644 index 0000000..5a2fac6 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_TW.lproj/GLUTPreferences.nib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_TW.lproj/GLUTUI.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_TW.lproj/GLUTUI.strings" new file mode 100644 index 0000000..23e9e8f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_TW.lproj/GLUTUI.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_TW.lproj/InfoPlist.strings" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_TW.lproj/InfoPlist.strings" new file mode 100644 index 0000000..74bf7a2 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/Resources/zh_TW.lproj/InfoPlist.strings" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/_CodeSignature/CodeResources" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/_CodeSignature/CodeResources" new file mode 100644 index 0000000..6c0c008 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/Versions/Current/_CodeSignature/CodeResources" @@ -0,0 +1,3351 @@ + + + + + files + + Resources/BridgeSupport/GLUT.bridgesupport + + BWKOC+zF1CG9itgzEScLAMirZX0= + + Resources/Caution.tiff + + aq58DGymNs2GkMusLQddWP5QpLE= + + Resources/Dutch.lproj/GLUT.nib/objects.nib + + hash + + RUqtUA1q49i+fPoYYAZMISMf980= + + optional + + + Resources/Dutch.lproj/GLUTClipboard.nib/objects.nib + + hash + + /Bi20kpPAo6W800p4TNjJKiaKHc= + + optional + + + Resources/Dutch.lproj/GLUTPreferences.nib + + hash + + 4zFaO41I2dj+filPRVuoItZvI+g= + + optional + + + Resources/Dutch.lproj/GLUTUI.strings + + hash + + Hqdk3N8in0eQcQ4PDEm2LciH2M8= + + optional + + + Resources/Dutch.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/English.lproj/GLUT.nib/objects.nib + + hash + + d24mK12Ba7H/PiM68logXwqt9dU= + + optional + + + Resources/English.lproj/GLUTClipboard.nib/objects.nib + + hash + + d1PebKfRw4oQuVfBfqR3+tzaG7s= + + optional + + + Resources/English.lproj/GLUTPreferences.nib + + hash + + 0PJEZd7Quhcvsn3aA7m+/CA0rEc= + + optional + + + Resources/English.lproj/GLUTUI.strings + + hash + + a3Z37BGGjLTYyC/UyF2iWECFR9Q= + + optional + + + Resources/English.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/French.lproj/GLUT.nib + + hash + + d4LkRRtpyv1Usa8OSbsFEuEWLsc= + + optional + + + Resources/French.lproj/GLUTClipboard.nib/objects.nib + + hash + + cqcCHWGCMzUkHZfHnsMUXKdiRH0= + + optional + + + Resources/French.lproj/GLUTPreferences.nib + + hash + + q23yspVZBH+Hd4vRTq3Vtg1NfhU= + + optional + + + Resources/French.lproj/GLUTUI.strings + + hash + + qjrq6Q4znepNhzg3R6x2wWHWulY= + + optional + + + Resources/French.lproj/InfoPlist.strings + + hash + + iQq4EJoApceAl6McSzuz7DhY+9I= + + optional + + + Resources/German.lproj/GLUT.nib/objects.nib + + hash + + y2YmORDJ5/emrMmeJkKg0PPMY8s= + + optional + + + Resources/German.lproj/GLUTClipboard.nib/objects.nib + + hash + + YbhigPquJ5pfQ/shc+E9aqND3GQ= + + optional + + + Resources/German.lproj/GLUTPreferences.nib + + hash + + 51zWfRylEDPZPUmA3TIjuIGie0g= + + optional + + + Resources/German.lproj/GLUTUI.strings + + hash + + TaQI5UA5b0eVbDgygTqhyW1Q+Rs= + + optional + + + Resources/German.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/Info.plist + + 4SVBzbYPdSZViG5GIwOUIUKgdaA= + + Resources/Italian.lproj/GLUT.nib + + hash + + 4h0Qao/ZROKHoqahgfSVoX4BzmY= + + optional + + + Resources/Italian.lproj/GLUTClipboard.nib/objects.nib + + hash + + 2ppYrSKJ4W6wQ4F493XNCrDm7WA= + + optional + + + Resources/Italian.lproj/GLUTPreferences.nib + + hash + + JPDfl8iLRXj6fWr9WnmxWXflCx0= + + optional + + + Resources/Italian.lproj/GLUTUI.strings + + hash + + OIK2tOGOmoiNARy+1W7uhIAAkc4= + + optional + + + Resources/Italian.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/Japanese.lproj/GLUT.nib + + hash + + j6CIa4hB7r/UwOGCjSjH4f5znOs= + + optional + + + Resources/Japanese.lproj/GLUTClipboard.nib + + hash + + kfWT5G6Zk6PcoJoAutfYw/P3eT0= + + optional + + + Resources/Japanese.lproj/GLUTPreferences.nib + + hash + + Ai4aTJSdBSjg4bQzYiQkd4ZH5eY= + + optional + + + Resources/Japanese.lproj/GLUTUI.strings + + hash + + 98fWihIj/+RmLymDJeaQMb+Bq2o= + + optional + + + Resources/Japanese.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/Spanish.lproj/GLUT.nib + + hash + + 9W+kzbkBumt3FNKXaZRJ18zH1Kc= + + optional + + + Resources/Spanish.lproj/GLUTClipboard.nib/objects.nib + + hash + + BuofGSoOL5Q14CGaXhZoQLf/s7w= + + optional + + + Resources/Spanish.lproj/GLUTPreferences.nib + + hash + + NOOLH+RAw/Xosw0h33x2Dz8BH4s= + + optional + + + Resources/Spanish.lproj/GLUTUI.strings + + hash + + XtEBIlcpj2ctLkukjTAmYe26zvs= + + optional + + + Resources/Spanish.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/ar.lproj/GLUT.nib + + hash + + Z7FqU95ffJM2SmtLyCnqim0uEyo= + + optional + + + Resources/ar.lproj/GLUTClipboard.nib + + hash + + lLFCBrBmxdwk/m4NPhwJemm4CCA= + + optional + + + Resources/ar.lproj/GLUTPreferences.nib + + hash + + ROmI3XxDKLIUP8npuzp0djV0OkI= + + optional + + + Resources/ar.lproj/GLUTUI.strings + + hash + + ASe78OKFIdck715VkoupLnKDP80= + + optional + + + Resources/ar.lproj/InfoPlist.strings + + hash + + cs4uZV2k5jHFvVG+UvGcITv8Ofo= + + optional + + + Resources/blankCursor.tiff + + 71RmRfl/KEi+d8FoM7rhYoEQVvc= + + Resources/bottomCursor.tiff + + DOuotwaM4sJfBiFjCxPwKTuSsvU= + + Resources/bottomleftCursor.tiff + + /NQEJiCyCbZ9GQ+Q5YdoFVZy/Fg= + + Resources/bottomrightCursor.tiff + + Ee1kclbc0dgTJxX05Bn46Yq9djs= + + Resources/ca.lproj/GLUT.nib + + hash + + h3KeaFyDiSqsvs7Q+jaiaU1aZ1U= + + optional + + + Resources/ca.lproj/GLUTClipboard.nib + + hash + + 4yselpa+i5h0jBJRlmIchS9nvyE= + + optional + + + Resources/ca.lproj/GLUTPreferences.nib + + hash + + gOssZFMU+wEXqT8PNjl/ElrKRsw= + + optional + + + Resources/ca.lproj/GLUTUI.strings + + hash + + 4GHcmdPSWpmVcTTEHzc1PAFSbx8= + + optional + + + Resources/ca.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/crossCursor.tiff + + ySVy2eE2fXYsSalgFbpsm7InVZI= + + Resources/cs.lproj/GLUT.nib + + hash + + wRq8OmbS2G5LF0/5lGr638hN818= + + optional + + + Resources/cs.lproj/GLUTClipboard.nib + + hash + + gcVbNhZG09Yn7BuhXkBHQVbUBgQ= + + optional + + + Resources/cs.lproj/GLUTPreferences.nib + + hash + + 4X+p6hWgIH0WtO0LzqogMIfCk6Y= + + optional + + + Resources/cs.lproj/GLUTUI.strings + + hash + + VFXmJMdKiIhidnx1tKYUmZ+6lTo= + + optional + + + Resources/cs.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/cycleCursor.tiff + + 8jHeTtrVTfwQB49SB9r7quiubx0= + + Resources/da.lproj/GLUT.nib + + hash + + H7ZA3tC6iUJ/sYhQnVoe0uVvyV8= + + optional + + + Resources/da.lproj/GLUTClipboard.nib/objects.nib + + hash + + uBoakuoItz2j2lwusu4uNrLYDM4= + + optional + + + Resources/da.lproj/GLUTPreferences.nib + + hash + + nPWhVMDYPRPHQZPzJ7HLH/Rjvqo= + + optional + + + Resources/da.lproj/GLUTUI.strings + + hash + + 6dpISGTB31rqDTOcagKR5AoXM+k= + + optional + + + Resources/da.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/destroyCursor.tiff + + tkYCf5NXocfX+VKto+04wex2K+Q= + + Resources/el.lproj/GLUT.nib + + hash + + c7P6jFK+xLMQrc54PXRuAr4xwz4= + + optional + + + Resources/el.lproj/GLUTClipboard.nib + + hash + + FD1Bbfc+Xdnna1eCLeBXdn7vVyY= + + optional + + + Resources/el.lproj/GLUTPreferences.nib + + hash + + GyUJXxmj76iqV/jrgjlrGg3m2bo= + + optional + + + Resources/el.lproj/GLUTUI.strings + + hash + + VioaIj44YLMJnuEeoHe+PS/+KKM= + + optional + + + Resources/el.lproj/InfoPlist.strings + + hash + + kaREhGRlcwI1cXiAqPSCyoIbQ4Y= + + optional + + + Resources/es_MX.lproj/GLUT.nib + + hash + + EGxRUHjvx9eNffWH+v2aVGTwEIM= + + optional + + + Resources/es_MX.lproj/GLUTClipboard.nib + + hash + + 3zEwhN2ED0zIbGTz/CBEubmAMfA= + + optional + + + Resources/es_MX.lproj/GLUTPreferences.nib + + hash + + yUqv71JO5wbmtC+4sUigpflF7lc= + + optional + + + Resources/es_MX.lproj/GLUTUI.strings + + hash + + 24z1HDS8dDtq3952T25ZkRejvlk= + + optional + + + Resources/es_MX.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/fi.lproj/GLUT.nib + + hash + + d5gCFkjOBjAesXJ7EbIkc12X938= + + optional + + + Resources/fi.lproj/GLUTClipboard.nib/objects.nib + + hash + + 4tFU1zhOPsU5K5iil8MJPk3RKa0= + + optional + + + Resources/fi.lproj/GLUTPreferences.nib + + hash + + pFVMfXXoW+Bu2K5Sp4kep9Myt6E= + + optional + + + Resources/fi.lproj/GLUTUI.strings + + hash + + zj3hb9JzA/0lYgSHvjFJSbUJCEk= + + optional + + + Resources/fi.lproj/InfoPlist.strings + + hash + + rd0zLDNzEF4yG/H8drOK/0IV9r0= + + optional + + + Resources/fingerCursor.tiff + + u1gKLmqCWIvJhMIQAE7AEoJTDy0= + + Resources/he.lproj/GLUT.nib + + hash + + bIJpK9+By6M8J018cyscSZHRvZA= + + optional + + + Resources/he.lproj/GLUTClipboard.nib + + hash + + X2iqZmKSiM5ewrhtP5QtLNaS2Fo= + + optional + + + Resources/he.lproj/GLUTPreferences.nib + + hash + + btMHguC+hqbHT7C0AbLViX9K/bU= + + optional + + + Resources/he.lproj/GLUTUI.strings + + hash + + gWI3ZBiECszzhJneomE/p3nbDW4= + + optional + + + Resources/he.lproj/InfoPlist.strings + + hash + + IWRMGqIMKXPJH/4z/PZchGYh57g= + + optional + + + Resources/helpCursor.tiff + + 2vlbHXOdcb4sWRCy3CNJws7wHQU= + + Resources/hr.lproj/GLUT.nib + + hash + + DKTO11a7C9ByXo9xdUjmTkpcKKs= + + optional + + + Resources/hr.lproj/GLUTClipboard.nib + + hash + + fWvi93aofaQMbnzJDMWh9vtZZls= + + optional + + + Resources/hr.lproj/GLUTPreferences.nib + + hash + + 2WgYnx5R38Yfe/mC3lNKb0ZFmAQ= + + optional + + + Resources/hr.lproj/GLUTUI.strings + + hash + + 5C6YMo8lb776jbF1wdkOOPsWme0= + + optional + + + Resources/hr.lproj/InfoPlist.strings + + hash + + J52bfD41z5QaHmK6izXMlK6J9zk= + + optional + + + Resources/hu.lproj/GLUT.nib + + hash + + roOcN67DdkWOrb3A0oi7qav2ccI= + + optional + + + Resources/hu.lproj/GLUTClipboard.nib + + hash + + Rzqa2UgIJRCDoey5SQjH37BG72Q= + + optional + + + Resources/hu.lproj/GLUTPreferences.nib + + hash + + 0wgicb9++6eBZ/pGL0zoAZhIVi0= + + optional + + + Resources/hu.lproj/GLUTUI.strings + + hash + + DzcP2BRnVXd4O6chhtSRWs13NM4= + + optional + + + Resources/hu.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/id.lproj/GLUT.nib + + hash + + rDzHGYlCpbpMPZw2j1QQXNp4tnw= + + optional + + + Resources/id.lproj/GLUTClipboard.nib + + hash + + mIqa9rz7oJiMiLYFNmeaaY6XWfY= + + optional + + + Resources/id.lproj/GLUTPreferences.nib + + hash + + oBcfTazT2ChaDZ6z6n5UPKoIKN4= + + optional + + + Resources/id.lproj/GLUTUI.strings + + hash + + E48coG0TAfi0Z6ekKKLg+HtubwQ= + + optional + + + Resources/id.lproj/InfoPlist.strings + + hash + + kicaNpuzJEmaugT03YKlUtulj5U= + + optional + + + Resources/ko.lproj/GLUT.nib + + hash + + i4uVhGemM15DSUIdZpxZ3BkVmkA= + + optional + + + Resources/ko.lproj/GLUTClipboard.nib/objects.nib + + hash + + azdBxSt/IZq5ZAjWqW+23xrz7wA= + + optional + + + Resources/ko.lproj/GLUTPreferences.nib + + hash + + kJULxR7NQD0QCbq8cg49kEo1A7E= + + optional + + + Resources/ko.lproj/GLUTUI.strings + + hash + + L83/tT4j4ClEyWv8IycEJEHAZzE= + + optional + + + Resources/ko.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/leftCursor.tiff + + UuLAchbhcmBfyHNPujanbcWtWVw= + + Resources/leftRightCursor.tiff + + iDFAKKJOw4Nk1e6tS7cmxhQoTec= + + Resources/ms.lproj/GLUT.nib + + hash + + GVnrI5Ug7j+Odz0CvevkHz56pxk= + + optional + + + Resources/ms.lproj/GLUTClipboard.nib + + hash + + qpdll90JLp25zihmmelAsqeqRbk= + + optional + + + Resources/ms.lproj/GLUTPreferences.nib + + hash + + Ve+nswhwjb5p3pl/JVeU/votRGQ= + + optional + + + Resources/ms.lproj/GLUTUI.strings + + hash + + zfZooTQ4x3lsEcwFa7Alilw7YDs= + + optional + + + Resources/ms.lproj/InfoPlist.strings + + hash + + kicaNpuzJEmaugT03YKlUtulj5U= + + optional + + + Resources/no.lproj/GLUT.nib/objects.nib + + hash + + f4clOZFBVlC/DwWYFID3TbsN/ig= + + optional + + + Resources/no.lproj/GLUTClipboard.nib/objects.nib + + hash + + jKis0G/aC7CyUVp8oYKl+Gvs4qY= + + optional + + + Resources/no.lproj/GLUTPreferences.nib + + hash + + UrpmVpWERaESTiUlsAhNtlgx2ek= + + optional + + + Resources/no.lproj/GLUTUI.strings + + hash + + J69/NwRHIr6CVqbFOnLb7CSL2Mo= + + optional + + + Resources/no.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/pl.lproj/GLUT.nib + + hash + + HnkyZhz9P8pB93CMNI1AKDpqFyY= + + optional + + + Resources/pl.lproj/GLUTClipboard.nib + + hash + + wQ3qZQS0FLKBHEXJc0o3Hf14HUA= + + optional + + + Resources/pl.lproj/GLUTPreferences.nib + + hash + + hIFWDulC+jaJit6lo0GxIMC/7S8= + + optional + + + Resources/pl.lproj/GLUTUI.strings + + hash + + YIWjI6pJrdUgnJeaQDpWY7wK5p4= + + optional + + + Resources/pl.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/pt.lproj/GLUT.nib + + hash + + MjmlNCV8DEBlmz8RMhVXMMskdHY= + + optional + + + Resources/pt.lproj/GLUTClipboard.nib/objects.nib + + hash + + uMMqPOen4ZhPRWAWqWmDzcHsICA= + + optional + + + Resources/pt.lproj/GLUTPreferences.nib + + hash + + c+dzx9e1xi1AdVZabFjGmXu2Jns= + + optional + + + Resources/pt.lproj/GLUTUI.strings + + hash + + dXFy6zHZh/JR+LcyhNmRjmlX12k= + + optional + + + Resources/pt.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/pt_PT.lproj/GLUT.nib + + hash + + wDHD1A87v3rlpSwIg4JvyiY4k0k= + + optional + + + Resources/pt_PT.lproj/GLUTClipboard.nib + + hash + + zS20SbBg9w7lVzUouSpOH66ZSuc= + + optional + + + Resources/pt_PT.lproj/GLUTPreferences.nib + + hash + + DbZU+TVRD8ZsWvRtOwRtsNqhKGs= + + optional + + + Resources/pt_PT.lproj/GLUTUI.strings + + hash + + 2PXu8o8Xos9q5cafAw2h+C6m66I= + + optional + + + Resources/pt_PT.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/rightArrowCursor.tiff + + 7K3jXpKlDtkkjHXTGcY9EeesMhU= + + Resources/rightCursor.tiff + + q9GmlIh4lCQk/ow13gGDjnHFsJo= + + Resources/ro.lproj/GLUT.nib + + hash + + nww/x1dIqEUFDnxzc/5vwQWysbo= + + optional + + + Resources/ro.lproj/GLUTClipboard.nib + + hash + + 8Xc8g89kByEAaU70JEf1ZNBdXMA= + + optional + + + Resources/ro.lproj/GLUTPreferences.nib + + hash + + Jq4Xr2Abgv8LPJmR0a00NNWymiU= + + optional + + + Resources/ro.lproj/GLUTUI.strings + + hash + + /98VbyObWKIEYnluJ82Ppgnhpjk= + + optional + + + Resources/ro.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/ru.lproj/GLUT.nib + + hash + + NptvOjRRjioRXc4lhz15UU9onMc= + + optional + + + Resources/ru.lproj/GLUTClipboard.nib + + hash + + vAJ8XsU2fs7jm60Up8Od2iHhG9w= + + optional + + + Resources/ru.lproj/GLUTPreferences.nib + + hash + + GJiamMeOpvM1Ql4WdT7lnn3VLwo= + + optional + + + Resources/ru.lproj/GLUTUI.strings + + hash + + HHeT534DvlzBbNEiR7hewOyDQVU= + + optional + + + Resources/ru.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/sk.lproj/GLUT.nib + + hash + + rWzkDeFRABaL9jaNC2Jg/mfHENw= + + optional + + + Resources/sk.lproj/GLUTClipboard.nib + + hash + + 6FAp4Ukk2ixJDCOxtWGlo/Sp6nM= + + optional + + + Resources/sk.lproj/GLUTPreferences.nib + + hash + + 5zYmSOARhnizPhB8Pf7dG+k8bU8= + + optional + + + Resources/sk.lproj/GLUTUI.strings + + hash + + OvN+fe/mGzaL01orEWEJp9SUHrg= + + optional + + + Resources/sk.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/sprayCursor.tiff + + dGquzbXCgTh0tAT400liHFqKMQg= + + Resources/sv.lproj/GLUT.nib/objects.nib + + hash + + mv+oXLtWzpRJdGwnM1ALwgsg8P4= + + optional + + + Resources/sv.lproj/GLUTClipboard.nib/objects.nib + + hash + + zbyujlfwrCBSHqmDjSnOIi67OR8= + + optional + + + Resources/sv.lproj/GLUTPreferences.nib + + hash + + m2yS9EPlbM/w2lqdxJz/loq11Aw= + + optional + + + Resources/sv.lproj/GLUTUI.strings + + hash + + tJTwzCxG9LaOIYGhS6aN/Okx/gg= + + optional + + + Resources/sv.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/th.lproj/GLUT.nib + + hash + + XwvxYcs04m3hiJXUGjdBR9Uvu0A= + + optional + + + Resources/th.lproj/GLUTClipboard.nib + + hash + + yVGifw22EFWjc9c2deV7wsG4Kw8= + + optional + + + Resources/th.lproj/GLUTPreferences.nib + + hash + + tccCw6Gwe97H58JxOje/vRKuTEs= + + optional + + + Resources/th.lproj/GLUTUI.strings + + hash + + bHzJbhI9D44T3pTU30asWYHpQUc= + + optional + + + Resources/th.lproj/InfoPlist.strings + + hash + + beOBXBvt1wfWvLfjJeuctbxc5g8= + + optional + + + Resources/topCursor.tiff + + MMgN7P7qDQqXsBUfpIDB93Ql6sk= + + Resources/topleftCursor.tiff + + 8qrlRyy9LBBZR2A47KeQ4NlBD9A= + + Resources/toprightCursor.tiff + + mF9JHrzd3nIzDrkOaMOtrkgB0SI= + + Resources/tr.lproj/GLUT.nib + + hash + + c1W04X9lHRr+2mCEDO0jIz8F/Bs= + + optional + + + Resources/tr.lproj/GLUTClipboard.nib + + hash + + eei+HqmJj+rVS3C/PRqgcJJ33Tk= + + optional + + + Resources/tr.lproj/GLUTPreferences.nib + + hash + + v9B8N7ifqek/0/OGvYkFozl/ujY= + + optional + + + Resources/tr.lproj/GLUTUI.strings + + hash + + K/QvPe5MuGRbPIXCHmJtiBKmFdg= + + optional + + + Resources/tr.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/uk.lproj/GLUT.nib + + hash + + YfXUuI32C6+nTxbViHfSzDuzTp4= + + optional + + + Resources/uk.lproj/GLUTClipboard.nib + + hash + + hkFh7mFKOIFGTMTRDoaayhhz67Q= + + optional + + + Resources/uk.lproj/GLUTPreferences.nib + + hash + + zSIaWYJSAvL5R1OwIfjblRVJV50= + + optional + + + Resources/uk.lproj/GLUTUI.strings + + hash + + xVJBCyxklXTXQin6BVmDoB1Lw3o= + + optional + + + Resources/uk.lproj/InfoPlist.strings + + hash + + 9MSFvcDNYZyBJZDjwahM31cVmqc= + + optional + + + Resources/upDownCursor.tiff + + y5wHeRc7vaGr9ml9ZlsAkzCuC4I= + + Resources/version.plist + + j7cRI4GkkD9tslXKFjfurzhEtV4= + + Resources/vi.lproj/GLUT.nib + + hash + + AZX6we4AJmYW3xvYTpR6xytXeo0= + + optional + + + Resources/vi.lproj/GLUTClipboard.nib + + hash + + 1/Xe+/1sszTdWG1amiwfz8nEuCs= + + optional + + + Resources/vi.lproj/GLUTPreferences.nib + + hash + + gi5VrYkzMKc2BkhIESK+5G1Ofm0= + + optional + + + Resources/vi.lproj/GLUTUI.strings + + hash + + TUmFN8hGm9fL1MnkySi29SrLpJg= + + optional + + + Resources/vi.lproj/InfoPlist.strings + + hash + + La/yVT9EY5j59K8HNnd5AhtIwGo= + + optional + + + Resources/waitCursor.tiff + + be1dmGFyl0hglygvvwrFZowZlS4= + + Resources/zh_CN.lproj/GLUT.nib + + hash + + ARdB90/+PR1HFznveSq9Di1A1mM= + + optional + + + Resources/zh_CN.lproj/GLUTClipboard.nib + + hash + + m+KFusPA+RF2COvMLc114jdHbk8= + + optional + + + Resources/zh_CN.lproj/GLUTPreferences.nib + + hash + + nU8sXTF6oTwATcyFqbLkXRiiZUM= + + optional + + + Resources/zh_CN.lproj/GLUTUI.strings + + hash + + Yll6M7tVY5FRiSpPHAFV2ctwvTo= + + optional + + + Resources/zh_CN.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/zh_TW.lproj/GLUT.nib/objects.nib + + hash + + m5EAb+uENLje+gyxLwGr5cpp2nI= + + optional + + + Resources/zh_TW.lproj/GLUTClipboard.nib + + hash + + e2Iv4Q/bToBTYou42g401ETXOU4= + + optional + + + Resources/zh_TW.lproj/GLUTPreferences.nib + + hash + + lvV/3uOTUe4xGlWN3M+2b+vaaOI= + + optional + + + Resources/zh_TW.lproj/GLUTUI.strings + + hash + + GbfzS9jsiYJQ7XnCQzV0QNv+1FA= + + optional + + + Resources/zh_TW.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + + files2 + + Resources/BridgeSupport/GLUT.bridgesupport + + BWKOC+zF1CG9itgzEScLAMirZX0= + + Resources/Caution.tiff + + aq58DGymNs2GkMusLQddWP5QpLE= + + Resources/Dutch.lproj/GLUT.nib/objects.nib + + hash + + RUqtUA1q49i+fPoYYAZMISMf980= + + optional + + + Resources/Dutch.lproj/GLUTClipboard.nib/objects.nib + + hash + + /Bi20kpPAo6W800p4TNjJKiaKHc= + + optional + + + Resources/Dutch.lproj/GLUTPreferences.nib + + hash + + 4zFaO41I2dj+filPRVuoItZvI+g= + + optional + + + Resources/Dutch.lproj/GLUTUI.strings + + hash + + Hqdk3N8in0eQcQ4PDEm2LciH2M8= + + optional + + + Resources/Dutch.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/English.lproj/GLUT.nib/objects.nib + + hash + + d24mK12Ba7H/PiM68logXwqt9dU= + + optional + + + Resources/English.lproj/GLUTClipboard.nib/objects.nib + + hash + + d1PebKfRw4oQuVfBfqR3+tzaG7s= + + optional + + + Resources/English.lproj/GLUTPreferences.nib + + hash + + 0PJEZd7Quhcvsn3aA7m+/CA0rEc= + + optional + + + Resources/English.lproj/GLUTUI.strings + + hash + + a3Z37BGGjLTYyC/UyF2iWECFR9Q= + + optional + + + Resources/English.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/French.lproj/GLUT.nib + + hash + + d4LkRRtpyv1Usa8OSbsFEuEWLsc= + + optional + + + Resources/French.lproj/GLUTClipboard.nib/objects.nib + + hash + + cqcCHWGCMzUkHZfHnsMUXKdiRH0= + + optional + + + Resources/French.lproj/GLUTPreferences.nib + + hash + + q23yspVZBH+Hd4vRTq3Vtg1NfhU= + + optional + + + Resources/French.lproj/GLUTUI.strings + + hash + + qjrq6Q4znepNhzg3R6x2wWHWulY= + + optional + + + Resources/French.lproj/InfoPlist.strings + + hash + + iQq4EJoApceAl6McSzuz7DhY+9I= + + optional + + + Resources/German.lproj/GLUT.nib/objects.nib + + hash + + y2YmORDJ5/emrMmeJkKg0PPMY8s= + + optional + + + Resources/German.lproj/GLUTClipboard.nib/objects.nib + + hash + + YbhigPquJ5pfQ/shc+E9aqND3GQ= + + optional + + + Resources/German.lproj/GLUTPreferences.nib + + hash + + 51zWfRylEDPZPUmA3TIjuIGie0g= + + optional + + + Resources/German.lproj/GLUTUI.strings + + hash + + TaQI5UA5b0eVbDgygTqhyW1Q+Rs= + + optional + + + Resources/German.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/Info.plist + + 4SVBzbYPdSZViG5GIwOUIUKgdaA= + + Resources/Italian.lproj/GLUT.nib + + hash + + 4h0Qao/ZROKHoqahgfSVoX4BzmY= + + optional + + + Resources/Italian.lproj/GLUTClipboard.nib/objects.nib + + hash + + 2ppYrSKJ4W6wQ4F493XNCrDm7WA= + + optional + + + Resources/Italian.lproj/GLUTPreferences.nib + + hash + + JPDfl8iLRXj6fWr9WnmxWXflCx0= + + optional + + + Resources/Italian.lproj/GLUTUI.strings + + hash + + OIK2tOGOmoiNARy+1W7uhIAAkc4= + + optional + + + Resources/Italian.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/Japanese.lproj/GLUT.nib + + hash + + j6CIa4hB7r/UwOGCjSjH4f5znOs= + + optional + + + Resources/Japanese.lproj/GLUTClipboard.nib + + hash + + kfWT5G6Zk6PcoJoAutfYw/P3eT0= + + optional + + + Resources/Japanese.lproj/GLUTPreferences.nib + + hash + + Ai4aTJSdBSjg4bQzYiQkd4ZH5eY= + + optional + + + Resources/Japanese.lproj/GLUTUI.strings + + hash + + 98fWihIj/+RmLymDJeaQMb+Bq2o= + + optional + + + Resources/Japanese.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/Spanish.lproj/GLUT.nib + + hash + + 9W+kzbkBumt3FNKXaZRJ18zH1Kc= + + optional + + + Resources/Spanish.lproj/GLUTClipboard.nib/objects.nib + + hash + + BuofGSoOL5Q14CGaXhZoQLf/s7w= + + optional + + + Resources/Spanish.lproj/GLUTPreferences.nib + + hash + + NOOLH+RAw/Xosw0h33x2Dz8BH4s= + + optional + + + Resources/Spanish.lproj/GLUTUI.strings + + hash + + XtEBIlcpj2ctLkukjTAmYe26zvs= + + optional + + + Resources/Spanish.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/ar.lproj/GLUT.nib + + hash + + Z7FqU95ffJM2SmtLyCnqim0uEyo= + + optional + + + Resources/ar.lproj/GLUTClipboard.nib + + hash + + lLFCBrBmxdwk/m4NPhwJemm4CCA= + + optional + + + Resources/ar.lproj/GLUTPreferences.nib + + hash + + ROmI3XxDKLIUP8npuzp0djV0OkI= + + optional + + + Resources/ar.lproj/GLUTUI.strings + + hash + + ASe78OKFIdck715VkoupLnKDP80= + + optional + + + Resources/ar.lproj/InfoPlist.strings + + hash + + cs4uZV2k5jHFvVG+UvGcITv8Ofo= + + optional + + + Resources/blankCursor.tiff + + 71RmRfl/KEi+d8FoM7rhYoEQVvc= + + Resources/bottomCursor.tiff + + DOuotwaM4sJfBiFjCxPwKTuSsvU= + + Resources/bottomleftCursor.tiff + + /NQEJiCyCbZ9GQ+Q5YdoFVZy/Fg= + + Resources/bottomrightCursor.tiff + + Ee1kclbc0dgTJxX05Bn46Yq9djs= + + Resources/ca.lproj/GLUT.nib + + hash + + h3KeaFyDiSqsvs7Q+jaiaU1aZ1U= + + optional + + + Resources/ca.lproj/GLUTClipboard.nib + + hash + + 4yselpa+i5h0jBJRlmIchS9nvyE= + + optional + + + Resources/ca.lproj/GLUTPreferences.nib + + hash + + gOssZFMU+wEXqT8PNjl/ElrKRsw= + + optional + + + Resources/ca.lproj/GLUTUI.strings + + hash + + 4GHcmdPSWpmVcTTEHzc1PAFSbx8= + + optional + + + Resources/ca.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/crossCursor.tiff + + ySVy2eE2fXYsSalgFbpsm7InVZI= + + Resources/cs.lproj/GLUT.nib + + hash + + wRq8OmbS2G5LF0/5lGr638hN818= + + optional + + + Resources/cs.lproj/GLUTClipboard.nib + + hash + + gcVbNhZG09Yn7BuhXkBHQVbUBgQ= + + optional + + + Resources/cs.lproj/GLUTPreferences.nib + + hash + + 4X+p6hWgIH0WtO0LzqogMIfCk6Y= + + optional + + + Resources/cs.lproj/GLUTUI.strings + + hash + + VFXmJMdKiIhidnx1tKYUmZ+6lTo= + + optional + + + Resources/cs.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/cycleCursor.tiff + + 8jHeTtrVTfwQB49SB9r7quiubx0= + + Resources/da.lproj/GLUT.nib + + hash + + H7ZA3tC6iUJ/sYhQnVoe0uVvyV8= + + optional + + + Resources/da.lproj/GLUTClipboard.nib/objects.nib + + hash + + uBoakuoItz2j2lwusu4uNrLYDM4= + + optional + + + Resources/da.lproj/GLUTPreferences.nib + + hash + + nPWhVMDYPRPHQZPzJ7HLH/Rjvqo= + + optional + + + Resources/da.lproj/GLUTUI.strings + + hash + + 6dpISGTB31rqDTOcagKR5AoXM+k= + + optional + + + Resources/da.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/destroyCursor.tiff + + tkYCf5NXocfX+VKto+04wex2K+Q= + + Resources/el.lproj/GLUT.nib + + hash + + c7P6jFK+xLMQrc54PXRuAr4xwz4= + + optional + + + Resources/el.lproj/GLUTClipboard.nib + + hash + + FD1Bbfc+Xdnna1eCLeBXdn7vVyY= + + optional + + + Resources/el.lproj/GLUTPreferences.nib + + hash + + GyUJXxmj76iqV/jrgjlrGg3m2bo= + + optional + + + Resources/el.lproj/GLUTUI.strings + + hash + + VioaIj44YLMJnuEeoHe+PS/+KKM= + + optional + + + Resources/el.lproj/InfoPlist.strings + + hash + + kaREhGRlcwI1cXiAqPSCyoIbQ4Y= + + optional + + + Resources/es_MX.lproj/GLUT.nib + + hash + + EGxRUHjvx9eNffWH+v2aVGTwEIM= + + optional + + + Resources/es_MX.lproj/GLUTClipboard.nib + + hash + + 3zEwhN2ED0zIbGTz/CBEubmAMfA= + + optional + + + Resources/es_MX.lproj/GLUTPreferences.nib + + hash + + yUqv71JO5wbmtC+4sUigpflF7lc= + + optional + + + Resources/es_MX.lproj/GLUTUI.strings + + hash + + 24z1HDS8dDtq3952T25ZkRejvlk= + + optional + + + Resources/es_MX.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/fi.lproj/GLUT.nib + + hash + + d5gCFkjOBjAesXJ7EbIkc12X938= + + optional + + + Resources/fi.lproj/GLUTClipboard.nib/objects.nib + + hash + + 4tFU1zhOPsU5K5iil8MJPk3RKa0= + + optional + + + Resources/fi.lproj/GLUTPreferences.nib + + hash + + pFVMfXXoW+Bu2K5Sp4kep9Myt6E= + + optional + + + Resources/fi.lproj/GLUTUI.strings + + hash + + zj3hb9JzA/0lYgSHvjFJSbUJCEk= + + optional + + + Resources/fi.lproj/InfoPlist.strings + + hash + + rd0zLDNzEF4yG/H8drOK/0IV9r0= + + optional + + + Resources/fingerCursor.tiff + + u1gKLmqCWIvJhMIQAE7AEoJTDy0= + + Resources/he.lproj/GLUT.nib + + hash + + bIJpK9+By6M8J018cyscSZHRvZA= + + optional + + + Resources/he.lproj/GLUTClipboard.nib + + hash + + X2iqZmKSiM5ewrhtP5QtLNaS2Fo= + + optional + + + Resources/he.lproj/GLUTPreferences.nib + + hash + + btMHguC+hqbHT7C0AbLViX9K/bU= + + optional + + + Resources/he.lproj/GLUTUI.strings + + hash + + gWI3ZBiECszzhJneomE/p3nbDW4= + + optional + + + Resources/he.lproj/InfoPlist.strings + + hash + + IWRMGqIMKXPJH/4z/PZchGYh57g= + + optional + + + Resources/helpCursor.tiff + + 2vlbHXOdcb4sWRCy3CNJws7wHQU= + + Resources/hr.lproj/GLUT.nib + + hash + + DKTO11a7C9ByXo9xdUjmTkpcKKs= + + optional + + + Resources/hr.lproj/GLUTClipboard.nib + + hash + + fWvi93aofaQMbnzJDMWh9vtZZls= + + optional + + + Resources/hr.lproj/GLUTPreferences.nib + + hash + + 2WgYnx5R38Yfe/mC3lNKb0ZFmAQ= + + optional + + + Resources/hr.lproj/GLUTUI.strings + + hash + + 5C6YMo8lb776jbF1wdkOOPsWme0= + + optional + + + Resources/hr.lproj/InfoPlist.strings + + hash + + J52bfD41z5QaHmK6izXMlK6J9zk= + + optional + + + Resources/hu.lproj/GLUT.nib + + hash + + roOcN67DdkWOrb3A0oi7qav2ccI= + + optional + + + Resources/hu.lproj/GLUTClipboard.nib + + hash + + Rzqa2UgIJRCDoey5SQjH37BG72Q= + + optional + + + Resources/hu.lproj/GLUTPreferences.nib + + hash + + 0wgicb9++6eBZ/pGL0zoAZhIVi0= + + optional + + + Resources/hu.lproj/GLUTUI.strings + + hash + + DzcP2BRnVXd4O6chhtSRWs13NM4= + + optional + + + Resources/hu.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/id.lproj/GLUT.nib + + hash + + rDzHGYlCpbpMPZw2j1QQXNp4tnw= + + optional + + + Resources/id.lproj/GLUTClipboard.nib + + hash + + mIqa9rz7oJiMiLYFNmeaaY6XWfY= + + optional + + + Resources/id.lproj/GLUTPreferences.nib + + hash + + oBcfTazT2ChaDZ6z6n5UPKoIKN4= + + optional + + + Resources/id.lproj/GLUTUI.strings + + hash + + E48coG0TAfi0Z6ekKKLg+HtubwQ= + + optional + + + Resources/id.lproj/InfoPlist.strings + + hash + + kicaNpuzJEmaugT03YKlUtulj5U= + + optional + + + Resources/ko.lproj/GLUT.nib + + hash + + i4uVhGemM15DSUIdZpxZ3BkVmkA= + + optional + + + Resources/ko.lproj/GLUTClipboard.nib/objects.nib + + hash + + azdBxSt/IZq5ZAjWqW+23xrz7wA= + + optional + + + Resources/ko.lproj/GLUTPreferences.nib + + hash + + kJULxR7NQD0QCbq8cg49kEo1A7E= + + optional + + + Resources/ko.lproj/GLUTUI.strings + + hash + + L83/tT4j4ClEyWv8IycEJEHAZzE= + + optional + + + Resources/ko.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/leftCursor.tiff + + UuLAchbhcmBfyHNPujanbcWtWVw= + + Resources/leftRightCursor.tiff + + iDFAKKJOw4Nk1e6tS7cmxhQoTec= + + Resources/ms.lproj/GLUT.nib + + hash + + GVnrI5Ug7j+Odz0CvevkHz56pxk= + + optional + + + Resources/ms.lproj/GLUTClipboard.nib + + hash + + qpdll90JLp25zihmmelAsqeqRbk= + + optional + + + Resources/ms.lproj/GLUTPreferences.nib + + hash + + Ve+nswhwjb5p3pl/JVeU/votRGQ= + + optional + + + Resources/ms.lproj/GLUTUI.strings + + hash + + zfZooTQ4x3lsEcwFa7Alilw7YDs= + + optional + + + Resources/ms.lproj/InfoPlist.strings + + hash + + kicaNpuzJEmaugT03YKlUtulj5U= + + optional + + + Resources/no.lproj/GLUT.nib/objects.nib + + hash + + f4clOZFBVlC/DwWYFID3TbsN/ig= + + optional + + + Resources/no.lproj/GLUTClipboard.nib/objects.nib + + hash + + jKis0G/aC7CyUVp8oYKl+Gvs4qY= + + optional + + + Resources/no.lproj/GLUTPreferences.nib + + hash + + UrpmVpWERaESTiUlsAhNtlgx2ek= + + optional + + + Resources/no.lproj/GLUTUI.strings + + hash + + J69/NwRHIr6CVqbFOnLb7CSL2Mo= + + optional + + + Resources/no.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/pl.lproj/GLUT.nib + + hash + + HnkyZhz9P8pB93CMNI1AKDpqFyY= + + optional + + + Resources/pl.lproj/GLUTClipboard.nib + + hash + + wQ3qZQS0FLKBHEXJc0o3Hf14HUA= + + optional + + + Resources/pl.lproj/GLUTPreferences.nib + + hash + + hIFWDulC+jaJit6lo0GxIMC/7S8= + + optional + + + Resources/pl.lproj/GLUTUI.strings + + hash + + YIWjI6pJrdUgnJeaQDpWY7wK5p4= + + optional + + + Resources/pl.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/pt.lproj/GLUT.nib + + hash + + MjmlNCV8DEBlmz8RMhVXMMskdHY= + + optional + + + Resources/pt.lproj/GLUTClipboard.nib/objects.nib + + hash + + uMMqPOen4ZhPRWAWqWmDzcHsICA= + + optional + + + Resources/pt.lproj/GLUTPreferences.nib + + hash + + c+dzx9e1xi1AdVZabFjGmXu2Jns= + + optional + + + Resources/pt.lproj/GLUTUI.strings + + hash + + dXFy6zHZh/JR+LcyhNmRjmlX12k= + + optional + + + Resources/pt.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/pt_PT.lproj/GLUT.nib + + hash + + wDHD1A87v3rlpSwIg4JvyiY4k0k= + + optional + + + Resources/pt_PT.lproj/GLUTClipboard.nib + + hash + + zS20SbBg9w7lVzUouSpOH66ZSuc= + + optional + + + Resources/pt_PT.lproj/GLUTPreferences.nib + + hash + + DbZU+TVRD8ZsWvRtOwRtsNqhKGs= + + optional + + + Resources/pt_PT.lproj/GLUTUI.strings + + hash + + 2PXu8o8Xos9q5cafAw2h+C6m66I= + + optional + + + Resources/pt_PT.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/rightArrowCursor.tiff + + 7K3jXpKlDtkkjHXTGcY9EeesMhU= + + Resources/rightCursor.tiff + + q9GmlIh4lCQk/ow13gGDjnHFsJo= + + Resources/ro.lproj/GLUT.nib + + hash + + nww/x1dIqEUFDnxzc/5vwQWysbo= + + optional + + + Resources/ro.lproj/GLUTClipboard.nib + + hash + + 8Xc8g89kByEAaU70JEf1ZNBdXMA= + + optional + + + Resources/ro.lproj/GLUTPreferences.nib + + hash + + Jq4Xr2Abgv8LPJmR0a00NNWymiU= + + optional + + + Resources/ro.lproj/GLUTUI.strings + + hash + + /98VbyObWKIEYnluJ82Ppgnhpjk= + + optional + + + Resources/ro.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/ru.lproj/GLUT.nib + + hash + + NptvOjRRjioRXc4lhz15UU9onMc= + + optional + + + Resources/ru.lproj/GLUTClipboard.nib + + hash + + vAJ8XsU2fs7jm60Up8Od2iHhG9w= + + optional + + + Resources/ru.lproj/GLUTPreferences.nib + + hash + + GJiamMeOpvM1Ql4WdT7lnn3VLwo= + + optional + + + Resources/ru.lproj/GLUTUI.strings + + hash + + HHeT534DvlzBbNEiR7hewOyDQVU= + + optional + + + Resources/ru.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/sk.lproj/GLUT.nib + + hash + + rWzkDeFRABaL9jaNC2Jg/mfHENw= + + optional + + + Resources/sk.lproj/GLUTClipboard.nib + + hash + + 6FAp4Ukk2ixJDCOxtWGlo/Sp6nM= + + optional + + + Resources/sk.lproj/GLUTPreferences.nib + + hash + + 5zYmSOARhnizPhB8Pf7dG+k8bU8= + + optional + + + Resources/sk.lproj/GLUTUI.strings + + hash + + OvN+fe/mGzaL01orEWEJp9SUHrg= + + optional + + + Resources/sk.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/sprayCursor.tiff + + dGquzbXCgTh0tAT400liHFqKMQg= + + Resources/sv.lproj/GLUT.nib/objects.nib + + hash + + mv+oXLtWzpRJdGwnM1ALwgsg8P4= + + optional + + + Resources/sv.lproj/GLUTClipboard.nib/objects.nib + + hash + + zbyujlfwrCBSHqmDjSnOIi67OR8= + + optional + + + Resources/sv.lproj/GLUTPreferences.nib + + hash + + m2yS9EPlbM/w2lqdxJz/loq11Aw= + + optional + + + Resources/sv.lproj/GLUTUI.strings + + hash + + tJTwzCxG9LaOIYGhS6aN/Okx/gg= + + optional + + + Resources/sv.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/th.lproj/GLUT.nib + + hash + + XwvxYcs04m3hiJXUGjdBR9Uvu0A= + + optional + + + Resources/th.lproj/GLUTClipboard.nib + + hash + + yVGifw22EFWjc9c2deV7wsG4Kw8= + + optional + + + Resources/th.lproj/GLUTPreferences.nib + + hash + + tccCw6Gwe97H58JxOje/vRKuTEs= + + optional + + + Resources/th.lproj/GLUTUI.strings + + hash + + bHzJbhI9D44T3pTU30asWYHpQUc= + + optional + + + Resources/th.lproj/InfoPlist.strings + + hash + + beOBXBvt1wfWvLfjJeuctbxc5g8= + + optional + + + Resources/topCursor.tiff + + MMgN7P7qDQqXsBUfpIDB93Ql6sk= + + Resources/topleftCursor.tiff + + 8qrlRyy9LBBZR2A47KeQ4NlBD9A= + + Resources/toprightCursor.tiff + + mF9JHrzd3nIzDrkOaMOtrkgB0SI= + + Resources/tr.lproj/GLUT.nib + + hash + + c1W04X9lHRr+2mCEDO0jIz8F/Bs= + + optional + + + Resources/tr.lproj/GLUTClipboard.nib + + hash + + eei+HqmJj+rVS3C/PRqgcJJ33Tk= + + optional + + + Resources/tr.lproj/GLUTPreferences.nib + + hash + + v9B8N7ifqek/0/OGvYkFozl/ujY= + + optional + + + Resources/tr.lproj/GLUTUI.strings + + hash + + K/QvPe5MuGRbPIXCHmJtiBKmFdg= + + optional + + + Resources/tr.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/uk.lproj/GLUT.nib + + hash + + YfXUuI32C6+nTxbViHfSzDuzTp4= + + optional + + + Resources/uk.lproj/GLUTClipboard.nib + + hash + + hkFh7mFKOIFGTMTRDoaayhhz67Q= + + optional + + + Resources/uk.lproj/GLUTPreferences.nib + + hash + + zSIaWYJSAvL5R1OwIfjblRVJV50= + + optional + + + Resources/uk.lproj/GLUTUI.strings + + hash + + xVJBCyxklXTXQin6BVmDoB1Lw3o= + + optional + + + Resources/uk.lproj/InfoPlist.strings + + hash + + 9MSFvcDNYZyBJZDjwahM31cVmqc= + + optional + + + Resources/upDownCursor.tiff + + y5wHeRc7vaGr9ml9ZlsAkzCuC4I= + + Resources/version.plist + + j7cRI4GkkD9tslXKFjfurzhEtV4= + + Resources/vi.lproj/GLUT.nib + + hash + + AZX6we4AJmYW3xvYTpR6xytXeo0= + + optional + + + Resources/vi.lproj/GLUTClipboard.nib + + hash + + 1/Xe+/1sszTdWG1amiwfz8nEuCs= + + optional + + + Resources/vi.lproj/GLUTPreferences.nib + + hash + + gi5VrYkzMKc2BkhIESK+5G1Ofm0= + + optional + + + Resources/vi.lproj/GLUTUI.strings + + hash + + TUmFN8hGm9fL1MnkySi29SrLpJg= + + optional + + + Resources/vi.lproj/InfoPlist.strings + + hash + + La/yVT9EY5j59K8HNnd5AhtIwGo= + + optional + + + Resources/waitCursor.tiff + + be1dmGFyl0hglygvvwrFZowZlS4= + + Resources/zh_CN.lproj/GLUT.nib + + hash + + ARdB90/+PR1HFznveSq9Di1A1mM= + + optional + + + Resources/zh_CN.lproj/GLUTClipboard.nib + + hash + + m+KFusPA+RF2COvMLc114jdHbk8= + + optional + + + Resources/zh_CN.lproj/GLUTPreferences.nib + + hash + + nU8sXTF6oTwATcyFqbLkXRiiZUM= + + optional + + + Resources/zh_CN.lproj/GLUTUI.strings + + hash + + Yll6M7tVY5FRiSpPHAFV2ctwvTo= + + optional + + + Resources/zh_CN.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + Resources/zh_TW.lproj/GLUT.nib/objects.nib + + hash + + m5EAb+uENLje+gyxLwGr5cpp2nI= + + optional + + + Resources/zh_TW.lproj/GLUTClipboard.nib + + hash + + e2Iv4Q/bToBTYou42g401ETXOU4= + + optional + + + Resources/zh_TW.lproj/GLUTPreferences.nib + + hash + + lvV/3uOTUe4xGlWN3M+2b+vaaOI= + + optional + + + Resources/zh_TW.lproj/GLUTUI.strings + + hash + + GbfzS9jsiYJQ7XnCQzV0QNv+1FA= + + optional + + + Resources/zh_TW.lproj/InfoPlist.strings + + hash + + rolTkaJYhD0GmD28dT2jurzPTiQ= + + optional + + + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/module.map" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/module.map" new file mode 100644 index 0000000..340a6fc --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/GLUT.framework/module.map" @@ -0,0 +1,9 @@ +framework module GLUT [extern_c] { + header "glut.h" + + umbrella "Headers" + + export * + explicit module * { export * } +} + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/CGLContext.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/CGLContext.h" new file mode 100644 index 0000000..c59fc01 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/CGLContext.h" @@ -0,0 +1,36 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _CGLCONTEXT_H +#define _CGLCONTEXT_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/* +** Opaque declaration for private CGLContext data. +*/ +typedef struct _CGLPrivateObject *CGLPrivateObj; + +/* +** CGLContext structure. +*/ +struct _CGLContextObject { + GLIContext rend; + GLIFunctionDispatch disp; + CGLPrivateObj priv; + void *stak; +}; + + +#ifdef __cplusplus +} +#endif + +#endif /* _CGLCONTEXT_H */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/CGLCurrent.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/CGLCurrent.h" new file mode 100644 index 0000000..e39c93f --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/CGLCurrent.h" @@ -0,0 +1,29 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _CGLCURRENT_H +#define _CGLCURRENT_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +OPENGL_ASSUME_NONNULL_BEGIN + +/* +** Current context functions +*/ +extern CGLError CGLSetCurrentContext(CGLContextObj OPENGL_NULLABLE ctx); +extern CGLContextObj OPENGL_NULLABLE CGLGetCurrentContext(void); + +OPENGL_ASSUME_NONNULL_END + +#ifdef __cplusplus +} +#endif + +#endif /* _CGLCURRENT_H */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/CGLDevice.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/CGLDevice.h" new file mode 100644 index 0000000..d11a8cf --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/CGLDevice.h" @@ -0,0 +1,39 @@ +/* + Copyright: (c) 2008-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _CGLDEVICE_H +#define _CGLDEVICE_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +OPENGL_ASSUME_NONNULL_BEGIN + +typedef struct CGLShareGroupRec *CGLShareGroupObj OPENGL_AVAILABLE(10_6); + +CGLShareGroupObj OPENGL_NULLABLE CGLGetShareGroup(CGLContextObj ctx) OPENGL_AVAILABLE(10_6); + +typedef struct _cl_device_id * cl_device_id OPENGL_AVAILABLE(10_10); + +/* +** CGLGetDeviceFromGLRenderer returns the cl_device_id corresponding to the +** specified GL renderer ID. Use CGLDescribeRenderer to check if the renderer +** supports kCGLRPAcceleratedCompute before calling this function. If there is +** no cl_device_id corresponding to the specified renderer ID, the result is +** undefined. + */ +cl_device_id CGLGetDeviceFromGLRenderer(GLint rendererID) OPENGL_AVAILABLE(10_10); + +OPENGL_ASSUME_NONNULL_END + +#ifdef __cplusplus +} +#endif + +#endif /* _CGLDEVICE_H */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/CGLIOSurface.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/CGLIOSurface.h" new file mode 100644 index 0000000..eeb93c8 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/CGLIOSurface.h" @@ -0,0 +1,205 @@ +/* + Copyright: (c) 2008-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _CGLIOSURFACE_H +#define _CGLIOSURFACE_H + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +OPENGL_ASSUME_NONNULL_BEGIN + +typedef struct __IOSurface *IOSurfaceRef; + +/*! + @function CGLTexImageIOSurface2D + + CGLTexImageIOSurface2D() allows you to bind a single image plane from an IOSurfaceRef to + an OpenGL texture object. It is the rough equivalent to glTexImage2D(), except that + the underlying source data comes from an IOSurface rather than from an explicit pointer. + Note that unlike glTexImage2D(), the binding is "live", in that if the contents of + the IOSurface change, the contents become visible to OpenGL without making another + call to CGLTexImageIOSurface2D(). That being said, there are a few synchronization + things to worry about if you are using IOSurface to pass data between contexts and/or + different processes, or between the CPU and OpenGL. + + In general IOSurface follows Apple's cross-context synchronization rules for OpenGL. Put + simply, in order for changes done to an IOSurface on context A to become visible to context + B, you must flush context A's command stream (via an explicit call to glFlush, glFlushRenderAPPLE, + etc.), and then perform a 'bind' (in this case, glBindTexture()) on context B. Note that + in the case of an IOSurface backed texture used as a color buffer attachment for an FBO, + you are only required to call glBindFramebuffer() again. You do not have to call + glFramebufferTexture2D(). + + Likewise, if you make changes to an IOSurface with the CPU, you *must* wrap those changes + with calls to IOSurfaceLock() and IOSurfaceUnlock(), and call glBindTexture() again for + OpenGL to pick up the changes. + + Going in the other direction, if you want changes made with OpenGL to an IOSurface to become + visible to the CPU, you must also perform an explicit flush of the OpenGL context before + calling IOSurfaceLock(), or you may not get the most recent data. + + IOSurface and OpenGL make no guarantees about correctness if these rules are not followed. + + Because of the way IOSurface is currently implemented, it does not allow for any kind of + automatic format conversion to take place between the data in the IOSurface and the data seen + by the GPU. This means that OpenGL is going to interpret the data in the IOSurface exactly + as how it is specified by the format and type parameters passed to CGLTexImageIOSurface2D(). + + The upshot if this is that the only supported format/type combinations are those that have + exact matching hardware formats. The table at the bottom of this file lists the format/type/ + internalFormat combinations that are supported in Mac OS X 10.6. + + In cases where a given format/type combination has both an Internal Format and Sized Internal + Format, either one may be used. + + Note that CGLTexImageIOSurface2D for the most part doesn't care what the pixel format or bytes + per element of the IOSurface is. Instead it only enforces the rule that there must be enough + data in the plane being bound to cover what is required by the width/height/format/type + parameters. However, if you are using the IOSurface texture as a color buffer attachment to + an FBO, then you must ensure that the bytes per element value of the IOSurface must match the + effective bytes per pixel value for the format and type combination you are passing to OpenGL. + + @param ctx The CGLContextObj for the OpenGL context you are using + @param target Must currently be GL_TEXTURE_RECTANGLE_ARB as of Mac OS X 10.6.0. + @param internal_format One of the supported values from the table below that matches + the format/type combination. + @param width The width of the texture in pixels. + @param height The height of the texture in pixels. + @param format The OpenGL texture format enum + @param type The OpenGL texture type enum + @param ioSurface The IOSurfaceRef this texture is being bound to + @param plane Which plane of the IOSurface this texture is being bound to + +*/ +extern CGLError CGLTexImageIOSurface2D(CGLContextObj ctx, GLenum target, GLenum internal_format, + GLsizei width, GLsizei height, GLenum format, GLenum type, IOSurfaceRef ioSurface, GLuint plane) OPENGL_AVAILABLE(10_6); +/*! + + Supported IOSurface texture format/type/internal format combinations in Mac OS X 10.6 + + Format Type Internal Format Sized Internal Format + GL_ALPHA GL_UNSIGNED_BYTE GL_ALPHA GL_ALPHA8 + GL_LUMINANCE GL_UNSIGNED_BYTE GL_LUMINANCE GL_LUMINANCE8 + GL_LUMINANCE GL_UNSIGNED_BYTE GL_INTENSITY GL_INTENSITY8 + GL_LUMINANCE_ALPHA GL_UNSIGNED_BYTE GL_LUMINANCE_ALPHA GL_LUMINANCE8_ALPHA8 + + GL_ALPHA GL_UNSIGNED_SHORT GL_ALPHA GL_ALPHA16 + GL_LUMINANCE GL_UNSIGNED_SHORT GL_LUMINANCE GL_LUMINANCE16 + GL_LUMINANCE GL_UNSIGNED_SHORT GL_INTENSITY GL_INTENSITY16 + + GL_BGRA GL_UNSIGNED_SHORT_1_5_5_5_REV GL_RGBA GL_RGB5_A1 + GL_BGRA GL_UNSIGNED_SHORT_4_4_4_4_REV GL_RGBA GL_RGBA4 + + GL_BGRA GL_UNSIGNED_INT_8_8_8_8_REV GL_RGB GL_RGB8 + GL_BGRA GL_UNSIGNED_INT_8_8_8_8_REV GL_RGBA GL_RGBA8 + GL_BGRA GL_UNSIGNED_INT_2_10_10_10_REV GL_RGBA GL_RGB10_A2 + + // "Video" formats + + GL_RGB_422_APPLE GL_UNSIGNED_SHORT_8_8_APPLE GL_RGB GL_RGB8 + GL_RGB_422_APPLE GL_UNSIGNED_SHORT_8_8_REV_APPLE GL_RGB GL_RGB8 + GL_YCBCR_422_APPLE GL_UNSIGNED_SHORT_8_8_APPLE GL_RGB GL_RGB8 + GL_YCBCR_422_APPLE GL_UNSIGNED_SHORT_8_8_REV_APPLE GL_RGB GL_RGB8 + + // sRGB formats + + GL_BGRA GL_UNSIGNED_INT_8_8_8_8_REV GL_SRGB GL_SRGB8 + GL_BGRA GL_UNSIGNED_INT_8_8_8_8_REV GL_SRGB_ALPHA GL_SRGB8_ALPHA8 + + // Float formats for drivers that support APPLE_float_pixels: + + GL_RGBA GL_HALF_APPLE GL_RGB GL_RGB_FLOAT16_APPLE + GL_RGBA GL_HALF_APPLE GL_RGBA GL_RGBA_FLOAT16_APPLE + GL_RGBA GL_FLOAT GL_RGB GL_RGB_FLOAT32_APPLE + GL_RGBA GL_FLOAT GL_RGBA GL_RGBA_FLOAT32_APPLE + + // 16-bit unorm textures + GL_RGBA GL_UNSIGNED_SHORT GL_RGBA GL_RGBA16 + + // Integer formats for drivers that support EXT_texture_integer: + + GL_ALPHA_INTEGER_EXT GL_UNSIGNED_BYTE GL_ALPHA8UI + GL_ALPHA_INTEGER_EXT GL_BYTE GL_ALPHA8I + GL_ALPHA_INTEGER_EXT GL_UNSIGNED_SHORT GL_ALPHA16UI + GL_ALPHA_INTEGER_EXT GL_SHORT GL_ALPHA16I + GL_ALPHA_INTEGER_EXT GL_UNSIGNED_INT GL_ALPHA32UI + GL_ALPHA_INTEGER_EXT GL_INT GL_ALPHA32I + + GL_LUMINANCE_INTEGER_EXT GL_UNSIGNED_BYTE GL_LUMINANCE8UI + GL_LUMINANCE_INTEGER_EXT GL_BYTE GL_LUMINANCE8I + GL_LUMINANCE_INTEGER_EXT GL_UNSIGNED_SHORT GL_LUMINANCE16UI + GL_LUMINANCE_INTEGER_EXT GL_SHORT GL_LUMINANCE16I + GL_LUMINANCE_INTEGER_EXT GL_UNSIGNED_INT GL_LUMINANCE32UI + GL_LUMINANCE_INTEGER_EXT GL_INT GL_LUMINANCE32I + + GL_LUMINANCE_INTEGER_EXT GL_UNSIGNED_BYTE GL_INTENSITY8UI + GL_LUMINANCE_INTEGER_EXT GL_BYTE GL_INTENSITY8I + GL_LUMINANCE_INTEGER_EXT GL_UNSIGNED_SHORT GL_INTENSITY16UI + GL_LUMINANCE_INTEGER_EXT GL_SHORT GL_INTENSITY16I + GL_LUMINANCE_INTEGER_EXT GL_UNSIGNED_INT GL_INTENSITY32UI + GL_LUMINANCE_INTEGER_EXT GL_INT GL_INTENSITY32I + + GL_LUMINANCE_ALPHA_INTEGER_EXT GL_UNSIGNED_BYTE GL_LUMINANCE_ALPHA8UI + GL_LUMINANCE_ALPHA_INTEGER_EXT GL_BYTE GL_LUMINANCE_ALPHA8I + GL_LUMINANCE_ALPHA_INTEGER_EXT GL_UNSIGNED_SHORT GL_LUMINANCE_ALPHA16UI + GL_LUMINANCE_ALPHA_INTEGER_EXT GL_SHORT GL_LUMINANCE_ALPHA16I + GL_LUMINANCE_ALPHA_INTEGER_EXT GL_UNSIGNED_INT GL_LUMINANCE_ALPHA32UI + GL_LUMINANCE_ALPHA_INTEGER_EXT GL_INT GL_LUMINANCE_ALPHA32I + + GL_RGBA_INTEGER_EXT GL_UNSIGNED_BYTE GL_RGB8UI + GL_RGBA_INTEGER_EXT GL_BYTE GL_RGB8I + GL_RGBA_INTEGER_EXT GL_UNSIGNED_SHORT GL_RGB16UI + GL_RGBA_INTEGER_EXT GL_SHORT GL_RGB16I + GL_RGBA_INTEGER_EXT GL_UNSIGNED_INT GL_RGB32UI + GL_RGBA_INTEGER_EXT GL_INT GL_RGB32I + + GL_RGBA_INTEGER_EXT GL_UNSIGNED_BYTE GL_RGBA8UI + GL_RGBA_INTEGER_EXT GL_BYTE GL_RGBA8I + GL_RGBA_INTEGER_EXT GL_UNSIGNED_SHORT GL_RGBA16UI + GL_RGBA_INTEGER_EXT GL_SHORT GL_RGBA16I + GL_RGBA_INTEGER_EXT GL_UNSIGNED_INT GL_RGBA32UI + GL_RGBA_INTEGER_EXT GL_INT GL_RGBA32I + + // Additional supported formats for drivers that support ARB_texture_rg: + + GL_RED GL_UNSIGNED_BYTE GL_RED GL_R8 + GL_RED GL_UNSIGNED_SHORT GL_RED GL_R16 + GL_RED GL_HALF_APPLE GL_RED GL_R16F + GL_RED GL_FLOAT GL_RED GL_R32F + + GL_RG GL_UNSIGNED_BYTE GL_RG GL_RG8 + GL_RG GL_UNSIGNED_SHORT GL_RG GL_RG16 + GL_RG GL_HALF_APPLE GL_RG GL_R16F + GL_RG GL_FLOAT GL_RG GL_R32F + + GL_RED_INTEGER GL_UNSIGNED_BYTE GL_R8UI + GL_RED_INTEGER GL_BYTE GL_R8I + GL_RED_INTEGER GL_UNSIGNED_SHORT GL_R16UI + GL_RED_INTEGER GL_SHORT GL_R16I + GL_RED_INTEGER GL_UNSIGNED_INT GL_R32UI + GL_RED_INTEGER GL_INT GL_R32I + + GL_RG_INTEGER GL_UNSIGNED_BYTE GL_RG8UI + GL_RG_INTEGER GL_BYTE GL_RG8I + GL_RG_INTEGER GL_UNSIGNED_SHORT GL_RG16UI + GL_RG_INTEGER GL_SHORT GL_RG16I + GL_RG_INTEGER GL_UNSIGNED_INT GL_RG32UI + GL_RG_INTEGER GL_INT GL_RG32I + +*/ + +OPENGL_ASSUME_NONNULL_END + +#ifdef __cplusplus +} +#endif + +#endif /* _CGLSURFACE_H */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/CGLMacro.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/CGLMacro.h" new file mode 100644 index 0000000..9f9847a --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/CGLMacro.h" @@ -0,0 +1,2915 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _CGLMACRO_H +#define _CGLMACRO_H + +#ifdef __gl3_h_ +# ifndef __has_feature +# define __has_feature(X) 0 +# endif +# if !__has_feature(modules) +# error Can not include both gl3.h and CGLMacro.h simultaneously +# endif +#endif + +#include +#include +#include +#include + +/* Macro context name (CGLContextObj) */ +#if !defined(CGL_MACRO_CONTEXT) +#define CGL_MACRO_CONTEXT cgl_ctx +#endif + +/* Macro renderer name (GLIContext) */ +#if !defined(CGL_MACRO_RENDERER) +#define CGL_MACRO_RENDERER cgl_rend +#endif + +#define CGL_MACRO_DECLARE_CONTEXT() CGLContextObj CGL_MACRO_CONTEXT = CGLGetCurrentContext(); + +/* Repeated renderer lookups may be avoided by defining CGL_MACRO_CACHE_RENDERER before including CGLMacro.h. + Note: If you change the value of CGL_MACRO_CONTEXT partway through a function, you will have to + keep CGL_MACRO_RENDERER up to date with with it's context. */ +#if defined(CGL_MACRO_CACHE_RENDERER) +#define CGL_MACRO_DECLARE_RENDERER() GLIContext CGL_MACRO_RENDERER = CGL_MACRO_CONTEXT->rend; +#define CGL_MACRO_CONTEXT_RENDERER CGL_MACRO_RENDERER +#else +#define CGL_MACRO_DECLARE_RENDERER() +#define CGL_MACRO_CONTEXT_RENDERER CGL_MACRO_CONTEXT->rend +#endif + +/* Use the following function macro to declare the local CGLMacro variables */ +#define CGL_MACRO_DECLARE_VARIABLES() \ + CGL_MACRO_DECLARE_CONTEXT(); \ + CGL_MACRO_DECLARE_RENDERER(); + +/* This is for converting old non-arb handle definitions to ARB handle definitions for 64 bit compiles */ +#define CGL_HANDLE_ARB(handle) (GLhandleARB)((unsigned long)handle) + +/****************** OpenGL 1.1 Macros *****************************/ + +#define glAccum(op, value) \ + (*(CGL_MACRO_CONTEXT)->disp.accum)(CGL_MACRO_CONTEXT_RENDERER, op, value) + +#define glAlphaFunc(func, ref) \ + (*(CGL_MACRO_CONTEXT)->disp.alpha_func)(CGL_MACRO_CONTEXT_RENDERER, func, ref) + +#define glAreTexturesResident(n, textures, residences) \ + (*(CGL_MACRO_CONTEXT)->disp.are_textures_resident)(CGL_MACRO_CONTEXT_RENDERER, n, textures, residences) + +#define glArrayElement(i) \ + (*(CGL_MACRO_CONTEXT)->disp.array_element)(CGL_MACRO_CONTEXT_RENDERER, i) + +#define glBegin(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.begin)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glBindTexture(target, texture) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_texture)(CGL_MACRO_CONTEXT_RENDERER, target, texture) + +#define glBitmap(width, height, xorig, yorig, xmove, ymove, bmap) \ + (*(CGL_MACRO_CONTEXT)->disp.bitmap)(CGL_MACRO_CONTEXT_RENDERER, width, height, xorig, yorig, xmove, ymove, bmap) + +#define glBlendFunc(sfactor, dfactor) \ + (*(CGL_MACRO_CONTEXT)->disp.blend_func)(CGL_MACRO_CONTEXT_RENDERER, sfactor, dfactor) + +#define glCallList(list) \ + (*(CGL_MACRO_CONTEXT)->disp.call_list)(CGL_MACRO_CONTEXT_RENDERER, list) + +#define glCallLists(n, type, lists) \ + (*(CGL_MACRO_CONTEXT)->disp.call_lists)(CGL_MACRO_CONTEXT_RENDERER, n, type, lists) + +#define glClear(mask) \ + (*(CGL_MACRO_CONTEXT)->disp.clear)(CGL_MACRO_CONTEXT_RENDERER, mask) + +#define glClearAccum(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_accum)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glClearColor(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_color)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glClearDepth(depth) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_depth)(CGL_MACRO_CONTEXT_RENDERER, depth) + +#define glClearIndex(c) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_index)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glClearStencil(s) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_stencil)(CGL_MACRO_CONTEXT_RENDERER, s) + +#define glClipPlane(plane, equation) \ + (*(CGL_MACRO_CONTEXT)->disp.clip_plane)(CGL_MACRO_CONTEXT_RENDERER, plane, equation) + +#define glColor3b(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3b)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3bv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3bv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor3d(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3d)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor3f(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3f)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor3i(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3i)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor3s(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3s)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor3ub(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3ub)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3ubv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3ubv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor3ui(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3ui)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3uiv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3uiv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor3us(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3us)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3usv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3usv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4b(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4b)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4bv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4bv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4d(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4d)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4f(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4f)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4i(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4i)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4s(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4s)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4ub(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4ub)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4ubv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4ubv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4ui(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4ui)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4uiv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4uiv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4us(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4us)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4usv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4usv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColorMask(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color_mask)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColorMaterial(face, mode) \ + (*(CGL_MACRO_CONTEXT)->disp.color_material)(CGL_MACRO_CONTEXT_RENDERER, face, mode) + +#define glColorPointer(size, type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.color_pointer)(CGL_MACRO_CONTEXT_RENDERER, size, type, stride, pointer) + +#define glCopyPixels(x, y, width, height, type) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_pixels)(CGL_MACRO_CONTEXT_RENDERER, x, y, width, height, type) + +#define glCopyTexImage1D(target, level, internalFormat, x, y, width, border) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_tex_image1D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalFormat, x, y, width, border) + +#define glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_tex_image2D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalFormat, x, y, width, height, border) + +#define glCopyTexSubImage1D(target, level, xoffset, x, y, width) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_tex_sub_image1D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, x, y, width) + +#define glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_tex_sub_image2D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, yoffset, x, y, width, height) + +#define glCullFace(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.cull_face)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glDeleteLists(list, range) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_lists)(CGL_MACRO_CONTEXT_RENDERER, list, range) + +#define glDeleteTextures(n, textures) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_textures)(CGL_MACRO_CONTEXT_RENDERER, n, textures) + +#define glDepthFunc(func) \ + (*(CGL_MACRO_CONTEXT)->disp.depth_func)(CGL_MACRO_CONTEXT_RENDERER, func) + +#define glDepthMask(flag) \ + (*(CGL_MACRO_CONTEXT)->disp.depth_mask)(CGL_MACRO_CONTEXT_RENDERER, flag) + +#define glDepthRange(zNear, zFar) \ + (*(CGL_MACRO_CONTEXT)->disp.depth_range)(CGL_MACRO_CONTEXT_RENDERER, zNear, zFar) + +#define glDisable(cap) \ + (*(CGL_MACRO_CONTEXT)->disp.disable)(CGL_MACRO_CONTEXT_RENDERER, cap) + +#define glDisableClientState(array) \ + (*(CGL_MACRO_CONTEXT)->disp.disable_client_state)(CGL_MACRO_CONTEXT_RENDERER, array) + +#define glDrawArrays(mode, first, count) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_arrays)(CGL_MACRO_CONTEXT_RENDERER, mode, first, count) + +#define glDrawBuffer(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_buffer)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glDrawElements(mode, count, type, indices) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_elements)(CGL_MACRO_CONTEXT_RENDERER, mode, count, type, indices) + +#define glDrawPixels(width, height, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_pixels)(CGL_MACRO_CONTEXT_RENDERER, width, height, format, type, pixels) + +#define glEdgeFlag(flag) \ + (*(CGL_MACRO_CONTEXT)->disp.edge_flag)(CGL_MACRO_CONTEXT_RENDERER, flag) + +#define glEdgeFlagPointer(stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.edge_flag_pointer)(CGL_MACRO_CONTEXT_RENDERER, stride, pointer) + +#define glEdgeFlagv(flag) \ + (*(CGL_MACRO_CONTEXT)->disp.edge_flagv)(CGL_MACRO_CONTEXT_RENDERER, flag) + +#define glEnable(cap) \ + (*(CGL_MACRO_CONTEXT)->disp.enable)(CGL_MACRO_CONTEXT_RENDERER, cap) + +#define glEnableClientState(array) \ + (*(CGL_MACRO_CONTEXT)->disp.enable_client_state)(CGL_MACRO_CONTEXT_RENDERER, array) + +#define glEnd() \ + (*(CGL_MACRO_CONTEXT)->disp.end)(CGL_MACRO_CONTEXT_RENDERER) + +#define glEndList() \ + (*(CGL_MACRO_CONTEXT)->disp.end_list)(CGL_MACRO_CONTEXT_RENDERER) + +#define glEvalCoord1d(u) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord1d)(CGL_MACRO_CONTEXT_RENDERER, u) + +#define glEvalCoord1dv(u) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord1dv)(CGL_MACRO_CONTEXT_RENDERER, u) + +#define glEvalCoord1f(u) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord1f)(CGL_MACRO_CONTEXT_RENDERER, u) + +#define glEvalCoord1fv(u) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord1fv)(CGL_MACRO_CONTEXT_RENDERER, u) + +#define glEvalCoord2d(u, v) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord2d)(CGL_MACRO_CONTEXT_RENDERER, u, v) + +#define glEvalCoord2dv(u) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord2dv)(CGL_MACRO_CONTEXT_RENDERER, u) + +#define glEvalCoord2f(u, v) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord2f)(CGL_MACRO_CONTEXT_RENDERER, u, v) + +#define glEvalCoord2fv(u) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord2fv)(CGL_MACRO_CONTEXT_RENDERER, u) + +#define glEvalMesh1(mode, i1, i2) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_mesh1)(CGL_MACRO_CONTEXT_RENDERER, mode, i1, i2) + +#define glEvalMesh2(mode, i1, i2, j1, j2) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_mesh2)(CGL_MACRO_CONTEXT_RENDERER, mode, i1, i2, j1, j2) + +#define glEvalPoint1(i) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_point1)(CGL_MACRO_CONTEXT_RENDERER, i) + +#define glEvalPoint2(i, j) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_point2)(CGL_MACRO_CONTEXT_RENDERER, i, j) + +#define glFeedbackBuffer(size, type, buffer) \ + (*(CGL_MACRO_CONTEXT)->disp.feedback_buffer)(CGL_MACRO_CONTEXT_RENDERER, size, type, buffer) + +#define glFinish() \ + (*(CGL_MACRO_CONTEXT)->disp.finish)(CGL_MACRO_CONTEXT_RENDERER) + +#define glFlush() \ + (*(CGL_MACRO_CONTEXT)->disp.flush)(CGL_MACRO_CONTEXT_RENDERER) + +#define glFogf(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.fogf)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glFogfv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.fogfv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glFogi(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.fogi)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glFogiv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.fogiv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glFrontFace(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.front_face)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glFrustum(left, right, bottom, top, zNear, zFar) \ + (*(CGL_MACRO_CONTEXT)->disp.frustum)(CGL_MACRO_CONTEXT_RENDERER, left, right, bottom, top, zNear, zFar) + +#define glGenLists(range) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_lists)(CGL_MACRO_CONTEXT_RENDERER, range) + +#define glGenTextures(n, textures) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_textures)(CGL_MACRO_CONTEXT_RENDERER, n, textures) + +#define glGetBooleanv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_booleanv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glGetClipPlane(plane, equation) \ + (*(CGL_MACRO_CONTEXT)->disp.get_clip_plane)(CGL_MACRO_CONTEXT_RENDERER, plane, equation) + +#define glGetDoublev(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_doublev)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glGetError() \ + (*(CGL_MACRO_CONTEXT)->disp.get_error)(CGL_MACRO_CONTEXT_RENDERER) + +#define glGetFloatv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_floatv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glGetIntegerv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_integerv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glGetLightfv(light, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_lightfv)(CGL_MACRO_CONTEXT_RENDERER, light, pname, params) + +#define glGetLightiv(light, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_lightiv)(CGL_MACRO_CONTEXT_RENDERER, light, pname, params) + +#define glGetMapdv(target, query, v) \ + (*(CGL_MACRO_CONTEXT)->disp.get_mapdv)(CGL_MACRO_CONTEXT_RENDERER, target, query, v) + +#define glGetMapfv(target, query, v) \ + (*(CGL_MACRO_CONTEXT)->disp.get_mapfv)(CGL_MACRO_CONTEXT_RENDERER, target, query, v) + +#define glGetMapiv(target, query, v) \ + (*(CGL_MACRO_CONTEXT)->disp.get_mapiv)(CGL_MACRO_CONTEXT_RENDERER, target, query, v) + +#define glGetMaterialfv(face, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_materialfv)(CGL_MACRO_CONTEXT_RENDERER, face, pname, params) + +#define glGetMaterialiv(face, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_materialiv)(CGL_MACRO_CONTEXT_RENDERER, face, pname, params) + +#define glGetPixelMapfv(map, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_pixel_mapfv)(CGL_MACRO_CONTEXT_RENDERER, map, values) + +#define glGetPixelMapuiv(map, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_pixel_mapuiv)(CGL_MACRO_CONTEXT_RENDERER, map, values) + +#define glGetPixelMapusv(map, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_pixel_mapusv)(CGL_MACRO_CONTEXT_RENDERER, map, values) + +#define glGetPointerv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_pointerv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glGetPolygonStipple(mask) \ + (*(CGL_MACRO_CONTEXT)->disp.get_polygon_stipple)(CGL_MACRO_CONTEXT_RENDERER, mask) + +#define glGetString(name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_string)(CGL_MACRO_CONTEXT_RENDERER, name) + +#define glGetTexEnvfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_envfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetTexEnviv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_enviv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetTexGendv(coord, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_gendv)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, params) + +#define glGetTexGenfv(coord, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_genfv)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, params) + +#define glGetTexGeniv(coord, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_geniv)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, params) + +#define glGetTexImage(target, level, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_image)(CGL_MACRO_CONTEXT_RENDERER, target, level, format, type, pixels) + +#define glGetTexLevelParameterfv(target, level, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_level_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, level, pname, params) + +#define glGetTexLevelParameteriv(target, level, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_level_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, level, pname, params) + +#define glGetTexParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetTexParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glHint(target, mode) \ + (*(CGL_MACRO_CONTEXT)->disp.hint)(CGL_MACRO_CONTEXT_RENDERER, target, mode) + +#define glIndexMask(mask) \ + (*(CGL_MACRO_CONTEXT)->disp.index_mask)(CGL_MACRO_CONTEXT_RENDERER, mask) + +#define glIndexPointer(type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.index_pointer)(CGL_MACRO_CONTEXT_RENDERER, type, stride, pointer) + +#define glIndexd(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexd)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexdv(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexdv)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexf(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexf)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexfv(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexfv)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexi(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexi)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexiv(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexiv)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexs(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexs)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexsv(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexsv)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexub(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexub)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexubv(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexubv)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glInitNames() \ + (*(CGL_MACRO_CONTEXT)->disp.init_names)(CGL_MACRO_CONTEXT_RENDERER) + +#define glInterleavedArrays(format, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.interleaved_arrays)(CGL_MACRO_CONTEXT_RENDERER, format, stride, pointer) + +#define glIsEnabled(cap) \ + (*(CGL_MACRO_CONTEXT)->disp.is_enabled)(CGL_MACRO_CONTEXT_RENDERER, cap) + +#define glIsList(list) \ + (*(CGL_MACRO_CONTEXT)->disp.is_list)(CGL_MACRO_CONTEXT_RENDERER, list) + +#define glIsTexture(texture) \ + (*(CGL_MACRO_CONTEXT)->disp.is_texture)(CGL_MACRO_CONTEXT_RENDERER, texture) + +#define glLightModelf(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.light_modelf)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glLightModelfv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.light_modelfv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glLightModeli(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.light_modeli)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glLightModeliv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.light_modeliv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glLightf(light, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.lightf)(CGL_MACRO_CONTEXT_RENDERER, light, pname, param) + +#define glLightfv(light, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.lightfv)(CGL_MACRO_CONTEXT_RENDERER, light, pname, params) + +#define glLighti(light, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.lighti)(CGL_MACRO_CONTEXT_RENDERER, light, pname, param) + +#define glLightiv(light, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.lightiv)(CGL_MACRO_CONTEXT_RENDERER, light, pname, params) + +#define glLineStipple(factor, pattern) \ + (*(CGL_MACRO_CONTEXT)->disp.line_stipple)(CGL_MACRO_CONTEXT_RENDERER, factor, pattern) + +#define glLineWidth(width) \ + (*(CGL_MACRO_CONTEXT)->disp.line_width)(CGL_MACRO_CONTEXT_RENDERER, width) + +#define glListBase(base) \ + (*(CGL_MACRO_CONTEXT)->disp.list_base)(CGL_MACRO_CONTEXT_RENDERER, base) + +#define glLoadIdentity() \ + (*(CGL_MACRO_CONTEXT)->disp.load_identity)(CGL_MACRO_CONTEXT_RENDERER) + +#define glLoadMatrixd(m) \ + (*(CGL_MACRO_CONTEXT)->disp.load_matrixd)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glLoadMatrixf(m) \ + (*(CGL_MACRO_CONTEXT)->disp.load_matrixf)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glLoadName(name) \ + (*(CGL_MACRO_CONTEXT)->disp.load_name)(CGL_MACRO_CONTEXT_RENDERER, name) + +#define glLogicOp(opcode) \ + (*(CGL_MACRO_CONTEXT)->disp.logic_op)(CGL_MACRO_CONTEXT_RENDERER, opcode) + +#define glMap1d(target, u1, u2, stride, order, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map1d)(CGL_MACRO_CONTEXT_RENDERER, target, u1, u2, stride, order, points) + +#define glMap1f(target, u1, u2, stride, order, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map1f)(CGL_MACRO_CONTEXT_RENDERER, target, u1, u2, stride, order, points) + +#define glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map2d)(CGL_MACRO_CONTEXT_RENDERER, target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) + +#define glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map2f)(CGL_MACRO_CONTEXT_RENDERER, target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) + +#define glMapGrid1d(un, u1, u2) \ + (*(CGL_MACRO_CONTEXT)->disp.map_grid1d)(CGL_MACRO_CONTEXT_RENDERER, un, u1, u2) + +#define glMapGrid1f(un, u1, u2) \ + (*(CGL_MACRO_CONTEXT)->disp.map_grid1f)(CGL_MACRO_CONTEXT_RENDERER, un, u1, u2) + +#define glMapGrid2d(un, u1, u2, vn, v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.map_grid2d)(CGL_MACRO_CONTEXT_RENDERER, un, u1, u2, vn, v1, v2) + +#define glMapGrid2f(un, u1, u2, vn, v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.map_grid2f)(CGL_MACRO_CONTEXT_RENDERER, un, u1, u2, vn, v1, v2) + +#define glMaterialf(face, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.materialf)(CGL_MACRO_CONTEXT_RENDERER, face, pname, param) + +#define glMaterialfv(face, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.materialfv)(CGL_MACRO_CONTEXT_RENDERER, face, pname, params) + +#define glMateriali(face, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.materiali)(CGL_MACRO_CONTEXT_RENDERER, face, pname, param) + +#define glMaterialiv(face, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.materialiv)(CGL_MACRO_CONTEXT_RENDERER, face, pname, params) + +#define glMatrixMode(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.matrix_mode)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glMultMatrixd(m) \ + (*(CGL_MACRO_CONTEXT)->disp.mult_matrixd)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glMultMatrixf(m) \ + (*(CGL_MACRO_CONTEXT)->disp.mult_matrixf)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glNewList(list, mode) \ + (*(CGL_MACRO_CONTEXT)->disp.new_list)(CGL_MACRO_CONTEXT_RENDERER, list, mode) + +#define glNormal3b(nx, ny, nz) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3b)(CGL_MACRO_CONTEXT_RENDERER, nx, ny, nz) + +#define glNormal3bv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3bv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glNormal3d(nx, ny, nz) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3d)(CGL_MACRO_CONTEXT_RENDERER, nx, ny, nz) + +#define glNormal3dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glNormal3f(nx, ny, nz) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3f)(CGL_MACRO_CONTEXT_RENDERER, nx, ny, nz) + +#define glNormal3fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glNormal3i(nx, ny, nz) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3i)(CGL_MACRO_CONTEXT_RENDERER, nx, ny, nz) + +#define glNormal3iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glNormal3s(nx, ny, nz) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3s)(CGL_MACRO_CONTEXT_RENDERER, nx, ny, nz) + +#define glNormal3sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glNormalPointer(type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.normal_pointer)(CGL_MACRO_CONTEXT_RENDERER, type, stride, pointer) + +#define glOrtho(left, right, bottom, top, zNear, zFar) \ + (*(CGL_MACRO_CONTEXT)->disp.ortho)(CGL_MACRO_CONTEXT_RENDERER, left, right, bottom, top, zNear, zFar) + +#define glPassThrough(token) \ + (*(CGL_MACRO_CONTEXT)->disp.pass_through)(CGL_MACRO_CONTEXT_RENDERER, token) + +#define glPixelMapfv(map, mapsize, values) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_mapfv)(CGL_MACRO_CONTEXT_RENDERER, map, mapsize, values) + +#define glPixelMapuiv(map, mapsize, values) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_mapuiv)(CGL_MACRO_CONTEXT_RENDERER, map, mapsize, values) + +#define glPixelMapusv(map, mapsize, values) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_mapusv)(CGL_MACRO_CONTEXT_RENDERER, map, mapsize, values) + +#define glPixelStoref(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_storef)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glPixelStorei(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_storei)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glPixelTransferf(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_transferf)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glPixelTransferi(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_transferi)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glPixelZoom(xfactor, yfactor) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_zoom)(CGL_MACRO_CONTEXT_RENDERER, xfactor, yfactor) + +#define glPointSize(size) \ + (*(CGL_MACRO_CONTEXT)->disp.point_size)(CGL_MACRO_CONTEXT_RENDERER, size) + +#define glPolygonMode(face, mode) \ + (*(CGL_MACRO_CONTEXT)->disp.polygon_mode)(CGL_MACRO_CONTEXT_RENDERER, face, mode) + +#define glPolygonOffset(factor, units) \ + (*(CGL_MACRO_CONTEXT)->disp.polygon_offset)(CGL_MACRO_CONTEXT_RENDERER, factor, units) + +#define glPolygonStipple(mask) \ + (*(CGL_MACRO_CONTEXT)->disp.polygon_stipple)(CGL_MACRO_CONTEXT_RENDERER, mask) + +#define glPopAttrib() \ + (*(CGL_MACRO_CONTEXT)->disp.pop_attrib)(CGL_MACRO_CONTEXT_RENDERER) + +#define glPopClientAttrib() \ + (*(CGL_MACRO_CONTEXT)->disp.pop_client_attrib)(CGL_MACRO_CONTEXT_RENDERER) + +#define glPopMatrix() \ + (*(CGL_MACRO_CONTEXT)->disp.pop_matrix)(CGL_MACRO_CONTEXT_RENDERER) + +#define glPopName() \ + (*(CGL_MACRO_CONTEXT)->disp.pop_name)(CGL_MACRO_CONTEXT_RENDERER) + +#define glPrioritizeTextures(n, textures, priorities) \ + (*(CGL_MACRO_CONTEXT)->disp.prioritize_textures)(CGL_MACRO_CONTEXT_RENDERER, n, textures, priorities) + +#define glPushAttrib(mask) \ + (*(CGL_MACRO_CONTEXT)->disp.push_attrib)(CGL_MACRO_CONTEXT_RENDERER, mask) + +#define glPushClientAttrib(mask) \ + (*(CGL_MACRO_CONTEXT)->disp.push_client_attrib)(CGL_MACRO_CONTEXT_RENDERER, mask) + +#define glPushMatrix() \ + (*(CGL_MACRO_CONTEXT)->disp.push_matrix)(CGL_MACRO_CONTEXT_RENDERER) + +#define glPushName(name) \ + (*(CGL_MACRO_CONTEXT)->disp.push_name)(CGL_MACRO_CONTEXT_RENDERER, name) + +#define glRasterPos2d(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2d)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glRasterPos2dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos2f(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2f)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glRasterPos2fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos2i(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2i)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glRasterPos2iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos2s(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2s)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glRasterPos2sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos3d(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3d)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glRasterPos3dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos3f(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3f)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glRasterPos3fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos3i(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3i)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glRasterPos3iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos3s(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3s)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glRasterPos3sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos4d(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4d)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glRasterPos4dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos4f(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4f)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glRasterPos4fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos4i(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4i)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glRasterPos4iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos4s(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4s)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glRasterPos4sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glReadBuffer(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.read_buffer)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glReadPixels(x, y, width, height, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.read_pixels)(CGL_MACRO_CONTEXT_RENDERER, x, y, width, height, format, type, pixels) + +#define glRectd(x1, y1, x2, y2) \ + (*(CGL_MACRO_CONTEXT)->disp.rectd)(CGL_MACRO_CONTEXT_RENDERER, x1, y1, x2, y2) + +#define glRectdv(v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.rectdv)(CGL_MACRO_CONTEXT_RENDERER, v1, v2) + +#define glRectf(x1, y1, x2, y2) \ + (*(CGL_MACRO_CONTEXT)->disp.rectf)(CGL_MACRO_CONTEXT_RENDERER, x1, y1, x2, y2) + +#define glRectfv(v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.rectfv)(CGL_MACRO_CONTEXT_RENDERER, v1, v2) + +#define glRecti(x1, y1, x2, y2) \ + (*(CGL_MACRO_CONTEXT)->disp.recti)(CGL_MACRO_CONTEXT_RENDERER, x1, y1, x2, y2) + +#define glRectiv(v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.rectiv)(CGL_MACRO_CONTEXT_RENDERER, v1, v2) + +#define glRects(x1, y1, x2, y2) \ + (*(CGL_MACRO_CONTEXT)->disp.rects)(CGL_MACRO_CONTEXT_RENDERER, x1, y1, x2, y2) + +#define glRectsv(v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.rectsv)(CGL_MACRO_CONTEXT_RENDERER, v1, v2) + +#define glRenderMode(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.render_mode)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glRotated(angle, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.rotated)(CGL_MACRO_CONTEXT_RENDERER, angle, x, y, z) + +#define glRotatef(angle, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.rotatef)(CGL_MACRO_CONTEXT_RENDERER, angle, x, y, z) + +#define glScaled(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.scaled)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glScalef(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.scalef)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glScissor(x, y, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.scissor)(CGL_MACRO_CONTEXT_RENDERER, x, y, width, height) + +#define glSelectBuffer(size, buffer) \ + (*(CGL_MACRO_CONTEXT)->disp.select_buffer)(CGL_MACRO_CONTEXT_RENDERER, size, buffer) + +#define glShadeModel(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.shade_model)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glStencilFunc(func, ref, mask) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_func)(CGL_MACRO_CONTEXT_RENDERER, func, ref, mask) + +#define glStencilMask(mask) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_mask)(CGL_MACRO_CONTEXT_RENDERER, mask) + +#define glStencilOp(fail, zfail, zpass) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_op)(CGL_MACRO_CONTEXT_RENDERER, fail, zfail, zpass) + +#define glTexCoord1d(s) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1d)(CGL_MACRO_CONTEXT_RENDERER, s) + +#define glTexCoord1dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord1f(s) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1f)(CGL_MACRO_CONTEXT_RENDERER, s) + +#define glTexCoord1fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord1i(s) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1i)(CGL_MACRO_CONTEXT_RENDERER, s) + +#define glTexCoord1iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord1s(s) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1s)(CGL_MACRO_CONTEXT_RENDERER, s) + +#define glTexCoord1sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord2d(s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2d)(CGL_MACRO_CONTEXT_RENDERER, s, t) + +#define glTexCoord2dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord2f(s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2f)(CGL_MACRO_CONTEXT_RENDERER, s, t) + +#define glTexCoord2fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord2i(s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2i)(CGL_MACRO_CONTEXT_RENDERER, s, t) + +#define glTexCoord2iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord2s(s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2s)(CGL_MACRO_CONTEXT_RENDERER, s, t) + +#define glTexCoord2sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord3d(s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3d)(CGL_MACRO_CONTEXT_RENDERER, s, t, r) + +#define glTexCoord3dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord3f(s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3f)(CGL_MACRO_CONTEXT_RENDERER, s, t, r) + +#define glTexCoord3fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord3i(s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3i)(CGL_MACRO_CONTEXT_RENDERER, s, t, r) + +#define glTexCoord3iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord3s(s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3s)(CGL_MACRO_CONTEXT_RENDERER, s, t, r) + +#define glTexCoord3sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord4d(s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4d)(CGL_MACRO_CONTEXT_RENDERER, s, t, r, q) + +#define glTexCoord4dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord4f(s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4f)(CGL_MACRO_CONTEXT_RENDERER, s, t, r, q) + +#define glTexCoord4fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord4i(s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4i)(CGL_MACRO_CONTEXT_RENDERER, s, t, r, q) + +#define glTexCoord4iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord4s(s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4s)(CGL_MACRO_CONTEXT_RENDERER, s, t, r, q) + +#define glTexCoord4sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoordPointer(size, type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord_pointer)(CGL_MACRO_CONTEXT_RENDERER, size, type, stride, pointer) + +#define glTexEnvf(target, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_envf)(CGL_MACRO_CONTEXT_RENDERER, target, pname, param) + +#define glTexEnvfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_envfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glTexEnvi(target, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_envi)(CGL_MACRO_CONTEXT_RENDERER, target, pname, param) + +#define glTexEnviv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_enviv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glTexGend(coord, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_gend)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, param) + +#define glTexGendv(coord, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_gendv)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, params) + +#define glTexGenf(coord, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_genf)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, param) + +#define glTexGenfv(coord, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_genfv)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, params) + +#define glTexGeni(coord, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_geni)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, param) + +#define glTexGeniv(coord, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_geniv)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, params) + +#define glTexImage1D(target, level, internalformat, width, border, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_image1D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalformat, width, border, format, type, pixels) + +#define glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_image2D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalformat, width, height, border, format, type, pixels) + +#define glTexParameterf(target, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_parameterf)(CGL_MACRO_CONTEXT_RENDERER, target, pname, param) + +#define glTexParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glTexParameteri(target, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_parameteri)(CGL_MACRO_CONTEXT_RENDERER, target, pname, param) + +#define glTexParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glTexSubImage1D(target, level, xoffset, width, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_sub_image1D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, width, format, type, pixels) + +#define glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_sub_image2D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, yoffset, width, height, format, type, pixels) + +#define glTranslated(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.translated)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glTranslatef(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.translatef)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glVertex2d(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2d)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glVertex2dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex2f(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2f)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glVertex2fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex2i(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2i)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glVertex2iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex2s(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2s)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glVertex2sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex3d(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3d)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glVertex3dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex3f(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3f)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glVertex3fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex3i(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3i)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glVertex3iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex3s(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3s)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glVertex3sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex4d(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4d)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glVertex4dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex4f(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4f)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glVertex4fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex4i(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4i)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glVertex4iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex4s(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4s)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glVertex4sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertexPointer(size, type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_pointer)(CGL_MACRO_CONTEXT_RENDERER, size, type, stride, pointer) + +#define glViewport(x, y, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.viewport)(CGL_MACRO_CONTEXT_RENDERER, x, y, width, height) + +/****************** OpenGL 1.2 ************************************/ + +#define glBlendColor(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.blend_color)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glBlendEquation(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.blend_equation)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glDrawRangeElements(mode, start, end, count, type, indices) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_range_elements)(CGL_MACRO_CONTEXT_RENDERER, mode, start, end, count, type, indices) + +#define glTexImage3D(target, level, internalformat, width, height, depth, border, format, type, data) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_image3D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalformat, width, height, depth, border, format, type, data) + +#define glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_sub_image3D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels) + +#define glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_tex_sub_image3D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, yoffset, zoffset, x, y, width, height) + +/****************** OpenGL 1.2 Imaging Subset *********************/ + +#define glColorTable(target, internalformat, width, format, type, table) \ + (*(CGL_MACRO_CONTEXT)->disp.color_table)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, width, format, type, table) + +#define glColorTableParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.color_table_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glColorTableParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.color_table_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glCopyColorTable(target, internalformat, x, y, width) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_color_table)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, x, y, width) + +#define glGetColorTable(target, format, type, table) \ + (*(CGL_MACRO_CONTEXT)->disp.get_color_table)(CGL_MACRO_CONTEXT_RENDERER, target, format, type, table) + +#define glGetColorTableParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_color_table_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetColorTableParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_color_table_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glColorSubTable(target, start, count, format, type, data) \ + (*(CGL_MACRO_CONTEXT)->disp.color_sub_table)(CGL_MACRO_CONTEXT_RENDERER, target, start, count, format, type, data) + +#define glCopyColorSubTable(target, start, x, y, width) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_color_sub_table)(CGL_MACRO_CONTEXT_RENDERER, target, start, x, y, width) + +#define glConvolutionFilter1D(target, internalformat, width, format, type, image) \ + (*(CGL_MACRO_CONTEXT)->disp.convolution_filter1D)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, width, format, type, image) + +#define glConvolutionFilter2D(target, internalformat, width, height, format, type, image) \ + (*(CGL_MACRO_CONTEXT)->disp.convolution_filter2D)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, width, height, format, type, image) + +#define glConvolutionParameterf(target, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.convolution_parameterf)(CGL_MACRO_CONTEXT_RENDERER, target, pname, param) + +#define glConvolutionParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.convolution_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glConvolutionParameteri(target, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.convolution_parameteri)(CGL_MACRO_CONTEXT_RENDERER, target, pname, param) + +#define glConvolutionParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.convolution_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glCopyConvolutionFilter1D(target, internalformat, x, y, width) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_convolution_filter1D)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, x, y, width) + +#define glCopyConvolutionFilter2D(target, internalformat, x, y, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_convolution_filter2D)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, x, y, width, height) + +#define glGetConvolutionFilter(target, format, type, image) \ + (*(CGL_MACRO_CONTEXT)->disp.get_convolution_filter)(CGL_MACRO_CONTEXT_RENDERER, target, format, type, image) + +#define glGetConvolutionParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_convolution_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetConvolutionParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_convolution_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetSeparableFilter(target, format, type, row, column, span) \ + (*(CGL_MACRO_CONTEXT)->disp.get_separable_filter)(CGL_MACRO_CONTEXT_RENDERER, target, format, type, row, column, span) + +#define glSeparableFilter2D(target, internalformat, width, height, format, type, row, column) \ + (*(CGL_MACRO_CONTEXT)->disp.separable_filter2D)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, width, height, format, type, row, column) + +#define glGetHistogram(target, reset, format, type, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_histogram)(CGL_MACRO_CONTEXT_RENDERER, target, reset, format, type, values) + +#define glGetHistogramParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_histogram_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetHistogramParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_histogram_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetMinmax(target, reset, format, type, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_minmax)(CGL_MACRO_CONTEXT_RENDERER, target, reset, format, type, values) + +#define glGetMinmaxParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_minmax_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetMinmaxParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_minmax_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glHistogram(target, width, internalformat, sink) \ + (*(CGL_MACRO_CONTEXT)->disp.histogram)(CGL_MACRO_CONTEXT_RENDERER, target, width, internalformat, sink) + +#define glMinmax(target, internalformat, sink) \ + (*(CGL_MACRO_CONTEXT)->disp.minmax)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, sink) + +#define glResetHistogram(target) \ + (*(CGL_MACRO_CONTEXT)->disp.reset_histogram)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glResetMinmax(target) \ + (*(CGL_MACRO_CONTEXT)->disp.reset_minmax)(CGL_MACRO_CONTEXT_RENDERER, target) + +/****************** OpenGL 1.3 ************************************/ + +#define glClientActiveTexture(target) \ + (*(CGL_MACRO_CONTEXT)->disp.client_active_texture)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glActiveTexture(target) \ + (*(CGL_MACRO_CONTEXT)->disp.active_texture)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glMultiTexCoord1d(target, s) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1d)(CGL_MACRO_CONTEXT_RENDERER, target, s) + +#define glMultiTexCoord1dv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1dv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord1f(target, s) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1f)(CGL_MACRO_CONTEXT_RENDERER, target, s) + +#define glMultiTexCoord1fv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1fv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord1i(target, s) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1i)(CGL_MACRO_CONTEXT_RENDERER, target, s) + +#define glMultiTexCoord1iv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1iv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord1s(target, s) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1s)(CGL_MACRO_CONTEXT_RENDERER, target, s) + +#define glMultiTexCoord1sv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1sv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord2d(target, s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2d)(CGL_MACRO_CONTEXT_RENDERER, target, s, t) + +#define glMultiTexCoord2dv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2dv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord2f(target, s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2f)(CGL_MACRO_CONTEXT_RENDERER, target, s, t) + +#define glMultiTexCoord2fv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2fv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord2i(target, s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2i)(CGL_MACRO_CONTEXT_RENDERER, target, s, t) + +#define glMultiTexCoord2iv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2iv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord2s(target, s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2s)(CGL_MACRO_CONTEXT_RENDERER, target, s, t) + +#define glMultiTexCoord2sv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2sv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord3d(target, s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3d)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r) + +#define glMultiTexCoord3dv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3dv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord3f(target, s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3f)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r) + +#define glMultiTexCoord3fv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3fv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord3i(target, s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3i)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r) + +#define glMultiTexCoord3iv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3iv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord3s(target, s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3s)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r) + +#define glMultiTexCoord3sv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3sv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord4d(target, s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4d)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r, q) + +#define glMultiTexCoord4dv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4dv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord4f(target, s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4f)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r, q) + +#define glMultiTexCoord4fv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4fv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord4i(target, s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4i)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r, q) + +#define glMultiTexCoord4iv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4iv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord4s(target, s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4s)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r, q) + +#define glMultiTexCoord4sv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4sv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glSampleCoverage(value, invert) \ + (*(CGL_MACRO_CONTEXT)->disp.sample_coverage)(CGL_MACRO_CONTEXT_RENDERER, value, invert) + +#define glLoadTransposeMatrixf(m) \ + (*(CGL_MACRO_CONTEXT)->disp.load_transpose_matrixf)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glLoadTransposeMatrixd(m) \ + (*(CGL_MACRO_CONTEXT)->disp.load_transpose_matrixd)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glMultTransposeMatrixf(m) \ + (*(CGL_MACRO_CONTEXT)->disp.mult_transpose_matrixf)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glMultTransposeMatrixd(m) \ + (*(CGL_MACRO_CONTEXT)->disp.mult_transpose_matrixd)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glCompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data) \ + (*(CGL_MACRO_CONTEXT)->disp.compressed_tex_image3D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalformat, width, height, depth, border, imageSize, data) + +#define glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data) \ + (*(CGL_MACRO_CONTEXT)->disp.compressed_tex_image2D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalformat, width, height, border, imageSize, data) + +#define glCompressedTexImage1D(target, level, internalformat, width, border, imageSize, data) \ + (*(CGL_MACRO_CONTEXT)->disp.compressed_tex_image1D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalformat, width, border, imageSize, data) + +#define glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data) \ + (*(CGL_MACRO_CONTEXT)->disp.compressed_tex_sub_image3D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data) + +#define glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data) \ + (*(CGL_MACRO_CONTEXT)->disp.compressed_tex_sub_image2D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, yoffset, width, height, format, imageSize, data) + +#define glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data) \ + (*(CGL_MACRO_CONTEXT)->disp.compressed_tex_sub_image1D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, width, format, imageSize, data) + +#define glGetCompressedTexImage(target, level, img) \ + (*(CGL_MACRO_CONTEXT)->disp.get_compressed_tex_image)(CGL_MACRO_CONTEXT_RENDERER, target, level, img) + +/****************** OpenGL 1.4 ************************************/ + +#define glFogCoordf(coord) \ + (*(CGL_MACRO_CONTEXT)->disp.fog_coordf)(CGL_MACRO_CONTEXT_RENDERER, coord) + +#define glFogCoordfv(coord) \ + (*(CGL_MACRO_CONTEXT)->disp.fog_coordfv)(CGL_MACRO_CONTEXT_RENDERER, coord) + +#define glFogCoordd(coord) \ + (*(CGL_MACRO_CONTEXT)->disp.fog_coordd)(CGL_MACRO_CONTEXT_RENDERER, coord) + +#define glFogCoorddv(coord) \ + (*(CGL_MACRO_CONTEXT)->disp.fog_coorddv)(CGL_MACRO_CONTEXT_RENDERER,coord) + +#define glFogCoordPointer(type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.fog_coord_pointer)(CGL_MACRO_CONTEXT_RENDERER, type, stride, pointer) + +#define glSecondaryColor3b(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3b)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3bv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3bv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColor3d(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3d)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3dv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3dv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColor3f(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3f)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3fv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3fv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColor3i(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3i)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3iv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3iv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColor3s(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3s)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3sv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3sv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColor3ub(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3ub)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3ubv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3ubv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColor3ui(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3ui)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3uiv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3uiv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColor3us(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3us)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3usv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3usv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColorPointer(size, type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color_pointer)(CGL_MACRO_CONTEXT_RENDERER, size, type, stride, pointer) + +#define glPointParameterf(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.point_parameterf)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glPointParameterfv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.point_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glPointParameteri(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.point_parameteri)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glPointParameteriv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.point_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha) \ + (*(CGL_MACRO_CONTEXT)->disp.blend_func_separate)(CGL_MACRO_CONTEXT_RENDERER, sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha) + +#define glMultiDrawArrays(mode, first, count, primcount) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_draw_arrays)(CGL_MACRO_CONTEXT_RENDERER, mode, first, count, primcount) + +#define glMultiDrawElements(mode, count, type, indices, primcount) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_draw_elements)(CGL_MACRO_CONTEXT_RENDERER, mode, count, type, indices, primcount) + +#define glWindowPos2d(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2d)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glWindowPos2dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glWindowPos2f(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2f)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glWindowPos2fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glWindowPos2i(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2i)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glWindowPos2iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glWindowPos2s(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2s)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glWindowPos2sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glWindowPos3d(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3d)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glWindowPos3dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glWindowPos3f(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3f)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glWindowPos3fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glWindowPos3i(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3i)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glWindowPos3iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glWindowPos3s(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3s)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glWindowPos3sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +/****************** OpenGL 1.5 Macros *****************************/ + +#define glGenQueries(n, ids) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_queries)(CGL_MACRO_CONTEXT_RENDERER, n, ids) + +#define glDeleteQueries(n, ids) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_queries)(CGL_MACRO_CONTEXT_RENDERER, n, ids) + +#define glIsQuery(id) \ + (*(CGL_MACRO_CONTEXT)->disp.is_query)(CGL_MACRO_CONTEXT_RENDERER, id) + +#define glBeginQuery(target, id) \ + (*(CGL_MACRO_CONTEXT)->disp.begin_query)(CGL_MACRO_CONTEXT_RENDERER, target, id) + +#define glEndQuery(target) \ + (*(CGL_MACRO_CONTEXT)->disp.end_query)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glGetQueryiv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_queryiv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetQueryObjectiv(id, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_query_objectiv)(CGL_MACRO_CONTEXT_RENDERER, id, pname, params) + +#define glGetQueryObjectuiv(id, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_query_objectuiv)(CGL_MACRO_CONTEXT_RENDERER, id, pname, params) + +#define glBindBuffer(target, buffer) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_buffer)(CGL_MACRO_CONTEXT_RENDERER, target, buffer) + +#define glDeleteBuffers(n, buffers) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_buffers)(CGL_MACRO_CONTEXT_RENDERER, n, buffers) + +#define glGenBuffers(n, buffers) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_buffers)(CGL_MACRO_CONTEXT_RENDERER, n, buffers) + +#define glIsBuffer(buffer) \ + (*(CGL_MACRO_CONTEXT)->disp.is_buffer)(CGL_MACRO_CONTEXT_RENDERER, buffer) + +#define glBufferData(target, size, data, usage) \ + (*(CGL_MACRO_CONTEXT)->disp.buffer_data)(CGL_MACRO_CONTEXT_RENDERER, target, size, data, usage) + +#define glBufferSubData(target, offset, size, data) \ + (*(CGL_MACRO_CONTEXT)->disp.buffer_sub_data)(CGL_MACRO_CONTEXT_RENDERER, target, offset, size, data) + +#define glGetBufferSubData(target, offset, size, data) \ + (*(CGL_MACRO_CONTEXT)->disp.get_buffer_sub_data)(CGL_MACRO_CONTEXT_RENDERER, target, offset, size, data) + +#define glMapBuffer(target, access) \ + (*(CGL_MACRO_CONTEXT)->disp.map_buffer)(CGL_MACRO_CONTEXT_RENDERER, target, access) + +#define glUnmapBuffer(target) \ + (*(CGL_MACRO_CONTEXT)->disp.unmap_buffer)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glGetBufferParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_buffer_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetBufferPointerv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_buffer_pointerv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +/****************** OpenGL 2.0 Macros *****************************/ + +#define glDrawBuffers(n, bufs) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_buffers_ARB)(CGL_MACRO_CONTEXT_RENDERER, n, bufs) + +#define glVertexAttrib1d(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x) + +#define glVertexAttrib1dv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib1f(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x) + +#define glVertexAttrib1fv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib1s(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x) + +#define glVertexAttrib1sv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib2d(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) + +#define glVertexAttrib2dv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib2f(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) + +#define glVertexAttrib2fv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib2s(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) + +#define glVertexAttrib2sv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib3d(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) + +#define glVertexAttrib3dv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib3f(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) + +#define glVertexAttrib3fv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib3s(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) + +#define glVertexAttrib3sv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4Nbv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nbv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4Niv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Niv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4Nsv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nsv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4Nub(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nub_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, x, w) + +#define glVertexAttrib4Nubv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nubv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4Nuiv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nuiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4Nusv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nusv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4bv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4bv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4d(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) + +#define glVertexAttrib4dv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4f(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) + +#define glVertexAttrib4fv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4iv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4s(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) + +#define glVertexAttrib4sv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4ubv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4ubv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4uiv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4uiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4usv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4usv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttribPointer(index, size, type, normalized, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib_pointer_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, size, type, normalized, stride, pointer) + +#define glEnableVertexAttribArray(index) \ + (*(CGL_MACRO_CONTEXT)->disp.enable_vertex_attrib_array_ARB)(CGL_MACRO_CONTEXT_RENDERER, index) + +#define glDisableVertexAttribArray(index) \ + (*(CGL_MACRO_CONTEXT)->disp.disable_vertex_attrib_array_ARB)(CGL_MACRO_CONTEXT_RENDERER, index) + +#define glGetVertexAttribdv(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribdv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) + +#define glGetVertexAttribfv(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) + +#define glGetVertexAttribiv(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) + +#define glGetVertexAttribPointerv(index, pname, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attrib_pointerv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, pointer) + +#define glDeleteShader(shader) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(shader)) + +#define glDetachShader(program, shader) \ + (*(CGL_MACRO_CONTEXT)->disp.detach_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), CGL_HANDLE_ARB(shader)) + +#define glCreateShader(type) \ + (GLuint)((unsigned long)(*(CGL_MACRO_CONTEXT)->disp.create_shader_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, type)) + +#define glShaderSource(shader, count, string, length) \ + (*(CGL_MACRO_CONTEXT)->disp.shader_source_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(shader), count, string, length) + +#define glCompileShader(shader) \ + (*(CGL_MACRO_CONTEXT)->disp.compile_shader_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(shader)) + +#define glCreateProgram() \ + (GLuint)((unsigned long)(*(CGL_MACRO_CONTEXT)->disp.create_program_object_ARB)(CGL_MACRO_CONTEXT_RENDERER)) + +#define glAttachShader(program, shader) \ + (*(CGL_MACRO_CONTEXT)->disp.attach_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), CGL_HANDLE_ARB(shader)) + +#define glLinkProgram(program) \ + (*(CGL_MACRO_CONTEXT)->disp.link_program_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program)) + +#define glUseProgram(program) \ + (*(CGL_MACRO_CONTEXT)->disp.use_program_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program)) + +#define glDeleteProgram(program) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program)) + +#define glValidateProgram(program) \ + (*(CGL_MACRO_CONTEXT)->disp.validate_program_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program)) + +#define glUniform1f(location, v0) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0) + +#define glUniform2f(location, v0, v1) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1) + +#define glUniform3f(location, v0, v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2) + +#define glUniform4f(location, v0, v1, v2, v3) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2, v3) + +#define glUniform1i(location, v0) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0) + +#define glUniform2i(location, v0, v1) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1) + +#define glUniform3i(location, v0, v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2) + +#define glUniform4i(location, v0, v1, v2, v3) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2, v3) + +#define glUniform1fv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform2fv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform3fv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform4fv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform1iv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform2iv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform3iv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform4iv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniformMatrix2fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix2fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix3fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix3fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix4fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glIsShader(shader) \ + (*(CGL_MACRO_CONTEXT)->disp.is_shader)(CGL_MACRO_CONTEXT_RENDERER, shader) + +#define glIsProgram(program) \ + (*(CGL_MACRO_CONTEXT)->disp.is_program)(CGL_MACRO_CONTEXT_RENDERER, program) + +#define glGetShaderiv(shader, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_shaderiv)(CGL_MACRO_CONTEXT_RENDERER, shader, pname, params) + +#define glGetProgramiv(program, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_programiv)(CGL_MACRO_CONTEXT_RENDERER, program, pname, params) + +#define glGetAttachedShaders(program, maxCount, count, shaders) \ + (*(CGL_MACRO_CONTEXT)->disp.get_attached_shaders)(CGL_MACRO_CONTEXT_RENDERER, program, maxCount, count, shaders) + +#define glGetShaderInfoLog(shader, bufSize, length, infoLog) \ + (*(CGL_MACRO_CONTEXT)->disp.get_shader_info_log)(CGL_MACRO_CONTEXT_RENDERER, shader, bufSize, length, infoLog) + +#define glGetProgramInfoLog(program, bufSize, length, infoLog) \ + (*(CGL_MACRO_CONTEXT)->disp.get_program_info_log)(CGL_MACRO_CONTEXT_RENDERER, program, bufSize, length, infoLog) + +#define glGetUniformLocation(program, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniform_location_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), name) + +#define glGetActiveUniform(program, index, bufSize, length, size, type, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_active_uniform_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), index, bufSize, length, size, type, name) + +#define glGetUniformfv(program, location, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniformfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), location, params) + +#define glGetUniformiv(program, location, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniformiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), location, params) + +#define glGetShaderSource(shader, bufSize, length, source) \ + (*(CGL_MACRO_CONTEXT)->disp.get_shader_source_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(shader), bufSize, length, source) + +#define glBindAttribLocation(program, index, name) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_attrib_location_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), index, name) + +#define glGetActiveAttrib(program, index, bufSize, length, size, type, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_active_attrib_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), index, bufSize, length, size, type, name) + +#define glGetAttribLocation(program, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_attrib_location_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), name) + +#define glStencilFuncSeparate(face, func, ref, mask) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_func_separate)(CGL_MACRO_CONTEXT_RENDERER, face, func, ref, mask) + +#define glStencilOpSeparate(face, fail, zfail, zpass) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_op_separate_ATI)(CGL_MACRO_CONTEXT_RENDERER, face, fail, zfail, zpass) + +#define glStencilMaskSeparate(face, mask) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_mask_separate)(CGL_MACRO_CONTEXT_RENDERER, face, mask) + +#define glBlendEquationSeparate glBlendEquationSeparateEXT + +/****************** OpenGL 2.1 Macros *****************************/ + +#define glUniformMatrix2x3fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix2x3fv)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix3x2fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix3x2fv)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix2x4fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix2x4fv)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix4x2fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix4x2fv)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix3x4fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix3x4fv)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix4x3fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix4x3fv)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +/****************** OpenGL 3.0 Macros *****************************/ + +#define glColorMaski glColorMaskIndexedEXT +#define glGetBooleani_v glGetBooleanIndexedvEXT +#define glGetIntegeri_v glGetIntegerIndexedvEXT +#define glEnablei glEnableIndexedEXT +#define glDisablei glDisableIndexedEXT +#define glIsEnabledi glIsEnabledIndexedEXT + +#define glBeginTransformFeedback glBeginTransformFeedbackEXT +#define glEndTransformFeedback glEndTransformFeedbackEXT +#define glBindBufferRange glBindBufferRangeEXT +#define glBindBufferBase glBindBufferBaseEXT +#define glTransformFeedbackVaryings glTransformFeedbackVaryingsEXT +#define glGetTransformFeedbackVarying glGetTransformFeedbackVaryingEXT + +#define glClampColor glClampColorARB + +#define glBeginConditionalRender glBeginConditionalRenderNV +#define glEndConditionalRender glEndConditionalRenderNV + +#define glVertexAttribIPointer glVertexAttribIPointerEXT +#define glGetVertexAttribIiv glGetVertexAttribIivEXT +#define glGetVertexAttribIuiv glGetVertexAttribIuivEXT +#define glVertexAttribI1i glVertexAttribI1iEXT +#define glVertexAttribI2i glVertexAttribI2iEXT +#define glVertexAttribI3i glVertexAttribI3iEXT +#define glVertexAttribI4i glVertexAttribI4iEXT +#define glVertexAttribI1ui glVertexAttribI1uiEXT +#define glVertexAttribI2ui glVertexAttribI2uiEXT +#define glVertexAttribI3ui glVertexAttribI3uiEXT +#define glVertexAttribI4ui glVertexAttribI4uiEXT +#define glVertexAttribI1iv glVertexAttribI1ivEXT +#define glVertexAttribI2iv glVertexAttribI2ivEXT +#define glVertexAttribI3iv glVertexAttribI3ivEXT +#define glVertexAttribI4iv glVertexAttribI4ivEXT +#define glVertexAttribI1uiv glVertexAttribI1uivEXT +#define glVertexAttribI2uiv glVertexAttribI2uivEXT +#define glVertexAttribI3uiv glVertexAttribI3uivEXT +#define glVertexAttribI4uiv glVertexAttribI4uivEXT +#define glVertexAttribI4bv glVertexAttribI4bvEXT +#define glVertexAttribI4sv glVertexAttribI4svEXT +#define glVertexAttribI4ubv glVertexAttribI4ubvEXT +#define glVertexAttribI4usv glVertexAttribI4usvEXT +#define glGetUniformuiv glGetUniformuivEXT +#define glBindFragDataLocation glBindFragDataLocationEXT +#define glGetFragDataLocation glGetFragDataLocationEXT +#define glUniform1ui glUniform1uiEXT +#define glUniform2ui glUniform2uiEXT +#define glUniform3ui glUniform3uiEXT +#define glUniform4ui glUniform4uiEXT +#define glUniform1uiv glUniform1uivEXT +#define glUniform2uiv glUniform2uivEXT +#define glUniform3uiv glUniform3uivEXT +#define glUniform4uiv glUniform4uivEXT + +#define glTexParameterIiv glTexParameterIivEXT +#define glTexParameterIuiv glTexParameterIuivEXT +#define glGetTexParameterIiv glGetTexParameterIivEXT +#define glGetTexParameterIuiv glGetTexParameterIuivEXT + +#define glClearBufferiv(buffer, drawbuffer, value) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_bufferiv)(CGL_MACRO_CONTEXT_RENDERER, buffer, drawbuffer, value) + +#define glClearBufferuiv(buffer, drawbuffer, value) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_bufferuiv)(CGL_MACRO_CONTEXT_RENDERER, buffer, drawbuffer, value) + +#define glClearBufferfv(buffer, drawbuffer, value) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_bufferfv)(CGL_MACRO_CONTEXT_RENDERER, buffer, drawbuffer, value) + +#define glClearBufferfi(buffer, drawbuffer, depth, stencil) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_bufferfi)(CGL_MACRO_CONTEXT_RENDERER, buffer, drawbuffer, depth, stencil) + +#define glGetStringi(name, index) \ + (*(CGL_MACRO_CONTEXT)->disp.get_stringi)(CGL_MACRO_CONTEXT_RENDERER, name, index) + + + +/********** ARB Extensions *************************************************/ + +/* GL_ARB_vertex_program */ +#define glBindProgramARB(target, id) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_program_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, id) + +#define glDeleteProgramsARB(n, programs) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_programs_ARB)(CGL_MACRO_CONTEXT_RENDERER, n, programs) + +#define glGenProgramsARB(n, programs) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_programs_ARB)(CGL_MACRO_CONTEXT_RENDERER, n, programs) + +#define glIsProgramARB(id) \ + (*(CGL_MACRO_CONTEXT)->disp.is_program_ARB)(CGL_MACRO_CONTEXT_RENDERER, id) + +#define glVertexAttrib1sARB(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x) + +#define glVertexAttrib1fARB(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x) + +#define glVertexAttrib1dARB(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x) + +#define glVertexAttrib2sARB(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) + +#define glVertexAttrib2fARB(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) + +#define glVertexAttrib2dARB(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) + +#define glVertexAttrib3sARB(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) + +#define glVertexAttrib3fARB(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) + +#define glVertexAttrib3dARB(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) + +#define glVertexAttrib4sARB(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) + +#define glVertexAttrib4fARB(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) + +#define glVertexAttrib4dARB(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) + +#define glVertexAttrib4NubARB(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nub_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) + +#define glVertexAttrib1svARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib1fvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib1dvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib2svARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib2fvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib2dvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib3svARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib3fvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib3dvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4bvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4bv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4ubvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4ubv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4svARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4usvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4usv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4ivARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4uivARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4uiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4fvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4dvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4NbvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nbv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4NubvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nubv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4NsvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nsv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4NusvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nusv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4NivARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Niv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4NuivARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nuiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttribPointerARB(index, size, type, normalized, stride, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib_pointer_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, size, type, normalized, stride, addr) + +#define glEnableVertexAttribArrayARB(index) \ + (*(CGL_MACRO_CONTEXT)->disp.enable_vertex_attrib_array_ARB)(CGL_MACRO_CONTEXT_RENDERER, index) + +#define glDisableVertexAttribArrayARB(index) \ + (*(CGL_MACRO_CONTEXT)->disp.disable_vertex_attrib_array_ARB)(CGL_MACRO_CONTEXT_RENDERER, index) + +#define glGetVertexAttribdvARB(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribdv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) + +#define glGetVertexAttribfvARB(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) + +#define glGetVertexAttribivARB(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) + +#define glGetVertexAttribPointervARB(index, pname, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attrib_pointerv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, pointer) + +#define glProgramEnvParameter4dARB(target, index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.program_env_parameter4d_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, x, y, z, w) + +#define glProgramEnvParameter4dvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.program_env_parameter4dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glProgramEnvParameter4fARB(target, index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.program_env_parameter4f_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, x, y, z, w) + +#define glProgramEnvParameter4fvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.program_env_parameter4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glProgramLocalParameter4dARB(target, index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.program_local_parameter4d_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, x, y, z, w) + +#define glProgramLocalParameter4dvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.program_local_parameter4dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glProgramLocalParameter4fARB(target, index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.program_local_parameter4f_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, x, y, z, w) + +#define glProgramLocalParameter4fvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.program_local_parameter4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glGetProgramEnvParameterdvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_program_env_parameterdv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glGetProgramEnvParameterfvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_program_env_parameterfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glGetProgramLocalParameterdvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_program_local_parameterdv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glGetProgramLocalParameterfvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_program_local_parameterfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glProgramStringARB(target, format, length, string) \ + (*(CGL_MACRO_CONTEXT)->disp.program_string_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, format, length, string) + +#define glGetProgramStringARB(target, pname, string) \ + (*(CGL_MACRO_CONTEXT)->disp.get_program_string_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, pname, string) + +#define glGetProgramivARB(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_programiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +/* GL_EXT_gpu_program_parameters */ +#define glProgramEnvParameters4fvEXT(target, index, count, params) \ + (*(CGL_MACRO_CONTEXT)->disp.program_env_parameters4fv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index, count, params) + +#define glProgramLocalParameters4fvEXT(target, index, count, params) \ + (*(CGL_MACRO_CONTEXT)->disp.program_local_parameters4fv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index, count, params) + +/* GL_ARB_vertex_blend */ +#define glWeightbvARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightbv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightsvARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightsv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightivARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightfvARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightdvARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightdv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightubvARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightubv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightusvARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightusv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightuivARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightuiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightPointerARB(size, type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.weight_pointer_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, type, stride, pointer) + +#define glVertexBlendARB(count) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_blend_ARB)(CGL_MACRO_CONTEXT_RENDERER, count) + +/* GL_ARB_multitexture */ +#define glClientActiveTextureARB glClientActiveTexture +#define glActiveTextureARB glActiveTexture +#define glMultiTexCoord1dARB glMultiTexCoord1d +#define glMultiTexCoord1dvARB glMultiTexCoord1dv +#define glMultiTexCoord1fARB glMultiTexCoord1f +#define glMultiTexCoord1fvARB glMultiTexCoord1fv +#define glMultiTexCoord1iARB glMultiTexCoord1i +#define glMultiTexCoord1ivARB glMultiTexCoord1iv +#define glMultiTexCoord1sARB glMultiTexCoord1s +#define glMultiTexCoord1svARB glMultiTexCoord1sv +#define glMultiTexCoord2dARB glMultiTexCoord2d +#define glMultiTexCoord2dvARB glMultiTexCoord2dv +#define glMultiTexCoord2fARB glMultiTexCoord2f +#define glMultiTexCoord2fvARB glMultiTexCoord2fv +#define glMultiTexCoord2iARB glMultiTexCoord2i +#define glMultiTexCoord2ivARB glMultiTexCoord2iv +#define glMultiTexCoord2sARB glMultiTexCoord2s +#define glMultiTexCoord2svARB glMultiTexCoord2sv +#define glMultiTexCoord3dARB glMultiTexCoord3d +#define glMultiTexCoord3dvARB glMultiTexCoord3dv +#define glMultiTexCoord3fARB glMultiTexCoord3f +#define glMultiTexCoord3fvARB glMultiTexCoord3fv +#define glMultiTexCoord3iARB glMultiTexCoord3i +#define glMultiTexCoord3ivARB glMultiTexCoord3iv +#define glMultiTexCoord3sARB glMultiTexCoord3s +#define glMultiTexCoord3svARB glMultiTexCoord3sv +#define glMultiTexCoord4dARB glMultiTexCoord4d +#define glMultiTexCoord4dvARB glMultiTexCoord4dv +#define glMultiTexCoord4fARB glMultiTexCoord4f +#define glMultiTexCoord4fvARB glMultiTexCoord4fv +#define glMultiTexCoord4iARB glMultiTexCoord4i +#define glMultiTexCoord4ivARB glMultiTexCoord4iv +#define glMultiTexCoord4sARB glMultiTexCoord4s +#define glMultiTexCoord4svARB glMultiTexCoord4sv + +/* GL_ARB_transpose_matrix */ +#define glLoadTransposeMatrixfARB glLoadTransposeMatrixf +#define glLoadTransposeMatrixdARB glLoadTransposeMatrixd +#define glMultTransposeMatrixfARB glMultTransposeMatrixf +#define glMultTransposeMatrixdARB glMultTransposeMatrixd + +/* GL_ARB_texture_compression */ +#define glCompressedTexImage3DARB glCompressedTexImage3D +#define glCompressedTexImage2DARB glCompressedTexImage2D +#define glCompressedTexImage1DARB glCompressedTexImage1D +#define glCompressedTexSubImage3DARB glCompressedTexSubImage3D +#define glCompressedTexSubImage2DARB glCompressedTexSubImage2D +#define glCompressedTexSubImage1DARB glCompressedTexSubImage1D +#define glGetCompressedTexImageARB glGetCompressedTexImage + +/* GL_ARB_multisample */ +#define glSampleCoverageARB glSampleCoverage + +/* GL_ARB_point_parameters */ +#define glPointParameterfARB glPointParameterf +#define glPointParameterfvARB glPointParameterfv + +/* GL_ARB_window_pos */ +#define glWindowPos2dARB glWindowPos2d +#define glWindowPos2dvARB glWindowPos2dv +#define glWindowPos2fARB glWindowPos2f +#define glWindowPos2fvARB glWindowPos2fv +#define glWindowPos2iARB glWindowPos2i +#define glWindowPos2ivARB glWindowPos2iv +#define glWindowPos2sARB glWindowPos2s +#define glWindowPos2svARB glWindowPos2sv +#define glWindowPos3dARB glWindowPos3d +#define glWindowPos3dvARB glWindowPos3dv +#define glWindowPos3fARB glWindowPos3f +#define glWindowPos3fvARB glWindowPos3fv +#define glWindowPos3iARB glWindowPos3i +#define glWindowPos3ivARB glWindowPos3iv +#define glWindowPos3sARB glWindowPos3s +#define glWindowPos3svARB glWindowPos3sv + +/* GL_ARB_occlusion_query */ +#define glGenQueriesARB glGenQueries +#define glDeleteQueriesARB glDeleteQueries +#define glIsQueryARB glIsQuery +#define glBeginQueryARB glBeginQuery +#define glEndQueryARB glEndQuery +#define glGetQueryivARB glGetQueryiv +#define glGetQueryObjectivARB glGetQueryObjectiv +#define glGetQueryObjectuivARB glGetQueryObjectuiv + +/* GL_ARB_vertex_buffer_object */ +#define glBindBufferARB glBindBuffer +#define glDeleteBuffersARB glDeleteBuffers +#define glGenBuffersARB glGenBuffers +#define glIsBufferARB glIsBuffer +#define glBufferDataARB glBufferData +#define glBufferSubDataARB glBufferSubData +#define glGetBufferSubDataARB glGetBufferSubData +#define glMapBufferARB glMapBuffer +#define glUnmapBufferARB glUnmapBuffer +#define glGetBufferParameterivARB glGetBufferParameteriv +#define glGetBufferPointervARB glGetBufferPointerv + +/* GL_ARB_shader_objects */ +#define glDeleteObjectARB(obj) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, obj) + +#define glGetHandleARB(pname) \ + (*(CGL_MACRO_CONTEXT)->disp.get_handle_ARB)(CGL_MACRO_CONTEXT_RENDERER, pname) + +#define glDetachObjectARB(container, attached) \ + (*(CGL_MACRO_CONTEXT)->disp.detach_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, container, attached) + +#define glCreateShaderObjectARB(shader) \ + (*(CGL_MACRO_CONTEXT)->disp.create_shader_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, shader) + +#define glShaderSourceARB(shader, count, string, length) \ + (*(CGL_MACRO_CONTEXT)->disp.shader_source_ARB)(CGL_MACRO_CONTEXT_RENDERER, shader, count, string, length) + +#define glCompileShaderARB(shader) \ + (*(CGL_MACRO_CONTEXT)->disp.compile_shader_ARB)(CGL_MACRO_CONTEXT_RENDERER, shader) + +#define glCreateProgramObjectARB() \ + (*(CGL_MACRO_CONTEXT)->disp.create_program_object_ARB)(CGL_MACRO_CONTEXT_RENDERER) + +#define glAttachObjectARB(container, object) \ + (*(CGL_MACRO_CONTEXT)->disp.attach_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, container, object) + +#define glLinkProgramARB(program) \ + (*(CGL_MACRO_CONTEXT)->disp.link_program_ARB)(CGL_MACRO_CONTEXT_RENDERER, program) + +#define glUseProgramObjectARB(program) \ + (*(CGL_MACRO_CONTEXT)->disp.use_program_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, program) + +#define glValidateProgramARB(program) \ + (*(CGL_MACRO_CONTEXT)->disp.validate_program_ARB)(CGL_MACRO_CONTEXT_RENDERER, program) + +#define glUniform1fARB(location, v0) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0) + +#define glUniform2fARB(location, v0, v1) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1) + +#define glUniform3fARB(location, v0, v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2) + +#define glUniform4fARB(location, v0, v1, v2, v3) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2, v3) + +#define glUniform1iARB(location, v0) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0) + +#define glUniform2iARB(location, v0, v1) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1) + +#define glUniform3iARB(location, v0, v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2) + +#define glUniform4iARB(location, v0, v1, v2, v3) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2, v3) + +#define glUniform1fvARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform2fvARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform3fvARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform4fvARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform1ivARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform2ivARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform3ivARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform4ivARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniformMatrix2fvARB(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix2fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix3fvARB(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix3fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix4fvARB(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glGetObjectParameterfvARB(obj, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_object_parameterfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, obj, pname, params) + +#define glGetObjectParameterivARB(obj, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_object_parameteriv_ARB)(CGL_MACRO_CONTEXT_RENDERER, obj, pname, params) + +#define glGetInfoLogARB(obj, max, length, info) \ + (*(CGL_MACRO_CONTEXT)->disp.get_info_log_ARB)(CGL_MACRO_CONTEXT_RENDERER, obj, max, length, info) + +#define glGetAttachedObjectsARB(container, max, count, obj) \ + (*(CGL_MACRO_CONTEXT)->disp.get_attached_objects_ARB)(CGL_MACRO_CONTEXT_RENDERER, container, max, count, obj) + +#define glGetUniformLocationARB(program, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniform_location_ARB)(CGL_MACRO_CONTEXT_RENDERER, program, name) + +#define glGetActiveUniformARB(program, index, max, length, size, type, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_active_uniform_ARB)(CGL_MACRO_CONTEXT_RENDERER, program, index, max, length, size, type, name) + +#define glGetUniformfvARB(program, location, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniformfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, program, location, params) + +#define glGetUniformivARB(program, location, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniformiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, program, location, params) + +#define glGetShaderSourceARB(obj, max, length, source) \ + (*(CGL_MACRO_CONTEXT)->disp.get_shader_source_ARB)(CGL_MACRO_CONTEXT_RENDERER, obj, max, length, source) + +/* GL_ARB_vertex_shader */ +#define glBindAttribLocationARB(program, index, name) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_attrib_location_ARB)(CGL_MACRO_CONTEXT_RENDERER, program, index, name) + +#define glGetActiveAttribARB(program, index, max, length, size, type, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_active_attrib_ARB)(CGL_MACRO_CONTEXT_RENDERER, program, index, max, length, size, type, name) + +#define glGetAttribLocationARB(program, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_attrib_location_ARB)(CGL_MACRO_CONTEXT_RENDERER, program, name) + +#define glDrawBuffersARB(n, bufs)\ + (*(CGL_MACRO_CONTEXT)->disp.draw_buffers_ARB)(CGL_MACRO_CONTEXT_RENDERER, n, bufs) + +/* GL_ARB_color_buffer_float */ +#define glClampColorARB(target, clamp)\ + (*(CGL_MACRO_CONTEXT)->disp.clamp_color_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, clamp) + +/* GL_ARB_framebuffer_object */ +#define glIsRenderbuffer(renderbuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.is_renderbuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, renderbuffer) + +#define glBindRenderbuffer(target, renderbuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_renderbuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, renderbuffer) + +#define glDeleteRenderbuffers(n, renderbuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_renderbuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, renderbuffers) + +#define glGenRenderbuffers(n, renderbuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_renderbuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, renderbuffers) + +#define glRenderbufferStorage(target, internalformat, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.renderbuffer_storage_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, width, height) + +#define glGetRenderbufferParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_renderbuffer_parameteriv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glIsFramebuffer(framebuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.is_framebuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, framebuffer) + +#define glBindFramebuffer(target, framebuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_framebuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, framebuffer) + +#define glDeleteFramebuffers(n, framebuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_framebuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, framebuffers) + +#define glGenFramebuffers(n, framebuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_framebuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, framebuffers) + +#define glCheckFramebufferStatus(target) \ + (*(CGL_MACRO_CONTEXT)->disp.check_framebuffer_status_EXT)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glFramebufferTexture1D(target, attachment, textarget, texture, level) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture1D_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, textarget, texture, level) + +#define glFramebufferTexture2D(target, attachment, textarget, texture, level) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture2D_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, textarget, texture, level) + +#define glFramebufferTexture3D(target, attachment, textarget, texture, level, zoffset) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture3D_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, textarget, texture, level, zoffset) + +#define glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_renderbuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, renderbuffertarget, renderbuffer) + +#define glGetFramebufferAttachmentParameteriv(target, attachment, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_framebuffer_attachment_parameteriv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, pname, params) + +#define glGenerateMipmap(target) \ + (*(CGL_MACRO_CONTEXT)->disp.generate_mipmap_EXT)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter) \ + (*(CGL_MACRO_CONTEXT)->disp.blit_framebuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter) + +#define glRenderbufferStorageMultisample(target, samples, internalformat, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.renderbuffer_storage_multisample_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, samples, internalformat, width, height) + +#define glFramebufferTextureLayer(target, attachment, texture, level, layer) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture_layer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, texture, level, layer) + +/* GL_ARB_instanced_arrays */ +#define glVertexAttribDivisorARB(index,divisor) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib_divisor)(CGL_MACRO_CONTEXT_RENDERER, index, divisor) + +/* GL_ARB_draw_instanced */ +#define glDrawArraysInstancedARB(mode, first, count, primcount) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_arrays_instanced)(CGL_MACRO_CONTEXT_RENDERER, mode, first, count, primcount) + +#define glDrawElementsInstancedARB(mode, count, type, indices, primcount) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_elements_instanced)(CGL_MACRO_CONTEXT_RENDERER, mode, count, type, indices, primcount) + +/* GL_ARB_draw_elements_base_vertex */ +#define glDrawElementsBaseVertex(mode, count, type, indices, basev) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_elements_base_vertex)(CGL_MACRO_CONTEXT_RENDERER, mode, count, type, indices, basev) + +#define glDrawRangeElementsBaseVertex(mode, start, end, count, type, indices, basev) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_range_elements_base_vertex)(CGL_MACRO_CONTEXT_RENDERER, mode, start, end, count, type, indices, basev) + +#define glDrawElementsInstancedBaseVertex(mode, count, type, indices, primcount, basev) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_elements_instanced_base_vertex)(CGL_MACRO_CONTEXT_RENDERER, mode, count, type, indices, primcount, basev) + +#define glMultiDrawElementsBaseVertex(mode, count, type, indices, primcount, basev) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_draw_elements_base_vertex)(CGL_MACRO_CONTEXT_RENDERER, mode, count, type, indices, primcount, basev) + +/* GL_ARB_sync */ +#define glFenceSync(condition, flags) \ + (*(CGL_MACRO_CONTEXT)->disp.fence_sync)(CGL_MACRO_CONTEXT_RENDERER, condition, flags) + +#define glIsSync(sync) \ + (*(CGL_MACRO_CONTEXT)->disp.is_sync)(CGL_MACRO_CONTEXT_RENDERER, sync) + +#define glDeleteSync(sync) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_sync)(CGL_MACRO_CONTEXT_RENDERER, sync) + +#define glClientWaitSync(sync, flags, timeout) \ + (*(CGL_MACRO_CONTEXT)->disp.client_wait_sync)(CGL_MACRO_CONTEXT_RENDERER, sync, flags, timeout) + +#define glWaitSync(sync, flags, timeout) \ + (*(CGL_MACRO_CONTEXT)->disp.wait_sync)(CGL_MACRO_CONTEXT_RENDERER, sync, flags, timeout) + +#define glGetInteger64v(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_integer64v_sync)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glGetSynciv(sync, pname, bufSize, length, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_synciv)(CGL_MACRO_CONTEXT_RENDERER, sync, pname, bufSize, length, values) + +/*********** EXT Extensions *************************************************/ + +/* GL_EXT_stencil_two_side */ +#define glActiveStencilFaceEXT(face) \ + (*(CGL_MACRO_CONTEXT)->disp.active_stencil_face_EXT)(CGL_MACRO_CONTEXT_RENDERER, face) + +/* GL_EXT_depth_bounds_test */ +#define glDepthBoundsEXT(zmin, zmax) \ + (*(CGL_MACRO_CONTEXT)->disp.depth_bounds_EXT)(CGL_MACRO_CONTEXT_RENDERER, zmin, zmax) + +/* GL_EXT_blend_equation_separate */ +#define glBlendEquationSeparateEXT(modeRGB, modeAlpha) \ + (*(CGL_MACRO_CONTEXT)->disp.blend_equation_separate_EXT)(CGL_MACRO_CONTEXT_RENDERER, modeRGB, modeAlpha) + +/* GL_EXT_paletted_texture */ +#define glColorTableEXT glColorTable +#define glColorSubTableEXT glColorSubTable +#define glGetColorTableEXT glGetColorTable +#define glGetColorTableParameterivEXT glGetColorTableParameteriv +#define glGetColorTableParameterfvEXT glGetColorTableParameterfv + +/* GL_EXT_secondary_color */ +#define glSecondaryColor3bEXT glSecondaryColor3b +#define glSecondaryColor3bvEXT glSecondaryColor3bv +#define glSecondaryColor3dEXT glSecondaryColor3d +#define glSecondaryColor3dvEXT glSecondaryColor3dv +#define glSecondaryColor3fEXT glSecondaryColor3f +#define glSecondaryColor3fvEXT glSecondaryColor3fv +#define glSecondaryColor3iEXT glSecondaryColor3i +#define glSecondaryColor3ivEXT glSecondaryColor3iv +#define glSecondaryColor3sEXT glSecondaryColor3s +#define glSecondaryColor3svEXT glSecondaryColor3sv +#define glSecondaryColor3ubEXT glSecondaryColor3ub +#define glSecondaryColor3ubvEXT glSecondaryColor3ubv +#define glSecondaryColor3uiEXT glSecondaryColor3ui +#define glSecondaryColor3uivEXT glSecondaryColor3uiv +#define glSecondaryColor3usEXT glSecondaryColor3us +#define glSecondaryColor3usvEXT glSecondaryColor3usv +#define glSecondaryColorPointerEXT glSecondaryColorPointer + +/* GL_EXT_fog_coord */ +#define glFogCoordfEXT glFogCoordf +#define glFogCoordfvEXT glFogCoordfv +#define glFogCoorddEXT glFogCoordd +#define glFogCoorddvEXT glFogCoorddv +#define glFogCoordPointerEXT glFogCoordPointer + +/* GL_EXT_draw_range_elements */ +#define glDrawRangeElementsEXT glDrawRangeElements + +/* GL_EXT_blend_func_separate */ +#define glBlendFuncSeparateEXT glBlendFuncSeparate + +/* GL_EXT_multi_draw_arrays */ +#define glMultiDrawArraysEXT glMultiDrawArrays +#define glMultiDrawElementsEXT glMultiDrawElements + +/* GL_EXT_blend_color */ +#define glBlendColorEXT glBlendColor + +/* GL_EXT_blend_minmax */ +#define glBlendEquationEXT glBlendEquation + +/* GL_EXT_framebuffer_object */ +#define glIsRenderbufferEXT(renderbuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.is_renderbuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, renderbuffer) + +#define glBindRenderbufferEXT(target, renderbuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_renderbuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, renderbuffer) + +#define glDeleteRenderbuffersEXT(n, renderbuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_renderbuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, renderbuffers) + +#define glGenRenderbuffersEXT(n, renderbuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_renderbuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, renderbuffers) + +#define glRenderbufferStorageEXT(target, internalformat, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.renderbuffer_storage_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, width, height) + +#define glGetRenderbufferParameterivEXT(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_renderbuffer_parameteriv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glIsFramebufferEXT(framebuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.is_framebuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, framebuffer) + +#define glBindFramebufferEXT(target, framebuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_framebuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, framebuffer) + +#define glDeleteFramebuffersEXT(n, framebuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_framebuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, framebuffers) + +#define glGenFramebuffersEXT(n, framebuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_framebuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, framebuffers) + +#define glCheckFramebufferStatusEXT(target) \ + (*(CGL_MACRO_CONTEXT)->disp.check_framebuffer_status_EXT)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glFramebufferTexture1DEXT(target, attachment, textarget, texture, level) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture1D_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, textarget, texture, level) + +#define glFramebufferTexture2DEXT(target, attachment, textarget, texture, level) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture2D_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, textarget, texture, level) + +#define glFramebufferTexture3DEXT(target, attachment, textarget, texture, level, zoffset) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture3D_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, textarget, texture, level, zoffset) + +#define glFramebufferRenderbufferEXT(target, attachment, renderbuffertarget, renderbuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_renderbuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, renderbuffertarget, renderbuffer) + +#define glGetFramebufferAttachmentParameterivEXT(target, attachment, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_framebuffer_attachment_parameteriv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, pname, params) + +#define glGenerateMipmapEXT(target) \ + (*(CGL_MACRO_CONTEXT)->disp.generate_mipmap_EXT)(CGL_MACRO_CONTEXT_RENDERER, target) + +/* EXT_framebuffer_blit and EXT_framebuffer_multisample */ +#define glBlitFramebufferEXT(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter) \ + (*(CGL_MACRO_CONTEXT)->disp.blit_framebuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter) + +#define glRenderbufferStorageMultisampleEXT(target, samples, internalformat, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.renderbuffer_storage_multisample_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, samples, internalformat, width, height) + +/* GL_EXT_geometry_shader4 */ +#define glProgramParameteriEXT(program, pname, value) \ + (*(CGL_MACRO_CONTEXT)->disp.program_parameteri_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, pname, value) + +#define glFramebufferTextureEXT(target, attachment, texture, level) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, texture, level) + +#define glFramebufferTextureLayerEXT(target, attachment, texture, level, layer) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture_layer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, texture, level, layer) + +#define glFramebufferTextureFaceEXT(target, attachment, texture, level, face) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture_face_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, texture, level, face) + +/* GL_EXT_transform_feedback */ +#define glBindBufferRangeEXT(target, index, buffer, offset, size) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_buffer_range_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index, buffer, offset, size) +#define glBindBufferOffsetEXT(target, index, buffer, offset) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_buffer_offset_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index, buffer, offset) +#define glBindBufferBaseEXT(target, index, buffer) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_buffer_base_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index, buffer) +#define glBeginTransformFeedbackEXT(primitiveMode) \ + (*(CGL_MACRO_CONTEXT)->disp.begin_transform_feedback_EXT)(CGL_MACRO_CONTEXT_RENDERER, primitiveMode) +#define glEndTransformFeedbackEXT() \ + (*(CGL_MACRO_CONTEXT)->disp.end_transform_feedback_EXT)(CGL_MACRO_CONTEXT_RENDERER) +#define glTransformFeedbackVaryingsEXT(program, count, varyings, bufferMode) \ + (*(CGL_MACRO_CONTEXT)->disp.transform_feedback_varyings_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, count, varyings, bufferMode) +#define glGetTransformFeedbackVaryingEXT(program, index, bufSize, length, size, type, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_transform_feedback_varying_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, index, bufSize, length, size, type, name) + +/* GL_EXT_transform_feedback || GL_EXT_draw_buffers2 */ +#define glGetIntegerIndexedvEXT(param, index, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_integer_indexedv_EXT)(CGL_MACRO_CONTEXT_RENDERER, param, index, values) +#define glGetBooleanIndexedvEXT(param, index, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_boolean_indexedv_EXT)(CGL_MACRO_CONTEXT_RENDERER, param, index, values) + +/* GL_EXT_bindable_uniform */ +#define glUniformBufferEXT(program, location, buffer) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_buffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, location, buffer) +#define glGetUniformBufferSizeEXT(program, location) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniform_buffer_size_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, location) +#define glGetUniformOffsetEXT(program, location) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniform_buffer_offset_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, location) + +/* GL_EXT_texture_integer */ +#define glClearColorIiEXT(r, g, b, a) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_colorIi_EXT)(CGL_MACRO_CONTEXT_RENDERER, r, g, b, a) +#define glClearColorIuiEXT(r, g, b, a) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_colorIui_EXT)(CGL_MACRO_CONTEXT_RENDERER, r, g, b, a) +#define glTexParameterIivEXT(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_parameterIiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) +#define glTexParameterIuivEXT(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_parameterIuiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) +#define glGetTexParameterIivEXT(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_parameterIiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) +#define glGetTexParameterIuivEXT(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_parameterIuiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +/* GL_EXT_gpu_shader4 */ +#define glVertexAttribI1iEXT(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI1i_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x) +#define glVertexAttribI2iEXT(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI2i_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) +#define glVertexAttribI3iEXT(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI3i_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) +#define glVertexAttribI4iEXT(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4i_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) +#define glVertexAttribI1uiEXT(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI1ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x) +#define glVertexAttribI2uiEXT(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI2ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) +#define glVertexAttribI3uiEXT(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI3ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) +#define glVertexAttribI4uiEXT(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) +#define glVertexAttribI1ivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI1iv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI2ivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI2iv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI3ivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI3iv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI4ivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4iv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI1uivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI1uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI2uivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI2uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI3uivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI3uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI4uivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI4bvEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4bv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI4svEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4sv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI4ubvEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4ubv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI4usvEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4usv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribIPointerEXT(index, size, type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI_pointer_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, size, type, stride, pointer) +#define glGetVertexAttribIivEXT(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribIiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) +#define glGetVertexAttribIuivEXT(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribIuiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) +#define glUniform1uiEXT(location, v0) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, v0) +#define glUniform2uiEXT(location, v0, v1) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1) +#define glUniform3uiEXT(location, v0, v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2) +#define glUniform4uiEXT(location, v0, v1, v2, v3) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2, v3) +#define glUniform1uivEXT(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) +#define glUniform2uivEXT(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) +#define glUniform3uivEXT(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) +#define glUniform4uivEXT(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) +#define glGetUniformuivEXT(program, location, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniformuiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, location, params) +#define glBindFragDataLocationEXT(program, colorNumber, name) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_frag_data_location_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, colorNumber, name) +#define glGetFragDataLocationEXT(program, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_frag_data_location_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, name) + +/* GL_EXT_draw_buffers2 */ +#define glColorMaskIndexedEXT(index, r, g, b, a) \ + (*(CGL_MACRO_CONTEXT)->disp.color_mask_indexed_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, r, g, b, a) +#define glEnableIndexedEXT(target, index) \ + (*(CGL_MACRO_CONTEXT)->disp.enable_indexed_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index) +#define glDisableIndexedEXT(target, index) \ + (*(CGL_MACRO_CONTEXT)->disp.disable_indexed_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index) +#define glIsEnabledIndexedEXT(target, index) \ + (*(CGL_MACRO_CONTEXT)->disp.is_enabled_indexed_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index) + +/* GL_ARB_provoking_vertex */ +#define glProvokingVertex(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.provoking_vertex_EXT)(CGL_MACRO_CONTEXT_RENDERER, mode) + +/* GL_EXT_provoking_vertex */ +#define glProvokingVertexEXT glProvokingVertex + +/* GL_EXT_timer_query */ +#define glGetQueryObjecti64vEXT(id, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_query_objecti64v)(CGL_MACRO_CONTEXT_RENDERER, id, pname, params) + +#define glGetQueryObjectui64vEXT(id, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_query_objectui64v)(CGL_MACRO_CONTEXT_RENDERER, id, pname, params) + +/* GL_EXT_debug_label */ +#define glLabelObjectEXT(type, object, length, label) \ + (*(CGL_MACRO_CONTEXT)->disp.label_object_EXT)(CGL_MACRO_CONTEXT_RENDERER, type, object, length, label) + +#define glGetObjectLabelEXT(type, object, bufSize, length, label) \ + (*(CGL_MACRO_CONTEXT)->disp.get_object_label_EXT)(CGL_MACRO_CONTEXT_RENDERER, type, object, bufSize, length, label) + +/* GL_EXT_debug_marker */ +#define glInsertEventMarkerEXT(length, marker) \ + (*(CGL_MACRO_CONTEXT)->disp.insert_event_marker_EXT)(CGL_MACRO_CONTEXT_RENDERER, length, marker) + +#define glPushGroupMarkerEXT(length, marker) \ + (*(CGL_MACRO_CONTEXT)->disp.push_group_marker_EXT)(CGL_MACRO_CONTEXT_RENDERER, length, marker) + +#define glPopGroupMarkerEXT() \ + (*(CGL_MACRO_CONTEXT)->disp.pop_group_marker_EXT)(CGL_MACRO_CONTEXT_RENDERER) + +/*********** APPLE Extensions ***********************************************/ + +/* GL_APPLE_vertex_program_evaluators */ +#define glEnableVertexAttribAPPLE(index, pname) \ + (*(CGL_MACRO_CONTEXT)->disp.enable_vertex_attrib_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname) + +#define glDisableVertexAttribAPPLE(index, pname) \ + (*(CGL_MACRO_CONTEXT)->disp.disable_vertex_attrib_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname) + +#define glIsVertexAttribEnabledAPPLE(index, pname) \ + (*(CGL_MACRO_CONTEXT)->disp.is_vertex_attrib_enabled_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname) + +#define glMapVertexAttrib1dAPPLE(index, size, u1, u2, stride, order, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map_vertex_attrib1d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, size, u1, u2, stride, order, points) + +#define glMapVertexAttrib1fAPPLE(index, size, u1, u2, stride, order, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map_vertex_attrib1f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, size, u1, u2, stride, order, points) + +#define glMapVertexAttrib2dAPPLE(index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map_vertex_attrib2d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) + +#define glMapVertexAttrib2fAPPLE(index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map_vertex_attrib2f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) + +/* GL_APPLE_texture_range */ +#define glTextureRangeAPPLE(target, length, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.texture_range_APPLE)(CGL_MACRO_CONTEXT_RENDERER, target, length, pointer) + +#define glGetTexParameterPointervAPPLE(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_parameter_pointerv_APPLE)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +/* GL_APPLE_fence */ +#define glGenFencesAPPLE(n, fences) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_fences_APPLE)(CGL_MACRO_CONTEXT_RENDERER, n, fences) + +#define glDeleteFencesAPPLE(n, fences) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_fences_APPLE)(CGL_MACRO_CONTEXT_RENDERER, n, fences) + +#define glSetFenceAPPLE(fence) \ + (*(CGL_MACRO_CONTEXT)->disp.set_fence_APPLE)(CGL_MACRO_CONTEXT_RENDERER, fence) + +#define glIsFenceAPPLE(fence) \ + (*(CGL_MACRO_CONTEXT)->disp.is_fence_APPLE)(CGL_MACRO_CONTEXT_RENDERER, fence) + +#define glTestFenceAPPLE(fence) \ + (*(CGL_MACRO_CONTEXT)->disp.test_fence_APPLE)(CGL_MACRO_CONTEXT_RENDERER, fence) + +#define glFinishFenceAPPLE(fence) \ + (*(CGL_MACRO_CONTEXT)->disp.finish_fence_APPLE)(CGL_MACRO_CONTEXT_RENDERER, fence) + +#define glTestObjectAPPLE(object, name) \ + (*(CGL_MACRO_CONTEXT)->disp.test_object_APPLE)(CGL_MACRO_CONTEXT_RENDERER, object, name) + +#define glFinishObjectAPPLE(object, name) \ + (*(CGL_MACRO_CONTEXT)->disp.finish_object_APPLE)(CGL_MACRO_CONTEXT_RENDERER, object, name) + +/* GL_APPLE_vertex_array_range */ +#define glVertexArrayRangeAPPLE(length, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_array_range_EXT)(CGL_MACRO_CONTEXT_RENDERER, length, pointer) + +#define glFlushVertexArrayRangeAPPLE(length, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.flush_vertex_array_range_EXT)(CGL_MACRO_CONTEXT_RENDERER, length, pointer) + +#define glVertexArrayParameteriAPPLE(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_array_parameteri_EXT)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +/* GL_APPLE_vertex_array_object */ +#define glBindVertexArrayAPPLE(id) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_vertex_array_EXT)(CGL_MACRO_CONTEXT_RENDERER, id) + +#define glDeleteVertexArraysAPPLE(n, ids) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_vertex_arrays_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, ids) + +#define glGenVertexArraysAPPLE(n, ids) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_vertex_arrays_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, ids) + +#define glIsVertexArrayAPPLE(id) \ + (*(CGL_MACRO_CONTEXT)->disp.is_vertex_array_EXT)(CGL_MACRO_CONTEXT_RENDERER, id) + +/* GL_APPLE_element_array */ +#define glElementPointerAPPLE(type, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.element_pointer_APPLE)(CGL_MACRO_CONTEXT_RENDERER, type, pointer) + +#define glDrawElementArrayAPPLE(mode, first, count) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_element_array_APPLE)(CGL_MACRO_CONTEXT_RENDERER, mode, first, count) + +#define glDrawRangeElementArrayAPPLE(mode, start, end, first, count) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_range_element_array_APPLE)(CGL_MACRO_CONTEXT_RENDERER, mode, start, end, first, count) + +#define glMultiDrawElementArrayAPPLE(mode, first, count, primcount) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_draw_element_array_APPLE)(CGL_MACRO_CONTEXT_RENDERER, mode, first, count, primcount) + +#define glMultiDrawRangeElementArrayAPPLE(mode, start, end, first, count, primcount) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_draw_range_element_array_APPLE)(CGL_MACRO_CONTEXT_RENDERER, mode, start, end, first, count, primcount) + +/* GL_APPLE_flush_render */ +#define glFlushRenderAPPLE() \ + (*(CGL_MACRO_CONTEXT)->disp.flush_render_APPLE)(CGL_MACRO_CONTEXT_RENDERER) + +#define glFinishRenderAPPLE() \ + (*(CGL_MACRO_CONTEXT)->disp.finish_render_APPLE)(CGL_MACRO_CONTEXT_RENDERER) + +#define glSwapAPPLE() \ + (*(CGL_MACRO_CONTEXT)->disp.swap_APPLE)(CGL_MACRO_CONTEXT_RENDERER) + +/* GL_APPLE_flush_buffer_range */ +#define glBufferParameteriAPPLE(target, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.buffer_parameteri_APPLE)(CGL_MACRO_CONTEXT_RENDERER, target, pname, param) + +#define glFlushMappedBufferRangeAPPLE(target, offset, size) \ + (*(CGL_MACRO_CONTEXT)->disp.flush_mapped_buffer_range_APPLE)(CGL_MACRO_CONTEXT_RENDERER, target, offset, size) + +/* GL_APPLE_object_purgeability */ +#define glObjectPurgeableAPPLE(objectType, name, option) \ + (*(CGL_MACRO_CONTEXT)->disp.object_purgeable_APPLE)(CGL_MACRO_CONTEXT_RENDERER, objectType, name, option) + +#define glObjectUnpurgeableAPPLE(objectType, name, option) \ + (*(CGL_MACRO_CONTEXT)->disp.object_unpurgeable_APPLE)(CGL_MACRO_CONTEXT_RENDERER, objectType, name, option) + +#define glGetObjectParameterivAPPLE(objectType, name, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_object_parameteriv_APPLE)(CGL_MACRO_CONTEXT_RENDERER, objectType, name, pname, params) + +/* GL_APPLE_vertex_point_size */ +#define glPointSizePointerAPPLE(type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.point_size_pointer)(CGL_MACRO_CONTEXT_RENDERER, type, stride, pointer) + +#define glVertexPointSizefAPPLE(size) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_point_sizef_APPLE)(CGL_MACRO_CONTEXT_RENDERER, size) + +/*********** ATI Extensions *************************************************/ + +/* GL_ATI_separate_stencil */ +#define glStencilOpSeparateATI(face, sfail, dpfail, dppass) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_op_separate_ATI)(CGL_MACRO_CONTEXT_RENDERER, face, sfail, dpfail, dppass) + +#define glStencilFuncSeparateATI(frontfunc, backfunc, ref, mask) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_func_separate_ATI)(CGL_MACRO_CONTEXT_RENDERER, frontfunc, backfunc, ref, mask) + +/* GL_ATI_blend_equation_separate */ +#define glBlendEquationSeparateATI glBlendEquationSeparateEXT + +/*********** NVIDIA Extensions **********************************************/ + +/* GL_NV_point_sprite */ +#define glPointParameteriNV(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.point_parameteri)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glPointParameterivNV(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.point_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +/* GL_NV_conditional_render */ +#define glBeginConditionalRenderNV(id, mode) \ + (*(CGL_MACRO_CONTEXT)->disp.begin_conditional_render_NV)(CGL_MACRO_CONTEXT_RENDERER, id, mode) + +#define glEndConditionalRenderNV() \ + (*(CGL_MACRO_CONTEXT)->disp.end_conditional_render_NV)(CGL_MACRO_CONTEXT_RENDERER) + +/* GL_NV_texture_barrier */ +#define glTextureBarrierNV() \ + (*(CGL_MACRO_CONTEXT)->disp.texture_barrier_NV)(CGL_MACRO_CONTEXT_RENDERER) + +#endif /* _CGLMACRO_H */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/CGLRenderers.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/CGLRenderers.h" new file mode 100644 index 0000000..d1be7da --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/CGLRenderers.h" @@ -0,0 +1,57 @@ +/* + Copyright: (c) 1999-2013 Apple Inc. All rights reserved. +*/ + +#ifndef _CGLRENDERERS_H +#define _CGLRENDERERS_H + +#include + +/* +** Renderer ID numbers +*/ +enum { + kCGLRendererGenericID OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 0x00020200, + kCGLRendererGenericFloatID OPENGL_ENUM_AVAILABLE(10_3) = 0x00020400, // Apple Software Renderer + kCGLRendererAppleSWID = 0x00020600, + + kCGLRendererATIRage128ID OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 0x00021000, + kCGLRendererATIRadeonID OPENGL_ENUM_DEPRECATED(10_0, 10_6) = 0x00021200, + kCGLRendererATIRageProID OPENGL_ENUM_DEPRECATED(10_0, 10_6) = 0x00021400, + kCGLRendererATIRadeon8500ID OPENGL_ENUM_DEPRECATED(10_2, 10_6) = 0x00021600, + kCGLRendererATIRadeon9700ID OPENGL_ENUM_DEPRECATED(10_2, 10_6) = 0x00021800, + kCGLRendererATIRadeonX1000ID OPENGL_ENUM_DEPRECATED(10_4, 10_8) = 0x00021900, // Radeon X1xxx + kCGLRendererATIRadeonX2000ID OPENGL_ENUM_AVAILABLE(10_4) = 0x00021A00, // Radeon HD 2xxx and 4xxx + kCGLRendererATIRadeonX3000ID OPENGL_ENUM_AVAILABLE(10_6) = 0x00021B00, // Radeon HD 5xxx and 6xxx + kCGLRendererATIRadeonX4000ID OPENGL_ENUM_AVAILABLE(10_8) = 0x00021C00, // Radeon HD 7xxx + + kCGLRendererGeForce2MXID OPENGL_ENUM_DEPRECATED(10_0, 10_6) = 0x00022000, // GeForce 2MX and 4MX + kCGLRendererGeForce3ID OPENGL_ENUM_DEPRECATED(10_0, 10_6) = 0x00022200, // GeForce 3 and 4Ti + kCGLRendererGeForceFXID OPENGL_ENUM_DEPRECATED(10_2, 10_8) = 0x00022400, // GeForce 5xxx, 6xxx and 7xxx, and + // Quadro FX 4500 + kCGLRendererGeForce8xxxID OPENGL_ENUM_AVAILABLE(10_4) = 0x00022600, // GeForce 8xxx, 9xxx, 1xx, 2xx, and 3xx, and + // Quadro 4800 + kCGLRendererGeForceID OPENGL_ENUM_AVAILABLE(10_9) = 0x00022700, // GeForce 6xx, and + // Quadro 4000, K5000 + + kCGLRendererVTBladeXP2ID OPENGL_ENUM_DEPRECATED(10_3, 10_6) = 0x00023000, + + kCGLRendererIntel900ID OPENGL_ENUM_DEPRECATED(10_4, 10_8) = 0x00024000, // GMA 950 + kCGLRendererIntelX3100ID OPENGL_ENUM_DEPRECATED(10_5, 10_8) = 0x00024200, + kCGLRendererIntelHDID OPENGL_ENUM_AVAILABLE(10_6) = 0x00024300, // HD Graphics 3000 + kCGLRendererIntelHD4000ID OPENGL_ENUM_AVAILABLE(10_7) = 0x00024400, + kCGLRendererIntelHD5000ID OPENGL_ENUM_AVAILABLE(10_8) = 0x00024500, // Iris + + kCGLRendererMesa3DFXID OPENGL_ENUM_DEPRECATED(10_0, 10_6) = 0x00040000, +}; + +/* +** kCGLRendererIDMatchingMask gives the bits that are useful for matching a +** renderer ID (as returned by CGLDescribePixelFormat or CGLDescribeRenderer) +** with the assigned values above. There should be no bits set in the assigned +** renderer ID's that are not set in this mask. +*/ +#define kCGLRendererIDMatchingMask 0x00FE7F00 + + +#endif /* _CGLRENDERERS_H */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/CGLTypes.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/CGLTypes.h" new file mode 100644 index 0000000..0f152c0 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/CGLTypes.h" @@ -0,0 +1,316 @@ +/* + Copyright: (c) 1999-2013 Apple Inc. All rights reserved. +*/ + +#ifndef _CGLTYPES_H +#define _CGLTYPES_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#if __has_feature(assume_nonnull) +#define OPENGL_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin") +#define OPENGL_ASSUME_NONNULL_END _Pragma("clang assume_nonnull end") +#else +#define OPENGL_ASSUME_NONNULL_BEGIN +#define OPENGL_ASSUME_NONNULL_END +#endif + +#if __has_feature(nullability) +#define OPENGL_NULLABLE __nullable +#define OPENGL_NONNULL __nonnull +#else +#define OPENGL_NULLABLE +#define OPENGL_NONNULL +#endif + +/* +** CGL opaque data. +*/ +typedef struct _CGLContextObject *CGLContextObj; +typedef struct _CGLPixelFormatObject *CGLPixelFormatObj; +typedef struct _CGLRendererInfoObject *CGLRendererInfoObj; +typedef struct _CGLPBufferObject *CGLPBufferObj OPENGL_DEPRECATED(10_3, 10_7); + +/* +** Attribute names for CGLChoosePixelFormat and CGLDescribePixelFormat. +*/ +typedef enum _CGLPixelFormatAttribute { + kCGLPFAAllRenderers = 1, /* choose from all available renderers */ + kCGLPFATripleBuffer OPENGL_ENUM_AVAILABLE(10_7) = 3, /* choose a triple buffered pixel format */ + kCGLPFADoubleBuffer = 5, /* choose a double buffered pixel format */ + kCGLPFAColorSize = 8, /* number of color buffer bits */ + kCGLPFAAlphaSize = 11, /* number of alpha component bits */ + kCGLPFADepthSize = 12, /* number of depth buffer bits */ + kCGLPFAStencilSize = 13, /* number of stencil buffer bits */ + kCGLPFAMinimumPolicy = 51, /* never choose smaller buffers than requested */ + kCGLPFAMaximumPolicy = 52, /* choose largest buffers of type requested */ + kCGLPFASampleBuffers OPENGL_ENUM_AVAILABLE(10_2) = 55, /* number of multi sample buffers */ + kCGLPFASamples OPENGL_ENUM_AVAILABLE(10_2) = 56, /* number of samples per multi sample buffer */ + kCGLPFAColorFloat OPENGL_ENUM_AVAILABLE(10_2) = 58, /* color buffers store floating point pixels */ + kCGLPFAMultisample OPENGL_ENUM_AVAILABLE(10_3) = 59, /* choose multisampling */ + kCGLPFASupersample OPENGL_ENUM_AVAILABLE(10_3) = 60, /* choose supersampling */ + kCGLPFASampleAlpha OPENGL_ENUM_AVAILABLE(10_3) = 61, /* request alpha filtering */ + kCGLPFARendererID = 70, /* request renderer by ID */ + kCGLPFANoRecovery = 72, /* disable all failure recovery systems */ + kCGLPFAAccelerated = 73, /* choose a hardware accelerated renderer */ + kCGLPFAClosestPolicy = 74, /* choose the closest color buffer to request */ + kCGLPFABackingStore = 76, /* back buffer contents are valid after swap */ + kCGLPFABackingVolatile OPENGL_ENUM_AVAILABLE(10_7) = 77, /* back buffer contents are volatile after swap */ + kCGLPFADisplayMask = 84, /* mask limiting supported displays */ + kCGLPFAAllowOfflineRenderers OPENGL_ENUM_AVAILABLE(10_5) = 96, /* show offline renderers in pixel formats */ + kCGLPFAAcceleratedCompute OPENGL_ENUM_AVAILABLE(10_6) = 97, /* choose a hardware accelerated compute device */ + kCGLPFAOpenGLProfile OPENGL_ENUM_AVAILABLE(10_7) = 99, /* specify an OpenGL Profile to use */ + kCGLPFASupportsAutomaticGraphicsSwitching OPENGL_ENUM_AVAILABLE(10_8) = 101, /* responds to display changes */ + kCGLPFAVirtualScreenCount = 128, /* number of virtual screens in this format */ + + /* Note: the following attributes are deprecated in Core Profile */ + kCGLPFAAuxBuffers = 7, /* number of aux buffers */ + kCGLPFAAccumSize = 14, /* number of accum buffer bits */ + kCGLPFAAuxDepthStencil OPENGL_ENUM_AVAILABLE(10_2) = 57, /* each aux buffer has its own depth stencil */ + + kCGLPFAStereo OPENGL_ENUM_DEPRECATED(10_0, 10_11) = 6, + kCGLPFAOffScreen OPENGL_ENUM_DEPRECATED(10_0, 10_7) = 53, + kCGLPFAWindow OPENGL_ENUM_DEPRECATED(10_0, 10_9) = 80, + kCGLPFACompliant OPENGL_ENUM_DEPRECATED(10_0, 10_9) = 83, + kCGLPFAPBuffer OPENGL_ENUM_DEPRECATED(10_3, 10_7) = 90, + kCGLPFARemotePBuffer OPENGL_ENUM_DEPRECATED(10_3, 10_9) = 91, + + kCGLPFASingleRenderer OPENGL_ENUM_DEPRECATED(10_0, 10_9) = 71, + kCGLPFARobust OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 75, + kCGLPFAMPSafe OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 78, + kCGLPFAMultiScreen OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 81, + kCGLPFAFullScreen OPENGL_ENUM_DEPRECATED(10_0, 10_6) = 54, +} CGLPixelFormatAttribute; + +/* +** Property names for CGLDescribeRenderer. +*/ +typedef enum _CGLRendererProperty { + kCGLRPOffScreen = 53, + kCGLRPRendererID = 70, + kCGLRPAccelerated = 73, + kCGLRPBackingStore = 76, + kCGLRPWindow = 80, + kCGLRPCompliant = 83, + kCGLRPDisplayMask = 84, + kCGLRPBufferModes = 100, /* a bitfield of supported buffer modes */ + kCGLRPColorModes = 103, /* a bitfield of supported color buffer formats */ + kCGLRPAccumModes = 104, /* a bitfield of supported accum buffer formats */ + kCGLRPDepthModes = 105, /* a bitfield of supported depth buffer depths */ + kCGLRPStencilModes = 106, /* a bitfield of supported stencil buffer depths */ + kCGLRPMaxAuxBuffers = 107, /* maximum number of auxilliary buffers */ + kCGLRPMaxSampleBuffers OPENGL_ENUM_AVAILABLE(10_2) = 108, /* maximum number of sample buffers */ + kCGLRPMaxSamples OPENGL_ENUM_AVAILABLE(10_2) = 109, /* maximum number of samples */ + kCGLRPSampleModes OPENGL_ENUM_AVAILABLE(10_3) = 110, /* a bitfield of supported sample modes */ + kCGLRPSampleAlpha OPENGL_ENUM_AVAILABLE(10_3) = 111, /* support for alpha sampling */ + kCGLRPGPUVertProcCapable OPENGL_ENUM_AVAILABLE(10_4) = 122, /* renderer capable of GPU vertex processing */ + kCGLRPGPUFragProcCapable OPENGL_ENUM_AVAILABLE(10_4) = 123, /* renderer capable of GPU fragment processing */ + kCGLRPRendererCount = 128, /* the number of renderers in this renderer info */ + kCGLRPOnline OPENGL_ENUM_AVAILABLE(10_5) = 129, /* a boolean stating if renderer is on/offline */ + kCGLRPAcceleratedCompute OPENGL_ENUM_AVAILABLE(10_6) = 130, /* hardware accelerated compute device */ + kCGLRPVideoMemoryMegabytes OPENGL_ENUM_AVAILABLE(10_7) = 131, /* total video memory (in megabytes) */ + kCGLRPTextureMemoryMegabytes OPENGL_ENUM_AVAILABLE(10_7) = 132, /* video memory useable for textures (in megabytes) */ + kCGLRPMajorGLVersion OPENGL_ENUM_AVAILABLE(10_9) = 133, /* maximum supported major GL revision */ + + kCGLRPRobust OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 75, + kCGLRPMPSafe OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 78, + kCGLRPMultiScreen OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 81, + kCGLRPFullScreen OPENGL_ENUM_DEPRECATED(10_0, 10_6) = 54, + kCGLRPVideoMemory OPENGL_ENUM_DEPRECATED_MSG(10_0, 10_7, "Use kCGLRPVideoMemoryMegabytes") = 120, + kCGLRPTextureMemory OPENGL_ENUM_DEPRECATED_MSG(10_0, 10_7, "Use kCGLRPTextureMemoryMegabytes") = 121, +} CGLRendererProperty; + +/* +** Enable names for CGLEnable, CGLDisable, and CGLIsEnabled. +*/ +typedef enum _CGLContextEnable { + kCGLCESwapRectangle = 201, /* Enable or disable the swap rectangle */ + kCGLCESwapLimit OPENGL_ENUM_AVAILABLE(10_2) = 203, /* Enable or disable the swap async limit */ + kCGLCERasterization = 221, /* Enable or disable all rasterization */ + kCGLCEStateValidation = 301, /* Validate state for multi-screen functionality */ + kCGLCESurfaceBackingSize OPENGL_ENUM_AVAILABLE(10_3) = 305, /* Enable or disable surface backing size override */ + kCGLCEDisplayListOptimization OPENGL_ENUM_AVAILABLE(10_3) = 307, /* Ability to turn off display list optimizer */ + kCGLCEMPEngine OPENGL_ENUM_AVAILABLE(10_4) = 313, /* Enable or disable multi-threaded GL engine */ + kCGLCECrashOnRemovedFunctions OPENGL_ENUM_AVAILABLE(10_7) = 316 /* Die on call to function removed from Core Profile */ +} CGLContextEnable; + +/* +** GPURestartStatus names +*/ +typedef enum _CGLGPURestartStatus { /* GPU Restart Status */ + kCGLCPGPURestartStatusNone = 0, /* current context has not caused recent GPU restart */ + kCGLCPGPURestartStatusCaused = 1, /* current context caused recent GPU restart (auto-clear on query) */ + kCGLCPGPURestartStatusBlacklisted = 2, /* current context is being ignored for excessive GPU restarts (won't clear on query) */ +} CGLGPURestartStatus; + +/* +** Parameter names for CGLSetParameter and CGLGetParameter. +*/ +typedef enum _CGLContextParameter { + kCGLCPSwapRectangle = 200, /* 4 params. Set or get the swap rectangle {x, y, w, h} */ + kCGLCPSwapInterval = 222, /* 1 param. 0 -> Don't sync, 1 -> Sync to vertical retrace */ + kCGLCPDispatchTableSize OPENGL_ENUM_AVAILABLE(10_3) = 224, /* 1 param. Get the dispatch table size */ + /* Note: kCGLCPClientStorage is always a pointer-sized parameter, even though the API claims GLint. */ + kCGLCPClientStorage = 226, /* 1 param. Context specific generic storage */ + kCGLCPSurfaceTexture OPENGL_ENUM_DEPRECATED(10_3, 10_9) = 228, /* 3 params. Context, target, internal_format */ +/* - Used by AGL - */ +/* AGL_STATE_VALIDATION 230 */ +/* AGL_BUFFER_NAME 231 */ +/* AGL_ORDER_CONTEXT_TO_FRONT 232 */ +/* AGL_CONTEXT_SURFACE_ID 233 */ +/* AGL_CONTEXT_DISPLAY_ID 234 */ + kCGLCPSurfaceOrder OPENGL_ENUM_AVAILABLE(10_2) = 235, /* 1 param. 1 -> Above window, -1 -> Below Window */ + kCGLCPSurfaceOpacity OPENGL_ENUM_AVAILABLE(10_2) = 236, /* 1 param. 1 -> Surface is opaque (default), 0 -> non-opaque */ +/* - Used by AGL - */ +/* AGL_CLIP_REGION 254 */ +/* AGL_FS_CAPTURE_SINGLE 255 */ + kCGLCPSurfaceBackingSize OPENGL_ENUM_AVAILABLE(10_3) = 304, /* 2 params. Width/height of surface backing size */ +/* AGL_SURFACE_VOLATILE 306 */ + kCGLCPSurfaceSurfaceVolatile OPENGL_ENUM_AVAILABLE(10_3) = 306, /* 1 param. Surface volatile state */ + kCGLCPReclaimResources OPENGL_ENUM_AVAILABLE(10_4) = 308, /* 0 params. */ + kCGLCPCurrentRendererID OPENGL_ENUM_AVAILABLE(10_4) = 309, /* 1 param. Retrieves the current renderer ID */ + kCGLCPGPUVertexProcessing OPENGL_ENUM_AVAILABLE(10_4) = 310, /* 1 param. Currently processing vertices with GPU (get) */ + kCGLCPGPUFragmentProcessing OPENGL_ENUM_AVAILABLE(10_4) = 311, /* 1 param. Currently processing fragments with GPU (get) */ + kCGLCPHasDrawable OPENGL_ENUM_AVAILABLE(10_5) = 314, /* 1 param. Boolean returned if drawable is attached */ + kCGLCPMPSwapsInFlight OPENGL_ENUM_AVAILABLE(10_5) = 315, /* 1 param. Max number of swaps queued by the MP GL engine */ + kCGLCPGPURestartStatus OPENGL_ENUM_AVAILABLE(10_10) = 317, /* 1 param. Retrieves and clears the current CGLGPURestartStatus */ + kCGLCPAbortOnGPURestartStatusBlacklisted OPENGL_ENUM_AVAILABLE(10_10) = 318, /* 1 param. Establish action to take upon blacklisting */ + kCGLCPSupportGPURestart OPENGL_ENUM_AVAILABLE(10_10) = 319, /* 1 param. Does driver support auto-restart of GPU on hang/crash? */ + kCGLCPSupportSeparateAddressSpace OPENGL_ENUM_AVAILABLE(10_10) = 320, /* 1 param. Does context get its own GPU address space? */ + kCGLCPContextPriorityRequest OPENGL_ENUM_AVAILABLE(10_10) = 608, /* 1 param. kCGLCPContextPriorityRequest[High|Normal|Low] 0|1|2 */ +} CGLContextParameter; + +typedef enum +{ + kCGLCPContextPriorityRequestHigh = 0, + kCGLCPContextPriorityRequestNormal = 1, + kCGLCPContextPriorityRequestLow = 2 +} CGLCPContextPriorityRequest; + +/* +** Option names for CGLSetOption and CGLGetOption. +*/ +typedef enum _CGLGlobalOption { + kCGLGOFormatCacheSize = 501, /* Set the size of the pixel format cache */ + kCGLGOClearFormatCache = 502, /* Reset the pixel format cache if true */ + kCGLGORetainRenderers = 503, /* Whether to retain loaded renderers in memory */ + kCGLGOUseBuildCache OPENGL_ENUM_AVAILABLE(10_5) = 506, /* Enable the function compilation block cache. */ + /* Off by default. Must be enabled at startup. */ + + kCGLGOResetLibrary OPENGL_ENUM_DEPRECATED(10_0, 10_4) = 504, + kCGLGOUseErrorHandler OPENGL_ENUM_DEPRECATED(10_0, 10_7) = 505, +} CGLGlobalOption; + +/* +** OpenGL Implementation Profiles +*/ +typedef enum _CGLOpenGLProfile { + kCGLOGLPVersion_Legacy OPENGL_ENUM_AVAILABLE(10_7) = 0x1000, /* choose a renderer compatible with GL1.0 */ + kCGLOGLPVersion_3_2_Core OPENGL_ENUM_AVAILABLE(10_7) = 0x3200, /* choose a renderer capable of GL3.2 or later */ + kCGLOGLPVersion_GL3_Core OPENGL_ENUM_AVAILABLE(10_7) = 0x3200, /* choose a renderer capable of GL3.2 or later */ + kCGLOGLPVersion_GL4_Core OPENGL_ENUM_AVAILABLE(10_9) = 0x4100, /* choose a renderer capable of GL4.1 or later */ +} CGLOpenGLProfile OPENGL_AVAILABLE(10_7); + +/* +** Error return values from CGLGetError. +*/ +typedef enum _CGLError { + kCGLNoError = 0, /* no error */ + kCGLBadAttribute = 10000, /* invalid pixel format attribute */ + kCGLBadProperty = 10001, /* invalid renderer property */ + kCGLBadPixelFormat = 10002, /* invalid pixel format */ + kCGLBadRendererInfo = 10003, /* invalid renderer info */ + kCGLBadContext = 10004, /* invalid context */ + kCGLBadDrawable = 10005, /* invalid drawable */ + kCGLBadDisplay = 10006, /* invalid graphics device */ + kCGLBadState = 10007, /* invalid context state */ + kCGLBadValue = 10008, /* invalid numerical value */ + kCGLBadMatch = 10009, /* invalid share context */ + kCGLBadEnumeration = 10010, /* invalid enumerant */ + kCGLBadOffScreen = 10011, /* invalid offscreen drawable */ + kCGLBadFullScreen = 10012, /* invalid fullscreen drawable */ + kCGLBadWindow = 10013, /* invalid window */ + kCGLBadAddress = 10014, /* invalid pointer */ + kCGLBadCodeModule = 10015, /* invalid code module */ + kCGLBadAlloc = 10016, /* invalid memory allocation */ + kCGLBadConnection = 10017 /* invalid CoreGraphics connection */ +} CGLError; + + +/* +** Buffer modes +*/ +#define kCGLMonoscopicBit 0x00000001 +#define kCGLStereoscopicBit 0x00000002 +#define kCGLSingleBufferBit 0x00000004 +#define kCGLDoubleBufferBit 0x00000008 +#define kCGLTripleBufferBit 0x00000010 + +/* +** Depth and stencil buffer depths +*/ +#define kCGL0Bit 0x00000001 +#define kCGL1Bit 0x00000002 +#define kCGL2Bit 0x00000004 +#define kCGL3Bit 0x00000008 +#define kCGL4Bit 0x00000010 +#define kCGL5Bit 0x00000020 +#define kCGL6Bit 0x00000040 +#define kCGL8Bit 0x00000080 +#define kCGL10Bit 0x00000100 +#define kCGL12Bit 0x00000200 +#define kCGL16Bit 0x00000400 +#define kCGL24Bit 0x00000800 +#define kCGL32Bit 0x00001000 +#define kCGL48Bit 0x00002000 +#define kCGL64Bit 0x00004000 +#define kCGL96Bit 0x00008000 +#define kCGL128Bit 0x00010000 + +/* +** Color and accumulation buffer formats. +*/ +#define kCGLRGB444Bit 0x00000040 /* 16 rgb bit/pixel, R=11:8, G=7:4, B=3:0 */ +#define kCGLARGB4444Bit 0x00000080 /* 16 argb bit/pixel, A=15:12, R=11:8, G=7:4, B=3:0 */ +#define kCGLRGB444A8Bit 0x00000100 /* 8-16 argb bit/pixel, A=7:0, R=11:8, G=7:4, B=3:0 */ +#define kCGLRGB555Bit 0x00000200 /* 16 rgb bit/pixel, R=14:10, G=9:5, B=4:0 */ +#define kCGLARGB1555Bit 0x00000400 /* 16 argb bit/pixel, A=15, R=14:10, G=9:5, B=4:0 */ +#define kCGLRGB555A8Bit 0x00000800 /* 8-16 argb bit/pixel, A=7:0, R=14:10, G=9:5, B=4:0 */ +#define kCGLRGB565Bit 0x00001000 /* 16 rgb bit/pixel, R=15:11, G=10:5, B=4:0 */ +#define kCGLRGB565A8Bit 0x00002000 /* 8-16 argb bit/pixel, A=7:0, R=15:11, G=10:5, B=4:0 */ +#define kCGLRGB888Bit 0x00004000 /* 32 rgb bit/pixel, R=23:16, G=15:8, B=7:0 */ +#define kCGLARGB8888Bit 0x00008000 /* 32 argb bit/pixel, A=31:24, R=23:16, G=15:8, B=7:0 */ +#define kCGLRGB888A8Bit 0x00010000 /* 8-32 argb bit/pixel, A=7:0, R=23:16, G=15:8, B=7:0 */ +#define kCGLRGB101010Bit 0x00020000 /* 32 rgb bit/pixel, R=29:20, G=19:10, B=9:0 */ +#define kCGLARGB2101010Bit 0x00040000 /* 32 argb bit/pixel, A=31:30 R=29:20, G=19:10, B=9:0 */ +#define kCGLRGB101010_A8Bit 0x00080000 /* 8-32 argb bit/pixel, A=7:0 R=29:20, G=19:10, B=9:0 */ +#define kCGLRGB121212Bit 0x00100000 /* 48 rgb bit/pixel, R=35:24, G=23:12, B=11:0 */ +#define kCGLARGB12121212Bit 0x00200000 /* 48 argb bit/pixel, A=47:36, R=35:24, G=23:12, B=11:0 */ +#define kCGLRGB161616Bit 0x00400000 /* 64 rgb bit/pixel, R=63:48, G=47:32, B=31:16 */ +#define kCGLRGBA16161616Bit 0x00800000 /* 64 argb bit/pixel, R=63:48, G=47:32, B=31:16, A=15:0 */ +#define kCGLRGBFloat64Bit 0x01000000 /* 64 rgb bit/pixel, half float */ +#define kCGLRGBAFloat64Bit 0x02000000 /* 64 argb bit/pixel, half float */ +#define kCGLRGBFloat128Bit 0x04000000 /* 128 rgb bit/pixel, ieee float */ +#define kCGLRGBAFloat128Bit 0x08000000 /* 128 argb bit/pixel, ieee float */ +#define kCGLRGBFloat256Bit 0x10000000 /* 256 rgb bit/pixel, ieee double */ +#define kCGLRGBAFloat256Bit 0x20000000 /* 256 argb bit/pixel, ieee double */ + +/* +** Sampling modes +*/ +#define kCGLSupersampleBit 0x00000001 +#define kCGLMultisampleBit 0x00000002 + +/* Obsolete */ +#define kCGLARGB16161616Bit kCGLRGBA16161616Bit + + +#ifdef __cplusplus +} +#endif + +#endif /* _CGLTYPES_H */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/OpenGL.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/OpenGL.h" new file mode 100644 index 0000000..f96ff0a --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/OpenGL.h" @@ -0,0 +1,132 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _OPENGL_H +#define _OPENGL_H + +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +OPENGL_ASSUME_NONNULL_BEGIN + +/* +** CGL API version. +*/ +#define CGL_VERSION_1_0 1 +#define CGL_VERSION_1_1 1 +#define CGL_VERSION_1_2 1 +#define CGL_VERSION_1_3 1 + +/* +** Pixel format functions +*/ +extern CGLError CGLChoosePixelFormat(const CGLPixelFormatAttribute *attribs, CGLPixelFormatObj OPENGL_NULLABLE * OPENGL_NONNULL pix, GLint *npix); +extern CGLError CGLDestroyPixelFormat(CGLPixelFormatObj pix); +extern CGLError CGLDescribePixelFormat(CGLPixelFormatObj pix, GLint pix_num, CGLPixelFormatAttribute attrib, GLint *value); +extern void CGLReleasePixelFormat(CGLPixelFormatObj pix) OPENGL_AVAILABLE(10_5); +extern CGLPixelFormatObj CGLRetainPixelFormat(CGLPixelFormatObj pix) OPENGL_AVAILABLE(10_5); +extern GLuint CGLGetPixelFormatRetainCount(CGLPixelFormatObj pix) OPENGL_AVAILABLE(10_5); + +/* +** Renderer information functions +*/ +extern CGLError CGLQueryRendererInfo(GLuint display_mask, CGLRendererInfoObj OPENGL_NULLABLE * OPENGL_NONNULL rend, GLint *nrend); +extern CGLError CGLDestroyRendererInfo(CGLRendererInfoObj rend); +extern CGLError CGLDescribeRenderer(CGLRendererInfoObj rend, GLint rend_num, CGLRendererProperty prop, GLint * OPENGL_NULLABLE value); + +/* +** Context functions +*/ +extern CGLError CGLCreateContext(CGLPixelFormatObj pix, CGLContextObj OPENGL_NULLABLE share, CGLContextObj OPENGL_NULLABLE * OPENGL_NONNULL ctx); +extern CGLError CGLDestroyContext(CGLContextObj ctx); +extern CGLError CGLCopyContext(CGLContextObj src, CGLContextObj dst, GLbitfield mask) OPENGL_DEPRECATED(10_0, 10_8); +extern CGLContextObj CGLRetainContext(CGLContextObj ctx) OPENGL_AVAILABLE(10_5); +extern void CGLReleaseContext(CGLContextObj ctx) OPENGL_AVAILABLE(10_5); +extern GLuint CGLGetContextRetainCount(CGLContextObj ctx) OPENGL_AVAILABLE(10_5); +extern CGLPixelFormatObj OPENGL_NULLABLE CGLGetPixelFormat(CGLContextObj ctx) OPENGL_AVAILABLE(10_5); + +/* +** PBuffer functions +*/ +extern CGLError CGLCreatePBuffer(GLsizei width, GLsizei height, GLenum target, GLenum internalFormat, GLint max_level, CGLPBufferObj OPENGL_NULLABLE * OPENGL_NONNULL pbuffer) OPENGL_DEPRECATED(10_3, 10_7); +extern CGLError CGLDestroyPBuffer(CGLPBufferObj pbuffer) OPENGL_DEPRECATED(10_3, 10_7); +extern CGLError CGLDescribePBuffer(CGLPBufferObj obj, GLsizei *width, GLsizei *height, GLenum *target, GLenum *internalFormat, GLint *mipmap) OPENGL_DEPRECATED(10_3, 10_7); +extern CGLError CGLTexImagePBuffer(CGLContextObj ctx, CGLPBufferObj pbuffer, GLenum source) OPENGL_DEPRECATED(10_3, 10_7); +extern CGLPBufferObj CGLRetainPBuffer(CGLPBufferObj pbuffer) OPENGL_DEPRECATED(10_5, 10_7); +extern void CGLReleasePBuffer(CGLPBufferObj pbuffer) OPENGL_DEPRECATED(10_5, 10_7); +extern GLuint CGLGetPBufferRetainCount(CGLPBufferObj pbuffer) OPENGL_DEPRECATED(10_5, 10_7); + +/* +** Drawable Functions +*/ +extern CGLError CGLSetOffScreen(CGLContextObj ctx, GLsizei width, GLsizei height, GLint rowbytes, void *baseaddr) OPENGL_DEPRECATED(10_0, 10_7); +extern CGLError CGLGetOffScreen(CGLContextObj ctx, GLsizei *width, GLsizei *height, GLint *rowbytes, void * OPENGL_NULLABLE * OPENGL_NONNULL baseaddr) OPENGL_DEPRECATED(10_0, 10_7); +extern CGLError CGLSetFullScreen(CGLContextObj ctx) OPENGL_DEPRECATED(10_0, 10_6); +extern CGLError CGLSetFullScreenOnDisplay(CGLContextObj ctx, GLuint display_mask) OPENGL_DEPRECATED(10_5, 10_7); + +extern CGLError CGLSetPBuffer(CGLContextObj ctx, CGLPBufferObj pbuffer, GLenum face, GLint level, GLint screen) OPENGL_DEPRECATED(10_3, 10_7); +extern CGLError CGLGetPBuffer(CGLContextObj ctx, CGLPBufferObj OPENGL_NULLABLE * OPENGL_NONNULL pbuffer, GLenum *face, GLint *level, GLint *screen) OPENGL_DEPRECATED(10_3, 10_7); + +extern CGLError CGLClearDrawable(CGLContextObj ctx); +extern CGLError CGLFlushDrawable(CGLContextObj ctx); + +/* +** Per context enables and parameters +*/ +extern CGLError CGLEnable(CGLContextObj ctx, CGLContextEnable pname); +extern CGLError CGLDisable(CGLContextObj ctx, CGLContextEnable pname); +extern CGLError CGLIsEnabled(CGLContextObj ctx, CGLContextEnable pname, GLint *enable); +extern CGLError CGLSetParameter(CGLContextObj ctx, CGLContextParameter pname, const GLint *params); +extern CGLError CGLGetParameter(CGLContextObj ctx, CGLContextParameter pname, GLint *params); + +/* +** Virtual screen functions +*/ +extern CGLError CGLSetVirtualScreen(CGLContextObj ctx, GLint screen); +extern CGLError CGLGetVirtualScreen(CGLContextObj ctx, GLint *screen); + +extern CGLError CGLUpdateContext(CGLContextObj ctx) OPENGL_AVAILABLE(10_7); + +/* +** Global library options +*/ +extern CGLError CGLSetGlobalOption(CGLGlobalOption pname, const GLint * OPENGL_NULLABLE params) OPENGL_AVAILABLE(10_6); +extern CGLError CGLGetGlobalOption(CGLGlobalOption pname, GLint *params) OPENGL_AVAILABLE(10_6); + +extern CGLError CGLSetOption(CGLGlobalOption pname, GLint param); /* Use CGLSetGlobalOption */ +extern CGLError CGLGetOption(CGLGlobalOption pname, GLint *param); /* Use CGLGetGlobalOption */ + +/* +** Locking functions +*/ +extern CGLError CGLLockContext(CGLContextObj ctx) OPENGL_AVAILABLE(10_4); + +extern CGLError CGLUnlockContext(CGLContextObj ctx) OPENGL_AVAILABLE(10_4); + +/* +** Version numbers +*/ +extern void CGLGetVersion(GLint * OPENGL_NULLABLE majorvers, GLint * OPENGL_NULLABLE minorvers); + +/* +** Convert an error code to a string +*/ +const char *CGLErrorString(CGLError error); + +OPENGL_ASSUME_NONNULL_END + +#ifdef __cplusplus +} +#endif + +#endif /* _OPENGL_H */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/OpenGLAvailability.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/OpenGLAvailability.h" new file mode 100644 index 0000000..db1b21d --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/OpenGLAvailability.h" @@ -0,0 +1,24 @@ +#ifndef _OpenGLAvailability_H +#define _OpenGLAvailability_H + +#include + +#if !defined(__has_extension) + #define __has_extension(x) 0 +#endif + +#define OPENGL_AVAILABLE(from) __OSX_AVAILABLE_STARTING(__MAC_##from, __IPHONE_NA) +#define OPENGL_DEPRECATED(from, to) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_##from, __MAC_##to, __IPHONE_NA, __IPHONE_NA) +#define OPENGL_DEPRECATED_MSG(from, to, msg) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_##from, __MAC_##to, __IPHONE_NA, __IPHONE_NA, "" #msg "") + +#if __has_extension(enumerator_attributes) + #define OPENGL_ENUM_AVAILABLE(from) OPENGL_AVAILABLE(from) + #define OPENGL_ENUM_DEPRECATED(from, to) OPENGL_DEPRECATED(from, to) + #define OPENGL_ENUM_DEPRECATED_MSG(from, to, msg) OPENGL_DEPRECATED_MSG(from, to, msg) +#else + #define OPENGL_ENUM_AVAILABLE(from) + #define OPENGL_ENUM_DEPRECATED(from, to) + #define OPENGL_ENUM_DEPRECATED_MSG(from, to, msg) +#endif + +#endif diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gl.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gl.h" new file mode 100644 index 0000000..ba8d0ea --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gl.h" @@ -0,0 +1,2983 @@ +#ifndef __gl_h_ +#define __gl_h_ + +#if defined __gl3_h_ && !(defined GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED) +#warning gl.h and gl3.h are both included. Compiler will not invoke errors if using removed OpenGL functionality. +#endif + +/* +** License Applicability. Except to the extent portions of this file are +** made subject to an alternative license as permitted in the SGI Free +** Software License B, Version 1.1 (the "License"), the contents of this +** file are subject only to the provisions of the License. You may not use +** this file except in compliance with the License. You may obtain a copy +** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 +** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: +** +** http://oss.sgi.com/projects/FreeB +** +** Note that, as provided in the License, the Software is distributed on an +** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS +** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND +** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A +** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. +** +** Original Code. The Original Code is: OpenGL Sample Implementation, +** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, +** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. +** Copyright in any portions created by third parties is as indicated +** elsewhere herein. All Rights Reserved. +** +** Additional Notice Provisions: This software was created using the +** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has +** not been independently verified as being compliant with the OpenGL(R) +** version 1.2.1 Specification. +*/ + +// switches to providing function pointers +//#define GL_GLEXT_FUNCTION_POINTERS 1 + +#include + +#ifndef GL_GLEXT_LEGACY +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* For compatibility with OpenGL v1.0 */ +#define GL_LOGIC_OP GL_INDEX_LOGIC_OP +#define GL_TEXTURE_COMPONENTS GL_TEXTURE_INTERNAL_FORMAT + +/*************************************************************/ + +/* Version */ +#define GL_VERSION_1_1 1 +#define GL_VERSION_1_2 1 +#define GL_VERSION_1_3 1 +#define GL_VERSION_1_4 1 +#define GL_VERSION_1_5 1 +#define GL_VERSION_2_0 1 +#define GL_VERSION_2_1 1 + +/* AccumOp */ +#define GL_ACCUM 0x0100 +#define GL_LOAD 0x0101 +#define GL_RETURN 0x0102 +#define GL_MULT 0x0103 +#define GL_ADD 0x0104 + +/* AlphaFunction */ +#define GL_NEVER 0x0200 +#define GL_LESS 0x0201 +#define GL_EQUAL 0x0202 +#define GL_LEQUAL 0x0203 +#define GL_GREATER 0x0204 +#define GL_NOTEQUAL 0x0205 +#define GL_GEQUAL 0x0206 +#define GL_ALWAYS 0x0207 + +/* AttribMask */ +#define GL_CURRENT_BIT 0x00000001 +#define GL_POINT_BIT 0x00000002 +#define GL_LINE_BIT 0x00000004 +#define GL_POLYGON_BIT 0x00000008 +#define GL_POLYGON_STIPPLE_BIT 0x00000010 +#define GL_PIXEL_MODE_BIT 0x00000020 +#define GL_LIGHTING_BIT 0x00000040 +#define GL_FOG_BIT 0x00000080 +#define GL_DEPTH_BUFFER_BIT 0x00000100 +#define GL_ACCUM_BUFFER_BIT 0x00000200 +#define GL_STENCIL_BUFFER_BIT 0x00000400 +#define GL_VIEWPORT_BIT 0x00000800 +#define GL_TRANSFORM_BIT 0x00001000 +#define GL_ENABLE_BIT 0x00002000 +#define GL_COLOR_BUFFER_BIT 0x00004000 +#define GL_HINT_BIT 0x00008000 +#define GL_EVAL_BIT 0x00010000 +#define GL_LIST_BIT 0x00020000 +#define GL_TEXTURE_BIT 0x00040000 +#define GL_SCISSOR_BIT 0x00080000 +#define GL_ALL_ATTRIB_BITS 0x000fffff + +/* BeginMode */ +#define GL_POINTS 0x0000 +#define GL_LINES 0x0001 +#define GL_LINE_LOOP 0x0002 +#define GL_LINE_STRIP 0x0003 +#define GL_TRIANGLES 0x0004 +#define GL_TRIANGLE_STRIP 0x0005 +#define GL_TRIANGLE_FAN 0x0006 +#define GL_QUADS 0x0007 +#define GL_QUAD_STRIP 0x0008 +#define GL_POLYGON 0x0009 + +/* BlendEquationMode */ +/* GL_LOGIC_OP */ +/* GL_FUNC_ADD */ +/* GL_MIN */ +/* GL_MAX */ +/* GL_FUNC_SUBTRACT */ +/* GL_FUNC_REVERSE_SUBTRACT */ + +/* BlendingFactorDest */ +#define GL_ZERO 0 +#define GL_ONE 1 +#define GL_SRC_COLOR 0x0300 +#define GL_ONE_MINUS_SRC_COLOR 0x0301 +#define GL_SRC_ALPHA 0x0302 +#define GL_ONE_MINUS_SRC_ALPHA 0x0303 +#define GL_DST_ALPHA 0x0304 +#define GL_ONE_MINUS_DST_ALPHA 0x0305 +/* GL_CONSTANT_COLOR */ +/* GL_ONE_MINUS_CONSTANT_COLOR */ +/* GL_CONSTANT_ALPHA */ +/* GL_ONE_MINUS_CONSTANT_ALPHA */ + +/* BlendingFactorSrc */ +/* GL_ZERO */ +/* GL_ONE */ +#define GL_DST_COLOR 0x0306 +#define GL_ONE_MINUS_DST_COLOR 0x0307 +#define GL_SRC_ALPHA_SATURATE 0x0308 +/* GL_SRC_ALPHA */ +/* GL_ONE_MINUS_SRC_ALPHA */ +/* GL_DST_ALPHA */ +/* GL_ONE_MINUS_DST_ALPHA */ +/* GL_CONSTANT_COLOR */ +/* GL_ONE_MINUS_CONSTANT_COLOR */ +/* GL_CONSTANT_ALPHA */ +/* GL_ONE_MINUS_CONSTANT_ALPHA */ + +/* Boolean */ +#define GL_TRUE 1 +#define GL_FALSE 0 + +/* ClearBufferMask */ +/* GL_COLOR_BUFFER_BIT */ +/* GL_ACCUM_BUFFER_BIT */ +/* GL_STENCIL_BUFFER_BIT */ +/* GL_DEPTH_BUFFER_BIT */ + +/* ClientArrayType */ +/* GL_VERTEX_ARRAY */ +/* GL_NORMAL_ARRAY */ +/* GL_COLOR_ARRAY */ +/* GL_INDEX_ARRAY */ +/* GL_TEXTURE_COORD_ARRAY */ +/* GL_EDGE_FLAG_ARRAY */ + +/* ClipPlaneName */ +#define GL_CLIP_PLANE0 0x3000 +#define GL_CLIP_PLANE1 0x3001 +#define GL_CLIP_PLANE2 0x3002 +#define GL_CLIP_PLANE3 0x3003 +#define GL_CLIP_PLANE4 0x3004 +#define GL_CLIP_PLANE5 0x3005 + +/* ColorMaterialFace */ +/* GL_FRONT */ +/* GL_BACK */ +/* GL_FRONT_AND_BACK */ + +/* ColorMaterialParameter */ +/* GL_AMBIENT */ +/* GL_DIFFUSE */ +/* GL_SPECULAR */ +/* GL_EMISSION */ +/* GL_AMBIENT_AND_DIFFUSE */ + +/* ColorPointerType */ +/* GL_BYTE */ +/* GL_UNSIGNED_BYTE */ +/* GL_SHORT */ +/* GL_UNSIGNED_SHORT */ +/* GL_INT */ +/* GL_UNSIGNED_INT */ +/* GL_FLOAT */ +/* GL_DOUBLE */ + +/* ColorTableParameterPName */ +/* GL_COLOR_TABLE_SCALE */ +/* GL_COLOR_TABLE_BIAS */ + +/* ColorTableTarget */ +/* GL_COLOR_TABLE */ +/* GL_POST_CONVOLUTION_COLOR_TABLE */ +/* GL_POST_COLOR_MATRIX_COLOR_TABLE */ +/* GL_PROXY_COLOR_TABLE */ +/* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */ +/* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */ + +/* ConvolutionBorderMode */ +/* GL_REDUCE */ +/* GL_IGNORE_BORDER */ +/* GL_CONSTANT_BORDER */ + +/* ConvolutionParameter */ +/* GL_CONVOLUTION_BORDER_MODE */ +/* GL_CONVOLUTION_FILTER_SCALE */ +/* GL_CONVOLUTION_FILTER_BIAS */ + +/* ConvolutionTarget */ +/* GL_CONVOLUTION_1D */ +/* GL_CONVOLUTION_2D */ + +/* CullFaceMode */ +/* GL_FRONT */ +/* GL_BACK */ +/* GL_FRONT_AND_BACK */ + +/* DataType */ +#define GL_BYTE 0x1400 +#define GL_UNSIGNED_BYTE 0x1401 +#define GL_SHORT 0x1402 +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_INT 0x1404 +#define GL_UNSIGNED_INT 0x1405 +#define GL_FLOAT 0x1406 +#define GL_2_BYTES 0x1407 +#define GL_3_BYTES 0x1408 +#define GL_4_BYTES 0x1409 +#define GL_DOUBLE 0x140A + +/* DepthFunction */ +/* GL_NEVER */ +/* GL_LESS */ +/* GL_EQUAL */ +/* GL_LEQUAL */ +/* GL_GREATER */ +/* GL_NOTEQUAL */ +/* GL_GEQUAL */ +/* GL_ALWAYS */ + +/* DrawBufferMode */ +#define GL_NONE 0 +#define GL_FRONT_LEFT 0x0400 +#define GL_FRONT_RIGHT 0x0401 +#define GL_BACK_LEFT 0x0402 +#define GL_BACK_RIGHT 0x0403 +#define GL_FRONT 0x0404 +#define GL_BACK 0x0405 +#define GL_LEFT 0x0406 +#define GL_RIGHT 0x0407 +#define GL_FRONT_AND_BACK 0x0408 +#define GL_AUX0 0x0409 +#define GL_AUX1 0x040A +#define GL_AUX2 0x040B +#define GL_AUX3 0x040C + +/* Enable */ +/* GL_FOG */ +/* GL_LIGHTING */ +/* GL_TEXTURE_1D */ +/* GL_TEXTURE_2D */ +/* GL_LINE_STIPPLE */ +/* GL_POLYGON_STIPPLE */ +/* GL_CULL_FACE */ +/* GL_ALPHA_TEST */ +/* GL_BLEND */ +/* GL_INDEX_LOGIC_OP */ +/* GL_COLOR_LOGIC_OP */ +/* GL_DITHER */ +/* GL_STENCIL_TEST */ +/* GL_DEPTH_TEST */ +/* GL_CLIP_PLANE0 */ +/* GL_CLIP_PLANE1 */ +/* GL_CLIP_PLANE2 */ +/* GL_CLIP_PLANE3 */ +/* GL_CLIP_PLANE4 */ +/* GL_CLIP_PLANE5 */ +/* GL_LIGHT0 */ +/* GL_LIGHT1 */ +/* GL_LIGHT2 */ +/* GL_LIGHT3 */ +/* GL_LIGHT4 */ +/* GL_LIGHT5 */ +/* GL_LIGHT6 */ +/* GL_LIGHT7 */ +/* GL_TEXTURE_GEN_S */ +/* GL_TEXTURE_GEN_T */ +/* GL_TEXTURE_GEN_R */ +/* GL_TEXTURE_GEN_Q */ +/* GL_MAP1_VERTEX_3 */ +/* GL_MAP1_VERTEX_4 */ +/* GL_MAP1_COLOR_4 */ +/* GL_MAP1_INDEX */ +/* GL_MAP1_NORMAL */ +/* GL_MAP1_TEXTURE_COORD_1 */ +/* GL_MAP1_TEXTURE_COORD_2 */ +/* GL_MAP1_TEXTURE_COORD_3 */ +/* GL_MAP1_TEXTURE_COORD_4 */ +/* GL_MAP2_VERTEX_3 */ +/* GL_MAP2_VERTEX_4 */ +/* GL_MAP2_COLOR_4 */ +/* GL_MAP2_INDEX */ +/* GL_MAP2_NORMAL */ +/* GL_MAP2_TEXTURE_COORD_1 */ +/* GL_MAP2_TEXTURE_COORD_2 */ +/* GL_MAP2_TEXTURE_COORD_3 */ +/* GL_MAP2_TEXTURE_COORD_4 */ +/* GL_POINT_SMOOTH */ +/* GL_LINE_SMOOTH */ +/* GL_POLYGON_SMOOTH */ +/* GL_SCISSOR_TEST */ +/* GL_COLOR_MATERIAL */ +/* GL_NORMALIZE */ +/* GL_AUTO_NORMAL */ +/* GL_VERTEX_ARRAY */ +/* GL_NORMAL_ARRAY */ +/* GL_COLOR_ARRAY */ +/* GL_INDEX_ARRAY */ +/* GL_TEXTURE_COORD_ARRAY */ +/* GL_EDGE_FLAG_ARRAY */ +/* GL_POLYGON_OFFSET_POINT */ +/* GL_POLYGON_OFFSET_LINE */ +/* GL_POLYGON_OFFSET_FILL */ +/* GL_COLOR_TABLE */ +/* GL_POST_CONVOLUTION_COLOR_TABLE */ +/* GL_POST_COLOR_MATRIX_COLOR_TABLE */ +/* GL_CONVOLUTION_1D */ +/* GL_CONVOLUTION_2D */ +/* GL_SEPARABLE_2D */ +/* GL_HISTOGRAM */ +/* GL_MINMAX */ +/* GL_RESCALE_NORMAL */ +/* GL_TEXTURE_3D */ + +/* ErrorCode */ +#define GL_NO_ERROR 0 +#define GL_INVALID_ENUM 0x0500 +#define GL_INVALID_VALUE 0x0501 +#define GL_INVALID_OPERATION 0x0502 +#define GL_STACK_OVERFLOW 0x0503 +#define GL_STACK_UNDERFLOW 0x0504 +#define GL_OUT_OF_MEMORY 0x0505 +/* GL_TABLE_TOO_LARGE */ + +/* FeedBackMode */ +#define GL_2D 0x0600 +#define GL_3D 0x0601 +#define GL_3D_COLOR 0x0602 +#define GL_3D_COLOR_TEXTURE 0x0603 +#define GL_4D_COLOR_TEXTURE 0x0604 + +/* FeedBackToken */ +#define GL_PASS_THROUGH_TOKEN 0x0700 +#define GL_POINT_TOKEN 0x0701 +#define GL_LINE_TOKEN 0x0702 +#define GL_POLYGON_TOKEN 0x0703 +#define GL_BITMAP_TOKEN 0x0704 +#define GL_DRAW_PIXEL_TOKEN 0x0705 +#define GL_COPY_PIXEL_TOKEN 0x0706 +#define GL_LINE_RESET_TOKEN 0x0707 + +/* FogMode */ +/* GL_LINEAR */ +#define GL_EXP 0x0800 +#define GL_EXP2 0x0801 + +/* FogParameter */ +/* GL_FOG_COLOR */ +/* GL_FOG_DENSITY */ +/* GL_FOG_END */ +/* GL_FOG_INDEX */ +/* GL_FOG_MODE */ +/* GL_FOG_START */ + +/* FrontFaceDirection */ +#define GL_CW 0x0900 +#define GL_CCW 0x0901 + +/* GetColorTableParameterPName */ +/* GL_COLOR_TABLE_SCALE */ +/* GL_COLOR_TABLE_BIAS */ +/* GL_COLOR_TABLE_FORMAT */ +/* GL_COLOR_TABLE_WIDTH */ +/* GL_COLOR_TABLE_RED_SIZE */ +/* GL_COLOR_TABLE_GREEN_SIZE */ +/* GL_COLOR_TABLE_BLUE_SIZE */ +/* GL_COLOR_TABLE_ALPHA_SIZE */ +/* GL_COLOR_TABLE_LUMINANCE_SIZE */ +/* GL_COLOR_TABLE_INTENSITY_SIZE */ + +/* GetConvolutionParameterPName */ +/* GL_CONVOLUTION_BORDER_COLOR */ +/* GL_CONVOLUTION_BORDER_MODE */ +/* GL_CONVOLUTION_FILTER_SCALE */ +/* GL_CONVOLUTION_FILTER_BIAS */ +/* GL_CONVOLUTION_FORMAT */ +/* GL_CONVOLUTION_WIDTH */ +/* GL_CONVOLUTION_HEIGHT */ +/* GL_MAX_CONVOLUTION_WIDTH */ +/* GL_MAX_CONVOLUTION_HEIGHT */ + +/* GetHistogramParameterPName */ +/* GL_HISTOGRAM_WIDTH */ +/* GL_HISTOGRAM_FORMAT */ +/* GL_HISTOGRAM_RED_SIZE */ +/* GL_HISTOGRAM_GREEN_SIZE */ +/* GL_HISTOGRAM_BLUE_SIZE */ +/* GL_HISTOGRAM_ALPHA_SIZE */ +/* GL_HISTOGRAM_LUMINANCE_SIZE */ +/* GL_HISTOGRAM_SINK */ + +/* GetMapTarget */ +#define GL_COEFF 0x0A00 +#define GL_ORDER 0x0A01 +#define GL_DOMAIN 0x0A02 + +/* GetMinmaxParameterPName */ +/* GL_MINMAX_FORMAT */ +/* GL_MINMAX_SINK */ + +/* GetPixelMap */ +/* GL_PIXEL_MAP_I_TO_I */ +/* GL_PIXEL_MAP_S_TO_S */ +/* GL_PIXEL_MAP_I_TO_R */ +/* GL_PIXEL_MAP_I_TO_G */ +/* GL_PIXEL_MAP_I_TO_B */ +/* GL_PIXEL_MAP_I_TO_A */ +/* GL_PIXEL_MAP_R_TO_R */ +/* GL_PIXEL_MAP_G_TO_G */ +/* GL_PIXEL_MAP_B_TO_B */ +/* GL_PIXEL_MAP_A_TO_A */ + +/* GetPointerTarget */ +/* GL_VERTEX_ARRAY_POINTER */ +/* GL_NORMAL_ARRAY_POINTER */ +/* GL_COLOR_ARRAY_POINTER */ +/* GL_INDEX_ARRAY_POINTER */ +/* GL_TEXTURE_COORD_ARRAY_POINTER */ +/* GL_EDGE_FLAG_ARRAY_POINTER */ + +/* GetTarget */ +#define GL_CURRENT_COLOR 0x0B00 +#define GL_CURRENT_INDEX 0x0B01 +#define GL_CURRENT_NORMAL 0x0B02 +#define GL_CURRENT_TEXTURE_COORDS 0x0B03 +#define GL_CURRENT_RASTER_COLOR 0x0B04 +#define GL_CURRENT_RASTER_INDEX 0x0B05 +#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 +#define GL_CURRENT_RASTER_POSITION 0x0B07 +#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 +#define GL_CURRENT_RASTER_DISTANCE 0x0B09 +#define GL_POINT_SMOOTH 0x0B10 +#define GL_POINT_SIZE 0x0B11 +#define GL_POINT_SIZE_RANGE 0x0B12 +#define GL_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_LINE_SMOOTH 0x0B20 +#define GL_LINE_WIDTH 0x0B21 +#define GL_LINE_WIDTH_RANGE 0x0B22 +#define GL_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_LINE_STIPPLE 0x0B24 +#define GL_LINE_STIPPLE_PATTERN 0x0B25 +#define GL_LINE_STIPPLE_REPEAT 0x0B26 +/* GL_SMOOTH_POINT_SIZE_RANGE */ +/* GL_SMOOTH_POINT_SIZE_GRANULARITY */ +/* GL_SMOOTH_LINE_WIDTH_RANGE */ +/* GL_SMOOTH_LINE_WIDTH_GRANULARITY */ +/* GL_ALIASED_POINT_SIZE_RANGE */ +/* GL_ALIASED_LINE_WIDTH_RANGE */ +#define GL_LIST_MODE 0x0B30 +#define GL_MAX_LIST_NESTING 0x0B31 +#define GL_LIST_BASE 0x0B32 +#define GL_LIST_INDEX 0x0B33 +#define GL_POLYGON_MODE 0x0B40 +#define GL_POLYGON_SMOOTH 0x0B41 +#define GL_POLYGON_STIPPLE 0x0B42 +#define GL_EDGE_FLAG 0x0B43 +#define GL_CULL_FACE 0x0B44 +#define GL_CULL_FACE_MODE 0x0B45 +#define GL_FRONT_FACE 0x0B46 +#define GL_LIGHTING 0x0B50 +#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 +#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 +#define GL_LIGHT_MODEL_AMBIENT 0x0B53 +#define GL_SHADE_MODEL 0x0B54 +#define GL_COLOR_MATERIAL_FACE 0x0B55 +#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 +#define GL_COLOR_MATERIAL 0x0B57 +#define GL_FOG 0x0B60 +#define GL_FOG_INDEX 0x0B61 +#define GL_FOG_DENSITY 0x0B62 +#define GL_FOG_START 0x0B63 +#define GL_FOG_END 0x0B64 +#define GL_FOG_MODE 0x0B65 +#define GL_FOG_COLOR 0x0B66 +#define GL_DEPTH_RANGE 0x0B70 +#define GL_DEPTH_TEST 0x0B71 +#define GL_DEPTH_WRITEMASK 0x0B72 +#define GL_DEPTH_CLEAR_VALUE 0x0B73 +#define GL_DEPTH_FUNC 0x0B74 +#define GL_ACCUM_CLEAR_VALUE 0x0B80 +#define GL_STENCIL_TEST 0x0B90 +#define GL_STENCIL_CLEAR_VALUE 0x0B91 +#define GL_STENCIL_FUNC 0x0B92 +#define GL_STENCIL_VALUE_MASK 0x0B93 +#define GL_STENCIL_FAIL 0x0B94 +#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 +#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 +#define GL_STENCIL_REF 0x0B97 +#define GL_STENCIL_WRITEMASK 0x0B98 +#define GL_MATRIX_MODE 0x0BA0 +#define GL_NORMALIZE 0x0BA1 +#define GL_VIEWPORT 0x0BA2 +#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 +#define GL_PROJECTION_STACK_DEPTH 0x0BA4 +#define GL_TEXTURE_STACK_DEPTH 0x0BA5 +#define GL_MODELVIEW_MATRIX 0x0BA6 +#define GL_PROJECTION_MATRIX 0x0BA7 +#define GL_TEXTURE_MATRIX 0x0BA8 +#define GL_ATTRIB_STACK_DEPTH 0x0BB0 +#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 +#define GL_ALPHA_TEST 0x0BC0 +#define GL_ALPHA_TEST_FUNC 0x0BC1 +#define GL_ALPHA_TEST_REF 0x0BC2 +#define GL_DITHER 0x0BD0 +#define GL_BLEND_DST 0x0BE0 +#define GL_BLEND_SRC 0x0BE1 +#define GL_BLEND 0x0BE2 +#define GL_LOGIC_OP_MODE 0x0BF0 +#define GL_INDEX_LOGIC_OP 0x0BF1 +#define GL_COLOR_LOGIC_OP 0x0BF2 +#define GL_AUX_BUFFERS 0x0C00 +#define GL_DRAW_BUFFER 0x0C01 +#define GL_READ_BUFFER 0x0C02 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_INDEX_CLEAR_VALUE 0x0C20 +#define GL_INDEX_WRITEMASK 0x0C21 +#define GL_COLOR_CLEAR_VALUE 0x0C22 +#define GL_COLOR_WRITEMASK 0x0C23 +#define GL_INDEX_MODE 0x0C30 +#define GL_RGBA_MODE 0x0C31 +#define GL_DOUBLEBUFFER 0x0C32 +#define GL_STEREO 0x0C33 +#define GL_RENDER_MODE 0x0C40 +#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 +#define GL_POINT_SMOOTH_HINT 0x0C51 +#define GL_LINE_SMOOTH_HINT 0x0C52 +#define GL_POLYGON_SMOOTH_HINT 0x0C53 +#define GL_FOG_HINT 0x0C54 +#define GL_TEXTURE_GEN_S 0x0C60 +#define GL_TEXTURE_GEN_T 0x0C61 +#define GL_TEXTURE_GEN_R 0x0C62 +#define GL_TEXTURE_GEN_Q 0x0C63 +#define GL_PIXEL_MAP_I_TO_I 0x0C70 +#define GL_PIXEL_MAP_S_TO_S 0x0C71 +#define GL_PIXEL_MAP_I_TO_R 0x0C72 +#define GL_PIXEL_MAP_I_TO_G 0x0C73 +#define GL_PIXEL_MAP_I_TO_B 0x0C74 +#define GL_PIXEL_MAP_I_TO_A 0x0C75 +#define GL_PIXEL_MAP_R_TO_R 0x0C76 +#define GL_PIXEL_MAP_G_TO_G 0x0C77 +#define GL_PIXEL_MAP_B_TO_B 0x0C78 +#define GL_PIXEL_MAP_A_TO_A 0x0C79 +#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 +#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 +#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 +#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 +#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 +#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 +#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 +#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 +#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 +#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 +#define GL_UNPACK_SWAP_BYTES 0x0CF0 +#define GL_UNPACK_LSB_FIRST 0x0CF1 +#define GL_UNPACK_ROW_LENGTH 0x0CF2 +#define GL_UNPACK_SKIP_ROWS 0x0CF3 +#define GL_UNPACK_SKIP_PIXELS 0x0CF4 +#define GL_UNPACK_ALIGNMENT 0x0CF5 +#define GL_PACK_SWAP_BYTES 0x0D00 +#define GL_PACK_LSB_FIRST 0x0D01 +#define GL_PACK_ROW_LENGTH 0x0D02 +#define GL_PACK_SKIP_ROWS 0x0D03 +#define GL_PACK_SKIP_PIXELS 0x0D04 +#define GL_PACK_ALIGNMENT 0x0D05 +#define GL_MAP_COLOR 0x0D10 +#define GL_MAP_STENCIL 0x0D11 +#define GL_INDEX_SHIFT 0x0D12 +#define GL_INDEX_OFFSET 0x0D13 +#define GL_RED_SCALE 0x0D14 +#define GL_RED_BIAS 0x0D15 +#define GL_ZOOM_X 0x0D16 +#define GL_ZOOM_Y 0x0D17 +#define GL_GREEN_SCALE 0x0D18 +#define GL_GREEN_BIAS 0x0D19 +#define GL_BLUE_SCALE 0x0D1A +#define GL_BLUE_BIAS 0x0D1B +#define GL_ALPHA_SCALE 0x0D1C +#define GL_ALPHA_BIAS 0x0D1D +#define GL_DEPTH_SCALE 0x0D1E +#define GL_DEPTH_BIAS 0x0D1F +#define GL_MAX_EVAL_ORDER 0x0D30 +#define GL_MAX_LIGHTS 0x0D31 +#define GL_MAX_CLIP_PLANES 0x0D32 +#define GL_MAX_TEXTURE_SIZE 0x0D33 +#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 +#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 +#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 +#define GL_MAX_NAME_STACK_DEPTH 0x0D37 +#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 +#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 +#define GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B +#define GL_SUBPIXEL_BITS 0x0D50 +#define GL_INDEX_BITS 0x0D51 +#define GL_RED_BITS 0x0D52 +#define GL_GREEN_BITS 0x0D53 +#define GL_BLUE_BITS 0x0D54 +#define GL_ALPHA_BITS 0x0D55 +#define GL_DEPTH_BITS 0x0D56 +#define GL_STENCIL_BITS 0x0D57 +#define GL_ACCUM_RED_BITS 0x0D58 +#define GL_ACCUM_GREEN_BITS 0x0D59 +#define GL_ACCUM_BLUE_BITS 0x0D5A +#define GL_ACCUM_ALPHA_BITS 0x0D5B +#define GL_NAME_STACK_DEPTH 0x0D70 +#define GL_AUTO_NORMAL 0x0D80 +#define GL_MAP1_COLOR_4 0x0D90 +#define GL_MAP1_INDEX 0x0D91 +#define GL_MAP1_NORMAL 0x0D92 +#define GL_MAP1_TEXTURE_COORD_1 0x0D93 +#define GL_MAP1_TEXTURE_COORD_2 0x0D94 +#define GL_MAP1_TEXTURE_COORD_3 0x0D95 +#define GL_MAP1_TEXTURE_COORD_4 0x0D96 +#define GL_MAP1_VERTEX_3 0x0D97 +#define GL_MAP1_VERTEX_4 0x0D98 +#define GL_MAP2_COLOR_4 0x0DB0 +#define GL_MAP2_INDEX 0x0DB1 +#define GL_MAP2_NORMAL 0x0DB2 +#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 +#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 +#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 +#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 +#define GL_MAP2_VERTEX_3 0x0DB7 +#define GL_MAP2_VERTEX_4 0x0DB8 +#define GL_MAP1_GRID_DOMAIN 0x0DD0 +#define GL_MAP1_GRID_SEGMENTS 0x0DD1 +#define GL_MAP2_GRID_DOMAIN 0x0DD2 +#define GL_MAP2_GRID_SEGMENTS 0x0DD3 +#define GL_TEXTURE_1D 0x0DE0 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 +#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 +#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 +#define GL_SELECTION_BUFFER_POINTER 0x0DF3 +#define GL_SELECTION_BUFFER_SIZE 0x0DF4 +/* GL_TEXTURE_BINDING_1D */ +/* GL_TEXTURE_BINDING_2D */ +/* GL_TEXTURE_BINDING_3D */ +/* GL_VERTEX_ARRAY */ +/* GL_NORMAL_ARRAY */ +/* GL_COLOR_ARRAY */ +/* GL_INDEX_ARRAY */ +/* GL_TEXTURE_COORD_ARRAY */ +/* GL_EDGE_FLAG_ARRAY */ +/* GL_VERTEX_ARRAY_SIZE */ +/* GL_VERTEX_ARRAY_TYPE */ +/* GL_VERTEX_ARRAY_STRIDE */ +/* GL_NORMAL_ARRAY_TYPE */ +/* GL_NORMAL_ARRAY_STRIDE */ +/* GL_COLOR_ARRAY_SIZE */ +/* GL_COLOR_ARRAY_TYPE */ +/* GL_COLOR_ARRAY_STRIDE */ +/* GL_INDEX_ARRAY_TYPE */ +/* GL_INDEX_ARRAY_STRIDE */ +/* GL_TEXTURE_COORD_ARRAY_SIZE */ +/* GL_TEXTURE_COORD_ARRAY_TYPE */ +/* GL_TEXTURE_COORD_ARRAY_STRIDE */ +/* GL_EDGE_FLAG_ARRAY_STRIDE */ +/* GL_POLYGON_OFFSET_FACTOR */ +/* GL_POLYGON_OFFSET_UNITS */ +/* GL_COLOR_TABLE */ +/* GL_POST_CONVOLUTION_COLOR_TABLE */ +/* GL_POST_COLOR_MATRIX_COLOR_TABLE */ +/* GL_CONVOLUTION_1D */ +/* GL_CONVOLUTION_2D */ +/* GL_SEPARABLE_2D */ +/* GL_POST_CONVOLUTION_RED_SCALE */ +/* GL_POST_CONVOLUTION_GREEN_SCALE */ +/* GL_POST_CONVOLUTION_BLUE_SCALE */ +/* GL_POST_CONVOLUTION_ALPHA_SCALE */ +/* GL_POST_CONVOLUTION_RED_BIAS */ +/* GL_POST_CONVOLUTION_GREEN_BIAS */ +/* GL_POST_CONVOLUTION_BLUE_BIAS */ +/* GL_POST_CONVOLUTION_ALPHA_BIAS */ +/* GL_COLOR_MATRIX */ +/* GL_COLOR_MATRIX_STACK_DEPTH */ +/* GL_MAX_COLOR_MATRIX_STACK_DEPTH */ +/* GL_POST_COLOR_MATRIX_RED_SCALE */ +/* GL_POST_COLOR_MATRIX_GREEN_SCALE */ +/* GL_POST_COLOR_MATRIX_BLUE_SCALE */ +/* GL_POST_COLOR_MATRIX_ALPHA_SCALE */ +/* GL_POST_COLOR_MATRIX_RED_BIAS */ +/* GL_POST_COLOR_MATRIX_GREEN_BIAS */ +/* GL_POST_COLOR_MATRIX_BLUE_BIAS */ +/* GL_POST_COLOR_MATRIX_ALPHA_BIAS */ +/* GL_HISTOGRAM */ +/* GL_MINMAX */ +/* GL_MAX_ELEMENTS_VERTICES */ +/* GL_MAX_ELEMENTS_INDICES */ +/* GL_RESCALE_NORMAL */ +/* GL_LIGHT_MODEL_COLOR_CONTROL */ +/* GL_PACK_SKIP_IMAGES */ +/* GL_PACK_IMAGE_HEIGHT */ +/* GL_UNPACK_SKIP_IMAGES */ +/* GL_UNPACK_IMAGE_HEIGHT */ +/* GL_TEXTURE_3D */ +/* GL_MAX_3D_TEXTURE_SIZE */ +/* GL_BLEND_COLOR */ +/* GL_BLEND_EQUATION */ + +/* GetTextureParameter */ +/* GL_TEXTURE_MAG_FILTER */ +/* GL_TEXTURE_MIN_FILTER */ +/* GL_TEXTURE_WRAP_S */ +/* GL_TEXTURE_WRAP_T */ +#define GL_TEXTURE_WIDTH 0x1000 +#define GL_TEXTURE_HEIGHT 0x1001 +#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 +#define GL_TEXTURE_BORDER_COLOR 0x1004 +#define GL_TEXTURE_BORDER 0x1005 +/* GL_TEXTURE_RED_SIZE */ +/* GL_TEXTURE_GREEN_SIZE */ +/* GL_TEXTURE_BLUE_SIZE */ +/* GL_TEXTURE_ALPHA_SIZE */ +/* GL_TEXTURE_LUMINANCE_SIZE */ +/* GL_TEXTURE_INTENSITY_SIZE */ +/* GL_TEXTURE_PRIORITY */ +/* GL_TEXTURE_RESIDENT */ +/* GL_TEXTURE_DEPTH */ +/* GL_TEXTURE_WRAP_R */ +/* GL_TEXTURE_MIN_LOD */ +/* GL_TEXTURE_MAX_LOD */ +/* GL_TEXTURE_BASE_LEVEL */ +/* GL_TEXTURE_MAX_LEVEL */ + +/* HintMode */ +#define GL_DONT_CARE 0x1100 +#define GL_FASTEST 0x1101 +#define GL_NICEST 0x1102 + +/* HintTarget */ +/* GL_PERSPECTIVE_CORRECTION_HINT */ +/* GL_POINT_SMOOTH_HINT */ +/* GL_LINE_SMOOTH_HINT */ +/* GL_POLYGON_SMOOTH_HINT */ +/* GL_FOG_HINT */ + +/* HistogramTarget */ +/* GL_HISTOGRAM */ +/* GL_PROXY_HISTOGRAM */ + +/* IndexPointerType */ +/* GL_SHORT */ +/* GL_INT */ +/* GL_FLOAT */ +/* GL_DOUBLE */ + +/* LightModelColorControl */ +/* GL_SINGLE_COLOR */ +/* GL_SEPARATE_SPECULAR_COLOR */ + +/* LightModelParameter */ +/* GL_LIGHT_MODEL_AMBIENT */ +/* GL_LIGHT_MODEL_LOCAL_VIEWER */ +/* GL_LIGHT_MODEL_TWO_SIDE */ +/* GL_LIGHT_MODEL_COLOR_CONTROL */ + +/* LightName */ +#define GL_LIGHT0 0x4000 +#define GL_LIGHT1 0x4001 +#define GL_LIGHT2 0x4002 +#define GL_LIGHT3 0x4003 +#define GL_LIGHT4 0x4004 +#define GL_LIGHT5 0x4005 +#define GL_LIGHT6 0x4006 +#define GL_LIGHT7 0x4007 + +/* LightParameter */ +#define GL_AMBIENT 0x1200 +#define GL_DIFFUSE 0x1201 +#define GL_SPECULAR 0x1202 +#define GL_POSITION 0x1203 +#define GL_SPOT_DIRECTION 0x1204 +#define GL_SPOT_EXPONENT 0x1205 +#define GL_SPOT_CUTOFF 0x1206 +#define GL_CONSTANT_ATTENUATION 0x1207 +#define GL_LINEAR_ATTENUATION 0x1208 +#define GL_QUADRATIC_ATTENUATION 0x1209 + +/* InterleavedArrays */ +/* GL_V2F */ +/* GL_V3F */ +/* GL_C4UB_V2F */ +/* GL_C4UB_V3F */ +/* GL_C3F_V3F */ +/* GL_N3F_V3F */ +/* GL_C4F_N3F_V3F */ +/* GL_T2F_V3F */ +/* GL_T4F_V4F */ +/* GL_T2F_C4UB_V3F */ +/* GL_T2F_C3F_V3F */ +/* GL_T2F_N3F_V3F */ +/* GL_T2F_C4F_N3F_V3F */ +/* GL_T4F_C4F_N3F_V4F */ + +/* ListMode */ +#define GL_COMPILE 0x1300 +#define GL_COMPILE_AND_EXECUTE 0x1301 + +/* ListNameType */ +/* GL_BYTE */ +/* GL_UNSIGNED_BYTE */ +/* GL_SHORT */ +/* GL_UNSIGNED_SHORT */ +/* GL_INT */ +/* GL_UNSIGNED_INT */ +/* GL_FLOAT */ +/* GL_2_BYTES */ +/* GL_3_BYTES */ +/* GL_4_BYTES */ + +/* LogicOp */ +#define GL_CLEAR 0x1500 +#define GL_AND 0x1501 +#define GL_AND_REVERSE 0x1502 +#define GL_COPY 0x1503 +#define GL_AND_INVERTED 0x1504 +#define GL_NOOP 0x1505 +#define GL_XOR 0x1506 +#define GL_OR 0x1507 +#define GL_NOR 0x1508 +#define GL_EQUIV 0x1509 +#define GL_INVERT 0x150A +#define GL_OR_REVERSE 0x150B +#define GL_COPY_INVERTED 0x150C +#define GL_OR_INVERTED 0x150D +#define GL_NAND 0x150E +#define GL_SET 0x150F + +/* MapTarget */ +/* GL_MAP1_COLOR_4 */ +/* GL_MAP1_INDEX */ +/* GL_MAP1_NORMAL */ +/* GL_MAP1_TEXTURE_COORD_1 */ +/* GL_MAP1_TEXTURE_COORD_2 */ +/* GL_MAP1_TEXTURE_COORD_3 */ +/* GL_MAP1_TEXTURE_COORD_4 */ +/* GL_MAP1_VERTEX_3 */ +/* GL_MAP1_VERTEX_4 */ +/* GL_MAP2_COLOR_4 */ +/* GL_MAP2_INDEX */ +/* GL_MAP2_NORMAL */ +/* GL_MAP2_TEXTURE_COORD_1 */ +/* GL_MAP2_TEXTURE_COORD_2 */ +/* GL_MAP2_TEXTURE_COORD_3 */ +/* GL_MAP2_TEXTURE_COORD_4 */ +/* GL_MAP2_VERTEX_3 */ +/* GL_MAP2_VERTEX_4 */ + +/* MaterialFace */ +/* GL_FRONT */ +/* GL_BACK */ +/* GL_FRONT_AND_BACK */ + +/* MaterialParameter */ +#define GL_EMISSION 0x1600 +#define GL_SHININESS 0x1601 +#define GL_AMBIENT_AND_DIFFUSE 0x1602 +#define GL_COLOR_INDEXES 0x1603 +/* GL_AMBIENT */ +/* GL_DIFFUSE */ +/* GL_SPECULAR */ + +/* MatrixMode */ +#define GL_MODELVIEW 0x1700 +#define GL_PROJECTION 0x1701 +#define GL_TEXTURE 0x1702 + +/* MeshMode1 */ +/* GL_POINT */ +/* GL_LINE */ + +/* MeshMode2 */ +/* GL_POINT */ +/* GL_LINE */ +/* GL_FILL */ + +/* MinmaxTarget */ +/* GL_MINMAX */ + +/* NormalPointerType */ +/* GL_BYTE */ +/* GL_SHORT */ +/* GL_INT */ +/* GL_FLOAT */ +/* GL_DOUBLE */ + +/* PixelCopyType */ +#define GL_COLOR 0x1800 +#define GL_DEPTH 0x1801 +#define GL_STENCIL 0x1802 + +/* PixelFormat */ +#define GL_COLOR_INDEX 0x1900 +#define GL_STENCIL_INDEX 0x1901 +#define GL_DEPTH_COMPONENT 0x1902 +#define GL_RED 0x1903 +#define GL_GREEN 0x1904 +#define GL_BLUE 0x1905 +#define GL_ALPHA 0x1906 +#define GL_RGB 0x1907 +#define GL_RGBA 0x1908 +#define GL_LUMINANCE 0x1909 +#define GL_LUMINANCE_ALPHA 0x190A +/* GL_ABGR */ + +/* PixelInternalFormat */ +/* GL_ALPHA4 */ +/* GL_ALPHA8 */ +/* GL_ALPHA12 */ +/* GL_ALPHA16 */ +/* GL_LUMINANCE4 */ +/* GL_LUMINANCE8 */ +/* GL_LUMINANCE12 */ +/* GL_LUMINANCE16 */ +/* GL_LUMINANCE4_ALPHA4 */ +/* GL_LUMINANCE6_ALPHA2 */ +/* GL_LUMINANCE8_ALPHA8 */ +/* GL_LUMINANCE12_ALPHA4 */ +/* GL_LUMINANCE12_ALPHA12 */ +/* GL_LUMINANCE16_ALPHA16 */ +/* GL_INTENSITY */ +/* GL_INTENSITY4 */ +/* GL_INTENSITY8 */ +/* GL_INTENSITY12 */ +/* GL_INTENSITY16 */ +/* GL_R3_G3_B2 */ +/* GL_RGB4 */ +/* GL_RGB5 */ +/* GL_RGB8 */ +/* GL_RGB10 */ +/* GL_RGB12 */ +/* GL_RGB16 */ +/* GL_RGBA2 */ +/* GL_RGBA4 */ +/* GL_RGB5_A1 */ +/* GL_RGBA8 */ +/* GL_RGB10_A2 */ +/* GL_RGBA12 */ +/* GL_RGBA16 */ + +/* PixelMap */ +/* GL_PIXEL_MAP_I_TO_I */ +/* GL_PIXEL_MAP_S_TO_S */ +/* GL_PIXEL_MAP_I_TO_R */ +/* GL_PIXEL_MAP_I_TO_G */ +/* GL_PIXEL_MAP_I_TO_B */ +/* GL_PIXEL_MAP_I_TO_A */ +/* GL_PIXEL_MAP_R_TO_R */ +/* GL_PIXEL_MAP_G_TO_G */ +/* GL_PIXEL_MAP_B_TO_B */ +/* GL_PIXEL_MAP_A_TO_A */ + +/* PixelStore */ +/* GL_UNPACK_SWAP_BYTES */ +/* GL_UNPACK_LSB_FIRST */ +/* GL_UNPACK_ROW_LENGTH */ +/* GL_UNPACK_SKIP_ROWS */ +/* GL_UNPACK_SKIP_PIXELS */ +/* GL_UNPACK_ALIGNMENT */ +/* GL_PACK_SWAP_BYTES */ +/* GL_PACK_LSB_FIRST */ +/* GL_PACK_ROW_LENGTH */ +/* GL_PACK_SKIP_ROWS */ +/* GL_PACK_SKIP_PIXELS */ +/* GL_PACK_ALIGNMENT */ +/* GL_PACK_SKIP_IMAGES */ +/* GL_PACK_IMAGE_HEIGHT */ +/* GL_UNPACK_SKIP_IMAGES */ +/* GL_UNPACK_IMAGE_HEIGHT */ + +/* PixelTransfer */ +/* GL_MAP_COLOR */ +/* GL_MAP_STENCIL */ +/* GL_INDEX_SHIFT */ +/* GL_INDEX_OFFSET */ +/* GL_RED_SCALE */ +/* GL_RED_BIAS */ +/* GL_GREEN_SCALE */ +/* GL_GREEN_BIAS */ +/* GL_BLUE_SCALE */ +/* GL_BLUE_BIAS */ +/* GL_ALPHA_SCALE */ +/* GL_ALPHA_BIAS */ +/* GL_DEPTH_SCALE */ +/* GL_DEPTH_BIAS */ +/* GL_POST_CONVOLUTION_RED_SCALE */ +/* GL_POST_CONVOLUTION_GREEN_SCALE */ +/* GL_POST_CONVOLUTION_BLUE_SCALE */ +/* GL_POST_CONVOLUTION_ALPHA_SCALE */ +/* GL_POST_CONVOLUTION_RED_BIAS */ +/* GL_POST_CONVOLUTION_GREEN_BIAS */ +/* GL_POST_CONVOLUTION_BLUE_BIAS */ +/* GL_POST_CONVOLUTION_ALPHA_BIAS */ +/* GL_POST_COLOR_MATRIX_RED_SCALE */ +/* GL_POST_COLOR_MATRIX_GREEN_SCALE */ +/* GL_POST_COLOR_MATRIX_BLUE_SCALE */ +/* GL_POST_COLOR_MATRIX_ALPHA_SCALE */ +/* GL_POST_COLOR_MATRIX_RED_BIAS */ +/* GL_POST_COLOR_MATRIX_GREEN_BIAS */ +/* GL_POST_COLOR_MATRIX_BLUE_BIAS */ +/* GL_POST_COLOR_MATRIX_ALPHA_BIAS */ + +/* PixelType */ +#define GL_BITMAP 0x1A00 +/* GL_BYTE */ +/* GL_UNSIGNED_BYTE */ +/* GL_SHORT */ +/* GL_UNSIGNED_SHORT */ +/* GL_INT */ +/* GL_UNSIGNED_INT */ +/* GL_FLOAT */ +/* GL_BGR */ +/* GL_BGRA */ +/* GL_UNSIGNED_BYTE_3_3_2 */ +/* GL_UNSIGNED_SHORT_4_4_4_4 */ +/* GL_UNSIGNED_SHORT_5_5_5_1 */ +/* GL_UNSIGNED_INT_8_8_8_8 */ +/* GL_UNSIGNED_INT_10_10_10_2 */ +/* GL_UNSIGNED_SHORT_5_6_5 */ +/* GL_UNSIGNED_BYTE_2_3_3_REV */ +/* GL_UNSIGNED_SHORT_5_6_5_REV */ +/* GL_UNSIGNED_SHORT_4_4_4_4_REV */ +/* GL_UNSIGNED_SHORT_1_5_5_5_REV */ +/* GL_UNSIGNED_INT_8_8_8_8_REV */ +/* GL_UNSIGNED_INT_2_10_10_10_REV */ + +/* PolygonMode */ +#define GL_POINT 0x1B00 +#define GL_LINE 0x1B01 +#define GL_FILL 0x1B02 + +/* ReadBufferMode */ +/* GL_FRONT_LEFT */ +/* GL_FRONT_RIGHT */ +/* GL_BACK_LEFT */ +/* GL_BACK_RIGHT */ +/* GL_FRONT */ +/* GL_BACK */ +/* GL_LEFT */ +/* GL_RIGHT */ +/* GL_AUX0 */ +/* GL_AUX1 */ +/* GL_AUX2 */ +/* GL_AUX3 */ + +/* RenderingMode */ +#define GL_RENDER 0x1C00 +#define GL_FEEDBACK 0x1C01 +#define GL_SELECT 0x1C02 + +/* SeparableTarget */ +/* GL_SEPARABLE_2D */ + +/* ShadingModel */ +#define GL_FLAT 0x1D00 +#define GL_SMOOTH 0x1D01 + +/* StencilFunction */ +/* GL_NEVER */ +/* GL_LESS */ +/* GL_EQUAL */ +/* GL_LEQUAL */ +/* GL_GREATER */ +/* GL_NOTEQUAL */ +/* GL_GEQUAL */ +/* GL_ALWAYS */ + +/* StencilOp */ +/* GL_ZERO */ +#define GL_KEEP 0x1E00 +#define GL_REPLACE 0x1E01 +#define GL_INCR 0x1E02 +#define GL_DECR 0x1E03 +/* GL_INVERT */ + +/* StringName */ +#define GL_VENDOR 0x1F00 +#define GL_RENDERER 0x1F01 +#define GL_VERSION 0x1F02 +#define GL_EXTENSIONS 0x1F03 + +/* TextureCoordName */ +#define GL_S 0x2000 +#define GL_T 0x2001 +#define GL_R 0x2002 +#define GL_Q 0x2003 + +/* TexCoordPointerType */ +/* GL_SHORT */ +/* GL_INT */ +/* GL_FLOAT */ +/* GL_DOUBLE */ + +/* TextureEnvMode */ +#define GL_MODULATE 0x2100 +#define GL_DECAL 0x2101 +/* GL_BLEND */ +/* GL_REPLACE */ + +/* TextureEnvParameter */ +#define GL_TEXTURE_ENV_MODE 0x2200 +#define GL_TEXTURE_ENV_COLOR 0x2201 + +/* TextureEnvTarget */ +#define GL_TEXTURE_ENV 0x2300 + +/* TextureGenMode */ +#define GL_EYE_LINEAR 0x2400 +#define GL_OBJECT_LINEAR 0x2401 +#define GL_SPHERE_MAP 0x2402 + +/* TextureGenParameter */ +#define GL_TEXTURE_GEN_MODE 0x2500 +#define GL_OBJECT_PLANE 0x2501 +#define GL_EYE_PLANE 0x2502 + +/* TextureMagFilter */ +#define GL_NEAREST 0x2600 +#define GL_LINEAR 0x2601 + +/* TextureMinFilter */ +/* GL_NEAREST */ +/* GL_LINEAR */ +#define GL_NEAREST_MIPMAP_NEAREST 0x2700 +#define GL_LINEAR_MIPMAP_NEAREST 0x2701 +#define GL_NEAREST_MIPMAP_LINEAR 0x2702 +#define GL_LINEAR_MIPMAP_LINEAR 0x2703 + +/* TextureParameterName */ +#define GL_TEXTURE_MAG_FILTER 0x2800 +#define GL_TEXTURE_MIN_FILTER 0x2801 +#define GL_TEXTURE_WRAP_S 0x2802 +#define GL_TEXTURE_WRAP_T 0x2803 +/* GL_TEXTURE_BORDER_COLOR */ +/* GL_TEXTURE_PRIORITY */ +/* GL_TEXTURE_WRAP_R */ +/* GL_TEXTURE_MIN_LOD */ +/* GL_TEXTURE_MAX_LOD */ +/* GL_TEXTURE_BASE_LEVEL */ +/* GL_TEXTURE_MAX_LEVEL */ + +/* TextureTarget */ +/* GL_TEXTURE_1D */ +/* GL_TEXTURE_2D */ +/* GL_PROXY_TEXTURE_1D */ +/* GL_PROXY_TEXTURE_2D */ +/* GL_TEXTURE_3D */ +/* GL_PROXY_TEXTURE_3D */ + +/* TextureWrapMode */ +#define GL_CLAMP 0x2900 +#define GL_REPEAT 0x2901 +/* GL_CLAMP_TO_EDGE */ + +/* VertexPointerType */ +/* GL_SHORT */ +/* GL_INT */ +/* GL_FLOAT */ +/* GL_DOUBLE */ + +/* ClientAttribMask */ +#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 +#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 +#define GL_CLIENT_ALL_ATTRIB_BITS 0xffffffff + +/* polygon_offset */ +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +#define GL_POLYGON_OFFSET_POINT 0x2A01 +#define GL_POLYGON_OFFSET_LINE 0x2A02 +#define GL_POLYGON_OFFSET_FILL 0x8037 + +/* texture */ +#define GL_ALPHA4 0x803B +#define GL_ALPHA8 0x803C +#define GL_ALPHA12 0x803D +#define GL_ALPHA16 0x803E +#define GL_LUMINANCE4 0x803F +#define GL_LUMINANCE8 0x8040 +#define GL_LUMINANCE12 0x8041 +#define GL_LUMINANCE16 0x8042 +#define GL_LUMINANCE4_ALPHA4 0x8043 +#define GL_LUMINANCE6_ALPHA2 0x8044 +#define GL_LUMINANCE8_ALPHA8 0x8045 +#define GL_LUMINANCE12_ALPHA4 0x8046 +#define GL_LUMINANCE12_ALPHA12 0x8047 +#define GL_LUMINANCE16_ALPHA16 0x8048 +#define GL_INTENSITY 0x8049 +#define GL_INTENSITY4 0x804A +#define GL_INTENSITY8 0x804B +#define GL_INTENSITY12 0x804C +#define GL_INTENSITY16 0x804D +#define GL_R3_G3_B2 0x2A10 +#define GL_RGB4 0x804F +#define GL_RGB5 0x8050 +#define GL_RGB8 0x8051 +#define GL_RGB10 0x8052 +#define GL_RGB12 0x8053 +#define GL_RGB16 0x8054 +#define GL_RGBA2 0x8055 +#define GL_RGBA4 0x8056 +#define GL_RGB5_A1 0x8057 +#define GL_RGBA8 0x8058 +#define GL_RGB10_A2 0x8059 +#define GL_RGBA12 0x805A +#define GL_RGBA16 0x805B +#define GL_TEXTURE_RED_SIZE 0x805C +#define GL_TEXTURE_GREEN_SIZE 0x805D +#define GL_TEXTURE_BLUE_SIZE 0x805E +#define GL_TEXTURE_ALPHA_SIZE 0x805F +#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE 0x8061 +#define GL_PROXY_TEXTURE_1D 0x8063 +#define GL_PROXY_TEXTURE_2D 0x8064 + +/* texture_object */ +#define GL_TEXTURE_PRIORITY 0x8066 +#define GL_TEXTURE_RESIDENT 0x8067 +#define GL_TEXTURE_BINDING_1D 0x8068 +#define GL_TEXTURE_BINDING_2D 0x8069 +#define GL_TEXTURE_BINDING_3D 0x806A + +/* vertex_array */ +#define GL_VERTEX_ARRAY 0x8074 +#define GL_NORMAL_ARRAY 0x8075 +#define GL_COLOR_ARRAY 0x8076 +#define GL_INDEX_ARRAY 0x8077 +#define GL_TEXTURE_COORD_ARRAY 0x8078 +#define GL_EDGE_FLAG_ARRAY 0x8079 +#define GL_VERTEX_ARRAY_SIZE 0x807A +#define GL_VERTEX_ARRAY_TYPE 0x807B +#define GL_VERTEX_ARRAY_STRIDE 0x807C +#define GL_NORMAL_ARRAY_TYPE 0x807E +#define GL_NORMAL_ARRAY_STRIDE 0x807F +#define GL_COLOR_ARRAY_SIZE 0x8081 +#define GL_COLOR_ARRAY_TYPE 0x8082 +#define GL_COLOR_ARRAY_STRIDE 0x8083 +#define GL_INDEX_ARRAY_TYPE 0x8085 +#define GL_INDEX_ARRAY_STRIDE 0x8086 +#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A +#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C +#define GL_VERTEX_ARRAY_POINTER 0x808E +#define GL_NORMAL_ARRAY_POINTER 0x808F +#define GL_COLOR_ARRAY_POINTER 0x8090 +#define GL_INDEX_ARRAY_POINTER 0x8091 +#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 +#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 +#define GL_V2F 0x2A20 +#define GL_V3F 0x2A21 +#define GL_C4UB_V2F 0x2A22 +#define GL_C4UB_V3F 0x2A23 +#define GL_C3F_V3F 0x2A24 +#define GL_N3F_V3F 0x2A25 +#define GL_C4F_N3F_V3F 0x2A26 +#define GL_T2F_V3F 0x2A27 +#define GL_T4F_V4F 0x2A28 +#define GL_T2F_C4UB_V3F 0x2A29 +#define GL_T2F_C3F_V3F 0x2A2A +#define GL_T2F_N3F_V3F 0x2A2B +#define GL_T2F_C4F_N3F_V3F 0x2A2C +#define GL_T4F_C4F_N3F_V4F 0x2A2D + +/* bgra */ +#define GL_BGR 0x80E0 +#define GL_BGRA 0x80E1 + +/* blend_color */ +#define GL_CONSTANT_COLOR 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GL_BLEND_COLOR 0x8005 + +/* blend_minmax */ +#define GL_FUNC_ADD 0x8006 +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +#define GL_BLEND_EQUATION 0x8009 + +/* blend_equation_separate */ +#define GL_BLEND_EQUATION_RGB 0x8009 +#define GL_BLEND_EQUATION_ALPHA 0x883D + +/* blend_subtract */ +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B + +/* color_matrix */ +#define GL_COLOR_MATRIX 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB + +/* color_table */ +#define GL_COLOR_TABLE 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 +#define GL_PROXY_COLOR_TABLE 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 +#define GL_COLOR_TABLE_SCALE 0x80D6 +#define GL_COLOR_TABLE_BIAS 0x80D7 +#define GL_COLOR_TABLE_FORMAT 0x80D8 +#define GL_COLOR_TABLE_WIDTH 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF + +/* convolution */ +#define GL_CONVOLUTION_1D 0x8010 +#define GL_CONVOLUTION_2D 0x8011 +#define GL_SEPARABLE_2D 0x8012 +#define GL_CONVOLUTION_BORDER_MODE 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS 0x8015 +#define GL_REDUCE 0x8016 +#define GL_CONVOLUTION_FORMAT 0x8017 +#define GL_CONVOLUTION_WIDTH 0x8018 +#define GL_CONVOLUTION_HEIGHT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 +#define GL_CONSTANT_BORDER 0x8151 +#define GL_REPLICATE_BORDER 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR 0x8154 + +/* draw_range_elements */ +#define GL_MAX_ELEMENTS_VERTICES 0x80E8 +#define GL_MAX_ELEMENTS_INDICES 0x80E9 + +/* histogram */ +#define GL_HISTOGRAM 0x8024 +#define GL_PROXY_HISTOGRAM 0x8025 +#define GL_HISTOGRAM_WIDTH 0x8026 +#define GL_HISTOGRAM_FORMAT 0x8027 +#define GL_HISTOGRAM_RED_SIZE 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C +#define GL_HISTOGRAM_SINK 0x802D +#define GL_MINMAX 0x802E +#define GL_MINMAX_FORMAT 0x802F +#define GL_MINMAX_SINK 0x8030 +#define GL_TABLE_TOO_LARGE 0x8031 + +/* packed_pixels */ +#define GL_UNSIGNED_BYTE_3_3_2 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2 0x8036 +#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 +#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 + +/* rescale_normal */ +#define GL_RESCALE_NORMAL 0x803A + +/* separate_specular_color */ +#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 +#define GL_SINGLE_COLOR 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR 0x81FA + +/* texture3D */ +#define GL_PACK_SKIP_IMAGES 0x806B +#define GL_PACK_IMAGE_HEIGHT 0x806C +#define GL_UNPACK_SKIP_IMAGES 0x806D +#define GL_UNPACK_IMAGE_HEIGHT 0x806E +#define GL_TEXTURE_3D 0x806F +#define GL_PROXY_TEXTURE_3D 0x8070 +#define GL_TEXTURE_DEPTH 0x8071 +#define GL_TEXTURE_WRAP_R 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE 0x8073 + +/* texture_edge_clamp */ +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_CLAMP_TO_BORDER 0x812D + +/* texture_lod */ +#define GL_TEXTURE_MIN_LOD 0x813A +#define GL_TEXTURE_MAX_LOD 0x813B +#define GL_TEXTURE_BASE_LEVEL 0x813C +#define GL_TEXTURE_MAX_LEVEL 0x813D + +/* GetTarget1_2 */ +#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 +#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 +#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_ALIASED_POINT_SIZE_RANGE 0x846D +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E + +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_ACTIVE_TEXTURE 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 +#define GL_MAX_TEXTURE_UNITS 0x84E2 + +#define GL_COMBINE 0x8570 +#define GL_COMBINE_RGB 0x8571 +#define GL_COMBINE_ALPHA 0x8572 +#define GL_RGB_SCALE 0x8573 +#define GL_ADD_SIGNED 0x8574 +#define GL_INTERPOLATE 0x8575 +#define GL_CONSTANT 0x8576 +#define GL_PRIMARY_COLOR 0x8577 +#define GL_PREVIOUS 0x8578 +#define GL_SUBTRACT 0x84E7 + +#define GL_SRC0_RGB 0x8580 +#define GL_SRC1_RGB 0x8581 +#define GL_SRC2_RGB 0x8582 +#define GL_SRC0_ALPHA 0x8588 +#define GL_SRC1_ALPHA 0x8589 +#define GL_SRC2_ALPHA 0x858A + +/* Obsolete */ +#define GL_SOURCE0_RGB 0x8580 +#define GL_SOURCE1_RGB 0x8581 +#define GL_SOURCE2_RGB 0x8582 +#define GL_SOURCE0_ALPHA 0x8588 +#define GL_SOURCE1_ALPHA 0x8589 +#define GL_SOURCE2_ALPHA 0x858A + +#define GL_OPERAND0_RGB 0x8590 +#define GL_OPERAND1_RGB 0x8591 +#define GL_OPERAND2_RGB 0x8592 +#define GL_OPERAND0_ALPHA 0x8598 +#define GL_OPERAND1_ALPHA 0x8599 +#define GL_OPERAND2_ALPHA 0x859A + +#define GL_DOT3_RGB 0x86AE +#define GL_DOT3_RGBA 0x86AF + +#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 + +#define GL_NORMAL_MAP 0x8511 +#define GL_REFLECTION_MAP 0x8512 +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C + +#define GL_COMPRESSED_ALPHA 0x84E9 +#define GL_COMPRESSED_LUMINANCE 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB +#define GL_COMPRESSED_INTENSITY 0x84EC +#define GL_COMPRESSED_RGB 0x84ED +#define GL_COMPRESSED_RGBA 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 +#define GL_TEXTURE_COMPRESSED 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 + +#define GL_MULTISAMPLE 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE 0x809F +#define GL_SAMPLE_COVERAGE 0x80A0 +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_MULTISAMPLE_BIT 0x20000000 + +#define GL_DEPTH_COMPONENT16 0x81A5 +#define GL_DEPTH_COMPONENT24 0x81A6 +#define GL_DEPTH_COMPONENT32 0x81A7 +#define GL_TEXTURE_DEPTH_SIZE 0x884A +#define GL_DEPTH_TEXTURE_MODE 0x884B + +#define GL_TEXTURE_COMPARE_MODE 0x884C +#define GL_TEXTURE_COMPARE_FUNC 0x884D +#define GL_COMPARE_R_TO_TEXTURE 0x884E + +/* occlusion_query */ +#define GL_QUERY_COUNTER_BITS 0x8864 +#define GL_CURRENT_QUERY 0x8865 +#define GL_QUERY_RESULT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE 0x8867 +#define GL_SAMPLES_PASSED 0x8914 + +#define GL_FOG_COORD_SRC 0x8450 +#define GL_FOG_COORD 0x8451 +#define GL_FRAGMENT_DEPTH 0x8452 +#define GL_CURRENT_FOG_COORD 0x8453 +#define GL_FOG_COORD_ARRAY_TYPE 0x8454 +#define GL_FOG_COORD_ARRAY_STRIDE 0x8455 +#define GL_FOG_COORD_ARRAY_POINTER 0x8456 +#define GL_FOG_COORD_ARRAY 0x8457 + +/* Obsolete */ +#define GL_FOG_COORDINATE_SOURCE 0x8450 +#define GL_FOG_COORDINATE 0x8451 +#define GL_CURRENT_FOG_COORDINATE 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 +#define GL_FOG_COORDINATE_ARRAY 0x8457 + +#define GL_COLOR_SUM 0x8458 +#define GL_CURRENT_SECONDARY_COLOR 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D +#define GL_SECONDARY_COLOR_ARRAY 0x845E + +#define GL_POINT_SIZE_MIN 0x8126 +#define GL_POINT_SIZE_MAX 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 +#define GL_POINT_DISTANCE_ATTENUATION 0x8129 + +#define GL_BLEND_DST_RGB 0x80C8 +#define GL_BLEND_SRC_RGB 0x80C9 +#define GL_BLEND_DST_ALPHA 0x80CA +#define GL_BLEND_SRC_ALPHA 0x80CB + +#define GL_GENERATE_MIPMAP 0x8191 +#define GL_GENERATE_MIPMAP_HINT 0x8192 + +#define GL_INCR_WRAP 0x8507 +#define GL_DECR_WRAP 0x8508 + +#define GL_MIRRORED_REPEAT 0x8370 + +#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD +#define GL_TEXTURE_FILTER_CONTROL 0x8500 +#define GL_TEXTURE_LOD_BIAS 0x8501 + +/* vertex_buffer_object */ +#define GL_ARRAY_BUFFER 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GL_ARRAY_BUFFER_BINDING 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 +#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C +#define GL_FOG_COORD_ARRAY_BUFFER_BINDING 0x889D +#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F +#define GL_STREAM_DRAW 0x88E0 +#define GL_STREAM_READ 0x88E1 +#define GL_STREAM_COPY 0x88E2 +#define GL_STATIC_DRAW 0x88E4 +#define GL_STATIC_READ 0x88E5 +#define GL_STATIC_COPY 0x88E6 +#define GL_DYNAMIC_DRAW 0x88E8 +#define GL_DYNAMIC_READ 0x88E9 +#define GL_DYNAMIC_COPY 0x88EA +#define GL_READ_ONLY 0x88B8 +#define GL_WRITE_ONLY 0x88B9 +#define GL_READ_WRITE 0x88BA +#define GL_BUFFER_SIZE 0x8764 +#define GL_BUFFER_USAGE 0x8765 +#define GL_BUFFER_ACCESS 0x88BB +#define GL_BUFFER_MAPPED 0x88BC +#define GL_BUFFER_MAP_POINTER 0x88BD +/* Obsolete */ +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D + +/* OpenGL 2.0 */ +#define GL_CURRENT_PROGRAM 0x8B8D +#define GL_SHADER_TYPE 0x8B4F +#define GL_DELETE_STATUS 0x8B80 +#define GL_COMPILE_STATUS 0x8B81 +#define GL_LINK_STATUS 0x8B82 +#define GL_VALIDATE_STATUS 0x8B83 +#define GL_INFO_LOG_LENGTH 0x8B84 +#define GL_ATTACHED_SHADERS 0x8B85 +#define GL_ACTIVE_UNIFORMS 0x8B86 +#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 +#define GL_SHADER_SOURCE_LENGTH 0x8B88 +#define GL_FLOAT_VEC2 0x8B50 +#define GL_FLOAT_VEC3 0x8B51 +#define GL_FLOAT_VEC4 0x8B52 +#define GL_INT_VEC2 0x8B53 +#define GL_INT_VEC3 0x8B54 +#define GL_INT_VEC4 0x8B55 +#define GL_BOOL 0x8B56 +#define GL_BOOL_VEC2 0x8B57 +#define GL_BOOL_VEC3 0x8B58 +#define GL_BOOL_VEC4 0x8B59 +#define GL_FLOAT_MAT2 0x8B5A +#define GL_FLOAT_MAT3 0x8B5B +#define GL_FLOAT_MAT4 0x8B5C +#define GL_SAMPLER_1D 0x8B5D +#define GL_SAMPLER_2D 0x8B5E +#define GL_SAMPLER_3D 0x8B5F +#define GL_SAMPLER_CUBE 0x8B60 +#define GL_SAMPLER_1D_SHADOW 0x8B61 +#define GL_SAMPLER_2D_SHADOW 0x8B62 +#define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#define GL_VERTEX_SHADER 0x8B31 +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A +#define GL_MAX_VARYING_FLOATS 0x8B4B +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D +#define GL_ACTIVE_ATTRIBUTES 0x8B89 +#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A +#define GL_FRAGMENT_SHADER 0x8B30 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B +#define GL_MAX_VERTEX_ATTRIBS 0x8869 +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A +#define GL_CURRENT_VERTEX_ATTRIB 0x8626 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 +#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 +#define GL_MAX_TEXTURE_COORDS 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 +#define GL_MAX_DRAW_BUFFERS 0x8824 +#define GL_DRAW_BUFFER0 0x8825 +#define GL_DRAW_BUFFER1 0x8826 +#define GL_DRAW_BUFFER2 0x8827 +#define GL_DRAW_BUFFER3 0x8828 +#define GL_DRAW_BUFFER4 0x8829 +#define GL_DRAW_BUFFER5 0x882A +#define GL_DRAW_BUFFER6 0x882B +#define GL_DRAW_BUFFER7 0x882C +#define GL_DRAW_BUFFER8 0x882D +#define GL_DRAW_BUFFER9 0x882E +#define GL_DRAW_BUFFER10 0x882F +#define GL_DRAW_BUFFER11 0x8830 +#define GL_DRAW_BUFFER12 0x8831 +#define GL_DRAW_BUFFER13 0x8832 +#define GL_DRAW_BUFFER14 0x8833 +#define GL_DRAW_BUFFER15 0x8834 +#define GL_POINT_SPRITE 0x8861 +#define GL_COORD_REPLACE 0x8862 +#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 +#define GL_LOWER_LEFT 0x8CA1 +#define GL_UPPER_LEFT 0x8CA2 +#define GL_STENCIL_BACK_FUNC 0x8800 +#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 +#define GL_STENCIL_BACK_REF 0x8CA3 +#define GL_STENCIL_BACK_FAIL 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 +#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 + +/* OpenGL 2.1 */ +#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F +#define GL_PIXEL_PACK_BUFFER 0x88EB +#define GL_PIXEL_UNPACK_BUFFER 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF +#define GL_FLOAT_MAT2x3 0x8B65 +#define GL_FLOAT_MAT2x4 0x8B66 +#define GL_FLOAT_MAT3x2 0x8B67 +#define GL_FLOAT_MAT3x4 0x8B68 +#define GL_FLOAT_MAT4x2 0x8B69 +#define GL_FLOAT_MAT4x3 0x8B6A +#define GL_SRGB 0x8C40 +#define GL_SRGB8 0x8C41 +#define GL_SRGB_ALPHA 0x8C42 +#define GL_SRGB8_ALPHA8 0x8C43 +#define GL_SLUMINANCE_ALPHA 0x8C44 +#define GL_SLUMINANCE8_ALPHA8 0x8C45 +#define GL_SLUMINANCE 0x8C46 +#define GL_SLUMINANCE8 0x8C47 +#define GL_COMPRESSED_SRGB 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 +#define GL_COMPRESSED_SLUMINANCE 0x8C4A +#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B + +/*************************************************************/ + +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glAccumProcPtr) (GLenum op, GLfloat value); +typedef void (* glAlphaFuncProcPtr) (GLenum func, GLclampf ref); +typedef GLboolean (* glAreTexturesResidentProcPtr) (GLsizei n, const GLuint *textures, GLboolean *residences); +typedef void (* glArrayElementProcPtr) (GLint i); +typedef void (* glBeginProcPtr) (GLenum mode); +typedef void (* glBindTextureProcPtr) (GLenum target, GLuint texture); +typedef void (* glBitmapProcPtr) (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); +typedef void (* glBlendColorProcPtr) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +typedef void (* glBlendEquationProcPtr) (GLenum mode); +typedef void (* glBlendEquationSeparateProcPtr) (GLenum modeRGB, GLenum modeAlpha); +typedef void (* glBlendFuncProcPtr) (GLenum sfactor, GLenum dfactor); +typedef void (* glCallListProcPtr) (GLuint list); +typedef void (* glCallListsProcPtr) (GLsizei n, GLenum type, const GLvoid *lists); +typedef void (* glClearProcPtr) (GLbitfield mask); +typedef void (* glClearAccumProcPtr) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +typedef void (* glClearColorProcPtr) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +typedef void (* glClearDepthProcPtr) (GLclampd depth); +typedef void (* glClearIndexProcPtr) (GLfloat c); +typedef void (* glClearStencilProcPtr) (GLint s); +typedef void (* glClipPlaneProcPtr) (GLenum plane, const GLdouble *equation); +typedef void (* glColor3bProcPtr) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (* glColor3bvProcPtr) (const GLbyte *v); +typedef void (* glColor3dProcPtr) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (* glColor3dvProcPtr) (const GLdouble *v); +typedef void (* glColor3fProcPtr) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (* glColor3fvProcPtr) (const GLfloat *v); +typedef void (* glColor3iProcPtr) (GLint red, GLint green, GLint blue); +typedef void (* glColor3ivProcPtr) (const GLint *v); +typedef void (* glColor3sProcPtr) (GLshort red, GLshort green, GLshort blue); +typedef void (* glColor3svProcPtr) (const GLshort *v); +typedef void (* glColor3ubProcPtr) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (* glColor3ubvProcPtr) (const GLubyte *v); +typedef void (* glColor3uiProcPtr) (GLuint red, GLuint green, GLuint blue); +typedef void (* glColor3uivProcPtr) (const GLuint *v); +typedef void (* glColor3usProcPtr) (GLushort red, GLushort green, GLushort blue); +typedef void (* glColor3usvProcPtr) (const GLushort *v); +typedef void (* glColor4bProcPtr) (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); +typedef void (* glColor4bvProcPtr) (const GLbyte *v); +typedef void (* glColor4dProcPtr) (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); +typedef void (* glColor4dvProcPtr) (const GLdouble *v); +typedef void (* glColor4fProcPtr) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +typedef void (* glColor4fvProcPtr) (const GLfloat *v); +typedef void (* glColor4iProcPtr) (GLint red, GLint green, GLint blue, GLint alpha); +typedef void (* glColor4ivProcPtr) (const GLint *v); +typedef void (* glColor4sProcPtr) (GLshort red, GLshort green, GLshort blue, GLshort alpha); +typedef void (* glColor4svProcPtr) (const GLshort *v); +typedef void (* glColor4ubProcPtr) (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); +typedef void (* glColor4ubvProcPtr) (const GLubyte *v); +typedef void (* glColor4uiProcPtr) (GLuint red, GLuint green, GLuint blue, GLuint alpha); +typedef void (* glColor4uivProcPtr) (const GLuint *v); +typedef void (* glColor4usProcPtr) (GLushort red, GLushort green, GLushort blue, GLushort alpha); +typedef void (* glColor4usvProcPtr) (const GLushort *v); +typedef void (* glColorMaskProcPtr) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +typedef void (* glColorMaterialProcPtr) (GLenum face, GLenum mode); +typedef void (* glColorPointerProcPtr) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glColorSubTableProcPtr) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); +typedef void (* glColorTableProcPtr) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); +typedef void (* glColorTableParameterfvProcPtr) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (* glColorTableParameterivProcPtr) (GLenum target, GLenum pname, const GLint *params); +typedef void (* glConvolutionFilter1DProcPtr) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); +typedef void (* glConvolutionFilter2DProcPtr) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); +typedef void (* glConvolutionParameterfProcPtr) (GLenum target, GLenum pname, GLfloat params); +typedef void (* glConvolutionParameterfvProcPtr) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (* glConvolutionParameteriProcPtr) (GLenum target, GLenum pname, GLint params); +typedef void (* glConvolutionParameterivProcPtr) (GLenum target, GLenum pname, const GLint *params); +typedef void (* glCopyColorSubTableProcPtr) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +typedef void (* glCopyColorTableProcPtr) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (* glCopyConvolutionFilter1DProcPtr) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (* glCopyConvolutionFilter2DProcPtr) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (* glCopyPixelsProcPtr) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); +typedef void (* glCopyTexImage1DProcPtr) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (* glCopyTexImage2DProcPtr) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (* glCopyTexSubImage1DProcPtr) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (* glCopyTexSubImage2DProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (* glCopyTexSubImage3DProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (* glCullFaceProcPtr) (GLenum mode); +typedef void (* glDeleteListsProcPtr) (GLuint list, GLsizei range); +typedef void (* glDeleteTexturesProcPtr) (GLsizei n, const GLuint *textures); +typedef void (* glDepthFuncProcPtr) (GLenum func); +typedef void (* glDepthMaskProcPtr) (GLboolean flag); +typedef void (* glDepthRangeProcPtr) (GLclampd zNear, GLclampd zFar); +typedef void (* glDisableProcPtr) (GLenum cap); +typedef void (* glDisableClientStateProcPtr) (GLenum array); +typedef void (* glDrawArraysProcPtr) (GLenum mode, GLint first, GLsizei count); +typedef void (* glDrawBufferProcPtr) (GLenum mode); +typedef void (* glDrawElementsProcPtr) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); +typedef void (* glDrawPixelsProcPtr) (GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (* glDrawRangeElementsProcPtr) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +typedef void (* glEdgeFlagProcPtr) (GLboolean flag); +typedef void (* glEdgeFlagPointerProcPtr) (GLsizei stride, const GLvoid *pointer); +typedef void (* glEdgeFlagvProcPtr) (const GLboolean *flag); +typedef void (* glEnableProcPtr) (GLenum cap); +typedef void (* glEnableClientStateProcPtr) (GLenum array); +typedef void (* glEndProcPtr) (void); +typedef void (* glEndListProcPtr) (void); +typedef void (* glEvalCoord1dProcPtr) (GLdouble u); +typedef void (* glEvalCoord1dvProcPtr) (const GLdouble *u); +typedef void (* glEvalCoord1fProcPtr) (GLfloat u); +typedef void (* glEvalCoord1fvProcPtr) (const GLfloat *u); +typedef void (* glEvalCoord2dProcPtr) (GLdouble u, GLdouble v); +typedef void (* glEvalCoord2dvProcPtr) (const GLdouble *u); +typedef void (* glEvalCoord2fProcPtr) (GLfloat u, GLfloat v); +typedef void (* glEvalCoord2fvProcPtr) (const GLfloat *u); +typedef void (* glEvalMesh1ProcPtr) (GLenum mode, GLint i1, GLint i2); +typedef void (* glEvalMesh2ProcPtr) (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); +typedef void (* glEvalPoint1ProcPtr) (GLint i); +typedef void (* glEvalPoint2ProcPtr) (GLint i, GLint j); +typedef void (* glFeedbackBufferProcPtr) (GLsizei size, GLenum type, GLfloat *buffer); +typedef void (* glFinishProcPtr) (void); +typedef void (* glFlushProcPtr) (void); +typedef void (* glFogfProcPtr) (GLenum pname, GLfloat param); +typedef void (* glFogfvProcPtr) (GLenum pname, const GLfloat *params); +typedef void (* glFogiProcPtr) (GLenum pname, GLint param); +typedef void (* glFogivProcPtr) (GLenum pname, const GLint *params); +typedef void (* glFrontFaceProcPtr) (GLenum mode); +typedef void (* glFrustumProcPtr) (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +typedef GLuint (* glGenListsProcPtr) (GLsizei range); +typedef void (* glGenTexturesProcPtr) (GLsizei n, GLuint *textures); +typedef void (* glGetBooleanvProcPtr) (GLenum pname, GLboolean *params); +typedef void (* glGetClipPlaneProcPtr) (GLenum plane, GLdouble *equation); +typedef void (* glGetColorTableProcPtr) (GLenum target, GLenum format, GLenum type, GLvoid *table); +typedef void (* glGetColorTableParameterfvProcPtr) (GLenum target, GLenum pname, GLfloat *params); +typedef void (* glGetColorTableParameterivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetConvolutionFilterProcPtr) (GLenum target, GLenum format, GLenum type, GLvoid *image); +typedef void (* glGetConvolutionParameterfvProcPtr) (GLenum target, GLenum pname, GLfloat *params); +typedef void (* glGetConvolutionParameterivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetDoublevProcPtr) (GLenum pname, GLdouble *params); +typedef GLenum (* glGetErrorProcPtr) (void); +typedef void (* glGetFloatvProcPtr) (GLenum pname, GLfloat *params); +typedef void (* glGetHistogramProcPtr) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (* glGetHistogramParameterfvProcPtr) (GLenum target, GLenum pname, GLfloat *params); +typedef void (* glGetHistogramParameterivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetIntegervProcPtr) (GLenum pname, GLint *params); +typedef void (* glGetLightfvProcPtr) (GLenum light, GLenum pname, GLfloat *params); +typedef void (* glGetLightivProcPtr) (GLenum light, GLenum pname, GLint *params); +typedef void (* glGetMapdvProcPtr) (GLenum target, GLenum query, GLdouble *v); +typedef void (* glGetMapfvProcPtr) (GLenum target, GLenum query, GLfloat *v); +typedef void (* glGetMapivProcPtr) (GLenum target, GLenum query, GLint *v); +typedef void (* glGetMaterialfvProcPtr) (GLenum face, GLenum pname, GLfloat *params); +typedef void (* glGetMaterialivProcPtr) (GLenum face, GLenum pname, GLint *params); +typedef void (* glGetMinmaxProcPtr) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (* glGetMinmaxParameterfvProcPtr) (GLenum target, GLenum pname, GLfloat *params); +typedef void (* glGetMinmaxParameterivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetPixelMapfvProcPtr) (GLenum map, GLfloat *values); +typedef void (* glGetPixelMapuivProcPtr) (GLenum map, GLuint *values); +typedef void (* glGetPixelMapusvProcPtr) (GLenum map, GLushort *values); +typedef void (* glGetPointervProcPtr) (GLenum pname, GLvoid **params); +typedef void (* glGetPolygonStippleProcPtr) (GLubyte *mask); +typedef void (* glGetSeparableFilterProcPtr) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); +typedef const GLubyte *(* glGetStringProcPtr) (GLenum name); +typedef void (* glGetTexEnvfvProcPtr) (GLenum target, GLenum pname, GLfloat *params); +typedef void (* glGetTexEnvivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetTexGendvProcPtr) (GLenum coord, GLenum pname, GLdouble *params); +typedef void (* glGetTexGenfvProcPtr) (GLenum coord, GLenum pname, GLfloat *params); +typedef void (* glGetTexGenivProcPtr) (GLenum coord, GLenum pname, GLint *params); +typedef void (* glGetTexImageProcPtr) (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); +typedef void (* glGetTexLevelParameterfvProcPtr) (GLenum target, GLint level, GLenum pname, GLfloat *params); +typedef void (* glGetTexLevelParameterivProcPtr) (GLenum target, GLint level, GLenum pname, GLint *params); +typedef void (* glGetTexParameterfvProcPtr) (GLenum target, GLenum pname, GLfloat *params); +typedef void (* glGetTexParameterivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glHintProcPtr) (GLenum target, GLenum mode); +typedef void (* glHistogramProcPtr) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +typedef void (* glIndexMaskProcPtr) (GLuint mask); +typedef void (* glIndexPointerProcPtr) (GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glIndexdProcPtr) (GLdouble c); +typedef void (* glIndexdvProcPtr) (const GLdouble *c); +typedef void (* glIndexfProcPtr) (GLfloat c); +typedef void (* glIndexfvProcPtr) (const GLfloat *c); +typedef void (* glIndexiProcPtr) (GLint c); +typedef void (* glIndexivProcPtr) (const GLint *c); +typedef void (* glIndexsProcPtr) (GLshort c); +typedef void (* glIndexsvProcPtr) (const GLshort *c); +typedef void (* glIndexubProcPtr) (GLubyte c); +typedef void (* glIndexubvProcPtr) (const GLubyte *c); +typedef void (* glInitNamesProcPtr) (void); +typedef void (* glInterleavedArraysProcPtr) (GLenum format, GLsizei stride, const GLvoid *pointer); +typedef GLboolean (* glIsEnabledProcPtr) (GLenum cap); +typedef GLboolean (* glIsListProcPtr) (GLuint list); +typedef GLboolean (* glIsTextureProcPtr) (GLuint texture); +typedef void (* glLightModelfProcPtr) (GLenum pname, GLfloat param); +typedef void (* glLightModelfvProcPtr) (GLenum pname, const GLfloat *params); +typedef void (* glLightModeliProcPtr) (GLenum pname, GLint param); +typedef void (* glLightModelivProcPtr) (GLenum pname, const GLint *params); +typedef void (* glLightfProcPtr) (GLenum light, GLenum pname, GLfloat param); +typedef void (* glLightfvProcPtr) (GLenum light, GLenum pname, const GLfloat *params); +typedef void (* glLightiProcPtr) (GLenum light, GLenum pname, GLint param); +typedef void (* glLightivProcPtr) (GLenum light, GLenum pname, const GLint *params); +typedef void (* glLineStippleProcPtr) (GLint factor, GLushort pattern); +typedef void (* glLineWidthProcPtr) (GLfloat width); +typedef void (* glListBaseProcPtr) (GLuint base); +typedef void (* glLoadIdentityProcPtr) (void); +typedef void (* glLoadMatrixdProcPtr) (const GLdouble *m); +typedef void (* glLoadMatrixfProcPtr) (const GLfloat *m); +typedef void (* glLoadNameProcPtr) (GLuint name); +typedef void (* glLogicOpProcPtr) (GLenum opcode); +typedef void (* glMap1dProcPtr) (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +typedef void (* glMap1fProcPtr) (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +typedef void (* glMap2dProcPtr) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +typedef void (* glMap2fProcPtr) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +typedef void (* glMapGrid1dProcPtr) (GLint un, GLdouble u1, GLdouble u2); +typedef void (* glMapGrid1fProcPtr) (GLint un, GLfloat u1, GLfloat u2); +typedef void (* glMapGrid2dProcPtr) (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); +typedef void (* glMapGrid2fProcPtr) (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); +typedef void (* glMaterialfProcPtr) (GLenum face, GLenum pname, GLfloat param); +typedef void (* glMaterialfvProcPtr) (GLenum face, GLenum pname, const GLfloat *params); +typedef void (* glMaterialiProcPtr) (GLenum face, GLenum pname, GLint param); +typedef void (* glMaterialivProcPtr) (GLenum face, GLenum pname, const GLint *params); +typedef void (* glMatrixModeProcPtr) (GLenum mode); +typedef void (* glMinmaxProcPtr) (GLenum target, GLenum internalformat, GLboolean sink); +typedef void (* glMultMatrixdProcPtr) (const GLdouble *m); +typedef void (* glMultMatrixfProcPtr) (const GLfloat *m); +typedef void (* glNewListProcPtr) (GLuint list, GLenum mode); +typedef void (* glNormal3bProcPtr) (GLbyte nx, GLbyte ny, GLbyte nz); +typedef void (* glNormal3bvProcPtr) (const GLbyte *v); +typedef void (* glNormal3dProcPtr) (GLdouble nx, GLdouble ny, GLdouble nz); +typedef void (* glNormal3dvProcPtr) (const GLdouble *v); +typedef void (* glNormal3fProcPtr) (GLfloat nx, GLfloat ny, GLfloat nz); +typedef void (* glNormal3fvProcPtr) (const GLfloat *v); +typedef void (* glNormal3iProcPtr) (GLint nx, GLint ny, GLint nz); +typedef void (* glNormal3ivProcPtr) (const GLint *v); +typedef void (* glNormal3sProcPtr) (GLshort nx, GLshort ny, GLshort nz); +typedef void (* glNormal3svProcPtr) (const GLshort *v); +typedef void (* glNormalPointerProcPtr) (GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glOrthoProcPtr) (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +typedef void (* glPassThroughProcPtr) (GLfloat token); +typedef void (* glPixelMapfvProcPtr) (GLenum map, GLint mapsize, const GLfloat *values); +typedef void (* glPixelMapuivProcPtr) (GLenum map, GLint mapsize, const GLuint *values); +typedef void (* glPixelMapusvProcPtr) (GLenum map, GLint mapsize, const GLushort *values); +typedef void (* glPixelStorefProcPtr) (GLenum pname, GLfloat param); +typedef void (* glPixelStoreiProcPtr) (GLenum pname, GLint param); +typedef void (* glPixelTransferfProcPtr) (GLenum pname, GLfloat param); +typedef void (* glPixelTransferiProcPtr) (GLenum pname, GLint param); +typedef void (* glPixelZoomProcPtr) (GLfloat xfactor, GLfloat yfactor); +typedef void (* glPointSizeProcPtr) (GLfloat size); +typedef void (* glPolygonModeProcPtr) (GLenum face, GLenum mode); +typedef void (* glPolygonOffsetProcPtr) (GLfloat factor, GLfloat units); +typedef void (* glPolygonStippleProcPtr) (const GLubyte *mask); +typedef void (* glPopAttribProcPtr) (void); +typedef void (* glPopClientAttribProcPtr) (void); +typedef void (* glPopMatrixProcPtr) (void); +typedef void (* glPopNameProcPtr) (void); +typedef void (* glPrioritizeTexturesProcPtr) (GLsizei n, const GLuint *textures, const GLclampf *priorities); +typedef void (* glPushAttribProcPtr) (GLbitfield mask); +typedef void (* glPushClientAttribProcPtr) (GLbitfield mask); +typedef void (* glPushMatrixProcPtr) (void); +typedef void (* glPushNameProcPtr) (GLuint name); +typedef void (* glRasterPos2dProcPtr) (GLdouble x, GLdouble y); +typedef void (* glRasterPos2dvProcPtr) (const GLdouble *v); +typedef void (* glRasterPos2fProcPtr) (GLfloat x, GLfloat y); +typedef void (* glRasterPos2fvProcPtr) (const GLfloat *v); +typedef void (* glRasterPos2iProcPtr) (GLint x, GLint y); +typedef void (* glRasterPos2ivProcPtr) (const GLint *v); +typedef void (* glRasterPos2sProcPtr) (GLshort x, GLshort y); +typedef void (* glRasterPos2svProcPtr) (const GLshort *v); +typedef void (* glRasterPos3dProcPtr) (GLdouble x, GLdouble y, GLdouble z); +typedef void (* glRasterPos3dvProcPtr) (const GLdouble *v); +typedef void (* glRasterPos3fProcPtr) (GLfloat x, GLfloat y, GLfloat z); +typedef void (* glRasterPos3fvProcPtr) (const GLfloat *v); +typedef void (* glRasterPos3iProcPtr) (GLint x, GLint y, GLint z); +typedef void (* glRasterPos3ivProcPtr) (const GLint *v); +typedef void (* glRasterPos3sProcPtr) (GLshort x, GLshort y, GLshort z); +typedef void (* glRasterPos3svProcPtr) (const GLshort *v); +typedef void (* glRasterPos4dProcPtr) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glRasterPos4dvProcPtr) (const GLdouble *v); +typedef void (* glRasterPos4fProcPtr) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glRasterPos4fvProcPtr) (const GLfloat *v); +typedef void (* glRasterPos4iProcPtr) (GLint x, GLint y, GLint z, GLint w); +typedef void (* glRasterPos4ivProcPtr) (const GLint *v); +typedef void (* glRasterPos4sProcPtr) (GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (* glRasterPos4svProcPtr) (const GLshort *v); +typedef void (* glReadBufferProcPtr) (GLenum mode); +typedef void (* glReadPixelsProcPtr) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); +typedef void (* glRectdProcPtr) (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); +typedef void (* glRectdvProcPtr) (const GLdouble *v1, const GLdouble *v2); +typedef void (* glRectfProcPtr) (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); +typedef void (* glRectfvProcPtr) (const GLfloat *v1, const GLfloat *v2); +typedef void (* glRectiProcPtr) (GLint x1, GLint y1, GLint x2, GLint y2); +typedef void (* glRectivProcPtr) (const GLint *v1, const GLint *v2); +typedef void (* glRectsProcPtr) (GLshort x1, GLshort y1, GLshort x2, GLshort y2); +typedef void (* glRectsvProcPtr) (const GLshort *v1, const GLshort *v2); +typedef GLint (* glRenderModeProcPtr) (GLenum mode); +typedef void (* glResetHistogramProcPtr) (GLenum target); +typedef void (* glResetMinmaxProcPtr) (GLenum target); +typedef void (* glRotatedProcPtr) (GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +typedef void (* glRotatefProcPtr) (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +typedef void (* glScaledProcPtr) (GLdouble x, GLdouble y, GLdouble z); +typedef void (* glScalefProcPtr) (GLfloat x, GLfloat y, GLfloat z); +typedef void (* glScissorProcPtr) (GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (* glSelectBufferProcPtr) (GLsizei size, GLuint *buffer); +typedef void (* glSeparableFilter2DProcPtr) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); +typedef void (* glShadeModelProcPtr) (GLenum mode); +typedef void (* glStencilFuncProcPtr) (GLenum func, GLint ref, GLuint mask); +typedef void (* glStencilMaskProcPtr) (GLuint mask); +typedef void (* glStencilOpProcPtr) (GLenum fail, GLenum zfail, GLenum zpass); +typedef void (* glTexCoord1dProcPtr) (GLdouble s); +typedef void (* glTexCoord1dvProcPtr) (const GLdouble *v); +typedef void (* glTexCoord1fProcPtr) (GLfloat s); +typedef void (* glTexCoord1fvProcPtr) (const GLfloat *v); +typedef void (* glTexCoord1iProcPtr) (GLint s); +typedef void (* glTexCoord1ivProcPtr) (const GLint *v); +typedef void (* glTexCoord1sProcPtr) (GLshort s); +typedef void (* glTexCoord1svProcPtr) (const GLshort *v); +typedef void (* glTexCoord2dProcPtr) (GLdouble s, GLdouble t); +typedef void (* glTexCoord2dvProcPtr) (const GLdouble *v); +typedef void (* glTexCoord2fProcPtr) (GLfloat s, GLfloat t); +typedef void (* glTexCoord2fvProcPtr) (const GLfloat *v); +typedef void (* glTexCoord2iProcPtr) (GLint s, GLint t); +typedef void (* glTexCoord2ivProcPtr) (const GLint *v); +typedef void (* glTexCoord2sProcPtr) (GLshort s, GLshort t); +typedef void (* glTexCoord2svProcPtr) (const GLshort *v); +typedef void (* glTexCoord3dProcPtr) (GLdouble s, GLdouble t, GLdouble r); +typedef void (* glTexCoord3dvProcPtr) (const GLdouble *v); +typedef void (* glTexCoord3fProcPtr) (GLfloat s, GLfloat t, GLfloat r); +typedef void (* glTexCoord3fvProcPtr) (const GLfloat *v); +typedef void (* glTexCoord3iProcPtr) (GLint s, GLint t, GLint r); +typedef void (* glTexCoord3ivProcPtr) (const GLint *v); +typedef void (* glTexCoord3sProcPtr) (GLshort s, GLshort t, GLshort r); +typedef void (* glTexCoord3svProcPtr) (const GLshort *v); +typedef void (* glTexCoord4dProcPtr) (GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (* glTexCoord4dvProcPtr) (const GLdouble *v); +typedef void (* glTexCoord4fProcPtr) (GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (* glTexCoord4fvProcPtr) (const GLfloat *v); +typedef void (* glTexCoord4iProcPtr) (GLint s, GLint t, GLint r, GLint q); +typedef void (* glTexCoord4ivProcPtr) (const GLint *v); +typedef void (* glTexCoord4sProcPtr) (GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (* glTexCoord4svProcPtr) (const GLshort *v); +typedef void (* glTexCoordPointerProcPtr) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glTexEnvfProcPtr) (GLenum target, GLenum pname, GLfloat param); +typedef void (* glTexEnvfvProcPtr) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (* glTexEnviProcPtr) (GLenum target, GLenum pname, GLint param); +typedef void (* glTexEnvivProcPtr) (GLenum target, GLenum pname, const GLint *params); +typedef void (* glTexGendProcPtr) (GLenum coord, GLenum pname, GLdouble param); +typedef void (* glTexGendvProcPtr) (GLenum coord, GLenum pname, const GLdouble *params); +typedef void (* glTexGenfProcPtr) (GLenum coord, GLenum pname, GLfloat param); +typedef void (* glTexGenfvProcPtr) (GLenum coord, GLenum pname, const GLfloat *params); +typedef void (* glTexGeniProcPtr) (GLenum coord, GLenum pname, GLint param); +typedef void (* glTexGenivProcPtr) (GLenum coord, GLenum pname, const GLint *params); +typedef void (* glTexImage1DProcPtr) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (* glTexImage2DProcPtr) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (* glTexImage3DProcPtr) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (* glTexParameterfProcPtr) (GLenum target, GLenum pname, GLfloat param); +typedef void (* glTexParameterfvProcPtr) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (* glTexParameteriProcPtr) (GLenum target, GLenum pname, GLint param); +typedef void (* glTexParameterivProcPtr) (GLenum target, GLenum pname, const GLint *params); +typedef void (* glTexSubImage1DProcPtr) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (* glTexSubImage2DProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (* glTexSubImage3DProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (* glTranslatedProcPtr) (GLdouble x, GLdouble y, GLdouble z); +typedef void (* glTranslatefProcPtr) (GLfloat x, GLfloat y, GLfloat z); +typedef void (* glVertex2dProcPtr) (GLdouble x, GLdouble y); +typedef void (* glVertex2dvProcPtr) (const GLdouble *v); +typedef void (* glVertex2fProcPtr) (GLfloat x, GLfloat y); +typedef void (* glVertex2fvProcPtr) (const GLfloat *v); +typedef void (* glVertex2iProcPtr) (GLint x, GLint y); +typedef void (* glVertex2ivProcPtr) (const GLint *v); +typedef void (* glVertex2sProcPtr) (GLshort x, GLshort y); +typedef void (* glVertex2svProcPtr) (const GLshort *v); +typedef void (* glVertex3dProcPtr) (GLdouble x, GLdouble y, GLdouble z); +typedef void (* glVertex3dvProcPtr) (const GLdouble *v); +typedef void (* glVertex3fProcPtr) (GLfloat x, GLfloat y, GLfloat z); +typedef void (* glVertex3fvProcPtr) (const GLfloat *v); +typedef void (* glVertex3iProcPtr) (GLint x, GLint y, GLint z); +typedef void (* glVertex3ivProcPtr) (const GLint *v); +typedef void (* glVertex3sProcPtr) (GLshort x, GLshort y, GLshort z); +typedef void (* glVertex3svProcPtr) (const GLshort *v); +typedef void (* glVertex4dProcPtr) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glVertex4dvProcPtr) (const GLdouble *v); +typedef void (* glVertex4fProcPtr) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glVertex4fvProcPtr) (const GLfloat *v); +typedef void (* glVertex4iProcPtr) (GLint x, GLint y, GLint z, GLint w); +typedef void (* glVertex4ivProcPtr) (const GLint *v); +typedef void (* glVertex4sProcPtr) (GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (* glVertex4svProcPtr) (const GLshort *v); +typedef void (* glVertexPointerProcPtr) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glViewportProcPtr) (GLint x, GLint y, GLsizei width, GLsizei height); + +typedef void (* glSampleCoverageProcPtr) (GLclampf value, GLboolean invert); + +typedef void (* glLoadTransposeMatrixfProcPtr) (const GLfloat *m); +typedef void (* glLoadTransposeMatrixdProcPtr) (const GLdouble *m); +typedef void (* glMultTransposeMatrixfProcPtr) (const GLfloat *m); +typedef void (* glMultTransposeMatrixdProcPtr) (const GLdouble *m); + +typedef void (* glCompressedTexImage3DProcPtr) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexImage2DProcPtr) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexImage1DProcPtr) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexSubImage3DProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexSubImage2DProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexSubImage1DProcPtr) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (* glGetCompressedTexImageProcPtr) (GLenum target, GLint lod, GLvoid *img); + +typedef void (* glActiveTextureProcPtr) (GLenum texture); +typedef void (* glClientActiveTextureProcPtr) (GLenum texture); +typedef void (* glMultiTexCoord1dProcPtr) (GLenum target, GLdouble s); +typedef void (* glMultiTexCoord1dvProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord1fProcPtr) (GLenum target, GLfloat s); +typedef void (* glMultiTexCoord1fvProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord1iProcPtr) (GLenum target, GLint s); +typedef void (* glMultiTexCoord1ivProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord1sProcPtr) (GLenum target, GLshort s); +typedef void (* glMultiTexCoord1svProcPtr) (GLenum target, const GLshort *v); +typedef void (* glMultiTexCoord2dProcPtr) (GLenum target, GLdouble s, GLdouble t); +typedef void (* glMultiTexCoord2dvProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord2fProcPtr) (GLenum target, GLfloat s, GLfloat t); +typedef void (* glMultiTexCoord2fvProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord2iProcPtr) (GLenum target, GLint s, GLint t); +typedef void (* glMultiTexCoord2ivProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord2sProcPtr) (GLenum target, GLshort s, GLshort t); +typedef void (* glMultiTexCoord2svProcPtr) (GLenum target, const GLshort *v); +typedef void (* glMultiTexCoord3dProcPtr) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (* glMultiTexCoord3dvProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord3fProcPtr) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (* glMultiTexCoord3fvProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord3iProcPtr) (GLenum target, GLint s, GLint t, GLint r); +typedef void (* glMultiTexCoord3ivProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord3sProcPtr) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (* glMultiTexCoord3svProcPtr) (GLenum target, const GLshort *v); +typedef void (* glMultiTexCoord4dProcPtr) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (* glMultiTexCoord4dvProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord4fProcPtr) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (* glMultiTexCoord4fvProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord4iProcPtr) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (* glMultiTexCoord4ivProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord4sProcPtr) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (* glMultiTexCoord4svProcPtr) (GLenum target, const GLshort *v); + +typedef void (* glFogCoordfProcPtr) (GLfloat coord); +typedef void (* glFogCoordfvProcPtr) (const GLfloat *coord); +typedef void (* glFogCoorddProcPtr) (GLdouble coord); +typedef void (* glFogCoorddvProcPtr) (const GLdouble *coord); +typedef void (* glFogCoordPointerProcPtr) (GLenum type, GLsizei stride, const GLvoid *pointer); + +typedef void (* glSecondaryColor3bProcPtr) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (* glSecondaryColor3bvProcPtr) (const GLbyte *v); +typedef void (* glSecondaryColor3dProcPtr) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (* glSecondaryColor3dvProcPtr) (const GLdouble *v); +typedef void (* glSecondaryColor3fProcPtr) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (* glSecondaryColor3fvProcPtr) (const GLfloat *v); +typedef void (* glSecondaryColor3iProcPtr) (GLint red, GLint green, GLint blue); +typedef void (* glSecondaryColor3ivProcPtr) (const GLint *v); +typedef void (* glSecondaryColor3sProcPtr) (GLshort red, GLshort green, GLshort blue); +typedef void (* glSecondaryColor3svProcPtr) (const GLshort *v); +typedef void (* glSecondaryColor3ubProcPtr) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (* glSecondaryColor3ubvProcPtr) (const GLubyte *v); +typedef void (* glSecondaryColor3uiProcPtr) (GLuint red, GLuint green, GLuint blue); +typedef void (* glSecondaryColor3uivProcPtr) (const GLuint *v); +typedef void (* glSecondaryColor3usProcPtr) (GLushort red, GLushort green, GLushort blue); +typedef void (* glSecondaryColor3usvProcPtr) (const GLushort *v); +typedef void (* glSecondaryColorPointerProcPtr) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + +typedef void (* glPointParameterfProcPtr) (GLenum pname, GLfloat param); +typedef void (* glPointParameterfvProcPtr) (GLenum pname, const GLfloat *params); +typedef void (* glPointParameteriProcPtr) (GLenum pname, GLint param); +typedef void (* glPointParameterivProcPtr) (GLenum pname, const GLint *params); + +typedef void (* glBlendFuncSeparateProcPtr) (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); + +typedef void (* glMultiDrawArraysProcPtr) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +typedef void (* glMultiDrawElementsProcPtr) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount); + +typedef void (* glWindowPos2dProcPtr) (GLdouble x, GLdouble y); +typedef void (* glWindowPos2dvProcPtr) (const GLdouble *v); +typedef void (* glWindowPos2fProcPtr) (GLfloat x, GLfloat y); +typedef void (* glWindowPos2fvProcPtr) (const GLfloat *v); +typedef void (* glWindowPos2iProcPtr) (GLint x, GLint y); +typedef void (* glWindowPos2ivProcPtr) (const GLint *v); +typedef void (* glWindowPos2sProcPtr) (GLshort x, GLshort y); +typedef void (* glWindowPos2svProcPtr) (const GLshort *v); +typedef void (* glWindowPos3dProcPtr) (GLdouble x, GLdouble y, GLdouble z); +typedef void (* glWindowPos3dvProcPtr) (const GLdouble *v); +typedef void (* glWindowPos3fProcPtr) (GLfloat x, GLfloat y, GLfloat z); +typedef void (* glWindowPos3fvProcPtr) (const GLfloat *v); +typedef void (* glWindowPos3iProcPtr) (GLint x, GLint y, GLint z); +typedef void (* glWindowPos3ivProcPtr) (const GLint *v); +typedef void (* glWindowPos3sProcPtr) (GLshort x, GLshort y, GLshort z); +typedef void (* glWindowPos3svProcPtr) (const GLshort *v); + +typedef void (* glGenQueriesProcPtr) (GLsizei n, GLuint *ids); +typedef void (* glDeleteQueriesProcPtr) (GLsizei n, const GLuint *ids); +typedef GLboolean (* glIsQueryProcPtr) (GLuint id); +typedef void (* glBeginQueryProcPtr) (GLenum target, GLuint id); +typedef void (* glEndQueryProcPtr) (GLenum target); +typedef void (* glGetQueryivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetQueryObjectivProcPtr) (GLuint id, GLenum pname, GLint *params); +typedef void (* glGetQueryObjectuivProcPtr) (GLuint id, GLenum pname, GLuint *params); + +typedef void (* glBindBufferProcPtr) (GLenum target, GLuint buffer); +typedef void (* glDeleteBuffersProcPtr) (GLsizei n, const GLuint *buffers); +typedef void (* glGenBuffersProcPtr) (GLsizei n, GLuint *buffers); +typedef GLboolean (* glIsBufferProcPtr) (GLuint buffer); +typedef void (* glBufferDataProcPtr) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); +typedef void (* glBufferSubDataProcPtr) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); +typedef void (* glGetBufferSubDataProcPtr) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); +typedef GLvoid *(* glMapBufferProcPtr) (GLenum target, GLenum access); +typedef GLboolean (* glUnmapBufferProcPtr) (GLenum target); +typedef void (* glGetBufferParameterivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetBufferPointervProcPtr) (GLenum target, GLenum pname, GLvoid **params); + +typedef void (* glDrawBuffersProcPtr) (GLsizei n, const GLenum *bufs); +typedef void (* glVertexAttrib1dProcPtr) (GLuint index, GLdouble x); +typedef void (* glVertexAttrib1dvProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib1fProcPtr) (GLuint index, GLfloat x); +typedef void (* glVertexAttrib1fvProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib1sProcPtr) (GLuint index, GLshort x); +typedef void (* glVertexAttrib1svProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib2dProcPtr) (GLuint index, GLdouble x, GLdouble y); +typedef void (* glVertexAttrib2dvProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib2fProcPtr) (GLuint index, GLfloat x, GLfloat y); +typedef void (* glVertexAttrib2fvProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib2sProcPtr) (GLuint index, GLshort x, GLshort y); +typedef void (* glVertexAttrib2svProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib3dProcPtr) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (* glVertexAttrib3dvProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib3fProcPtr) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (* glVertexAttrib3fvProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib3sProcPtr) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (* glVertexAttrib3svProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib4NbvProcPtr) (GLuint index, const GLbyte *v); +typedef void (* glVertexAttrib4NivProcPtr) (GLuint index, const GLint *v); +typedef void (* glVertexAttrib4NsvProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib4NubProcPtr) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (* glVertexAttrib4NubvProcPtr) (GLuint index, const GLubyte *v); +typedef void (* glVertexAttrib4NuivProcPtr) (GLuint index, const GLuint *v); +typedef void (* glVertexAttrib4NusvProcPtr) (GLuint index, const GLushort *v); +typedef void (* glVertexAttrib4bvProcPtr) (GLuint index, const GLbyte *v); +typedef void (* glVertexAttrib4dProcPtr) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glVertexAttrib4dvProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib4fProcPtr) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glVertexAttrib4fvProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib4ivProcPtr) (GLuint index, const GLint *v); +typedef void (* glVertexAttrib4sProcPtr) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (* glVertexAttrib4svProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib4ubvProcPtr) (GLuint index, const GLubyte *v); +typedef void (* glVertexAttrib4uivProcPtr) (GLuint index, const GLuint *v); +typedef void (* glVertexAttrib4usvProcPtr) (GLuint index, const GLushort *v); +typedef void (* glVertexAttribPointerProcPtr) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +typedef void (* glEnableVertexAttribArrayProcPtr) (GLuint index); +typedef void (* glDisableVertexAttribArrayProcPtr) (GLuint index); +typedef void (* glGetVertexAttribdvProcPtr) (GLuint index, GLenum pname, GLdouble *params); +typedef void (* glGetVertexAttribfvProcPtr) (GLuint index, GLenum pname, GLfloat *params); +typedef void (* glGetVertexAttribivProcPtr) (GLuint index, GLenum pname, GLint *params); +typedef void (* glGetVertexAttribPointervProcPtr) (GLuint index, GLenum pname, GLvoid **pointer); +typedef void (* glDeleteShaderProcPtr) (GLuint shader); +typedef void (* glDetachShaderProcPtr) (GLuint program, GLuint shader); +typedef GLuint (* glCreateShaderProcPtr) (GLenum type); +typedef void (* glShaderSourceProcPtr) (GLuint shader, GLsizei count, const GLchar* const *string, const GLint *length); +typedef void (* glCompileShaderProcPtr) (GLuint shader); +typedef GLuint (* glCreateProgramProcPtr) (void); +typedef void (* glAttachShaderProcPtr) (GLuint program, GLuint shader); +typedef void (* glLinkProgramProcPtr) (GLuint program); +typedef void (* glUseProgramProcPtr) (GLuint program); +typedef void (* glDeleteProgramProcPtr) (GLuint program); +typedef void (* glValidateProgramProcPtr) (GLuint program); +typedef void (* glUniform1fProcPtr) (GLint location, GLfloat v0); +typedef void (* glUniform2fProcPtr) (GLint location, GLfloat v0, GLfloat v1); +typedef void (* glUniform3fProcPtr) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (* glUniform4fProcPtr) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (* glUniform1iProcPtr) (GLint location, GLint v0); +typedef void (* glUniform2iProcPtr) (GLint location, GLint v0, GLint v1); +typedef void (* glUniform3iProcPtr) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (* glUniform4iProcPtr) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (* glUniform1fvProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform2fvProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform3fvProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform4fvProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform1ivProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniform2ivProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniform3ivProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniform4ivProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniformMatrix2fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix3fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix4fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef GLboolean (* glIsShaderProcPtr) (GLuint shader); +typedef GLboolean (* glIsProgramProcPtr) (GLuint program); +typedef void (* glGetShaderivProcPtr) (GLuint shader, GLenum pname, GLint *params); +typedef void (* glGetProgramivProcPtr) (GLuint program, GLenum pname, GLint *params); +typedef void (* glGetAttachedShadersProcPtr) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +typedef void (* glGetShaderInfoLogProcPtr) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (* glGetProgramInfoLogProcPtr) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef GLint (* glGetUniformLocationProcPtr) (GLuint program, const GLchar *name); +typedef void (* glGetActiveUniformProcPtr) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef void (* glGetUniformfvProcPtr) (GLuint program, GLint location, GLfloat *params); +typedef void (* glGetUniformivProcPtr) (GLuint program, GLint location, GLint *params); +typedef void (* glGetShaderSourceProcPtr) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +typedef void (* glBindAttribLocationProcPtr) (GLuint program, GLuint index, const GLchar *name); +typedef void (* glGetActiveAttribProcPtr) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef GLint (* glGetAttribLocationProcPtr) (GLuint program, const GLchar *name); +typedef void (* glStencilFuncSeparateProcPtr) (GLenum face, GLenum func, GLint ref, GLuint mask); +typedef void (* glStencilOpSeparateProcPtr) (GLenum face, GLenum fail, GLenum zfail, GLenum zpass); +typedef void (* glStencilMaskSeparateProcPtr) (GLenum face, GLuint mask); + +typedef void (* glUniformMatrix2x3fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix3x2fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix2x4fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix4x2fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix3x4fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix4x3fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + +#else /* GL_GLEXT_FUNCTION_POINTERS */ + +extern void glAccum (GLenum op, GLfloat value); +extern void glAlphaFunc (GLenum func, GLclampf ref); +extern GLboolean glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences); +extern void glArrayElement (GLint i); +extern void glBegin (GLenum mode); +extern void glBindTexture (GLenum target, GLuint texture); +extern void glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); +extern void glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +extern void glBlendEquation (GLenum mode); +extern void glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); +extern void glBlendFunc (GLenum sfactor, GLenum dfactor); +extern void glCallList (GLuint list); +extern void glCallLists (GLsizei n, GLenum type, const GLvoid *lists); +extern void glClear (GLbitfield mask); +extern void glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +extern void glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +extern void glClearDepth (GLclampd depth); +extern void glClearIndex (GLfloat c); +extern void glClearStencil (GLint s); +extern void glClipPlane (GLenum plane, const GLdouble *equation); +extern void glColor3b (GLbyte red, GLbyte green, GLbyte blue); +extern void glColor3bv (const GLbyte *v); +extern void glColor3d (GLdouble red, GLdouble green, GLdouble blue); +extern void glColor3dv (const GLdouble *v); +extern void glColor3f (GLfloat red, GLfloat green, GLfloat blue); +extern void glColor3fv (const GLfloat *v); +extern void glColor3i (GLint red, GLint green, GLint blue); +extern void glColor3iv (const GLint *v); +extern void glColor3s (GLshort red, GLshort green, GLshort blue); +extern void glColor3sv (const GLshort *v); +extern void glColor3ub (GLubyte red, GLubyte green, GLubyte blue); +extern void glColor3ubv (const GLubyte *v); +extern void glColor3ui (GLuint red, GLuint green, GLuint blue); +extern void glColor3uiv (const GLuint *v); +extern void glColor3us (GLushort red, GLushort green, GLushort blue); +extern void glColor3usv (const GLushort *v); +extern void glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); +extern void glColor4bv (const GLbyte *v); +extern void glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); +extern void glColor4dv (const GLdouble *v); +extern void glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +extern void glColor4fv (const GLfloat *v); +extern void glColor4i (GLint red, GLint green, GLint blue, GLint alpha); +extern void glColor4iv (const GLint *v); +extern void glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha); +extern void glColor4sv (const GLshort *v); +extern void glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); +extern void glColor4ubv (const GLubyte *v); +extern void glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha); +extern void glColor4uiv (const GLuint *v); +extern void glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha); +extern void glColor4usv (const GLushort *v); +extern void glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +extern void glColorMaterial (GLenum face, GLenum mode); +extern void glColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glColorSubTable (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); +extern void glColorTable (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); +extern void glColorTableParameterfv (GLenum target, GLenum pname, const GLfloat *params); +extern void glColorTableParameteriv (GLenum target, GLenum pname, const GLint *params); +extern void glConvolutionFilter1D (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); +extern void glConvolutionFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); +extern void glConvolutionParameterf (GLenum target, GLenum pname, GLfloat params); +extern void glConvolutionParameterfv (GLenum target, GLenum pname, const GLfloat *params); +extern void glConvolutionParameteri (GLenum target, GLenum pname, GLint params); +extern void glConvolutionParameteriv (GLenum target, GLenum pname, const GLint *params); +extern void glCopyColorSubTable (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +extern void glCopyColorTable (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +extern void glCopyConvolutionFilter1D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +extern void glCopyConvolutionFilter2D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +extern void glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); +extern void glCopyTexImage1D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +extern void glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +extern void glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +extern void glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +extern void glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +extern void glCullFace (GLenum mode); +extern void glDeleteLists (GLuint list, GLsizei range); +extern void glDeleteTextures (GLsizei n, const GLuint *textures); +extern void glDepthFunc (GLenum func); +extern void glDepthMask (GLboolean flag); +extern void glDepthRange (GLclampd zNear, GLclampd zFar); +extern void glDisable (GLenum cap); +extern void glDisableClientState (GLenum array); +extern void glDrawArrays (GLenum mode, GLint first, GLsizei count); +extern void glDrawBuffer (GLenum mode); +extern void glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); +extern void glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +extern void glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +extern void glEdgeFlag (GLboolean flag); +extern void glEdgeFlagPointer (GLsizei stride, const GLvoid *pointer); +extern void glEdgeFlagv (const GLboolean *flag); +extern void glEnable (GLenum cap); +extern void glEnableClientState (GLenum array); +extern void glEnd (void); +extern void glEndList (void); +extern void glEvalCoord1d (GLdouble u); +extern void glEvalCoord1dv (const GLdouble *u); +extern void glEvalCoord1f (GLfloat u); +extern void glEvalCoord1fv (const GLfloat *u); +extern void glEvalCoord2d (GLdouble u, GLdouble v); +extern void glEvalCoord2dv (const GLdouble *u); +extern void glEvalCoord2f (GLfloat u, GLfloat v); +extern void glEvalCoord2fv (const GLfloat *u); +extern void glEvalMesh1 (GLenum mode, GLint i1, GLint i2); +extern void glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); +extern void glEvalPoint1 (GLint i); +extern void glEvalPoint2 (GLint i, GLint j); +extern void glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer); +extern void glFinish (void); +extern void glFlush (void); +extern void glFogf (GLenum pname, GLfloat param); +extern void glFogfv (GLenum pname, const GLfloat *params); +extern void glFogi (GLenum pname, GLint param); +extern void glFogiv (GLenum pname, const GLint *params); +extern void glFrontFace (GLenum mode); +extern void glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +extern GLuint glGenLists (GLsizei range); +extern void glGenTextures (GLsizei n, GLuint *textures); +extern void glGetBooleanv (GLenum pname, GLboolean *params); +extern void glGetClipPlane (GLenum plane, GLdouble *equation); +extern void glGetColorTable (GLenum target, GLenum format, GLenum type, GLvoid *table); +extern void glGetColorTableParameterfv (GLenum target, GLenum pname, GLfloat *params); +extern void glGetColorTableParameteriv (GLenum target, GLenum pname, GLint *params); +extern void glGetConvolutionFilter (GLenum target, GLenum format, GLenum type, GLvoid *image); +extern void glGetConvolutionParameterfv (GLenum target, GLenum pname, GLfloat *params); +extern void glGetConvolutionParameteriv (GLenum target, GLenum pname, GLint *params); +extern void glGetDoublev (GLenum pname, GLdouble *params); +extern GLenum glGetError (void); +extern void glGetFloatv (GLenum pname, GLfloat *params); +extern void glGetHistogram (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +extern void glGetHistogramParameterfv (GLenum target, GLenum pname, GLfloat *params); +extern void glGetHistogramParameteriv (GLenum target, GLenum pname, GLint *params); +extern void glGetIntegerv (GLenum pname, GLint *params); +extern void glGetLightfv (GLenum light, GLenum pname, GLfloat *params); +extern void glGetLightiv (GLenum light, GLenum pname, GLint *params); +extern void glGetMapdv (GLenum target, GLenum query, GLdouble *v); +extern void glGetMapfv (GLenum target, GLenum query, GLfloat *v); +extern void glGetMapiv (GLenum target, GLenum query, GLint *v); +extern void glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params); +extern void glGetMaterialiv (GLenum face, GLenum pname, GLint *params); +extern void glGetMinmax (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +extern void glGetMinmaxParameterfv (GLenum target, GLenum pname, GLfloat *params); +extern void glGetMinmaxParameteriv (GLenum target, GLenum pname, GLint *params); +extern void glGetPixelMapfv (GLenum map, GLfloat *values); +extern void glGetPixelMapuiv (GLenum map, GLuint *values); +extern void glGetPixelMapusv (GLenum map, GLushort *values); +extern void glGetPointerv (GLenum pname, GLvoid **params); +extern void glGetPolygonStipple (GLubyte *mask); +extern void glGetSeparableFilter (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); +extern const GLubyte *glGetString (GLenum name); +extern void glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params); +extern void glGetTexEnviv (GLenum target, GLenum pname, GLint *params); +extern void glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params); +extern void glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params); +extern void glGetTexGeniv (GLenum coord, GLenum pname, GLint *params); +extern void glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); +extern void glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); +extern void glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); +extern void glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); +extern void glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); +extern void glHint (GLenum target, GLenum mode); +extern void glHistogram (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +extern void glIndexMask (GLuint mask); +extern void glIndexPointer (GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glIndexd (GLdouble c); +extern void glIndexdv (const GLdouble *c); +extern void glIndexf (GLfloat c); +extern void glIndexfv (const GLfloat *c); +extern void glIndexi (GLint c); +extern void glIndexiv (const GLint *c); +extern void glIndexs (GLshort c); +extern void glIndexsv (const GLshort *c); +extern void glIndexub (GLubyte c); +extern void glIndexubv (const GLubyte *c); +extern void glInitNames (void); +extern void glInterleavedArrays (GLenum format, GLsizei stride, const GLvoid *pointer); +extern GLboolean glIsEnabled (GLenum cap); +extern GLboolean glIsList (GLuint list); +extern GLboolean glIsTexture (GLuint texture); +extern void glLightModelf (GLenum pname, GLfloat param); +extern void glLightModelfv (GLenum pname, const GLfloat *params); +extern void glLightModeli (GLenum pname, GLint param); +extern void glLightModeliv (GLenum pname, const GLint *params); +extern void glLightf (GLenum light, GLenum pname, GLfloat param); +extern void glLightfv (GLenum light, GLenum pname, const GLfloat *params); +extern void glLighti (GLenum light, GLenum pname, GLint param); +extern void glLightiv (GLenum light, GLenum pname, const GLint *params); +extern void glLineStipple (GLint factor, GLushort pattern); +extern void glLineWidth (GLfloat width); +extern void glListBase (GLuint base); +extern void glLoadIdentity (void); +extern void glLoadMatrixd (const GLdouble *m); +extern void glLoadMatrixf (const GLfloat *m); +extern void glLoadName (GLuint name); +extern void glLogicOp (GLenum opcode); +extern void glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +extern void glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +extern void glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +extern void glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +extern void glMapGrid1d (GLint un, GLdouble u1, GLdouble u2); +extern void glMapGrid1f (GLint un, GLfloat u1, GLfloat u2); +extern void glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); +extern void glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); +extern void glMaterialf (GLenum face, GLenum pname, GLfloat param); +extern void glMaterialfv (GLenum face, GLenum pname, const GLfloat *params); +extern void glMateriali (GLenum face, GLenum pname, GLint param); +extern void glMaterialiv (GLenum face, GLenum pname, const GLint *params); +extern void glMatrixMode (GLenum mode); +extern void glMinmax (GLenum target, GLenum internalformat, GLboolean sink); +extern void glMultMatrixd (const GLdouble *m); +extern void glMultMatrixf (const GLfloat *m); +extern void glNewList (GLuint list, GLenum mode); +extern void glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz); +extern void glNormal3bv (const GLbyte *v); +extern void glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz); +extern void glNormal3dv (const GLdouble *v); +extern void glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz); +extern void glNormal3fv (const GLfloat *v); +extern void glNormal3i (GLint nx, GLint ny, GLint nz); +extern void glNormal3iv (const GLint *v); +extern void glNormal3s (GLshort nx, GLshort ny, GLshort nz); +extern void glNormal3sv (const GLshort *v); +extern void glNormalPointer (GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +extern void glPassThrough (GLfloat token); +extern void glPixelMapfv (GLenum map, GLint mapsize, const GLfloat *values); +extern void glPixelMapuiv (GLenum map, GLint mapsize, const GLuint *values); +extern void glPixelMapusv (GLenum map, GLint mapsize, const GLushort *values); +extern void glPixelStoref (GLenum pname, GLfloat param); +extern void glPixelStorei (GLenum pname, GLint param); +extern void glPixelTransferf (GLenum pname, GLfloat param); +extern void glPixelTransferi (GLenum pname, GLint param); +extern void glPixelZoom (GLfloat xfactor, GLfloat yfactor); +extern void glPointSize (GLfloat size); +extern void glPolygonMode (GLenum face, GLenum mode); +extern void glPolygonOffset (GLfloat factor, GLfloat units); +extern void glPolygonStipple (const GLubyte *mask); +extern void glPopAttrib (void); +extern void glPopClientAttrib (void); +extern void glPopMatrix (void); +extern void glPopName (void); +extern void glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities); +extern void glPushAttrib (GLbitfield mask); +extern void glPushClientAttrib (GLbitfield mask); +extern void glPushMatrix (void); +extern void glPushName (GLuint name); +extern void glRasterPos2d (GLdouble x, GLdouble y); +extern void glRasterPos2dv (const GLdouble *v); +extern void glRasterPos2f (GLfloat x, GLfloat y); +extern void glRasterPos2fv (const GLfloat *v); +extern void glRasterPos2i (GLint x, GLint y); +extern void glRasterPos2iv (const GLint *v); +extern void glRasterPos2s (GLshort x, GLshort y); +extern void glRasterPos2sv (const GLshort *v); +extern void glRasterPos3d (GLdouble x, GLdouble y, GLdouble z); +extern void glRasterPos3dv (const GLdouble *v); +extern void glRasterPos3f (GLfloat x, GLfloat y, GLfloat z); +extern void glRasterPos3fv (const GLfloat *v); +extern void glRasterPos3i (GLint x, GLint y, GLint z); +extern void glRasterPos3iv (const GLint *v); +extern void glRasterPos3s (GLshort x, GLshort y, GLshort z); +extern void glRasterPos3sv (const GLshort *v); +extern void glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glRasterPos4dv (const GLdouble *v); +extern void glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glRasterPos4fv (const GLfloat *v); +extern void glRasterPos4i (GLint x, GLint y, GLint z, GLint w); +extern void glRasterPos4iv (const GLint *v); +extern void glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w); +extern void glRasterPos4sv (const GLshort *v); +extern void glReadBuffer (GLenum mode); +extern void glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); +extern void glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); +extern void glRectdv (const GLdouble *v1, const GLdouble *v2); +extern void glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); +extern void glRectfv (const GLfloat *v1, const GLfloat *v2); +extern void glRecti (GLint x1, GLint y1, GLint x2, GLint y2); +extern void glRectiv (const GLint *v1, const GLint *v2); +extern void glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2); +extern void glRectsv (const GLshort *v1, const GLshort *v2); +extern GLint glRenderMode (GLenum mode); +extern void glResetHistogram (GLenum target); +extern void glResetMinmax (GLenum target); +extern void glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +extern void glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +extern void glScaled (GLdouble x, GLdouble y, GLdouble z); +extern void glScalef (GLfloat x, GLfloat y, GLfloat z); +extern void glScissor (GLint x, GLint y, GLsizei width, GLsizei height); +extern void glSelectBuffer (GLsizei size, GLuint *buffer); +extern void glSeparableFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); +extern void glShadeModel (GLenum mode); +extern void glStencilFunc (GLenum func, GLint ref, GLuint mask); +extern void glStencilMask (GLuint mask); +extern void glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); +extern void glTexCoord1d (GLdouble s); +extern void glTexCoord1dv (const GLdouble *v); +extern void glTexCoord1f (GLfloat s); +extern void glTexCoord1fv (const GLfloat *v); +extern void glTexCoord1i (GLint s); +extern void glTexCoord1iv (const GLint *v); +extern void glTexCoord1s (GLshort s); +extern void glTexCoord1sv (const GLshort *v); +extern void glTexCoord2d (GLdouble s, GLdouble t); +extern void glTexCoord2dv (const GLdouble *v); +extern void glTexCoord2f (GLfloat s, GLfloat t); +extern void glTexCoord2fv (const GLfloat *v); +extern void glTexCoord2i (GLint s, GLint t); +extern void glTexCoord2iv (const GLint *v); +extern void glTexCoord2s (GLshort s, GLshort t); +extern void glTexCoord2sv (const GLshort *v); +extern void glTexCoord3d (GLdouble s, GLdouble t, GLdouble r); +extern void glTexCoord3dv (const GLdouble *v); +extern void glTexCoord3f (GLfloat s, GLfloat t, GLfloat r); +extern void glTexCoord3fv (const GLfloat *v); +extern void glTexCoord3i (GLint s, GLint t, GLint r); +extern void glTexCoord3iv (const GLint *v); +extern void glTexCoord3s (GLshort s, GLshort t, GLshort r); +extern void glTexCoord3sv (const GLshort *v); +extern void glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q); +extern void glTexCoord4dv (const GLdouble *v); +extern void glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q); +extern void glTexCoord4fv (const GLfloat *v); +extern void glTexCoord4i (GLint s, GLint t, GLint r, GLint q); +extern void glTexCoord4iv (const GLint *v); +extern void glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q); +extern void glTexCoord4sv (const GLshort *v); +extern void glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glTexEnvf (GLenum target, GLenum pname, GLfloat param); +extern void glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params); +extern void glTexEnvi (GLenum target, GLenum pname, GLint param); +extern void glTexEnviv (GLenum target, GLenum pname, const GLint *params); +extern void glTexGend (GLenum coord, GLenum pname, GLdouble param); +extern void glTexGendv (GLenum coord, GLenum pname, const GLdouble *params); +extern void glTexGenf (GLenum coord, GLenum pname, GLfloat param); +extern void glTexGenfv (GLenum coord, GLenum pname, const GLfloat *params); +extern void glTexGeni (GLenum coord, GLenum pname, GLint param); +extern void glTexGeniv (GLenum coord, GLenum pname, const GLint *params); +extern void glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +extern void glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +extern void glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +extern void glTexParameterf (GLenum target, GLenum pname, GLfloat param); +extern void glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); +extern void glTexParameteri (GLenum target, GLenum pname, GLint param); +extern void glTexParameteriv (GLenum target, GLenum pname, const GLint *params); +extern void glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); +extern void glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +extern void glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +extern void glTranslated (GLdouble x, GLdouble y, GLdouble z); +extern void glTranslatef (GLfloat x, GLfloat y, GLfloat z); +extern void glVertex2d (GLdouble x, GLdouble y); +extern void glVertex2dv (const GLdouble *v); +extern void glVertex2f (GLfloat x, GLfloat y); +extern void glVertex2fv (const GLfloat *v); +extern void glVertex2i (GLint x, GLint y); +extern void glVertex2iv (const GLint *v); +extern void glVertex2s (GLshort x, GLshort y); +extern void glVertex2sv (const GLshort *v); +extern void glVertex3d (GLdouble x, GLdouble y, GLdouble z); +extern void glVertex3dv (const GLdouble *v); +extern void glVertex3f (GLfloat x, GLfloat y, GLfloat z); +extern void glVertex3fv (const GLfloat *v); +extern void glVertex3i (GLint x, GLint y, GLint z); +extern void glVertex3iv (const GLint *v); +extern void glVertex3s (GLshort x, GLshort y, GLshort z); +extern void glVertex3sv (const GLshort *v); +extern void glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glVertex4dv (const GLdouble *v); +extern void glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glVertex4fv (const GLfloat *v); +extern void glVertex4i (GLint x, GLint y, GLint z, GLint w); +extern void glVertex4iv (const GLint *v); +extern void glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w); +extern void glVertex4sv (const GLshort *v); +extern void glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glViewport (GLint x, GLint y, GLsizei width, GLsizei height); + +extern void glSampleCoverage (GLclampf value, GLboolean invert); + +extern void glLoadTransposeMatrixf (const GLfloat *m); +extern void glLoadTransposeMatrixd (const GLdouble *m); +extern void glMultTransposeMatrixf (const GLfloat *m); +extern void glMultTransposeMatrixd (const GLdouble *m); + +extern void glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexImage1D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +extern void glGetCompressedTexImage (GLenum target, GLint lod, GLvoid *img); + +extern void glActiveTexture (GLenum texture); +extern void glClientActiveTexture (GLenum texture); +extern void glMultiTexCoord1d (GLenum target, GLdouble s); +extern void glMultiTexCoord1dv (GLenum target, const GLdouble *v); +extern void glMultiTexCoord1f (GLenum target, GLfloat s); +extern void glMultiTexCoord1fv (GLenum target, const GLfloat *v); +extern void glMultiTexCoord1i (GLenum target, GLint s); +extern void glMultiTexCoord1iv (GLenum target, const GLint *v); +extern void glMultiTexCoord1s (GLenum target, GLshort s); +extern void glMultiTexCoord1sv (GLenum target, const GLshort *v); +extern void glMultiTexCoord2d (GLenum target, GLdouble s, GLdouble t); +extern void glMultiTexCoord2dv (GLenum target, const GLdouble *v); +extern void glMultiTexCoord2f (GLenum target, GLfloat s, GLfloat t); +extern void glMultiTexCoord2fv (GLenum target, const GLfloat *v); +extern void glMultiTexCoord2i (GLenum target, GLint s, GLint t); +extern void glMultiTexCoord2iv (GLenum target, const GLint *v); +extern void glMultiTexCoord2s (GLenum target, GLshort s, GLshort t); +extern void glMultiTexCoord2sv (GLenum target, const GLshort *v); +extern void glMultiTexCoord3d (GLenum target, GLdouble s, GLdouble t, GLdouble r); +extern void glMultiTexCoord3dv (GLenum target, const GLdouble *v); +extern void glMultiTexCoord3f (GLenum target, GLfloat s, GLfloat t, GLfloat r); +extern void glMultiTexCoord3fv (GLenum target, const GLfloat *v); +extern void glMultiTexCoord3i (GLenum target, GLint s, GLint t, GLint r); +extern void glMultiTexCoord3iv (GLenum target, const GLint *v); +extern void glMultiTexCoord3s (GLenum target, GLshort s, GLshort t, GLshort r); +extern void glMultiTexCoord3sv (GLenum target, const GLshort *v); +extern void glMultiTexCoord4d (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +extern void glMultiTexCoord4dv (GLenum target, const GLdouble *v); +extern void glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +extern void glMultiTexCoord4fv (GLenum target, const GLfloat *v); +extern void glMultiTexCoord4i (GLenum target, GLint s, GLint t, GLint r, GLint q); +extern void glMultiTexCoord4iv (GLenum target, const GLint *v); +extern void glMultiTexCoord4s (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +extern void glMultiTexCoord4sv (GLenum target, const GLshort *v); + +extern void glFogCoordf (GLfloat coord); +extern void glFogCoordfv (const GLfloat *coord); +extern void glFogCoordd (GLdouble coord); +extern void glFogCoorddv (const GLdouble *coord); +extern void glFogCoordPointer (GLenum type, GLsizei stride, const GLvoid *pointer); + +extern void glSecondaryColor3b (GLbyte red, GLbyte green, GLbyte blue); +extern void glSecondaryColor3bv (const GLbyte *v); +extern void glSecondaryColor3d (GLdouble red, GLdouble green, GLdouble blue); +extern void glSecondaryColor3dv (const GLdouble *v); +extern void glSecondaryColor3f (GLfloat red, GLfloat green, GLfloat blue); +extern void glSecondaryColor3fv (const GLfloat *v); +extern void glSecondaryColor3i (GLint red, GLint green, GLint blue); +extern void glSecondaryColor3iv (const GLint *v); +extern void glSecondaryColor3s (GLshort red, GLshort green, GLshort blue); +extern void glSecondaryColor3sv (const GLshort *v); +extern void glSecondaryColor3ub (GLubyte red, GLubyte green, GLubyte blue); +extern void glSecondaryColor3ubv (const GLubyte *v); +extern void glSecondaryColor3ui (GLuint red, GLuint green, GLuint blue); +extern void glSecondaryColor3uiv (const GLuint *v); +extern void glSecondaryColor3us (GLushort red, GLushort green, GLushort blue); +extern void glSecondaryColor3usv (const GLushort *v); +extern void glSecondaryColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + +extern void glPointParameterf (GLenum pname, GLfloat param); +extern void glPointParameterfv (GLenum pname, const GLfloat *params); +extern void glPointParameteri (GLenum pname, GLint param); +extern void glPointParameteriv (GLenum pname, const GLint *params); + +extern void glBlendFuncSeparate (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); + +extern void glMultiDrawArrays (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +extern void glMultiDrawElements (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount); + +extern void glWindowPos2d (GLdouble x, GLdouble y); +extern void glWindowPos2dv (const GLdouble *v); +extern void glWindowPos2f (GLfloat x, GLfloat y); +extern void glWindowPos2fv (const GLfloat *v); +extern void glWindowPos2i (GLint x, GLint y); +extern void glWindowPos2iv (const GLint *v); +extern void glWindowPos2s (GLshort x, GLshort y); +extern void glWindowPos2sv (const GLshort *v); +extern void glWindowPos3d (GLdouble x, GLdouble y, GLdouble z); +extern void glWindowPos3dv (const GLdouble *v); +extern void glWindowPos3f (GLfloat x, GLfloat y, GLfloat z); +extern void glWindowPos3fv (const GLfloat *v); +extern void glWindowPos3i (GLint x, GLint y, GLint z); +extern void glWindowPos3iv (const GLint *v); +extern void glWindowPos3s (GLshort x, GLshort y, GLshort z); +extern void glWindowPos3sv (const GLshort *v); + +extern void glGenQueries (GLsizei n, GLuint *ids); +extern void glDeleteQueries (GLsizei n, const GLuint *ids); +extern GLboolean glIsQuery (GLuint id); +extern void glBeginQuery (GLenum target, GLuint id); +extern void glEndQuery (GLenum target); +extern void glGetQueryiv (GLenum target, GLenum pname, GLint *params); +extern void glGetQueryObjectiv (GLuint id, GLenum pname, GLint *params); +extern void glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); + +extern void glBindBuffer (GLenum target, GLuint buffer); +extern void glDeleteBuffers (GLsizei n, const GLuint *buffers); +extern void glGenBuffers (GLsizei n, GLuint *buffers); +extern GLboolean glIsBuffer (GLuint buffer); +extern void glBufferData (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); +extern void glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); +extern void glGetBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); +extern GLvoid *glMapBuffer (GLenum target, GLenum access); +extern GLboolean glUnmapBuffer (GLenum target); +extern void glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); +extern void glGetBufferPointerv (GLenum target, GLenum pname, GLvoid **params); + +extern void glDrawBuffers (GLsizei n, const GLenum *bufs); +extern void glVertexAttrib1d (GLuint index, GLdouble x); +extern void glVertexAttrib1dv (GLuint index, const GLdouble *v); +extern void glVertexAttrib1f (GLuint index, GLfloat x); +extern void glVertexAttrib1fv (GLuint index, const GLfloat *v); +extern void glVertexAttrib1s (GLuint index, GLshort x); +extern void glVertexAttrib1sv (GLuint index, const GLshort *v); +extern void glVertexAttrib2d (GLuint index, GLdouble x, GLdouble y); +extern void glVertexAttrib2dv (GLuint index, const GLdouble *v); +extern void glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); +extern void glVertexAttrib2fv (GLuint index, const GLfloat *v); +extern void glVertexAttrib2s (GLuint index, GLshort x, GLshort y); +extern void glVertexAttrib2sv (GLuint index, const GLshort *v); +extern void glVertexAttrib3d (GLuint index, GLdouble x, GLdouble y, GLdouble z); +extern void glVertexAttrib3dv (GLuint index, const GLdouble *v); +extern void glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); +extern void glVertexAttrib3fv (GLuint index, const GLfloat *v); +extern void glVertexAttrib3s (GLuint index, GLshort x, GLshort y, GLshort z); +extern void glVertexAttrib3sv (GLuint index, const GLshort *v); +extern void glVertexAttrib4Nbv (GLuint index, const GLbyte *v); +extern void glVertexAttrib4Niv (GLuint index, const GLint *v); +extern void glVertexAttrib4Nsv (GLuint index, const GLshort *v); +extern void glVertexAttrib4Nub (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +extern void glVertexAttrib4Nubv (GLuint index, const GLubyte *v); +extern void glVertexAttrib4Nuiv (GLuint index, const GLuint *v); +extern void glVertexAttrib4Nusv (GLuint index, const GLushort *v); +extern void glVertexAttrib4bv (GLuint index, const GLbyte *v); +extern void glVertexAttrib4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glVertexAttrib4dv (GLuint index, const GLdouble *v); +extern void glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glVertexAttrib4fv (GLuint index, const GLfloat *v); +extern void glVertexAttrib4iv (GLuint index, const GLint *v); +extern void glVertexAttrib4s (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +extern void glVertexAttrib4sv (GLuint index, const GLshort *v); +extern void glVertexAttrib4ubv (GLuint index, const GLubyte *v); +extern void glVertexAttrib4uiv (GLuint index, const GLuint *v); +extern void glVertexAttrib4usv (GLuint index, const GLushort *v); +extern void glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +extern void glEnableVertexAttribArray (GLuint index); +extern void glDisableVertexAttribArray (GLuint index); +extern void glGetVertexAttribdv (GLuint index, GLenum pname, GLdouble *params); +extern void glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); +extern void glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); +extern void glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid **pointer); +extern void glDeleteShader (GLuint shader); +extern void glDetachShader (GLuint program, GLuint shader); +extern GLuint glCreateShader (GLenum type); +extern void glShaderSource (GLuint shader, GLsizei count, const GLchar* const *string, const GLint *length); +extern void glCompileShader (GLuint shader); +extern GLuint glCreateProgram (void); +extern void glAttachShader (GLuint program, GLuint shader); +extern void glLinkProgram (GLuint program); +extern void glUseProgram (GLuint program); +extern void glDeleteProgram (GLuint program); +extern void glValidateProgram (GLuint program); +extern void glUniform1f (GLint location, GLfloat v0); +extern void glUniform2f (GLint location, GLfloat v0, GLfloat v1); +extern void glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +extern void glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +extern void glUniform1i (GLint location, GLint v0); +extern void glUniform2i (GLint location, GLint v0, GLint v1); +extern void glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); +extern void glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +extern void glUniform1fv (GLint location, GLsizei count, const GLfloat *value); +extern void glUniform2fv (GLint location, GLsizei count, const GLfloat *value); +extern void glUniform3fv (GLint location, GLsizei count, const GLfloat *value); +extern void glUniform4fv (GLint location, GLsizei count, const GLfloat *value); +extern void glUniform1iv (GLint location, GLsizei count, const GLint *value); +extern void glUniform2iv (GLint location, GLsizei count, const GLint *value); +extern void glUniform3iv (GLint location, GLsizei count, const GLint *value); +extern void glUniform4iv (GLint location, GLsizei count, const GLint *value); +extern void glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern GLboolean glIsShader (GLuint shader); +extern GLboolean glIsProgram (GLuint program); +extern void glGetShaderiv (GLuint shader, GLenum pname, GLint *params); +extern void glGetProgramiv (GLuint program, GLenum pname, GLint *params); +extern void glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +extern void glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +extern void glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +extern GLint glGetUniformLocation (GLuint program, const GLchar *name); +extern void glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +extern void glGetUniformfv (GLuint program, GLint location, GLfloat *params); +extern void glGetUniformiv (GLuint program, GLint location, GLint *params); +extern void glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +extern void glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); +extern void glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +extern GLint glGetAttribLocation (GLuint program, const GLchar *name); +extern void glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); +extern void glStencilOpSeparate (GLenum face, GLenum fail, GLenum zfail, GLenum zpass); +extern void glStencilMaskSeparate (GLenum face, GLuint mask); + +extern void glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + + +#endif /* GL_GLEXT_FUNCTION_POINTERS */ + +#ifdef __cplusplus +} +#endif + +#endif /* __gl_h_ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gl3.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gl3.h" new file mode 100644 index 0000000..b82689f --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gl3.h" @@ -0,0 +1,2913 @@ +#ifndef __gl3_h_ +#define __gl3_h_ + +/* Allow multiple GL version headers to be included when we're working + with modules. */ +#ifdef __has_feature +# if __has_feature(modules) +# ifndef GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED +# define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED 1 +# endif +# endif +#endif + +#if defined __gl_h_ && !(defined GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED) +#warning gl.h and gl3.h are both included. Compiler will not invoke errors if using removed OpenGL functionality. +#endif + +#ifdef _CGLMACRO_H +# ifndef __has_feature +# define __has_feature(X) 0 +# endif +# if !__has_feature(modules) +# error Can not include both gl3.h and CGLMacro.h simultaneously +# endif +#endif + +/* +** Copyright (c) 2007-2012 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +/* This is a draft release of gl3.h, a header for use with OpenGL 3.1, and + * 3.2 and later core profile implementations. The current version is + * available at http://www.opengl.org/registry/ . Please don't package + * gl3.h for release with other software until it's out of draft status. + * The structure of the file may change significantly, and the details + * will probably change slightly as we make sure exactly the right set + * of interfaces is included. + * + * gl3.h last updated on $Date: 2012-01-26 02:57:23 -0800 (Thu, 26 Jan 2012) $ + * + * RELEASE NOTES - 2012/01/26 + * + * gl3.h should be placed under a directory 'GL3' and included as + * ''. + * + * gl3.h is supposed to only include APIs in a OpenGL 3.1 (without + * GL_ARB_compatibility) or OpenGL 3.2 or later core profile + * implementation, as well as interfaces for newer ARB extensions which + * can be supported by the core profile. It does not, and never will + * include functionality removed from the core profile, such as + * fixed-function vertex and fragment processing. + * + * Implementations of OpenGL 3.1 supporting the optional + * GL_ARB_compatibility extension continue to provide that functionality, + * as do implementations of the OpenGL 3.2+ compatibility profiles, and + * source code requiring it should use the traditional and + * headers instead of . + * + * It is not possible to #include both and either of + * or in the same source file. + * + * We welcome feedback on gl3.h. Please register for the Khronos Bugzilla + * (www.khronos.org/bugzilla) and file issues there under product + * "OpenGL", category "Registry". Feedback on the opengl.org forums + * may not be responded to in a timely fashion. + */ + +/* Function declaration macros - to move into glplatform.h */ + +#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) +#define WIN32_LEAN_AND_MEAN 1 +#include +#endif + + +#if defined(__APPLE__) +#define GL3_PROTOTYPES +#endif + +#ifndef APIENTRY +#define APIENTRY +#endif +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * +#endif +#ifndef GLAPI +#define GLAPI extern +#endif + +/* Base GL types */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/*************************************************************/ + +#ifndef GL_VERSION_1_1 +/* AttribMask */ +#define GL_DEPTH_BUFFER_BIT 0x00000100 +#define GL_STENCIL_BUFFER_BIT 0x00000400 +#define GL_COLOR_BUFFER_BIT 0x00004000 +/* Boolean */ +#define GL_FALSE 0 +#define GL_TRUE 1 +/* BeginMode */ +#define GL_POINTS 0x0000 +#define GL_LINES 0x0001 +#define GL_LINE_LOOP 0x0002 +#define GL_LINE_STRIP 0x0003 +#define GL_TRIANGLES 0x0004 +#define GL_TRIANGLE_STRIP 0x0005 +#define GL_TRIANGLE_FAN 0x0006 +/* AlphaFunction */ +#define GL_NEVER 0x0200 +#define GL_LESS 0x0201 +#define GL_EQUAL 0x0202 +#define GL_LEQUAL 0x0203 +#define GL_GREATER 0x0204 +#define GL_NOTEQUAL 0x0205 +#define GL_GEQUAL 0x0206 +#define GL_ALWAYS 0x0207 +/* BlendingFactorDest */ +#define GL_ZERO 0 +#define GL_ONE 1 +#define GL_SRC_COLOR 0x0300 +#define GL_ONE_MINUS_SRC_COLOR 0x0301 +#define GL_SRC_ALPHA 0x0302 +#define GL_ONE_MINUS_SRC_ALPHA 0x0303 +#define GL_DST_ALPHA 0x0304 +#define GL_ONE_MINUS_DST_ALPHA 0x0305 +/* BlendingFactorSrc */ +#define GL_DST_COLOR 0x0306 +#define GL_ONE_MINUS_DST_COLOR 0x0307 +#define GL_SRC_ALPHA_SATURATE 0x0308 +/* DrawBufferMode */ +#define GL_NONE 0 +#define GL_FRONT_LEFT 0x0400 +#define GL_FRONT_RIGHT 0x0401 +#define GL_BACK_LEFT 0x0402 +#define GL_BACK_RIGHT 0x0403 +#define GL_FRONT 0x0404 +#define GL_BACK 0x0405 +#define GL_LEFT 0x0406 +#define GL_RIGHT 0x0407 +#define GL_FRONT_AND_BACK 0x0408 +/* ErrorCode */ +#define GL_NO_ERROR 0 +#define GL_INVALID_ENUM 0x0500 +#define GL_INVALID_VALUE 0x0501 +#define GL_INVALID_OPERATION 0x0502 +#define GL_OUT_OF_MEMORY 0x0505 +/* FrontFaceDirection */ +#define GL_CW 0x0900 +#define GL_CCW 0x0901 +/* GetPName */ +#define GL_POINT_SIZE 0x0B11 +#define GL_POINT_SIZE_RANGE 0x0B12 +#define GL_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_LINE_SMOOTH 0x0B20 +#define GL_LINE_WIDTH 0x0B21 +#define GL_LINE_WIDTH_RANGE 0x0B22 +#define GL_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_POLYGON_MODE 0x0B40 +#define GL_POLYGON_SMOOTH 0x0B41 +#define GL_CULL_FACE 0x0B44 +#define GL_CULL_FACE_MODE 0x0B45 +#define GL_FRONT_FACE 0x0B46 +#define GL_DEPTH_RANGE 0x0B70 +#define GL_DEPTH_TEST 0x0B71 +#define GL_DEPTH_WRITEMASK 0x0B72 +#define GL_DEPTH_CLEAR_VALUE 0x0B73 +#define GL_DEPTH_FUNC 0x0B74 +#define GL_STENCIL_TEST 0x0B90 +#define GL_STENCIL_CLEAR_VALUE 0x0B91 +#define GL_STENCIL_FUNC 0x0B92 +#define GL_STENCIL_VALUE_MASK 0x0B93 +#define GL_STENCIL_FAIL 0x0B94 +#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 +#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 +#define GL_STENCIL_REF 0x0B97 +#define GL_STENCIL_WRITEMASK 0x0B98 +#define GL_VIEWPORT 0x0BA2 +#define GL_DITHER 0x0BD0 +#define GL_BLEND_DST 0x0BE0 +#define GL_BLEND_SRC 0x0BE1 +#define GL_BLEND 0x0BE2 +#define GL_LOGIC_OP_MODE 0x0BF0 +#define GL_COLOR_LOGIC_OP 0x0BF2 +#define GL_DRAW_BUFFER 0x0C01 +#define GL_READ_BUFFER 0x0C02 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_COLOR_CLEAR_VALUE 0x0C22 +#define GL_COLOR_WRITEMASK 0x0C23 +#define GL_DOUBLEBUFFER 0x0C32 +#define GL_STEREO 0x0C33 +#define GL_LINE_SMOOTH_HINT 0x0C52 +#define GL_POLYGON_SMOOTH_HINT 0x0C53 +#define GL_UNPACK_SWAP_BYTES 0x0CF0 +#define GL_UNPACK_LSB_FIRST 0x0CF1 +#define GL_UNPACK_ROW_LENGTH 0x0CF2 +#define GL_UNPACK_SKIP_ROWS 0x0CF3 +#define GL_UNPACK_SKIP_PIXELS 0x0CF4 +#define GL_UNPACK_ALIGNMENT 0x0CF5 +#define GL_PACK_SWAP_BYTES 0x0D00 +#define GL_PACK_LSB_FIRST 0x0D01 +#define GL_PACK_ROW_LENGTH 0x0D02 +#define GL_PACK_SKIP_ROWS 0x0D03 +#define GL_PACK_SKIP_PIXELS 0x0D04 +#define GL_PACK_ALIGNMENT 0x0D05 +#define GL_MAX_TEXTURE_SIZE 0x0D33 +#define GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GL_SUBPIXEL_BITS 0x0D50 +#define GL_TEXTURE_1D 0x0DE0 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +#define GL_POLYGON_OFFSET_POINT 0x2A01 +#define GL_POLYGON_OFFSET_LINE 0x2A02 +#define GL_POLYGON_OFFSET_FILL 0x8037 +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_TEXTURE_BINDING_1D 0x8068 +#define GL_TEXTURE_BINDING_2D 0x8069 +/* GetTextureParameter */ +#define GL_TEXTURE_WIDTH 0x1000 +#define GL_TEXTURE_HEIGHT 0x1001 +#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 +#define GL_TEXTURE_BORDER_COLOR 0x1004 +#define GL_TEXTURE_RED_SIZE 0x805C +#define GL_TEXTURE_GREEN_SIZE 0x805D +#define GL_TEXTURE_BLUE_SIZE 0x805E +#define GL_TEXTURE_ALPHA_SIZE 0x805F +/* HintMode */ +#define GL_DONT_CARE 0x1100 +#define GL_FASTEST 0x1101 +#define GL_NICEST 0x1102 +/* DataType */ +#define GL_BYTE 0x1400 +#define GL_UNSIGNED_BYTE 0x1401 +#define GL_SHORT 0x1402 +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_INT 0x1404 +#define GL_UNSIGNED_INT 0x1405 +#define GL_FLOAT 0x1406 +#define GL_DOUBLE 0x140A +/* LogicOp */ +#define GL_CLEAR 0x1500 +#define GL_AND 0x1501 +#define GL_AND_REVERSE 0x1502 +#define GL_COPY 0x1503 +#define GL_AND_INVERTED 0x1504 +#define GL_NOOP 0x1505 +#define GL_XOR 0x1506 +#define GL_OR 0x1507 +#define GL_NOR 0x1508 +#define GL_EQUIV 0x1509 +#define GL_INVERT 0x150A +#define GL_OR_REVERSE 0x150B +#define GL_COPY_INVERTED 0x150C +#define GL_OR_INVERTED 0x150D +#define GL_NAND 0x150E +#define GL_SET 0x150F +/* MatrixMode (for gl3.h, FBO attachment type) */ +#define GL_TEXTURE 0x1702 +/* PixelCopyType */ +#define GL_COLOR 0x1800 +#define GL_DEPTH 0x1801 +#define GL_STENCIL 0x1802 +/* PixelFormat */ +#define GL_STENCIL_INDEX 0x1901 +#define GL_DEPTH_COMPONENT 0x1902 +#define GL_RED 0x1903 +#define GL_GREEN 0x1904 +#define GL_BLUE 0x1905 +#define GL_ALPHA 0x1906 +#define GL_RGB 0x1907 +#define GL_RGBA 0x1908 +/* PolygonMode */ +#define GL_POINT 0x1B00 +#define GL_LINE 0x1B01 +#define GL_FILL 0x1B02 +/* StencilOp */ +#define GL_KEEP 0x1E00 +#define GL_REPLACE 0x1E01 +#define GL_INCR 0x1E02 +#define GL_DECR 0x1E03 +/* StringName */ +#define GL_VENDOR 0x1F00 +#define GL_RENDERER 0x1F01 +#define GL_VERSION 0x1F02 +#define GL_EXTENSIONS 0x1F03 +/* TextureMagFilter */ +#define GL_NEAREST 0x2600 +#define GL_LINEAR 0x2601 +/* TextureMinFilter */ +#define GL_NEAREST_MIPMAP_NEAREST 0x2700 +#define GL_LINEAR_MIPMAP_NEAREST 0x2701 +#define GL_NEAREST_MIPMAP_LINEAR 0x2702 +#define GL_LINEAR_MIPMAP_LINEAR 0x2703 +/* TextureParameterName */ +#define GL_TEXTURE_MAG_FILTER 0x2800 +#define GL_TEXTURE_MIN_FILTER 0x2801 +#define GL_TEXTURE_WRAP_S 0x2802 +#define GL_TEXTURE_WRAP_T 0x2803 +/* TextureTarget */ +#define GL_PROXY_TEXTURE_1D 0x8063 +#define GL_PROXY_TEXTURE_2D 0x8064 +/* TextureWrapMode */ +#define GL_REPEAT 0x2901 +/* PixelInternalFormat */ +#define GL_R3_G3_B2 0x2A10 +#define GL_RGB4 0x804F +#define GL_RGB5 0x8050 +#define GL_RGB8 0x8051 +#define GL_RGB10 0x8052 +#define GL_RGB12 0x8053 +#define GL_RGB16 0x8054 +#define GL_RGBA2 0x8055 +#define GL_RGBA4 0x8056 +#define GL_RGB5_A1 0x8057 +#define GL_RGBA8 0x8058 +#define GL_RGB10_A2 0x8059 +#define GL_RGBA12 0x805A +#define GL_RGBA16 0x805B +#endif + +#ifndef GL_VERSION_1_2 +#define GL_UNSIGNED_BYTE_3_3_2 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2 0x8036 +#define GL_TEXTURE_BINDING_3D 0x806A +#define GL_PACK_SKIP_IMAGES 0x806B +#define GL_PACK_IMAGE_HEIGHT 0x806C +#define GL_UNPACK_SKIP_IMAGES 0x806D +#define GL_UNPACK_IMAGE_HEIGHT 0x806E +#define GL_TEXTURE_3D 0x806F +#define GL_PROXY_TEXTURE_3D 0x8070 +#define GL_TEXTURE_DEPTH 0x8071 +#define GL_TEXTURE_WRAP_R 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE 0x8073 +#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 +#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 +#define GL_BGR 0x80E0 +#define GL_BGRA 0x80E1 +#define GL_MAX_ELEMENTS_VERTICES 0x80E8 +#define GL_MAX_ELEMENTS_INDICES 0x80E9 +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_TEXTURE_MIN_LOD 0x813A +#define GL_TEXTURE_MAX_LOD 0x813B +#define GL_TEXTURE_BASE_LEVEL 0x813C +#define GL_TEXTURE_MAX_LEVEL 0x813D +#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 +#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 +#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E +#endif + +#ifndef GL_ARB_imaging +#define GL_CONSTANT_COLOR 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GL_BLEND_COLOR 0x8005 +#define GL_FUNC_ADD 0x8006 +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +#define GL_BLEND_EQUATION 0x8009 +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B +#endif + +#ifndef GL_VERSION_1_3 +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_ACTIVE_TEXTURE 0x84E0 +#define GL_MULTISAMPLE 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE 0x809F +#define GL_SAMPLE_COVERAGE 0x80A0 +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C +#define GL_COMPRESSED_RGB 0x84ED +#define GL_COMPRESSED_RGBA 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 +#define GL_TEXTURE_COMPRESSED 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 +#define GL_CLAMP_TO_BORDER 0x812D +#endif + +#ifndef GL_VERSION_1_4 +#define GL_BLEND_DST_RGB 0x80C8 +#define GL_BLEND_SRC_RGB 0x80C9 +#define GL_BLEND_DST_ALPHA 0x80CA +#define GL_BLEND_SRC_ALPHA 0x80CB +#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 +#define GL_DEPTH_COMPONENT16 0x81A5 +#define GL_DEPTH_COMPONENT24 0x81A6 +#define GL_DEPTH_COMPONENT32 0x81A7 +#define GL_MIRRORED_REPEAT 0x8370 +#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD +#define GL_TEXTURE_LOD_BIAS 0x8501 +#define GL_INCR_WRAP 0x8507 +#define GL_DECR_WRAP 0x8508 +#define GL_TEXTURE_DEPTH_SIZE 0x884A +#define GL_TEXTURE_COMPARE_MODE 0x884C +#define GL_TEXTURE_COMPARE_FUNC 0x884D +#endif + +#ifndef GL_VERSION_1_5 +#define GL_BUFFER_SIZE 0x8764 +#define GL_BUFFER_USAGE 0x8765 +#define GL_QUERY_COUNTER_BITS 0x8864 +#define GL_CURRENT_QUERY 0x8865 +#define GL_QUERY_RESULT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE 0x8867 +#define GL_ARRAY_BUFFER 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GL_ARRAY_BUFFER_BINDING 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F +#define GL_READ_ONLY 0x88B8 +#define GL_WRITE_ONLY 0x88B9 +#define GL_READ_WRITE 0x88BA +#define GL_BUFFER_ACCESS 0x88BB +#define GL_BUFFER_MAPPED 0x88BC +#define GL_BUFFER_MAP_POINTER 0x88BD +#define GL_STREAM_DRAW 0x88E0 +#define GL_STREAM_READ 0x88E1 +#define GL_STREAM_COPY 0x88E2 +#define GL_STATIC_DRAW 0x88E4 +#define GL_STATIC_READ 0x88E5 +#define GL_STATIC_COPY 0x88E6 +#define GL_DYNAMIC_DRAW 0x88E8 +#define GL_DYNAMIC_READ 0x88E9 +#define GL_DYNAMIC_COPY 0x88EA +#define GL_SAMPLES_PASSED 0x8914 +#endif + +#ifndef GL_VERSION_2_0 +#define GL_BLEND_EQUATION_RGB 0x8009 +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 +#define GL_CURRENT_VERTEX_ATTRIB 0x8626 +#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 +#define GL_STENCIL_BACK_FUNC 0x8800 +#define GL_STENCIL_BACK_FAIL 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 +#define GL_MAX_DRAW_BUFFERS 0x8824 +#define GL_DRAW_BUFFER0 0x8825 +#define GL_DRAW_BUFFER1 0x8826 +#define GL_DRAW_BUFFER2 0x8827 +#define GL_DRAW_BUFFER3 0x8828 +#define GL_DRAW_BUFFER4 0x8829 +#define GL_DRAW_BUFFER5 0x882A +#define GL_DRAW_BUFFER6 0x882B +#define GL_DRAW_BUFFER7 0x882C +#define GL_DRAW_BUFFER8 0x882D +#define GL_DRAW_BUFFER9 0x882E +#define GL_DRAW_BUFFER10 0x882F +#define GL_DRAW_BUFFER11 0x8830 +#define GL_DRAW_BUFFER12 0x8831 +#define GL_DRAW_BUFFER13 0x8832 +#define GL_DRAW_BUFFER14 0x8833 +#define GL_DRAW_BUFFER15 0x8834 +#define GL_BLEND_EQUATION_ALPHA 0x883D +#define GL_MAX_VERTEX_ATTRIBS 0x8869 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A +#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 +#define GL_FRAGMENT_SHADER 0x8B30 +#define GL_VERTEX_SHADER 0x8B31 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A +#define GL_MAX_VARYING_FLOATS 0x8B4B +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D +#define GL_SHADER_TYPE 0x8B4F +#define GL_FLOAT_VEC2 0x8B50 +#define GL_FLOAT_VEC3 0x8B51 +#define GL_FLOAT_VEC4 0x8B52 +#define GL_INT_VEC2 0x8B53 +#define GL_INT_VEC3 0x8B54 +#define GL_INT_VEC4 0x8B55 +#define GL_BOOL 0x8B56 +#define GL_BOOL_VEC2 0x8B57 +#define GL_BOOL_VEC3 0x8B58 +#define GL_BOOL_VEC4 0x8B59 +#define GL_FLOAT_MAT2 0x8B5A +#define GL_FLOAT_MAT3 0x8B5B +#define GL_FLOAT_MAT4 0x8B5C +#define GL_SAMPLER_1D 0x8B5D +#define GL_SAMPLER_2D 0x8B5E +#define GL_SAMPLER_3D 0x8B5F +#define GL_SAMPLER_CUBE 0x8B60 +#define GL_SAMPLER_1D_SHADOW 0x8B61 +#define GL_SAMPLER_2D_SHADOW 0x8B62 +#define GL_DELETE_STATUS 0x8B80 +#define GL_COMPILE_STATUS 0x8B81 +#define GL_LINK_STATUS 0x8B82 +#define GL_VALIDATE_STATUS 0x8B83 +#define GL_INFO_LOG_LENGTH 0x8B84 +#define GL_ATTACHED_SHADERS 0x8B85 +#define GL_ACTIVE_UNIFORMS 0x8B86 +#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 +#define GL_SHADER_SOURCE_LENGTH 0x8B88 +#define GL_ACTIVE_ATTRIBUTES 0x8B89 +#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B +#define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#define GL_CURRENT_PROGRAM 0x8B8D +#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 +#define GL_LOWER_LEFT 0x8CA1 +#define GL_UPPER_LEFT 0x8CA2 +#define GL_STENCIL_BACK_REF 0x8CA3 +#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 +#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 +#endif + +#ifndef GL_VERSION_2_1 +#define GL_PIXEL_PACK_BUFFER 0x88EB +#define GL_PIXEL_UNPACK_BUFFER 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF +#define GL_FLOAT_MAT2x3 0x8B65 +#define GL_FLOAT_MAT2x4 0x8B66 +#define GL_FLOAT_MAT3x2 0x8B67 +#define GL_FLOAT_MAT3x4 0x8B68 +#define GL_FLOAT_MAT4x2 0x8B69 +#define GL_FLOAT_MAT4x3 0x8B6A +#define GL_SRGB 0x8C40 +#define GL_SRGB8 0x8C41 +#define GL_SRGB_ALPHA 0x8C42 +#define GL_SRGB8_ALPHA8 0x8C43 +#define GL_COMPRESSED_SRGB 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 +#endif + +#ifndef GL_VERSION_3_0 +#define GL_COMPARE_REF_TO_TEXTURE 0x884E +#define GL_CLIP_DISTANCE0 0x3000 +#define GL_CLIP_DISTANCE1 0x3001 +#define GL_CLIP_DISTANCE2 0x3002 +#define GL_CLIP_DISTANCE3 0x3003 +#define GL_CLIP_DISTANCE4 0x3004 +#define GL_CLIP_DISTANCE5 0x3005 +#define GL_CLIP_DISTANCE6 0x3006 +#define GL_CLIP_DISTANCE7 0x3007 +#define GL_MAX_CLIP_DISTANCES 0x0D32 +#define GL_MAJOR_VERSION 0x821B +#define GL_MINOR_VERSION 0x821C +#define GL_NUM_EXTENSIONS 0x821D +#define GL_CONTEXT_FLAGS 0x821E +#define GL_COMPRESSED_RED 0x8225 +#define GL_COMPRESSED_RG 0x8226 +#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001 +#define GL_RGBA32F 0x8814 +#define GL_RGB32F 0x8815 +#define GL_RGBA16F 0x881A +#define GL_RGB16F 0x881B +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD +#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF +#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 +#define GL_CLAMP_READ_COLOR 0x891C +#define GL_FIXED_ONLY 0x891D +#define GL_MAX_VARYING_COMPONENTS 0x8B4B +#define GL_TEXTURE_1D_ARRAY 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 +#define GL_TEXTURE_2D_ARRAY 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D +#define GL_R11F_G11F_B10F 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B +#define GL_RGB9_E5 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E +#define GL_TEXTURE_SHARED_SIZE 0x8C3F +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 +#define GL_PRIMITIVES_GENERATED 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 +#define GL_RASTERIZER_DISCARD 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B +#define GL_INTERLEAVED_ATTRIBS 0x8C8C +#define GL_SEPARATE_ATTRIBS 0x8C8D +#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F +#define GL_RGBA32UI 0x8D70 +#define GL_RGB32UI 0x8D71 +#define GL_RGBA16UI 0x8D76 +#define GL_RGB16UI 0x8D77 +#define GL_RGBA8UI 0x8D7C +#define GL_RGB8UI 0x8D7D +#define GL_RGBA32I 0x8D82 +#define GL_RGB32I 0x8D83 +#define GL_RGBA16I 0x8D88 +#define GL_RGB16I 0x8D89 +#define GL_RGBA8I 0x8D8E +#define GL_RGB8I 0x8D8F +#define GL_RED_INTEGER 0x8D94 +#define GL_GREEN_INTEGER 0x8D95 +#define GL_BLUE_INTEGER 0x8D96 +#define GL_RGB_INTEGER 0x8D98 +#define GL_RGBA_INTEGER 0x8D99 +#define GL_BGR_INTEGER 0x8D9A +#define GL_BGRA_INTEGER 0x8D9B +#define GL_SAMPLER_1D_ARRAY 0x8DC0 +#define GL_SAMPLER_2D_ARRAY 0x8DC1 +#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 +#define GL_UNSIGNED_INT_VEC2 0x8DC6 +#define GL_UNSIGNED_INT_VEC3 0x8DC7 +#define GL_UNSIGNED_INT_VEC4 0x8DC8 +#define GL_INT_SAMPLER_1D 0x8DC9 +#define GL_INT_SAMPLER_2D 0x8DCA +#define GL_INT_SAMPLER_3D 0x8DCB +#define GL_INT_SAMPLER_CUBE 0x8DCC +#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF +#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 +#define GL_QUERY_WAIT 0x8E13 +#define GL_QUERY_NO_WAIT 0x8E14 +#define GL_QUERY_BY_REGION_WAIT 0x8E15 +#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 +#define GL_BUFFER_ACCESS_FLAGS 0x911F +#define GL_BUFFER_MAP_LENGTH 0x9120 +#define GL_BUFFER_MAP_OFFSET 0x9121 +/* Reuse tokens from ARB_depth_buffer_float */ +/* reuse GL_DEPTH_COMPONENT32F */ +/* reuse GL_DEPTH32F_STENCIL8 */ +/* reuse GL_FLOAT_32_UNSIGNED_INT_24_8_REV */ +/* Reuse tokens from ARB_framebuffer_object */ +/* reuse GL_INVALID_FRAMEBUFFER_OPERATION */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */ +/* reuse GL_FRAMEBUFFER_DEFAULT */ +/* reuse GL_FRAMEBUFFER_UNDEFINED */ +/* reuse GL_DEPTH_STENCIL_ATTACHMENT */ +/* reuse GL_MAX_RENDERBUFFER_SIZE */ +/* reuse GL_DEPTH_STENCIL */ +/* reuse GL_UNSIGNED_INT_24_8 */ +/* reuse GL_DEPTH24_STENCIL8 */ +/* reuse GL_TEXTURE_STENCIL_SIZE */ +/* reuse GL_TEXTURE_RED_TYPE */ +/* reuse GL_TEXTURE_GREEN_TYPE */ +/* reuse GL_TEXTURE_BLUE_TYPE */ +/* reuse GL_TEXTURE_ALPHA_TYPE */ +/* reuse GL_TEXTURE_DEPTH_TYPE */ +/* reuse GL_UNSIGNED_NORMALIZED */ +/* reuse GL_FRAMEBUFFER_BINDING */ +/* reuse GL_DRAW_FRAMEBUFFER_BINDING */ +/* reuse GL_RENDERBUFFER_BINDING */ +/* reuse GL_READ_FRAMEBUFFER */ +/* reuse GL_DRAW_FRAMEBUFFER */ +/* reuse GL_READ_FRAMEBUFFER_BINDING */ +/* reuse GL_RENDERBUFFER_SAMPLES */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ +/* reuse GL_FRAMEBUFFER_COMPLETE */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */ +/* reuse GL_FRAMEBUFFER_UNSUPPORTED */ +/* reuse GL_MAX_COLOR_ATTACHMENTS */ +/* reuse GL_COLOR_ATTACHMENT0 */ +/* reuse GL_COLOR_ATTACHMENT1 */ +/* reuse GL_COLOR_ATTACHMENT2 */ +/* reuse GL_COLOR_ATTACHMENT3 */ +/* reuse GL_COLOR_ATTACHMENT4 */ +/* reuse GL_COLOR_ATTACHMENT5 */ +/* reuse GL_COLOR_ATTACHMENT6 */ +/* reuse GL_COLOR_ATTACHMENT7 */ +/* reuse GL_COLOR_ATTACHMENT8 */ +/* reuse GL_COLOR_ATTACHMENT9 */ +/* reuse GL_COLOR_ATTACHMENT10 */ +/* reuse GL_COLOR_ATTACHMENT11 */ +/* reuse GL_COLOR_ATTACHMENT12 */ +/* reuse GL_COLOR_ATTACHMENT13 */ +/* reuse GL_COLOR_ATTACHMENT14 */ +/* reuse GL_COLOR_ATTACHMENT15 */ +/* reuse GL_DEPTH_ATTACHMENT */ +/* reuse GL_STENCIL_ATTACHMENT */ +/* reuse GL_FRAMEBUFFER */ +/* reuse GL_RENDERBUFFER */ +/* reuse GL_RENDERBUFFER_WIDTH */ +/* reuse GL_RENDERBUFFER_HEIGHT */ +/* reuse GL_RENDERBUFFER_INTERNAL_FORMAT */ +/* reuse GL_STENCIL_INDEX1 */ +/* reuse GL_STENCIL_INDEX4 */ +/* reuse GL_STENCIL_INDEX8 */ +/* reuse GL_STENCIL_INDEX16 */ +/* reuse GL_RENDERBUFFER_RED_SIZE */ +/* reuse GL_RENDERBUFFER_GREEN_SIZE */ +/* reuse GL_RENDERBUFFER_BLUE_SIZE */ +/* reuse GL_RENDERBUFFER_ALPHA_SIZE */ +/* reuse GL_RENDERBUFFER_DEPTH_SIZE */ +/* reuse GL_RENDERBUFFER_STENCIL_SIZE */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */ +/* reuse GL_MAX_SAMPLES */ +/* Reuse tokens from ARB_framebuffer_sRGB */ +/* reuse GL_FRAMEBUFFER_SRGB */ +/* Reuse tokens from ARB_half_float_vertex */ +/* reuse GL_HALF_FLOAT */ +/* Reuse tokens from ARB_map_buffer_range */ +/* reuse GL_MAP_READ_BIT */ +/* reuse GL_MAP_WRITE_BIT */ +/* reuse GL_MAP_INVALIDATE_RANGE_BIT */ +/* reuse GL_MAP_INVALIDATE_BUFFER_BIT */ +/* reuse GL_MAP_FLUSH_EXPLICIT_BIT */ +/* reuse GL_MAP_UNSYNCHRONIZED_BIT */ +/* Reuse tokens from ARB_texture_compression_rgtc */ +/* reuse GL_COMPRESSED_RED_RGTC1 */ +/* reuse GL_COMPRESSED_SIGNED_RED_RGTC1 */ +/* reuse GL_COMPRESSED_RG_RGTC2 */ +/* reuse GL_COMPRESSED_SIGNED_RG_RGTC2 */ +/* Reuse tokens from ARB_texture_rg */ +/* reuse GL_RG */ +/* reuse GL_RG_INTEGER */ +/* reuse GL_R8 */ +/* reuse GL_R16 */ +/* reuse GL_RG8 */ +/* reuse GL_RG16 */ +/* reuse GL_R16F */ +/* reuse GL_R32F */ +/* reuse GL_RG16F */ +/* reuse GL_RG32F */ +/* reuse GL_R8I */ +/* reuse GL_R8UI */ +/* reuse GL_R16I */ +/* reuse GL_R16UI */ +/* reuse GL_R32I */ +/* reuse GL_R32UI */ +/* reuse GL_RG8I */ +/* reuse GL_RG8UI */ +/* reuse GL_RG16I */ +/* reuse GL_RG16UI */ +/* reuse GL_RG32I */ +/* reuse GL_RG32UI */ +/* Reuse tokens from ARB_vertex_array_object */ +/* reuse GL_VERTEX_ARRAY_BINDING */ +#endif + +#ifndef GL_VERSION_3_1 +#define GL_SAMPLER_2D_RECT 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 +#define GL_SAMPLER_BUFFER 0x8DC2 +#define GL_INT_SAMPLER_2D_RECT 0x8DCD +#define GL_INT_SAMPLER_BUFFER 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 +#define GL_TEXTURE_BUFFER 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D +#define GL_TEXTURE_RECTANGLE 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 +#define GL_R8_SNORM 0x8F94 +#define GL_RG8_SNORM 0x8F95 +#define GL_RGB8_SNORM 0x8F96 +#define GL_RGBA8_SNORM 0x8F97 +#define GL_R16_SNORM 0x8F98 +#define GL_RG16_SNORM 0x8F99 +#define GL_RGB16_SNORM 0x8F9A +#define GL_RGBA16_SNORM 0x8F9B +#define GL_SIGNED_NORMALIZED 0x8F9C +#define GL_PRIMITIVE_RESTART 0x8F9D +#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E +/* Reuse tokens from ARB_copy_buffer */ +/* reuse GL_COPY_READ_BUFFER */ +/* reuse GL_COPY_WRITE_BUFFER */ +/* Reuse tokens from ARB_draw_instanced (none) */ +/* Reuse tokens from ARB_uniform_buffer_object */ +/* reuse GL_UNIFORM_BUFFER */ +/* reuse GL_UNIFORM_BUFFER_BINDING */ +/* reuse GL_UNIFORM_BUFFER_START */ +/* reuse GL_UNIFORM_BUFFER_SIZE */ +/* reuse GL_MAX_VERTEX_UNIFORM_BLOCKS */ +/* reuse GL_MAX_FRAGMENT_UNIFORM_BLOCKS */ +/* reuse GL_MAX_COMBINED_UNIFORM_BLOCKS */ +/* reuse GL_MAX_UNIFORM_BUFFER_BINDINGS */ +/* reuse GL_MAX_UNIFORM_BLOCK_SIZE */ +/* reuse GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS */ +/* reuse GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS */ +/* reuse GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT */ +/* reuse GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */ +/* reuse GL_ACTIVE_UNIFORM_BLOCKS */ +/* reuse GL_UNIFORM_TYPE */ +/* reuse GL_UNIFORM_SIZE */ +/* reuse GL_UNIFORM_NAME_LENGTH */ +/* reuse GL_UNIFORM_BLOCK_INDEX */ +/* reuse GL_UNIFORM_OFFSET */ +/* reuse GL_UNIFORM_ARRAY_STRIDE */ +/* reuse GL_UNIFORM_MATRIX_STRIDE */ +/* reuse GL_UNIFORM_IS_ROW_MAJOR */ +/* reuse GL_UNIFORM_BLOCK_BINDING */ +/* reuse GL_UNIFORM_BLOCK_DATA_SIZE */ +/* reuse GL_UNIFORM_BLOCK_NAME_LENGTH */ +/* reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS */ +/* reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES */ +/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER */ +/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER */ +/* reuse GL_INVALID_INDEX */ +#endif + +#ifndef GL_VERSION_3_2 +#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 +#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 +#define GL_LINES_ADJACENCY 0x000A +#define GL_LINE_STRIP_ADJACENCY 0x000B +#define GL_TRIANGLES_ADJACENCY 0x000C +#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D +#define GL_PROGRAM_POINT_SIZE 0x8642 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 +#define GL_GEOMETRY_SHADER 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT 0x8916 +#define GL_GEOMETRY_INPUT_TYPE 0x8917 +#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 +#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 +#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 +#define GL_CONTEXT_PROFILE_MASK 0x9126 +/* reuse GL_MAX_VARYING_COMPONENTS */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ +/* Reuse tokens from ARB_depth_clamp */ +/* reuse GL_DEPTH_CLAMP */ +/* Reuse tokens from ARB_draw_elements_base_vertex (none) */ +/* Reuse tokens from ARB_fragment_coord_conventions (none) */ +/* Reuse tokens from ARB_provoking_vertex */ +/* reuse GL_FIRST_VERTEX_CONVENTION */ +/* reuse GL_LAST_VERTEX_CONVENTION */ +/* reuse GL_PROVOKING_VERTEX */ +/* Reuse tokens from ARB_seamless_cube_map */ +/* reuse GL_TEXTURE_CUBE_MAP_SEAMLESS */ +/* Reuse tokens from ARB_sync */ +/* reuse GL_MAX_SERVER_WAIT_TIMEOUT */ +/* reuse GL_OBJECT_TYPE */ +/* reuse GL_SYNC_CONDITION */ +/* reuse GL_SYNC_STATUS */ +/* reuse GL_SYNC_FLAGS */ +/* reuse GL_SYNC_FENCE */ +/* reuse GL_SYNC_GPU_COMMANDS_COMPLETE */ +/* reuse GL_UNSIGNALED */ +/* reuse GL_SIGNALED */ +/* reuse GL_ALREADY_SIGNALED */ +/* reuse GL_TIMEOUT_EXPIRED */ +/* reuse GL_CONDITION_SATISFIED */ +/* reuse GL_WAIT_FAILED */ +/* reuse GL_TIMEOUT_IGNORED */ +/* reuse GL_SYNC_FLUSH_COMMANDS_BIT */ +/* reuse GL_TIMEOUT_IGNORED */ +/* Reuse tokens from ARB_texture_multisample */ +/* reuse GL_SAMPLE_POSITION */ +/* reuse GL_SAMPLE_MASK */ +/* reuse GL_SAMPLE_MASK_VALUE */ +/* reuse GL_MAX_SAMPLE_MASK_WORDS */ +/* reuse GL_TEXTURE_2D_MULTISAMPLE */ +/* reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE */ +/* reuse GL_TEXTURE_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE */ +/* reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_TEXTURE_SAMPLES */ +/* reuse GL_TEXTURE_FIXED_SAMPLE_LOCATIONS */ +/* reuse GL_SAMPLER_2D_MULTISAMPLE */ +/* reuse GL_INT_SAMPLER_2D_MULTISAMPLE */ +/* reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE */ +/* reuse GL_SAMPLER_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_MAX_COLOR_TEXTURE_SAMPLES */ +/* reuse GL_MAX_DEPTH_TEXTURE_SAMPLES */ +/* reuse GL_MAX_INTEGER_SAMPLES */ +/* Don't need to reuse tokens from ARB_vertex_array_bgra since they're already in 1.2 core */ +#endif + +#ifndef GL_VERSION_3_3 +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE +/* Reuse tokens from ARB_blend_func_extended */ +/* reuse GL_SRC1_COLOR */ +/* reuse GL_SRC1_ALPHA */ +/* reuse GL_ONE_MINUS_SRC1_COLOR */ +/* reuse GL_ONE_MINUS_SRC1_ALPHA */ +/* reuse GL_MAX_DUAL_SOURCE_DRAW_BUFFERS */ +/* Reuse tokens from ARB_explicit_attrib_location (none) */ +/* Reuse tokens from ARB_occlusion_query2 */ +/* reuse GL_ANY_SAMPLES_PASSED */ +/* Reuse tokens from ARB_sampler_objects */ +/* reuse GL_SAMPLER_BINDING */ +/* Reuse tokens from ARB_shader_bit_encoding (none) */ +/* Reuse tokens from ARB_texture_rgb10_a2ui */ +/* reuse GL_RGB10_A2UI */ +/* Reuse tokens from ARB_texture_swizzle */ +/* reuse GL_TEXTURE_SWIZZLE_R */ +/* reuse GL_TEXTURE_SWIZZLE_G */ +/* reuse GL_TEXTURE_SWIZZLE_B */ +/* reuse GL_TEXTURE_SWIZZLE_A */ +/* reuse GL_TEXTURE_SWIZZLE_RGBA */ +/* Reuse tokens from ARB_timer_query */ +/* reuse GL_TIME_ELAPSED */ +/* reuse GL_TIMESTAMP */ +/* Reuse tokens from ARB_vertex_type_2_10_10_10_rev */ +/* reuse GL_INT_2_10_10_10_REV */ +#endif + +#ifndef GL_VERSION_4_0 +#define GL_SAMPLE_SHADING 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F +#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B +#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F +/* Reuse tokens from ARB_texture_query_lod (none) */ +/* Reuse tokens from ARB_draw_indirect */ +/* reuse GL_DRAW_INDIRECT_BUFFER */ +/* reuse GL_DRAW_INDIRECT_BUFFER_BINDING */ +/* Reuse tokens from ARB_gpu_shader5 */ +/* reuse GL_GEOMETRY_SHADER_INVOCATIONS */ +/* reuse GL_MAX_GEOMETRY_SHADER_INVOCATIONS */ +/* reuse GL_MIN_FRAGMENT_INTERPOLATION_OFFSET */ +/* reuse GL_MAX_FRAGMENT_INTERPOLATION_OFFSET */ +/* reuse GL_FRAGMENT_INTERPOLATION_OFFSET_BITS */ +/* reuse GL_MAX_VERTEX_STREAMS */ +/* Reuse tokens from ARB_gpu_shader_fp64 */ +/* reuse GL_DOUBLE_VEC2 */ +/* reuse GL_DOUBLE_VEC3 */ +/* reuse GL_DOUBLE_VEC4 */ +/* reuse GL_DOUBLE_MAT2 */ +/* reuse GL_DOUBLE_MAT3 */ +/* reuse GL_DOUBLE_MAT4 */ +/* reuse GL_DOUBLE_MAT2x3 */ +/* reuse GL_DOUBLE_MAT2x4 */ +/* reuse GL_DOUBLE_MAT3x2 */ +/* reuse GL_DOUBLE_MAT3x4 */ +/* reuse GL_DOUBLE_MAT4x2 */ +/* reuse GL_DOUBLE_MAT4x3 */ +/* Reuse tokens from ARB_shader_subroutine */ +/* reuse GL_ACTIVE_SUBROUTINES */ +/* reuse GL_ACTIVE_SUBROUTINE_UNIFORMS */ +/* reuse GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS */ +/* reuse GL_ACTIVE_SUBROUTINE_MAX_LENGTH */ +/* reuse GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH */ +/* reuse GL_MAX_SUBROUTINES */ +/* reuse GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS */ +/* reuse GL_NUM_COMPATIBLE_SUBROUTINES */ +/* reuse GL_COMPATIBLE_SUBROUTINES */ +/* Reuse tokens from ARB_tessellation_shader */ +/* reuse GL_PATCHES */ +/* reuse GL_PATCH_VERTICES */ +/* reuse GL_PATCH_DEFAULT_INNER_LEVEL */ +/* reuse GL_PATCH_DEFAULT_OUTER_LEVEL */ +/* reuse GL_TESS_CONTROL_OUTPUT_VERTICES */ +/* reuse GL_TESS_GEN_MODE */ +/* reuse GL_TESS_GEN_SPACING */ +/* reuse GL_TESS_GEN_VERTEX_ORDER */ +/* reuse GL_TESS_GEN_POINT_MODE */ +/* reuse GL_ISOLINES */ +/* reuse GL_FRACTIONAL_ODD */ +/* reuse GL_FRACTIONAL_EVEN */ +/* reuse GL_MAX_PATCH_VERTICES */ +/* reuse GL_MAX_TESS_GEN_LEVEL */ +/* reuse GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS */ +/* reuse GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS */ +/* reuse GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS */ +/* reuse GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS */ +/* reuse GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS */ +/* reuse GL_MAX_TESS_PATCH_COMPONENTS */ +/* reuse GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS */ +/* reuse GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS */ +/* reuse GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS */ +/* reuse GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS */ +/* reuse GL_MAX_TESS_CONTROL_INPUT_COMPONENTS */ +/* reuse GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS */ +/* reuse GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS */ +/* reuse GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS */ +/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER */ +/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER */ +/* reuse GL_TESS_EVALUATION_SHADER */ +/* reuse GL_TESS_CONTROL_SHADER */ +/* Reuse tokens from ARB_texture_buffer_object_rgb32 (none) */ +/* Reuse tokens from ARB_transform_feedback2 */ +/* reuse GL_TRANSFORM_FEEDBACK */ +/* reuse GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED */ +/* reuse GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE */ +/* reuse GL_TRANSFORM_FEEDBACK_BINDING */ +/* Reuse tokens from ARB_transform_feedback3 */ +/* reuse GL_MAX_TRANSFORM_FEEDBACK_BUFFERS */ +/* reuse GL_MAX_VERTEX_STREAMS */ +#endif + +#ifndef GL_VERSION_4_1 +/* Reuse tokens from ARB_ES2_compatibility */ +/* reuse GL_FIXED */ +/* reuse GL_IMPLEMENTATION_COLOR_READ_TYPE */ +/* reuse GL_IMPLEMENTATION_COLOR_READ_FORMAT */ +/* reuse GL_LOW_FLOAT */ +/* reuse GL_MEDIUM_FLOAT */ +/* reuse GL_HIGH_FLOAT */ +/* reuse GL_LOW_INT */ +/* reuse GL_MEDIUM_INT */ +/* reuse GL_HIGH_INT */ +/* reuse GL_SHADER_COMPILER */ +/* reuse GL_NUM_SHADER_BINARY_FORMATS */ +/* reuse GL_MAX_VERTEX_UNIFORM_VECTORS */ +/* reuse GL_MAX_VARYING_VECTORS */ +/* reuse GL_MAX_FRAGMENT_UNIFORM_VECTORS */ +/* reuse GL_RGB565 */ +/* Reuse tokens from ARB_get_program_binary */ +/* reuse GL_PROGRAM_BINARY_RETRIEVABLE_HINT */ +/* reuse GL_PROGRAM_BINARY_LENGTH */ +/* reuse GL_NUM_PROGRAM_BINARY_FORMATS */ +/* reuse GL_PROGRAM_BINARY_FORMATS */ +/* Reuse tokens from ARB_separate_shader_objects */ +/* reuse GL_VERTEX_SHADER_BIT */ +/* reuse GL_FRAGMENT_SHADER_BIT */ +/* reuse GL_GEOMETRY_SHADER_BIT */ +/* reuse GL_TESS_CONTROL_SHADER_BIT */ +/* reuse GL_TESS_EVALUATION_SHADER_BIT */ +/* reuse GL_ALL_SHADER_BITS */ +/* reuse GL_PROGRAM_SEPARABLE */ +/* reuse GL_ACTIVE_PROGRAM */ +/* reuse GL_PROGRAM_PIPELINE_BINDING */ +/* Reuse tokens from ARB_shader_precision (none) */ +/* Reuse tokens from ARB_vertex_attrib_64bit - all are in GL 3.0 and 4.0 already */ +/* Reuse tokens from ARB_viewport_array - some are in GL 1.1 and ARB_provoking_vertex already */ +/* reuse GL_MAX_VIEWPORTS */ +/* reuse GL_VIEWPORT_SUBPIXEL_BITS */ +/* reuse GL_VIEWPORT_BOUNDS_RANGE */ +/* reuse GL_LAYER_PROVOKING_VERTEX */ +/* reuse GL_VIEWPORT_INDEX_PROVOKING_VERTEX */ +/* reuse GL_UNDEFINED_VERTEX */ +#endif + +#ifndef GL_ARB_depth_buffer_float +#define GL_DEPTH_COMPONENT32F 0x8CAC +#define GL_DEPTH32F_STENCIL8 0x8CAD +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD +#endif + +#ifndef GL_ARB_framebuffer_object +#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 +#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 +#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 +#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 +#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 +#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 +#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 +#define GL_FRAMEBUFFER_DEFAULT 0x8218 +#define GL_FRAMEBUFFER_UNDEFINED 0x8219 +#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A +#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 +#define GL_DEPTH_STENCIL 0x84F9 +#define GL_UNSIGNED_INT_24_8 0x84FA +#define GL_DEPTH24_STENCIL8 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE 0x88F1 +#define GL_TEXTURE_RED_TYPE 0x8C10 +#define GL_TEXTURE_GREEN_TYPE 0x8C11 +#define GL_TEXTURE_BLUE_TYPE 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE 0x8C13 +#define GL_TEXTURE_DEPTH_TYPE 0x8C16 +#define GL_UNSIGNED_NORMALIZED 0x8C17 +#define GL_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_DRAW_FRAMEBUFFER_BINDING GL_FRAMEBUFFER_BINDING +#define GL_RENDERBUFFER_BINDING 0x8CA7 +#define GL_READ_FRAMEBUFFER 0x8CA8 +#define GL_DRAW_FRAMEBUFFER 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA +#define GL_RENDERBUFFER_SAMPLES 0x8CAB +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 +#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD +#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF +#define GL_COLOR_ATTACHMENT0 0x8CE0 +#define GL_COLOR_ATTACHMENT1 0x8CE1 +#define GL_COLOR_ATTACHMENT2 0x8CE2 +#define GL_COLOR_ATTACHMENT3 0x8CE3 +#define GL_COLOR_ATTACHMENT4 0x8CE4 +#define GL_COLOR_ATTACHMENT5 0x8CE5 +#define GL_COLOR_ATTACHMENT6 0x8CE6 +#define GL_COLOR_ATTACHMENT7 0x8CE7 +#define GL_COLOR_ATTACHMENT8 0x8CE8 +#define GL_COLOR_ATTACHMENT9 0x8CE9 +#define GL_COLOR_ATTACHMENT10 0x8CEA +#define GL_COLOR_ATTACHMENT11 0x8CEB +#define GL_COLOR_ATTACHMENT12 0x8CEC +#define GL_COLOR_ATTACHMENT13 0x8CED +#define GL_COLOR_ATTACHMENT14 0x8CEE +#define GL_COLOR_ATTACHMENT15 0x8CEF +#define GL_DEPTH_ATTACHMENT 0x8D00 +#define GL_STENCIL_ATTACHMENT 0x8D20 +#define GL_FRAMEBUFFER 0x8D40 +#define GL_RENDERBUFFER 0x8D41 +#define GL_RENDERBUFFER_WIDTH 0x8D42 +#define GL_RENDERBUFFER_HEIGHT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 +#define GL_STENCIL_INDEX1 0x8D46 +#define GL_STENCIL_INDEX4 0x8D47 +#define GL_STENCIL_INDEX8 0x8D48 +#define GL_STENCIL_INDEX16 0x8D49 +#define GL_RENDERBUFFER_RED_SIZE 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 +#define GL_MAX_SAMPLES 0x8D57 +#endif + +#ifndef GL_ARB_framebuffer_sRGB +#define GL_FRAMEBUFFER_SRGB 0x8DB9 +#endif + +#ifndef GL_ARB_half_float_vertex +#define GL_HALF_FLOAT 0x140B +#endif + +#ifndef GL_ARB_map_buffer_range +#define GL_MAP_READ_BIT 0x0001 +#define GL_MAP_WRITE_BIT 0x0002 +#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 +#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 +#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 +#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 +#endif + +#ifndef GL_ARB_texture_compression_rgtc +#define GL_COMPRESSED_RED_RGTC1 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC +#define GL_COMPRESSED_RG_RGTC2 0x8DBD +#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE +#endif + +#ifndef GL_ARB_texture_rg +#define GL_RG 0x8227 +#define GL_RG_INTEGER 0x8228 +#define GL_R8 0x8229 +#define GL_R16 0x822A +#define GL_RG8 0x822B +#define GL_RG16 0x822C +#define GL_R16F 0x822D +#define GL_R32F 0x822E +#define GL_RG16F 0x822F +#define GL_RG32F 0x8230 +#define GL_R8I 0x8231 +#define GL_R8UI 0x8232 +#define GL_R16I 0x8233 +#define GL_R16UI 0x8234 +#define GL_R32I 0x8235 +#define GL_R32UI 0x8236 +#define GL_RG8I 0x8237 +#define GL_RG8UI 0x8238 +#define GL_RG16I 0x8239 +#define GL_RG16UI 0x823A +#define GL_RG32I 0x823B +#define GL_RG32UI 0x823C +#endif + +#ifndef GL_ARB_vertex_array_object +#define GL_VERTEX_ARRAY_BINDING 0x85B5 +#endif + +#ifndef GL_ARB_uniform_buffer_object +#define GL_UNIFORM_BUFFER 0x8A11 +#define GL_UNIFORM_BUFFER_BINDING 0x8A28 +#define GL_UNIFORM_BUFFER_START 0x8A29 +#define GL_UNIFORM_BUFFER_SIZE 0x8A2A +#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C +#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D +#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E +#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F +#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 +#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 +#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 +#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 +#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 +#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 +#define GL_UNIFORM_TYPE 0x8A37 +#define GL_UNIFORM_SIZE 0x8A38 +#define GL_UNIFORM_NAME_LENGTH 0x8A39 +#define GL_UNIFORM_BLOCK_INDEX 0x8A3A +#define GL_UNIFORM_OFFSET 0x8A3B +#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C +#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D +#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E +#define GL_UNIFORM_BLOCK_BINDING 0x8A3F +#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 +#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 +#define GL_INVALID_INDEX 0xFFFFFFFFu +#endif + +#ifndef GL_ARB_copy_buffer +#define GL_COPY_READ_BUFFER 0x8F36 +#define GL_COPY_WRITE_BUFFER 0x8F37 +#endif + +#ifndef GL_ARB_depth_clamp +#define GL_DEPTH_CLAMP 0x864F +#endif + +#ifndef GL_ARB_draw_elements_base_vertex +#endif + +#ifndef GL_ARB_fragment_coord_conventions +#endif + +#ifndef GL_ARB_provoking_vertex +#define GL_FIRST_VERTEX_CONVENTION 0x8E4D +#define GL_LAST_VERTEX_CONVENTION 0x8E4E +#define GL_PROVOKING_VERTEX 0x8E4F +#endif + +#ifndef GL_ARB_seamless_cube_map +#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F +#endif + +#ifndef GL_ARB_sync +#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 +#define GL_OBJECT_TYPE 0x9112 +#define GL_SYNC_CONDITION 0x9113 +#define GL_SYNC_STATUS 0x9114 +#define GL_SYNC_FLAGS 0x9115 +#define GL_SYNC_FENCE 0x9116 +#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 +#define GL_UNSIGNALED 0x9118 +#define GL_SIGNALED 0x9119 +#define GL_ALREADY_SIGNALED 0x911A +#define GL_TIMEOUT_EXPIRED 0x911B +#define GL_CONDITION_SATISFIED 0x911C +#define GL_WAIT_FAILED 0x911D +#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 +#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull +#endif + +#ifndef GL_ARB_texture_multisample +#define GL_SAMPLE_POSITION 0x8E50 +#define GL_SAMPLE_MASK 0x8E51 +#define GL_SAMPLE_MASK_VALUE 0x8E52 +#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 +#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101 +#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 +#define GL_TEXTURE_SAMPLES 0x9106 +#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 +#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 +#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A +#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B +#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D +#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E +#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F +#define GL_MAX_INTEGER_SAMPLES 0x9110 +#endif + +#ifndef GL_ARB_vertex_array_bgra +/* reuse GL_BGRA */ +#endif + +#ifndef GL_ARB_texture_query_lod +#endif + +#ifndef GL_ARB_blend_func_extended +#define GL_SRC1_COLOR 0x88F9 +#define GL_SRC1_ALPHA 0x8589 +#define GL_ONE_MINUS_SRC1_COLOR 0x88FA +#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB +#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC +#endif + +#ifndef GL_ARB_explicit_attrib_location +#endif + +#ifndef GL_ARB_occlusion_query2 +#define GL_ANY_SAMPLES_PASSED 0x8C2F +#endif + +#ifndef GL_ARB_sampler_objects +#define GL_SAMPLER_BINDING 0x8919 +#endif + +#ifndef GL_ARB_shader_bit_encoding +#endif + +#ifndef GL_ARB_texture_rgb10_a2ui +#define GL_RGB10_A2UI 0x906F +#endif + +#ifndef GL_ARB_texture_swizzle +#define GL_TEXTURE_SWIZZLE_R 0x8E42 +#define GL_TEXTURE_SWIZZLE_G 0x8E43 +#define GL_TEXTURE_SWIZZLE_B 0x8E44 +#define GL_TEXTURE_SWIZZLE_A 0x8E45 +#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 +#endif + +#ifndef GL_ARB_timer_query +#define GL_TIME_ELAPSED 0x88BF +#define GL_TIMESTAMP 0x8E28 +#endif + +#ifndef GL_ARB_vertex_type_2_10_10_10_rev +/* reuse GL_UNSIGNED_INT_2_10_10_10_REV */ +#define GL_INT_2_10_10_10_REV 0x8D9F +#endif + +#ifndef GL_ARB_draw_indirect +#define GL_DRAW_INDIRECT_BUFFER 0x8F3F +#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 +#endif + +#ifndef GL_ARB_gpu_shader5 +#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C +#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D +/* reuse GL_MAX_VERTEX_STREAMS */ +#endif + +#ifndef GL_ARB_gpu_shader_fp64 +/* reuse GL_DOUBLE */ +#define GL_DOUBLE_VEC2 0x8FFC +#define GL_DOUBLE_VEC3 0x8FFD +#define GL_DOUBLE_VEC4 0x8FFE +#define GL_DOUBLE_MAT2 0x8F46 +#define GL_DOUBLE_MAT3 0x8F47 +#define GL_DOUBLE_MAT4 0x8F48 +#define GL_DOUBLE_MAT2x3 0x8F49 +#define GL_DOUBLE_MAT2x4 0x8F4A +#define GL_DOUBLE_MAT3x2 0x8F4B +#define GL_DOUBLE_MAT3x4 0x8F4C +#define GL_DOUBLE_MAT4x2 0x8F4D +#define GL_DOUBLE_MAT4x3 0x8F4E +#endif + +#ifndef GL_ARB_shader_subroutine +#define GL_ACTIVE_SUBROUTINES 0x8DE5 +#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47 +#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49 +#define GL_MAX_SUBROUTINES 0x8DE7 +#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8 +#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A +#define GL_COMPATIBLE_SUBROUTINES 0x8E4B +/* reuse GL_UNIFORM_SIZE */ +/* reuse GL_UNIFORM_NAME_LENGTH */ +#endif + +#ifndef GL_ARB_tessellation_shader +#define GL_PATCHES 0x000E +#define GL_PATCH_VERTICES 0x8E72 +#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73 +#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74 +#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 +#define GL_TESS_GEN_MODE 0x8E76 +#define GL_TESS_GEN_SPACING 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 +#define GL_TESS_GEN_POINT_MODE 0x8E79 +/* reuse GL_TRIANGLES */ +#define GL_QUADS 0x0007 +#define GL_ISOLINES 0x8E7A +/* reuse GL_EQUAL */ +#define GL_FRACTIONAL_ODD 0x8E7B +#define GL_FRACTIONAL_EVEN 0x8E7C +/* reuse GL_CCW */ +/* reuse GL_CW */ +#define GL_MAX_PATCH_VERTICES 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1 +#define GL_TESS_EVALUATION_SHADER 0x8E87 +#define GL_TESS_CONTROL_SHADER 0x8E88 +#endif + +#ifndef GL_ARB_texture_buffer_object_rgb32 +/* reuse GL_RGB32F */ +/* reuse GL_RGB32UI */ +/* reuse GL_RGB32I */ +#endif + +#ifndef GL_ARB_transform_feedback2 +#define GL_TRANSFORM_FEEDBACK 0x8E22 +#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23 +#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24 +#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 +#endif + +#ifndef GL_ARB_transform_feedback3 +#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70 +#define GL_MAX_VERTEX_STREAMS 0x8E71 +#endif + +#ifndef GL_ARB_ES2_compatibility +#define GL_FIXED 0x140C +#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A +#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B +#define GL_LOW_FLOAT 0x8DF0 +#define GL_MEDIUM_FLOAT 0x8DF1 +#define GL_HIGH_FLOAT 0x8DF2 +#define GL_LOW_INT 0x8DF3 +#define GL_MEDIUM_INT 0x8DF4 +#define GL_HIGH_INT 0x8DF5 +#define GL_SHADER_COMPILER 0x8DFA +#define GL_SHADER_BINARY_FORMATS 0x8DF8 +#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 +#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB +#define GL_MAX_VARYING_VECTORS 0x8DFC +#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD +#define GL_RGB565 0x8D62 +#endif + +#ifndef GL_ARB_get_program_binary +#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 +#define GL_PROGRAM_BINARY_LENGTH 0x8741 +#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE +#define GL_PROGRAM_BINARY_FORMATS 0x87FF +#endif + +#ifndef GL_ARB_separate_shader_objects +#define GL_VERTEX_SHADER_BIT 0x00000001 +#define GL_FRAGMENT_SHADER_BIT 0x00000002 +#define GL_GEOMETRY_SHADER_BIT 0x00000004 +#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 +#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 +#define GL_ALL_SHADER_BITS 0xFFFFFFFF +#define GL_PROGRAM_SEPARABLE 0x8258 +#define GL_ACTIVE_PROGRAM 0x8259 +#define GL_PROGRAM_PIPELINE_BINDING 0x825A +#endif + +#ifndef GL_ARB_shader_precision +#endif + +#ifndef GL_ARB_vertex_attrib_64bit +/* reuse GL_DOUBLE */ +/* reuse GL_DOUBLE_VEC2 */ +/* reuse GL_DOUBLE_VEC3 */ +/* reuse GL_DOUBLE_VEC4 */ +/* reuse GL_DOUBLE_MAT2 */ +/* reuse GL_DOUBLE_MAT3 */ +/* reuse GL_DOUBLE_MAT4 */ +/* reuse GL_DOUBLE_MAT2x3 */ +/* reuse GL_DOUBLE_MAT2x4 */ +/* reuse GL_DOUBLE_MAT3x2 */ +/* reuse GL_DOUBLE_MAT3x4 */ +/* reuse GL_DOUBLE_MAT4x2 */ +/* reuse GL_DOUBLE_MAT4x3 */ +#endif + +#ifndef GL_ARB_viewport_array +/* reuse GL_SCISSOR_BOX */ +/* reuse GL_VIEWPORT */ +/* reuse GL_DEPTH_RANGE */ +/* reuse GL_SCISSOR_TEST */ +#define GL_MAX_VIEWPORTS 0x825B +#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C +#define GL_VIEWPORT_BOUNDS_RANGE 0x825D +#define GL_LAYER_PROVOKING_VERTEX 0x825E +#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F +#define GL_UNDEFINED_VERTEX 0x8260 +/* reuse GL_FIRST_VERTEX_CONVENTION */ +/* reuse GL_LAST_VERTEX_CONVENTION */ +/* reuse GL_PROVOKING_VERTEX */ +#endif + + +/*************************************************************/ + +#ifndef GL_VERSION_1_0 +#define GL_VERSION_1_0 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glCullFace (GLenum mode); +GLAPI void APIENTRY glFrontFace (GLenum mode); +GLAPI void APIENTRY glHint (GLenum target, GLenum mode); +GLAPI void APIENTRY glLineWidth (GLfloat width); +GLAPI void APIENTRY glPointSize (GLfloat size); +GLAPI void APIENTRY glPolygonMode (GLenum face, GLenum mode); +GLAPI void APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); +GLAPI void APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); +GLAPI void APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void APIENTRY glDrawBuffer (GLenum mode); +GLAPI void APIENTRY glClear (GLbitfield mask); +GLAPI void APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI void APIENTRY glClearStencil (GLint s); +GLAPI void APIENTRY glClearDepth (GLclampd depth); +GLAPI void APIENTRY glStencilMask (GLuint mask); +GLAPI void APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +GLAPI void APIENTRY glDepthMask (GLboolean flag); +GLAPI void APIENTRY glDisable (GLenum cap); +GLAPI void APIENTRY glEnable (GLenum cap); +GLAPI void APIENTRY glFinish (void); +GLAPI void APIENTRY glFlush (void); +GLAPI void APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); +GLAPI void APIENTRY glLogicOp (GLenum opcode); +GLAPI void APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); +GLAPI void APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); +GLAPI void APIENTRY glDepthFunc (GLenum func); +GLAPI void APIENTRY glPixelStoref (GLenum pname, GLfloat param); +GLAPI void APIENTRY glPixelStorei (GLenum pname, GLint param); +GLAPI void APIENTRY glReadBuffer (GLenum mode); +GLAPI void APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); +GLAPI void APIENTRY glGetBooleanv (GLenum pname, GLboolean *params); +GLAPI void APIENTRY glGetDoublev (GLenum pname, GLdouble *params); +GLAPI GLenum APIENTRY glGetError (void); +GLAPI void APIENTRY glGetFloatv (GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetIntegerv (GLenum pname, GLint *params); +GLAPI const GLubyte * APIENTRY glGetString (GLenum name); +GLAPI void APIENTRY glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); +GLAPI void APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); +GLAPI GLboolean APIENTRY glIsEnabled (GLenum cap); +GLAPI void APIENTRY glDepthRange (GLclampd near, GLclampd far); +GLAPI void APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); +typedef void (APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); +typedef void (APIENTRYP PFNGLPOINTSIZEPROC) (GLfloat size); +typedef void (APIENTRYP PFNGLPOLYGONMODEPROC) (GLenum face, GLenum mode); +typedef void (APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXIMAGE1DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLDRAWBUFFERPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); +typedef void (APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +typedef void (APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); +typedef void (APIENTRYP PFNGLCLEARDEPTHPROC) (GLclampd depth); +typedef void (APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); +typedef void (APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +typedef void (APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); +typedef void (APIENTRYP PFNGLDISABLEPROC) (GLenum cap); +typedef void (APIENTRYP PFNGLENABLEPROC) (GLenum cap); +typedef void (APIENTRYP PFNGLFINISHPROC) (void); +typedef void (APIENTRYP PFNGLFLUSHPROC) (void); +typedef void (APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); +typedef void (APIENTRYP PFNGLLOGICOPPROC) (GLenum opcode); +typedef void (APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); +typedef void (APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); +typedef void (APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); +typedef void (APIENTRYP PFNGLPIXELSTOREFPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLREADBUFFERPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); +typedef void (APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *params); +typedef void (APIENTRYP PFNGLGETDOUBLEVPROC) (GLenum pname, GLdouble *params); +typedef GLenum (APIENTRYP PFNGLGETERRORPROC) (void); +typedef void (APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *params); +typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); +typedef void (APIENTRYP PFNGLGETTEXIMAGEPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC) (GLenum target, GLint level, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC) (GLenum target, GLint level, GLenum pname, GLint *params); +typedef GLboolean (APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); +typedef void (APIENTRYP PFNGLDEPTHRANGEPROC) (GLclampd near, GLclampd far); +typedef void (APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); +#endif + +#ifndef GL_VERSION_1_1 +#define GL_VERSION_1_1 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); +GLAPI void APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); +GLAPI void APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); +GLAPI void APIENTRY glCopyTexImage1D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +GLAPI void APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +GLAPI void APIENTRY glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +GLAPI void APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void APIENTRY glBindTexture (GLenum target, GLuint texture); +GLAPI void APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); +GLAPI void APIENTRY glGenTextures (GLsizei n, GLuint *textures); +GLAPI GLboolean APIENTRY glIsTexture (GLuint texture); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); +typedef void (APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); +typedef void (APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); +typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); +typedef void (APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); +typedef void (APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); +typedef GLboolean (APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); +#endif + +#ifndef GL_VERSION_1_2 +#define GL_VERSION_1_2 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI void APIENTRY glBlendEquation (GLenum mode); +GLAPI void APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +GLAPI void APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#endif + +#ifndef GL_VERSION_1_3 +#define GL_VERSION_1_3 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glActiveTexture (GLenum texture); +GLAPI void APIENTRY glSampleCoverage (GLclampf value, GLboolean invert); +GLAPI void APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +GLAPI void APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +GLAPI void APIENTRY glCompressedTexImage1D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +GLAPI void APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +GLAPI void APIENTRY glCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +GLAPI void APIENTRY glGetCompressedTexImage (GLenum target, GLint level, GLvoid *img); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img); +#endif + +#ifndef GL_VERSION_1_4 +#define GL_VERSION_1_4 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +GLAPI void APIENTRY glMultiDrawArrays (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); +GLAPI void APIENTRY glMultiDrawElements (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei drawcount); +GLAPI void APIENTRY glPointParameterf (GLenum pname, GLfloat param); +GLAPI void APIENTRY glPointParameterfv (GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glPointParameteri (GLenum pname, GLint param); +GLAPI void APIENTRY glPointParameteriv (GLenum pname, const GLint *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei drawcount); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); +#endif + +#ifndef GL_VERSION_1_5 +#define GL_VERSION_1_5 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glGenQueries (GLsizei n, GLuint *ids); +GLAPI void APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); +GLAPI GLboolean APIENTRY glIsQuery (GLuint id); +GLAPI void APIENTRY glBeginQuery (GLenum target, GLuint id); +GLAPI void APIENTRY glEndQuery (GLenum target); +GLAPI void APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetQueryObjectiv (GLuint id, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); +GLAPI void APIENTRY glBindBuffer (GLenum target, GLuint buffer); +GLAPI void APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); +GLAPI void APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); +GLAPI GLboolean APIENTRY glIsBuffer (GLuint buffer); +GLAPI void APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); +GLAPI void APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); +GLAPI void APIENTRY glGetBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); +GLAPI GLvoid* APIENTRY glMapBuffer (GLenum target, GLenum access); +GLAPI GLboolean APIENTRY glUnmapBuffer (GLenum target); +GLAPI void APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, GLvoid* *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); +typedef void (APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISQUERYPROC) (GLuint id); +typedef void (APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLENDQUERYPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); +typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); +typedef void (APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); +typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); +typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); +typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); +typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); +typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, GLvoid* *params); +#endif + +#ifndef GL_VERSION_2_0 +#define GL_VERSION_2_0 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); +GLAPI void APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); +GLAPI void APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +GLAPI void APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); +GLAPI void APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); +GLAPI void APIENTRY glAttachShader (GLuint program, GLuint shader); +GLAPI void APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); +GLAPI void APIENTRY glCompileShader (GLuint shader); +GLAPI GLuint APIENTRY glCreateProgram (void); +GLAPI GLuint APIENTRY glCreateShader (GLenum type); +GLAPI void APIENTRY glDeleteProgram (GLuint program); +GLAPI void APIENTRY glDeleteShader (GLuint shader); +GLAPI void APIENTRY glDetachShader (GLuint program, GLuint shader); +GLAPI void APIENTRY glDisableVertexAttribArray (GLuint index); +GLAPI void APIENTRY glEnableVertexAttribArray (GLuint index); +GLAPI void APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +GLAPI void APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +GLAPI void APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +GLAPI GLint APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); +GLAPI void APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +GLAPI void APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +GLAPI void APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +GLAPI GLint APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); +GLAPI void APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); +GLAPI void APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); +GLAPI void APIENTRY glGetVertexAttribdv (GLuint index, GLenum pname, GLdouble *params); +GLAPI void APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid* *pointer); +GLAPI GLboolean APIENTRY glIsProgram (GLuint program); +GLAPI GLboolean APIENTRY glIsShader (GLuint shader); +GLAPI void APIENTRY glLinkProgram (GLuint program); +GLAPI void APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* const *string, const GLint *length); +GLAPI void APIENTRY glUseProgram (GLuint program); +GLAPI void APIENTRY glUniform1f (GLint location, GLfloat v0); +GLAPI void APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); +GLAPI void APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +GLAPI void APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +GLAPI void APIENTRY glUniform1i (GLint location, GLint v0); +GLAPI void APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); +GLAPI void APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); +GLAPI void APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +GLAPI void APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glValidateProgram (GLuint program); +GLAPI void APIENTRY glVertexAttrib1d (GLuint index, GLdouble x); +GLAPI void APIENTRY glVertexAttrib1dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); +GLAPI void APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib1s (GLuint index, GLshort x); +GLAPI void APIENTRY glVertexAttrib1sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib2d (GLuint index, GLdouble x, GLdouble y); +GLAPI void APIENTRY glVertexAttrib2dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); +GLAPI void APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib2s (GLuint index, GLshort x, GLshort y); +GLAPI void APIENTRY glVertexAttrib2sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib3d (GLuint index, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glVertexAttrib3dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib3s (GLuint index, GLshort x, GLshort y, GLshort z); +GLAPI void APIENTRY glVertexAttrib3sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4Nbv (GLuint index, const GLbyte *v); +GLAPI void APIENTRY glVertexAttrib4Niv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttrib4Nsv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4Nub (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +GLAPI void APIENTRY glVertexAttrib4Nubv (GLuint index, const GLubyte *v); +GLAPI void APIENTRY glVertexAttrib4Nuiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttrib4Nusv (GLuint index, const GLushort *v); +GLAPI void APIENTRY glVertexAttrib4bv (GLuint index, const GLbyte *v); +GLAPI void APIENTRY glVertexAttrib4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glVertexAttrib4dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib4iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttrib4s (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI void APIENTRY glVertexAttrib4sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4ubv (GLuint index, const GLubyte *v); +GLAPI void APIENTRY glVertexAttrib4uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttrib4usv (GLuint index, const GLushort *v); +GLAPI void APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); +typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); +typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); +typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); +typedef void (APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); +typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); +typedef void (APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); +typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC) (void); +typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); +typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); +typedef void (APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); +typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); +typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); +typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); +typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, GLvoid* *pointer); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); +typedef GLboolean (APIENTRYP PFNGLISSHADERPROC) (GLuint shader); +typedef void (APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar* const *string, const GLint *length); +typedef void (APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); +typedef void (APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); +typedef void (APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); +typedef void (APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); +typedef void (APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_VERSION_2_1 +#define GL_VERSION_2_1 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +#endif + +#ifndef GL_VERSION_3_0 +#define GL_VERSION_3_0 1 +/* OpenGL 3.0 also reuses entry points from these extensions: */ +/* ARB_framebuffer_object */ +/* ARB_map_buffer_range */ +/* ARB_vertex_array_object */ +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glColorMaski (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +GLAPI void APIENTRY glGetBooleani_v (GLenum target, GLuint index, GLboolean *data); +GLAPI void APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); +GLAPI void APIENTRY glEnablei (GLenum target, GLuint index); +GLAPI void APIENTRY glDisablei (GLenum target, GLuint index); +GLAPI GLboolean APIENTRY glIsEnabledi (GLenum target, GLuint index); +GLAPI void APIENTRY glBeginTransformFeedback (GLenum primitiveMode); +GLAPI void APIENTRY glEndTransformFeedback (void); +GLAPI void APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +GLAPI void APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); +GLAPI void APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar* const *varyings, GLenum bufferMode); +GLAPI void APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +GLAPI void APIENTRY glClampColor (GLenum target, GLenum clamp); +GLAPI void APIENTRY glBeginConditionalRender (GLuint id, GLenum mode); +GLAPI void APIENTRY glEndConditionalRender (void); +GLAPI void APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +GLAPI void APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); +GLAPI void APIENTRY glVertexAttribI1i (GLuint index, GLint x); +GLAPI void APIENTRY glVertexAttribI2i (GLuint index, GLint x, GLint y); +GLAPI void APIENTRY glVertexAttribI3i (GLuint index, GLint x, GLint y, GLint z); +GLAPI void APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); +GLAPI void APIENTRY glVertexAttribI1ui (GLuint index, GLuint x); +GLAPI void APIENTRY glVertexAttribI2ui (GLuint index, GLuint x, GLuint y); +GLAPI void APIENTRY glVertexAttribI3ui (GLuint index, GLuint x, GLuint y, GLuint z); +GLAPI void APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +GLAPI void APIENTRY glVertexAttribI1iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI2iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI3iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI1uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI2uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI3uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI4bv (GLuint index, const GLbyte *v); +GLAPI void APIENTRY glVertexAttribI4sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttribI4ubv (GLuint index, const GLubyte *v); +GLAPI void APIENTRY glVertexAttribI4usv (GLuint index, const GLushort *v); +GLAPI void APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); +GLAPI void APIENTRY glBindFragDataLocation (GLuint program, GLuint color, const GLchar *name); +GLAPI GLint APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); +GLAPI void APIENTRY glUniform1ui (GLint location, GLuint v0); +GLAPI void APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); +GLAPI void APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); +GLAPI void APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +GLAPI void APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glTexParameterIiv (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glTexParameterIuiv (GLenum target, GLenum pname, const GLuint *params); +GLAPI void APIENTRY glGetTexParameterIiv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetTexParameterIuiv (GLenum target, GLenum pname, GLuint *params); +GLAPI void APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); +GLAPI void APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); +GLAPI void APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); +GLAPI void APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +GLAPI const GLubyte * APIENTRY glGetStringi (GLenum name, GLuint index); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void (APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); +typedef void (APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); +typedef void (APIENTRYP PFNGLENABLEIPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLDISABLEIPROC) (GLenum target, GLuint index); +typedef GLboolean (APIENTRYP PFNGLISENABLEDIPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); +typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); +typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar* const *varyings, GLenum bufferMode); +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp); +typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode); +typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC) (void); +typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint x, GLint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint x, GLuint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); +typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint color, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); +typedef void (APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); +typedef void (APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); +typedef void (APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); +typedef void (APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); +typedef void (APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); +#endif + +#ifndef GL_VERSION_3_1 +#define GL_VERSION_3_1 1 +/* OpenGL 3.1 also reuses entry points from these extensions: */ +/* ARB_copy_buffer */ +/* ARB_uniform_buffer_object */ +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); +GLAPI void APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instancecount); +GLAPI void APIENTRY glTexBuffer (GLenum target, GLenum internalformat, GLuint buffer); +GLAPI void APIENTRY glPrimitiveRestartIndex (GLuint index); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instancecount); +typedef void (APIENTRYP PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer); +typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint index); +#endif + +#ifndef GL_VERSION_3_2 +#define GL_VERSION_3_2 1 +/* OpenGL 3.2 also reuses entry points from these extensions: */ +/* ARB_draw_elements_base_vertex */ +/* ARB_provoking_vertex */ +/* ARB_sync */ +/* ARB_texture_multisample */ +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); +GLAPI void APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); +GLAPI void APIENTRY glFramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); +#endif + +#ifndef GL_VERSION_3_3 +#define GL_VERSION_3_3 1 +/* OpenGL 3.3 also reuses entry points from these extensions: */ +/* ARB_blend_func_extended */ +/* ARB_sampler_objects */ +/* ARB_explicit_attrib_location, but it has none */ +/* ARB_occlusion_query2 (no entry points) */ +/* ARB_shader_bit_encoding (no entry points) */ +/* ARB_texture_rgb10_a2ui (no entry points) */ +/* ARB_texture_swizzle (no entry points) */ +/* ARB_timer_query */ +/* ARB_vertex_type_2_10_10_10_rev */ +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); +#endif + +#ifndef GL_VERSION_4_0 +#define GL_VERSION_4_0 1 +/* OpenGL 4.0 also reuses entry points from these extensions: */ +/* ARB_texture_query_lod (no entry points) */ +/* ARB_draw_indirect */ +/* ARB_gpu_shader5 (no entry points) */ +/* ARB_gpu_shader_fp64 */ +/* ARB_shader_subroutine */ +/* ARB_tessellation_shader */ +/* ARB_texture_buffer_object_rgb32 (no entry points) */ +/* ARB_texture_cube_map_array (no entry points) */ +/* ARB_texture_gather (no entry points) */ +/* ARB_transform_feedback2 */ +/* ARB_transform_feedback3 */ +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glMinSampleShading (GLfloat value); +GLAPI void APIENTRY glBlendEquationi (GLuint buf, GLenum mode); +GLAPI void APIENTRY glBlendEquationSeparatei (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +GLAPI void APIENTRY glBlendFunci (GLuint buf, GLenum src, GLenum dst); +GLAPI void APIENTRY glBlendFuncSeparatei (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLMINSAMPLESHADINGPROC) (GLfloat value); +typedef void (APIENTRYP PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (APIENTRYP PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +#endif + +#ifndef GL_VERSION_4_1 +#define GL_VERSION_4_1 1 +/* OpenGL 4.1 reuses entry points from these extensions: */ +/* ARB_ES2_compatibility */ +/* ARB_get_program_binary */ +/* ARB_separate_shader_objects */ +/* ARB_shader_precision (no entry points) */ +/* ARB_vertex_attrib_64bit */ +/* ARB_viewport_array */ +#endif + +#ifndef GL_ARB_depth_buffer_float +#define GL_ARB_depth_buffer_float 1 +#endif + +#ifndef GL_ARB_framebuffer_object +#define GL_ARB_framebuffer_object 1 +#ifdef GL3_PROTOTYPES +GLAPI GLboolean APIENTRY glIsRenderbuffer (GLuint renderbuffer); +GLAPI void APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); +GLAPI void APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); +GLAPI void APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); +GLAPI void APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI GLboolean APIENTRY glIsFramebuffer (GLuint framebuffer); +GLAPI void APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); +GLAPI void APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); +GLAPI void APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); +GLAPI GLenum APIENTRY glCheckFramebufferStatus (GLenum target); +GLAPI void APIENTRY glFramebufferTexture1D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GLAPI void APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GLAPI void APIENTRY glFramebufferTexture3D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +GLAPI void APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +GLAPI void APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); +GLAPI void APIENTRY glGenerateMipmap (GLenum target); +GLAPI void APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +GLAPI void APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +#endif /* GL3_PROTOTYPES */ +typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); +typedef void (APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); +typedef void (APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); +typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); +typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); +typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); +typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +#endif + +#ifndef GL_ARB_framebuffer_sRGB +#define GL_ARB_framebuffer_sRGB 1 +#endif + +#ifndef GL_ARB_half_float_vertex +#define GL_ARB_half_float_vertex 1 +#endif + +#ifndef GL_ARB_map_buffer_range +#define GL_ARB_map_buffer_range 1 +#ifdef GL3_PROTOTYPES +GLAPI GLvoid* APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +GLAPI void APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); +#endif /* GL3_PROTOTYPES */ +typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); +#endif + +#ifndef GL_ARB_texture_compression_rgtc +#define GL_ARB_texture_compression_rgtc 1 +#endif + +#ifndef GL_ARB_texture_rg +#define GL_ARB_texture_rg 1 +#endif + +#ifndef GL_ARB_vertex_array_object +#define GL_ARB_vertex_array_object 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glBindVertexArray (GLuint array); +GLAPI void APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); +GLAPI void APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); +GLAPI GLboolean APIENTRY glIsVertexArray (GLuint array); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); +typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); +typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); +typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); +#endif + +#ifndef GL_ARB_uniform_buffer_object +#define GL_ARB_uniform_buffer_object 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar* const *uniformNames, GLuint *uniformIndices); +GLAPI void APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetActiveUniformName (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); +GLAPI GLuint APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); +GLAPI void APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); +GLAPI void APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar* const *uniformNames, GLuint *uniformIndices); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); +typedef GLuint (APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); +typedef void (APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); +#endif + +#ifndef GL_ARB_copy_buffer +#define GL_ARB_copy_buffer 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +#endif + +#ifndef GL_ARB_depth_clamp +#define GL_ARB_depth_clamp 1 +#endif + +#ifndef GL_ARB_draw_elements_base_vertex +#define GL_ARB_draw_elements_base_vertex 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); +GLAPI void APIENTRY glDrawRangeElementsBaseVertex (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); +GLAPI void APIENTRY glDrawElementsInstancedBaseVertex (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instancecount, GLint basevertex); +GLAPI void APIENTRY glMultiDrawElementsBaseVertex (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei drawcount, const GLint *basevertex); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instancecount, GLint basevertex); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei drawcount, const GLint *basevertex); +#endif + +#ifndef GL_ARB_fragment_coord_conventions +#define GL_ARB_fragment_coord_conventions 1 +#endif + +#ifndef GL_ARB_provoking_vertex +#define GL_ARB_provoking_vertex 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glProvokingVertex (GLenum mode); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROVOKINGVERTEXPROC) (GLenum mode); +#endif + +#ifndef GL_ARB_seamless_cube_map +#define GL_ARB_seamless_cube_map 1 +#endif + +#ifndef GL_ARB_sync +#define GL_ARB_sync 1 +#ifdef GL3_PROTOTYPES +GLAPI GLsync APIENTRY glFenceSync (GLenum condition, GLbitfield flags); +GLAPI GLboolean APIENTRY glIsSync (GLsync sync); +GLAPI void APIENTRY glDeleteSync (GLsync sync); +GLAPI GLenum APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); +GLAPI void APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); +GLAPI void APIENTRY glGetInteger64v (GLenum pname, GLint64 *params); +GLAPI void APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +#endif /* GL3_PROTOTYPES */ +typedef GLsync (APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); +typedef GLboolean (APIENTRYP PFNGLISSYNCPROC) (GLsync sync); +typedef void (APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); +typedef GLenum (APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *params); +typedef void (APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +#endif + +#ifndef GL_ARB_texture_multisample +#define GL_ARB_texture_multisample 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glTexImage2DMultisample (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +GLAPI void APIENTRY glTexImage3DMultisample (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +GLAPI void APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val); +GLAPI void APIENTRY glSampleMaski (GLuint index, GLbitfield mask); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val); +typedef void (APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield mask); +#endif + +#ifndef GL_ARB_vertex_array_bgra +#define GL_ARB_vertex_array_bgra 1 +#endif + +#ifndef GL_ARB_texture_query_lod +#define GL_ARB_texture_query_lod 1 +#endif + +#ifndef GL_ARB_blend_func_extended +#define GL_ARB_blend_func_extended 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glBindFragDataLocationIndexed (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); +GLAPI GLint APIENTRY glGetFragDataIndex (GLuint program, const GLchar *name); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const GLchar *name); +#endif + +#ifndef GL_ARB_explicit_attrib_location +#define GL_ARB_explicit_attrib_location 1 +#endif + +#ifndef GL_ARB_occlusion_query2 +#define GL_ARB_occlusion_query2 1 +#endif + +#ifndef GL_ARB_sampler_objects +#define GL_ARB_sampler_objects 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); +GLAPI void APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); +GLAPI GLboolean APIENTRY glIsSampler (GLuint sampler); +GLAPI void APIENTRY glBindSampler (GLuint unit, GLuint sampler); +GLAPI void APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); +GLAPI void APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); +GLAPI void APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); +GLAPI void APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); +GLAPI void APIENTRY glSamplerParameterIiv (GLuint sampler, GLenum pname, const GLint *param); +GLAPI void APIENTRY glSamplerParameterIuiv (GLuint sampler, GLenum pname, const GLuint *param); +GLAPI void APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetSamplerParameterIiv (GLuint sampler, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetSamplerParameterIuiv (GLuint sampler, GLenum pname, GLuint *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); +typedef void (APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); +typedef GLboolean (APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); +typedef void (APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint *param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint *param); +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint *params); +#endif + +#ifndef GL_ARB_shader_bit_encoding +#define GL_ARB_shader_bit_encoding 1 +#endif + +#ifndef GL_ARB_texture_rgb10_a2ui +#define GL_ARB_texture_rgb10_a2ui 1 +#endif + +#ifndef GL_ARB_texture_swizzle +#define GL_ARB_texture_swizzle 1 +#endif + +#ifndef GL_ARB_timer_query +#define GL_ARB_timer_query 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glQueryCounter (GLuint id, GLenum target); +GLAPI void APIENTRY glGetQueryObjecti64v (GLuint id, GLenum pname, GLint64 *params); +GLAPI void APIENTRY glGetQueryObjectui64v (GLuint id, GLenum pname, GLuint64 *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64 *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64 *params); +#endif + +#ifndef GL_ARB_vertex_type_2_10_10_10_rev +#define GL_ARB_vertex_type_2_10_10_10_rev 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glVertexAttribP1ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI void APIENTRY glVertexAttribP1uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI void APIENTRY glVertexAttribP2ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI void APIENTRY glVertexAttribP2uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI void APIENTRY glVertexAttribP3ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI void APIENTRY glVertexAttribP3uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI void APIENTRY glVertexAttribP4ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI void APIENTRY glVertexAttribP4uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +#endif + +#ifndef GL_ARB_draw_indirect +#define GL_ARB_draw_indirect 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glDrawArraysIndirect (GLenum mode, const GLvoid *indirect); +GLAPI void APIENTRY glDrawElementsIndirect (GLenum mode, GLenum type, const GLvoid *indirect); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const GLvoid *indirect); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const GLvoid *indirect); +#endif + +#ifndef GL_ARB_gpu_shader5 +#define GL_ARB_gpu_shader5 1 +#endif + +#ifndef GL_ARB_gpu_shader_fp64 +#define GL_ARB_gpu_shader_fp64 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glUniform1d (GLint location, GLdouble x); +GLAPI void APIENTRY glUniform2d (GLint location, GLdouble x, GLdouble y); +GLAPI void APIENTRY glUniform3d (GLint location, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glUniform4d (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glUniform1dv (GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glUniform2dv (GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glUniform3dv (GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glUniform4dv (GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix2x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix2x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix3x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix3x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix4x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix4x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glGetUniformdv (GLuint program, GLint location, GLdouble *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLUNIFORM1DPROC) (GLint location, GLdouble x); +typedef void (APIENTRYP PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble *params); +#endif + +#ifndef GL_ARB_shader_subroutine +#define GL_ARB_shader_subroutine 1 +#ifdef GL3_PROTOTYPES +GLAPI GLint APIENTRY glGetSubroutineUniformLocation (GLuint program, GLenum shadertype, const GLchar *name); +GLAPI GLuint APIENTRY glGetSubroutineIndex (GLuint program, GLenum shadertype, const GLchar *name); +GLAPI void APIENTRY glGetActiveSubroutineUniformiv (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); +GLAPI void APIENTRY glGetActiveSubroutineUniformName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); +GLAPI void APIENTRY glGetActiveSubroutineName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); +GLAPI void APIENTRY glUniformSubroutinesuiv (GLenum shadertype, GLsizei count, const GLuint *indices); +GLAPI void APIENTRY glGetUniformSubroutineuiv (GLenum shadertype, GLint location, GLuint *params); +GLAPI void APIENTRY glGetProgramStageiv (GLuint program, GLenum shadertype, GLenum pname, GLint *values); +#endif /* GL3_PROTOTYPES */ +typedef GLint (APIENTRYP PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const GLchar *name); +typedef GLuint (APIENTRYP PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const GLchar *name); +typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); +typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); +typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); +typedef void (APIENTRYP PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint *indices); +typedef void (APIENTRYP PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint *values); +#endif + +#ifndef GL_ARB_tessellation_shader +#define GL_ARB_tessellation_shader 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glPatchParameteri (GLenum pname, GLint value); +GLAPI void APIENTRY glPatchParameterfv (GLenum pname, const GLfloat *values); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value); +typedef void (APIENTRYP PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat *values); +#endif + +#ifndef GL_ARB_texture_buffer_object_rgb32 +#define GL_ARB_texture_buffer_object_rgb32 1 +#endif + +#ifndef GL_ARB_transform_feedback2 +#define GL_ARB_transform_feedback2 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glBindTransformFeedback (GLenum target, GLuint id); +GLAPI void APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); +GLAPI void APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); +GLAPI GLboolean APIENTRY glIsTransformFeedback (GLuint id); +GLAPI void APIENTRY glPauseTransformFeedback (void); +GLAPI void APIENTRY glResumeTransformFeedback (void); +GLAPI void APIENTRY glDrawTransformFeedback (GLenum mode, GLuint id); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); +typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); +typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); +typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id); +#endif + +#ifndef GL_ARB_transform_feedback3 +#define GL_ARB_transform_feedback3 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glDrawTransformFeedbackStream (GLenum mode, GLuint id, GLuint stream); +GLAPI void APIENTRY glBeginQueryIndexed (GLenum target, GLuint index, GLuint id); +GLAPI void APIENTRY glEndQueryIndexed (GLenum target, GLuint index); +GLAPI void APIENTRY glGetQueryIndexediv (GLenum target, GLuint index, GLenum pname, GLint *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream); +typedef void (APIENTRYP PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id); +typedef void (APIENTRYP PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); +#endif + +#ifndef GL_ARB_ES2_compatibility +#define GL_ARB_ES2_compatibility 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glReleaseShaderCompiler (void); +GLAPI void APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length); +GLAPI void APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); +GLAPI void APIENTRY glDepthRangef (GLclampf n, GLclampf f); +GLAPI void APIENTRY glClearDepthf (GLclampf d); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); +typedef void (APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length); +typedef void (APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); +typedef void (APIENTRYP PFNGLDEPTHRANGEFPROC) (GLclampf n, GLclampf f); +typedef void (APIENTRYP PFNGLCLEARDEPTHFPROC) (GLclampf d); +#endif + +#ifndef GL_ARB_get_program_binary +#define GL_ARB_get_program_binary 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); +GLAPI void APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length); +GLAPI void APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); +typedef void (APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); +#endif + +#ifndef GL_ARB_separate_shader_objects +#define GL_ARB_separate_shader_objects 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program); +GLAPI void APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program); +GLAPI GLuint APIENTRY glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar* const *strings); +GLAPI void APIENTRY glBindProgramPipeline (GLuint pipeline); +GLAPI void APIENTRY glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines); +GLAPI void APIENTRY glGenProgramPipelines (GLsizei n, GLuint *pipelines); +GLAPI GLboolean APIENTRY glIsProgramPipeline (GLuint pipeline); +GLAPI void APIENTRY glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params); +GLAPI void APIENTRY glProgramUniform1i (GLuint program, GLint location, GLint v0); +GLAPI void APIENTRY glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform1f (GLuint program, GLint location, GLfloat v0); +GLAPI void APIENTRY glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform1d (GLuint program, GLint location, GLdouble v0); +GLAPI void APIENTRY glProgramUniform1dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform1ui (GLuint program, GLint location, GLuint v0); +GLAPI void APIENTRY glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1); +GLAPI void APIENTRY glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1); +GLAPI void APIENTRY glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform2d (GLuint program, GLint location, GLdouble v0, GLdouble v1); +GLAPI void APIENTRY glProgramUniform2dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1); +GLAPI void APIENTRY glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +GLAPI void APIENTRY glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +GLAPI void APIENTRY glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform3d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); +GLAPI void APIENTRY glProgramUniform3dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +GLAPI void APIENTRY glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +GLAPI void APIENTRY glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +GLAPI void APIENTRY glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform4d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); +GLAPI void APIENTRY glProgramUniform4dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +GLAPI void APIENTRY glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix2x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix3x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix2x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix4x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix3x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix4x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glValidateProgramPipeline (GLuint pipeline); +GLAPI void APIENTRY glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); +typedef void (APIENTRYP PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); +typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar* const *strings); +typedef void (APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); +typedef void (APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines); +typedef void (APIENTRYP PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); +typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); +typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +#endif + +#ifndef GL_ARB_shader_precision +#define GL_ARB_shader_precision 1 +#endif + +#ifndef GL_ARB_vertex_attrib_64bit +#define GL_ARB_vertex_attrib_64bit 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glVertexAttribL1d (GLuint index, GLdouble x); +GLAPI void APIENTRY glVertexAttribL2d (GLuint index, GLdouble x, GLdouble y); +GLAPI void APIENTRY glVertexAttribL3d (GLuint index, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glVertexAttribL4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glVertexAttribL1dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribL2dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribL3dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribL4dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribLPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +GLAPI void APIENTRY glGetVertexAttribLdv (GLuint index, GLenum pname, GLdouble *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble *params); +#endif + +#ifndef GL_ARB_viewport_array +#define GL_ARB_viewport_array 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glViewportArrayv (GLuint first, GLsizei count, const GLfloat *v); +GLAPI void APIENTRY glViewportIndexedf (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +GLAPI void APIENTRY glViewportIndexedfv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glScissorArrayv (GLuint first, GLsizei count, const GLint *v); +GLAPI void APIENTRY glScissorIndexed (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +GLAPI void APIENTRY glScissorIndexedv (GLuint index, const GLint *v); +GLAPI void APIENTRY glDepthRangeArrayv (GLuint first, GLsizei count, const GLclampd *v); +GLAPI void APIENTRY glDepthRangeIndexed (GLuint index, GLclampd n, GLclampd f); +GLAPI void APIENTRY glGetFloati_v (GLenum target, GLuint index, GLfloat *data); +GLAPI void APIENTRY glGetDoublei_v (GLenum target, GLuint index, GLdouble *data); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint *v); +typedef void (APIENTRYP PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLclampd *v); +typedef void (APIENTRYP PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLclampd n, GLclampd f); +typedef void (APIENTRYP PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat *data); +typedef void (APIENTRYP PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble *data); +#endif + + +#ifdef __cplusplus +} +#endif + +#endif diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gl3ext.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gl3ext.h" new file mode 100644 index 0000000..2c82000 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gl3ext.h" @@ -0,0 +1,363 @@ +/* + Copyright: (c) 2010-2013 Apple Inc. All rights reserved. +*/ + +#ifndef __gl3ext_h_ +#define __gl3ext_h_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) +#define WIN32_LEAN_AND_MEAN 1 +#include +#endif + +#if defined(__APPLE__) +#define GL3_PROTOTYPES +#endif + +#ifndef APIENTRY +#define APIENTRY +#endif +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * +#endif +#ifndef GLAPI +#define GLAPI extern +#endif + +/****** Enums ************************************************/ + +#ifndef GL_ARB_instanced_arrays +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE +#endif + +#ifndef GL_ARB_internalformat_query +#define GL_NUM_SAMPLE_COUNTS 0x9380 +#endif + +#ifndef GL_ARB_sample_shading +#define GL_SAMPLE_SHADING_ARB 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37 +#endif + +#ifndef GL_ARB_shading_language_include +#define GL_SHADER_INCLUDE_ARB 0x8DAE +#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9 +#define GL_NAMED_STRING_TYPE_ARB 0x8DEA +#endif + +#ifndef GL_ARB_texture_cube_map_array +#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B +#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F +#endif + +#ifndef GL_ARB_texture_gather +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F +#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F +#endif + +#ifndef GL_ARB_texture_storage +#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F +#endif + +#ifndef GL_EXT_debug_label +/* reuse GL_TEXTURE */ +/* reuse GL_FRAMEBUFFER */ +/* reuse GL_RENDERBUFFER */ +/* reuse GL_TRANSFORM_FEEDBACK */ +#define GL_BUFFER_OBJECT_EXT 0x9151 +#define GL_SHADER_OBJECT_EXT 0x8B48 +#define GL_PROGRAM_OBJECT_EXT 0x8B40 +#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 +#define GL_QUERY_OBJECT_EXT 0x9153 +#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F +#define GL_SYNC_OBJECT_APPLE 0x8A53 +#define GL_SAMPLER 0x82E6 +#endif + +#ifndef GL_EXT_depth_bounds_test +#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 +#define GL_DEPTH_BOUNDS_EXT 0x8891 +#endif + +#ifndef GL_EXT_framebuffer_multisample_blit_scaled +#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA +#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB +#endif + +#ifndef GL_EXT_texture_compression_s3tc +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 +#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F +#endif + +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF +#endif + +#ifndef GL_EXT_texture_mirror_clamp +#define GL_MIRROR_CLAMP_EXT 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 +#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 +#endif + +#ifndef GL_EXT_texture_sRGB_decode +#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 +#define GL_DECODE_EXT 0x8A49 +#define GL_SKIP_DECODE_EXT 0x8A4A +#endif + +#ifndef GL_APPLE_client_storage +#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 +#endif + +#ifndef GL_APPLE_object_purgeable +#define GL_RELEASED_APPLE 0x8A19 +#define GL_VOLATILE_APPLE 0x8A1A +#define GL_RETAINED_APPLE 0x8A1B +#define GL_UNDEFINED_APPLE 0x8A1C +#define GL_PURGEABLE_APPLE 0x8A1D +#endif + +#ifndef GL_APPLE_rgb_422 +#define GL_RGB_422_APPLE 0x8A1F +#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB +#define GL_RGB_RAW_422_APPLE 0x8A51 +#endif + +#ifndef GL_APPLE_row_bytes +#define GL_PACK_ROW_BYTES_APPLE 0x8A15 +#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16 +#define GL_PACK_IMAGE_BYTES_APPLE 0x8A17 +#define GL_UNPACK_IMAGE_BYTES_APPLE 0x8A18 +#endif + +#ifndef GL_APPLE_texture_range +#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 +#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 +#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC +#define GL_TEXTURE_MINIMIZE_STORAGE_APPLE 0x85B6 +#define GL_STORAGE_PRIVATE_APPLE 0x85BD +#define GL_STORAGE_CACHED_APPLE 0x85BE +#define GL_STORAGE_SHARED_APPLE 0x85BF +#endif + +#ifndef GL_ATI_texture_mirror_once +#define GL_MIRROR_CLAMP_ATI 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 +#endif + +/****** Functions Prototypes *********************************/ + +#ifndef GL_ARB_draw_buffers_blend +#define GL_ARB_draw_buffers_blend 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glBlendEquationiARB (GLuint buf, GLenum mode); +GLAPI void APIENTRY glBlendEquationSeparateiARB (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +GLAPI void APIENTRY glBlendFunciARB (GLuint buf, GLenum src, GLenum dst); +GLAPI void APIENTRY glBlendFuncSeparateiARB (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode); +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (APIENTRYP PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +#endif + +#ifndef GL_ARB_instanced_arrays +#define GL_ARB_instanced_arrays 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glVertexAttribDivisorARB (GLuint index, GLuint divisor); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor); +#endif + +#ifndef GL_ARB_internalformat_query +#define GL_ARB_internalformat_query 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); +#endif + +#ifndef GL_ARB_sample_shading +#define GL_ARB_sample_shading 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glMinSampleShadingARB (GLclampf value); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLMINSAMPLESHADINGARBPROC) (GLclampf value); +#endif + +#ifndef GL_ARB_shading_language_include +#define GL_ARB_shading_language_include 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glNamedStringARB (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); +GLAPI void APIENTRY glDeleteNamedStringARB (GLint namelen, const GLchar *name); +GLAPI void APIENTRY glCompileShaderIncludeARB (GLuint shader, GLsizei count, const GLchar* const *path, const GLint *length); +GLAPI GLboolean APIENTRY glIsNamedStringARB (GLint namelen, const GLchar *name); +GLAPI void APIENTRY glGetNamedStringARB (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); +GLAPI void APIENTRY glGetNamedStringivARB (GLint namelen, const GLchar *name, GLenum pname, GLint *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); +typedef void (APIENTRYP PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name); +typedef void (APIENTRYP PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const GLchar* const *path, const GLint *length); +typedef GLboolean (APIENTRYP PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name); +typedef void (APIENTRYP PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); +typedef void (APIENTRYP PFNGLGETNAMEDSTRINGIVARBPROC) (GLint namelen, const GLchar *name, GLenum pname, GLint *params); +#endif + +#ifndef GL_ARB_texture_cube_map_array +#define GL_ARB_texture_cube_map_array 1 +#endif + +#ifndef GL_ARB_texture_gather +#define GL_ARB_texture_gather 1 +#endif + +#ifndef GL_ARB_texture_storage +#define GL_ARB_texture_storage 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glTexStorage1D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +GLAPI void APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXSTORAGE1DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +#endif + +#ifndef GL_EXT_debug_label +#define GL_EXT_debug_label 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label); +GLAPI void APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label); +typedef void (APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#endif + +#ifndef GL_EXT_debug_marker +#define GL_EXT_debug_marker 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glInsertEventMarkerEXT (GLsizei length, const char *marker); +GLAPI void APIENTRY glPushGroupMarkerEXT (GLsizei length, const char *marker); +GLAPI void APIENTRY glPopGroupMarkerEXT (void); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const char *marker); +typedef void (APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const char *marker); +typedef void (APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void); +#endif + +#ifndef GL_EXT_depth_bounds_test +#define GL_EXT_depth_bounds_test 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glDepthBoundsEXT (GLclampd zmin, GLclampd zmax); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); +#endif + +#ifndef GL_EXT_framebuffer_multisample_blit_scaled +#define GL_EXT_framebuffer_multisample_blit_scaled 1 +#endif + +#ifndef GL_EXT_texture_compression_s3tc +#define GL_EXT_texture_compression_s3tc 1 +#endif + +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_EXT_texture_filter_anisotropic 1 +#endif + +#ifndef GL_EXT_texture_mirror_clamp +#define GL_EXT_texture_mirror_clamp 1 +#endif + +#ifndef GL_EXT_texture_sRGB_decode +#define GL_EXT_texture_sRGB_decode 1 +#endif + +#ifndef GL_APPLE_client_storage +#define GL_APPLE_client_storage 1 +#endif + +#ifndef GL_APPLE_container_object_shareable +#define GL_APPLE_container_object_shareable 1 +#endif + +#ifndef GL_APPLE_flush_render +#define GL_APPLE_flush_render 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glFlushRenderAPPLE (void); +GLAPI void APIENTRY glFinishRenderAPPLE (void); +GLAPI void APIENTRY glSwapAPPLE (void); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFLUSHRENDERAPPLEPROC) (void); +typedef void (APIENTRYP PFNGLFINISHRENDERAPPLEPROC) (void); +typedef void (APIENTRYP PFNGLSWAPAPPLEPROC) (void); +#endif + +#ifndef GL_APPLE_object_purgeable +#define GL_APPLE_object_purgeable 1 +#ifdef GL3_PROTOTYPES +GLAPI GLenum APIENTRY glObjectPurgeableAPPLE (GLenum objectType, GLuint name, GLenum option); +GLAPI GLenum APIENTRY glObjectUnpurgeableAPPLE (GLenum objectType, GLuint name, GLenum option); +GLAPI void APIENTRY glGetObjectParameterivAPPLE (GLenum objectType, GLuint name, GLenum pname, GLint *params); +#endif /* GL3_PROTOTYPES */ +typedef GLenum (APIENTRYP PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); +typedef GLenum (APIENTRYP PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); +typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint *params); +#endif + +#ifndef GL_APPLE_rgb_422 +#define GL_APPLE_rgb_422 1 +#endif + +#ifndef GL_APPLE_row_bytes +#define GL_APPLE_row_bytes 1 +#endif + +#ifndef GL_APPLE_texture_range +#define GL_APPLE_texture_range 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glTextureRangeAPPLE (GLenum target, GLsizei length, const GLvoid *pointer); +GLAPI void APIENTRY glGetTexParameterPointervAPPLE (GLenum target, GLenum pname, GLvoid **params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, GLvoid **params); +#endif + +#ifndef GL_ATI_texture_mirror_once +#define GL_ATI_texture_mirror_once 1 +#endif + +#ifndef GL_NV_texture_barrier +#define GL_NV_texture_barrier 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glTextureBarrierNV (void); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXTUREBARRIERNVPROC) (void); +#endif + +#ifdef __cplusplus +} +#endif + +#endif + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/glext.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/glext.h" new file mode 100644 index 0000000..dbd8d97 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/glext.h" @@ -0,0 +1,3730 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef __glext_h_ +#define __glext_h_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** License Applicability. Except to the extent portions of this file are +** made subject to an alternative license as permitted in the SGI Free +** Software License B, Version 1.1 (the "License"), the contents of this +** file are subject only to the provisions of the License. You may not use +** this file except in compliance with the License. You may obtain a copy +** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 +** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: +** +** http://oss.sgi.com/projects/FreeB +** +** Note that, as provided in the License, the Software is distributed on an +** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS +** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND +** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A +** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. +** +** Original Code. The Original Code is: OpenGL Sample Implementation, +** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, +** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. +** Copyright in any portions created by third parties is as indicated +** elsewhere herein. All Rights Reserved. +** +** Additional Notice Provisions: This software was created using the +** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has +** not been independently verified as being compliant with the OpenGL(R) +** version 1.2.1 Specification. +*/ + +/* switches to providing function pointers */ +/* #define GL_GLEXT_FUNCTION_POINTERS 1 */ + +#define GL_ARB_color_buffer_float 1 +#define GL_ARB_depth_buffer_float 1 +#define GL_ARB_depth_clamp 1 +#define GL_ARB_depth_texture 1 +#define GL_ARB_draw_buffers 1 +#define GL_ARB_draw_elements_base_vertex 1 +#define GL_ARB_draw_instanced 1 +#define GL_ARB_fragment_program 1 +#define GL_ARB_fragment_program_shadow 1 +#define GL_ARB_fragment_shader 1 +#define GL_ARB_framebuffer_object 1 +#define GL_ARB_framebuffer_sRGB 1 +#define GL_ARB_half_float_pixel 1 +#define GL_ARB_half_float_vertex 1 +#define GL_ARB_imaging 1 +#define GL_ARB_instanced_arrays 1 +#define GL_ARB_multisample 1 +#define GL_ARB_multitexture 1 +#define GL_ARB_occlusion_query 1 +#define GL_ARB_pixel_buffer_object 1 +#define GL_ARB_point_parameters 1 +#define GL_ARB_point_sprite 1 +#define GL_ARB_provoking_vertex 1 +#define GL_ARB_seamless_cube_map 1 +#define GL_ARB_shader_objects 1 +#define GL_ARB_shader_texture_lod 1 +#define GL_ARB_shading_language_100 1 +#define GL_ARB_shadow 1 +#define GL_ARB_shadow_ambient 1 +#define GL_ARB_sync 1 +#define GL_ARB_texture_border_clamp 1 +#define GL_ARB_texture_compression 1 +#define GL_ARB_texture_compression_rgtc 1 +#define GL_ARB_texture_cube_map 1 +#define GL_ARB_texture_env_add 1 +#define GL_ARB_texture_env_combine 1 +#define GL_ARB_texture_env_crossbar 1 +#define GL_ARB_texture_env_dot3 1 +#define GL_ARB_texture_float 1 +#define GL_ARB_texture_mirrored_repeat 1 +#define GL_ARB_texture_non_power_of_two 1 +#define GL_ARB_texture_rectangle 1 +#define GL_ARB_texture_rg 1 +#define GL_ARB_transpose_matrix 1 +#define GL_ARB_vertex_array_bgra 1 +#define GL_ARB_vertex_blend 1 +#define GL_ARB_vertex_buffer_object 1 +#define GL_ARB_vertex_program 1 +#define GL_ARB_vertex_shader 1 +#define GL_ARB_window_pos 1 +#define GL_EXT_abgr 1 +#define GL_EXT_bgra 1 +#define GL_EXT_bindable_uniform 1 +#define GL_EXT_blend_color 1 +#define GL_EXT_blend_equation_separate 1 +#define GL_EXT_blend_func_separate 1 +#define GL_EXT_blend_minmax 1 +#define GL_EXT_blend_subtract 1 +#define GL_EXT_clip_volume_hint 1 +#define GL_EXT_debug_label 1 +#define GL_EXT_debug_marker 1 +#define GL_EXT_depth_bounds_test 1 +#define GL_EXT_draw_buffers2 1 +#define GL_EXT_draw_range_elements 1 +#define GL_EXT_fog_coord 1 +#define GL_EXT_framebuffer_blit 1 +#define GL_EXT_framebuffer_multisample 1 +#define GL_EXT_framebuffer_multisample_blit_scaled 1 +#define GL_EXT_framebuffer_object 1 +#define GL_EXT_framebuffer_sRGB 1 +#define GL_EXT_geometry_shader4 1 +#define GL_EXT_gpu_program_parameters 1 +#define GL_EXT_gpu_shader4 1 +#define GL_EXT_multi_draw_arrays 1 +#define GL_EXT_packed_depth_stencil 1 +#define GL_EXT_packed_float 1 +#define GL_EXT_provoking_vertex 1 +#define GL_EXT_rescale_normal 1 +#define GL_EXT_secondary_color 1 +#define GL_EXT_separate_specular_color 1 +#define GL_EXT_shadow_funcs 1 +#define GL_EXT_stencil_two_side 1 +#define GL_EXT_stencil_wrap 1 +#define GL_EXT_texture_array 1 +#define GL_EXT_texture_compression_dxt1 1 +#define GL_EXT_texture_compression_s3tc 1 +#define GL_EXT_texture_env_add 1 +#define GL_EXT_texture_filter_anisotropic 1 +#define GL_EXT_texture_integer 1 +#define GL_EXT_texture_lod_bias 1 +#define GL_EXT_texture_mirror_clamp 1 +#define GL_EXT_texture_rectangle 1 +#define GL_EXT_texture_shared_exponent 1 +#define GL_EXT_texture_sRGB 1 +#define GL_EXT_texture_sRGB_decode 1 +#define GL_EXT_timer_query 1 +#define GL_EXT_transform_feedback 1 +#define GL_EXT_vertex_array_bgra 1 +#define GL_APPLE_aux_depth_stencil 1 +#define GL_APPLE_client_storage 1 +#define GL_APPLE_element_array 1 +#define GL_APPLE_fence 1 +#define GL_APPLE_float_pixels 1 +#define GL_APPLE_flush_buffer_range 1 +#define GL_APPLE_flush_render 1 +#define GL_APPLE_object_purgeable 1 +#define GL_APPLE_packed_pixels 1 +#define GL_APPLE_pixel_buffer 1 +#define GL_APPLE_rgb_422 1 +#define GL_APPLE_row_bytes 1 +#define GL_APPLE_specular_vector 1 +#define GL_APPLE_texture_range 1 +#define GL_APPLE_transform_hint 1 +#define GL_APPLE_vertex_array_object 1 +#define GL_APPLE_vertex_array_range 1 +#define GL_APPLE_vertex_point_size 1 +#define GL_APPLE_vertex_program_evaluators 1 +#define GL_APPLE_ycbcr_422 1 +#define GL_ATI_blend_equation_separate 1 +#define GL_ATI_blend_weighted_minmax 1 +#define GL_ATI_separate_stencil 1 +#define GL_ATI_texture_compression_3dc 1 +#define GL_ATI_texture_env_combine3 1 +#define GL_ATI_texture_float 1 +#define GL_ATI_texture_mirror_once 1 +#define GL_IBM_rasterpos_clip 1 +#define GL_NV_blend_square 1 +#define GL_NV_conditional_render 1 +#define GL_NV_depth_clamp 1 +#define GL_NV_fog_distance 1 +#define GL_NV_fragment_program_option 1 +#define GL_NV_fragment_program2 1 +#define GL_NV_light_max_exponent 1 +#define GL_NV_multisample_filter_hint 1 +#define GL_NV_point_sprite 1 +#define GL_NV_texgen_reflection 1 +#define GL_NV_texture_barrier 1 +#define GL_NV_vertex_program2_option 1 +#define GL_NV_vertex_program3 1 +#define GL_SGI_color_matrix 1 +#define GL_SGIS_generate_mipmap 1 +#define GL_SGIS_texture_edge_clamp 1 +#define GL_SGIS_texture_lod 1 + +#ifdef GL_GLEXT_WUNDEF_SUPPORT +#define GL_EXT_color_subtable 0 +#define GL_EXT_compiled_vertex_array 0 +#define GL_EXT_convolution 0 +#define GL_EXT_copy_texture 0 +#define GL_EXT_histogram 0 +#define GL_EXT_packed_pixels 0 +#define GL_EXT_paletted_texture 0 +#define GL_EXT_polygon_offset 0 +#define GL_EXT_shared_texture_palette 0 +#define GL_EXT_subtexture 0 +#define GL_EXT_texture 0 +#define GL_EXT_texture_cube_map 0 +#define GL_EXT_texture_env_combine 0 +#define GL_EXT_texture_object 0 +#define GL_EXT_texture3D 0 +#define GL_EXT_vertex_array 0 +#define GL_ATI_array_rev_comps_in_4_bytes 0 +#define GL_ATI_pn_triangles 0 +#define GL_ATI_point_cull_mode 0 +#define GL_ATI_text_fragment_shader 0 +#define GL_ATIX_pn_triangles 0 +#define GL_HP_convolution_border_modes 0 +#define GL_NV_register_combiners 0 +#define GL_NV_register_combiners2 0 +#define GL_NV_texture_shader 0 +#define GL_NV_texture_shader2 0 +#define GL_NV_texture_shader3 0 +#define GL_NV_vertex_array_range 0 +#define GL_NV_vertex_array_range2 0 +#define GL_NV_vertex_program 0 +#define GL_SGI_color_table 0 +#define GL_SGIS_point_parameters 0 +#define GL_SGIS_texture_border_clamp 0 +#define GL_SGIX_depth_texture 0 +#endif + +/*************************************************************/ + +#ifndef __gltypes_h_ +#if GL_ARB_half_float_pixel +typedef unsigned short GLhalfARB; +#endif + +#if GL_ARB_half_float_vertex +typedef unsigned short GLhalf; +#endif + +#if GL_ARB_shader_objects +typedef char GLcharARB; +typedef void *GLhandleARB; +#endif + +#if GL_ARB_sync +typedef int64_t GLint64; +typedef uint64_t GLuint64; +typedef struct __GLsync *GLsync; +#endif + +#if GL_ARB_vertex_buffer_object +typedef long GLintptrARB; +typedef long GLsizeiptrARB; +#endif + +#if GL_EXT_timer_query +typedef int64_t GLint64EXT; +typedef uint64_t GLuint64EXT; +#endif +#endif + +/*************************************************************/ +#define GL_GLEXT_VERSION 8 + +#if GL_ARB_color_buffer_float +#define GL_RGBA_FLOAT_MODE_ARB 0x8820 +#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A +#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B +#define GL_CLAMP_READ_COLOR_ARB 0x891C +#define GL_FIXED_ONLY_ARB 0x891D +#endif + +#if GL_ARB_depth_buffer_float +#define GL_DEPTH_COMPONENT32F 0x8CAC +#define GL_DEPTH32F_STENCIL8 0x8CAD +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD +#endif + +#if GL_ARB_depth_clamp +#define GL_DEPTH_CLAMP 0x864F +#endif + +#if GL_ARB_depth_texture +#define GL_DEPTH_COMPONENT16_ARB 0x81A5 +#define GL_DEPTH_COMPONENT24_ARB 0x81A6 +#define GL_DEPTH_COMPONENT32_ARB 0x81A7 +#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A +#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B +#endif + +#if GL_ARB_draw_buffers +#define GL_MAX_DRAW_BUFFERS_ARB 0x8824 +#define GL_DRAW_BUFFER0_ARB 0x8825 +#define GL_DRAW_BUFFER1_ARB 0x8826 +#define GL_DRAW_BUFFER2_ARB 0x8827 +#define GL_DRAW_BUFFER3_ARB 0x8828 +#define GL_DRAW_BUFFER4_ARB 0x8829 +#define GL_DRAW_BUFFER5_ARB 0x882A +#define GL_DRAW_BUFFER6_ARB 0x882B +#define GL_DRAW_BUFFER7_ARB 0x882C +#define GL_DRAW_BUFFER8_ARB 0x882D +#define GL_DRAW_BUFFER9_ARB 0x882E +#define GL_DRAW_BUFFER10_ARB 0x882F +#define GL_DRAW_BUFFER11_ARB 0x8830 +#define GL_DRAW_BUFFER12_ARB 0x8831 +#define GL_DRAW_BUFFER13_ARB 0x8832 +#define GL_DRAW_BUFFER14_ARB 0x8833 +#define GL_DRAW_BUFFER15_ARB 0x8834 +#endif + +#if GL_ARB_fragment_program +#define GL_FRAGMENT_PROGRAM_ARB 0x8804 +#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 +#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 +#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 +#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 +#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 +#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A +#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B +#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C +#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D +#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E +#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F +#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 +#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 +#endif + +#if GL_ARB_fragment_shader +#define GL_FRAGMENT_SHADER_ARB 0x8B30 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B +#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 +#endif + +#if GL_ARB_framebuffer_object +#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 +#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 +#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 +#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 +#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 +#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 +#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 +#define GL_FRAMEBUFFER_DEFAULT 0x8218 +#define GL_FRAMEBUFFER_UNDEFINED 0x8219 +#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A +#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 +#define GL_DEPTH_STENCIL 0x84F9 +#define GL_UNSIGNED_INT_24_8 0x84FA +#define GL_DEPTH24_STENCIL8 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE 0x88F1 +#define GL_TEXTURE_RED_TYPE 0x8C10 +#define GL_TEXTURE_GREEN_TYPE 0x8C11 +#define GL_TEXTURE_BLUE_TYPE 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE 0x8C13 +#define GL_TEXTURE_DEPTH_TYPE 0x8C16 +#define GL_UNSIGNED_NORMALIZED 0x8C17 +#define GL_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_DRAW_FRAMEBUFFER_BINDING GL_FRAMEBUFFER_BINDING +#define GL_RENDERBUFFER_BINDING 0x8CA7 +#define GL_READ_FRAMEBUFFER 0x8CA8 +#define GL_DRAW_FRAMEBUFFER 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA +#define GL_RENDERBUFFER_SAMPLES 0x8CAB +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 +#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD +#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF +#define GL_COLOR_ATTACHMENT0 0x8CE0 +#define GL_COLOR_ATTACHMENT1 0x8CE1 +#define GL_COLOR_ATTACHMENT2 0x8CE2 +#define GL_COLOR_ATTACHMENT3 0x8CE3 +#define GL_COLOR_ATTACHMENT4 0x8CE4 +#define GL_COLOR_ATTACHMENT5 0x8CE5 +#define GL_COLOR_ATTACHMENT6 0x8CE6 +#define GL_COLOR_ATTACHMENT7 0x8CE7 +#define GL_COLOR_ATTACHMENT8 0x8CE8 +#define GL_COLOR_ATTACHMENT9 0x8CE9 +#define GL_COLOR_ATTACHMENT10 0x8CEA +#define GL_COLOR_ATTACHMENT11 0x8CEB +#define GL_COLOR_ATTACHMENT12 0x8CEC +#define GL_COLOR_ATTACHMENT13 0x8CED +#define GL_COLOR_ATTACHMENT14 0x8CEE +#define GL_COLOR_ATTACHMENT15 0x8CEF +#define GL_DEPTH_ATTACHMENT 0x8D00 +#define GL_STENCIL_ATTACHMENT 0x8D20 +#define GL_FRAMEBUFFER 0x8D40 +#define GL_RENDERBUFFER 0x8D41 +#define GL_RENDERBUFFER_WIDTH 0x8D42 +#define GL_RENDERBUFFER_HEIGHT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 +#define GL_STENCIL_INDEX1 0x8D46 +#define GL_STENCIL_INDEX4 0x8D47 +#define GL_STENCIL_INDEX8 0x8D48 +#define GL_STENCIL_INDEX16 0x8D49 +#define GL_RENDERBUFFER_RED_SIZE 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 +#define GL_MAX_SAMPLES 0x8D57 +#endif + +#if GL_ARB_framebuffer_sRGB +#define GL_FRAMEBUFFER_SRGB 0x8DB9 +#endif + +#if GL_ARB_half_float_pixel +#define GL_HALF_FLOAT_ARB 0x140B +#endif + +#if GL_ARB_half_float_vertex +#define GL_HALF_FLOAT 0x140B +#endif + +#if GL_ARB_instanced_arrays +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE +#endif + +#if GL_ARB_multisample +#define GL_MULTISAMPLE_ARB 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F +#define GL_SAMPLE_COVERAGE_ARB 0x80A0 +#define GL_SAMPLE_BUFFERS_ARB 0x80A8 +#define GL_SAMPLES_ARB 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB +#define GL_MULTISAMPLE_BIT_ARB 0x20000000 +#endif + +#if GL_ARB_multitexture +#define GL_TEXTURE0_ARB 0x84C0 +#define GL_TEXTURE1_ARB 0x84C1 +#define GL_TEXTURE2_ARB 0x84C2 +#define GL_TEXTURE3_ARB 0x84C3 +#define GL_TEXTURE4_ARB 0x84C4 +#define GL_TEXTURE5_ARB 0x84C5 +#define GL_TEXTURE6_ARB 0x84C6 +#define GL_TEXTURE7_ARB 0x84C7 +#define GL_TEXTURE8_ARB 0x84C8 +#define GL_TEXTURE9_ARB 0x84C9 +#define GL_TEXTURE10_ARB 0x84CA +#define GL_TEXTURE11_ARB 0x84CB +#define GL_TEXTURE12_ARB 0x84CC +#define GL_TEXTURE13_ARB 0x84CD +#define GL_TEXTURE14_ARB 0x84CE +#define GL_TEXTURE15_ARB 0x84CF +#define GL_TEXTURE16_ARB 0x84D0 +#define GL_TEXTURE17_ARB 0x84D1 +#define GL_TEXTURE18_ARB 0x84D2 +#define GL_TEXTURE19_ARB 0x84D3 +#define GL_TEXTURE20_ARB 0x84D4 +#define GL_TEXTURE21_ARB 0x84D5 +#define GL_TEXTURE22_ARB 0x84D6 +#define GL_TEXTURE23_ARB 0x84D7 +#define GL_TEXTURE24_ARB 0x84D8 +#define GL_TEXTURE25_ARB 0x84D9 +#define GL_TEXTURE26_ARB 0x84DA +#define GL_TEXTURE27_ARB 0x84DB +#define GL_TEXTURE28_ARB 0x84DC +#define GL_TEXTURE29_ARB 0x84DD +#define GL_TEXTURE30_ARB 0x84DE +#define GL_TEXTURE31_ARB 0x84DF +#define GL_ACTIVE_TEXTURE_ARB 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 +#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 +#endif + +#if GL_ARB_occlusion_query +#define GL_SAMPLES_PASSED_ARB 0x8914 +#define GL_QUERY_COUNTER_BITS_ARB 0x8864 +#define GL_CURRENT_QUERY_ARB 0x8865 +#define GL_QUERY_RESULT_ARB 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 +#endif + +#if GL_ARB_pixel_buffer_object +#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB +#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF +#endif + +#if GL_ARB_point_parameters +#define GL_POINT_SIZE_MIN_ARB 0x8126 +#define GL_POINT_SIZE_MAX_ARB 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 +#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 +#endif + +#if GL_ARB_point_sprite +#define GL_POINT_SPRITE_ARB 0x8861 +#define GL_COORD_REPLACE_ARB 0x8862 +#endif + +#if GL_ARB_provoking_vertex +#define GL_FIRST_VERTEX_CONVENTION 0x8E4D +#define GL_LAST_VERTEX_CONVENTION 0x8E4E +#define GL_PROVOKING_VERTEX 0x8E4F +#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C +#endif + +#if GL_ARB_seamless_cube_map +#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F +#endif + +#if GL_ARB_shader_objects +#define GL_PROGRAM_OBJECT_ARB 0x8B40 +#define GL_OBJECT_TYPE_ARB 0x8B4E +#define GL_OBJECT_SUBTYPE_ARB 0x8B4F +#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 +#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 +#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 +#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 +#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 +#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 +#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 +#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 +#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 +#define GL_SHADER_OBJECT_ARB 0x8B48 +#define GL_FLOAT_VEC2_ARB 0x8B50 +#define GL_FLOAT_VEC3_ARB 0x8B51 +#define GL_FLOAT_VEC4_ARB 0x8B52 +#define GL_INT_VEC2_ARB 0x8B53 +#define GL_INT_VEC3_ARB 0x8B54 +#define GL_INT_VEC4_ARB 0x8B55 +#define GL_BOOL_ARB 0x8B56 +#define GL_BOOL_VEC2_ARB 0x8B57 +#define GL_BOOL_VEC3_ARB 0x8B58 +#define GL_BOOL_VEC4_ARB 0x8B59 +#define GL_FLOAT_MAT2_ARB 0x8B5A +#define GL_FLOAT_MAT3_ARB 0x8B5B +#define GL_FLOAT_MAT4_ARB 0x8B5C +#define GL_SAMPLER_1D_ARB 0x8B5D +#define GL_SAMPLER_2D_ARB 0x8B5E +#define GL_SAMPLER_3D_ARB 0x8B5F +#define GL_SAMPLER_CUBE_ARB 0x8B60 +#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 +#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 +#define GL_SAMPLER_2D_RECT_ARB 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 +#endif + +#if GL_ARB_shading_language_100 +#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C +#endif + +#if GL_ARB_shadow +#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C +#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D +#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E +#endif + +#if GL_ARB_shadow_ambient +#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF +#endif + +#if GL_ARB_sync +#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 +#define GL_OBJECT_TYPE 0x9112 +#define GL_SYNC_CONDITION 0x9113 +#define GL_SYNC_STATUS 0x9114 +#define GL_SYNC_FLAGS 0x9115 +#define GL_SYNC_FENCE 0x9116 +#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 +#define GL_UNSIGNALED 0x9118 +#define GL_SIGNALED 0x9119 +#define GL_ALREADY_SIGNALED 0x911A +#define GL_TIMEOUT_EXPIRED 0x911B +#define GL_CONDITION_SATISFIED 0x911C +#define GL_WAIT_FAILED 0x911D +#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 +#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull +#endif + +#if GL_ARB_texture_border_clamp +#define GL_CLAMP_TO_BORDER_ARB 0x812D +#endif + +#if GL_ARB_texture_compression +#define GL_COMPRESSED_ALPHA_ARB 0x84E9 +#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB +#define GL_COMPRESSED_INTENSITY_ARB 0x84EC +#define GL_COMPRESSED_RGB_ARB 0x84ED +#define GL_COMPRESSED_RGBA_ARB 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 +#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 +#endif + +#if GL_ARB_texture_compression_rgtc +#define GL_COMPRESSED_RED_RGTC1 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC +#define GL_COMPRESSED_RG_RGTC2 0x8DBD +#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE +#endif + +#if GL_ARB_texture_cube_map +#define GL_NORMAL_MAP_ARB 0x8511 +#define GL_REFLECTION_MAP_ARB 0x8512 +#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C +#endif + +#if GL_ARB_texture_env_combine +#define GL_COMBINE_ARB 0x8570 +#define GL_COMBINE_RGB_ARB 0x8571 +#define GL_COMBINE_ALPHA_ARB 0x8572 +#define GL_RGB_SCALE_ARB 0x8573 +#define GL_ADD_SIGNED_ARB 0x8574 +#define GL_INTERPOLATE_ARB 0x8575 +#define GL_CONSTANT_ARB 0x8576 +#define GL_PRIMARY_COLOR_ARB 0x8577 +#define GL_PREVIOUS_ARB 0x8578 +#define GL_SUBTRACT_ARB 0x84E7 +#define GL_SOURCE0_RGB_ARB 0x8580 +#define GL_SOURCE1_RGB_ARB 0x8581 +#define GL_SOURCE2_RGB_ARB 0x8582 +#define GL_SOURCE0_ALPHA_ARB 0x8588 +#define GL_SOURCE1_ALPHA_ARB 0x8589 +#define GL_SOURCE2_ALPHA_ARB 0x858A +#define GL_OPERAND0_RGB_ARB 0x8590 +#define GL_OPERAND1_RGB_ARB 0x8591 +#define GL_OPERAND2_RGB_ARB 0x8592 +#define GL_OPERAND0_ALPHA_ARB 0x8598 +#define GL_OPERAND1_ALPHA_ARB 0x8599 +#define GL_OPERAND2_ALPHA_ARB 0x859A +#endif + +#if GL_ARB_texture_env_dot3 +#define GL_DOT3_RGB_ARB 0x86AE +#define GL_DOT3_RGBA_ARB 0x86AF +#endif + +#if GL_ARB_texture_float +#define GL_TEXTURE_RED_TYPE_ARB 0x8C10 +#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11 +#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13 +#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 +#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15 +#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 +#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17 +#define GL_RGBA32F_ARB 0x8814 +#define GL_RGB32F_ARB 0x8815 +#define GL_ALPHA32F_ARB 0x8816 +#define GL_INTENSITY32F_ARB 0x8817 +#define GL_LUMINANCE32F_ARB 0x8818 +#define GL_LUMINANCE_ALPHA32F_ARB 0x8819 +#define GL_RGBA16F_ARB 0x881A +#define GL_RGB16F_ARB 0x881B +#define GL_ALPHA16F_ARB 0x881C +#define GL_INTENSITY16F_ARB 0x881D +#define GL_LUMINANCE16F_ARB 0x881E +#define GL_LUMINANCE_ALPHA16F_ARB 0x881F +#endif + +#if GL_ARB_texture_mirrored_repeat +#define GL_MIRRORED_REPEAT_ARB 0x8370 +#endif + +#if GL_ARB_texture_rectangle +#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 +#endif + +#if GL_ARB_texture_rg +#define GL_COMPRESSED_RED 0x8225 +#define GL_COMPRESSED_RG 0x8226 +#define GL_RG 0x8227 +#define GL_RG_INTEGER 0x8228 +#define GL_R8 0x8229 +#define GL_R16 0x822A +#define GL_RG8 0x822B +#define GL_RG16 0x822C +#define GL_R16F 0x822D +#define GL_R32F 0x822E +#define GL_RG16F 0x822F +#define GL_RG32F 0x8230 +#define GL_R8I 0x8231 +#define GL_R8UI 0x8232 +#define GL_R16I 0x8233 +#define GL_R16UI 0x8234 +#define GL_R32I 0x8235 +#define GL_R32UI 0x8236 +#define GL_RG8I 0x8237 +#define GL_RG8UI 0x8238 +#define GL_RG16I 0x8239 +#define GL_RG16UI 0x823A +#define GL_RG32I 0x823B +#define GL_RG32UI 0x823C +#endif + +#if GL_ARB_transpose_matrix +#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 +#endif + +#if GL_ARB_vertex_blend +#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 +#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 +#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 +#define GL_VERTEX_BLEND_ARB 0x86A7 +#define GL_CURRENT_WEIGHT_ARB 0x86A8 +#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 +#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA +#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB +#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC +#define GL_WEIGHT_ARRAY_ARB 0x86AD +#define GL_MODELVIEW0_ARB 0x1700 +#define GL_MODELVIEW1_ARB 0x850A +#define GL_MODELVIEW2_ARB 0x8722 +#define GL_MODELVIEW3_ARB 0x8723 +#define GL_MODELVIEW4_ARB 0x8724 +#define GL_MODELVIEW5_ARB 0x8725 +#define GL_MODELVIEW6_ARB 0x8726 +#define GL_MODELVIEW7_ARB 0x8727 +#define GL_MODELVIEW8_ARB 0x8728 +#define GL_MODELVIEW9_ARB 0x8729 +#define GL_MODELVIEW10_ARB 0x872A +#define GL_MODELVIEW11_ARB 0x872B +#define GL_MODELVIEW12_ARB 0x872C +#define GL_MODELVIEW13_ARB 0x872D +#define GL_MODELVIEW14_ARB 0x872E +#define GL_MODELVIEW15_ARB 0x872F +#define GL_MODELVIEW16_ARB 0x8730 +#define GL_MODELVIEW17_ARB 0x8731 +#define GL_MODELVIEW18_ARB 0x8732 +#define GL_MODELVIEW19_ARB 0x8733 +#define GL_MODELVIEW20_ARB 0x8734 +#define GL_MODELVIEW21_ARB 0x8735 +#define GL_MODELVIEW22_ARB 0x8736 +#define GL_MODELVIEW23_ARB 0x8737 +#define GL_MODELVIEW24_ARB 0x8738 +#define GL_MODELVIEW25_ARB 0x8739 +#define GL_MODELVIEW26_ARB 0x873A +#define GL_MODELVIEW27_ARB 0x873B +#define GL_MODELVIEW28_ARB 0x873C +#define GL_MODELVIEW29_ARB 0x873D +#define GL_MODELVIEW30_ARB 0x873E +#define GL_MODELVIEW31_ARB 0x873F +#endif + +#if GL_ARB_vertex_buffer_object +#define GL_ARRAY_BUFFER_ARB 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 +#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 +#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C +#define GL_FOG_COORD_ARRAY_BUFFER_BINDING_ARB 0x889D +#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F +#define GL_STREAM_DRAW_ARB 0x88E0 +#define GL_STREAM_READ_ARB 0x88E1 +#define GL_STREAM_COPY_ARB 0x88E2 +#define GL_STATIC_DRAW_ARB 0x88E4 +#define GL_STATIC_READ_ARB 0x88E5 +#define GL_STATIC_COPY_ARB 0x88E6 +#define GL_DYNAMIC_DRAW_ARB 0x88E8 +#define GL_DYNAMIC_READ_ARB 0x88E9 +#define GL_DYNAMIC_COPY_ARB 0x88EA +#define GL_READ_ONLY_ARB 0x88B8 +#define GL_WRITE_ONLY_ARB 0x88B9 +#define GL_READ_WRITE_ARB 0x88BA +#define GL_BUFFER_SIZE_ARB 0x8764 +#define GL_BUFFER_USAGE_ARB 0x8765 +#define GL_BUFFER_ACCESS_ARB 0x88BB +#define GL_BUFFER_MAPPED_ARB 0x88BC +#define GL_BUFFER_MAP_POINTER_ARB 0x88BD +/* Obsolete */ +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D +#endif + +#if GL_ARB_vertex_program +#define GL_VERTEX_PROGRAM_ARB 0x8620 +#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 +#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A +#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 +#define GL_PROGRAM_LENGTH_ARB 0x8627 +#define GL_PROGRAM_FORMAT_ARB 0x8876 +#define GL_PROGRAM_NAME_ARB 0x8677 +#define GL_PROGRAM_BINDING_ARB 0x8677 +#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 +#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 +#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 +#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 +#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 +#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 +#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 +#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 +#define GL_PROGRAM_PARAMETERS_ARB 0x88A8 +#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 +#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA +#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB +#define GL_PROGRAM_ATTRIBS_ARB 0x88AC +#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD +#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE +#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF +#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 +#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 +#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 +#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 +#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 +#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 +#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 +#define GL_PROGRAM_STRING_ARB 0x8628 +#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B +#define GL_CURRENT_MATRIX_ARB 0x8641 +#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 +#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 +#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 +#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F +#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E +#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 +#define GL_MATRIX0_ARB 0x88C0 +#define GL_MATRIX1_ARB 0x88C1 +#define GL_MATRIX2_ARB 0x88C2 +#define GL_MATRIX3_ARB 0x88C3 +#define GL_MATRIX4_ARB 0x88C4 +#define GL_MATRIX5_ARB 0x88C5 +#define GL_MATRIX6_ARB 0x88C6 +#define GL_MATRIX7_ARB 0x88C7 +#define GL_MATRIX8_ARB 0x88C8 +#define GL_MATRIX9_ARB 0x88C9 +#define GL_MATRIX10_ARB 0x88CA +#define GL_MATRIX11_ARB 0x88CB +#define GL_MATRIX12_ARB 0x88CC +#define GL_MATRIX13_ARB 0x88CD +#define GL_MATRIX14_ARB 0x88CE +#define GL_MATRIX15_ARB 0x88CF +#define GL_MATRIX16_ARB 0x88D0 +#define GL_MATRIX17_ARB 0x88D1 +#define GL_MATRIX18_ARB 0x88D2 +#define GL_MATRIX19_ARB 0x88D3 +#define GL_MATRIX20_ARB 0x88D4 +#define GL_MATRIX21_ARB 0x88D5 +#define GL_MATRIX22_ARB 0x88D6 +#define GL_MATRIX23_ARB 0x88D7 +#define GL_MATRIX24_ARB 0x88D8 +#define GL_MATRIX25_ARB 0x88D9 +#define GL_MATRIX26_ARB 0x88DA +#define GL_MATRIX27_ARB 0x88DB +#define GL_MATRIX28_ARB 0x88DC +#define GL_MATRIX29_ARB 0x88DD +#define GL_MATRIX30_ARB 0x88DE +#define GL_MATRIX31_ARB 0x88DF +#define GL_COLOR_SUM_ARB 0x8458 +#endif + +#if GL_ARB_vertex_shader +#define GL_VERTEX_SHADER_ARB 0x8B31 +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A +#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 +#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B +#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D +#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 +#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 +#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A +#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 +#endif + +#if GL_ARB_vertex_shader || GL_NV_vertex_program3 +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C +#endif + +#if GL_EXT_abgr +#define GL_ABGR_EXT 0x8000 +#endif + +#if GL_EXT_bgra +#define GL_BGR_EXT 0x80E0 +#define GL_BGRA_EXT 0x80E1 +#endif + +#if GL_EXT_bindable_uniform +#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 +#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 +#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 +#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED +#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF +#define GL_UNIFORM_BUFFER_EXT 0x8DEE +#endif + +#if GL_EXT_blend_color +#define GL_CONSTANT_COLOR_EXT 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 +#define GL_CONSTANT_ALPHA_EXT 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 +#define GL_BLEND_COLOR_EXT 0x8005 +#endif + +#if GL_EXT_blend_equation_separate +#define GL_BLEND_EQUATION_RGB_EXT 0x8009 +#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D +#endif + +#if GL_EXT_blend_func_separate +#define GL_BLEND_DST_RGB_EXT 0x80C8 +#define GL_BLEND_SRC_RGB_EXT 0x80C9 +#define GL_BLEND_DST_ALPHA_EXT 0x80CA +#define GL_BLEND_SRC_ALPHA_EXT 0x80CB +#endif + +#if GL_EXT_blend_minmax +#define GL_FUNC_ADD_EXT 0x8006 +#define GL_MIN_EXT 0x8007 +#define GL_MAX_EXT 0x8008 +#define GL_BLEND_EQUATION_EXT 0x8009 +#endif + +#if GL_EXT_blend_subtract +#define GL_FUNC_SUBTRACT_EXT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B +#endif + +#if GL_EXT_clip_volume_hint +#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 +#endif + +#if GL_EXT_compiled_vertex_array +#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 +#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 +#endif + +#if GL_EXT_convolution +#define GL_CONVOLUTION_1D_EXT 0x8010 +#define GL_CONVOLUTION_2D_EXT 0x8011 +#define GL_SEPARABLE_2D_EXT 0x8012 +#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 +#define GL_REDUCE_EXT 0x8016 +#define GL_CONVOLUTION_FORMAT_EXT 0x8017 +#define GL_CONVOLUTION_WIDTH_EXT 0x8018 +#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 +#endif + +#if GL_EXT_debug_label +#define GL_BUFFER_OBJECT_EXT 0x9151 +#define GL_SHADER_OBJECT_EXT 0x8B48 +#define GL_PROGRAM_OBJECT_EXT 0x8B40 +#define GL_QUERY_OBJECT_EXT 0x9153 +#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 +#define GL_SAMPLER 0x82E6 +#define GL_SYNC_OBJECT_APPLE 0x8A53 +#endif + +#if GL_EXT_depth_bounds_test +#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 +#define GL_DEPTH_BOUNDS_EXT 0x8891 +#endif + +#if GL_EXT_draw_range_elements +#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 +#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 +#endif + +#if GL_EXT_fog_coord +#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 +#define GL_FOG_COORDINATE_EXT 0x8451 +#define GL_FRAGMENT_DEPTH_EXT 0x8452 +#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 +#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 +#endif + +#if GL_EXT_framebuffer_blit +#define GL_READ_FRAMEBUFFER_EXT 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 +#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6 +#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA +#endif + +#if GL_EXT_framebuffer_multisample +#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 +#define GL_MAX_SAMPLES_EXT 0x8D57 +#endif + +#if GL_EXT_framebuffer_multisample_blit_scaled +#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA +#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB +#endif + +#if GL_EXT_framebuffer_object +#define GL_FRAMEBUFFER_EXT 0x8D40 +#define GL_RENDERBUFFER_EXT 0x8D41 +#define GL_STENCIL_INDEX1_EXT 0x8D46 +#define GL_STENCIL_INDEX4_EXT 0x8D47 +#define GL_STENCIL_INDEX8_EXT 0x8D48 +#define GL_STENCIL_INDEX16_EXT 0x8D49 +#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42 +#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44 +#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4 +#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 +#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 +#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 +#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 +#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 +#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 +#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 +#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 +#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 +#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 +#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA +#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB +#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC +#define GL_COLOR_ATTACHMENT13_EXT 0x8CED +#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE +#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF +#define GL_DEPTH_ATTACHMENT_EXT 0x8D00 +#define GL_STENCIL_ATTACHMENT_EXT 0x8D20 +#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9 +#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD +#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6 +#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7 +#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF +#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8 +#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506 +#endif + +#if GL_EXT_framebuffer_sRGB +#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 +#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA +#endif + +#if GL_EXT_geometry_shader4 +#define GL_GEOMETRY_SHADER_EXT 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA +#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB +#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 +#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD +#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE +#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 +#define GL_LINES_ADJACENCY_EXT 0xA +#define GL_LINE_STRIP_ADJACENCY_EXT 0xB +#define GL_TRIANGLES_ADJACENCY_EXT 0xC +#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 +#define GL_PROGRAM_POINT_SIZE_EXT 0x8642 +#endif + +#if GL_EXT_gpu_shader4 +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD +#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 +#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 +#define GL_SAMPLER_BUFFER_EXT 0x8DC2 +#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 +#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 +#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 +#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 +#define GL_INT_SAMPLER_1D_EXT 0x8DC9 +#define GL_INT_SAMPLER_2D_EXT 0x8DCA +#define GL_INT_SAMPLER_3D_EXT 0x8DCB +#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC +#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD +#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF +#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 +#define GL_MIN_PROGRAM_TEXEL_OFFSET_EXT 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET_EXT 0x8905 +#endif + +#if GL_EXT_histogram +#define GL_HISTOGRAM_EXT 0x8024 +#define GL_PROXY_HISTOGRAM_EXT 0x8025 +#define GL_HISTOGRAM_WIDTH_EXT 0x8026 +#define GL_HISTOGRAM_FORMAT_EXT 0x8027 +#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C +#define GL_HISTOGRAM_SINK_EXT 0x802D +#define GL_MINMAX_EXT 0x802E +#define GL_MINMAX_FORMAT_EXT 0x802F +#define GL_MINMAX_SINK_EXT 0x8030 +#define GL_TABLE_TOO_LARGE_EXT 0x8031 +#endif + +#if GL_EXT_packed_depth_stencil +#define GL_DEPTH_STENCIL_EXT 0x84F9 +#define GL_UNSIGNED_INT_24_8_EXT 0x84FA +#define GL_DEPTH24_STENCIL8_EXT 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1 +#endif + +#if GL_EXT_packed_float +#define GL_R11F_G11F_B10F_EXT 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B +#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C +#endif + +#if GL_EXT_packed_pixels +#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 +#endif + +#if GL_EXT_paletted_texture +#define GL_COLOR_INDEX1_EXT 0x80E2 +#define GL_COLOR_INDEX2_EXT 0x80E3 +#define GL_COLOR_INDEX4_EXT 0x80E4 +#define GL_COLOR_INDEX8_EXT 0x80E5 +#define GL_COLOR_INDEX12_EXT 0x80E6 +#define GL_COLOR_INDEX16_EXT 0x80E7 +#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED +#endif + +#if GL_EXT_polygon_offset +#define GL_POLYGON_OFFSET_EXT 0x8037 +#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 +#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 +#endif + +#if GL_EXT_provoking_vertex +#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E +#define GL_PROVOKING_VERTEX_EXT 0x8E4F +#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C +#endif + +#if GL_EXT_rescale_normal +#define GL_RESCALE_NORMAL_EXT 0x803A +#endif + +#if GL_EXT_secondary_color +#define GL_COLOR_SUM_EXT 0x8458 +#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D +#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E +#endif + +#if GL_EXT_separate_specular_color +#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 +#define GL_SINGLE_COLOR_EXT 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA +#endif + +#if GL_EXT_shared_texture_palette +#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB +#endif + +#if GL_EXT_stencil_two_side +#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 +#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 +#endif + +#if GL_EXT_stencil_wrap +#define GL_INCR_WRAP_EXT 0x8507 +#define GL_DECR_WRAP_EXT 0x8508 +#endif + +#if GL_EXT_texture +#define GL_ALPHA4_EXT 0x803B +#define GL_ALPHA8_EXT 0x803C +#define GL_ALPHA12_EXT 0x803D +#define GL_ALPHA16_EXT 0x803E +#define GL_LUMINANCE4_EXT 0x803F +#define GL_LUMINANCE8_EXT 0x8040 +#define GL_LUMINANCE12_EXT 0x8041 +#define GL_LUMINANCE16_EXT 0x8042 +#define GL_LUMINANCE4_ALPHA4_EXT 0x8043 +#define GL_LUMINANCE6_ALPHA2_EXT 0x8044 +#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 +#define GL_LUMINANCE12_ALPHA4_EXT 0x8046 +#define GL_LUMINANCE12_ALPHA12_EXT 0x8047 +#define GL_LUMINANCE16_ALPHA16_EXT 0x8048 +#define GL_INTENSITY_EXT 0x8049 +#define GL_INTENSITY4_EXT 0x804A +#define GL_INTENSITY8_EXT 0x804B +#define GL_INTENSITY12_EXT 0x804C +#define GL_INTENSITY16_EXT 0x804D +#define GL_RGB2_EXT 0x804E +#define GL_RGB4_EXT 0x804F +#define GL_RGB5_EXT 0x8050 +#define GL_RGB8_EXT 0x8051 +#define GL_RGB10_EXT 0x8052 +#define GL_RGB12_EXT 0x8053 +#define GL_RGB16_EXT 0x8054 +#define GL_RGBA2_EXT 0x8055 +#define GL_RGBA4_EXT 0x8056 +#define GL_RGB5_A1_EXT 0x8057 +#define GL_RGBA8_EXT 0x8058 +#define GL_RGB10_A2_EXT 0x8059 +#define GL_RGBA12_EXT 0x805A +#define GL_RGBA16_EXT 0x805B +#define GL_TEXTURE_RED_SIZE_EXT 0x805C +#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D +#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E +#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F +#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 +#define GL_REPLACE_EXT 0x8062 +#define GL_PROXY_TEXTURE_1D_EXT 0x8063 +#define GL_PROXY_TEXTURE_2D_EXT 0x8064 +#define GL_TEXTURE_TOO_LARGE_EXT 0x8065 +#endif + +#if GL_EXT_texture3D +#define GL_PACK_SKIP_IMAGES_EXT 0x806B +#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C +#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D +#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E +#define GL_TEXTURE_3D_EXT 0x806F +#define GL_PROXY_TEXTURE_3D_EXT 0x8070 +#define GL_TEXTURE_DEPTH_EXT 0x8071 +#define GL_TEXTURE_WRAP_R_EXT 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 +#endif + +#if GL_EXT_texture_array +#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 +#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D +#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF +#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */ +/* reuse GL_SAMPLER_1D_ARRAY_EXT */ +/* reuse GL_SAMPLER_2D_ARRAY_EXT */ +/* reuse GL_SAMPLER_1D_ARRAY_SHADOW_EXT */ +/* reuse GL_SAMPLER_2D_ARRAY_SHADOW_EXT */ +#endif + +#if GL_EXT_texture_compression_s3tc +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 +#endif + +#if GL_EXT_texture_cube_map +#define GL_NORMAL_MAP_EXT 0x8511 +#define GL_REFLECTION_MAP_EXT 0x8512 +#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C +#endif + +#if GL_EXT_texture_env_combine +#define GL_COMBINE_EXT 0x8570 +#define GL_COMBINE_RGB_EXT 0x8571 +#define GL_COMBINE_ALPHA_EXT 0x8572 +#define GL_RGB_SCALE_EXT 0x8573 +#define GL_ADD_SIGNED_EXT 0x8574 +#define GL_INTERPOLATE_EXT 0x8575 +#define GL_CONSTANT_EXT 0x8576 +#define GL_PRIMARY_COLOR_EXT 0x8577 +#define GL_PREVIOUS_EXT 0x8578 +#define GL_SOURCE0_RGB_EXT 0x8580 +#define GL_SOURCE1_RGB_EXT 0x8581 +#define GL_SOURCE2_RGB_EXT 0x8582 +#define GL_SOURCE0_ALPHA_EXT 0x8588 +#define GL_SOURCE1_ALPHA_EXT 0x8589 +#define GL_SOURCE2_ALPHA_EXT 0x858A +#define GL_OPERAND0_RGB_EXT 0x8590 +#define GL_OPERAND1_RGB_EXT 0x8591 +#define GL_OPERAND2_RGB_EXT 0x8592 +#define GL_OPERAND0_ALPHA_EXT 0x8598 +#define GL_OPERAND1_ALPHA_EXT 0x8599 +#define GL_OPERAND2_ALPHA_EXT 0x859A +#endif + +#if GL_EXT_texture_filter_anisotropic +#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF +#endif + +#if GL_EXT_texture_integer +#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E +#define GL_RGBA32UI_EXT 0x8D70 +#define GL_RGB32UI_EXT 0x8D71 +#define GL_ALPHA32UI_EXT 0x8D72 +#define GL_INTENSITY32UI_EXT 0x8D73 +#define GL_LUMINANCE32UI_EXT 0x8D74 +#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75 +#define GL_RGBA16UI_EXT 0x8D76 +#define GL_RGB16UI_EXT 0x8D77 +#define GL_ALPHA16UI_EXT 0x8D78 +#define GL_INTENSITY16UI_EXT 0x8D79 +#define GL_LUMINANCE16UI_EXT 0x8D7A +#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B +#define GL_RGBA8UI_EXT 0x8D7C +#define GL_RGB8UI_EXT 0x8D7D +#define GL_ALPHA8UI_EXT 0x8D7E +#define GL_INTENSITY8UI_EXT 0x8D7F +#define GL_LUMINANCE8UI_EXT 0x8D80 +#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81 +#define GL_RGBA32I_EXT 0x8D82 +#define GL_RGB32I_EXT 0x8D83 +#define GL_ALPHA32I_EXT 0x8D84 +#define GL_INTENSITY32I_EXT 0x8D85 +#define GL_LUMINANCE32I_EXT 0x8D86 +#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87 +#define GL_RGBA16I_EXT 0x8D88 +#define GL_RGB16I_EXT 0x8D89 +#define GL_ALPHA16I_EXT 0x8D8A +#define GL_INTENSITY16I_EXT 0x8D8B +#define GL_LUMINANCE16I_EXT 0x8D8C +#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D +#define GL_RGBA8I_EXT 0x8D8E +#define GL_RGB8I_EXT 0x8D8F +#define GL_ALPHA8I_EXT 0x8D90 +#define GL_INTENSITY8I_EXT 0x8D91 +#define GL_LUMINANCE8I_EXT 0x8D92 +#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93 +#define GL_RED_INTEGER_EXT 0x8D94 +#define GL_GREEN_INTEGER_EXT 0x8D95 +#define GL_BLUE_INTEGER_EXT 0x8D96 +#define GL_ALPHA_INTEGER_EXT 0x8D97 +#define GL_RGB_INTEGER_EXT 0x8D98 +#define GL_RGBA_INTEGER_EXT 0x8D99 +#define GL_BGR_INTEGER_EXT 0x8D9A +#define GL_BGRA_INTEGER_EXT 0x8D9B +#define GL_LUMINANCE_INTEGER_EXT 0x8D9C +#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D +#endif + +#if GL_EXT_texture_lod_bias +#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD +#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 +#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 +#endif + +#if GL_EXT_texture_mirror_clamp +#define GL_MIRROR_CLAMP_EXT 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 +#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 +#endif + +#if GL_EXT_texture_object +#define GL_TEXTURE_PRIORITY_EXT 0x8066 +#define GL_TEXTURE_RESIDENT_EXT 0x8067 +#define GL_TEXTURE_1D_BINDING_EXT 0x8068 +#define GL_TEXTURE_2D_BINDING_EXT 0x8069 +#define GL_TEXTURE_3D_BINDING_EXT 0x806A +#endif + +#if GL_EXT_texture_rectangle +#define GL_TEXTURE_RECTANGLE_EXT 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_EXT 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_EXT 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8 +#endif + +#if GL_EXT_texture_shared_exponent +#define GL_RGB9_E5_EXT 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E +#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F +#endif + +#if GL_EXT_texture_sRGB +#define GL_SRGB_EXT 0x8C40 +#define GL_SRGB8_EXT 0x8C41 +#define GL_SRGB_ALPHA_EXT 0x8C42 +#define GL_SRGB8_ALPHA8_EXT 0x8C43 +#define GL_SLUMINANCE_ALPHA_EXT 0x8C44 +#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45 +#define GL_SLUMINANCE_EXT 0x8C46 +#define GL_SLUMINANCE8_EXT 0x8C47 +#define GL_COMPRESSED_SRGB_EXT 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49 +#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A +#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B +#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F +#endif + +#if GL_EXT_texture_sRGB_decode +#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 +#define GL_DECODE_EXT 0x8A49 +#define GL_SKIP_DECODE_EXT 0x8A4A +#endif + +#if GL_EXT_timer_query +#define GL_TIME_ELAPSED_EXT 0x88BF +#endif + +#if GL_EXT_transform_feedback +#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F +#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C +#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D +#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 +#define GL_RASTERIZER_DISCARD_EXT 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 +#endif + +#if GL_EXT_vertex_array +#define GL_VERTEX_ARRAY_EXT 0x8074 +#define GL_NORMAL_ARRAY_EXT 0x8075 +#define GL_COLOR_ARRAY_EXT 0x8076 +#define GL_INDEX_ARRAY_EXT 0x8077 +#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 +#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 +#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A +#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B +#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C +#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D +#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E +#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F +#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 +#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 +#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 +#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 +#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 +#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 +#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 +#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 +#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A +#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B +#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C +#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D +#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E +#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F +#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 +#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 +#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 +#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 +#endif + +#if GL_APPLE_aux_depth_stencil +#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14 +#endif + +#if GL_APPLE_client_storage +#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 +#endif + +#if GL_APPLE_element_array +#define GL_ELEMENT_ARRAY_APPLE 0x8A0C +#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D +#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E +#endif + +#if GL_APPLE_fence +#define GL_DRAW_PIXELS_APPLE 0x8A0A +#define GL_FENCE_APPLE 0x8A0B +#define GL_BUFFER_OBJECT_APPLE 0x85B3 +#endif + +#if GL_APPLE_float_pixels +#define GL_HALF_APPLE 0x140B +#define GL_COLOR_FLOAT_APPLE 0x8A0F +#define GL_RGBA_FLOAT32_APPLE 0x8814 +#define GL_RGB_FLOAT32_APPLE 0x8815 +#define GL_ALPHA_FLOAT32_APPLE 0x8816 +#define GL_INTENSITY_FLOAT32_APPLE 0x8817 +#define GL_LUMINANCE_FLOAT32_APPLE 0x8818 +#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819 +#define GL_RGBA_FLOAT16_APPLE 0x881A +#define GL_RGB_FLOAT16_APPLE 0x881B +#define GL_ALPHA_FLOAT16_APPLE 0x881C +#define GL_INTENSITY_FLOAT16_APPLE 0x881D +#define GL_LUMINANCE_FLOAT16_APPLE 0x881E +#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F +#endif + +#if GL_APPLE_flush_buffer_range +#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12 +#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13 +#endif + +#if GL_APPLE_object_purgeable +#define GL_RELEASED_APPLE 0x8A19 +#define GL_VOLATILE_APPLE 0x8A1A +#define GL_RETAINED_APPLE 0x8A1B +#define GL_UNDEFINED_APPLE 0x8A1C +#define GL_PURGEABLE_APPLE 0x8A1D +#endif + +#if GL_APPLE_pixel_buffer +#define GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE 0x8A10 +#endif + +#if GL_APPLE_rgb_422 +#define GL_RGB_422_APPLE 0x8A1F +#endif + +#if GL_APPLE_row_bytes +#define GL_PACK_ROW_BYTES_APPLE 0x8A15 +#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16 +#define GL_PACK_IMAGE_BYTES_APPLE 0x8A17 +#define GL_UNPACK_IMAGE_BYTES_APPLE 0x8A18 +#endif + +#if GL_APPLE_specular_vector +#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 +#endif + +#if GL_APPLE_texture_range +#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 +#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 +#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC +#define GL_TEXTURE_MINIMIZE_STORAGE_APPLE 0x85B6 +#define GL_STORAGE_PRIVATE_APPLE 0x85BD +#define GL_STORAGE_CACHED_APPLE 0x85BE +#define GL_STORAGE_SHARED_APPLE 0x85BF +#endif + +#if GL_APPLE_transform_hint +#define GL_TRANSFORM_HINT_APPLE 0x85B1 +#endif + +#if GL_APPLE_vertex_array_object +#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 +#endif + +#if GL_APPLE_vertex_array_range +#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D +#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E +#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE 0x8520 +#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 +#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F +#define GL_STORAGE_CLIENT_APPLE 0x85B4 +#define GL_STORAGE_PRIVATE_APPLE 0x85BD +#define GL_STORAGE_CACHED_APPLE 0x85BE +#define GL_STORAGE_SHARED_APPLE 0x85BF +#endif + +#if GL_APPLE_vertex_point_size +#define GL_VERTEX_POINT_SIZE_APPLE 0x8A26 +#define GL_CURRENT_POINT_SIZE_APPLE 0x8A27 +#define GL_POINT_SIZE_ARRAY_APPLE 0x8B9C +#define GL_POINT_SIZE_ARRAY_TYPE_APPLE 0x898A +#define GL_POINT_SIZE_ARRAY_STRIDE_APPLE 0x898B +#define GL_POINT_SIZE_ARRAY_POINTER_APPLE 0x898C +#define GL_POINT_SIZE_ARRAY_BUFFER_BINDING_APPLE 0x8B9F +#endif + +#if GL_APPLE_vertex_program_evaluators +#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00 +#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01 +#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02 +#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03 +#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04 +#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05 +#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06 +#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07 +#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08 +#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09 +#endif + +#if GL_APPLE_ycbcr_422 +#define GL_YCBCR_422_APPLE 0x85B9 +#endif + +#if GL_APPLE_ycbcr_422 || GL_APPLE_rgb_422 +#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB +#endif + +#if GL_ATI_array_rev_comps_in_4_bytes +#define GL_ARRAY_REV_COMPS_IN_4_BYTES_ATI 0x897C +#endif + +#if GL_ATI_blend_equation_separate +#define GL_ALPHA_BLEND_EQUATION_ATI 0x883D +#endif + +#if GL_ATI_blend_weighted_minmax +#define GL_MIN_WEIGHTED_ATI 0x877D +#define GL_MAX_WEIGHTED_ATI 0x877E +#endif + +#if GL_ATI_pn_triangles +#define GL_PN_TRIANGLES_ATI 0x6090 +#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x6091 +#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x6092 +#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x6093 +#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x6094 +#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x6095 +#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x6096 +#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x6097 +#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x6098 +#endif + +#if GL_ATI_point_cull_mode +#define GL_POINT_CULL_MODE_ATI 0x60B3 +#define GL_POINT_CULL_CENTER_ATI 0x60B4 +#define GL_POINT_CULL_CLIP_ATI 0x60B5 +#endif + +#if GL_ATI_separate_stencil +#define GL_STENCIL_BACK_FUNC_ATI 0x8800 +#define GL_STENCIL_BACK_FAIL_ATI 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 +#endif + +#if GL_ATI_text_fragment_shader +#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 +#endif + +#if GL_ATI_texture_compression_3dc +#define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837 +#endif + +#if GL_ATI_texture_env_combine3 +#define GL_MODULATE_ADD_ATI 0x8744 +#define GL_MODULATE_SIGNED_ADD_ATI 0x8745 +#define GL_MODULATE_SUBTRACT_ATI 0x8746 +#endif + +#if GL_ATI_texture_float +#define GL_RGBA_FLOAT32_ATI 0x8814 +#define GL_RGB_FLOAT32_ATI 0x8815 +#define GL_ALPHA_FLOAT32_ATI 0x8816 +#define GL_INTENSITY_FLOAT32_ATI 0x8817 +#define GL_LUMINANCE_FLOAT32_ATI 0x8818 +#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 +#define GL_RGBA_FLOAT16_ATI 0x881A +#define GL_RGB_FLOAT16_ATI 0x881B +#define GL_ALPHA_FLOAT16_ATI 0x881C +#define GL_INTENSITY_FLOAT16_ATI 0x881D +#define GL_LUMINANCE_FLOAT16_ATI 0x881E +#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F +#endif + +#if GL_ATI_texture_mirror_once +#define GL_MIRROR_CLAMP_ATI 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 +#endif + +#if GL_ATIX_pn_triangles +#define GL_PN_TRIANGLES_ATIX 0x6090 +#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATIX 0x6091 +#define GL_PN_TRIANGLES_POINT_MODE_ATIX 0x6092 +#define GL_PN_TRIANGLES_NORMAL_MODE_ATIX 0x6093 +#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATIX 0x6094 +#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATIX 0x6095 +#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATIX 0x6096 +#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATIX 0x6097 +#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATIX 0x6098 +#endif + +#if GL_HP_convolution_border_modes +#define GL_IGNORE_BORDER_HP 0x8150 +#define GL_CONSTANT_BORDER_HP 0x8151 +#define GL_REPLICATE_BORDER_HP 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154 +#endif + +#if GL_IBM_rasterpos_clip +#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262 +#endif + +#if GL_NV_conditional_render +#define GL_QUERY_WAIT_NV 0x8E13 +#define GL_QUERY_NO_WAIT_NV 0x8E14 +#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 +#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 +#endif + +#if GL_NV_depth_clamp +#define GL_DEPTH_CLAMP_NV 0x864F +#endif + +#if GL_NV_fog_distance +#define GL_FOG_DISTANCE_MODE_NV 0x855A +#define GL_EYE_RADIAL_NV 0x855B +#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C +/* reuse GL_EYE_PLANE */ +#endif + +#if GL_NV_fragment_program2 +#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 +#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 +#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 +#endif + +#if GL_NV_fragment_program2 || GL_NV_vertex_program2_option +#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 +#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 +#endif + +#if GL_NV_light_max_exponent +#define GL_MAX_SHININESS_NV 0x8504 +#define GL_MAX_SPOT_EXPONENT_NV 0x8505 +#endif + +#if GL_NV_multisample_filter_hint +#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 +#endif + +#if GL_NV_point_sprite +#define GL_POINT_SPRITE_NV 0x8861 +#define GL_COORD_REPLACE_NV 0x8862 +#define GL_POINT_SPRITE_R_MODE_NV 0x8863 +#endif + +#if GL_NV_register_combiners +#define GL_REGISTER_COMBINERS_NV 0x8522 +#define GL_VARIABLE_A_NV 0x8523 +#define GL_VARIABLE_B_NV 0x8524 +#define GL_VARIABLE_C_NV 0x8525 +#define GL_VARIABLE_D_NV 0x8526 +#define GL_VARIABLE_E_NV 0x8527 +#define GL_VARIABLE_F_NV 0x8528 +#define GL_VARIABLE_G_NV 0x8529 +#define GL_CONSTANT_COLOR0_NV 0x852A +#define GL_CONSTANT_COLOR1_NV 0x852B +#define GL_PRIMARY_COLOR_NV 0x852C +#define GL_SECONDARY_COLOR_NV 0x852D +#define GL_SPARE0_NV 0x852E +#define GL_SPARE1_NV 0x852F +#define GL_DISCARD_NV 0x8530 +#define GL_E_TIMES_F_NV 0x8531 +#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 +#define GL_UNSIGNED_IDENTITY_NV 0x8536 +#define GL_UNSIGNED_INVERT_NV 0x8537 +#define GL_EXPAND_NORMAL_NV 0x8538 +#define GL_EXPAND_NEGATE_NV 0x8539 +#define GL_HALF_BIAS_NORMAL_NV 0x853A +#define GL_HALF_BIAS_NEGATE_NV 0x853B +#define GL_SIGNED_IDENTITY_NV 0x853C +#define GL_SIGNED_NEGATE_NV 0x853D +#define GL_SCALE_BY_TWO_NV 0x853E +#define GL_SCALE_BY_FOUR_NV 0x853F +#define GL_SCALE_BY_ONE_HALF_NV 0x8540 +#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 +#define GL_COMBINER_INPUT_NV 0x8542 +#define GL_COMBINER_MAPPING_NV 0x8543 +#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 +#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 +#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 +#define GL_COMBINER_MUX_SUM_NV 0x8547 +#define GL_COMBINER_SCALE_NV 0x8548 +#define GL_COMBINER_BIAS_NV 0x8549 +#define GL_COMBINER_AB_OUTPUT_NV 0x854A +#define GL_COMBINER_CD_OUTPUT_NV 0x854B +#define GL_COMBINER_SUM_OUTPUT_NV 0x854C +#define GL_MAX_GENERAL_COMBINERS_NV 0x854D +#define GL_NUM_GENERAL_COMBINERS_NV 0x854E +#define GL_COLOR_SUM_CLAMP_NV 0x854F +#define GL_COMBINER0_NV 0x8550 +#define GL_COMBINER1_NV 0x8551 +#define GL_COMBINER2_NV 0x8552 +#define GL_COMBINER3_NV 0x8553 +#define GL_COMBINER4_NV 0x8554 +#define GL_COMBINER5_NV 0x8555 +#define GL_COMBINER6_NV 0x8556 +#define GL_COMBINER7_NV 0x8557 +/* reuse GL_TEXTURE0_ARB */ +/* reuse GL_TEXTURE1_ARB */ +/* reuse GL_ZERO */ +/* reuse GL_NONE */ +/* reuse GL_FOG */ +#endif + +#if GL_NV_register_combiners2 +#define GL_PER_STAGE_CONSTANTS_NV 0x8535 +#endif + +#if GL_NV_texgen_reflection +#define GL_NORMAL_MAP_NV 0x8511 +#define GL_REFLECTION_MAP_NV 0x8512 +#endif + +#if GL_NV_texture_shader +#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 +#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA +#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB +#define GL_DSDT_MAG_INTENSITY_NV 0x86DC +#define GL_TEXTURE_SHADER_NV 0x86DE +#define GL_SHADER_OPERATION_NV 0x86DF +#define GL_CULL_MODES_NV 0x86E0 +#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 +#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 +#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 +#define GL_OFFSET_TEXTURE_2D_MATRIX_NV GL_OFFSET_TEXTURE_MATRIX_NV +#define GL_OFFSET_TEXTURE_2D_SCALE_NV GL_OFFSET_TEXTURE_SCALE_NV +#define GL_OFFSET_TEXTURE_2D_BIAS_NV GL_OFFSET_TEXTURE_BIAS_NV +#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 +#define GL_CONST_EYE_NV 0x86E5 +#define GL_SHADER_CONSISTENT_NV 0x86DD +#define GL_PASS_THROUGH_NV 0x86E6 +#define GL_CULL_FRAGMENT_NV 0x86E7 +#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 +#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C +#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D +#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 +#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA +#define GL_DOT_PRODUCT_NV 0x86EC +#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED +#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE +#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E +#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 +#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 +#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 +#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 +#define GL_HILO_NV 0x86F4 +#define GL_DSDT_NV 0x86F5 +#define GL_DSDT_MAG_NV 0x86F6 +#define GL_DSDT_MAG_VIB_NV 0x86F7 +#define GL_HILO16_NV 0x86F8 +#define GL_SIGNED_HILO_NV 0x86F9 +#define GL_SIGNED_HILO16_NV 0x86FA +#define GL_SIGNED_RGBA_NV 0x86FB +#define GL_SIGNED_RGBA8_NV 0x86FC +#define GL_SIGNED_RGB_NV 0x86FE +#define GL_SIGNED_RGB8_NV 0x86FF +#define GL_SIGNED_LUMINANCE_NV 0x8701 +#define GL_SIGNED_LUMINANCE8_NV 0x8702 +#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 +#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 +#define GL_SIGNED_ALPHA_NV 0x8705 +#define GL_SIGNED_ALPHA8_NV 0x8706 +#define GL_SIGNED_INTENSITY_NV 0x8707 +#define GL_SIGNED_INTENSITY8_NV 0x8708 +#define GL_DSDT8_NV 0x8709 +#define GL_DSDT8_MAG8_NV 0x870A +#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B +#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C +#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D +#define GL_HI_SCALE_NV 0x870E +#define GL_LO_SCALE_NV 0x870F +#define GL_DS_SCALE_NV 0x8710 +#define GL_DT_SCALE_NV 0x8711 +#define GL_MAGNITUDE_SCALE_NV 0x8712 +#define GL_VIBRANCE_SCALE_NV 0x8713 +#define GL_HI_BIAS_NV 0x8714 +#define GL_LO_BIAS_NV 0x8715 +#define GL_DS_BIAS_NV 0x8716 +#define GL_DT_BIAS_NV 0x8717 +#define GL_MAGNITUDE_BIAS_NV 0x8718 +#define GL_VIBRANCE_BIAS_NV 0x8719 +#define GL_TEXTURE_BORDER_VALUES_NV 0x871A +#define GL_TEXTURE_HI_SIZE_NV 0x871B +#define GL_TEXTURE_LO_SIZE_NV 0x871C +#define GL_TEXTURE_DS_SIZE_NV 0x871D +#define GL_TEXTURE_DT_SIZE_NV 0x871E +#define GL_TEXTURE_MAG_SIZE_NV 0x871F +#endif + +#if GL_NV_texture_shader2 +#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF +#endif + +#if GL_NV_texture_shader3 +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 +#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 +#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 +#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 +#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 +#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A +#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B +#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C +#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D +#define GL_HILO8_NV 0x885E +#define GL_SIGNED_HILO8_NV 0x885F +#define GL_FORCE_BLUE_TO_ONE_NV 0x8860 +#endif + +#if GL_NV_vertex_array_range +#define GL_VERTEX_ARRAY_RANGE_NV 0x851D +#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E +#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F +#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 +#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 +#endif + +#if GL_NV_vertex_array_range2 +#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 +#endif + +#if GL_NV_vertex_program +#define GL_VERTEX_PROGRAM_NV 0x8620 +#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 +#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 +#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 +#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 +#define GL_CURRENT_ATTRIB_NV 0x8626 +#define GL_PROGRAM_LENGTH_NV 0x8627 +#define GL_PROGRAM_STRING_NV 0x8628 +#define GL_MODELVIEW_PROJECTION_NV 0x8629 +#define GL_IDENTITY_NV 0x862A +#define GL_INVERSE_NV 0x862B +#define GL_TRANSPOSE_NV 0x862C +#define GL_INVERSE_TRANSPOSE_NV 0x862D +#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E +#define GL_MAX_TRACK_MATRICES_NV 0x862F +#define GL_MATRIX0_NV 0x8630 +#define GL_MATRIX1_NV 0x8631 +#define GL_MATRIX2_NV 0x8632 +#define GL_MATRIX3_NV 0x8633 +#define GL_MATRIX4_NV 0x8634 +#define GL_MATRIX5_NV 0x8635 +#define GL_MATRIX6_NV 0x8636 +#define GL_MATRIX7_NV 0x8637 +#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 +#define GL_CURRENT_MATRIX_NV 0x8641 +#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 +#define GL_PROGRAM_PARAMETER_NV 0x8644 +#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 +#define GL_PROGRAM_TARGET_NV 0x8646 +#define GL_PROGRAM_RESIDENT_NV 0x8647 +#define GL_TRACK_MATRIX_NV 0x8648 +#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 +#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A +#define GL_PROGRAM_ERROR_POSITION_NV 0x864B +#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 +#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 +#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 +#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 +#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 +#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 +#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 +#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 +#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 +#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 +#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A +#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B +#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C +#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D +#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E +#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F +#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 +#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 +#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 +#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 +#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 +#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 +#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 +#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 +#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 +#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 +#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A +#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B +#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C +#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D +#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E +#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F +#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 +#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 +#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 +#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 +#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 +#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 +#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 +#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 +#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 +#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 +#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A +#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B +#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C +#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D +#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E +#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F +#endif + +#if GL_SGI_color_matrix +#define GL_COLOR_MATRIX_SGI 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB +#endif + +#if GL_SGI_color_table +#define GL_COLOR_TABLE_SGI 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 +#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 +#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 +#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 +#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 +#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF +#endif + +#if GL_SGIS_generate_mipmap +#define GL_GENERATE_MIPMAP_SGIS 0x8191 +#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 +#endif + +#if GL_SGIS_point_parameters +#define GL_POINT_SIZE_MIN_SGIS 0x8126 +#define GL_POINT_SIZE_MAX_SGIS 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128 +#define GL_DISTANCE_ATTENUATION_SGIS 0x8129 +#endif + +#if GL_SGIS_texture_edge_clamp +#define GL_CLAMP_TO_EDGE_SGIS 0x812F +#endif + +#if GL_SGIS_texture_border_clamp +#define GL_CLAMP_TO_BORDER_SGIS 0x812D +#endif + +#if GL_SGIS_texture_lod +#define GL_TEXTURE_MIN_LOD_SGIS 0x813A +#define GL_TEXTURE_MAX_LOD_SGIS 0x813B +#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C +#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D +#endif + +#if GL_SGIX_depth_texture +#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 +#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 +#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 +#endif + +/*************************************************************/ + +#if GL_ARB_color_buffer_float +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glClampColorARBProcPtr) (GLenum target, GLenum clamp); +#else +extern void glClampColorARB(GLenum target, GLenum clamp); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_draw_buffers +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glDrawBuffersARBProcPtr) (GLsizei n, const GLenum *bufs); +#else +extern void glDrawBuffersARB(GLsizei n, const GLenum *bufs); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_draw_elements_base_vertex +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glDrawElementsBaseVertexProcPtr) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint base_vertex); +typedef void (* glDrawRangeElementsBaseVertexProcPtr) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint base_vertex); +typedef void (* glDrawElementsInstancedBaseVertexProcPtr) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint base_vertex); +typedef void (* glMultiDrawElementsBaseVertexProcPtr) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount, const GLint *base_vertex); +#else +extern void glDrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint base_vertex); +extern void glDrawRangeElementsBaseVertex(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint base_vertex); +extern void glDrawElementsInstancedBaseVertex(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint base_vertex); +extern void glMultiDrawElementsBaseVertex(GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount, const GLint *base_vertex); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_draw_instanced +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glDrawArraysInstancedARBProcPtr) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void (* glDrawElementsInstancedARBProcPtr) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); +#else +extern void glDrawArraysInstancedARB(GLenum mode, GLint first, GLsizei count, GLsizei primcount); +extern void glDrawElementsInstancedARB(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_framebuffer_object +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef GLboolean (* glIsRenderbufferProcPtr) (GLuint renderbuffer); +typedef void (* glBindRenderbufferProcPtr) (GLenum target, GLuint renderbuffer); +typedef void (* glDeleteRenderbuffersProcPtr) (GLsizei n, const GLuint *renderbuffers); +typedef void (* glGenRenderbuffersProcPtr) (GLsizei n, GLuint *renderbuffers); +typedef void (* glRenderbufferStorageProcPtr) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (* glGetRenderbufferParameterivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef GLboolean (* glIsFramebufferProcPtr) (GLuint framebuffer); +typedef void (* glBindFramebufferProcPtr) (GLenum target, GLuint framebuffer); +typedef void (* glDeleteFramebuffersProcPtr) (GLsizei n, const GLuint *framebuffers); +typedef void (* glGenFramebuffersProcPtr) (GLsizei n, GLuint *framebuffers); +typedef GLenum (* glCheckFramebufferStatusProcPtr) (GLenum target); +typedef void (* glFramebufferTexture1DProcPtr) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (* glFramebufferTexture2DProcPtr) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (* glFramebufferTexture3DProcPtr) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (* glFramebufferRenderbufferProcPtr) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (* glGetFramebufferAttachmentParameterivProcPtr) (GLenum target, GLenum attachment, GLenum pname, GLint *params); +typedef void (* glGenerateMipmapProcPtr) (GLenum target); +typedef void (* glBlitFramebufferProcPtr) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef void (* glRenderbufferStorageMultisampleProcPtr) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (* glFramebufferTextureLayerProcPtr) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +#else +extern GLboolean glIsRenderbuffer(GLuint renderbuffer); +extern void glBindRenderbuffer(GLenum target, GLuint renderbuffer); +extern void glDeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers); +extern void glGenRenderbuffers(GLsizei n, GLuint *renderbuffers); +extern void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +extern void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params); +extern GLboolean glIsFramebuffer(GLuint framebuffer); +extern void glBindFramebuffer(GLenum target, GLuint framebuffer); +extern void glDeleteFramebuffers(GLsizei n, const GLuint *framebuffers); +extern void glGenFramebuffers(GLsizei n, GLuint *framebuffers); +extern GLenum glCheckFramebufferStatus(GLenum target); +extern void glFramebufferTexture1D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +extern void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +extern void glFramebufferTexture3D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +extern void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +extern void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint *params); +extern void glGenerateMipmap(GLenum target); +extern void glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +extern void glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +extern void glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_instanced_arrays +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glVertexAttribDivisorARBProcPtr) (GLuint index, GLuint divisor); +#else +extern void glVertexAttribDivisorARB(GLuint index, GLuint divisor); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_multisample +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glSampleCoverageARBProcPtr) (GLclampf value, GLboolean invert); +#else +extern void glSampleCoverageARB(GLclampf value, GLboolean invert); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_multitexture +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glActiveTextureARBProcPtr) (GLenum texture); +typedef void (* glClientActiveTextureARBProcPtr) (GLenum texture); +typedef void (* glMultiTexCoord1dARBProcPtr) (GLenum target, GLdouble s); +typedef void (* glMultiTexCoord1dvARBProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord1fARBProcPtr) (GLenum target, GLfloat s); +typedef void (* glMultiTexCoord1fvARBProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord1iARBProcPtr) (GLenum target, GLint s); +typedef void (* glMultiTexCoord1ivARBProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord1sARBProcPtr) (GLenum target, GLshort s); +typedef void (* glMultiTexCoord1svARBProcPtr) (GLenum target, const GLshort *v); +typedef void (* glMultiTexCoord2dARBProcPtr) (GLenum target, GLdouble s, GLdouble t); +typedef void (* glMultiTexCoord2dvARBProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord2fARBProcPtr) (GLenum target, GLfloat s, GLfloat t); +typedef void (* glMultiTexCoord2fvARBProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord2iARBProcPtr) (GLenum target, GLint s, GLint t); +typedef void (* glMultiTexCoord2ivARBProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord2sARBProcPtr) (GLenum target, GLshort s, GLshort t); +typedef void (* glMultiTexCoord2svARBProcPtr) (GLenum target, const GLshort *v); +typedef void (* glMultiTexCoord3dARBProcPtr) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (* glMultiTexCoord3dvARBProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord3fARBProcPtr) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (* glMultiTexCoord3fvARBProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord3iARBProcPtr) (GLenum target, GLint s, GLint t, GLint r); +typedef void (* glMultiTexCoord3ivARBProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord3sARBProcPtr) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (* glMultiTexCoord3svARBProcPtr) (GLenum target, const GLshort *v); +typedef void (* glMultiTexCoord4dARBProcPtr) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (* glMultiTexCoord4dvARBProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord4fARBProcPtr) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (* glMultiTexCoord4fvARBProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord4iARBProcPtr) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (* glMultiTexCoord4ivARBProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord4sARBProcPtr) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (* glMultiTexCoord4svARBProcPtr) (GLenum target, const GLshort *v); +#else +extern void glActiveTextureARB(GLenum texture); +extern void glClientActiveTextureARB(GLenum texture); +extern void glMultiTexCoord1dARB(GLenum target, GLdouble s); +extern void glMultiTexCoord1dvARB(GLenum target, const GLdouble *v); +extern void glMultiTexCoord1fARB(GLenum target, GLfloat s); +extern void glMultiTexCoord1fvARB(GLenum target, const GLfloat *v); +extern void glMultiTexCoord1iARB(GLenum target, GLint s); +extern void glMultiTexCoord1ivARB(GLenum target, const GLint *v); +extern void glMultiTexCoord1sARB(GLenum target, GLshort s); +extern void glMultiTexCoord1svARB(GLenum target, const GLshort *v); +extern void glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t); +extern void glMultiTexCoord2dvARB(GLenum target, const GLdouble *v); +extern void glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t); +extern void glMultiTexCoord2fvARB(GLenum target, const GLfloat *v); +extern void glMultiTexCoord2iARB(GLenum target, GLint s, GLint t); +extern void glMultiTexCoord2ivARB(GLenum target, const GLint *v); +extern void glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t); +extern void glMultiTexCoord2svARB(GLenum target, const GLshort *v); +extern void glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r); +extern void glMultiTexCoord3dvARB(GLenum target, const GLdouble *v); +extern void glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r); +extern void glMultiTexCoord3fvARB(GLenum target, const GLfloat *v); +extern void glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r); +extern void glMultiTexCoord3ivARB(GLenum target, const GLint *v); +extern void glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r); +extern void glMultiTexCoord3svARB(GLenum target, const GLshort *v); +extern void glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +extern void glMultiTexCoord4dvARB(GLenum target, const GLdouble *v); +extern void glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +extern void glMultiTexCoord4fvARB(GLenum target, const GLfloat *v); +extern void glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q); +extern void glMultiTexCoord4ivARB(GLenum target, const GLint *v); +extern void glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +extern void glMultiTexCoord4svARB(GLenum target, const GLshort *v); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_occlusion_query +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glGenQueriesARBProcPtr) (GLsizei n, GLuint *ids); +typedef void (* glDeleteQueriesARBProcPtr) (GLsizei n, const GLuint *ids); +typedef GLboolean (* glIsQueryARBProcPtr) (GLuint id); +typedef void (* glBeginQueryARBProcPtr) (GLenum target, GLuint id); +typedef void (* glEndQueryARBProcPtr) (GLenum target); +typedef void (* glGetQueryivARBProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetQueryObjectivARBProcPtr) (GLuint id, GLenum pname, GLint *params); +typedef void (* glGetQueryObjectuivARBProcPtr) (GLuint id, GLenum pname, GLuint *params); +#else +extern void glGenQueriesARB(GLsizei n, GLuint *ids); +extern void glDeleteQueriesARB(GLsizei n, const GLuint *ids); +extern GLboolean glIsQueryARB(GLuint id); +extern void glBeginQueryARB(GLenum target, GLuint id); +extern void glEndQueryARB(GLenum target); +extern void glGetQueryivARB(GLenum target, GLenum pname, GLint *params); +extern void glGetQueryObjectivARB(GLuint id, GLenum pname, GLint *params); +extern void glGetQueryObjectuivARB(GLuint id, GLenum pname, GLuint *params); +#endif +#endif + +#if GL_ARB_point_parameters +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glPointParameterfARBProcPtr) (GLenum pname, GLfloat param); +typedef void (* glPointParameterfvARBProcPtr) (GLenum pname, const GLfloat *params); +#else +extern void glPointParameterfARB(GLenum pname, GLfloat param); +extern void glPointParameterfvARB(GLenum pname, const GLfloat *params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_provoking_vertex +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glProvokingVertexProcPtr) (GLenum mode); +#else +extern void glProvokingVertex(GLenum mode); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_shader_objects +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glDeleteObjectARBProcPtr) (GLhandleARB obj); +typedef GLhandleARB (* glGetHandleARBProcPtr) (GLenum pname); +typedef void (* glDetachObjectARBProcPtr) (GLhandleARB containerObj, GLhandleARB attachedObj); +typedef GLhandleARB (* glCreateShaderObjectARBProcPtr) (GLenum shaderType); +typedef void (* glShaderSourceARBProcPtr) (GLhandleARB shaderObj, GLsizei count, const GLcharARB* const *string, const GLint *length); +typedef void (* glCompileShaderARBProcPtr) (GLhandleARB shaderObj); +typedef GLhandleARB (* glCreateProgramObjectARBProcPtr) (void); +typedef void (* glAttachObjectARBProcPtr) (GLhandleARB containerObj, GLhandleARB obj); +typedef void (* glLinkProgramARBProcPtr) (GLhandleARB programObj); +typedef void (* glUseProgramObjectARBProcPtr) (GLhandleARB programObj); +typedef void (* glValidateProgramARBProcPtr) (GLhandleARB programObj); +typedef void (* glUniform1fARBProcPtr) (GLint location, GLfloat v0); +typedef void (* glUniform2fARBProcPtr) (GLint location, GLfloat v0, GLfloat v1); +typedef void (* glUniform3fARBProcPtr) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (* glUniform4fARBProcPtr) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (* glUniform1iARBProcPtr) (GLint location, GLint v0); +typedef void (* glUniform2iARBProcPtr) (GLint location, GLint v0, GLint v1); +typedef void (* glUniform3iARBProcPtr) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (* glUniform4iARBProcPtr) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (* glUniform1fvARBProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform2fvARBProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform3fvARBProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform4fvARBProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform1ivARBProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniform2ivARBProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniform3ivARBProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniform4ivARBProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniformMatrix2fvARBProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix3fvARBProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix4fvARBProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glGetObjectParameterfvARBProcPtr) (GLhandleARB obj, GLenum pname, GLfloat *params); +typedef void (* glGetObjectParameterivARBProcPtr) (GLhandleARB obj, GLenum pname, GLint *params); +typedef void (* glGetInfoLogARBProcPtr) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); +typedef void (* glGetAttachedObjectsARBProcPtr) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); +typedef GLint (* glGetUniformLocationARBProcPtr) (GLhandleARB programObj, const GLcharARB *name); +typedef void (* glGetActiveUniformARBProcPtr) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +typedef void (* glGetUniformfvARBProcPtr) (GLhandleARB programObj, GLint location, GLfloat *params); +typedef void (* glGetUniformivARBProcPtr) (GLhandleARB programObj, GLint location, GLint *params); +typedef void (* glGetShaderSourceARBProcPtr) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); +#else +extern void glDeleteObjectARB(GLhandleARB obj); +extern GLhandleARB glGetHandleARB(GLenum pname); +extern void glDetachObjectARB(GLhandleARB containerObj, GLhandleARB attachedObj); +extern GLhandleARB glCreateShaderObjectARB(GLenum shaderType); +extern void glShaderSourceARB(GLhandleARB shaderObj, GLsizei count, const GLcharARB* const *string, const GLint *length); +extern void glCompileShaderARB(GLhandleARB shaderObj); +extern GLhandleARB glCreateProgramObjectARB(void); +extern void glAttachObjectARB(GLhandleARB containerObj, GLhandleARB obj); +extern void glLinkProgramARB(GLhandleARB programObj); +extern void glUseProgramObjectARB(GLhandleARB programObj); +extern void glValidateProgramARB(GLhandleARB programObj); +extern void glUniform1fARB(GLint location, GLfloat v0); +extern void glUniform2fARB(GLint location, GLfloat v0, GLfloat v1); +extern void glUniform3fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +extern void glUniform4fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +extern void glUniform1iARB(GLint location, GLint v0); +extern void glUniform2iARB(GLint location, GLint v0, GLint v1); +extern void glUniform3iARB(GLint location, GLint v0, GLint v1, GLint v2); +extern void glUniform4iARB(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +extern void glUniform1fvARB(GLint location, GLsizei count, const GLfloat *value); +extern void glUniform2fvARB(GLint location, GLsizei count, const GLfloat *value); +extern void glUniform3fvARB(GLint location, GLsizei count, const GLfloat *value); +extern void glUniform4fvARB(GLint location, GLsizei count, const GLfloat *value); +extern void glUniform1ivARB(GLint location, GLsizei count, const GLint *value); +extern void glUniform2ivARB(GLint location, GLsizei count, const GLint *value); +extern void glUniform3ivARB(GLint location, GLsizei count, const GLint *value); +extern void glUniform4ivARB(GLint location, GLsizei count, const GLint *value); +extern void glUniformMatrix2fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix3fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix4fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glGetObjectParameterfvARB(GLhandleARB obj, GLenum pname, GLfloat *params); +extern void glGetObjectParameterivARB(GLhandleARB obj, GLenum pname, GLint *params); +extern void glGetInfoLogARB(GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); +extern void glGetAttachedObjectsARB(GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); +extern GLint glGetUniformLocationARB(GLhandleARB programObj, const GLcharARB *name); +extern void glGetActiveUniformARB(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +extern void glGetUniformfvARB(GLhandleARB programObj, GLint location, GLfloat *params); +extern void glGetUniformivARB(GLhandleARB programObj, GLint location, GLint *params); +extern void glGetShaderSourceARB(GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_sync +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef GLsync (* glFenceSyncProcPtr) (GLenum condition, GLbitfield flags); +typedef GLboolean (* glIsSyncProcPtr) (GLsync sync); +typedef void (* glDeleteSyncProcPtr) (GLsync sync); +typedef GLenum (* glClientWaitSyncProcPtr) (GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (* glWaitSyncProcPtr)(GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (* glGetInteger64vProcPtr) (GLenum pname, GLint64 *params); +typedef void (* glGetSyncivProcPtr) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +#else +extern GLsync glFenceSync(GLenum condition, GLbitfield flags); +extern GLboolean glIsSync(GLsync sync); +extern void glDeleteSync(GLsync sync); +extern GLenum glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout); +extern void glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout); +extern void glGetInteger64v(GLenum pname, GLint64 *params); +extern void glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_texture_compression +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glCompressedTexImage3DARBProcPtr) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexImage2DARBProcPtr) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexImage1DARBProcPtr) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexSubImage3DARBProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexSubImage2DARBProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexSubImage1DARBProcPtr) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (* glGetCompressedTexImageARBProcPtr) (GLenum target, GLint level, GLvoid *data); +#else +extern void glCompressedTexImage3DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexImage2DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexImage1DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexSubImage3DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexSubImage2DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexSubImage1DARB(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +extern void glGetCompressedTexImageARB(GLenum target, GLint level, GLvoid *data); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_transpose_matrix +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glLoadTransposeMatrixfARBProcPtr) (const GLfloat *m); +typedef void (* glLoadTransposeMatrixdARBProcPtr) (const GLdouble *m); +typedef void (* glMultTransposeMatrixfARBProcPtr) (const GLfloat *m); +typedef void (* glMultTransposeMatrixdARBProcPtr) (const GLdouble *m); +#else +extern void glLoadTransposeMatrixfARB(const GLfloat *m); +extern void glLoadTransposeMatrixdARB(const GLdouble *m); +extern void glMultTransposeMatrixfARB(const GLfloat *m); +extern void glMultTransposeMatrixdARB(const GLdouble *m); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_vertex_blend +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glWeightbvARBProcPtr) (GLint size, const GLbyte *weights); +typedef void (* glWeightsvARBProcPtr) (GLint size, const GLshort *weights); +typedef void (* glWeightivARBProcPtr) (GLint size, const GLint *weights); +typedef void (* glWeightfvARBProcPtr) (GLint size, const GLfloat *weights); +typedef void (* glWeightdvARBProcPtr) (GLint size, const GLdouble *weights); +typedef void (* glWeightubvARBProcPtr) (GLint size, const GLubyte *weights); +typedef void (* glWeightusvARBProcPtr) (GLint size, const GLushort *weights); +typedef void (* glWeightuivARBProcPtr) (GLint size, const GLuint *weights); +typedef void (* glWeightPointerARBProcPtr) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glVertexBlendARBProcPtr) (GLint count); +#else +extern void glWeightbvARB(GLint size, const GLbyte *weights); +extern void glWeightsvARB(GLint size, const GLshort *weights); +extern void glWeightivARB(GLint size, const GLint *weights); +extern void glWeightfvARB(GLint size, const GLfloat *weights); +extern void glWeightdvARB(GLint size, const GLdouble *weights); +extern void glWeightubvARB(GLint size, const GLubyte *weights); +extern void glWeightusvARB(GLint size, const GLushort *weights); +extern void glWeightuivARB(GLint size, const GLuint *weights); +extern void glWeightPointerARB(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glVertexBlendARB(GLint count); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_vertex_buffer_object +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBindBufferARBProcPtr) (GLenum target, GLuint buffer); +typedef void (* glDeleteBuffersARBProcPtr) (GLsizei n, const GLuint *buffers); +typedef void (* glGenBuffersARBProcPtr) (GLsizei n, GLuint *buffers); +typedef GLboolean (* glIsBufferARBProcPtr) (GLuint buffer); +typedef void (* glBufferDataARBProcPtr) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); +typedef void (* glBufferSubDataARBProcPtr) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); +typedef void (* glGetBufferSubDataARBProcPtr) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data); +typedef GLvoid *(* glMapBufferARBProcPtr) (GLenum target, GLenum access); +typedef GLboolean (* glUnmapBufferARBProcPtr) (GLenum target); +typedef void (* glGetBufferParameterivARBProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetBufferPointervARBProcPtr) (GLenum target, GLenum pname, GLvoid **params); +#else +extern void glBindBufferARB(GLenum target, GLuint buffer); +extern void glDeleteBuffersARB(GLsizei n, const GLuint *buffers); +extern void glGenBuffersARB(GLsizei n, GLuint *buffers); +extern GLboolean glIsBufferARB(GLuint buffer); +extern void glBufferDataARB(GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); +extern void glBufferSubDataARB(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); +extern void glGetBufferSubDataARB(GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data); +extern GLvoid *glMapBufferARB(GLenum target, GLenum access); +extern GLboolean glUnmapBufferARB(GLenum target); +extern void glGetBufferParameterivARB(GLenum target, GLenum pname, GLint *params); +extern void glGetBufferPointervARB(GLenum target, GLenum pname, GLvoid **params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_vertex_program +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBindProgramARBProcPtr) (GLenum target, GLuint program); +typedef void (* glDeleteProgramsARBProcPtr) (GLsizei n, const GLuint *programs); +typedef void (* glGenProgramsARBProcPtr) (GLsizei n, GLuint *programs); +typedef GLboolean (* glIsProgramARBProcPtr) (GLuint program); +typedef void (* glProgramEnvParameter4dARBProcPtr) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glProgramEnvParameter4dvARBProcPtr) (GLenum target, GLuint index, const GLdouble *params); +typedef void (* glProgramEnvParameter4fARBProcPtr) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glProgramEnvParameter4fvARBProcPtr) (GLenum target, GLuint index, const GLfloat *params); +typedef void (* glProgramLocalParameter4dARBProcPtr) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glProgramLocalParameter4dvARBProcPtr) (GLenum target, GLuint index, const GLdouble *params); +typedef void (* glProgramLocalParameter4fARBProcPtr) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glProgramLocalParameter4fvARBProcPtr) (GLenum target, GLuint index, const GLfloat *params); +#if GL_EXT_gpu_program_parameters +typedef void (* glProgramEnvParameters4fvEXTProcPtr) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); +typedef void (* glProgramLocalParameters4fvEXTProcPtr) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); +#endif +typedef void (* glGetProgramEnvParameterdvARBProcPtr) (GLenum target, GLuint index, GLdouble *params); +typedef void (* glGetProgramEnvParameterfvARBProcPtr) (GLenum target, GLuint index, GLfloat *params); +typedef void (* glGetProgramLocalParameterdvARBProcPtr) (GLenum target, GLuint index, GLdouble *params); +typedef void (* glGetProgramLocalParameterfvARBProcPtr) (GLenum target, GLuint index, GLfloat *params); +typedef void (* glProgramStringARBProcPtr) (GLenum target, GLenum format, GLsizei len, const GLvoid *string); +typedef void (* glGetProgramStringARBProcPtr) (GLenum target, GLenum pname, GLvoid *string); +typedef void (* glGetProgramivARBProcPtr) (GLenum target, GLenum pname, GLint *params); +#else +extern void glBindProgramARB(GLenum target, GLuint program); +extern void glDeleteProgramsARB(GLsizei n, const GLuint *programs); +extern void glGenProgramsARB(GLsizei n, GLuint *programs); +extern GLboolean glIsProgramARB(GLuint program); +extern void glProgramEnvParameter4dARB(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glProgramEnvParameter4dvARB(GLenum target, GLuint index, const GLdouble *params); +extern void glProgramEnvParameter4fARB(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glProgramEnvParameter4fvARB(GLenum target, GLuint index, const GLfloat *params); +extern void glProgramLocalParameter4dARB(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glProgramLocalParameter4dvARB(GLenum target, GLuint index, const GLdouble *params); +extern void glProgramLocalParameter4fARB(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glProgramLocalParameter4fvARB(GLenum target, GLuint index, const GLfloat *params); +extern void glGetProgramEnvParameterdvARB(GLenum target, GLuint index, GLdouble *params); +extern void glGetProgramEnvParameterfvARB(GLenum target, GLuint index, GLfloat *params); +#if GL_EXT_gpu_program_parameters +extern void glProgramEnvParameters4fvEXT(GLenum target, GLuint index, GLsizei count, const GLfloat *params); +extern void glProgramLocalParameters4fvEXT(GLenum target, GLuint index, GLsizei count, const GLfloat *params); +#endif +extern void glGetProgramLocalParameterdvARB(GLenum target, GLuint index, GLdouble *params); +extern void glGetProgramLocalParameterfvARB(GLenum target, GLuint index, GLfloat *params); +extern void glProgramStringARB(GLenum target, GLenum format, GLsizei len, const GLvoid *string); +extern void glGetProgramStringARB(GLenum target, GLenum pname, GLvoid *string); +extern void glGetProgramivARB(GLenum target, GLenum pname, GLint *params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_vertex_shader +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBindAttribLocationARBProcPtr) (GLhandleARB programObj, GLuint index, const GLcharARB *name); +typedef void (* glGetActiveAttribARBProcPtr) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +typedef GLint (* glGetAttribLocationARBProcPtr) (GLhandleARB programObj, const GLcharARB *name); +#else +extern void glBindAttribLocationARB(GLhandleARB programObj, GLuint index, const GLcharARB *name); +extern void glGetActiveAttribARB(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +extern GLint glGetAttribLocationARB(GLhandleARB programObj, const GLcharARB *name); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_vertex_shader || GL_ARB_vertex_program +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glVertexAttrib1dARBProcPtr) (GLuint index, GLdouble x); +typedef void (* glVertexAttrib1dvARBProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib1fARBProcPtr) (GLuint index, GLfloat x); +typedef void (* glVertexAttrib1fvARBProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib1sARBProcPtr) (GLuint index, GLshort x); +typedef void (* glVertexAttrib1svARBProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib2dARBProcPtr) (GLuint index, GLdouble x, GLdouble y); +typedef void (* glVertexAttrib2dvARBProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib2fARBProcPtr) (GLuint index, GLfloat x, GLfloat y); +typedef void (* glVertexAttrib2fvARBProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib2sARBProcPtr) (GLuint index, GLshort x, GLshort y); +typedef void (* glVertexAttrib2svARBProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib3dARBProcPtr) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (* glVertexAttrib3dvARBProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib3fARBProcPtr) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (* glVertexAttrib3fvARBProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib3sARBProcPtr) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (* glVertexAttrib3svARBProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib4NbvARBProcPtr) (GLuint index, const GLbyte *v); +typedef void (* glVertexAttrib4NivARBProcPtr) (GLuint index, const GLint *v); +typedef void (* glVertexAttrib4NsvARBProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib4NubARBProcPtr) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (* glVertexAttrib4NubvARBProcPtr) (GLuint index, const GLubyte *v); +typedef void (* glVertexAttrib4NuivARBProcPtr) (GLuint index, const GLuint *v); +typedef void (* glVertexAttrib4NusvARBProcPtr) (GLuint index, const GLushort *v); +typedef void (* glVertexAttrib4bvARBProcPtr) (GLuint index, const GLbyte *v); +typedef void (* glVertexAttrib4dARBProcPtr) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glVertexAttrib4dvARBProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib4fARBProcPtr) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glVertexAttrib4fvARBProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib4ivARBProcPtr) (GLuint index, const GLint *v); +typedef void (* glVertexAttrib4sARBProcPtr) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (* glVertexAttrib4svARBProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib4ubvARBProcPtr) (GLuint index, const GLubyte *v); +typedef void (* glVertexAttrib4uivARBProcPtr) (GLuint index, const GLuint *v); +typedef void (* glVertexAttrib4usvARBProcPtr) (GLuint index, const GLushort *v); +typedef void (* glVertexAttribPointerARBProcPtr) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +typedef void (* glDisableVertexAttribArrayARBProcPtr) (GLuint index); +typedef void (* glEnableVertexAttribArrayARBProcPtr) (GLuint index); +typedef void (* glGetVertexAttribPointervARBProcPtr) (GLuint index, GLenum pname, GLvoid **pointer); +typedef void (* glGetVertexAttribdvARBProcPtr) (GLuint index, GLenum pname, GLdouble *params); +typedef void (* glGetVertexAttribfvARBProcPtr) (GLuint index, GLenum pname, GLfloat *params); +typedef void (* glGetVertexAttribivARBProcPtr) (GLuint index, GLenum pname, GLint *params); +#else +extern void glVertexAttrib1dARB(GLuint index, GLdouble x); +extern void glVertexAttrib1dvARB(GLuint index, const GLdouble *v); +extern void glVertexAttrib1fARB(GLuint index, GLfloat x); +extern void glVertexAttrib1fvARB(GLuint index, const GLfloat *v); +extern void glVertexAttrib1sARB(GLuint index, GLshort x); +extern void glVertexAttrib1svARB(GLuint index, const GLshort *v); +extern void glVertexAttrib2dARB(GLuint index, GLdouble x, GLdouble y); +extern void glVertexAttrib2dvARB(GLuint index, const GLdouble *v); +extern void glVertexAttrib2fARB(GLuint index, GLfloat x, GLfloat y); +extern void glVertexAttrib2fvARB(GLuint index, const GLfloat *v); +extern void glVertexAttrib2sARB(GLuint index, GLshort x, GLshort y); +extern void glVertexAttrib2svARB(GLuint index, const GLshort *v); +extern void glVertexAttrib3dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z); +extern void glVertexAttrib3dvARB(GLuint index, const GLdouble *v); +extern void glVertexAttrib3fARB(GLuint index, GLfloat x, GLfloat y, GLfloat z); +extern void glVertexAttrib3fvARB(GLuint index, const GLfloat *v); +extern void glVertexAttrib3sARB(GLuint index, GLshort x, GLshort y, GLshort z); +extern void glVertexAttrib3svARB(GLuint index, const GLshort *v); +extern void glVertexAttrib4NbvARB(GLuint index, const GLbyte *v); +extern void glVertexAttrib4NivARB(GLuint index, const GLint *v); +extern void glVertexAttrib4NsvARB(GLuint index, const GLshort *v); +extern void glVertexAttrib4NubARB(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +extern void glVertexAttrib4NubvARB(GLuint index, const GLubyte *v); +extern void glVertexAttrib4NuivARB(GLuint index, const GLuint *v); +extern void glVertexAttrib4NusvARB(GLuint index, const GLushort *v); +extern void glVertexAttrib4bvARB(GLuint index, const GLbyte *v); +extern void glVertexAttrib4dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glVertexAttrib4dvARB(GLuint index, const GLdouble *v); +extern void glVertexAttrib4fARB(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glVertexAttrib4fvARB(GLuint index, const GLfloat *v); +extern void glVertexAttrib4ivARB(GLuint index, const GLint *v); +extern void glVertexAttrib4sARB(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +extern void glVertexAttrib4svARB(GLuint index, const GLshort *v); +extern void glVertexAttrib4ubvARB(GLuint index, const GLubyte *v); +extern void glVertexAttrib4uivARB(GLuint index, const GLuint *v); +extern void glVertexAttrib4usvARB(GLuint index, const GLushort *v); +extern void glVertexAttribPointerARB(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +extern void glDisableVertexAttribArrayARB(GLuint index); +extern void glEnableVertexAttribArrayARB(GLuint index); +extern void glGetVertexAttribPointervARB(GLuint index, GLenum pname, GLvoid **pointer); +extern void glGetVertexAttribdvARB(GLuint index, GLenum pname, GLdouble *params); +extern void glGetVertexAttribfvARB(GLuint index, GLenum pname, GLfloat *params); +extern void glGetVertexAttribivARB(GLuint index, GLenum pname, GLint *params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_window_pos +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glWindowPos2dARBProcPtr) (GLdouble x, GLdouble y); +typedef void (* glWindowPos2dvARBProcPtr) (const GLdouble *p); +typedef void (* glWindowPos2fARBProcPtr) (GLfloat x, GLfloat y); +typedef void (* glWindowPos2fvARBProcPtr) (const GLfloat *p); +typedef void (* glWindowPos2iARBProcPtr) (GLint x, GLint y); +typedef void (* glWindowPos2ivARBProcPtr) (const GLint *p); +typedef void (* glWindowPos2sARBProcPtr) (GLshort x, GLshort y); +typedef void (* glWindowPos2svARBProcPtr) (const GLshort *p); +typedef void (* glWindowPos3dARBProcPtr) (GLdouble x, GLdouble y, GLdouble z); +typedef void (* glWindowPos3dvARBProcPtr) (const GLdouble *p); +typedef void (* glWindowPos3fARBProcPtr) (GLfloat x, GLfloat y, GLfloat z); +typedef void (* glWindowPos3fvARBProcPtr) (const GLfloat *p); +typedef void (* glWindowPos3iARBProcPtr) (GLint x, GLint y, GLint z); +typedef void (* glWindowPos3ivARBProcPtr) (const GLint *p); +typedef void (* glWindowPos3sARBProcPtr) (GLshort x, GLshort y, GLshort z); +typedef void (* glWindowPos3svARBProcPtr) (const GLshort *p); +#else +extern void glWindowPos2dARB(GLdouble x, GLdouble y); +extern void glWindowPos2dvARB(const GLdouble *p); +extern void glWindowPos2fARB(GLfloat x, GLfloat y); +extern void glWindowPos2fvARB(const GLfloat *p); +extern void glWindowPos2iARB(GLint x, GLint y); +extern void glWindowPos2ivARB(const GLint *p); +extern void glWindowPos2sARB(GLshort x, GLshort y); +extern void glWindowPos2svARB(const GLshort *p); +extern void glWindowPos3dARB(GLdouble x, GLdouble y, GLdouble z); +extern void glWindowPos3dvARB(const GLdouble *p); +extern void glWindowPos3fARB(GLfloat x, GLfloat y, GLfloat z); +extern void glWindowPos3fvARB(const GLfloat *p); +extern void glWindowPos3iARB(GLint x, GLint y, GLint z); +extern void glWindowPos3ivARB(const GLint *p); +extern void glWindowPos3sARB(GLshort x, GLshort y, GLshort z); +extern void glWindowPos3svARB(const GLshort *p); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_bindable_uniform +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (*glUniformBufferEXTProcPtr) (GLuint program, GLint location, GLuint buffer); +typedef GLint (*glGetUniformBufferSizeEXTProcPtr) (GLuint program, GLint location); +typedef GLintptr (*glGetUniformOffsetEXTProcPtr) (GLuint program, GLint location); +#else +extern void glUniformBufferEXT(GLuint program, GLint location, GLuint buffer); +extern GLint glGetUniformBufferSizeEXT(GLuint program, GLint location); +extern GLintptr glGetUniformOffsetEXT(GLuint program, GLint location); +#endif +#endif /* GL_EXT_bindable_uniform */ + +#if GL_EXT_blend_color +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBlendColorEXTProcPtr) (GLclampf red, GLclampf blue, GLclampf green, GLclampf alpha); +#else +extern void glBlendColorEXT(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_blend_equation_separate +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBlendEquationSeparateEXTProcPtr) (GLenum modeRGB, GLenum modeAlpha); +#else +extern void glBlendEquationSeparateEXT(GLenum modeRGB, GLenum modeAlpha); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_blend_func_separate +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBlendFuncSeparateEXTProcPtr) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#else +extern void glBlendFuncSeparateEXT(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_blend_minmax +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBlendEquationEXTProcPtr) (GLenum mode); +#else +extern void glBlendEquationEXT(GLenum mode); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_color_subtable +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glColorSubTableEXTProcPtr) (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +typedef void (* glCopyColorSubTableEXTProcPtr) (GLenum, GLsizei, GLint, GLint, GLsizei); +#else +extern void glColorSubTableEXT(GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +extern void glCopyColorSubTableEXT(GLenum, GLsizei, GLint, GLint, GLsizei); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_compiled_vertex_array +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glLockArraysEXTProcPtr) (GLint first, GLsizei count); +typedef void (* glUnlockArraysEXTProcPtr) (void); +#else +extern void glLockArraysEXT(GLint first, GLsizei count); +extern void glUnlockArraysEXT(void); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_convolution +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glConvolutionFilter1DEXTProcPtr) (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +typedef void (* glConvolutionFilter2DEXTProcPtr) (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +typedef void (* glConvolutionParameterfEXTProcPtr) (GLenum, GLenum, GLfloat); +typedef void (* glConvolutionParameterfvEXTProcPtr) (GLenum, GLenum, const GLfloat *); +typedef void (* glConvolutionParameteriEXTProcPtr) (GLenum, GLenum, GLint); +typedef void (* glConvolutionParameterivEXTProcPtr) (GLenum, GLenum, const GLint *); +typedef void (* glCopyConvolutionFilter1DEXTProcPtr) (GLenum, GLenum, GLint, GLint, GLsizei); +typedef void (* glCopyConvolutionFilter2DEXTProcPtr) (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei); +typedef void (* glGetConvolutionFilterEXTProcPtr) (GLenum, GLenum, GLenum, GLvoid *); +typedef void (* glGetConvolutionParameterfvEXTProcPtr) (GLenum, GLenum, GLfloat *); +typedef void (* glGetConvolutionParameterivEXTProcPtr) (GLenum, GLenum, GLint *); +typedef void (* glGetSeparableFilterEXTProcPtr) (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *); +typedef void (* glSeparableFilter2DEXTProcPtr) (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *); +#else +extern void glConvolutionFilter1DEXT(GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +extern void glConvolutionFilter2DEXT(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +extern void glConvolutionParameterfEXT(GLenum, GLenum, GLfloat); +extern void glConvolutionParameterfvEXT(GLenum, GLenum, const GLfloat *); +extern void glConvolutionParameteriEXT(GLenum, GLenum, GLint); +extern void glConvolutionParameterivEXT(GLenum, GLenum, const GLint *); +extern void glCopyConvolutionFilter1DEXT(GLenum, GLenum, GLint, GLint, GLsizei); +extern void glCopyConvolutionFilter2DEXT(GLenum, GLenum, GLint, GLint, GLsizei, GLsizei); +extern void glGetConvolutionFilterEXT(GLenum, GLenum, GLenum, GLvoid *); +extern void glGetConvolutionParameterfvEXT(GLenum, GLenum, GLfloat *); +extern void glGetConvolutionParameterivEXT(GLenum, GLenum, GLint *); +extern void glGetSeparableFilterEXT(GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *); +extern void glSeparableFilter2DEXT(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_copy_texture +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glCopyTexImage1DEXTProcPtr) (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint); +typedef void (* glCopyTexImage2DEXTProcPtr) (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint); +typedef void (* glCopyTexSubImage1DEXTProcPtr) (GLenum, GLint, GLint, GLint, GLint, GLsizei); +typedef void (* glCopyTexSubImage2DEXTProcPtr) (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +typedef void (* glCopyTexSubImage3DEXTProcPtr) (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +#else +extern void glCopyTexImage1DEXT(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint); +extern void glCopyTexImage2DEXT(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint); +extern void glCopyTexSubImage1DEXT(GLenum, GLint, GLint, GLint, GLint, GLsizei); +extern void glCopyTexSubImage2DEXT(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +extern void glCopyTexSubImage3DEXT(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_debug_label +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glLabelObjectEXTProcPtr) (GLenum type, GLuint object, GLsizei length, const GLchar *label); +typedef void (* glGetObjectLabelEXTProcPtr) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#else +extern void glLabelObjectEXT(GLenum type, GLuint object, GLsizei length, const GLchar *label); +extern void glGetObjectLabelEXT(GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_debug_marker +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glInsertEventMarkerEXTProcPtr) (GLsizei length, const char *marker); +typedef void (* glPushGroupMarkerEXTProcPtr) (GLsizei length, const char *marker); +typedef void (* glPopGroupMarkerEXTProcPtr) (void); +#else +extern void glInsertEventMarkerEXT(GLsizei length, const char *marker); +extern void glPushGroupMarkerEXT(GLsizei length, const char *marker); +extern void glPopGroupMarkerEXT(void); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_depth_bounds_test +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glDepthBoundsEXTProcPtr) (GLclampd zmin, GLclampd zmax); +#else +extern void glDepthBoundsEXT(GLclampd zmin, GLclampd zmax); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_draw_buffers2 +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glColorMaskIndexedEXTProcPtr) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void (* glEnableIndexedEXTProcPtr) (GLenum target, GLuint index); +typedef void (* glDisableIndexedEXTProcPtr) (GLenum target, GLuint index); +typedef GLboolean (* glIsEnabledIndexedEXTProcPtr) (GLenum target, GLuint index); +#else +extern void glColorMaskIndexedEXT(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +extern void glEnableIndexedEXT(GLenum target, GLuint index); +extern void glDisableIndexedEXT(GLenum target, GLuint index); +extern GLboolean glIsEnabledIndexedEXT(GLenum target, GLuint index); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_draw_range_elements +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glDrawRangeElementsEXTProcPtr) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +#else +extern void glDrawRangeElementsEXT(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_fog_coord +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glFogCoordfEXTProcPtr) (GLfloat coord); +typedef void (* glFogCoordfvEXTProcPtr) (const GLfloat *coord); +typedef void (* glFogCoorddEXTProcPtr) (GLdouble coord); +typedef void (* glFogCoorddvEXTProcPtr) (const GLdouble *coord); +typedef void (* glFogCoordPointerEXTProcPtr) (GLenum type, GLsizei stride, const GLvoid *pointer); +#else +extern void glFogCoordfEXT(GLfloat coord); +extern void glFogCoordfvEXT(const GLfloat *coord); +extern void glFogCoorddEXT(GLdouble coord); +extern void glFogCoorddvEXT(const GLdouble *coord); +extern void glFogCoordPointerEXT(GLenum type, GLsizei stride, const GLvoid *pointer); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_framebuffer_blit +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBlitFramebufferEXTProcPtr) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#else +extern void glBlitFramebufferEXT(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_framebuffer_multisample +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glRenderbufferStorageMultisampleEXTProcPtr) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#else +extern void glRenderbufferStorageMultisampleEXT(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_framebuffer_object +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef GLboolean (* glIsRenderbufferEXTProcPtr) (GLuint renderbuffer); +typedef void (* glBindRenderbufferEXTProcPtr) (GLenum target, GLuint renderbuffer); +typedef void (* glDeleteRenderbuffersEXTProcPtr) (GLsizei n, const GLuint *renderbuffers); +typedef void (* glGenRenderbuffersEXTProcPtr) (GLsizei n, GLuint *renderbuffers); +typedef void (* glRenderbufferStorageEXTProcPtr) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (* glGetRenderbufferParameterivEXTProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef GLboolean (* glIsFramebufferEXTProcPtr) (GLuint framebuffer); +typedef void (* glBindFramebufferEXTProcPtr) (GLenum target, GLuint framebuffer); +typedef void (* glDeleteFramebuffersEXTProcPtr) (GLsizei n, const GLuint *framebuffers); +typedef void (* glGenFramebuffersEXTProcPtr) (GLsizei n, GLuint *framebuffers); +typedef GLenum (* glCheckFramebufferStatusEXTProcPtr) (GLenum target); +typedef void (* glFramebufferTexture1DEXTProcPtr) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (* glFramebufferTexture2DEXTProcPtr) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (* glFramebufferTexture3DEXTProcPtr) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (* glFramebufferRenderbufferEXTProcPtr) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (* glGetFramebufferAttachmentParameterivEXTProcPtr) (GLenum target, GLenum attachment, GLenum pname, GLint *params); +typedef void (* glGenerateMipmapEXTProcPtr) (GLenum target); +#else +extern GLboolean glIsRenderbufferEXT(GLuint renderbuffer); +extern void glBindRenderbufferEXT(GLenum target, GLuint renderbuffer); +extern void glDeleteRenderbuffersEXT(GLsizei n, const GLuint *renderbuffers); +extern void glGenRenderbuffersEXT(GLsizei n, GLuint *renderbuffers); +extern void glRenderbufferStorageEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +extern void glGetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint *params); +extern GLboolean glIsFramebufferEXT(GLuint framebuffer); +extern void glBindFramebufferEXT(GLenum target, GLuint framebuffer); +extern void glDeleteFramebuffersEXT(GLsizei n, const GLuint *framebuffers); +extern void glGenFramebuffersEXT(GLsizei n, GLuint *framebuffers); +extern GLenum glCheckFramebufferStatusEXT(GLenum target); +extern void glFramebufferTexture1DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +extern void glFramebufferTexture2DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +extern void glFramebufferTexture3DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +extern void glFramebufferRenderbufferEXT(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +extern void glGetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, GLenum pname, GLint *params); +extern void glGenerateMipmapEXT(GLenum target); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_geometry_shader4 +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glProgramParameteriEXTProcPtr) (GLuint program, GLenum pname, GLint value); +typedef void (* glFramebufferTextureEXTProcPtr) (GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void (* glFramebufferTextureFaceEXTProcPtr) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +#else +extern void glProgramParameteriEXT(GLuint program, GLenum pname, GLint value); +extern void glFramebufferTextureEXT(GLenum target, GLenum attachment, GLuint texture, GLint level); +extern void glFramebufferTextureFaceEXT(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_geometry_shader4 || GL_EXT_texture_array +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glFramebufferTextureLayerEXTProcPtr) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +#else +extern void glFramebufferTextureLayerEXT(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +#endif +#endif + +#if GL_EXT_gpu_shader4 +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (*glVertexAttribI1iEXTProcPtr) (GLuint index, GLint x); +typedef void (*glVertexAttribI2iEXTProcPtr) (GLuint index, GLint x, GLint y); +typedef void (*glVertexAttribI3iEXTProcPtr) (GLuint index, GLint x, GLint y, GLint z); +typedef void (*glVertexAttribI4iEXTProcPtr) (GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (*glVertexAttribI1uiEXTProcPtr) (GLuint index, GLuint x); +typedef void (*glVertexAttribI2uiEXTProcPtr) (GLuint index, GLuint x, GLuint y); +typedef void (*glVertexAttribI3uiEXTProcPtr) (GLuint index, GLuint x, GLuint y, GLuint z); +typedef void (*glVertexAttribI4uiEXTProcPtr) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (*glVertexAttribI1ivEXTProcPtr) (GLuint index, const GLint *v); +typedef void (*glVertexAttribI2ivEXTProcPtr) (GLuint index, const GLint *v); +typedef void (*glVertexAttribI3ivEXTProcPtr) (GLuint index, const GLint *v); +typedef void (*glVertexAttribI4ivEXTProcPtr) (GLuint index, const GLint *v); +typedef void (*glVertexAttribI1uivEXTProcPtr) (GLuint index, const GLuint *v); +typedef void (*glVertexAttribI2uivEXTProcPtr) (GLuint index, const GLuint *v); +typedef void (*glVertexAttribI3uivEXTProcPtr) (GLuint index, const GLuint *v); +typedef void (*glVertexAttribI4uivEXTProcPtr) (GLuint index, const GLuint *v); +typedef void (*glVertexAttribI4bvEXTProcPtr) (GLuint index, const GLbyte *v); +typedef void (*glVertexAttribI4svEXTProcPtr) (GLuint index, const GLshort *v); +typedef void (*glVertexAttribI4ubvEXTProcPtr) (GLuint index, const GLubyte *v); +typedef void (*glVertexAttribI4usvEXTProcPtr) (GLuint index, const GLushort *v); +typedef void (*glVertexAttribIPointerEXTProcPtr) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (*glGetVertexAttribIivEXTProcPtr) (GLuint index, GLenum pname, GLint *params); +typedef void (*glGetVertexAttribIuivEXTProcPtr) (GLuint index, GLenum pname, GLuint *params); +typedef void (*glUniform1uiEXTProcPtr) (GLint location, GLuint v0); +typedef void (*glUniform2uiEXTProcPtr) (GLint location, GLuint v0, GLuint v1); +typedef void (*glUniform3uiEXTProcPtr) (GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (*glUniform4uiEXTProcPtr) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (*glUniform1uivEXTProcPtr) (GLint location, GLsizei count, const GLuint *value); +typedef void (*glUniform2uivEXTProcPtr) (GLint location, GLsizei count, const GLuint *value); +typedef void (*glUniform3uivEXTProcPtr) (GLint location, GLsizei count, const GLuint *value); +typedef void (*glUniform4uivEXTProcPtr) (GLint location, GLsizei count, const GLuint *value); +typedef void (*glGetUniformuivEXTProcPtr) (GLuint program, GLint location, GLuint *params); +typedef void (*glBindFragDataLocationEXTProcPtr) (GLuint program, GLuint colorNumber, const GLchar *name); +typedef GLint (*glGetFragDataLocationEXTProcPtr) (GLuint program, const GLchar *name); +#else +extern void glVertexAttribI1iEXT(GLuint index, GLint x); +extern void glVertexAttribI2iEXT(GLuint index, GLint x, GLint y); +extern void glVertexAttribI3iEXT(GLuint index, GLint x, GLint y, GLint z); +extern void glVertexAttribI4iEXT(GLuint index, GLint x, GLint y, GLint z, GLint w); +extern void glVertexAttribI1uiEXT(GLuint index, GLuint x); +extern void glVertexAttribI2uiEXT(GLuint index, GLuint x, GLuint y); +extern void glVertexAttribI3uiEXT(GLuint index, GLuint x, GLuint y, GLuint z); +extern void glVertexAttribI4uiEXT(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +extern void glVertexAttribI1ivEXT(GLuint index, const GLint *v); +extern void glVertexAttribI2ivEXT(GLuint index, const GLint *v); +extern void glVertexAttribI3ivEXT(GLuint index, const GLint *v); +extern void glVertexAttribI4ivEXT(GLuint index, const GLint *v); +extern void glVertexAttribI1uivEXT(GLuint index, const GLuint *v); +extern void glVertexAttribI2uivEXT(GLuint index, const GLuint *v); +extern void glVertexAttribI3uivEXT(GLuint index, const GLuint *v); +extern void glVertexAttribI4uivEXT(GLuint index, const GLuint *v); +extern void glVertexAttribI4bvEXT(GLuint index, const GLbyte *v); +extern void glVertexAttribI4svEXT(GLuint index, const GLshort *v); +extern void glVertexAttribI4ubvEXT(GLuint index, const GLubyte *v); +extern void glVertexAttribI4usvEXT(GLuint index, const GLushort *v); +extern void glVertexAttribIPointerEXT(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glGetVertexAttribIivEXT(GLuint index, GLenum pname, GLint *params); +extern void glGetVertexAttribIuivEXT(GLuint index, GLenum pname, GLuint *params); +extern void glUniform1uiEXT(GLint location, GLuint v0); +extern void glUniform2uiEXT(GLint location, GLuint v0, GLuint v1); +extern void glUniform3uiEXT(GLint location, GLuint v0, GLuint v1, GLuint v2); +extern void glUniform4uiEXT(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +extern void glUniform1uivEXT(GLint location, GLsizei count, const GLuint *value); +extern void glUniform2uivEXT(GLint location, GLsizei count, const GLuint *value); +extern void glUniform3uivEXT(GLint location, GLsizei count, const GLuint *value); +extern void glUniform4uivEXT(GLint location, GLsizei count, const GLuint *value); +extern void glGetUniformuivEXT(GLuint program, GLint location, GLuint *params); +extern void glBindFragDataLocationEXT(GLuint program, GLuint colorNumber, const GLchar *name); +extern GLint glGetFragDataLocationEXT(GLuint program, const GLchar *name); +#endif +#endif /* GL_EXT_gpu_shader4 */ + +#if GL_EXT_histogram +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glGetHistogramEXTProcPtr) (GLenum, GLboolean, GLenum, GLenum, GLvoid *); +typedef void (* glGetHistogramParameterfvEXTProcPtr) (GLenum, GLenum, GLfloat *); +typedef void (* glGetHistogramParameterivEXTProcPtr) (GLenum, GLenum, GLint *); +typedef void (* glGetMinmaxEXTProcPtr) (GLenum, GLboolean, GLenum, GLenum, GLvoid *); +typedef void (* glGetMinmaxParameterfvEXTProcPtr) (GLenum, GLenum, GLfloat *); +typedef void (* glGetMinmaxParameterivEXTProcPtr) (GLenum, GLenum, GLint *); +typedef void (* glHistogramEXTProcPtr) (GLenum, GLsizei, GLenum, GLboolean); +typedef void (* glMinmaxEXTProcPtr) (GLenum, GLenum, GLboolean); +typedef void (* glResetHistogramEXTProcPtr) (GLenum); +typedef void (* glResetMinmaxEXTProcPtr) (GLenum); +#else +extern void glGetHistogramEXT(GLenum, GLboolean, GLenum, GLenum, GLvoid *); +extern void glGetHistogramParameterfvEXT(GLenum, GLenum, GLfloat *); +extern void glGetHistogramParameterivEXT(GLenum, GLenum, GLint *); +extern void glGetMinmaxEXT(GLenum, GLboolean, GLenum, GLenum, GLvoid *); +extern void glGetMinmaxParameterfvEXT(GLenum, GLenum, GLfloat *); +extern void glGetMinmaxParameterivEXT(GLenum, GLenum, GLint *); +extern void glHistogramEXT(GLenum, GLsizei, GLenum, GLboolean); +extern void glMinmaxEXT(GLenum, GLenum, GLboolean); +extern void glResetHistogramEXT(GLenum); +extern void glResetMinmaxEXT(GLenum); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_multi_draw_arrays +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glMultiDrawArraysEXTProcPtr) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +typedef void (* glMultiDrawElementsEXTProcPtr) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount); +#else +extern void glMultiDrawArraysEXT(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +extern void glMultiDrawElementsEXT(GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_paletted_texture +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glColorTableEXTProcPtr) (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +typedef void (* glColorSubTableEXTProcPtr) (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +typedef void (* glGetColorTableEXTProcPtr) (GLenum, GLenum, GLenum, GLvoid *); +typedef void (* glGetColorTableParameterivEXTProcPtr) (GLenum, GLenum, GLint *); +typedef void (* glGetColorTableParameterfvEXTProcPtr) (GLenum, GLenum, GLfloat *); +#else +extern void glColorTableEXT(GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +extern void glColorSubTableEXT(GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +extern void glGetColorTableEXT(GLenum, GLenum, GLenum, GLvoid *); +extern void glGetColorTableParameterivEXT(GLenum, GLenum, GLint *); +extern void glGetColorTableParameterfvEXT(GLenum, GLenum, GLfloat *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_polygon_offset +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glPolygonOffsetEXTProcPtr) (GLfloat factor, GLfloat bias); +#else +extern void glPolygonOffsetEXT(GLfloat factor, GLfloat bias); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_provoking_vertex +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glProvokingVertexEXTProcPtr) (GLenum mode); +#else +extern void glProvokingVertexEXT(GLenum mode); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_secondary_color +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glSecondaryColor3bEXTProcPtr) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (* glSecondaryColor3bvEXTProcPtr) (const GLbyte *v); +typedef void (* glSecondaryColor3dEXTProcPtr) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (* glSecondaryColor3dvEXTProcPtr) (const GLdouble *v); +typedef void (* glSecondaryColor3fEXTProcPtr) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (* glSecondaryColor3fvEXTProcPtr) (const GLfloat *v); +typedef void (* glSecondaryColor3iEXTProcPtr) (GLint red, GLint green, GLint blue); +typedef void (* glSecondaryColor3ivEXTProcPtr) (const GLint *v); +typedef void (* glSecondaryColor3sEXTProcPtr) (GLshort red, GLshort green, GLshort blue); +typedef void (* glSecondaryColor3svEXTProcPtr) (const GLshort *v); +typedef void (* glSecondaryColor3ubEXTProcPtr) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (* glSecondaryColor3ubvEXTProcPtr) (const GLubyte *v); +typedef void (* glSecondaryColor3uiEXTProcPtr) (GLuint red, GLuint green, GLuint blue); +typedef void (* glSecondaryColor3uivEXTProcPtr) (const GLuint *v); +typedef void (* glSecondaryColor3usEXTProcPtr) (GLushort red, GLushort green, GLushort blue); +typedef void (* glSecondaryColor3usvEXTProcPtr) (const GLushort *v); +typedef void (* glSecondaryColorPointerEXTProcPtr) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +#else +extern void glSecondaryColor3bEXT(GLbyte red, GLbyte green, GLbyte blue); +extern void glSecondaryColor3bvEXT(const GLbyte *v); +extern void glSecondaryColor3dEXT(GLdouble red, GLdouble green, GLdouble blue); +extern void glSecondaryColor3dvEXT(const GLdouble *v); +extern void glSecondaryColor3fEXT(GLfloat red, GLfloat green, GLfloat blue); +extern void glSecondaryColor3fvEXT(const GLfloat *v); +extern void glSecondaryColor3iEXT(GLint red, GLint green, GLint blue); +extern void glSecondaryColor3ivEXT(const GLint *v); +extern void glSecondaryColor3sEXT(GLshort red, GLshort green, GLshort blue); +extern void glSecondaryColor3svEXT(const GLshort *v); +extern void glSecondaryColor3ubEXT(GLubyte red, GLubyte green, GLubyte blue); +extern void glSecondaryColor3ubvEXT(const GLubyte *v); +extern void glSecondaryColor3uiEXT(GLuint red, GLuint green, GLuint blue); +extern void glSecondaryColor3uivEXT(const GLuint *v); +extern void glSecondaryColor3usEXT(GLushort red, GLushort green, GLushort blue); +extern void glSecondaryColor3usvEXT(const GLushort *v); +extern void glSecondaryColorPointerEXT(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_stencil_two_side +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glActiveStencilFaceEXTProcPtr) (GLenum face); +#else +extern void glActiveStencilFaceEXT(GLenum face); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_subtexture +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glTexSubImage1DEXTProcPtr) (GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *); +typedef void (* glTexSubImage2DEXTProcPtr) (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#else +extern void glTexSubImage1DEXT(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *); +extern void glTexSubImage2DEXT(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_texture3D +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glTexImage3DEXTProcPtr) (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +typedef void (* glTexSubImage3DEXTProcPtr) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#else +extern void glTexImage3DEXT(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +extern void glTexSubImage3DEXT(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_texture_integer +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (*glClearColorIiEXTProcPtr) ( GLint r, GLint g, GLint b, GLint a ); +typedef void (*glClearColorIuiEXTProcPtr) ( GLuint r, GLuint g, GLuint b, GLuint a ); +typedef void (*glTexParameterIivEXTProcPtr)( GLenum target, GLenum pname, GLint *params ); +typedef void (*glTexParameterIuivEXTProcPtr)( GLenum target, GLenum pname, GLuint *params ); +typedef void (*glGetTexParameterIivEXTProcPtr) ( GLenum target, GLenum pname, GLint *params); +typedef void (*glGetTexParameterIuivEXTProcPtr) ( GLenum target, GLenum pname, GLuint *params); +#else +extern void glClearColorIiEXT( GLint r, GLint g, GLint b, GLint a ); +extern void glClearColorIuiEXT( GLuint r, GLuint g, GLuint b, GLuint a ); +extern void glTexParameterIivEXT( GLenum target, GLenum pname, GLint *params ); +extern void glTexParameterIuivEXT( GLenum target, GLenum pname, GLuint *params ); +extern void glGetTexParameterIivEXT( GLenum target, GLenum pname, GLint *params); +extern void glGetTexParameterIuivEXT( GLenum target, GLenum pname, GLuint *params); +#endif +#endif /* GL_EXT_texture_integer */ + +#if GL_EXT_texture_object +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef GLboolean (* glAreTexturesResidentEXTProcPtr) (GLsizei, const GLuint *, GLboolean *); +typedef void (* glBindTextureEXTProcPtr) (GLenum, GLuint); +typedef void (* glDeleteTexturesEXTProcPtr) (GLsizei, const GLuint *); +typedef void (* glGenTexturesEXTProcPtr) (GLsizei, GLuint *); +typedef GLboolean (* glIsTextureEXTProcPtr) (GLuint); +typedef void (* glPrioritizeTexturesEXTProcPtr) (GLsizei, const GLuint *, const GLclampf *); +#else +extern GLboolean glAreTexturesResidentEXT(GLsizei, const GLuint *, GLboolean *); +extern void glBindTextureEXT(GLenum, GLuint); +extern void glDeleteTexturesEXT(GLsizei, const GLuint *); +extern void glGenTexturesEXT(GLsizei, GLuint *); +extern GLboolean glIsTextureEXT(GLuint); +extern void glPrioritizeTexturesEXT(GLsizei, const GLuint *, const GLclampf *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_timer_query +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glGetQueryObjecti64vEXTProcPtr)(GLuint id, GLenum pname, GLint64EXT *params); +typedef void (* glGetQueryObjectui64vEXTProcPtr)(GLuint id, GLenum pname, GLuint64EXT *params); +#else +extern void glGetQueryObjecti64vEXT(GLuint id, GLenum pname, GLint64EXT *params); +extern void glGetQueryObjectui64vEXT(GLuint id, GLenum pname, GLuint64EXT *params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_transform_feedback +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBindBufferRangeEXTProcPtr) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (* glBindBufferOffsetEXTProcPtr) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); +typedef void (* glBindBufferBaseEXTProcPtr) (GLenum target, GLuint index, GLuint buffer); +typedef void (* glBeginTransformFeedbackEXTProcPtr) (GLenum primitiveMode); +typedef void (* glEndTransformFeedbackEXTProcPtr) (void); +typedef void (* glTransformFeedbackVaryingsEXTProcPtr) (GLuint program, GLsizei count, const GLchar* const *varyings, GLenum bufferMode); +typedef void (* glGetTransformFeedbackVaryingEXTProcPtr) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +#else +extern void glBindBufferRangeEXT(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +extern void glBindBufferOffsetEXT(GLenum target, GLuint index, GLuint buffer, GLintptr offset); +extern void glBindBufferBaseEXT(GLenum target, GLuint index, GLuint buffer); +extern void glBeginTransformFeedbackEXT(GLenum primitiveMode); +extern void glEndTransformFeedbackEXT(void); +extern void glTransformFeedbackVaryingsEXT(GLuint program, GLsizei count, const GLchar* const *varyings, GLenum bufferMode); +extern void glGetTransformFeedbackVaryingEXT(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +#endif +#endif /* GL_EXT_transform_feedback */ + +#if GL_EXT_transform_feedback || GL_EXT_draw_buffers2 +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glGetIntegerIndexedvEXTProcPtr) (GLenum param, GLint index, GLint *values); +typedef void (* glGetBooleanIndexedvEXTProcPtr) (GLenum param, GLint index, GLboolean *values); +#else +extern void glGetIntegerIndexedvEXT(GLenum param, GLuint index, GLint *values); +extern void glGetBooleanIndexedvEXT(GLenum param, GLuint index, GLboolean *values); +#endif +#endif /* GL_EXT_transform_feedback || GL_EXT_draw_buffers2 */ + +#if GL_EXT_vertex_array +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glArrayElementEXTProcPtr) (GLint); +typedef void (* glColorPointerEXTProcPtr) (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +typedef void (* glDrawArraysEXTProcPtr) (GLenum, GLint, GLsizei); +typedef void (* glEdgeFlagPointerEXTProcPtr) (GLsizei, GLsizei, const GLvoid *); +typedef void (* glGetPointervEXTProcPtr) (GLenum, GLvoid **); +typedef void (* glIndexPointerEXTProcPtr) (GLenum, GLsizei, GLsizei, const GLvoid *); +typedef void (* glNormalPointerEXTProcPtr) (GLenum, GLsizei, GLsizei, const GLvoid *); +typedef void (* glTexCoordPointerEXTProcPtr) (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +typedef void (* glVertexPointerEXTProcPtr) (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +#else +extern void glArrayElementEXT(GLint); +extern void glColorPointerEXT(GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +extern void glDrawArraysEXT(GLenum, GLint, GLsizei); +extern void glEdgeFlagPointerEXT(GLsizei, GLsizei, const GLvoid *); +extern void glGetPointervEXT(GLenum, GLvoid **); +extern void glIndexPointerEXT(GLenum, GLsizei, GLsizei, const GLvoid *); +extern void glNormalPointerEXT(GLenum, GLsizei, GLsizei, const GLvoid *); +extern void glTexCoordPointerEXT(GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +extern void glVertexPointerEXT(GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_element_array +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glElementPointerAPPLEProcPtr) (GLenum type, const GLvoid *pointer); +typedef void (* glDrawElementArrayAPPLEProcPtr) (GLenum mode, GLint first, GLsizei count); +typedef void (* glDrawRangeElementArrayAPPLEProcPtr) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); +typedef void (* glMultiDrawElementArrayAPPLEProcPtr) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +typedef void (* glMultiDrawRangeElementArrayAPPLEProcPtr) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); +#else +extern void glElementPointerAPPLE(GLenum type, const GLvoid *pointer); +extern void glDrawElementArrayAPPLE(GLenum mode, GLint first, GLsizei count); +extern void glDrawRangeElementArrayAPPLE(GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); +extern void glMultiDrawElementArrayAPPLE(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +extern void glMultiDrawRangeElementArrayAPPLE(GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_fence +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glGenFencesAPPLEProcPtr) (GLsizei n, GLuint *fences); +typedef void (* glDeleteFencesAPPLEProcPtr) (GLsizei n, const GLuint *fences); +typedef void (* glSetFenceAPPLEProcPtr) (GLuint fence); +typedef GLboolean (* glIsFenceAPPLEProcPtr) (GLuint fence); +typedef GLboolean (* glTestFenceAPPLEProcPtr) (GLuint fence); +typedef void (* glFinishFenceAPPLEProcPtr) (GLuint fence); +typedef GLboolean (* glTestObjectAPPLEProcPtr) (GLenum object, GLuint name); +typedef void (* glFinishObjectAPPLEProcPtr) (GLenum object, GLuint name); +#else +extern void glGenFencesAPPLE(GLsizei n, GLuint *fences); +extern void glDeleteFencesAPPLE(GLsizei n, const GLuint *fences); +extern void glSetFenceAPPLE(GLuint fence); +extern GLboolean glIsFenceAPPLE(GLuint fence); +extern GLboolean glTestFenceAPPLE(GLuint fence); +extern void glFinishFenceAPPLE(GLuint fence); +extern GLboolean glTestObjectAPPLE(GLenum object, GLuint name); +extern void glFinishObjectAPPLE(GLenum object, GLuint name); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_flush_buffer_range +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBufferParameteriAPPLEProcPtr) (GLenum target, GLenum pname, GLint param); +typedef void (* glFlushMappedBufferRangeAPPLEProcPtr) (GLenum target, GLintptr offset, GLsizeiptr size); +#else +extern void glBufferParameteriAPPLE(GLenum target, GLenum pname, GLint param); +extern void glFlushMappedBufferRangeAPPLE(GLenum target, GLintptr offset, GLsizeiptr size); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_flush_render +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glFlushRenderAPPLEProcPtr) (void); +typedef void (* glFinishRenderAPPLEProcPtr) (void); +typedef void (* glSwapAPPLEProcPtr) (void); +#else +extern void glFlushRenderAPPLE(void); +extern void glFinishRenderAPPLE(void); +extern void glSwapAPPLE(void); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_object_purgeable +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef GLenum (* glObjectPurgeableAPPLEProcPtr) (GLenum objectType, GLuint name, GLenum option); +typedef GLenum (* glObjectUnpurgeableAPPLEProcPtr) (GLenum objectType, GLuint name, GLenum option); +typedef void (* glGetObjectParameterivAPPLEProcPtr) (GLenum objectType, GLuint name, GLenum pname, GLint *params); +#else +extern GLenum glObjectPurgeableAPPLE(GLenum objectType, GLuint name, GLenum option); +extern GLenum glObjectUnpurgeableAPPLE(GLenum objectType, GLuint name, GLenum option); +extern void glGetObjectParameterivAPPLE(GLenum objectType, GLuint name, GLenum pname, GLint *params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_texture_range +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glTextureRangeAPPLEProcPtr) (GLenum target, GLsizei length, const GLvoid *pointer); +typedef void (* glGetTexParameterPointervAPPLEProcPtr) (GLenum target, GLenum pname, GLvoid **params); +#else +extern void glTextureRangeAPPLE(GLenum target, GLsizei length, const GLvoid *pointer); +extern void glGetTexParameterPointervAPPLE(GLenum target, GLenum pname, GLvoid **params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_vertex_array_object +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBindVertexArrayAPPLEProcPtr) (GLuint id); +typedef void (* glDeleteVertexArraysAPPLEProcPtr) (GLsizei n, const GLuint *ids); +typedef void (* glGenVertexArraysAPPLEProcPtr) (GLsizei n, GLuint *ids); +typedef GLboolean (* glIsVertexArrayAPPLEProcPtr) (GLuint id); +#else +extern void glBindVertexArrayAPPLE(GLuint id); +extern void glDeleteVertexArraysAPPLE(GLsizei n, const GLuint *ids); +extern void glGenVertexArraysAPPLE(GLsizei n, GLuint *ids); +extern GLboolean glIsVertexArrayAPPLE(GLuint id); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_vertex_array_range +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glVertexArrayRangeAPPLEProcPtr) (GLsizei length, const GLvoid *pointer); +typedef void (* glFlushVertexArrayRangeAPPLEProcPtr) (GLsizei length, const GLvoid *pointer); +typedef void (* glVertexArrayParameteriAPPLEProcPtr) (GLenum pname, GLint param); +#else +extern void glVertexArrayRangeAPPLE(GLsizei length, const GLvoid *pointer); +extern void glFlushVertexArrayRangeAPPLE(GLsizei length, const GLvoid *pointer); +extern void glVertexArrayParameteriAPPLE(GLenum pname, GLint param); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_vertex_point_size +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glPointSizePointerAPPLEProcPtr) (GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glVertexPointSizefAPPLEProcPtr) (GLfloat size); +#else +extern void glPointSizePointerAPPLE(GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glVertexPointSizefAPPLE(GLfloat size); +#endif +#endif + +#if GL_APPLE_vertex_program_evaluators +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glEnableVertexAttribAPPLEProcPtr) (GLuint index, GLenum pname); +typedef void (* glDisableVertexAttribAPPLEProcPtr) (GLuint index, GLenum pname); +typedef GLboolean (* glIsVertexAttribEnabledAPPLEProcPtr) (GLuint index, GLenum pname); +typedef void (* glMapVertexAttrib1dAPPLEProcPtr) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +typedef void (* glMapVertexAttrib1fAPPLEProcPtr) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +typedef void (* glMapVertexAttrib2dAPPLEProcPtr) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +typedef void (* glMapVertexAttrib2fAPPLEProcPtr) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +#else +extern void glEnableVertexAttribAPPLE(GLuint index, GLenum pname); +extern void glDisableVertexAttribAPPLE(GLuint index, GLenum pname); +extern GLboolean glIsVertexAttribEnabledAPPLE(GLuint index, GLenum pname); +extern void glMapVertexAttrib1dAPPLE(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +extern void glMapVertexAttrib1fAPPLE(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +extern void glMapVertexAttrib2dAPPLE(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +extern void glMapVertexAttrib2fAPPLE(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ATI_blend_equation_separate +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBlendEquationSeparateATIProcPtr) (GLenum equationRGB, GLenum equationAlpha); +#else +extern void glBlendEquationSeparateATI(GLenum equationRGB, GLenum equationAlpha); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ATI_pn_triangles +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glPNTrianglesiATIProcPtr) (GLenum pname, GLint param); +typedef void (* glPNTrianglesfATIProcPtr) (GLenum pname, GLfloat param); +#else +extern void glPNTrianglesiATI(GLenum pname, GLint param); +extern void glPNTrianglesfATI(GLenum pname, GLfloat param); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ATI_separate_stencil +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glStencilOpSeparateATIProcPtr) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void (* glStencilFuncSeparateATIProcPtr) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +#else +extern void glStencilOpSeparateATI(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +extern void glStencilFuncSeparateATI(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ATIX_pn_triangles +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glPNTrianglesiATIXProcPtr) (GLenum pname, GLint param); +typedef void (* glPNTrianglesfATIXProcPtr) (GLenum pname, GLfloat param); +#else +extern void glPNTrianglesiATIX(GLenum pname, GLint param); +extern void glPNTrianglesfATIX(GLenum pname, GLfloat param); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_NV_conditional_render +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBeginConditionalRenderNVProcPtr) (GLuint id, GLenum mode); +typedef void (* glEndConditionalRenderNVProcPtr) (void); +#else +extern void glBeginConditionalRenderNV(GLuint id, GLenum mode); +extern void glEndConditionalRenderNV(void); +#endif +#endif + +#if GL_NV_point_sprite +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glPointParameteriNVProcPtr) (GLenum pname, GLint param); +typedef void (* glPointParameterivNVProcPtr) (GLenum pname, const GLint *params); +#else +extern void glPointParameteriNV(GLenum pname, GLint param); +extern void glPointParameterivNV(GLenum pname, const GLint *params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_NV_register_combiners +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glCombinerParameterfvNVProcPtr) (GLenum, const GLfloat *); +typedef void (* glCombinerParameterfNVProcPtr) (GLenum, GLfloat); +typedef void (* glCombinerParameterivNVProcPtr) (GLenum, const GLint *); +typedef void (* glCombinerParameteriNVProcPtr) (GLenum, GLint); +typedef void (* glCombinerInputNVProcPtr) (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum); +typedef void (* glCombinerOutputNVProcPtr) (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLboolean, GLboolean, GLboolean); +typedef void (* glFinalCombinerInputNVProcPtr) (GLenum, GLenum, GLenum, GLenum); +typedef void (* glGetCombinerInputParameterfvNVProcPtr) (GLenum, GLenum, GLenum, GLenum, GLfloat *); +typedef void (* glGetCombinerInputParameterivNVProcPtr) (GLenum, GLenum, GLenum, GLenum, GLint *); +typedef void (* glGetCombinerOutputParameterfvNVProcPtr) (GLenum, GLenum, GLenum, GLfloat *); +typedef void (* glGetCombinerOutputParameterivNVProcPtr) (GLenum, GLenum, GLenum, GLint *); +typedef void (* glGetFinalCombinerInputParameterfvNVProcPtr) (GLenum, GLenum, GLfloat *); +typedef void (* glGetFinalCombinerInputParameterivNVProcPtr) (GLenum, GLenum, GLint *); +#else +extern void glCombinerParameterfvNV (GLenum, const GLfloat *); +extern void glCombinerParameterfNV (GLenum, GLfloat); +extern void glCombinerParameterivNV (GLenum, const GLint *); +extern void glCombinerParameteriNV (GLenum, GLint); +extern void glCombinerInputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum); +extern void glCombinerOutputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLboolean, GLboolean, GLboolean); +extern void glFinalCombinerInputNV (GLenum, GLenum, GLenum, GLenum); +extern void glGetCombinerInputParameterfvNV (GLenum, GLenum, GLenum, GLenum, GLfloat *); +extern void glGetCombinerInputParameterivNV (GLenum, GLenum, GLenum, GLenum, GLint *); +extern void glGetCombinerOutputParameterfvNV (GLenum, GLenum, GLenum, GLfloat *); +extern void glGetCombinerOutputParameterivNV (GLenum, GLenum, GLenum, GLint *); +extern void glGetFinalCombinerInputParameterfvNV (GLenum, GLenum, GLfloat *); +extern void glGetFinalCombinerInputParameterivNV (GLenum, GLenum, GLint *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_NV_register_combiners2 +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glCombinerStageParameterfvNVProcPtr) (GLenum, GLenum, const GLfloat *); +typedef void (* glGetCombinerStageParameterfvNVProcPtr) (GLenum, GLenum, GLfloat *); +#else +extern void glCombinerStageParameterfvNV (GLenum, GLenum, const GLfloat *); +extern void glGetCombinerStageParameterfvNV (GLenum, GLenum, GLfloat *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_NV_texture_barrier +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glTextureBarrierNVProcPtr) (void); +#else +extern void glTextureBarrierNV (void); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_NV_vertex_array_range +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glFlushVertexArrayRangeNVProcPtr) (void); +typedef void (* glVertexArrayRangeNVProcPtr) (GLsizei, const GLvoid *); +#else +extern void glFlushVertexArrayRangeNV (void); +extern void glVertexArrayRangeNV (GLsizei, const GLvoid *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_NV_vertex_program +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBindProgramNVProcPtr) (GLenum target, GLuint id); +typedef void (* glDeleteProgramsNVProcPtr) (GLsizei n, const GLuint *ids); +typedef void (* glExecuteProgramNVProcPtr) (GLenum target, GLuint id, const GLfloat *params); +typedef void (* glGenProgramsNVProcPtr) (GLsizei n, GLuint *ids); +typedef GLboolean (* glAreProgramsResidentNVProcPtr) (GLsizei n, const GLuint *ids, GLboolean *residences); +typedef void (* glRequestResidentProgramsNVProcPtr) (GLsizei n, GLuint *ids); +typedef void (* glGetProgramParameterfvNVProcPtr) (GLenum target, GLuint index, GLenum pname, GLfloat *params); +typedef void (* glGetProgramParameterdvNVProcPtr) (GLenum target, GLuint index, GLenum pname, GLdouble *params); +typedef void (* glGetProgramivNVProcPtr) (GLuint id, GLenum pname, GLint *params); +typedef void (* glGetProgramStringNVProcPtr) (GLuint id, GLenum pname, GLubyte *program); +typedef void (* glGetTrackMatrixivNVProcPtr) (GLenum target, GLuint address, GLenum pname, GLint *params); +typedef void (* glGetVertexAttribdvNVProcPtr) (GLuint index, GLenum pname, GLdouble *params); +typedef void (* glGetVertexAttribfvNVProcPtr) (GLuint index, GLenum pname, GLfloat *params); +typedef void (* glGetVertexAttribivNVProcPtr) (GLuint index, GLenum pname, GLint *params); +typedef void (* glGetVertexAttribPointervNVProcPtr) (GLuint index, GLenum pname, GLvoid **pointer); +typedef GLboolean (* glIsProgramNVProcPtr) (GLuint id); +typedef void (* glLoadProgramNVProcPtr) (GLenum target, GLuint id, GLsizei len, const GLubyte *program); +typedef void (* glProgramParameter4fNVProcPtr) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glProgramParameter4dNVProcPtr) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glProgramParameter4dvNVProcPtr) (GLenum target, GLuint index, const GLdouble *params); +typedef void (* glProgramParameter4fvNVProcPtr) (GLenum target, GLuint index, const GLfloat *params); +typedef void (* glProgramParameters4dvNVProcPtr) (GLenum target, GLuint index, GLuint num, const GLdouble *params); +typedef void (* glProgramParameters4fvNVProcPtr) (GLenum target, GLuint index, GLuint num, const GLfloat *params); +typedef void (* glTrackMatrixNVProcPtr) (GLenum target, GLuint address, GLenum matrix, GLenum transform); +typedef void (* glVertexAttribPointerNVProcPtr) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glVertexAttrib1sNVProcPtr) (GLuint index, GLshort x); +typedef void (* glVertexAttrib1fNVProcPtr) (GLuint index, GLfloat x); +typedef void (* glVertexAttrib1dNVProcPtr) (GLuint index, GLdouble x); +typedef void (* glVertexAttrib2sNVProcPtr) (GLuint index, GLshort x, GLshort y); +typedef void (* glVertexAttrib2fNVProcPtr) (GLuint index, GLfloat x, GLfloat y); +typedef void (* glVertexAttrib2dNVProcPtr) (GLuint index, GLdouble x, GLdouble y); +typedef void (* glVertexAttrib3sNVProcPtr) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (* glVertexAttrib3fNVProcPtr) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (* glVertexAttrib3dNVProcPtr) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (* glVertexAttrib4sNVProcPtr) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (* glVertexAttrib4fNVProcPtr) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glVertexAttrib4dNVProcPtr) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glVertexAttrib4ubNVProcPtr) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (* glVertexAttrib1svNVProcPtr) (GLuint index, GLshort *v); +typedef void (* glVertexAttrib1fvNVProcPtr) (GLuint index, GLfloat *v); +typedef void (* glVertexAttrib1dvNVProcPtr) (GLuint index, GLdouble *v); +typedef void (* glVertexAttrib2svNVProcPtr) (GLuint index, GLshort *v); +typedef void (* glVertexAttrib2fvNVProcPtr) (GLuint index, GLfloat *v); +typedef void (* glVertexAttrib2dvNVProcPtr) (GLuint index, GLdouble *v); +typedef void (* glVertexAttrib3svNVProcPtr) (GLuint index, GLshort *v); +typedef void (* glVertexAttrib3fvNVProcPtr) (GLuint index, GLfloat *v); +typedef void (* glVertexAttrib3dvNVProcPtr) (GLuint index, GLdouble *v); +typedef void (* glVertexAttrib4svNVProcPtr) (GLuint index, GLshort *v); +typedef void (* glVertexAttrib4fvNVProcPtr) (GLuint index, GLfloat *v); +typedef void (* glVertexAttrib4dvNVProcPtr) (GLuint index, GLdouble *v); +typedef void (* glVertexAttrib4ubvNVProcPtr) (GLuint index, GLubyte *v); +typedef void (* glVertexAttribs1svNVProcPtr) (GLuint index, GLsizei n, GLshort *v); +typedef void (* glVertexAttribs1fvNVProcPtr) (GLuint index, GLsizei n, GLfloat *v); +typedef void (* glVertexAttribs1dvNVProcPtr) (GLuint index, GLsizei n, GLdouble *v); +typedef void (* glVertexAttribs2svNVProcPtr) (GLuint index, GLsizei n, GLshort *v); +typedef void (* glVertexAttribs2fvNVProcPtr) (GLuint index, GLsizei n, GLfloat *v); +typedef void (* glVertexAttribs2dvNVProcPtr) (GLuint index, GLsizei n, GLdouble *v); +typedef void (* glVertexAttribs3svNVProcPtr) (GLuint index, GLsizei n, GLshort *v); +typedef void (* glVertexAttribs3fvNVProcPtr) (GLuint index, GLsizei n, GLfloat *v); +typedef void (* glVertexAttribs3dvNVProcPtr) (GLuint index, GLsizei n, GLdouble *v); +typedef void (* glVertexAttribs4svNVProcPtr) (GLuint index, GLsizei n, GLshort *v); +typedef void (* glVertexAttribs4fvNVProcPtr) (GLuint index, GLsizei n, GLfloat *v); +typedef void (* glVertexAttribs4dvNVProcPtr) (GLuint index, GLsizei n, GLdouble *v); +typedef void (* glVertexAttribs4ubvNVProcPtr) (GLuint index, GLsizei n, GLubyte *v); +#else +extern void glBindProgramNV(GLenum target, GLuint id); +extern void glDeleteProgramsNV(GLsizei n, const GLuint *ids); +extern void glExecuteProgramNV(GLenum target, GLuint id, const GLfloat *params); +extern void glGenProgramsNV(GLsizei n, GLuint *ids); +extern GLboolean glAreProgramsResidentNV(GLsizei n, const GLuint *ids, GLboolean *residences); +extern void glRequestResidentProgramsNV(GLsizei n, GLuint *ids); +extern void glGetProgramParameterfvNV(GLenum target, GLuint index, GLenum pname, GLfloat *params); +extern void glGetProgramParameterdvNV(GLenum target, GLuint index, GLenum pname, GLdouble *params); +extern void glGetProgramivNV(GLuint id, GLenum pname, GLint *params); +extern void glGetProgramStringNV(GLuint id, GLenum pname, GLubyte *program); +extern void glGetTrackMatrixivNV(GLenum target, GLuint address, GLenum pname, GLint *params); +extern void glGetVertexAttribdvNV(GLuint index, GLenum pname, GLdouble *params); +extern void glGetVertexAttribfvNV(GLuint index, GLenum pname, GLfloat *params); +extern void glGetVertexAttribivNV(GLuint index, GLenum pname, GLint *params); +extern void glGetVertexAttribPointervNV(GLuint index, GLenum pname, GLvoid **pointer); +extern GLboolean glIsProgramNV(GLuint id); +extern void glLoadProgramNV(GLenum target, GLuint id, GLsizei len, const GLubyte *program); +extern void glProgramParameter4fNV(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glProgramParameter4dNV(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glProgramParameter4dvNV(GLenum target, GLuint index, const GLdouble *params); +extern void glProgramParameter4fvNV(GLenum target, GLuint index, const GLfloat *params); +extern void glProgramParameters4dvNV(GLenum target, GLuint index, GLuint num, const GLdouble *params); +extern void glProgramParameters4fvNV(GLenum target, GLuint index, GLuint num, const GLfloat *params); +extern void glTrackMatrixNV(GLenum target, GLuint address, GLenum matrix, GLenum transform); +extern void glVertexAttribPointerNV(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glVertexAttrib1sNV(GLuint index, GLshort x); +extern void glVertexAttrib1fNV(GLuint index, GLfloat x); +extern void glVertexAttrib1dNV(GLuint index, GLdouble x); +extern void glVertexAttrib2sNV(GLuint index, GLshort x, GLshort y); +extern void glVertexAttrib2fNV(GLuint index, GLfloat x, GLfloat y); +extern void glVertexAttrib2dNV(GLuint index, GLdouble x, GLdouble y); +extern void glVertexAttrib3sNV(GLuint index, GLshort x, GLshort y, GLshort z); +extern void glVertexAttrib3fNV(GLuint index, GLfloat x, GLfloat y, GLfloat z); +extern void glVertexAttrib3dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z); +extern void glVertexAttrib4sNV(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +extern void glVertexAttrib4fNV(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glVertexAttrib4dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glVertexAttrib4ubNV(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +extern void glVertexAttrib1svNV(GLuint index, GLshort *v); +extern void glVertexAttrib1fvNV(GLuint index, GLfloat *v); +extern void glVertexAttrib1dvNV(GLuint index, GLdouble *v); +extern void glVertexAttrib2svNV(GLuint index, GLshort *v); +extern void glVertexAttrib2fvNV(GLuint index, GLfloat *v); +extern void glVertexAttrib2dvNV(GLuint index, GLdouble *v); +extern void glVertexAttrib3svNV(GLuint index, GLshort *v); +extern void glVertexAttrib3fvNV(GLuint index, GLfloat *v); +extern void glVertexAttrib3dvNV(GLuint index, GLdouble *v); +extern void glVertexAttrib4svNV(GLuint index, GLshort *v); +extern void glVertexAttrib4fvNV(GLuint index, GLfloat *v); +extern void glVertexAttrib4dvNV(GLuint index, GLdouble *v); +extern void glVertexAttrib4ubvNV(GLuint index, GLubyte *v); +extern void glVertexAttribs1svNV(GLuint index, GLsizei n, GLshort *v); +extern void glVertexAttribs1fvNV(GLuint index, GLsizei n, GLfloat *v); +extern void glVertexAttribs1dvNV(GLuint index, GLsizei n, GLdouble *v); +extern void glVertexAttribs2svNV(GLuint index, GLsizei n, GLshort *v); +extern void glVertexAttribs2fvNV(GLuint index, GLsizei n, GLfloat *v); +extern void glVertexAttribs2dvNV(GLuint index, GLsizei n, GLdouble *v); +extern void glVertexAttribs3svNV(GLuint index, GLsizei n, GLshort *v); +extern void glVertexAttribs3fvNV(GLuint index, GLsizei n, GLfloat *v); +extern void glVertexAttribs3dvNV(GLuint index, GLsizei n, GLdouble *v); +extern void glVertexAttribs4svNV(GLuint index, GLsizei n, GLshort *v); +extern void glVertexAttribs4fvNV(GLuint index, GLsizei n, GLfloat *v); +extern void glVertexAttribs4dvNV(GLuint index, GLsizei n, GLdouble *v); +extern void glVertexAttribs4ubvNV(GLuint index, GLsizei n, GLubyte *v); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_SGI_color_table +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glColorTableSGIProcPtr) (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +typedef void (* glColorTableParameterfvSGIProcPtr) (GLenum, GLenum, const GLfloat *); +typedef void (* glColorTableParameterivSGIProcPtr) (GLenum, GLenum, const GLint *); +typedef void (* glCopyColorTableSGIProcPtr) (GLenum, GLenum, GLint, GLint, GLsizei); +typedef void (* glGetColorTableSGIProcPtr) (GLenum, GLenum, GLenum, GLvoid *); +typedef void (* glGetColorTableParameterfvSGIProcPtr) (GLenum, GLenum, GLfloat *); +typedef void (* glGetColorTableParameterivSGIProcPtr) (GLenum, GLenum, GLint *); +#else +extern void glColorTableSGI (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +extern void glColorTableParameterfvSGI (GLenum, GLenum, const GLfloat *); +extern void glColorTableParameterivSGI (GLenum, GLenum, const GLint *); +extern void glCopyColorTableSGI (GLenum, GLenum, GLint, GLint, GLsizei); +extern void glGetColorTableSGI (GLenum, GLenum, GLenum, GLvoid *); +extern void glGetColorTableParameterfvSGI (GLenum, GLenum, GLfloat *); +extern void glGetColorTableParameterivSGI (GLenum, GLenum, GLint *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gliContext.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gliContext.h" new file mode 100644 index 0000000..363bbd1 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gliContext.h" @@ -0,0 +1,25 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _GLICONTEXT_H +#define _GLICONTEXT_H + +#ifdef __cplusplus +extern "C" { +#endif + + +/* +** GL context data type +*/ +typedef struct __GLIContextRec *GLIContext; +typedef struct __GLISharedRec *GLIShared; + + +#ifdef __cplusplus +} +#endif + +#endif /* _GLICONTEXT_H */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gliDispatch.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gliDispatch.h" new file mode 100644 index 0000000..2e216e2 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gliDispatch.h" @@ -0,0 +1,1108 @@ +/* + Copyright: (c) 1999-2013 Apple Inc. All rights reserved. +*/ + +#ifndef _GLIDISPATCH_H +#define _GLIDISPATCH_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/* +** GL function dispatch table type +*/ +typedef struct __GLIFunctionDispatchRec +{ + void (*accum)(GLIContext ctx, GLenum op, GLfloat value); + void (*alpha_func)(GLIContext ctx, GLenum func, GLclampf ref); + GLboolean (*are_textures_resident)(GLIContext ctx, GLsizei n, const GLuint *textures, GLboolean *residences); + void (*array_element)(GLIContext ctx, GLint i); + void (*begin)(GLIContext ctx, GLenum mode); + void (*bind_texture)(GLIContext ctx, GLenum target, GLuint texture); + void (*bitmap)(GLIContext ctx, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); + void (*blend_func)(GLIContext ctx, GLenum sfactor, GLenum dfactor); + void (*call_list)(GLIContext ctx, GLuint list); + void (*call_lists)(GLIContext ctx, GLsizei n, GLenum type, const GLvoid *lists); + void (*clear)(GLIContext ctx, GLbitfield mask); + void (*clear_accum)(GLIContext ctx, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); + void (*clear_color)(GLIContext ctx, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); + void (*clear_depth)(GLIContext ctx, GLclampd depth); + void (*clear_index)(GLIContext ctx, GLfloat c); + void (*clear_stencil)(GLIContext ctx, GLint s); + void (*clip_plane)(GLIContext ctx, GLenum plane, const GLdouble *equation); + void (*color3b)(GLIContext ctx, GLbyte red, GLbyte green, GLbyte blue); + void (*color3bv)(GLIContext ctx, const GLbyte *v); + void (*color3d)(GLIContext ctx, GLdouble red, GLdouble green, GLdouble blue); + void (*color3dv)(GLIContext ctx, const GLdouble *v); + void (*color3f)(GLIContext ctx, GLfloat red, GLfloat green, GLfloat blue); + void (*color3fv)(GLIContext ctx, const GLfloat *v); + void (*color3i)(GLIContext ctx, GLint red, GLint green, GLint blue); + void (*color3iv)(GLIContext ctx, const GLint *v); + void (*color3s)(GLIContext ctx, GLshort red, GLshort green, GLshort blue); + void (*color3sv)(GLIContext ctx, const GLshort *v); + void (*color3ub)(GLIContext ctx, GLubyte red, GLubyte green, GLubyte blue); + void (*color3ubv)(GLIContext ctx, const GLubyte *v); + void (*color3ui)(GLIContext ctx, GLuint red, GLuint green, GLuint blue); + void (*color3uiv)(GLIContext ctx, const GLuint *v); + void (*color3us)(GLIContext ctx, GLushort red, GLushort green, GLushort blue); + void (*color3usv)(GLIContext ctx, const GLushort *v); + void (*color4b)(GLIContext ctx, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); + void (*color4bv)(GLIContext ctx, const GLbyte *v); + void (*color4d)(GLIContext ctx, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); + void (*color4dv)(GLIContext ctx, const GLdouble *v); + void (*color4f)(GLIContext ctx, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); + void (*color4fv)(GLIContext ctx, const GLfloat *v); + void (*color4i)(GLIContext ctx, GLint red, GLint green, GLint blue, GLint alpha); + void (*color4iv)(GLIContext ctx, const GLint *v); + void (*color4s)(GLIContext ctx, GLshort red, GLshort green, GLshort blue, GLshort alpha); + void (*color4sv)(GLIContext ctx, const GLshort *v); + void (*color4ub)(GLIContext ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); + void (*color4ubv)(GLIContext ctx, const GLubyte *v); + void (*color4ui)(GLIContext ctx, GLuint red, GLuint green, GLuint blue, GLuint alpha); + void (*color4uiv)(GLIContext ctx, const GLuint *v); + void (*color4us)(GLIContext ctx, GLushort red, GLushort green, GLushort blue, GLushort alpha); + void (*color4usv)(GLIContext ctx, const GLushort *v); + void (*color_mask)(GLIContext ctx, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); + void (*color_material)(GLIContext ctx, GLenum face, GLenum mode); + void (*color_pointer)(GLIContext ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*copy_pixels)(GLIContext ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); + void (*copy_tex_image1D)(GLIContext ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); + void (*copy_tex_image2D)(GLIContext ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); + void (*copy_tex_sub_image1D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); + void (*copy_tex_sub_image2D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); + void (*cull_face)(GLIContext ctx, GLenum mode); + void (*delete_lists)(GLIContext ctx, GLuint list, GLsizei range); + void (*delete_textures)(GLIContext ctx, GLsizei n, const GLuint *textures); + void (*depth_func)(GLIContext ctx, GLenum func); + void (*depth_mask)(GLIContext ctx, GLboolean flag); + void (*depth_range)(GLIContext ctx, GLclampd zNear, GLclampd zFar); + void (*disable)(GLIContext ctx, GLenum cap); + void (*disable_client_state)(GLIContext ctx, GLenum array); + void (*draw_arrays)(GLIContext ctx, GLenum mode, GLint first, GLsizei count); + void (*draw_buffer)(GLIContext ctx, GLenum mode); + void (*draw_elements)(GLIContext ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); + void (*draw_pixels)(GLIContext ctx, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); + void (*edge_flag)(GLIContext ctx, GLboolean flag); + void (*edge_flag_pointer)(GLIContext ctx, GLsizei stride, const GLvoid *pointer); + void (*edge_flagv)(GLIContext ctx, const GLboolean *flag); + void (*enable)(GLIContext ctx, GLenum cap); + void (*enable_client_state)(GLIContext ctx, GLenum array); + void (*end)(GLIContext ctx); + void (*end_list)(GLIContext ctx); + void (*eval_coord1d)(GLIContext ctx, GLdouble u); + void (*eval_coord1dv)(GLIContext ctx, const GLdouble *u); + void (*eval_coord1f)(GLIContext ctx, GLfloat u); + void (*eval_coord1fv)(GLIContext ctx, const GLfloat *u); + void (*eval_coord2d)(GLIContext ctx, GLdouble u, GLdouble v); + void (*eval_coord2dv)(GLIContext ctx, const GLdouble *u); + void (*eval_coord2f)(GLIContext ctx, GLfloat u, GLfloat v); + void (*eval_coord2fv)(GLIContext ctx, const GLfloat *u); + void (*eval_mesh1)(GLIContext ctx, GLenum mode, GLint i1, GLint i2); + void (*eval_mesh2)(GLIContext ctx, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); + void (*eval_point1)(GLIContext ctx, GLint i); + void (*eval_point2)(GLIContext ctx, GLint i, GLint j); + void (*feedback_buffer)(GLIContext ctx, GLsizei size, GLenum type, GLfloat *buffer); + void (*finish)(GLIContext ctx); + void (*flush)(GLIContext ctx); + void (*fogf)(GLIContext ctx, GLenum pname, GLfloat param); + void (*fogfv)(GLIContext ctx, GLenum pname, const GLfloat *params); + void (*fogi)(GLIContext ctx, GLenum pname, GLint param); + void (*fogiv)(GLIContext ctx, GLenum pname, const GLint *params); + void (*front_face)(GLIContext ctx, GLenum mode); + void (*frustum)(GLIContext ctx, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); + GLuint (*gen_lists)(GLIContext ctx, GLsizei range); + void (*gen_textures)(GLIContext ctx, GLsizei n, GLuint *textures); + void (*get_booleanv)(GLIContext ctx, GLenum pname, GLboolean *params); + void (*get_clip_plane)(GLIContext ctx, GLenum plane, GLdouble *equation); + void (*get_doublev)(GLIContext ctx, GLenum pname, GLdouble *params); + GLenum (*get_error)(GLIContext ctx); + void (*get_floatv)(GLIContext ctx, GLenum pname, GLfloat *params); + void (*get_integerv)(GLIContext ctx, GLenum pname, GLint *params); + void (*get_lightfv)(GLIContext ctx, GLenum light, GLenum pname, GLfloat *params); + void (*get_lightiv)(GLIContext ctx, GLenum light, GLenum pname, GLint *params); + void (*get_mapdv)(GLIContext ctx, GLenum target, GLenum query, GLdouble *v); + void (*get_mapfv)(GLIContext ctx, GLenum target, GLenum query, GLfloat *v); + void (*get_mapiv)(GLIContext ctx, GLenum target, GLenum query, GLint *v); + void (*get_materialfv)(GLIContext ctx, GLenum face, GLenum pname, GLfloat *params); + void (*get_materialiv)(GLIContext ctx, GLenum face, GLenum pname, GLint *params); + void (*get_pixel_mapfv)(GLIContext ctx, GLenum map, GLfloat *values); + void (*get_pixel_mapuiv)(GLIContext ctx, GLenum map, GLuint *values); + void (*get_pixel_mapusv)(GLIContext ctx, GLenum map, GLushort *values); + void (*get_pointerv)(GLIContext ctx, GLenum pname, GLvoid **params); + void (*get_polygon_stipple)(GLIContext ctx, GLubyte *mask); + const GLubyte* (*get_string)(GLIContext ctx, GLenum name); + void (*get_tex_envfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat *params); + void (*get_tex_enviv)(GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*get_tex_gendv)(GLIContext ctx, GLenum coord, GLenum pname, GLdouble *params); + void (*get_tex_genfv)(GLIContext ctx, GLenum coord, GLenum pname, GLfloat *params); + void (*get_tex_geniv)(GLIContext ctx, GLenum coord, GLenum pname, GLint *params); + void (*get_tex_image)(GLIContext ctx, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); + void (*get_tex_level_parameterfv)(GLIContext ctx, GLenum target, GLint level, GLenum pname, GLfloat *params); + void (*get_tex_level_parameteriv)(GLIContext ctx, GLenum target, GLint level, GLenum pname, GLint *params); + void (*get_tex_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat *params); + void (*get_tex_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*hint)(GLIContext ctx, GLenum target, GLenum mode); + void (*index_mask)(GLIContext ctx, GLuint mask); + void (*index_pointer)(GLIContext ctx, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*indexd)(GLIContext ctx, GLdouble c); + void (*indexdv)(GLIContext ctx, const GLdouble *c); + void (*indexf)(GLIContext ctx, GLfloat c); + void (*indexfv)(GLIContext ctx, const GLfloat *c); + void (*indexi)(GLIContext ctx, GLint c); + void (*indexiv)(GLIContext ctx, const GLint *c); + void (*indexs)(GLIContext ctx, GLshort c); + void (*indexsv)(GLIContext ctx, const GLshort *c); + void (*indexub)(GLIContext ctx, GLubyte c); + void (*indexubv)(GLIContext ctx, const GLubyte *c); + void (*init_names)(GLIContext ctx); + void (*interleaved_arrays)(GLIContext ctx, GLenum format, GLsizei stride, const GLvoid *pointer); + GLboolean (*is_enabled)(GLIContext ctx, GLenum cap); + GLboolean (*is_list)(GLIContext ctx, GLuint list); + GLboolean (*is_texture)(GLIContext ctx, GLuint texture); + void (*light_modelf)(GLIContext ctx, GLenum pname, GLfloat param); + void (*light_modelfv)(GLIContext ctx, GLenum pname, const GLfloat *params); + void (*light_modeli)(GLIContext ctx, GLenum pname, GLint param); + void (*light_modeliv)(GLIContext ctx, GLenum pname, const GLint *params); + void (*lightf)(GLIContext ctx, GLenum light, GLenum pname, GLfloat param); + void (*lightfv)(GLIContext ctx, GLenum light, GLenum pname, const GLfloat *params); + void (*lighti)(GLIContext ctx, GLenum light, GLenum pname, GLint param); + void (*lightiv)(GLIContext ctx, GLenum light, GLenum pname, const GLint *params); + void (*line_stipple)(GLIContext ctx, GLint factor, GLushort pattern); + void (*line_width)(GLIContext ctx, GLfloat width); + void (*list_base)(GLIContext ctx, GLuint base); + void (*load_identity)(GLIContext ctx); + void (*load_matrixd)(GLIContext ctx, const GLdouble *m); + void (*load_matrixf)(GLIContext ctx, const GLfloat *m); + void (*load_name)(GLIContext ctx, GLuint name); + void (*logic_op)(GLIContext ctx, GLenum opcode); + void (*map1d)(GLIContext ctx, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); + void (*map1f)(GLIContext ctx, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); + void (*map2d)(GLIContext ctx, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); + void (*map2f)(GLIContext ctx, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); + void (*map_grid1d)(GLIContext ctx, GLint un, GLdouble u1, GLdouble u2); + void (*map_grid1f)(GLIContext ctx, GLint un, GLfloat u1, GLfloat u2); + void (*map_grid2d)(GLIContext ctx, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); + void (*map_grid2f)(GLIContext ctx, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); + void (*materialf)(GLIContext ctx, GLenum face, GLenum pname, GLfloat param); + void (*materialfv)(GLIContext ctx, GLenum face, GLenum pname, const GLfloat *params); + void (*materiali)(GLIContext ctx, GLenum face, GLenum pname, GLint param); + void (*materialiv)(GLIContext ctx, GLenum face, GLenum pname, const GLint *params); + void (*matrix_mode)(GLIContext ctx, GLenum mode); + void (*mult_matrixd)(GLIContext ctx, const GLdouble *m); + void (*mult_matrixf)(GLIContext ctx, const GLfloat *m); + void (*new_list)(GLIContext ctx, GLuint list, GLenum mode); + void (*normal3b)(GLIContext ctx, GLbyte nx, GLbyte ny, GLbyte nz); + void (*normal3bv)(GLIContext ctx, const GLbyte *v); + void (*normal3d)(GLIContext ctx, GLdouble nx, GLdouble ny, GLdouble nz); + void (*normal3dv)(GLIContext ctx, const GLdouble *v); + void (*normal3f)(GLIContext ctx, GLfloat nx, GLfloat ny, GLfloat nz); + void (*normal3fv)(GLIContext ctx, const GLfloat *v); + void (*normal3i)(GLIContext ctx, GLint nx, GLint ny, GLint nz); + void (*normal3iv)(GLIContext ctx, const GLint *v); + void (*normal3s)(GLIContext ctx, GLshort nx, GLshort ny, GLshort nz); + void (*normal3sv)(GLIContext ctx, const GLshort *v); + void (*normal_pointer)(GLIContext ctx, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*ortho)(GLIContext ctx, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); + void (*pass_through)(GLIContext ctx, GLfloat token); + void (*pixel_mapfv)(GLIContext ctx, GLenum map, GLsizei mapsize, const GLfloat *values); + void (*pixel_mapuiv)(GLIContext ctx, GLenum map, GLsizei mapsize, const GLuint *values); + void (*pixel_mapusv)(GLIContext ctx, GLenum map, GLsizei mapsize, const GLushort *values); + void (*pixel_storef)(GLIContext ctx, GLenum pname, GLfloat param); + void (*pixel_storei)(GLIContext ctx, GLenum pname, GLint param); + void (*pixel_transferf)(GLIContext ctx, GLenum pname, GLfloat param); + void (*pixel_transferi)(GLIContext ctx, GLenum pname, GLint param); + void (*pixel_zoom)(GLIContext ctx, GLfloat xfactor, GLfloat yfactor); + void (*point_size)(GLIContext ctx, GLfloat size); + void (*polygon_mode)(GLIContext ctx, GLenum face, GLenum mode); + void (*polygon_offset)(GLIContext ctx, GLfloat factor, GLfloat units); + void (*polygon_stipple)(GLIContext ctx, const GLubyte *mask); + void (*pop_attrib)(GLIContext ctx); + void (*pop_client_attrib)(GLIContext ctx); + void (*pop_matrix)(GLIContext ctx); + void (*pop_name)(GLIContext ctx); + void (*prioritize_textures)(GLIContext ctx, GLsizei n, const GLuint *textures, const GLclampf *priorities); + void (*push_attrib)(GLIContext ctx, GLbitfield mask); + void (*push_client_attrib)(GLIContext ctx, GLbitfield mask); + void (*push_matrix)(GLIContext ctx); + void (*push_name)(GLIContext ctx, GLuint name); + void (*raster_pos2d)(GLIContext ctx, GLdouble x, GLdouble y); + void (*raster_pos2dv)(GLIContext ctx, const GLdouble *v); + void (*raster_pos2f)(GLIContext ctx, GLfloat x, GLfloat y); + void (*raster_pos2fv)(GLIContext ctx, const GLfloat *v); + void (*raster_pos2i)(GLIContext ctx, GLint x, GLint y); + void (*raster_pos2iv)(GLIContext ctx, const GLint *v); + void (*raster_pos2s)(GLIContext ctx, GLshort x, GLshort y); + void (*raster_pos2sv)(GLIContext ctx, const GLshort *v); + void (*raster_pos3d)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z); + void (*raster_pos3dv)(GLIContext ctx, const GLdouble *v); + void (*raster_pos3f)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z); + void (*raster_pos3fv)(GLIContext ctx, const GLfloat *v); + void (*raster_pos3i)(GLIContext ctx, GLint x, GLint y, GLint z); + void (*raster_pos3iv)(GLIContext ctx, const GLint *v); + void (*raster_pos3s)(GLIContext ctx, GLshort x, GLshort y, GLshort z); + void (*raster_pos3sv)(GLIContext ctx, const GLshort *v); + void (*raster_pos4d)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*raster_pos4dv)(GLIContext ctx, const GLdouble *v); + void (*raster_pos4f)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z, GLfloat w); + void (*raster_pos4fv)(GLIContext ctx, const GLfloat *v); + void (*raster_pos4i)(GLIContext ctx, GLint x, GLint y, GLint z, GLint w); + void (*raster_pos4iv)(GLIContext ctx, const GLint *v); + void (*raster_pos4s)(GLIContext ctx, GLshort x, GLshort y, GLshort z, GLshort w); + void (*raster_pos4sv)(GLIContext ctx, const GLshort *v); + void (*read_buffer)(GLIContext ctx, GLenum mode); + void (*read_pixels)(GLIContext ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); + void (*rectd)(GLIContext ctx, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); + void (*rectdv)(GLIContext ctx, const GLdouble *v1, const GLdouble *v2); + void (*rectf)(GLIContext ctx, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); + void (*rectfv)(GLIContext ctx, const GLfloat *v1, const GLfloat *v2); + void (*recti)(GLIContext ctx, GLint x1, GLint y1, GLint x2, GLint y2); + void (*rectiv)(GLIContext ctx, const GLint *v1, const GLint *v2); + void (*rects)(GLIContext ctx, GLshort x1, GLshort y1, GLshort x2, GLshort y2); + void (*rectsv)(GLIContext ctx, const GLshort *v1, const GLshort *v2); + GLint (*render_mode)(GLIContext ctx, GLenum mode); + void (*rotated)(GLIContext ctx, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); + void (*rotatef)(GLIContext ctx, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); + void (*scaled)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z); + void (*scalef)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z); + void (*scissor)(GLIContext ctx, GLint x, GLint y, GLsizei width, GLsizei height); + void (*select_buffer)(GLIContext ctx, GLsizei size, GLuint *buffer); + void (*shade_model)(GLIContext ctx, GLenum mode); + void (*stencil_func)(GLIContext ctx, GLenum func, GLint ref, GLuint mask); + void (*stencil_mask)(GLIContext ctx, GLuint mask); + void (*stencil_op)(GLIContext ctx, GLenum fail, GLenum zfail, GLenum zpass); + void (*tex_coord1d)(GLIContext ctx, GLdouble s); + void (*tex_coord1dv)(GLIContext ctx, const GLdouble *v); + void (*tex_coord1f)(GLIContext ctx, GLfloat s); + void (*tex_coord1fv)(GLIContext ctx, const GLfloat *v); + void (*tex_coord1i)(GLIContext ctx, GLint s); + void (*tex_coord1iv)(GLIContext ctx, const GLint *v); + void (*tex_coord1s)(GLIContext ctx, GLshort s); + void (*tex_coord1sv)(GLIContext ctx, const GLshort *v); + void (*tex_coord2d)(GLIContext ctx, GLdouble s, GLdouble t); + void (*tex_coord2dv)(GLIContext ctx, const GLdouble *v); + void (*tex_coord2f)(GLIContext ctx, GLfloat s, GLfloat t); + void (*tex_coord2fv)(GLIContext ctx, const GLfloat *v); + void (*tex_coord2i)(GLIContext ctx, GLint s, GLint t); + void (*tex_coord2iv)(GLIContext ctx, const GLint *v); + void (*tex_coord2s)(GLIContext ctx, GLshort s, GLshort t); + void (*tex_coord2sv)(GLIContext ctx, const GLshort *v); + void (*tex_coord3d)(GLIContext ctx, GLdouble s, GLdouble t, GLdouble r); + void (*tex_coord3dv)(GLIContext ctx, const GLdouble *v); + void (*tex_coord3f)(GLIContext ctx, GLfloat s, GLfloat t, GLfloat r); + void (*tex_coord3fv)(GLIContext ctx, const GLfloat *v); + void (*tex_coord3i)(GLIContext ctx, GLint s, GLint t, GLint r); + void (*tex_coord3iv)(GLIContext ctx, const GLint *v); + void (*tex_coord3s)(GLIContext ctx, GLshort s, GLshort t, GLshort r); + void (*tex_coord3sv)(GLIContext ctx, const GLshort *v); + void (*tex_coord4d)(GLIContext ctx, GLdouble s, GLdouble t, GLdouble r, GLdouble q); + void (*tex_coord4dv)(GLIContext ctx, const GLdouble *v); + void (*tex_coord4f)(GLIContext ctx, GLfloat s, GLfloat t, GLfloat r, GLfloat q); + void (*tex_coord4fv)(GLIContext ctx, const GLfloat *v); + void (*tex_coord4i)(GLIContext ctx, GLint s, GLint t, GLint r, GLint q); + void (*tex_coord4iv)(GLIContext ctx, const GLint *v); + void (*tex_coord4s)(GLIContext ctx, GLshort s, GLshort t, GLshort r, GLshort q); + void (*tex_coord4sv)(GLIContext ctx, const GLshort *v); + void (*tex_coord_pointer)(GLIContext ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*tex_envf)(GLIContext ctx, GLenum target, GLenum pname, GLfloat param); + void (*tex_envfv)(GLIContext ctx, GLenum target, GLenum pname, const GLfloat *params); + void (*tex_envi)(GLIContext ctx, GLenum target, GLenum pname, GLint param); + void (*tex_enviv)(GLIContext ctx, GLenum target, GLenum pname, const GLint *params); + void (*tex_gend)(GLIContext ctx, GLenum coord, GLenum pname, GLdouble param); + void (*tex_gendv)(GLIContext ctx, GLenum coord, GLenum pname, const GLdouble *params); + void (*tex_genf)(GLIContext ctx, GLenum coord, GLenum pname, GLfloat param); + void (*tex_genfv)(GLIContext ctx, GLenum coord, GLenum pname, const GLfloat *params); + void (*tex_geni)(GLIContext ctx, GLenum coord, GLenum pname, GLint param); + void (*tex_geniv)(GLIContext ctx, GLenum coord, GLenum pname, const GLint *params); + void (*tex_image1D)(GLIContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); + void (*tex_image2D)(GLIContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); + void (*tex_parameterf)(GLIContext ctx, GLenum target, GLenum pname, GLfloat param); + void (*tex_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, const GLfloat *params); + void (*tex_parameteri)(GLIContext ctx, GLenum target, GLenum pname, GLint param); + void (*tex_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, const GLint *params); + void (*tex_sub_image1D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); + void (*tex_sub_image2D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); + void (*translated)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z); + void (*translatef)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z); + void (*vertex2d)(GLIContext ctx, GLdouble x, GLdouble y); + void (*vertex2dv)(GLIContext ctx, const GLdouble *v); + void (*vertex2f)(GLIContext ctx, GLfloat x, GLfloat y); + void (*vertex2fv)(GLIContext ctx, const GLfloat *v); + void (*vertex2i)(GLIContext ctx, GLint x, GLint y); + void (*vertex2iv)(GLIContext ctx, const GLint *v); + void (*vertex2s)(GLIContext ctx, GLshort x, GLshort y); + void (*vertex2sv)(GLIContext ctx, const GLshort *v); + void (*vertex3d)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z); + void (*vertex3dv)(GLIContext ctx, const GLdouble *v); + void (*vertex3f)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z); + void (*vertex3fv)(GLIContext ctx, const GLfloat *v); + void (*vertex3i)(GLIContext ctx, GLint x, GLint y, GLint z); + void (*vertex3iv)(GLIContext ctx, const GLint *v); + void (*vertex3s)(GLIContext ctx, GLshort x, GLshort y, GLshort z); + void (*vertex3sv)(GLIContext ctx, const GLshort *v); + void (*vertex4d)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*vertex4dv)(GLIContext ctx, const GLdouble *v); + void (*vertex4f)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z, GLfloat w); + void (*vertex4fv)(GLIContext ctx, const GLfloat *v); + void (*vertex4i)(GLIContext ctx, GLint x, GLint y, GLint z, GLint w); + void (*vertex4iv)(GLIContext ctx, const GLint *v); + void (*vertex4s)(GLIContext ctx, GLshort x, GLshort y, GLshort z, GLshort w); + void (*vertex4sv)(GLIContext ctx, const GLshort *v); + void (*vertex_pointer)(GLIContext ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*viewport)(GLIContext ctx, GLint x, GLint y, GLsizei width, GLsizei height); + void (*blend_func_separate)(GLIContext ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); + void (*blend_color)(GLIContext ctx, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); + void (*blend_equation)(GLIContext ctx, GLenum mode); + void (*lock_arrays_EXT)(GLIContext ctx, GLint first, GLsizei count); + void (*unlock_arrays_EXT)(GLIContext ctx); + void (*client_active_texture)(GLIContext ctx, GLenum target); + void (*active_texture)(GLIContext ctx, GLenum target); + void (*multi_tex_coord1d)(GLIContext ctx, GLenum target, GLdouble s); + void (*multi_tex_coord1dv)(GLIContext ctx, GLenum target, const GLdouble *v); + void (*multi_tex_coord1f)(GLIContext ctx, GLenum target, GLfloat s); + void (*multi_tex_coord1fv)(GLIContext ctx, GLenum target, const GLfloat *v); + void (*multi_tex_coord1i)(GLIContext ctx, GLenum target, GLint s); + void (*multi_tex_coord1iv)(GLIContext ctx, GLenum target, const GLint *v); + void (*multi_tex_coord1s)(GLIContext ctx, GLenum target, GLshort s); + void (*multi_tex_coord1sv)(GLIContext ctx, GLenum target, const GLshort *v); + void (*multi_tex_coord2d)(GLIContext ctx, GLenum target, GLdouble s, GLdouble t); + void (*multi_tex_coord2dv)(GLIContext ctx, GLenum target, const GLdouble *v); + void (*multi_tex_coord2f)(GLIContext ctx, GLenum target, GLfloat s, GLfloat t); + void (*multi_tex_coord2fv)(GLIContext ctx, GLenum target, const GLfloat *v); + void (*multi_tex_coord2i)(GLIContext ctx, GLenum target, GLint s, GLint t); + void (*multi_tex_coord2iv)(GLIContext ctx, GLenum target, const GLint *v); + void (*multi_tex_coord2s)(GLIContext ctx, GLenum target, GLshort s, GLshort t); + void (*multi_tex_coord2sv)(GLIContext ctx, GLenum target, const GLshort *v); + void (*multi_tex_coord3d)(GLIContext ctx, GLenum target, GLdouble s, GLdouble t, GLdouble r); + void (*multi_tex_coord3dv)(GLIContext ctx, GLenum target, const GLdouble *v); + void (*multi_tex_coord3f)(GLIContext ctx, GLenum target, GLfloat s, GLfloat t, GLfloat r); + void (*multi_tex_coord3fv)(GLIContext ctx, GLenum target, const GLfloat *v); + void (*multi_tex_coord3i)(GLIContext ctx, GLenum target, GLint s, GLint t, GLint r); + void (*multi_tex_coord3iv)(GLIContext ctx, GLenum target, const GLint *v); + void (*multi_tex_coord3s)(GLIContext ctx, GLenum target, GLshort s, GLshort t, GLshort r); + void (*multi_tex_coord3sv)(GLIContext ctx, GLenum target, const GLshort *v); + void (*multi_tex_coord4d)(GLIContext ctx, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); + void (*multi_tex_coord4dv)(GLIContext ctx, GLenum target, const GLdouble *v); + void (*multi_tex_coord4f)(GLIContext ctx, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); + void (*multi_tex_coord4fv)(GLIContext ctx, GLenum target, const GLfloat *v); + void (*multi_tex_coord4i)(GLIContext ctx, GLenum target, GLint s, GLint t, GLint r, GLint q); + void (*multi_tex_coord4iv)(GLIContext ctx, GLenum target, const GLint *v); + void (*multi_tex_coord4s)(GLIContext ctx, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); + void (*multi_tex_coord4sv)(GLIContext ctx, GLenum target, const GLshort *v); + void (*load_transpose_matrixd)(GLIContext ctx, const GLdouble *m); + void (*load_transpose_matrixf)(GLIContext ctx, const GLfloat *m); + void (*mult_transpose_matrixd)(GLIContext ctx, const GLdouble *m); + void (*mult_transpose_matrixf)(GLIContext ctx, const GLfloat *m); + void (*compressed_tex_image3D)(GLIContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); + void (*compressed_tex_image2D)(GLIContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); + void (*compressed_tex_image1D)(GLIContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); + void (*compressed_tex_sub_image3D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); + void (*compressed_tex_sub_image2D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); + void (*compressed_tex_sub_image1D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); + void (*get_compressed_tex_image)(GLIContext ctx, GLenum target, GLint level, GLvoid *img); + void (*secondary_color3b)(GLIContext ctx, GLbyte red, GLbyte green, GLbyte blue); + void (*secondary_color3bv)(GLIContext ctx, const GLbyte *v); + void (*secondary_color3d)(GLIContext ctx, GLdouble red, GLdouble green, GLdouble blue); + void (*secondary_color3dv)(GLIContext ctx, const GLdouble *v); + void (*secondary_color3f)(GLIContext ctx, GLfloat red, GLfloat green, GLfloat blue); + void (*secondary_color3fv)(GLIContext ctx, const GLfloat *v); + void (*secondary_color3i)(GLIContext ctx, GLint red, GLint green, GLint blue); + void (*secondary_color3iv)(GLIContext ctx, const GLint *v); + void (*secondary_color3s)(GLIContext ctx, GLshort red, GLshort green, GLshort blue); + void (*secondary_color3sv)(GLIContext ctx, const GLshort *v); + void (*secondary_color3ub)(GLIContext ctx, GLubyte red, GLubyte green, GLubyte blue); + void (*secondary_color3ubv)(GLIContext ctx, const GLubyte *v); + void (*secondary_color3ui)(GLIContext ctx, GLuint red, GLuint green, GLuint blue); + void (*secondary_color3uiv)(GLIContext ctx, const GLuint *v); + void (*secondary_color3us)(GLIContext ctx, GLushort red, GLushort green, GLushort blue); + void (*secondary_color3usv)(GLIContext ctx, const GLushort *v); + void (*secondary_color_pointer)(GLIContext ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*vertex_array_range_EXT)(GLIContext ctx, GLsizei count, const GLvoid *pointer); + void (*flush_vertex_array_range_EXT)(GLIContext ctx, GLsizei count, const GLvoid *pointer); + void (*draw_range_elements)(GLIContext ctx, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); + void (*color_table)(GLIContext ctx, GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); + void (*color_table_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, const GLfloat *params); + void (*color_table_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, const GLint *params); + void (*copy_color_table)(GLIContext ctx, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); + void (*get_color_table)(GLIContext ctx, GLenum target, GLenum format, GLenum type, GLvoid *table); + void (*get_color_table_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat *params); + void (*get_color_table_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*color_sub_table)(GLIContext ctx, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); + void (*copy_color_sub_table)(GLIContext ctx, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); + void (*convolution_filter1D)(GLIContext ctx, GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); + void (*convolution_filter2D)(GLIContext ctx, GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); + void (*convolution_parameterf)(GLIContext ctx, GLenum target, GLenum pname, GLfloat params); + void (*convolution_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, const GLfloat *params); + void (*convolution_parameteri)(GLIContext ctx, GLenum target, GLenum pname, GLint params); + void (*convolution_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, const GLint *params); + void (*copy_convolution_filter1D)(GLIContext ctx, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); + void (*copy_convolution_filter2D)(GLIContext ctx, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); + void (*get_convolution_filter)(GLIContext ctx, GLenum target, GLenum format, GLenum type, GLvoid *image); + void (*get_convolution_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat *params); + void (*get_convolution_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*get_separable_filter)(GLIContext ctx, GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); + void (*separable_filter2D)(GLIContext ctx, GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); + void (*get_histogram)(GLIContext ctx, GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); + void (*get_histogram_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat *params); + void (*get_histogram_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*get_minmax)(GLIContext ctx, GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); + void (*get_minmax_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat *params); + void (*get_minmax_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*histogram)(GLIContext ctx, GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); + void (*minmax)(GLIContext ctx, GLenum target, GLenum internalformat, GLboolean sink); + void (*reset_histogram)(GLIContext ctx, GLenum target); + void (*reset_minmax)(GLIContext ctx, GLenum target); + void (*tex_image3D)(GLIContext ctx, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); + void (*tex_sub_image3D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); + void (*copy_tex_sub_image3D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); + void (*get_uniform_indices) (GLIContext ctx, GLuint program, GLsizei uniformCount, const GLchar* const *uniformNames, GLuint* uniformIndices); + void (*get_active_uniformsiv) (GLIContext ctx, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params); + void (*get_active_uniform_name) (GLIContext ctx, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName); + GLuint (*get_uniform_block_index) (GLIContext ctx, GLuint program, const GLchar* uniformBlockName); + void (*get_active_uniform_blockiv) (GLIContext ctx, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params); + void (*get_active_uniform_block_name) (GLIContext ctx, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName); + void (*uniform_block_binding) (GLIContext ctx, GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); + void (*get_combiner_input_parameterfv_NV)(GLIContext ctx, GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); + void (*get_combiner_input_parameteriv_NV)(GLIContext ctx, GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); + void (*get_combiner_output_parameterfv_NV)(GLIContext ctx, GLenum stage, GLenum portion, GLenum pname, GLfloat *params); + void (*get_combiner_output_parameteriv_NV)(GLIContext ctx, GLenum stage, GLenum portion, GLenum pname, GLint *params); + void (*get_final_combiner_input_parameterfv_NV)(GLIContext ctx, GLenum variable, GLenum pname, GLfloat *params); + void (*get_final_combiner_input_parameteriv_NV)(GLIContext ctx, GLenum variable, GLenum pname, GLint *params); + void (*combiner_stage_parameterfv_NV)(GLIContext ctx, GLenum stage, GLenum pname, const GLfloat *params); + void (*get_combiner_stage_parameterfv_NV)(GLIContext ctx, GLenum stage, GLenum pname, GLfloat *params); + void (*texture_range_APPLE)(GLIContext ctx, GLenum target, GLsizei length, const GLvoid *pointer); + void (*get_tex_parameter_pointerv_APPLE)(GLIContext ctx, GLenum target, GLenum pname, GLvoid **params); + void (*blend_equation_separate_EXT)(GLIContext ctx, GLenum equationRGB, GLenum equationAlpha); + void (*sample_coverage)(GLIContext ctx, GLclampf value, GLboolean invert); + void (*sample_pass)(GLIContext ctx, GLenum mode); + void (*pn_trianglesi_ATI)(GLIContext ctx, GLenum pname, GLint param); + void (*pn_trianglesf_ATI)(GLIContext ctx, GLenum pname, GLfloat param); + void (*gen_fences_APPLE)(GLIContext ctx, GLsizei n, GLuint *fences); + void (*delete_fences_APPLE)(GLIContext ctx, GLsizei n, const GLuint *fences); + void (*set_fence_APPLE)(GLIContext ctx, GLuint fence); + GLboolean (*is_fence_APPLE)(GLIContext ctx, GLuint fence); + GLboolean (*test_fence_APPLE)(GLIContext ctx, GLuint fence); + void (*finish_fence_APPLE)(GLIContext ctx, GLuint fence); + GLboolean (*test_object_APPLE)(GLIContext ctx, GLenum object, GLuint name); + void (*finish_object_APPLE)(GLIContext ctx, GLenum object, GLuint name); + void (*bind_program_ARB)(GLIContext ctx, GLenum target, GLuint program); + void (*delete_programs_ARB)(GLIContext ctx, GLsizei n, const GLuint *programs); + void (*gen_programs_ARB)(GLIContext ctx, GLsizei n, GLuint *programs); + GLboolean (*is_program_ARB)(GLIContext ctx, GLuint program); + void (*vertex_attrib1s_ARB)(GLIContext ctx, GLuint index, GLshort x); + void (*vertex_attrib1f_ARB)(GLIContext ctx, GLuint index, GLfloat x); + void (*vertex_attrib1d_ARB)(GLIContext ctx, GLuint index, GLdouble x); + void (*vertex_attrib2s_ARB)(GLIContext ctx, GLuint index, GLshort x, GLshort y); + void (*vertex_attrib2f_ARB)(GLIContext ctx, GLuint index, GLfloat x, GLfloat y); + void (*vertex_attrib2d_ARB)(GLIContext ctx, GLuint index, GLdouble x, GLdouble y); + void (*vertex_attrib3s_ARB)(GLIContext ctx, GLuint index, GLshort x, GLshort y, GLshort z); + void (*vertex_attrib3f_ARB)(GLIContext ctx, GLuint index, GLfloat x, GLfloat y, GLfloat z); + void (*vertex_attrib3d_ARB)(GLIContext ctx, GLuint index, GLdouble x, GLdouble y, GLdouble z); + void (*vertex_attrib4s_ARB)(GLIContext ctx, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); + void (*vertex_attrib4f_ARB)(GLIContext ctx, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); + void (*vertex_attrib4d_ARB)(GLIContext ctx, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*vertex_attrib4Nub_ARB)(GLIContext ctx, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); + void (*vertex_attrib1sv_ARB)(GLIContext ctx, GLuint index, const GLshort *v); + void (*vertex_attrib1fv_ARB)(GLIContext ctx, GLuint index, const GLfloat *v); + void (*vertex_attrib1dv_ARB)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attrib2sv_ARB)(GLIContext ctx, GLuint index, const GLshort *v); + void (*vertex_attrib2fv_ARB)(GLIContext ctx, GLuint index, const GLfloat *v); + void (*vertex_attrib2dv_ARB)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attrib3sv_ARB)(GLIContext ctx, GLuint index, const GLshort *v); + void (*vertex_attrib3fv_ARB)(GLIContext ctx, GLuint index, const GLfloat *v); + void (*vertex_attrib3dv_ARB)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attrib4bv_ARB)(GLIContext ctx, GLuint index, const GLbyte *v); + void (*vertex_attrib4sv_ARB)(GLIContext ctx, GLuint index, const GLshort *v); + void (*vertex_attrib4iv_ARB)(GLIContext ctx, GLuint index, const GLint *v); + void (*vertex_attrib4ubv_ARB)(GLIContext ctx, GLuint index, const GLubyte *v); + void (*vertex_attrib4usv_ARB)(GLIContext ctx, GLuint index, const GLushort *v); + void (*vertex_attrib4uiv_ARB)(GLIContext ctx, GLuint index, const GLuint *v); + void (*vertex_attrib4fv_ARB)(GLIContext ctx, GLuint index, const GLfloat *v); + void (*vertex_attrib4dv_ARB)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attrib4Nbv_ARB)(GLIContext ctx, GLuint index, const GLbyte *v); + void (*vertex_attrib4Nsv_ARB)(GLIContext ctx, GLuint index, const GLshort *v); + void (*vertex_attrib4Niv_ARB)(GLIContext ctx, GLuint index, const GLint *v); + void (*vertex_attrib4Nubv_ARB)(GLIContext ctx, GLuint index, const GLubyte *v); + void (*vertex_attrib4Nusv_ARB)(GLIContext ctx, GLuint index, const GLushort *v); + void (*vertex_attrib4Nuiv_ARB)(GLIContext ctx, GLuint index, const GLuint *v); + void (*vertex_attrib_pointer_ARB)(GLIContext ctx, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); + void (*enable_vertex_attrib_array_ARB)(GLIContext ctx, GLuint index); + void (*disable_vertex_attrib_array_ARB)(GLIContext ctx, GLuint index); + void (*get_vertex_attribdv_ARB)(GLIContext ctx, GLuint index, GLenum pname, GLdouble *params); + void (*get_vertex_attribfv_ARB)(GLIContext ctx, GLuint index, GLenum pname, GLfloat *params); + void (*get_vertex_attribiv_ARB)(GLIContext ctx, GLuint index, GLenum pname, GLint *params); + void (*get_vertex_attrib_pointerv_ARB)(GLIContext ctx, GLuint index, GLenum pname, GLvoid **pointer); + void (*program_env_parameter4d_ARB)(GLIContext ctx, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*program_env_parameter4dv_ARB)(GLIContext ctx, GLenum target, GLuint index, const GLdouble *params); + void (*program_env_parameter4f_ARB)(GLIContext ctx, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); + void (*program_env_parameter4fv_ARB)(GLIContext ctx, GLenum target, GLuint index, const GLfloat *params); + void (*program_local_parameter4d_ARB)(GLIContext ctx, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*program_local_parameter4dv_ARB)(GLIContext ctx, GLenum target, GLuint index, const GLdouble *params); + void (*program_local_parameter4f_ARB)(GLIContext ctx, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); + void (*program_local_parameter4fv_ARB)(GLIContext ctx, GLenum target, GLuint index, const GLfloat *params); + void (*get_program_env_parameterdv_ARB)(GLIContext ctx, GLenum target, GLuint index, GLdouble *params); + void (*get_program_env_parameterfv_ARB)(GLIContext ctx, GLenum target, GLuint index, GLfloat *params); + void (*get_program_local_parameterdv_ARB)(GLIContext ctx, GLenum target, GLuint index, GLdouble *params); + void (*get_program_local_parameterfv_ARB)(GLIContext ctx, GLenum target, GLuint index, GLfloat *params); + void (*program_string_ARB)(GLIContext ctx, GLenum target, GLenum format, GLsizei len, const GLvoid* string); + void (*get_program_string_ARB)(GLIContext ctx, GLenum target, GLenum pname, GLvoid *string); + void (*get_programiv_ARB)(GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*enable_vertex_attrib_ARB)(GLIContext ctx, GLuint index, GLenum pname); + void (*disable_vertex_attrib_ARB)(GLIContext ctx, GLuint index, GLenum pname); + GLboolean (*is_vertex_attrib_enabled_ARB)(GLIContext ctx, GLuint index, GLenum pname); + void (*map_vertex_attrib1d_ARB)(GLIContext ctx, GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); + void (*map_vertex_attrib1f_ARB)(GLIContext ctx, GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); + void (*map_vertex_attrib2d_ARB)(GLIContext ctx, GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); + void (*map_vertex_attrib2f_ARB)(GLIContext ctx, GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); + void (*point_parameterf)(GLIContext ctx, GLenum pname, GLfloat param); + void (*point_parameterfv)(GLIContext ctx, GLenum pname, const GLfloat *params); + void (*point_parameteri)(GLIContext ctx, GLenum pname, GLint param); + void (*point_parameteriv)(GLIContext ctx, GLenum pname, const GLint *params); + void (*fog_coordf)(GLIContext ctx, GLfloat coord); + void (*fog_coordfv)(GLIContext ctx, const GLfloat *coord); + void (*fog_coordd)(GLIContext ctx, GLdouble coord); + void (*fog_coorddv)(GLIContext ctx, const GLdouble *coord); + void (*fog_coord_pointer)(GLIContext ctx, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*vertex_array_parameteri_EXT)(GLIContext ctx, GLenum pname, GLint param); + void (*bind_vertex_array_EXT)(GLIContext ctx, GLuint id); + void (*delete_vertex_arrays_EXT)(GLIContext ctx, GLsizei n, const GLuint *ids); + void (*gen_vertex_arrays_EXT)(GLIContext ctx, GLsizei n, GLuint *ids); + GLboolean (*is_vertex_array_EXT)(GLIContext ctx, GLuint id); + void (*element_pointer_APPLE)(GLIContext ctx, GLenum type, const GLvoid *pointer); + void (*draw_element_array_APPLE)(GLIContext ctx, GLenum mode, GLint first, GLsizei count); + void (*draw_range_element_array_APPLE)(GLIContext ctx, GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); + void (*weightbv_ARB)(GLIContext ctx, GLint size, const GLbyte *weights); + void (*weightsv_ARB)(GLIContext ctx, GLint size, const GLshort *weights); + void (*weightiv_ARB)(GLIContext ctx, GLint size, const GLint *weights); + void (*weightfv_ARB)(GLIContext ctx, GLint size, const GLfloat *weights); + void (*weightdv_ARB)(GLIContext ctx, GLint size, const GLdouble *weights); + void (*weightubv_ARB)(GLIContext ctx, GLint size, const GLubyte *weights); + void (*weightusv_ARB)(GLIContext ctx, GLint size, const GLushort *weights); + void (*weightuiv_ARB)(GLIContext ctx, GLint size, const GLuint *weights); + void (*weight_pointer_ARB)(GLIContext ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*vertex_blend_ARB)(GLIContext ctx, GLint count); + void (*multi_draw_arrays)(GLIContext ctx, GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); + void (*multi_draw_elements)(GLIContext ctx, GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei drawcount); + void (*window_pos2d) (GLIContext ctx, GLdouble x, GLdouble y); + void (*window_pos2dv) (GLIContext ctx, const GLdouble *v); + void (*window_pos2f) (GLIContext ctx, GLfloat x, GLfloat y); + void (*window_pos2fv) (GLIContext ctx, const GLfloat *v); + void (*window_pos2i) (GLIContext ctx, GLint x, GLint y); + void (*window_pos2iv) (GLIContext ctx, const GLint *v); + void (*window_pos2s) (GLIContext ctx, GLshort x, GLshort y); + void (*window_pos2sv) (GLIContext ctx, const GLshort *v); + void (*window_pos3d) (GLIContext ctx, GLdouble x, GLdouble y, GLdouble z); + void (*window_pos3dv) (GLIContext ctx, const GLdouble *v); + void (*window_pos3f) (GLIContext ctx, GLfloat x, GLfloat y, GLfloat z); + void (*window_pos3fv) (GLIContext ctx, const GLfloat *v); + void (*window_pos3i) (GLIContext ctx, GLint x, GLint y, GLint z); + void (*window_pos3iv) (GLIContext ctx, const GLint *v); + void (*window_pos3s) (GLIContext ctx, GLshort x, GLshort y, GLshort z); + void (*window_pos3sv) (GLIContext ctx, const GLshort *v); + void (*active_stencil_face_EXT) (GLIContext ctx, GLenum face); + void (*stencil_op_separate_ATI) (GLIContext ctx, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); + void (*stencil_func_separate_ATI) (GLIContext ctx, GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); + void (*flush_render_APPLE) (GLIContext ctx); + void (*finish_render_APPLE) (GLIContext ctx); + void (*swap_APPLE)(GLIContext ctx); + void (*delete_object_ARB) (GLIContext ctx, GLhandleARB obj); + GLhandleARB (*get_handle_ARB) (GLIContext ctx, GLenum pname); + void (*detach_object_ARB) (GLIContext ctx, GLhandleARB containerObj, GLhandleARB attachedObj); + GLhandleARB (*create_shader_object_ARB) (GLIContext ctx, GLenum shaderType); + void (*shader_source_ARB) (GLIContext ctx, GLhandleARB shaderObj, GLsizei count, const GLcharARB* const *string, const GLint *length); + void (*compile_shader_ARB) (GLIContext ctx, GLhandleARB shaderObj); + GLhandleARB (*create_program_object_ARB) (GLIContext ctx); + void (*attach_object_ARB) (GLIContext ctx, GLhandleARB containerObj, GLhandleARB obj); + void (*link_program_ARB) (GLIContext ctx, GLhandleARB programObj); + void (*use_program_object_ARB) (GLIContext ctx, GLhandleARB programObj); + void (*validate_program_ARB) (GLIContext ctx, GLhandleARB programObj); + void (*uniform1f_ARB) (GLIContext ctx, GLint location, GLfloat v0); + void (*uniform2f_ARB) (GLIContext ctx, GLint location, GLfloat v0, GLfloat v1); + void (*uniform3f_ARB) (GLIContext ctx, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); + void (*uniform4f_ARB) (GLIContext ctx, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); + void (*uniform1i_ARB) (GLIContext ctx, GLint location, GLint v0); + void (*uniform2i_ARB) (GLIContext ctx, GLint location, GLint v0, GLint v1); + void (*uniform3i_ARB) (GLIContext ctx, GLint location, GLint v0, GLint v1, GLint v2); + void (*uniform4i_ARB) (GLIContext ctx, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); + void (*uniform1fv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLfloat *value); + void (*uniform2fv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLfloat *value); + void (*uniform3fv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLfloat *value); + void (*uniform4fv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLfloat *value); + void (*uniform1iv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLint *value); + void (*uniform2iv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLint *value); + void (*uniform3iv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLint *value); + void (*uniform4iv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLint *value); + void (*uniform_matrix2fv_ARB) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*uniform_matrix3fv_ARB) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*uniform_matrix4fv_ARB) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*get_object_parameterfv_ARB) (GLIContext ctx, GLhandleARB obj, GLenum pname, GLfloat *params); + void (*get_object_parameteriv_ARB) (GLIContext ctx, GLhandleARB obj, GLenum pname, GLint *params); + void (*get_info_log_ARB) (GLIContext ctx, GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); + void (*get_attached_objects_ARB) (GLIContext ctx, GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); + GLint (*get_uniform_location_ARB) (GLIContext ctx, GLhandleARB programObj, const GLcharARB *name); + void (*get_active_uniform_ARB) (GLIContext ctx, GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); + void (*get_uniformfv_ARB) (GLIContext ctx, GLhandleARB programObj, GLint location, GLfloat *params); + void (*get_uniformiv_ARB) (GLIContext ctx, GLhandleARB programObj, GLint location, GLint *params); + void (*get_shader_source_ARB) (GLIContext ctx, GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); + void (*bind_attrib_location_ARB) (GLIContext ctx, GLhandleARB programObj, GLuint index, const GLcharARB *name); + void (*get_active_attrib_ARB) (GLIContext ctx, GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); + GLint (*get_attrib_location_ARB) (GLIContext ctx, GLhandleARB programObj, const GLcharARB *name); + void (*clamp_color_ARB) (GLIContext ctx, GLenum target, GLenum clamp); + void (*gen_queries) (GLIContext ctx, GLsizei n, GLuint *ids); + void (*delete_queries) (GLIContext ctx, GLsizei n, const GLuint *ids); + GLboolean (*is_query) (GLIContext ctx, GLuint id); + void (*begin_query) (GLIContext ctx, GLenum target, GLuint id); + void (*end_query) (GLIContext ctx, GLenum target); + void (*get_queryiv) (GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*get_query_objectiv) (GLIContext ctx, GLuint id, GLenum pname, GLint *params); + void (*get_query_objectuiv) (GLIContext ctx, GLuint id, GLenum pname, GLuint *params); + void (*bind_buffer) (GLIContext ctx, GLenum target, GLuint buffer); + void (*delete_buffers) (GLIContext ctx, GLsizei n, const GLuint *buffers); + void (*gen_buffers) (GLIContext ctx, GLsizei n, GLuint *buffers); + GLboolean (*is_buffer) (GLIContext ctx, GLuint buffer); + void (*buffer_data) (GLIContext ctx, GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); + void (*buffer_sub_data) (GLIContext ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); + void (*get_buffer_sub_data) (GLIContext ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data); + GLvoid *(*map_buffer) (GLIContext ctx, GLenum target, GLenum access); + GLboolean (*unmap_buffer) (GLIContext ctx, GLenum target); + void (*get_buffer_parameteriv) (GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*get_buffer_pointerv) (GLIContext ctx, GLenum target, GLenum pname, GLvoid **params); + void (*depth_bounds_EXT) (GLIContext ctx, GLclampd zmin, GLclampd zmax); + void (*draw_buffers_ARB) (GLIContext ctx, GLsizei n, const GLenum *bufs); + + GLboolean (*is_shader) (GLIContext ctx, GLuint shader); + GLboolean (*is_program) (GLIContext ctx, GLuint program); + void (*get_shaderiv) (GLIContext ctx, GLuint shader, GLenum pname, GLint *params); + void (*get_programiv) (GLIContext ctx, GLuint program, GLenum pname, GLint *params); + void (*get_shader_info_log) (GLIContext ctx, GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); + void (*get_program_info_log) (GLIContext ctx, GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); + + void (*stencil_func_separate) (GLIContext ctx, GLenum face, GLenum func, GLint ref, GLuint mask); + void (*stencil_mask_separate) (GLIContext ctx, GLenum face, GLuint mask); + + void (*multi_draw_element_array_APPLE)(GLIContext ctx, GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); + void (*multi_draw_range_element_array_APPLE)(GLIContext ctx, GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); + + /* EXT_framebuffer_object */ + GLboolean (*is_renderbuffer_EXT) (GLIContext ctx, GLuint renderbuffer); + void (*bind_renderbuffer_EXT) (GLIContext ctx, GLenum target, GLuint renderbuffer); + void (*delete_renderbuffers_EXT) (GLIContext ctx, GLsizei n, const GLuint *renderbuffers); + void (*gen_renderbuffers_EXT) (GLIContext ctx, GLsizei n, GLuint *renderbuffers); + void (*renderbuffer_storage_EXT) (GLIContext ctx, GLenum target, GLenum internalformat, GLsizei width, GLsizei height); + void (*get_renderbuffer_parameteriv_EXT) (GLIContext ctx, GLenum target, GLenum pname, GLint *params); + GLboolean (*is_framebuffer_EXT) (GLIContext ctx, GLuint framebuffer); + void (*bind_framebuffer_EXT) (GLIContext ctx, GLenum target, GLuint framebuffer); + void (*delete_framebuffers_EXT) (GLIContext ctx, GLsizei n, const GLuint *framebuffers); + void (*gen_framebuffers_EXT) (GLIContext ctx, GLsizei n, GLuint *framebuffers); + GLenum (*check_framebuffer_status_EXT) (GLIContext ctx, GLenum target); + void (*framebuffer_texture1D_EXT) (GLIContext ctx, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); + void (*framebuffer_texture2D_EXT) (GLIContext ctx, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); + void (*framebuffer_texture3D_EXT) (GLIContext ctx, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); + void (*framebuffer_renderbuffer_EXT) (GLIContext ctx, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); + void (*get_framebuffer_attachment_parameteriv_EXT) (GLIContext ctx, GLenum target, GLenum attachment, GLenum pname, GLint *params); + void (*generate_mipmap_EXT) (GLIContext ctx, GLenum target); + + void (*buffer_parameteri_APPLE) (GLIContext ctx, GLenum target, GLenum pname, GLint param); + void (*flush_mapped_buffer_range_APPLE) (GLIContext ctx, GLenum target, GLintptr offset, GLsizeiptr size); + + void (*program_env_parameters4fv_EXT)(GLIContext ctx, GLenum target, GLuint index, GLsizei count, const GLfloat *params); + void (*program_local_parameters4fv_EXT)(GLIContext ctx, GLenum target, GLuint index, GLsizei count, const GLfloat *params); + + GLenum (*object_purgeable_APPLE)(GLIContext ctx, GLenum objectType, GLuint name, GLenum option); + GLenum (*object_unpurgeable_APPLE)(GLIContext ctx, GLenum objectType, GLuint name, GLenum option); + void (*get_object_parameteriv_APPLE) (GLIContext ctx, GLenum objectType, GLuint name, GLenum pname, GLint* params); + + /* EXT_geometry_shader4 */ + void (*program_parameteri_EXT)(GLIContext ctx, GLuint program_name, GLenum pname, GLint value); + void (*framebuffer_texture_EXT)(GLIContext ctx, GLenum target, GLenum attachment, GLuint texture, GLint level); + void (*framebuffer_texture_layer_EXT)(GLIContext ctx, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); + void (*framebuffer_texture_face_EXT)(GLIContext ctx, GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); + + /* EXT_transform_feedback */ + void (*bind_buffer_range_EXT)(GLIContext ctx, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); + void (*bind_buffer_offset_EXT)(GLIContext ctx, GLenum target, GLuint index, GLuint buffer, GLintptr offset); + void (*bind_buffer_base_EXT)(GLIContext ctx, GLenum target, GLuint index, GLuint buffer); + void (*begin_transform_feedback_EXT)(GLIContext ctx, GLenum primitiveMode); + void (*end_transform_feedback_EXT)(GLIContext ctx); + void (*transform_feedback_varyings_EXT)(GLIContext ctx, GLuint program, GLsizei count, const GLchar* const *varyings, GLenum bufferMode); + void (*get_transform_feedback_varying_EXT)(GLIContext ctx, GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); + void (*get_integer_indexedv_EXT)(GLIContext ctx, GLenum param, GLuint index, GLint *values); + void (*get_boolean_indexedv_EXT)(GLIContext ctx, GLenum param, GLuint index, GLboolean *values); + + /* EXT_bindable_uniform */ + void (*uniform_buffer_EXT)(GLIContext ctx, GLuint program, GLint location, GLuint buffer); + GLint (*get_uniform_buffer_size_EXT)(GLIContext ctx, GLuint program, GLint location); + GLintptr (*get_uniform_buffer_offset_EXT)(GLIContext ctx, GLuint program, GLint location); + + /* EXT_texture_integer */ + void (*clear_colorIi_EXT) (GLIContext ctx, GLint r, GLint g, GLint b, GLint a ); + void (*clear_colorIui_EXT) (GLIContext ctx, GLuint r, GLuint g, GLuint b, GLuint a ); + void (*tex_parameterIiv_EXT)(GLIContext ctx, GLenum target, GLenum pname, GLint *params ); + void (*tex_parameterIuiv_EXT)(GLIContext ctx, GLenum target, GLenum pname, GLuint *params ); + void (*get_tex_parameterIiv_EXT) (GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*get_tex_parameterIuiv_EXT) (GLIContext ctx, GLenum target, GLenum pname, GLuint *params); + + /* EXT_gpu_shader4 */ + void (*vertex_attribI1i_EXT)(GLIContext ctx, GLuint index, GLint x); + void (*vertex_attribI2i_EXT)(GLIContext ctx, GLuint index, GLint x, GLint y); + void (*vertex_attribI3i_EXT)(GLIContext ctx, GLuint index, GLint x, GLint y, GLint z); + void (*vertex_attribI4i_EXT)(GLIContext ctx, GLuint index, GLint x, GLint y, GLint z, GLint w); + void (*vertex_attribI1ui_EXT)(GLIContext ctx, GLuint index, GLuint x); + void (*vertex_attribI2ui_EXT)(GLIContext ctx, GLuint index, GLuint x, GLuint y); + void (*vertex_attribI3ui_EXT)(GLIContext ctx, GLuint index, GLuint x, GLuint y, GLuint z); + void (*vertex_attribI4ui_EXT)(GLIContext ctx, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); + void (*vertex_attribI1iv_EXT)(GLIContext ctx, GLuint index, const GLint *v); + void (*vertex_attribI2iv_EXT)(GLIContext ctx, GLuint index, const GLint *v); + void (*vertex_attribI3iv_EXT)(GLIContext ctx, GLuint index, const GLint *v); + void (*vertex_attribI4iv_EXT)(GLIContext ctx, GLuint index, const GLint *v); + void (*vertex_attribI1uiv_EXT)(GLIContext ctx, GLuint index, const GLuint *v); + void (*vertex_attribI2uiv_EXT)(GLIContext ctx, GLuint index, const GLuint *v); + void (*vertex_attribI3uiv_EXT)(GLIContext ctx, GLuint index, const GLuint *v); + void (*vertex_attribI4uiv_EXT)(GLIContext ctx, GLuint index, const GLuint *v); + void (*vertex_attribI4bv_EXT)(GLIContext ctx, GLuint index, const GLbyte *v); + void (*vertex_attribI4sv_EXT)(GLIContext ctx, GLuint index, const GLshort *v); + void (*vertex_attribI4ubv_EXT)(GLIContext ctx, GLuint index, const GLubyte *v); + void (*vertex_attribI4usv_EXT)(GLIContext ctx, GLuint index, const GLushort *v); + void (*vertex_attribI_pointer_EXT)(GLIContext ctx, GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*get_vertex_attribIiv_EXT)(GLIContext ctx, GLuint index, GLenum pname, GLint *params); + void (*get_vertex_attribIuiv_EXT)(GLIContext ctx, GLuint index, GLenum pname, GLuint *params); + void (*uniform1ui_EXT)(GLIContext ctx, GLint location, GLuint v0); + void (*uniform2ui_EXT)(GLIContext ctx, GLint location, GLuint v0, GLuint v1); + void (*uniform3ui_EXT)(GLIContext ctx, GLint location, GLuint v0, GLuint v1, GLuint v2); + void (*uniform4ui_EXT)(GLIContext ctx, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); + void (*uniform1uiv_EXT)(GLIContext ctx, GLint location, GLsizei count, const GLuint *value); + void (*uniform2uiv_EXT)(GLIContext ctx, GLint location, GLsizei count, const GLuint *value); + void (*uniform3uiv_EXT)(GLIContext ctx, GLint location, GLsizei count, const GLuint *value); + void (*uniform4uiv_EXT)(GLIContext ctx, GLint location, GLsizei count, const GLuint *value); + void (*get_uniformuiv_EXT)(GLIContext ctx, GLuint program, GLint location, GLuint *params); + void (*bind_frag_data_location_EXT)(GLIContext ctx, GLuint program, GLuint colorNumber, const GLchar *name); + GLint (*get_frag_data_location_EXT)(GLIContext ctx, GLuint program, const GLchar *name); + + /* EXT_draw_buffers2 */ + void (*color_mask_indexed_EXT) (GLIContext ctx, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); + void (*enable_indexed_EXT) (GLIContext ctx, GLenum target, GLuint index); + void (*disable_indexed_EXT) (GLIContext ctx, GLenum target, GLuint index); + GLboolean (*is_enabled_indexed_EXT) (GLIContext ctx, GLenum target, GLuint index); + + /* OpenGL 2.1 */ + void (*uniform_matrix2x3fv) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*uniform_matrix3x2fv) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*uniform_matrix2x4fv) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*uniform_matrix4x2fv) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*uniform_matrix3x4fv) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*uniform_matrix4x3fv) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + + /* EXT_framebuffer_blit and EXT_framebuffer_multisample */ + void (*blit_framebuffer_EXT) (GLIContext ctx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); + void (*renderbuffer_storage_multisample_EXT) (GLIContext ctx, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); + + /* NV_conditional_render */ + void (*begin_conditional_render_NV)(GLIContext ctx, GLuint id, GLenum mode); + void (*end_conditional_render_NV)(GLIContext ctx); + + void (*get_attached_shaders) (GLIContext ctx, GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); + + /* EXT_provoking_vertex */ + void (*provoking_vertex_EXT) (GLIContext ctx, GLenum mode); + + /* ARB_instanced_arrays */ + void (*vertex_attrib_divisor) (GLIContext ctx, GLuint index, GLuint divisor); + /* ARB_instanced_arrays and ARB_draw_instanced */ + void (*draw_arrays_instanced)(GLIContext ctx, GLenum mode, GLint first, GLsizei count, GLsizei instancecount); + void (*draw_elements_instanced)(GLIContext ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instancecount); + + /* ARB_draw_elements_base_vertex */ + void (*draw_elements_base_vertex)(GLIContext ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint base_vertex); + void (*draw_range_elements_base_vertex)(GLIContext ctx, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint base_vertex); + void (*draw_elements_instanced_base_vertex)(GLIContext ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instancecount, GLint base_vertex); + void (*multi_draw_elements_base_vertex)(GLIContext ctx, GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei drawcount, const GLint *base_vertex); + + /* ARB_vertex_array_object / OES_vertex_array_object */ + void (*bind_vertex_array_ARB)(GLIContext ctx, GLuint array); + void (*delete_vertex_arrays_ARB)(GLIContext ctx, GLsizei n, const GLuint *arrays); + void (*gen_vertex_arrays_ARB)(GLIContext ctx, GLsizei n, GLuint *arrays); + GLboolean (*is_vertex_array_ARB)(GLIContext ctx, GLuint array); + + /* APPLE_vertex_point_size */ + void (*point_size_pointer) (GLIContext ctx, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*vertex_point_sizef_APPLE) (GLIContext ctx, GLfloat size); + + /* OpenGL 3.0 */ + void (*clear_bufferiv)(GLIContext ctx, GLenum buffer, GLint drawbuffer, const GLint *value); + void (*clear_bufferuiv)(GLIContext ctx, GLenum buffer, GLint drawbuffer, const GLuint *value); + void (*clear_bufferfv)(GLIContext ctx, GLenum buffer, GLint drawbuffer, const GLfloat *value); + void (*clear_bufferfi)(GLIContext ctx, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); + const GLubyte* (*get_stringi)(GLIContext ctx, GLenum name, GLuint index); + + /* ARB_sync */ + GLsync (*fence_sync) (GLIContext ctx, GLenum condition, GLbitfield flags); + GLboolean (*is_sync) (GLIContext ctx, GLsync sync); + void (*delete_sync) (GLIContext ctx, GLsync sync); + GLenum (*client_wait_sync) (GLIContext ctx, GLsync sync, GLbitfield flags, GLuint64 timeout); + void (*wait_sync) (GLIContext ctx, GLsync sync, GLbitfield flags, GLuint64 timeout); + void (*get_integer64v_sync) (GLIContext ctx, GLenum pname, GLint64 *params); + void (*get_synciv) (GLIContext ctx, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); + + /* ARB_texture_multisample */ + void (*tex_image2D_multisample)(GLIContext ctx, GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); + void (*tex_image3D_multisample)(GLIContext ctx, GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); + void (*get_multisamplefv)(GLIContext ctx, GLenum pname, GLuint index, GLfloat *val); + void (*sample_maski)(GLIContext ctx, GLuint index, GLbitfield mask); + + /* ARB_texture_buffer_object */ + void (*tex_buffer)(GLIContext ctx, GLenum target, GLenum internalformat, GLuint buffer); + + /* ARB_copy_buffer */ + void (*copy_buffer_sub_data)(GLIContext ctx, GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size); + + /* NV_primitive_restart */ + void (*primitive_restart_index)(GLIContext ctx, GLuint index); + + /* EXT_timer_query */ + void (*get_query_objecti64v) (GLIContext ctx, GLuint id, GLenum pname, GLint64EXT *params); + void (*get_query_objectui64v) (GLIContext ctx, GLuint id, GLenum pname, GLuint64EXT *params); + + /* ARB_map_buffer_range */ + GLvoid *(*map_buffer_range) (GLIContext ctx, GLenum target, GLintptr offset, GLsizeiptr length, GLenum access); + void (*flush_mapped_buffer_range) (GLIContext ctx, GLenum target, GLintptr offset, GLsizeiptr length); + + /* ARB_timer_query */ + void (*query_counter) (GLIContext ctx, GLuint id, GLenum target); + void (*get_integer64i_v) (GLIContext ctx, GLenum target, GLuint index, GLint64 *data); + void (*get_buffer_parameteri64v)(GLIContext ctx, GLenum target, GLenum pname, GLint64 *params); + + /* ARB_sampler_object */ + void (*gen_samplers) (GLIContext ctx, GLsizei count, GLuint *samplers); + void (*delete_samplers) (GLIContext ctx, GLsizei count, const GLuint *samplers); + GLboolean (*is_sampler) (GLIContext ctx, GLuint sampler); + void (*bind_sampler) (GLIContext ctx, GLuint unit, GLuint sampler); + void (*sampler_parameteri) (GLIContext ctx, GLuint sampler, GLenum pname, GLint param); + void (*sampler_parameteriv) (GLIContext ctx, GLuint sampler, GLenum pname, const GLint *param); + void (*sampler_parameterf) (GLIContext ctx, GLuint sampler, GLenum pname, GLfloat param); + void (*sampler_parameterfv) (GLIContext ctx, GLuint sampler, GLenum pname, const GLfloat *param); + void (*sampler_parameterIiv) (GLIContext ctx, GLuint sampler, GLenum pname, const GLint *param); + void (*sampler_parameterIuiv) (GLIContext ctx, GLuint sampler, GLenum pname, const GLuint *param); + void (*get_sampler_parameteriv) (GLIContext ctx, GLuint sampler, GLenum pname, GLint *params); + void (*get_sampler_parameterfv) (GLIContext ctx, GLuint sampler, GLenum pname, GLfloat *params); + void (*get_sampler_parameterIiv) (GLIContext ctx, GLuint sampler, GLenum pname, GLint *params); + void (*get_sampler_parameterIuiv) (GLIContext ctx, GLuint sampler, GLenum pname, GLuint *params); + + /* EXT_debug_label */ + void (*label_object_EXT)(GLIContext ctx, GLenum type, GLuint object, GLsizei length, const GLchar *label); + void (*get_object_label_EXT)(GLIContext ctx, GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); + + /* EXT_debug_marker */ + void (*insert_event_marker_EXT)(GLIContext ctx, GLsizei length, const GLchar *marker); + void (*push_group_marker_EXT)(GLIContext ctx, GLsizei length, const GLchar *marker); + void (*pop_group_marker_EXT)(GLIContext ctx); + + /* ARB_separate_shader_objects */ + void (*use_program_stages)(GLIContext ctx, GLuint pipeline, GLbitfield stages, GLuint program); + void (*active_shader_program)(GLIContext ctx, GLuint pipeline, GLuint program); + GLuint (*create_shader_programv)(GLIContext ctx, GLenum type, GLsizei count, const GLchar* const *strings); + void (*bind_program_pipeline)(GLIContext ctx, GLuint pipeline); + void (*delete_program_pipelines)(GLIContext ctx, GLsizei n, const GLuint *pipelines); + void (*gen_program_pipelines)(GLIContext ctx, GLsizei n, GLuint *pipelines); + GLboolean (*is_program_pipeline)(GLIContext ctx, GLuint pipeline); + void (*get_program_pipelineiv)(GLIContext ctx, GLuint pipeline, GLenum pname, GLint *params); + void (*validate_program_pipeline)(GLIContext ctx, GLuint pipeline); + void (*get_program_pipeline_info_log)(GLIContext ctx, GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); + void (*program_uniform1i)(GLIContext ctx, GLuint program, GLint location, GLint x); + void (*program_uniform2i)(GLIContext ctx, GLuint program, GLint location, GLint x, GLint y); + void (*program_uniform3i)(GLIContext ctx, GLuint program, GLint location, GLint x, GLint y, GLint z); + void (*program_uniform4i)(GLIContext ctx, GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w); + void (*program_uniform1f)(GLIContext ctx, GLuint program, GLint location, GLfloat x); + void (*program_uniform2f)(GLIContext ctx, GLuint program, GLint location, GLfloat x, GLfloat y); + void (*program_uniform3f)(GLIContext ctx, GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z); + void (*program_uniform4f)(GLIContext ctx, GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); + void (*program_uniform1iv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); + void (*program_uniform2iv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); + void (*program_uniform3iv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); + void (*program_uniform4iv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); + void (*program_uniform1fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); + void (*program_uniform2fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); + void (*program_uniform3fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); + void (*program_uniform4fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); + void (*program_uniform_matrix2fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform_matrix3fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform_matrix4fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform1ui)(GLIContext ctx, GLuint program, GLint location, GLuint x); + void (*program_uniform2ui)(GLIContext ctx, GLuint program, GLint location, GLuint x, GLuint y); + void (*program_uniform3ui)(GLIContext ctx, GLuint program, GLint location, GLuint x, GLuint y, GLuint z); + void (*program_uniform4ui)(GLIContext ctx, GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w); + void (*program_uniform1uiv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); + void (*program_uniform2uiv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); + void (*program_uniform3uiv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); + void (*program_uniform4uiv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); + void (*program_uniform_matrix2x3fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform_matrix3x2fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform_matrix2x4fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform_matrix4x2fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform_matrix3x4fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform_matrix4x3fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + + /* ARB_blend_func_extended */ + void (*bind_frag_data_location_indexed) (GLIContext ctx, GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); + GLint (*get_frag_data_index) (GLIContext ctx, GLuint program, const GLchar *name); + + /* ARB_draw_buffers_blend */ + void (*blend_func_i) (GLIContext ctx, GLuint buf, GLenum src, GLenum dst); + void (*blend_func_separate_i) (GLIContext ctx, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); + void (*blend_equation_i) (GLIContext ctx, GLuint buf, GLenum mode); + void (*blend_equation_separate_i) (GLIContext ctx, GLuint buf, GLenum modeRGB, GLenum modeAlpha); + + /* ARB_shading_language_include */ + void (*named_string_ARB) (GLIContext ctx, GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); + void (*delete_named_string_ARB) (GLIContext ctx, GLint namelen, const GLchar *name); + void (*compile_shader_include_ARB) (GLIContext ctx, GLuint shader, GLsizei count, const GLchar* const *path, const GLint *length); + GLboolean (*is_named_string_ARB) (GLIContext ctx, GLint namelen, const GLchar *name); + void (*get_named_string_ARB) (GLIContext ctx, GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); + void (*get_named_string_iv_ARB) (GLIContext ctx, GLint namelen, const GLchar *name, GLenum pname, GLint *params); + + /* ARB_ES2_compatibility */ + void (*release_shader_compiler)(GLIContext ctx); + void (*shader_binary)(GLIContext ctx, GLint n, GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLint length); + void (*get_shader_precision_format)(GLIContext ctx, GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); + void (*depth_rangef) (GLIContext ctx, GLclampf zNear, GLclampf zFar); + void (*clear_depthf) (GLIContext ctx, GLclampf depth); + + /* ARB_vertex_type_2_10_10_10_rev */ + void (*vertex_attribP1ui) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, GLuint value); + void (*vertex_attribP2ui) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, GLuint value); + void (*vertex_attribP3ui) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, GLuint value); + void (*vertex_attribP4ui) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, GLuint value); + void (*vertex_attribP1uiv) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, const GLuint *value); + void (*vertex_attribP2uiv) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, const GLuint *value); + void (*vertex_attribP3uiv) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, const GLuint *value); + void (*vertex_attribP4uiv) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, const GLuint *value); + + /* ARB_get_program_binary */ + void (*get_program_binary) (GLIContext ctx, GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); + void (*program_binary) (GLIContext ctx, GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length); + + /* ARB_sample_shading */ + void (*min_sample_shading) (GLIContext ctx, GLclampf value); + + /* ARB_viewport_array */ + void (*viewport_arrayv) (GLIContext ctx, GLuint first, GLsizei count, const GLfloat * v); + void (*viewport_indexedf) (GLIContext ctx, GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); + void (*viewport_indexedfv) (GLIContext ctx, GLuint index, const GLfloat * v); + void (*scissor_arrayv) (GLIContext ctx, GLuint first, GLsizei count, const GLint * v); + void (*scissor_indexed) (GLIContext ctx, GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); + void (*scissor_indexedv) (GLIContext ctx, GLuint index, const GLint * v); + void (*depth_range_arrayv) (GLIContext ctx, GLuint first, GLsizei count, const GLclampd * v); + void (*depth_range_indexed) (GLIContext ctx, GLuint index, GLclampd n, GLclampd f); + void (*get_floati_v) (GLIContext ctx, GLenum target, GLuint index, GLfloat *data); + void (*get_doublei_v) (GLIContext ctx, GLenum target, GLuint index, GLdouble *data); + + /* ARB_draw_indirect */ + void (*draw_arrays_indirect) (GLIContext ctx, GLenum mode, const GLvoid *indirect); + void (*draw_elements_indirect) (GLIContext ctx, GLenum mode, GLenum type, const GLvoid *indirect); + + /* ARB_tessellation_shader */ + void (*patch_parameteri) (GLIContext ctx, GLenum pname, GLint value); + void (*patch_parameterfv) (GLIContext ctx, GLenum pname, const GLfloat* values); + + /* ARB_transform_feedback2 */ + void (*bind_transform_feedback) (GLIContext ctx, GLenum target, GLuint name); + void (*gen_transform_feedbacks) (GLIContext ctx, GLsizei n, GLuint* ids); + void (*delete_transform_feedbacks) (GLIContext ctx, GLsizei n, const GLuint* ids); + void (*pause_transform_feedback) (GLIContext ctx); + void (*resume_transform_feedback) (GLIContext ctx); + GLboolean (*is_transform_feedback) (GLIContext ctx, GLuint name); + void (*draw_transform_feedback) (GLIContext ctx, GLenum mode, GLuint name); + + /* ARB_transform_feedback3 */ + void (*begin_query_indexed) (GLIContext ctx, GLenum target, GLuint index, GLuint id); + void (*end_query_indexed) (GLIContext ctx, GLenum target, GLuint index); + void (*get_query_indexediv) (GLIContext ctx, GLenum target, GLuint index, GLenum pname, GLint *params); + void (*draw_transform_feedback_stream) (GLIContext ctx, GLenum mode, GLuint name, GLuint stream); + + /* ARB_separate_shader_objects && ARB_gpu_shader_fp64 */ + void (*program_uniform1d)(GLIContext ctx, GLuint program, GLint location, GLdouble x); + void (*program_uniform2d)(GLIContext ctx, GLuint program, GLint location, GLdouble x, GLdouble y); + void (*program_uniform3d)(GLIContext ctx, GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); + void (*program_uniform4d)(GLIContext ctx, GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*program_uniform1dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLdouble *value); + void (*program_uniform2dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLdouble *value); + void (*program_uniform3dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLdouble *value); + void (*program_uniform4dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLdouble *value); + void (*program_uniform_matrix2dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix3dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix4dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix2x3dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix3x2dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix2x4dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix4x2dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix3x4dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix4x3dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + + /* ARB_gpu_shader_fp64 */ + void (*uniform1d)(GLIContext ctx, GLint location, GLdouble x); + void (*uniform2d)(GLIContext ctx, GLint location, GLdouble x, GLdouble y); + void (*uniform3d)(GLIContext ctx, GLint location, GLdouble x, GLdouble y, GLdouble z); + void (*uniform4d)(GLIContext ctx, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*uniform1dv)(GLIContext ctx, GLint location, GLsizei count, const GLdouble *value); + void (*uniform2dv)(GLIContext ctx, GLint location, GLsizei count, const GLdouble *value); + void (*uniform3dv)(GLIContext ctx, GLint location, GLsizei count, const GLdouble *value); + void (*uniform4dv)(GLIContext ctx, GLint location, GLsizei count, const GLdouble *value); + void (*uniform_matrix2dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix3dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix4dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix2x3dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix3x2dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix2x4dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix4x2dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix3x4dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix4x3dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*get_uniformdv)(GLIContext ctx, GLuint program_obj, GLint location, GLdouble *params); + + /* ARB_vertex_attrib_64bit */ + void (*vertex_attribl1d)(GLIContext ctx, GLuint index, GLdouble x); + void (*vertex_attribl2d)(GLIContext ctx, GLuint index, GLdouble x, GLdouble y); + void (*vertex_attribl3d)(GLIContext ctx, GLuint index, GLdouble x, GLdouble y, GLdouble z); + void (*vertex_attribl4d)(GLIContext ctx, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*vertex_attribl1dv)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attribl2dv)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attribl3dv)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attribl4dv)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attrib_lpointer)(GLIContext ctx, GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); + void (*get_vertex_attrib_ldv)(GLIContext ctx, GLuint index, GLenum pname, GLdouble *params); + + /* ARB_shader_subroutine */ + GLint (*get_subroutine_uniform_location)(GLIContext ctx, GLuint program, GLenum shadertype, const GLchar *name); + GLuint (*get_subroutine_index)(GLIContext ctx, GLuint program, GLenum shadertype, const GLchar *name); + void (*get_active_subroutine_uniformiv)(GLIContext ctx, GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); + void (*get_active_subroutine_uniform_name)(GLIContext ctx, GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); + void (*get_active_subroutine_name)(GLIContext ctx, GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); + void (*uniform_subroutinesuiv)(GLIContext ctx, GLenum shadertype, GLsizei count, const GLuint *indices); + void (*get_uniform_subroutineuiv)(GLIContext ctx, GLenum shadertype, GLint location, GLuint *params); + void (*get_program_stageiv)(GLIContext ctx, GLuint program, GLenum shadertype, GLenum pname, GLint *values); + + + /* ARB_internalformat_query */ + void (*get_internal_formativ) (GLIContext ctx, GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params); + + /* ARB_texture_storage */ + void (*tex_storage1D) (GLIContext ctx, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); + void (*tex_storage2D) (GLIContext ctx, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); + void (*tex_storage3D) (GLIContext ctx, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); + + /* GL_APPLE_label_process */ + void (*label_object_with_responsible_process_APPLE) (GLIContext ctx, GLenum type, GLuint name, GLint pid); + + /* GL_NV_texture_barrier */ + void (*texture_barrier_NV) (GLIContext ctx); + +} GLIFunctionDispatch; + + +#ifdef __cplusplus +} +#endif + +#endif /* _GLIDISPATCH_H */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gltypes.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gltypes.h" new file mode 100644 index 0000000..bba4bef --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gltypes.h" @@ -0,0 +1,59 @@ +/* + Copyright: (c) 2010-2012 Apple Inc. All rights reserved. +*/ +#ifndef __gltypes_h_ +#define __gltypes_h_ + +#include + +typedef uint32_t GLbitfield; +typedef uint8_t GLboolean; +typedef int8_t GLbyte; +typedef float GLclampf; +typedef uint32_t GLenum; +typedef float GLfloat; +typedef int32_t GLint; +typedef int16_t GLshort; +typedef int32_t GLsizei; +typedef uint8_t GLubyte; +typedef uint32_t GLuint; +typedef uint16_t GLushort; +typedef void GLvoid; + +#if !defined(GL_VERSION_2_0) +typedef char GLchar; +#endif +#if !defined(GL_ARB_shader_objects) +typedef char GLcharARB; +typedef void *GLhandleARB; +#endif +typedef double GLdouble; +typedef double GLclampd; +#if !defined(ARB_ES2_compatibility) && !defined(GL_VERSION_4_1) +typedef int32_t GLfixed; +#endif +#if !defined(GL_ARB_half_float_vertex) && !defined(GL_VERSION_3_0) +typedef uint16_t GLhalf; +#endif +#if !defined(GL_ARB_half_float_pixel) +typedef uint16_t GLhalfARB; +#endif +#if !defined(GL_ARB_sync) && !defined(GL_VERSION_3_2) +typedef int64_t GLint64; +typedef struct __GLsync *GLsync; +typedef uint64_t GLuint64; +#endif +#if !defined(GL_EXT_timer_query) +typedef int64_t GLint64EXT; +typedef uint64_t GLuint64EXT; +#endif +#if !defined(GL_VERSION_1_5) +typedef intptr_t GLintptr; +typedef intptr_t GLsizeiptr; +#endif +#if !defined(GL_ARB_vertex_buffer_object) +typedef intptr_t GLintptrARB; +typedef intptr_t GLsizeiptrARB; +#endif + +#endif diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/glu.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/glu.h" new file mode 100644 index 0000000..12597a6 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/glu.h" @@ -0,0 +1,304 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef __glu_h__ +#define __glu_h__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/*************************************************************/ + +/* Extensions */ +#define GLU_EXT_object_space_tess 1 +#define GLU_EXT_nurbs_tessellator 1 + +/* Boolean */ +#define GLU_FALSE 0 +#define GLU_TRUE 1 + +/* Version */ +#define GLU_VERSION_1_1 1 +#define GLU_VERSION_1_2 1 +#define GLU_VERSION_1_3 1 + +/* StringName */ +#define GLU_VERSION 100800 +#define GLU_EXTENSIONS 100801 + +/* ErrorCode */ +#define GLU_INVALID_ENUM 100900 +#define GLU_INVALID_VALUE 100901 +#define GLU_OUT_OF_MEMORY 100902 +#define GLU_INCOMPATIBLE_GL_VERSION 100903 +#define GLU_INVALID_OPERATION 100904 + + +/* NurbsDisplay */ +/* GLU_FILL */ +#define GLU_OUTLINE_POLYGON 100240 +#define GLU_OUTLINE_PATCH 100241 + +/* NurbsCallback */ +#define GLU_NURBS_ERROR 100103 +#define GLU_ERROR 100103 +#define GLU_NURBS_BEGIN 100164 +#define GLU_NURBS_BEGIN_EXT 100164 +#define GLU_NURBS_VERTEX 100165 +#define GLU_NURBS_VERTEX_EXT 100165 +#define GLU_NURBS_NORMAL 100166 +#define GLU_NURBS_NORMAL_EXT 100166 +#define GLU_NURBS_COLOR 100167 +#define GLU_NURBS_COLOR_EXT 100167 +#define GLU_NURBS_TEXTURE_COORD 100168 +#define GLU_NURBS_TEX_COORD_EXT 100168 +#define GLU_NURBS_END 100169 +#define GLU_NURBS_END_EXT 100169 +#define GLU_NURBS_BEGIN_DATA 100170 +#define GLU_NURBS_BEGIN_DATA_EXT 100170 +#define GLU_NURBS_VERTEX_DATA 100171 +#define GLU_NURBS_VERTEX_DATA_EXT 100171 +#define GLU_NURBS_NORMAL_DATA 100172 +#define GLU_NURBS_NORMAL_DATA_EXT 100172 +#define GLU_NURBS_COLOR_DATA 100173 +#define GLU_NURBS_COLOR_DATA_EXT 100173 +#define GLU_NURBS_TEXTURE_COORD_DATA 100174 +#define GLU_NURBS_TEX_COORD_DATA_EXT 100174 +#define GLU_NURBS_END_DATA 100175 +#define GLU_NURBS_END_DATA_EXT 100175 + +/* NurbsError */ +#define GLU_NURBS_ERROR1 100251 /* spline order un-supported */ +#define GLU_NURBS_ERROR2 100252 /* too few knots */ +#define GLU_NURBS_ERROR3 100253 /* valid knot range is empty */ +#define GLU_NURBS_ERROR4 100254 /* decreasing knot sequence */ +#define GLU_NURBS_ERROR5 100255 /* knot multiplicity > spline order */ +#define GLU_NURBS_ERROR6 100256 /* endcurve() must follow bgncurve() */ +#define GLU_NURBS_ERROR7 100257 /* bgncurve() must precede endcurve() */ +#define GLU_NURBS_ERROR8 100258 /* ctrlarray or knot vector is NULL */ +#define GLU_NURBS_ERROR9 100259 /* can't draw pwlcurves */ +#define GLU_NURBS_ERROR10 100260 /* missing gluNurbsCurve() */ +#define GLU_NURBS_ERROR11 100261 /* missing gluNurbsSurface() */ +#define GLU_NURBS_ERROR12 100262 /* endtrim() must precede endsurface() */ +#define GLU_NURBS_ERROR13 100263 /* bgnsurface() must precede endsurface() */ +#define GLU_NURBS_ERROR14 100264 /* curve of improper type passed as trim curve */ +#define GLU_NURBS_ERROR15 100265 /* bgnsurface() must precede bgntrim() */ +#define GLU_NURBS_ERROR16 100266 /* endtrim() must follow bgntrim() */ +#define GLU_NURBS_ERROR17 100267 /* bgntrim() must precede endtrim()*/ +#define GLU_NURBS_ERROR18 100268 /* invalid or missing trim curve*/ +#define GLU_NURBS_ERROR19 100269 /* bgntrim() must precede pwlcurve() */ +#define GLU_NURBS_ERROR20 100270 /* pwlcurve referenced twice*/ +#define GLU_NURBS_ERROR21 100271 /* pwlcurve and nurbscurve mixed */ +#define GLU_NURBS_ERROR22 100272 /* improper usage of trim data type */ +#define GLU_NURBS_ERROR23 100273 /* nurbscurve referenced twice */ +#define GLU_NURBS_ERROR24 100274 /* nurbscurve and pwlcurve mixed */ +#define GLU_NURBS_ERROR25 100275 /* nurbssurface referenced twice */ +#define GLU_NURBS_ERROR26 100276 /* invalid property */ +#define GLU_NURBS_ERROR27 100277 /* endsurface() must follow bgnsurface() */ +#define GLU_NURBS_ERROR28 100278 /* intersecting or misoriented trim curves */ +#define GLU_NURBS_ERROR29 100279 /* intersecting trim curves */ +#define GLU_NURBS_ERROR30 100280 /* UNUSED */ +#define GLU_NURBS_ERROR31 100281 /* unconnected trim curves */ +#define GLU_NURBS_ERROR32 100282 /* unknown knot error */ +#define GLU_NURBS_ERROR33 100283 /* negative vertex count encountered */ +#define GLU_NURBS_ERROR34 100284 /* negative byte-stride */ +#define GLU_NURBS_ERROR35 100285 /* unknown type descriptor */ +#define GLU_NURBS_ERROR36 100286 /* null control point reference */ +#define GLU_NURBS_ERROR37 100287 /* duplicate point on pwlcurve */ + +/* NurbsProperty */ +#define GLU_AUTO_LOAD_MATRIX 100200 +#define GLU_CULLING 100201 +#define GLU_SAMPLING_TOLERANCE 100203 +#define GLU_DISPLAY_MODE 100204 +#define GLU_PARAMETRIC_TOLERANCE 100202 +#define GLU_SAMPLING_METHOD 100205 +#define GLU_U_STEP 100206 +#define GLU_V_STEP 100207 +#define GLU_NURBS_MODE 100160 +#define GLU_NURBS_MODE_EXT 100160 +#define GLU_NURBS_TESSELLATOR 100161 +#define GLU_NURBS_TESSELLATOR_EXT 100161 +#define GLU_NURBS_RENDERER 100162 +#define GLU_NURBS_RENDERER_EXT 100162 + +/* NurbsSampling */ +#define GLU_OBJECT_PARAMETRIC_ERROR 100208 +#define GLU_OBJECT_PARAMETRIC_ERROR_EXT 100208 +#define GLU_OBJECT_PATH_LENGTH 100209 +#define GLU_OBJECT_PATH_LENGTH_EXT 100209 +#define GLU_PATH_LENGTH 100215 +#define GLU_PARAMETRIC_ERROR 100216 +#define GLU_DOMAIN_DISTANCE 100217 + +/* NurbsTrim */ +#define GLU_MAP1_TRIM_2 100210 +#define GLU_MAP1_TRIM_3 100211 + +/* QuadricDrawStyle */ +#define GLU_POINT 100010 +#define GLU_LINE 100011 +#define GLU_FILL 100012 +#define GLU_SILHOUETTE 100013 + +/* QuadricCallback */ +/* GLU_ERROR */ + +/* QuadricNormal */ +#define GLU_SMOOTH 100000 +#define GLU_FLAT 100001 +#define GLU_NONE 100002 + +/* QuadricOrientation */ +#define GLU_OUTSIDE 100020 +#define GLU_INSIDE 100021 + +/* TessCallback */ +#define GLU_TESS_BEGIN 100100 +#define GLU_BEGIN 100100 +#define GLU_TESS_VERTEX 100101 +#define GLU_VERTEX 100101 +#define GLU_TESS_END 100102 +#define GLU_END 100102 +#define GLU_TESS_ERROR 100103 +#define GLU_TESS_EDGE_FLAG 100104 +#define GLU_EDGE_FLAG 100104 +#define GLU_TESS_COMBINE 100105 +#define GLU_TESS_BEGIN_DATA 100106 +#define GLU_TESS_VERTEX_DATA 100107 +#define GLU_TESS_END_DATA 100108 +#define GLU_TESS_ERROR_DATA 100109 +#define GLU_TESS_EDGE_FLAG_DATA 100110 +#define GLU_TESS_COMBINE_DATA 100111 + +/* TessContour */ +#define GLU_CW 100120 +#define GLU_CCW 100121 +#define GLU_INTERIOR 100122 +#define GLU_EXTERIOR 100123 +#define GLU_UNKNOWN 100124 + +/* TessProperty */ +#define GLU_TESS_WINDING_RULE 100140 +#define GLU_TESS_BOUNDARY_ONLY 100141 +#define GLU_TESS_TOLERANCE 100142 + +/* TessError */ +#define GLU_TESS_ERROR1 100151 +#define GLU_TESS_ERROR2 100152 +#define GLU_TESS_ERROR3 100153 +#define GLU_TESS_ERROR4 100154 +#define GLU_TESS_ERROR5 100155 +#define GLU_TESS_ERROR6 100156 +#define GLU_TESS_ERROR7 100157 +#define GLU_TESS_ERROR8 100158 +#define GLU_TESS_MISSING_BEGIN_POLYGON 100151 +#define GLU_TESS_MISSING_BEGIN_CONTOUR 100152 +#define GLU_TESS_MISSING_END_POLYGON 100153 +#define GLU_TESS_MISSING_END_CONTOUR 100154 +#define GLU_TESS_COORD_TOO_LARGE 100155 +#define GLU_TESS_NEED_COMBINE_CALLBACK 100156 + +/* TessWinding */ +#define GLU_TESS_WINDING_ODD 100130 +#define GLU_TESS_WINDING_NONZERO 100131 +#define GLU_TESS_WINDING_POSITIVE 100132 +#define GLU_TESS_WINDING_NEGATIVE 100133 +#define GLU_TESS_WINDING_ABS_GEQ_TWO 100134 + +/*************************************************************/ + + +#ifdef __cplusplus +class GLUnurbs; +class GLUquadric; +class GLUtesselator; + +typedef class GLUnurbs GLUnurbsObj OPENGL_DEPRECATED(10_0, 10_9); +typedef class GLUquadric GLUquadricObj OPENGL_DEPRECATED(10_0, 10_9); +typedef class GLUtesselator GLUtesselatorObj OPENGL_DEPRECATED(10_0, 10_9); +typedef class GLUtesselator GLUtriangulatorObj OPENGL_DEPRECATED(10_0, 10_9); +#else +typedef struct GLUnurbs GLUnurbs OPENGL_DEPRECATED(10_0, 10_9); +typedef struct GLUquadric GLUquadric OPENGL_DEPRECATED(10_0, 10_9); +typedef struct GLUtesselator GLUtesselator OPENGL_DEPRECATED(10_0, 10_9); + +typedef struct GLUnurbs GLUnurbsObj OPENGL_DEPRECATED(10_0, 10_9); +typedef struct GLUquadric GLUquadricObj OPENGL_DEPRECATED(10_0, 10_9); +typedef struct GLUtesselator GLUtesselatorObj OPENGL_DEPRECATED(10_0, 10_9); +typedef struct GLUtesselator GLUtriangulatorObj OPENGL_DEPRECATED(10_0, 10_9); +#endif + +#define GLU_TESS_MAX_COORD 1.0e150 + +extern void gluBeginCurve (GLUnurbs* nurb) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluBeginPolygon (GLUtesselator* tess) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluBeginSurface (GLUnurbs* nurb) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluBeginTrim (GLUnurbs* nurb) OPENGL_DEPRECATED(10_0, 10_9); +extern GLint gluBuild1DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data) OPENGL_DEPRECATED_MSG(10_2, 10_9, "Use glGenerateMipmap"); +extern GLint gluBuild1DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void *data) OPENGL_DEPRECATED_MSG(10_0, 10_9, "Use glGenerateMipmap"); +extern GLint gluBuild2DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data) OPENGL_DEPRECATED_MSG(10_2, 10_9, "Use glGenerateMipmap"); +extern GLint gluBuild2DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *data) OPENGL_DEPRECATED_MSG(10_0, 10_9, "Use glGenerateMipmap"); +extern GLint gluBuild3DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data) OPENGL_DEPRECATED_MSG(10_2, 10_9, "Use glGenerateMipmap"); +extern GLint gluBuild3DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data) OPENGL_DEPRECATED_MSG(10_2, 10_9, "Use glGenerateMipmap"); +extern GLboolean gluCheckExtension (const GLubyte *extName, const GLubyte *extString) OPENGL_DEPRECATED(10_2, 10_9); +extern void gluCylinder (GLUquadric* quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluDeleteNurbsRenderer (GLUnurbs* nurb) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluDeleteQuadric (GLUquadric* quad) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluDeleteTess (GLUtesselator* tess) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluEndCurve (GLUnurbs* nurb) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluEndPolygon (GLUtesselator* tess) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluEndSurface (GLUnurbs* nurb) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluEndTrim (GLUnurbs* nurb) OPENGL_DEPRECATED(10_0, 10_9); +extern const GLubyte * gluErrorString (GLenum error) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluGetNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat* data) OPENGL_DEPRECATED(10_0, 10_9); +extern const GLubyte * gluGetString (GLenum name) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluGetTessProperty (GLUtesselator* tess, GLenum which, GLdouble* data) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluLoadSamplingMatrices (GLUnurbs* nurb, const GLfloat *model, const GLfloat *perspective, const GLint *view) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluLookAt (GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, GLdouble centerX, GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble upZ) OPENGL_DEPRECATED_MSG(10_0, 10_9, "Use GLKMatrix4MakeLookAt"); +extern GLUnurbs* gluNewNurbsRenderer (void) OPENGL_DEPRECATED(10_0, 10_9); +extern GLUquadric* gluNewQuadric (void) OPENGL_DEPRECATED(10_0, 10_9); +extern GLUtesselator* gluNewTess (void) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluNextContour (GLUtesselator* tess, GLenum type) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluNurbsCallback (GLUnurbs* nurb, GLenum which, GLvoid (*CallBackFunc)()) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluNurbsCallbackData (GLUnurbs* nurb, GLvoid* userData) OPENGL_DEPRECATED(10_2, 10_9); +extern void gluNurbsCallbackDataEXT (GLUnurbs* nurb, GLvoid* userData) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluNurbsCurve (GLUnurbs* nurb, GLint knotCount, GLfloat *knots, GLint stride, GLfloat *control, GLint order, GLenum type) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat value) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluNurbsSurface (GLUnurbs* nurb, GLint sKnotCount, GLfloat* sKnots, GLint tKnotCount, GLfloat* tKnots, GLint sStride, GLint tStride, GLfloat* control, GLint sOrder, GLint tOrder, GLenum type) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluOrtho2D (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top) OPENGL_DEPRECATED_MSG(10_0, 10_9, "Use GLKMatrix4MakeOrtho"); +extern void gluPartialDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluPerspective (GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar) OPENGL_DEPRECATED_MSG(10_0, 10_9, "Use GLKMatrix4MakePerspective"); +extern void gluPickMatrix (GLdouble x, GLdouble y, GLdouble delX, GLdouble delY, GLint *viewport) OPENGL_DEPRECATED(10_0, 10_9); +extern GLint gluProject (GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* winX, GLdouble* winY, GLdouble* winZ) OPENGL_DEPRECATED_MSG(10_0, 10_9, "Use GLKMathProject"); +extern void gluPwlCurve (GLUnurbs* nurb, GLint count, GLfloat* data, GLint stride, GLenum type) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluQuadricCallback (GLUquadric* quad, GLenum which, GLvoid (*CallBackFunc)()) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluQuadricDrawStyle (GLUquadric* quad, GLenum draw) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluQuadricNormals (GLUquadric* quad, GLenum normal) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluQuadricOrientation (GLUquadric* quad, GLenum orientation) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluQuadricTexture (GLUquadric* quad, GLboolean texture) OPENGL_DEPRECATED(10_0, 10_9); +extern GLint gluScaleImage (GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void *dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid* dataOut) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluSphere (GLUquadric* quad, GLdouble radius, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessBeginContour (GLUtesselator* tess) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessBeginPolygon (GLUtesselator* tess, GLvoid* data) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessCallback (GLUtesselator* tess, GLenum which, GLvoid (*CallBackFunc)()) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessEndContour (GLUtesselator* tess) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessEndPolygon (GLUtesselator* tess) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessNormal (GLUtesselator* tess, GLdouble valueX, GLdouble valueY, GLdouble valueZ) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessProperty (GLUtesselator* tess, GLenum which, GLdouble data) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessVertex (GLUtesselator* tess, GLdouble *location, GLvoid* data) OPENGL_DEPRECATED(10_0, 10_9); +extern GLint gluUnProject (GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* objX, GLdouble* objY, GLdouble* objZ) OPENGL_DEPRECATED_MSG(10_0, 10_9, "Use GLKMathUnproject"); +extern GLint gluUnProject4 (GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble nearPlane, GLdouble farPlane, GLdouble* objX, GLdouble* objY, GLdouble* objZ, GLdouble* objW) OPENGL_DEPRECATED_MSG(10_2, 10_9, "Use GLKMathUnproject"); + +#ifdef __cplusplus +} +#endif + +#endif /* __glu_h__ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gluContext.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gluContext.h" new file mode 100644 index 0000000..fee55f9 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gluContext.h" @@ -0,0 +1,51 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _GLUCONTEXT_H +#define _GLUCONTEXT_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** GLU Context routines +*/ +extern GLint gluBuild1DMipmapsCTX( struct _CGLContextObject *ctx, + GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void *data) OPENGL_DEPRECATED(10_0, 10_9); +extern GLint gluBuild2DMipmapsCTX( struct _CGLContextObject *ctx, + GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *data) OPENGL_DEPRECATED(10_0, 10_9); +extern GLint gluBuild3DMipmapsCTX( struct _CGLContextObject *ctx, + GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data) OPENGL_DEPRECATED(10_2, 10_9); +extern GLint gluBuild1DMipmapLevelsCTX ( struct _CGLContextObject *ctx, + GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data) OPENGL_DEPRECATED(10_2, 10_9); +extern GLint gluBuild2DMipmapLevelsCTX ( struct _CGLContextObject *ctx, + GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data) OPENGL_DEPRECATED(10_2, 10_9); +extern GLint gluBuild3DMipmapLevelsCTX ( struct _CGLContextObject *ctx, + GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data) OPENGL_DEPRECATED(10_2, 10_9); + +extern void gluLookAtCTX( struct _CGLContextObject *ctx, GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, + GLdouble centerX, GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble upZ) OPENGL_DEPRECATED(10_0, 10_9); +extern GLUnurbs* gluNewNurbsRendererCTX(struct _CGLContextObject *ctx) OPENGL_DEPRECATED(10_0, 10_9); +extern GLUquadric* gluNewQuadricCTX( struct _CGLContextObject *ctx) OPENGL_DEPRECATED(10_0, 10_9); +extern GLUtesselator* gluNewTessCTX( struct _CGLContextObject *ctx) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluOrtho2DCTX( struct _CGLContextObject *ctx, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluPerspectiveCTX( struct _CGLContextObject *ctx, GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluPickMatrixCTX( struct _CGLContextObject *ctx, GLdouble x, GLdouble y, GLdouble delX, GLdouble delY, GLint *viewport) OPENGL_DEPRECATED(10_0, 10_9); +extern GLint gluScaleImageCTX( struct _CGLContextObject *ctx, GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void *dataIn, + GLsizei wOut, GLsizei hOut, GLenum typeOut, void* dataOut) OPENGL_DEPRECATED(10_0, 10_9); + +extern void gluCylinderCTX( struct _CGLContextObject *ctx, GLUquadric *qobj, GLdouble baseRadiusd, GLdouble topRadiusd, GLdouble heightd, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_9, 10_9); +extern void gluDiskCTX( struct _CGLContextObject *ctx, GLUquadric *qobj, GLdouble innerRadiusd, GLdouble outerRadiusd, GLint slices, GLint loops) OPENGL_DEPRECATED(10_9, 10_9); +extern void gluPartialDiskCTX( struct _CGLContextObject *ctx, GLUquadric *qobj, GLdouble innerRadiusd, GLdouble outerRadiusd, GLint slices, GLint loops, GLdouble startAngled, GLdouble sweepAngled) OPENGL_DEPRECATED(10_9, 10_9); +extern void gluSphereCTX( struct _CGLContextObject *ctx, GLUquadric *qobj, GLdouble radiusd, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_9, 10_9); + +#ifdef __cplusplus +} +#endif + +#endif /* _GLUCONTEXT_H */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gluMacro.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gluMacro.h" new file mode 100644 index 0000000..f0167ec --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Headers/gluMacro.h" @@ -0,0 +1,64 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _GLUMACRO_H +#define _GLUMACRO_H + +#include +#include + +/********************* GLU Macros *********************/ + +#define gluBuild1DMipmaps(target, internalFormat, width, format, type, data) \ + gluBuild1DMipmapsCTX(cgl_ctx, target, internalFormat, width, format, type, data) + +#define gluBuild2DMipmaps(target, internalFormat, width, height, format, type, data) \ + gluBuild2DMipmapsCTX(cgl_ctx, target, internalFormat, width, height, format, type, data) + +#define gluBuild3DMipmaps(target, internalFormat, width, height, depth, format, type, data) \ + gluBuild3DMipmapsCTX(cgl_ctx, target, internalFormat, width, height, depth, format, type, data) + +#define gluBuild1DMipmapLevels(target, internalFormat, width, format, type, level, base, max, data) \ + gluBuild1DMipmapLevelsCTX(cgl_ctx, target, internalFormat, width, format, type, level, base, max, data) + +#define gluBuild2DMipmapLevels(target, internalFormat, width, height, format, type, level, base, max, data) \ + gluBuild2DMipmapLevelsCTX(cgl_ctx, target, internalFormat, width, height, format, type, level, base, max, data) + +#define gluBuild3DMipmapLevels(target, internalFormat, width, height, depth, format, type, level, base, max, data) \ + gluBuild3DMipmapLevelsCTX(cgl_ctx, target, internalFormat, width, height, depth, format, type, level, base, max, data) + +#define gluLookAt(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ) \ + gluLookAtCTX(cgl_ctx, eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ) + +#define gluNewNurbsRenderer() \ + gluNewNurbsRendererCTX(cgl_ctx) + +#define gluNewQuadric() \ + gluNewQuadricCTX(cgl_ctx) + +#define gluOrtho2D(left, right, bottom, top) \ + gluOrtho2DCTX(cgl_ctx, left, right, bottom, top) + +#define gluPerspective(fovy, aspect, znear, zfar) \ + gluPerspectiveCTX(cgl_ctx, fovy, aspect, znear, zfar) + +#define gluPickMatrix(x, y, delx, dely, viewport) \ + gluPickMatrixCTX(cgl_ctx, x, y, delx, dely, viewport) + +#define gluScaleImage(format, wIn, hIn, typeIn, dataIn, wOut, hOut, typeOut, dataOut) \ + gluScaleImageCTX(cgl_ctx, format, wIn, hIn, typeIn, dataIn, wOut, hOut, typeOut, dataOut) + +#define gluCylinder(qobj, baseRadiusd, topRadiusd, heightd, slices, stacks) \ + gluCylinderCTX(cgl_ctx, qobj, baseRadiusd, topRadiusd, heightd, slices, stacks) + +#define gluDisk(qobj, innerRadiusd, outerRadiusd, slices, loops) \ + gluDiskCTX(cgl_ctx, qobj, innerRadiusd, outerRadiusd, slices, loops) + +#define gluPartialDisk(qobj, innerRadiusd, outerRadiusd, slices, loops, startAngled, sweepAngled) \ + gluPartialDiskCTX(cgl_ctx, qobj, innerRadiusd, outerRadiusd, slices, loops, startAngled, sweepAngled) + +#define gluSphere(qobj, radiusd, slices, stacks) \ + gluSphereCTX(cgl_ctx, qobj, radiusd, slices, stacks) + +#endif /* _GLUMACRO_H */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/3600/CVMCompiler" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/3600/CVMCompiler" new file mode 100755 index 0000000..b91eb5d Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/3600/CVMCompiler" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/3600/libCoreVMClient.mono.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/3600/libCoreVMClient.mono.dylib" new file mode 100755 index 0000000..976bf57 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/3600/libCoreVMClient.mono.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/CVMCompiler" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/CVMCompiler" new file mode 100755 index 0000000..1de5af1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/CVMCompiler" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/CVMServer" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/CVMServer" new file mode 100755 index 0000000..4825139 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/CVMServer" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/DumpGPURestart" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/DumpGPURestart" new file mode 100755 index 0000000..e4b9cae Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/DumpGPURestart" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/Legacy/CVMCompiler" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/Legacy/CVMCompiler" new file mode 100755 index 0000000..c69e16f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/Legacy/CVMCompiler" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/Legacy/libCoreVMClient.mono.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/Legacy/libCoreVMClient.mono.dylib" new file mode 100755 index 0000000..e13198f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/Legacy/libCoreVMClient.mono.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/Legacy/libLLVMContainer.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/Legacy/libLLVMContainer.dylib" new file mode 100755 index 0000000..46a1aaa Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/Legacy/libLLVMContainer.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/ReportGPURestart" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/ReportGPURestart" new file mode 100755 index 0000000..abda50a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/ReportGPURestart" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libCVMSPluginSupport.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libCVMSPluginSupport.dylib" new file mode 100755 index 0000000..cd82d77 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libCVMSPluginSupport.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libCoreFSCache.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libCoreFSCache.dylib" new file mode 100755 index 0000000..910f1a8 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libCoreFSCache.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libCoreVMClient.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libCoreVMClient.dylib" new file mode 100755 index 0000000..87447d7 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libCoreVMClient.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libGFXShared.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libGFXShared.dylib" new file mode 100755 index 0000000..eb282f1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libGFXShared.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libGL.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libGL.dylib" new file mode 100755 index 0000000..b896f46 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libGL.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libGLImage.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libGLImage.dylib" new file mode 100755 index 0000000..106336e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libGLImage.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libGLProgrammability.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libGLProgrammability.dylib" new file mode 100755 index 0000000..221ec74 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libGLProgrammability.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libGLU.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libGLU.dylib" new file mode 100755 index 0000000..c152503 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libGLU.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libGLVMPlugin.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libGLVMPlugin.dylib" new file mode 100755 index 0000000..bf5e3e4 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libGLVMPlugin.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libLLVMContainer.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libLLVMContainer.dylib" new file mode 100755 index 0000000..146e42e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Libraries/libLLVMContainer.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/OpenGL" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/OpenGL" new file mode 100755 index 0000000..e400164 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/OpenGL" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/BridgeSupport/OpenGL.bridgesupport" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/BridgeSupport/OpenGL.bridgesupport" new file mode 100644 index 0000000..9331c5f --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/BridgeSupport/OpenGL.bridgesupport" @@ -0,0 +1,9581 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/CVMSPlugin.exp" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/CVMSPlugin.exp" new file mode 100644 index 0000000..a36f9ac --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/CVMSPlugin.exp" @@ -0,0 +1 @@ +_cvmsModularBuilder diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/CVMSPluginAll.exp" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/CVMSPluginAll.exp" new file mode 100644 index 0000000..850c081 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/CVMSPluginAll.exp" @@ -0,0 +1,4 @@ +_cvmsModularBuilder +_cvmsPluginInit +_cvmsPluginTerm +_cvmsPluginBuild diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/CVMSPluginNoExec.exp" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/CVMSPluginNoExec.exp" new file mode 100644 index 0000000..522c024 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/CVMSPluginNoExec.exp" @@ -0,0 +1,4 @@ +_cvmsPluginInit +_cvmsPluginTerm +_cvmsPluginBuild + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/GLByteCodes.i386.bc" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/GLByteCodes.i386.bc" new file mode 100644 index 0000000..6e7b92a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/GLByteCodes.i386.bc" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/GLByteCodes.x86_64.bc" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/GLByteCodes.x86_64.bc" new file mode 100644 index 0000000..b0180b3 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/GLByteCodes.x86_64.bc" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/GLEngine.bundle/GLEngine" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/GLEngine.bundle/GLEngine" new file mode 100755 index 0000000..4bf8b3a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/GLEngine.bundle/GLEngine" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/GLRendererFloat.bundle/GLRendererFloat" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/GLRendererFloat.bundle/GLRendererFloat" new file mode 100755 index 0000000..57f7a4b Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/GLRendererFloat.bundle/GLRendererFloat" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/Info.plist" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/Info.plist" new file mode 100644 index 0000000..3d1d143 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/Info.plist" @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + OpenGL + CFBundleGetInfoString + OpenGL 12.0.34.11.0 + CFBundleIdentifier + com.apple.opengl + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + OpenGL + CFBundlePackageType + FMWK + CFBundleShortVersionString + 12.0.34 + CFBundleSignature + ???? + CFBundleVersion + 12.0.34 + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/cvmsConfig.plist" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/cvmsConfig.plist" new file mode 100644 index 0000000..1cace56 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/cvmsConfig.plist" @@ -0,0 +1,83 @@ + + + + + OpenGL + + bytecode + // TODO remove dead-code + plugin + /System/Library/Frameworks/OpenGL.framework/Libraries/libGLVMPlugin.dylib + options + 20 + cache_size + 0 + + OpenCLCPU + + bytecode + // TODO remove dead-code + plugin + /System/Library/Frameworks/OpenCL.framework/Libraries/libCLVMCPUPlugin.dylib + options + 272 + cache_size + 1048576 + + OpenCLPTX + + bytecode + // TODO remove dead-code + plugin + /System/Library/Frameworks/OpenCL.framework/Libraries/libCLVMPTXPlugin.dylib + options + 272 + cache_size + 0 + + OpenCLPTXSM1X + + bytecode + // TODO remove dead-codeSM1X + plugin + /System/Library/Frameworks/OpenCL.framework/Libraries/libCLVMPTXSM1XPlugin.dylib + options + 272 + cache_size + 0 + + OpenCLAMDil + + bytecode + // TODO remove dead-code + plugin + /System/Library/Frameworks/OpenCL.framework/Libraries/libCLVMAMDilPlugin.dylib + options + 272 + cache_size + 0 + + OpenCLAMDil_r700 + + bytecode + // TODO remove dead-code + plugin + /System/Library/Frameworks/OpenCL.framework/Libraries/libCLVMAMDil_r700Plugin.dylib + options + 272 + cache_size + 0 + + OpenCLIGIL + + bytecode + // TODO remove dead-code + plugin + /System/Library/Frameworks/OpenCL.framework/Libraries/libCLVMIGILPlugin.dylib + options + 272 + cache_size + 0 + + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/version.plist" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/version.plist" new file mode 100644 index 0000000..7eb7c0c --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Resources/version.plist" @@ -0,0 +1,16 @@ + + + + + BuildVersion + 139 + CFBundleShortVersionString + 12.0.34 + CFBundleVersion + 12.0.34 + ProjectName + OpenGL + SourceVersion + 12000034011000 + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/CGLContext.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/CGLContext.h" new file mode 100644 index 0000000..c59fc01 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/CGLContext.h" @@ -0,0 +1,36 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _CGLCONTEXT_H +#define _CGLCONTEXT_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/* +** Opaque declaration for private CGLContext data. +*/ +typedef struct _CGLPrivateObject *CGLPrivateObj; + +/* +** CGLContext structure. +*/ +struct _CGLContextObject { + GLIContext rend; + GLIFunctionDispatch disp; + CGLPrivateObj priv; + void *stak; +}; + + +#ifdef __cplusplus +} +#endif + +#endif /* _CGLCONTEXT_H */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/CGLCurrent.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/CGLCurrent.h" new file mode 100644 index 0000000..e39c93f --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/CGLCurrent.h" @@ -0,0 +1,29 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _CGLCURRENT_H +#define _CGLCURRENT_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +OPENGL_ASSUME_NONNULL_BEGIN + +/* +** Current context functions +*/ +extern CGLError CGLSetCurrentContext(CGLContextObj OPENGL_NULLABLE ctx); +extern CGLContextObj OPENGL_NULLABLE CGLGetCurrentContext(void); + +OPENGL_ASSUME_NONNULL_END + +#ifdef __cplusplus +} +#endif + +#endif /* _CGLCURRENT_H */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/CGLDevice.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/CGLDevice.h" new file mode 100644 index 0000000..d11a8cf --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/CGLDevice.h" @@ -0,0 +1,39 @@ +/* + Copyright: (c) 2008-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _CGLDEVICE_H +#define _CGLDEVICE_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +OPENGL_ASSUME_NONNULL_BEGIN + +typedef struct CGLShareGroupRec *CGLShareGroupObj OPENGL_AVAILABLE(10_6); + +CGLShareGroupObj OPENGL_NULLABLE CGLGetShareGroup(CGLContextObj ctx) OPENGL_AVAILABLE(10_6); + +typedef struct _cl_device_id * cl_device_id OPENGL_AVAILABLE(10_10); + +/* +** CGLGetDeviceFromGLRenderer returns the cl_device_id corresponding to the +** specified GL renderer ID. Use CGLDescribeRenderer to check if the renderer +** supports kCGLRPAcceleratedCompute before calling this function. If there is +** no cl_device_id corresponding to the specified renderer ID, the result is +** undefined. + */ +cl_device_id CGLGetDeviceFromGLRenderer(GLint rendererID) OPENGL_AVAILABLE(10_10); + +OPENGL_ASSUME_NONNULL_END + +#ifdef __cplusplus +} +#endif + +#endif /* _CGLDEVICE_H */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/CGLIOSurface.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/CGLIOSurface.h" new file mode 100644 index 0000000..eeb93c8 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/CGLIOSurface.h" @@ -0,0 +1,205 @@ +/* + Copyright: (c) 2008-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _CGLIOSURFACE_H +#define _CGLIOSURFACE_H + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +OPENGL_ASSUME_NONNULL_BEGIN + +typedef struct __IOSurface *IOSurfaceRef; + +/*! + @function CGLTexImageIOSurface2D + + CGLTexImageIOSurface2D() allows you to bind a single image plane from an IOSurfaceRef to + an OpenGL texture object. It is the rough equivalent to glTexImage2D(), except that + the underlying source data comes from an IOSurface rather than from an explicit pointer. + Note that unlike glTexImage2D(), the binding is "live", in that if the contents of + the IOSurface change, the contents become visible to OpenGL without making another + call to CGLTexImageIOSurface2D(). That being said, there are a few synchronization + things to worry about if you are using IOSurface to pass data between contexts and/or + different processes, or between the CPU and OpenGL. + + In general IOSurface follows Apple's cross-context synchronization rules for OpenGL. Put + simply, in order for changes done to an IOSurface on context A to become visible to context + B, you must flush context A's command stream (via an explicit call to glFlush, glFlushRenderAPPLE, + etc.), and then perform a 'bind' (in this case, glBindTexture()) on context B. Note that + in the case of an IOSurface backed texture used as a color buffer attachment for an FBO, + you are only required to call glBindFramebuffer() again. You do not have to call + glFramebufferTexture2D(). + + Likewise, if you make changes to an IOSurface with the CPU, you *must* wrap those changes + with calls to IOSurfaceLock() and IOSurfaceUnlock(), and call glBindTexture() again for + OpenGL to pick up the changes. + + Going in the other direction, if you want changes made with OpenGL to an IOSurface to become + visible to the CPU, you must also perform an explicit flush of the OpenGL context before + calling IOSurfaceLock(), or you may not get the most recent data. + + IOSurface and OpenGL make no guarantees about correctness if these rules are not followed. + + Because of the way IOSurface is currently implemented, it does not allow for any kind of + automatic format conversion to take place between the data in the IOSurface and the data seen + by the GPU. This means that OpenGL is going to interpret the data in the IOSurface exactly + as how it is specified by the format and type parameters passed to CGLTexImageIOSurface2D(). + + The upshot if this is that the only supported format/type combinations are those that have + exact matching hardware formats. The table at the bottom of this file lists the format/type/ + internalFormat combinations that are supported in Mac OS X 10.6. + + In cases where a given format/type combination has both an Internal Format and Sized Internal + Format, either one may be used. + + Note that CGLTexImageIOSurface2D for the most part doesn't care what the pixel format or bytes + per element of the IOSurface is. Instead it only enforces the rule that there must be enough + data in the plane being bound to cover what is required by the width/height/format/type + parameters. However, if you are using the IOSurface texture as a color buffer attachment to + an FBO, then you must ensure that the bytes per element value of the IOSurface must match the + effective bytes per pixel value for the format and type combination you are passing to OpenGL. + + @param ctx The CGLContextObj for the OpenGL context you are using + @param target Must currently be GL_TEXTURE_RECTANGLE_ARB as of Mac OS X 10.6.0. + @param internal_format One of the supported values from the table below that matches + the format/type combination. + @param width The width of the texture in pixels. + @param height The height of the texture in pixels. + @param format The OpenGL texture format enum + @param type The OpenGL texture type enum + @param ioSurface The IOSurfaceRef this texture is being bound to + @param plane Which plane of the IOSurface this texture is being bound to + +*/ +extern CGLError CGLTexImageIOSurface2D(CGLContextObj ctx, GLenum target, GLenum internal_format, + GLsizei width, GLsizei height, GLenum format, GLenum type, IOSurfaceRef ioSurface, GLuint plane) OPENGL_AVAILABLE(10_6); +/*! + + Supported IOSurface texture format/type/internal format combinations in Mac OS X 10.6 + + Format Type Internal Format Sized Internal Format + GL_ALPHA GL_UNSIGNED_BYTE GL_ALPHA GL_ALPHA8 + GL_LUMINANCE GL_UNSIGNED_BYTE GL_LUMINANCE GL_LUMINANCE8 + GL_LUMINANCE GL_UNSIGNED_BYTE GL_INTENSITY GL_INTENSITY8 + GL_LUMINANCE_ALPHA GL_UNSIGNED_BYTE GL_LUMINANCE_ALPHA GL_LUMINANCE8_ALPHA8 + + GL_ALPHA GL_UNSIGNED_SHORT GL_ALPHA GL_ALPHA16 + GL_LUMINANCE GL_UNSIGNED_SHORT GL_LUMINANCE GL_LUMINANCE16 + GL_LUMINANCE GL_UNSIGNED_SHORT GL_INTENSITY GL_INTENSITY16 + + GL_BGRA GL_UNSIGNED_SHORT_1_5_5_5_REV GL_RGBA GL_RGB5_A1 + GL_BGRA GL_UNSIGNED_SHORT_4_4_4_4_REV GL_RGBA GL_RGBA4 + + GL_BGRA GL_UNSIGNED_INT_8_8_8_8_REV GL_RGB GL_RGB8 + GL_BGRA GL_UNSIGNED_INT_8_8_8_8_REV GL_RGBA GL_RGBA8 + GL_BGRA GL_UNSIGNED_INT_2_10_10_10_REV GL_RGBA GL_RGB10_A2 + + // "Video" formats + + GL_RGB_422_APPLE GL_UNSIGNED_SHORT_8_8_APPLE GL_RGB GL_RGB8 + GL_RGB_422_APPLE GL_UNSIGNED_SHORT_8_8_REV_APPLE GL_RGB GL_RGB8 + GL_YCBCR_422_APPLE GL_UNSIGNED_SHORT_8_8_APPLE GL_RGB GL_RGB8 + GL_YCBCR_422_APPLE GL_UNSIGNED_SHORT_8_8_REV_APPLE GL_RGB GL_RGB8 + + // sRGB formats + + GL_BGRA GL_UNSIGNED_INT_8_8_8_8_REV GL_SRGB GL_SRGB8 + GL_BGRA GL_UNSIGNED_INT_8_8_8_8_REV GL_SRGB_ALPHA GL_SRGB8_ALPHA8 + + // Float formats for drivers that support APPLE_float_pixels: + + GL_RGBA GL_HALF_APPLE GL_RGB GL_RGB_FLOAT16_APPLE + GL_RGBA GL_HALF_APPLE GL_RGBA GL_RGBA_FLOAT16_APPLE + GL_RGBA GL_FLOAT GL_RGB GL_RGB_FLOAT32_APPLE + GL_RGBA GL_FLOAT GL_RGBA GL_RGBA_FLOAT32_APPLE + + // 16-bit unorm textures + GL_RGBA GL_UNSIGNED_SHORT GL_RGBA GL_RGBA16 + + // Integer formats for drivers that support EXT_texture_integer: + + GL_ALPHA_INTEGER_EXT GL_UNSIGNED_BYTE GL_ALPHA8UI + GL_ALPHA_INTEGER_EXT GL_BYTE GL_ALPHA8I + GL_ALPHA_INTEGER_EXT GL_UNSIGNED_SHORT GL_ALPHA16UI + GL_ALPHA_INTEGER_EXT GL_SHORT GL_ALPHA16I + GL_ALPHA_INTEGER_EXT GL_UNSIGNED_INT GL_ALPHA32UI + GL_ALPHA_INTEGER_EXT GL_INT GL_ALPHA32I + + GL_LUMINANCE_INTEGER_EXT GL_UNSIGNED_BYTE GL_LUMINANCE8UI + GL_LUMINANCE_INTEGER_EXT GL_BYTE GL_LUMINANCE8I + GL_LUMINANCE_INTEGER_EXT GL_UNSIGNED_SHORT GL_LUMINANCE16UI + GL_LUMINANCE_INTEGER_EXT GL_SHORT GL_LUMINANCE16I + GL_LUMINANCE_INTEGER_EXT GL_UNSIGNED_INT GL_LUMINANCE32UI + GL_LUMINANCE_INTEGER_EXT GL_INT GL_LUMINANCE32I + + GL_LUMINANCE_INTEGER_EXT GL_UNSIGNED_BYTE GL_INTENSITY8UI + GL_LUMINANCE_INTEGER_EXT GL_BYTE GL_INTENSITY8I + GL_LUMINANCE_INTEGER_EXT GL_UNSIGNED_SHORT GL_INTENSITY16UI + GL_LUMINANCE_INTEGER_EXT GL_SHORT GL_INTENSITY16I + GL_LUMINANCE_INTEGER_EXT GL_UNSIGNED_INT GL_INTENSITY32UI + GL_LUMINANCE_INTEGER_EXT GL_INT GL_INTENSITY32I + + GL_LUMINANCE_ALPHA_INTEGER_EXT GL_UNSIGNED_BYTE GL_LUMINANCE_ALPHA8UI + GL_LUMINANCE_ALPHA_INTEGER_EXT GL_BYTE GL_LUMINANCE_ALPHA8I + GL_LUMINANCE_ALPHA_INTEGER_EXT GL_UNSIGNED_SHORT GL_LUMINANCE_ALPHA16UI + GL_LUMINANCE_ALPHA_INTEGER_EXT GL_SHORT GL_LUMINANCE_ALPHA16I + GL_LUMINANCE_ALPHA_INTEGER_EXT GL_UNSIGNED_INT GL_LUMINANCE_ALPHA32UI + GL_LUMINANCE_ALPHA_INTEGER_EXT GL_INT GL_LUMINANCE_ALPHA32I + + GL_RGBA_INTEGER_EXT GL_UNSIGNED_BYTE GL_RGB8UI + GL_RGBA_INTEGER_EXT GL_BYTE GL_RGB8I + GL_RGBA_INTEGER_EXT GL_UNSIGNED_SHORT GL_RGB16UI + GL_RGBA_INTEGER_EXT GL_SHORT GL_RGB16I + GL_RGBA_INTEGER_EXT GL_UNSIGNED_INT GL_RGB32UI + GL_RGBA_INTEGER_EXT GL_INT GL_RGB32I + + GL_RGBA_INTEGER_EXT GL_UNSIGNED_BYTE GL_RGBA8UI + GL_RGBA_INTEGER_EXT GL_BYTE GL_RGBA8I + GL_RGBA_INTEGER_EXT GL_UNSIGNED_SHORT GL_RGBA16UI + GL_RGBA_INTEGER_EXT GL_SHORT GL_RGBA16I + GL_RGBA_INTEGER_EXT GL_UNSIGNED_INT GL_RGBA32UI + GL_RGBA_INTEGER_EXT GL_INT GL_RGBA32I + + // Additional supported formats for drivers that support ARB_texture_rg: + + GL_RED GL_UNSIGNED_BYTE GL_RED GL_R8 + GL_RED GL_UNSIGNED_SHORT GL_RED GL_R16 + GL_RED GL_HALF_APPLE GL_RED GL_R16F + GL_RED GL_FLOAT GL_RED GL_R32F + + GL_RG GL_UNSIGNED_BYTE GL_RG GL_RG8 + GL_RG GL_UNSIGNED_SHORT GL_RG GL_RG16 + GL_RG GL_HALF_APPLE GL_RG GL_R16F + GL_RG GL_FLOAT GL_RG GL_R32F + + GL_RED_INTEGER GL_UNSIGNED_BYTE GL_R8UI + GL_RED_INTEGER GL_BYTE GL_R8I + GL_RED_INTEGER GL_UNSIGNED_SHORT GL_R16UI + GL_RED_INTEGER GL_SHORT GL_R16I + GL_RED_INTEGER GL_UNSIGNED_INT GL_R32UI + GL_RED_INTEGER GL_INT GL_R32I + + GL_RG_INTEGER GL_UNSIGNED_BYTE GL_RG8UI + GL_RG_INTEGER GL_BYTE GL_RG8I + GL_RG_INTEGER GL_UNSIGNED_SHORT GL_RG16UI + GL_RG_INTEGER GL_SHORT GL_RG16I + GL_RG_INTEGER GL_UNSIGNED_INT GL_RG32UI + GL_RG_INTEGER GL_INT GL_RG32I + +*/ + +OPENGL_ASSUME_NONNULL_END + +#ifdef __cplusplus +} +#endif + +#endif /* _CGLSURFACE_H */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/CGLMacro.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/CGLMacro.h" new file mode 100644 index 0000000..9f9847a --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/CGLMacro.h" @@ -0,0 +1,2915 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _CGLMACRO_H +#define _CGLMACRO_H + +#ifdef __gl3_h_ +# ifndef __has_feature +# define __has_feature(X) 0 +# endif +# if !__has_feature(modules) +# error Can not include both gl3.h and CGLMacro.h simultaneously +# endif +#endif + +#include +#include +#include +#include + +/* Macro context name (CGLContextObj) */ +#if !defined(CGL_MACRO_CONTEXT) +#define CGL_MACRO_CONTEXT cgl_ctx +#endif + +/* Macro renderer name (GLIContext) */ +#if !defined(CGL_MACRO_RENDERER) +#define CGL_MACRO_RENDERER cgl_rend +#endif + +#define CGL_MACRO_DECLARE_CONTEXT() CGLContextObj CGL_MACRO_CONTEXT = CGLGetCurrentContext(); + +/* Repeated renderer lookups may be avoided by defining CGL_MACRO_CACHE_RENDERER before including CGLMacro.h. + Note: If you change the value of CGL_MACRO_CONTEXT partway through a function, you will have to + keep CGL_MACRO_RENDERER up to date with with it's context. */ +#if defined(CGL_MACRO_CACHE_RENDERER) +#define CGL_MACRO_DECLARE_RENDERER() GLIContext CGL_MACRO_RENDERER = CGL_MACRO_CONTEXT->rend; +#define CGL_MACRO_CONTEXT_RENDERER CGL_MACRO_RENDERER +#else +#define CGL_MACRO_DECLARE_RENDERER() +#define CGL_MACRO_CONTEXT_RENDERER CGL_MACRO_CONTEXT->rend +#endif + +/* Use the following function macro to declare the local CGLMacro variables */ +#define CGL_MACRO_DECLARE_VARIABLES() \ + CGL_MACRO_DECLARE_CONTEXT(); \ + CGL_MACRO_DECLARE_RENDERER(); + +/* This is for converting old non-arb handle definitions to ARB handle definitions for 64 bit compiles */ +#define CGL_HANDLE_ARB(handle) (GLhandleARB)((unsigned long)handle) + +/****************** OpenGL 1.1 Macros *****************************/ + +#define glAccum(op, value) \ + (*(CGL_MACRO_CONTEXT)->disp.accum)(CGL_MACRO_CONTEXT_RENDERER, op, value) + +#define glAlphaFunc(func, ref) \ + (*(CGL_MACRO_CONTEXT)->disp.alpha_func)(CGL_MACRO_CONTEXT_RENDERER, func, ref) + +#define glAreTexturesResident(n, textures, residences) \ + (*(CGL_MACRO_CONTEXT)->disp.are_textures_resident)(CGL_MACRO_CONTEXT_RENDERER, n, textures, residences) + +#define glArrayElement(i) \ + (*(CGL_MACRO_CONTEXT)->disp.array_element)(CGL_MACRO_CONTEXT_RENDERER, i) + +#define glBegin(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.begin)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glBindTexture(target, texture) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_texture)(CGL_MACRO_CONTEXT_RENDERER, target, texture) + +#define glBitmap(width, height, xorig, yorig, xmove, ymove, bmap) \ + (*(CGL_MACRO_CONTEXT)->disp.bitmap)(CGL_MACRO_CONTEXT_RENDERER, width, height, xorig, yorig, xmove, ymove, bmap) + +#define glBlendFunc(sfactor, dfactor) \ + (*(CGL_MACRO_CONTEXT)->disp.blend_func)(CGL_MACRO_CONTEXT_RENDERER, sfactor, dfactor) + +#define glCallList(list) \ + (*(CGL_MACRO_CONTEXT)->disp.call_list)(CGL_MACRO_CONTEXT_RENDERER, list) + +#define glCallLists(n, type, lists) \ + (*(CGL_MACRO_CONTEXT)->disp.call_lists)(CGL_MACRO_CONTEXT_RENDERER, n, type, lists) + +#define glClear(mask) \ + (*(CGL_MACRO_CONTEXT)->disp.clear)(CGL_MACRO_CONTEXT_RENDERER, mask) + +#define glClearAccum(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_accum)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glClearColor(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_color)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glClearDepth(depth) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_depth)(CGL_MACRO_CONTEXT_RENDERER, depth) + +#define glClearIndex(c) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_index)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glClearStencil(s) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_stencil)(CGL_MACRO_CONTEXT_RENDERER, s) + +#define glClipPlane(plane, equation) \ + (*(CGL_MACRO_CONTEXT)->disp.clip_plane)(CGL_MACRO_CONTEXT_RENDERER, plane, equation) + +#define glColor3b(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3b)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3bv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3bv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor3d(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3d)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor3f(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3f)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor3i(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3i)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor3s(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3s)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor3ub(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3ub)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3ubv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3ubv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor3ui(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3ui)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3uiv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3uiv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor3us(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3us)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3usv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3usv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4b(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4b)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4bv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4bv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4d(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4d)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4f(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4f)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4i(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4i)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4s(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4s)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4ub(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4ub)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4ubv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4ubv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4ui(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4ui)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4uiv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4uiv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4us(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4us)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4usv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4usv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColorMask(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color_mask)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColorMaterial(face, mode) \ + (*(CGL_MACRO_CONTEXT)->disp.color_material)(CGL_MACRO_CONTEXT_RENDERER, face, mode) + +#define glColorPointer(size, type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.color_pointer)(CGL_MACRO_CONTEXT_RENDERER, size, type, stride, pointer) + +#define glCopyPixels(x, y, width, height, type) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_pixels)(CGL_MACRO_CONTEXT_RENDERER, x, y, width, height, type) + +#define glCopyTexImage1D(target, level, internalFormat, x, y, width, border) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_tex_image1D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalFormat, x, y, width, border) + +#define glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_tex_image2D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalFormat, x, y, width, height, border) + +#define glCopyTexSubImage1D(target, level, xoffset, x, y, width) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_tex_sub_image1D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, x, y, width) + +#define glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_tex_sub_image2D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, yoffset, x, y, width, height) + +#define glCullFace(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.cull_face)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glDeleteLists(list, range) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_lists)(CGL_MACRO_CONTEXT_RENDERER, list, range) + +#define glDeleteTextures(n, textures) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_textures)(CGL_MACRO_CONTEXT_RENDERER, n, textures) + +#define glDepthFunc(func) \ + (*(CGL_MACRO_CONTEXT)->disp.depth_func)(CGL_MACRO_CONTEXT_RENDERER, func) + +#define glDepthMask(flag) \ + (*(CGL_MACRO_CONTEXT)->disp.depth_mask)(CGL_MACRO_CONTEXT_RENDERER, flag) + +#define glDepthRange(zNear, zFar) \ + (*(CGL_MACRO_CONTEXT)->disp.depth_range)(CGL_MACRO_CONTEXT_RENDERER, zNear, zFar) + +#define glDisable(cap) \ + (*(CGL_MACRO_CONTEXT)->disp.disable)(CGL_MACRO_CONTEXT_RENDERER, cap) + +#define glDisableClientState(array) \ + (*(CGL_MACRO_CONTEXT)->disp.disable_client_state)(CGL_MACRO_CONTEXT_RENDERER, array) + +#define glDrawArrays(mode, first, count) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_arrays)(CGL_MACRO_CONTEXT_RENDERER, mode, first, count) + +#define glDrawBuffer(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_buffer)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glDrawElements(mode, count, type, indices) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_elements)(CGL_MACRO_CONTEXT_RENDERER, mode, count, type, indices) + +#define glDrawPixels(width, height, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_pixels)(CGL_MACRO_CONTEXT_RENDERER, width, height, format, type, pixels) + +#define glEdgeFlag(flag) \ + (*(CGL_MACRO_CONTEXT)->disp.edge_flag)(CGL_MACRO_CONTEXT_RENDERER, flag) + +#define glEdgeFlagPointer(stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.edge_flag_pointer)(CGL_MACRO_CONTEXT_RENDERER, stride, pointer) + +#define glEdgeFlagv(flag) \ + (*(CGL_MACRO_CONTEXT)->disp.edge_flagv)(CGL_MACRO_CONTEXT_RENDERER, flag) + +#define glEnable(cap) \ + (*(CGL_MACRO_CONTEXT)->disp.enable)(CGL_MACRO_CONTEXT_RENDERER, cap) + +#define glEnableClientState(array) \ + (*(CGL_MACRO_CONTEXT)->disp.enable_client_state)(CGL_MACRO_CONTEXT_RENDERER, array) + +#define glEnd() \ + (*(CGL_MACRO_CONTEXT)->disp.end)(CGL_MACRO_CONTEXT_RENDERER) + +#define glEndList() \ + (*(CGL_MACRO_CONTEXT)->disp.end_list)(CGL_MACRO_CONTEXT_RENDERER) + +#define glEvalCoord1d(u) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord1d)(CGL_MACRO_CONTEXT_RENDERER, u) + +#define glEvalCoord1dv(u) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord1dv)(CGL_MACRO_CONTEXT_RENDERER, u) + +#define glEvalCoord1f(u) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord1f)(CGL_MACRO_CONTEXT_RENDERER, u) + +#define glEvalCoord1fv(u) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord1fv)(CGL_MACRO_CONTEXT_RENDERER, u) + +#define glEvalCoord2d(u, v) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord2d)(CGL_MACRO_CONTEXT_RENDERER, u, v) + +#define glEvalCoord2dv(u) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord2dv)(CGL_MACRO_CONTEXT_RENDERER, u) + +#define glEvalCoord2f(u, v) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord2f)(CGL_MACRO_CONTEXT_RENDERER, u, v) + +#define glEvalCoord2fv(u) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord2fv)(CGL_MACRO_CONTEXT_RENDERER, u) + +#define glEvalMesh1(mode, i1, i2) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_mesh1)(CGL_MACRO_CONTEXT_RENDERER, mode, i1, i2) + +#define glEvalMesh2(mode, i1, i2, j1, j2) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_mesh2)(CGL_MACRO_CONTEXT_RENDERER, mode, i1, i2, j1, j2) + +#define glEvalPoint1(i) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_point1)(CGL_MACRO_CONTEXT_RENDERER, i) + +#define glEvalPoint2(i, j) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_point2)(CGL_MACRO_CONTEXT_RENDERER, i, j) + +#define glFeedbackBuffer(size, type, buffer) \ + (*(CGL_MACRO_CONTEXT)->disp.feedback_buffer)(CGL_MACRO_CONTEXT_RENDERER, size, type, buffer) + +#define glFinish() \ + (*(CGL_MACRO_CONTEXT)->disp.finish)(CGL_MACRO_CONTEXT_RENDERER) + +#define glFlush() \ + (*(CGL_MACRO_CONTEXT)->disp.flush)(CGL_MACRO_CONTEXT_RENDERER) + +#define glFogf(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.fogf)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glFogfv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.fogfv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glFogi(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.fogi)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glFogiv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.fogiv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glFrontFace(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.front_face)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glFrustum(left, right, bottom, top, zNear, zFar) \ + (*(CGL_MACRO_CONTEXT)->disp.frustum)(CGL_MACRO_CONTEXT_RENDERER, left, right, bottom, top, zNear, zFar) + +#define glGenLists(range) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_lists)(CGL_MACRO_CONTEXT_RENDERER, range) + +#define glGenTextures(n, textures) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_textures)(CGL_MACRO_CONTEXT_RENDERER, n, textures) + +#define glGetBooleanv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_booleanv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glGetClipPlane(plane, equation) \ + (*(CGL_MACRO_CONTEXT)->disp.get_clip_plane)(CGL_MACRO_CONTEXT_RENDERER, plane, equation) + +#define glGetDoublev(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_doublev)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glGetError() \ + (*(CGL_MACRO_CONTEXT)->disp.get_error)(CGL_MACRO_CONTEXT_RENDERER) + +#define glGetFloatv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_floatv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glGetIntegerv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_integerv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glGetLightfv(light, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_lightfv)(CGL_MACRO_CONTEXT_RENDERER, light, pname, params) + +#define glGetLightiv(light, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_lightiv)(CGL_MACRO_CONTEXT_RENDERER, light, pname, params) + +#define glGetMapdv(target, query, v) \ + (*(CGL_MACRO_CONTEXT)->disp.get_mapdv)(CGL_MACRO_CONTEXT_RENDERER, target, query, v) + +#define glGetMapfv(target, query, v) \ + (*(CGL_MACRO_CONTEXT)->disp.get_mapfv)(CGL_MACRO_CONTEXT_RENDERER, target, query, v) + +#define glGetMapiv(target, query, v) \ + (*(CGL_MACRO_CONTEXT)->disp.get_mapiv)(CGL_MACRO_CONTEXT_RENDERER, target, query, v) + +#define glGetMaterialfv(face, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_materialfv)(CGL_MACRO_CONTEXT_RENDERER, face, pname, params) + +#define glGetMaterialiv(face, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_materialiv)(CGL_MACRO_CONTEXT_RENDERER, face, pname, params) + +#define glGetPixelMapfv(map, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_pixel_mapfv)(CGL_MACRO_CONTEXT_RENDERER, map, values) + +#define glGetPixelMapuiv(map, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_pixel_mapuiv)(CGL_MACRO_CONTEXT_RENDERER, map, values) + +#define glGetPixelMapusv(map, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_pixel_mapusv)(CGL_MACRO_CONTEXT_RENDERER, map, values) + +#define glGetPointerv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_pointerv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glGetPolygonStipple(mask) \ + (*(CGL_MACRO_CONTEXT)->disp.get_polygon_stipple)(CGL_MACRO_CONTEXT_RENDERER, mask) + +#define glGetString(name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_string)(CGL_MACRO_CONTEXT_RENDERER, name) + +#define glGetTexEnvfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_envfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetTexEnviv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_enviv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetTexGendv(coord, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_gendv)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, params) + +#define glGetTexGenfv(coord, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_genfv)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, params) + +#define glGetTexGeniv(coord, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_geniv)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, params) + +#define glGetTexImage(target, level, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_image)(CGL_MACRO_CONTEXT_RENDERER, target, level, format, type, pixels) + +#define glGetTexLevelParameterfv(target, level, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_level_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, level, pname, params) + +#define glGetTexLevelParameteriv(target, level, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_level_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, level, pname, params) + +#define glGetTexParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetTexParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glHint(target, mode) \ + (*(CGL_MACRO_CONTEXT)->disp.hint)(CGL_MACRO_CONTEXT_RENDERER, target, mode) + +#define glIndexMask(mask) \ + (*(CGL_MACRO_CONTEXT)->disp.index_mask)(CGL_MACRO_CONTEXT_RENDERER, mask) + +#define glIndexPointer(type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.index_pointer)(CGL_MACRO_CONTEXT_RENDERER, type, stride, pointer) + +#define glIndexd(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexd)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexdv(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexdv)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexf(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexf)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexfv(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexfv)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexi(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexi)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexiv(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexiv)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexs(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexs)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexsv(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexsv)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexub(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexub)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexubv(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexubv)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glInitNames() \ + (*(CGL_MACRO_CONTEXT)->disp.init_names)(CGL_MACRO_CONTEXT_RENDERER) + +#define glInterleavedArrays(format, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.interleaved_arrays)(CGL_MACRO_CONTEXT_RENDERER, format, stride, pointer) + +#define glIsEnabled(cap) \ + (*(CGL_MACRO_CONTEXT)->disp.is_enabled)(CGL_MACRO_CONTEXT_RENDERER, cap) + +#define glIsList(list) \ + (*(CGL_MACRO_CONTEXT)->disp.is_list)(CGL_MACRO_CONTEXT_RENDERER, list) + +#define glIsTexture(texture) \ + (*(CGL_MACRO_CONTEXT)->disp.is_texture)(CGL_MACRO_CONTEXT_RENDERER, texture) + +#define glLightModelf(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.light_modelf)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glLightModelfv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.light_modelfv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glLightModeli(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.light_modeli)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glLightModeliv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.light_modeliv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glLightf(light, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.lightf)(CGL_MACRO_CONTEXT_RENDERER, light, pname, param) + +#define glLightfv(light, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.lightfv)(CGL_MACRO_CONTEXT_RENDERER, light, pname, params) + +#define glLighti(light, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.lighti)(CGL_MACRO_CONTEXT_RENDERER, light, pname, param) + +#define glLightiv(light, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.lightiv)(CGL_MACRO_CONTEXT_RENDERER, light, pname, params) + +#define glLineStipple(factor, pattern) \ + (*(CGL_MACRO_CONTEXT)->disp.line_stipple)(CGL_MACRO_CONTEXT_RENDERER, factor, pattern) + +#define glLineWidth(width) \ + (*(CGL_MACRO_CONTEXT)->disp.line_width)(CGL_MACRO_CONTEXT_RENDERER, width) + +#define glListBase(base) \ + (*(CGL_MACRO_CONTEXT)->disp.list_base)(CGL_MACRO_CONTEXT_RENDERER, base) + +#define glLoadIdentity() \ + (*(CGL_MACRO_CONTEXT)->disp.load_identity)(CGL_MACRO_CONTEXT_RENDERER) + +#define glLoadMatrixd(m) \ + (*(CGL_MACRO_CONTEXT)->disp.load_matrixd)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glLoadMatrixf(m) \ + (*(CGL_MACRO_CONTEXT)->disp.load_matrixf)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glLoadName(name) \ + (*(CGL_MACRO_CONTEXT)->disp.load_name)(CGL_MACRO_CONTEXT_RENDERER, name) + +#define glLogicOp(opcode) \ + (*(CGL_MACRO_CONTEXT)->disp.logic_op)(CGL_MACRO_CONTEXT_RENDERER, opcode) + +#define glMap1d(target, u1, u2, stride, order, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map1d)(CGL_MACRO_CONTEXT_RENDERER, target, u1, u2, stride, order, points) + +#define glMap1f(target, u1, u2, stride, order, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map1f)(CGL_MACRO_CONTEXT_RENDERER, target, u1, u2, stride, order, points) + +#define glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map2d)(CGL_MACRO_CONTEXT_RENDERER, target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) + +#define glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map2f)(CGL_MACRO_CONTEXT_RENDERER, target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) + +#define glMapGrid1d(un, u1, u2) \ + (*(CGL_MACRO_CONTEXT)->disp.map_grid1d)(CGL_MACRO_CONTEXT_RENDERER, un, u1, u2) + +#define glMapGrid1f(un, u1, u2) \ + (*(CGL_MACRO_CONTEXT)->disp.map_grid1f)(CGL_MACRO_CONTEXT_RENDERER, un, u1, u2) + +#define glMapGrid2d(un, u1, u2, vn, v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.map_grid2d)(CGL_MACRO_CONTEXT_RENDERER, un, u1, u2, vn, v1, v2) + +#define glMapGrid2f(un, u1, u2, vn, v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.map_grid2f)(CGL_MACRO_CONTEXT_RENDERER, un, u1, u2, vn, v1, v2) + +#define glMaterialf(face, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.materialf)(CGL_MACRO_CONTEXT_RENDERER, face, pname, param) + +#define glMaterialfv(face, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.materialfv)(CGL_MACRO_CONTEXT_RENDERER, face, pname, params) + +#define glMateriali(face, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.materiali)(CGL_MACRO_CONTEXT_RENDERER, face, pname, param) + +#define glMaterialiv(face, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.materialiv)(CGL_MACRO_CONTEXT_RENDERER, face, pname, params) + +#define glMatrixMode(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.matrix_mode)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glMultMatrixd(m) \ + (*(CGL_MACRO_CONTEXT)->disp.mult_matrixd)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glMultMatrixf(m) \ + (*(CGL_MACRO_CONTEXT)->disp.mult_matrixf)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glNewList(list, mode) \ + (*(CGL_MACRO_CONTEXT)->disp.new_list)(CGL_MACRO_CONTEXT_RENDERER, list, mode) + +#define glNormal3b(nx, ny, nz) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3b)(CGL_MACRO_CONTEXT_RENDERER, nx, ny, nz) + +#define glNormal3bv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3bv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glNormal3d(nx, ny, nz) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3d)(CGL_MACRO_CONTEXT_RENDERER, nx, ny, nz) + +#define glNormal3dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glNormal3f(nx, ny, nz) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3f)(CGL_MACRO_CONTEXT_RENDERER, nx, ny, nz) + +#define glNormal3fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glNormal3i(nx, ny, nz) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3i)(CGL_MACRO_CONTEXT_RENDERER, nx, ny, nz) + +#define glNormal3iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glNormal3s(nx, ny, nz) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3s)(CGL_MACRO_CONTEXT_RENDERER, nx, ny, nz) + +#define glNormal3sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glNormalPointer(type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.normal_pointer)(CGL_MACRO_CONTEXT_RENDERER, type, stride, pointer) + +#define glOrtho(left, right, bottom, top, zNear, zFar) \ + (*(CGL_MACRO_CONTEXT)->disp.ortho)(CGL_MACRO_CONTEXT_RENDERER, left, right, bottom, top, zNear, zFar) + +#define glPassThrough(token) \ + (*(CGL_MACRO_CONTEXT)->disp.pass_through)(CGL_MACRO_CONTEXT_RENDERER, token) + +#define glPixelMapfv(map, mapsize, values) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_mapfv)(CGL_MACRO_CONTEXT_RENDERER, map, mapsize, values) + +#define glPixelMapuiv(map, mapsize, values) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_mapuiv)(CGL_MACRO_CONTEXT_RENDERER, map, mapsize, values) + +#define glPixelMapusv(map, mapsize, values) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_mapusv)(CGL_MACRO_CONTEXT_RENDERER, map, mapsize, values) + +#define glPixelStoref(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_storef)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glPixelStorei(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_storei)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glPixelTransferf(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_transferf)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glPixelTransferi(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_transferi)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glPixelZoom(xfactor, yfactor) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_zoom)(CGL_MACRO_CONTEXT_RENDERER, xfactor, yfactor) + +#define glPointSize(size) \ + (*(CGL_MACRO_CONTEXT)->disp.point_size)(CGL_MACRO_CONTEXT_RENDERER, size) + +#define glPolygonMode(face, mode) \ + (*(CGL_MACRO_CONTEXT)->disp.polygon_mode)(CGL_MACRO_CONTEXT_RENDERER, face, mode) + +#define glPolygonOffset(factor, units) \ + (*(CGL_MACRO_CONTEXT)->disp.polygon_offset)(CGL_MACRO_CONTEXT_RENDERER, factor, units) + +#define glPolygonStipple(mask) \ + (*(CGL_MACRO_CONTEXT)->disp.polygon_stipple)(CGL_MACRO_CONTEXT_RENDERER, mask) + +#define glPopAttrib() \ + (*(CGL_MACRO_CONTEXT)->disp.pop_attrib)(CGL_MACRO_CONTEXT_RENDERER) + +#define glPopClientAttrib() \ + (*(CGL_MACRO_CONTEXT)->disp.pop_client_attrib)(CGL_MACRO_CONTEXT_RENDERER) + +#define glPopMatrix() \ + (*(CGL_MACRO_CONTEXT)->disp.pop_matrix)(CGL_MACRO_CONTEXT_RENDERER) + +#define glPopName() \ + (*(CGL_MACRO_CONTEXT)->disp.pop_name)(CGL_MACRO_CONTEXT_RENDERER) + +#define glPrioritizeTextures(n, textures, priorities) \ + (*(CGL_MACRO_CONTEXT)->disp.prioritize_textures)(CGL_MACRO_CONTEXT_RENDERER, n, textures, priorities) + +#define glPushAttrib(mask) \ + (*(CGL_MACRO_CONTEXT)->disp.push_attrib)(CGL_MACRO_CONTEXT_RENDERER, mask) + +#define glPushClientAttrib(mask) \ + (*(CGL_MACRO_CONTEXT)->disp.push_client_attrib)(CGL_MACRO_CONTEXT_RENDERER, mask) + +#define glPushMatrix() \ + (*(CGL_MACRO_CONTEXT)->disp.push_matrix)(CGL_MACRO_CONTEXT_RENDERER) + +#define glPushName(name) \ + (*(CGL_MACRO_CONTEXT)->disp.push_name)(CGL_MACRO_CONTEXT_RENDERER, name) + +#define glRasterPos2d(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2d)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glRasterPos2dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos2f(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2f)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glRasterPos2fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos2i(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2i)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glRasterPos2iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos2s(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2s)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glRasterPos2sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos3d(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3d)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glRasterPos3dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos3f(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3f)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glRasterPos3fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos3i(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3i)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glRasterPos3iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos3s(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3s)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glRasterPos3sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos4d(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4d)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glRasterPos4dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos4f(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4f)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glRasterPos4fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos4i(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4i)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glRasterPos4iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos4s(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4s)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glRasterPos4sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glReadBuffer(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.read_buffer)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glReadPixels(x, y, width, height, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.read_pixels)(CGL_MACRO_CONTEXT_RENDERER, x, y, width, height, format, type, pixels) + +#define glRectd(x1, y1, x2, y2) \ + (*(CGL_MACRO_CONTEXT)->disp.rectd)(CGL_MACRO_CONTEXT_RENDERER, x1, y1, x2, y2) + +#define glRectdv(v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.rectdv)(CGL_MACRO_CONTEXT_RENDERER, v1, v2) + +#define glRectf(x1, y1, x2, y2) \ + (*(CGL_MACRO_CONTEXT)->disp.rectf)(CGL_MACRO_CONTEXT_RENDERER, x1, y1, x2, y2) + +#define glRectfv(v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.rectfv)(CGL_MACRO_CONTEXT_RENDERER, v1, v2) + +#define glRecti(x1, y1, x2, y2) \ + (*(CGL_MACRO_CONTEXT)->disp.recti)(CGL_MACRO_CONTEXT_RENDERER, x1, y1, x2, y2) + +#define glRectiv(v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.rectiv)(CGL_MACRO_CONTEXT_RENDERER, v1, v2) + +#define glRects(x1, y1, x2, y2) \ + (*(CGL_MACRO_CONTEXT)->disp.rects)(CGL_MACRO_CONTEXT_RENDERER, x1, y1, x2, y2) + +#define glRectsv(v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.rectsv)(CGL_MACRO_CONTEXT_RENDERER, v1, v2) + +#define glRenderMode(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.render_mode)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glRotated(angle, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.rotated)(CGL_MACRO_CONTEXT_RENDERER, angle, x, y, z) + +#define glRotatef(angle, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.rotatef)(CGL_MACRO_CONTEXT_RENDERER, angle, x, y, z) + +#define glScaled(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.scaled)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glScalef(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.scalef)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glScissor(x, y, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.scissor)(CGL_MACRO_CONTEXT_RENDERER, x, y, width, height) + +#define glSelectBuffer(size, buffer) \ + (*(CGL_MACRO_CONTEXT)->disp.select_buffer)(CGL_MACRO_CONTEXT_RENDERER, size, buffer) + +#define glShadeModel(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.shade_model)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glStencilFunc(func, ref, mask) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_func)(CGL_MACRO_CONTEXT_RENDERER, func, ref, mask) + +#define glStencilMask(mask) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_mask)(CGL_MACRO_CONTEXT_RENDERER, mask) + +#define glStencilOp(fail, zfail, zpass) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_op)(CGL_MACRO_CONTEXT_RENDERER, fail, zfail, zpass) + +#define glTexCoord1d(s) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1d)(CGL_MACRO_CONTEXT_RENDERER, s) + +#define glTexCoord1dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord1f(s) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1f)(CGL_MACRO_CONTEXT_RENDERER, s) + +#define glTexCoord1fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord1i(s) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1i)(CGL_MACRO_CONTEXT_RENDERER, s) + +#define glTexCoord1iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord1s(s) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1s)(CGL_MACRO_CONTEXT_RENDERER, s) + +#define glTexCoord1sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord2d(s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2d)(CGL_MACRO_CONTEXT_RENDERER, s, t) + +#define glTexCoord2dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord2f(s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2f)(CGL_MACRO_CONTEXT_RENDERER, s, t) + +#define glTexCoord2fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord2i(s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2i)(CGL_MACRO_CONTEXT_RENDERER, s, t) + +#define glTexCoord2iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord2s(s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2s)(CGL_MACRO_CONTEXT_RENDERER, s, t) + +#define glTexCoord2sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord3d(s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3d)(CGL_MACRO_CONTEXT_RENDERER, s, t, r) + +#define glTexCoord3dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord3f(s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3f)(CGL_MACRO_CONTEXT_RENDERER, s, t, r) + +#define glTexCoord3fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord3i(s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3i)(CGL_MACRO_CONTEXT_RENDERER, s, t, r) + +#define glTexCoord3iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord3s(s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3s)(CGL_MACRO_CONTEXT_RENDERER, s, t, r) + +#define glTexCoord3sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord4d(s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4d)(CGL_MACRO_CONTEXT_RENDERER, s, t, r, q) + +#define glTexCoord4dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord4f(s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4f)(CGL_MACRO_CONTEXT_RENDERER, s, t, r, q) + +#define glTexCoord4fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord4i(s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4i)(CGL_MACRO_CONTEXT_RENDERER, s, t, r, q) + +#define glTexCoord4iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord4s(s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4s)(CGL_MACRO_CONTEXT_RENDERER, s, t, r, q) + +#define glTexCoord4sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoordPointer(size, type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord_pointer)(CGL_MACRO_CONTEXT_RENDERER, size, type, stride, pointer) + +#define glTexEnvf(target, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_envf)(CGL_MACRO_CONTEXT_RENDERER, target, pname, param) + +#define glTexEnvfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_envfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glTexEnvi(target, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_envi)(CGL_MACRO_CONTEXT_RENDERER, target, pname, param) + +#define glTexEnviv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_enviv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glTexGend(coord, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_gend)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, param) + +#define glTexGendv(coord, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_gendv)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, params) + +#define glTexGenf(coord, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_genf)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, param) + +#define glTexGenfv(coord, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_genfv)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, params) + +#define glTexGeni(coord, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_geni)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, param) + +#define glTexGeniv(coord, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_geniv)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, params) + +#define glTexImage1D(target, level, internalformat, width, border, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_image1D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalformat, width, border, format, type, pixels) + +#define glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_image2D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalformat, width, height, border, format, type, pixels) + +#define glTexParameterf(target, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_parameterf)(CGL_MACRO_CONTEXT_RENDERER, target, pname, param) + +#define glTexParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glTexParameteri(target, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_parameteri)(CGL_MACRO_CONTEXT_RENDERER, target, pname, param) + +#define glTexParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glTexSubImage1D(target, level, xoffset, width, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_sub_image1D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, width, format, type, pixels) + +#define glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_sub_image2D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, yoffset, width, height, format, type, pixels) + +#define glTranslated(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.translated)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glTranslatef(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.translatef)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glVertex2d(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2d)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glVertex2dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex2f(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2f)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glVertex2fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex2i(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2i)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glVertex2iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex2s(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2s)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glVertex2sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex3d(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3d)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glVertex3dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex3f(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3f)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glVertex3fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex3i(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3i)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glVertex3iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex3s(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3s)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glVertex3sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex4d(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4d)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glVertex4dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex4f(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4f)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glVertex4fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex4i(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4i)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glVertex4iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex4s(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4s)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glVertex4sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertexPointer(size, type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_pointer)(CGL_MACRO_CONTEXT_RENDERER, size, type, stride, pointer) + +#define glViewport(x, y, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.viewport)(CGL_MACRO_CONTEXT_RENDERER, x, y, width, height) + +/****************** OpenGL 1.2 ************************************/ + +#define glBlendColor(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.blend_color)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glBlendEquation(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.blend_equation)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glDrawRangeElements(mode, start, end, count, type, indices) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_range_elements)(CGL_MACRO_CONTEXT_RENDERER, mode, start, end, count, type, indices) + +#define glTexImage3D(target, level, internalformat, width, height, depth, border, format, type, data) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_image3D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalformat, width, height, depth, border, format, type, data) + +#define glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_sub_image3D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels) + +#define glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_tex_sub_image3D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, yoffset, zoffset, x, y, width, height) + +/****************** OpenGL 1.2 Imaging Subset *********************/ + +#define glColorTable(target, internalformat, width, format, type, table) \ + (*(CGL_MACRO_CONTEXT)->disp.color_table)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, width, format, type, table) + +#define glColorTableParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.color_table_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glColorTableParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.color_table_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glCopyColorTable(target, internalformat, x, y, width) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_color_table)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, x, y, width) + +#define glGetColorTable(target, format, type, table) \ + (*(CGL_MACRO_CONTEXT)->disp.get_color_table)(CGL_MACRO_CONTEXT_RENDERER, target, format, type, table) + +#define glGetColorTableParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_color_table_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetColorTableParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_color_table_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glColorSubTable(target, start, count, format, type, data) \ + (*(CGL_MACRO_CONTEXT)->disp.color_sub_table)(CGL_MACRO_CONTEXT_RENDERER, target, start, count, format, type, data) + +#define glCopyColorSubTable(target, start, x, y, width) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_color_sub_table)(CGL_MACRO_CONTEXT_RENDERER, target, start, x, y, width) + +#define glConvolutionFilter1D(target, internalformat, width, format, type, image) \ + (*(CGL_MACRO_CONTEXT)->disp.convolution_filter1D)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, width, format, type, image) + +#define glConvolutionFilter2D(target, internalformat, width, height, format, type, image) \ + (*(CGL_MACRO_CONTEXT)->disp.convolution_filter2D)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, width, height, format, type, image) + +#define glConvolutionParameterf(target, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.convolution_parameterf)(CGL_MACRO_CONTEXT_RENDERER, target, pname, param) + +#define glConvolutionParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.convolution_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glConvolutionParameteri(target, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.convolution_parameteri)(CGL_MACRO_CONTEXT_RENDERER, target, pname, param) + +#define glConvolutionParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.convolution_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glCopyConvolutionFilter1D(target, internalformat, x, y, width) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_convolution_filter1D)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, x, y, width) + +#define glCopyConvolutionFilter2D(target, internalformat, x, y, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_convolution_filter2D)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, x, y, width, height) + +#define glGetConvolutionFilter(target, format, type, image) \ + (*(CGL_MACRO_CONTEXT)->disp.get_convolution_filter)(CGL_MACRO_CONTEXT_RENDERER, target, format, type, image) + +#define glGetConvolutionParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_convolution_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetConvolutionParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_convolution_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetSeparableFilter(target, format, type, row, column, span) \ + (*(CGL_MACRO_CONTEXT)->disp.get_separable_filter)(CGL_MACRO_CONTEXT_RENDERER, target, format, type, row, column, span) + +#define glSeparableFilter2D(target, internalformat, width, height, format, type, row, column) \ + (*(CGL_MACRO_CONTEXT)->disp.separable_filter2D)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, width, height, format, type, row, column) + +#define glGetHistogram(target, reset, format, type, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_histogram)(CGL_MACRO_CONTEXT_RENDERER, target, reset, format, type, values) + +#define glGetHistogramParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_histogram_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetHistogramParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_histogram_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetMinmax(target, reset, format, type, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_minmax)(CGL_MACRO_CONTEXT_RENDERER, target, reset, format, type, values) + +#define glGetMinmaxParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_minmax_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetMinmaxParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_minmax_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glHistogram(target, width, internalformat, sink) \ + (*(CGL_MACRO_CONTEXT)->disp.histogram)(CGL_MACRO_CONTEXT_RENDERER, target, width, internalformat, sink) + +#define glMinmax(target, internalformat, sink) \ + (*(CGL_MACRO_CONTEXT)->disp.minmax)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, sink) + +#define glResetHistogram(target) \ + (*(CGL_MACRO_CONTEXT)->disp.reset_histogram)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glResetMinmax(target) \ + (*(CGL_MACRO_CONTEXT)->disp.reset_minmax)(CGL_MACRO_CONTEXT_RENDERER, target) + +/****************** OpenGL 1.3 ************************************/ + +#define glClientActiveTexture(target) \ + (*(CGL_MACRO_CONTEXT)->disp.client_active_texture)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glActiveTexture(target) \ + (*(CGL_MACRO_CONTEXT)->disp.active_texture)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glMultiTexCoord1d(target, s) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1d)(CGL_MACRO_CONTEXT_RENDERER, target, s) + +#define glMultiTexCoord1dv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1dv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord1f(target, s) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1f)(CGL_MACRO_CONTEXT_RENDERER, target, s) + +#define glMultiTexCoord1fv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1fv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord1i(target, s) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1i)(CGL_MACRO_CONTEXT_RENDERER, target, s) + +#define glMultiTexCoord1iv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1iv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord1s(target, s) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1s)(CGL_MACRO_CONTEXT_RENDERER, target, s) + +#define glMultiTexCoord1sv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1sv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord2d(target, s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2d)(CGL_MACRO_CONTEXT_RENDERER, target, s, t) + +#define glMultiTexCoord2dv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2dv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord2f(target, s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2f)(CGL_MACRO_CONTEXT_RENDERER, target, s, t) + +#define glMultiTexCoord2fv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2fv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord2i(target, s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2i)(CGL_MACRO_CONTEXT_RENDERER, target, s, t) + +#define glMultiTexCoord2iv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2iv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord2s(target, s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2s)(CGL_MACRO_CONTEXT_RENDERER, target, s, t) + +#define glMultiTexCoord2sv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2sv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord3d(target, s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3d)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r) + +#define glMultiTexCoord3dv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3dv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord3f(target, s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3f)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r) + +#define glMultiTexCoord3fv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3fv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord3i(target, s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3i)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r) + +#define glMultiTexCoord3iv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3iv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord3s(target, s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3s)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r) + +#define glMultiTexCoord3sv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3sv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord4d(target, s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4d)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r, q) + +#define glMultiTexCoord4dv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4dv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord4f(target, s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4f)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r, q) + +#define glMultiTexCoord4fv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4fv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord4i(target, s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4i)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r, q) + +#define glMultiTexCoord4iv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4iv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord4s(target, s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4s)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r, q) + +#define glMultiTexCoord4sv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4sv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glSampleCoverage(value, invert) \ + (*(CGL_MACRO_CONTEXT)->disp.sample_coverage)(CGL_MACRO_CONTEXT_RENDERER, value, invert) + +#define glLoadTransposeMatrixf(m) \ + (*(CGL_MACRO_CONTEXT)->disp.load_transpose_matrixf)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glLoadTransposeMatrixd(m) \ + (*(CGL_MACRO_CONTEXT)->disp.load_transpose_matrixd)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glMultTransposeMatrixf(m) \ + (*(CGL_MACRO_CONTEXT)->disp.mult_transpose_matrixf)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glMultTransposeMatrixd(m) \ + (*(CGL_MACRO_CONTEXT)->disp.mult_transpose_matrixd)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glCompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data) \ + (*(CGL_MACRO_CONTEXT)->disp.compressed_tex_image3D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalformat, width, height, depth, border, imageSize, data) + +#define glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data) \ + (*(CGL_MACRO_CONTEXT)->disp.compressed_tex_image2D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalformat, width, height, border, imageSize, data) + +#define glCompressedTexImage1D(target, level, internalformat, width, border, imageSize, data) \ + (*(CGL_MACRO_CONTEXT)->disp.compressed_tex_image1D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalformat, width, border, imageSize, data) + +#define glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data) \ + (*(CGL_MACRO_CONTEXT)->disp.compressed_tex_sub_image3D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data) + +#define glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data) \ + (*(CGL_MACRO_CONTEXT)->disp.compressed_tex_sub_image2D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, yoffset, width, height, format, imageSize, data) + +#define glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data) \ + (*(CGL_MACRO_CONTEXT)->disp.compressed_tex_sub_image1D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, width, format, imageSize, data) + +#define glGetCompressedTexImage(target, level, img) \ + (*(CGL_MACRO_CONTEXT)->disp.get_compressed_tex_image)(CGL_MACRO_CONTEXT_RENDERER, target, level, img) + +/****************** OpenGL 1.4 ************************************/ + +#define glFogCoordf(coord) \ + (*(CGL_MACRO_CONTEXT)->disp.fog_coordf)(CGL_MACRO_CONTEXT_RENDERER, coord) + +#define glFogCoordfv(coord) \ + (*(CGL_MACRO_CONTEXT)->disp.fog_coordfv)(CGL_MACRO_CONTEXT_RENDERER, coord) + +#define glFogCoordd(coord) \ + (*(CGL_MACRO_CONTEXT)->disp.fog_coordd)(CGL_MACRO_CONTEXT_RENDERER, coord) + +#define glFogCoorddv(coord) \ + (*(CGL_MACRO_CONTEXT)->disp.fog_coorddv)(CGL_MACRO_CONTEXT_RENDERER,coord) + +#define glFogCoordPointer(type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.fog_coord_pointer)(CGL_MACRO_CONTEXT_RENDERER, type, stride, pointer) + +#define glSecondaryColor3b(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3b)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3bv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3bv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColor3d(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3d)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3dv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3dv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColor3f(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3f)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3fv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3fv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColor3i(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3i)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3iv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3iv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColor3s(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3s)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3sv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3sv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColor3ub(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3ub)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3ubv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3ubv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColor3ui(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3ui)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3uiv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3uiv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColor3us(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3us)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3usv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3usv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColorPointer(size, type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color_pointer)(CGL_MACRO_CONTEXT_RENDERER, size, type, stride, pointer) + +#define glPointParameterf(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.point_parameterf)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glPointParameterfv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.point_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glPointParameteri(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.point_parameteri)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glPointParameteriv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.point_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha) \ + (*(CGL_MACRO_CONTEXT)->disp.blend_func_separate)(CGL_MACRO_CONTEXT_RENDERER, sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha) + +#define glMultiDrawArrays(mode, first, count, primcount) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_draw_arrays)(CGL_MACRO_CONTEXT_RENDERER, mode, first, count, primcount) + +#define glMultiDrawElements(mode, count, type, indices, primcount) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_draw_elements)(CGL_MACRO_CONTEXT_RENDERER, mode, count, type, indices, primcount) + +#define glWindowPos2d(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2d)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glWindowPos2dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glWindowPos2f(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2f)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glWindowPos2fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glWindowPos2i(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2i)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glWindowPos2iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glWindowPos2s(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2s)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glWindowPos2sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glWindowPos3d(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3d)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glWindowPos3dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glWindowPos3f(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3f)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glWindowPos3fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glWindowPos3i(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3i)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glWindowPos3iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glWindowPos3s(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3s)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glWindowPos3sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +/****************** OpenGL 1.5 Macros *****************************/ + +#define glGenQueries(n, ids) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_queries)(CGL_MACRO_CONTEXT_RENDERER, n, ids) + +#define glDeleteQueries(n, ids) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_queries)(CGL_MACRO_CONTEXT_RENDERER, n, ids) + +#define glIsQuery(id) \ + (*(CGL_MACRO_CONTEXT)->disp.is_query)(CGL_MACRO_CONTEXT_RENDERER, id) + +#define glBeginQuery(target, id) \ + (*(CGL_MACRO_CONTEXT)->disp.begin_query)(CGL_MACRO_CONTEXT_RENDERER, target, id) + +#define glEndQuery(target) \ + (*(CGL_MACRO_CONTEXT)->disp.end_query)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glGetQueryiv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_queryiv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetQueryObjectiv(id, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_query_objectiv)(CGL_MACRO_CONTEXT_RENDERER, id, pname, params) + +#define glGetQueryObjectuiv(id, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_query_objectuiv)(CGL_MACRO_CONTEXT_RENDERER, id, pname, params) + +#define glBindBuffer(target, buffer) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_buffer)(CGL_MACRO_CONTEXT_RENDERER, target, buffer) + +#define glDeleteBuffers(n, buffers) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_buffers)(CGL_MACRO_CONTEXT_RENDERER, n, buffers) + +#define glGenBuffers(n, buffers) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_buffers)(CGL_MACRO_CONTEXT_RENDERER, n, buffers) + +#define glIsBuffer(buffer) \ + (*(CGL_MACRO_CONTEXT)->disp.is_buffer)(CGL_MACRO_CONTEXT_RENDERER, buffer) + +#define glBufferData(target, size, data, usage) \ + (*(CGL_MACRO_CONTEXT)->disp.buffer_data)(CGL_MACRO_CONTEXT_RENDERER, target, size, data, usage) + +#define glBufferSubData(target, offset, size, data) \ + (*(CGL_MACRO_CONTEXT)->disp.buffer_sub_data)(CGL_MACRO_CONTEXT_RENDERER, target, offset, size, data) + +#define glGetBufferSubData(target, offset, size, data) \ + (*(CGL_MACRO_CONTEXT)->disp.get_buffer_sub_data)(CGL_MACRO_CONTEXT_RENDERER, target, offset, size, data) + +#define glMapBuffer(target, access) \ + (*(CGL_MACRO_CONTEXT)->disp.map_buffer)(CGL_MACRO_CONTEXT_RENDERER, target, access) + +#define glUnmapBuffer(target) \ + (*(CGL_MACRO_CONTEXT)->disp.unmap_buffer)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glGetBufferParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_buffer_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetBufferPointerv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_buffer_pointerv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +/****************** OpenGL 2.0 Macros *****************************/ + +#define glDrawBuffers(n, bufs) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_buffers_ARB)(CGL_MACRO_CONTEXT_RENDERER, n, bufs) + +#define glVertexAttrib1d(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x) + +#define glVertexAttrib1dv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib1f(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x) + +#define glVertexAttrib1fv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib1s(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x) + +#define glVertexAttrib1sv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib2d(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) + +#define glVertexAttrib2dv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib2f(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) + +#define glVertexAttrib2fv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib2s(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) + +#define glVertexAttrib2sv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib3d(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) + +#define glVertexAttrib3dv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib3f(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) + +#define glVertexAttrib3fv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib3s(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) + +#define glVertexAttrib3sv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4Nbv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nbv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4Niv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Niv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4Nsv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nsv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4Nub(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nub_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, x, w) + +#define glVertexAttrib4Nubv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nubv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4Nuiv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nuiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4Nusv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nusv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4bv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4bv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4d(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) + +#define glVertexAttrib4dv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4f(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) + +#define glVertexAttrib4fv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4iv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4s(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) + +#define glVertexAttrib4sv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4ubv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4ubv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4uiv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4uiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4usv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4usv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttribPointer(index, size, type, normalized, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib_pointer_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, size, type, normalized, stride, pointer) + +#define glEnableVertexAttribArray(index) \ + (*(CGL_MACRO_CONTEXT)->disp.enable_vertex_attrib_array_ARB)(CGL_MACRO_CONTEXT_RENDERER, index) + +#define glDisableVertexAttribArray(index) \ + (*(CGL_MACRO_CONTEXT)->disp.disable_vertex_attrib_array_ARB)(CGL_MACRO_CONTEXT_RENDERER, index) + +#define glGetVertexAttribdv(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribdv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) + +#define glGetVertexAttribfv(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) + +#define glGetVertexAttribiv(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) + +#define glGetVertexAttribPointerv(index, pname, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attrib_pointerv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, pointer) + +#define glDeleteShader(shader) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(shader)) + +#define glDetachShader(program, shader) \ + (*(CGL_MACRO_CONTEXT)->disp.detach_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), CGL_HANDLE_ARB(shader)) + +#define glCreateShader(type) \ + (GLuint)((unsigned long)(*(CGL_MACRO_CONTEXT)->disp.create_shader_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, type)) + +#define glShaderSource(shader, count, string, length) \ + (*(CGL_MACRO_CONTEXT)->disp.shader_source_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(shader), count, string, length) + +#define glCompileShader(shader) \ + (*(CGL_MACRO_CONTEXT)->disp.compile_shader_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(shader)) + +#define glCreateProgram() \ + (GLuint)((unsigned long)(*(CGL_MACRO_CONTEXT)->disp.create_program_object_ARB)(CGL_MACRO_CONTEXT_RENDERER)) + +#define glAttachShader(program, shader) \ + (*(CGL_MACRO_CONTEXT)->disp.attach_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), CGL_HANDLE_ARB(shader)) + +#define glLinkProgram(program) \ + (*(CGL_MACRO_CONTEXT)->disp.link_program_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program)) + +#define glUseProgram(program) \ + (*(CGL_MACRO_CONTEXT)->disp.use_program_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program)) + +#define glDeleteProgram(program) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program)) + +#define glValidateProgram(program) \ + (*(CGL_MACRO_CONTEXT)->disp.validate_program_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program)) + +#define glUniform1f(location, v0) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0) + +#define glUniform2f(location, v0, v1) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1) + +#define glUniform3f(location, v0, v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2) + +#define glUniform4f(location, v0, v1, v2, v3) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2, v3) + +#define glUniform1i(location, v0) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0) + +#define glUniform2i(location, v0, v1) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1) + +#define glUniform3i(location, v0, v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2) + +#define glUniform4i(location, v0, v1, v2, v3) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2, v3) + +#define glUniform1fv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform2fv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform3fv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform4fv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform1iv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform2iv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform3iv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform4iv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniformMatrix2fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix2fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix3fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix3fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix4fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glIsShader(shader) \ + (*(CGL_MACRO_CONTEXT)->disp.is_shader)(CGL_MACRO_CONTEXT_RENDERER, shader) + +#define glIsProgram(program) \ + (*(CGL_MACRO_CONTEXT)->disp.is_program)(CGL_MACRO_CONTEXT_RENDERER, program) + +#define glGetShaderiv(shader, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_shaderiv)(CGL_MACRO_CONTEXT_RENDERER, shader, pname, params) + +#define glGetProgramiv(program, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_programiv)(CGL_MACRO_CONTEXT_RENDERER, program, pname, params) + +#define glGetAttachedShaders(program, maxCount, count, shaders) \ + (*(CGL_MACRO_CONTEXT)->disp.get_attached_shaders)(CGL_MACRO_CONTEXT_RENDERER, program, maxCount, count, shaders) + +#define glGetShaderInfoLog(shader, bufSize, length, infoLog) \ + (*(CGL_MACRO_CONTEXT)->disp.get_shader_info_log)(CGL_MACRO_CONTEXT_RENDERER, shader, bufSize, length, infoLog) + +#define glGetProgramInfoLog(program, bufSize, length, infoLog) \ + (*(CGL_MACRO_CONTEXT)->disp.get_program_info_log)(CGL_MACRO_CONTEXT_RENDERER, program, bufSize, length, infoLog) + +#define glGetUniformLocation(program, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniform_location_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), name) + +#define glGetActiveUniform(program, index, bufSize, length, size, type, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_active_uniform_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), index, bufSize, length, size, type, name) + +#define glGetUniformfv(program, location, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniformfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), location, params) + +#define glGetUniformiv(program, location, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniformiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), location, params) + +#define glGetShaderSource(shader, bufSize, length, source) \ + (*(CGL_MACRO_CONTEXT)->disp.get_shader_source_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(shader), bufSize, length, source) + +#define glBindAttribLocation(program, index, name) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_attrib_location_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), index, name) + +#define glGetActiveAttrib(program, index, bufSize, length, size, type, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_active_attrib_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), index, bufSize, length, size, type, name) + +#define glGetAttribLocation(program, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_attrib_location_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), name) + +#define glStencilFuncSeparate(face, func, ref, mask) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_func_separate)(CGL_MACRO_CONTEXT_RENDERER, face, func, ref, mask) + +#define glStencilOpSeparate(face, fail, zfail, zpass) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_op_separate_ATI)(CGL_MACRO_CONTEXT_RENDERER, face, fail, zfail, zpass) + +#define glStencilMaskSeparate(face, mask) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_mask_separate)(CGL_MACRO_CONTEXT_RENDERER, face, mask) + +#define glBlendEquationSeparate glBlendEquationSeparateEXT + +/****************** OpenGL 2.1 Macros *****************************/ + +#define glUniformMatrix2x3fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix2x3fv)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix3x2fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix3x2fv)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix2x4fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix2x4fv)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix4x2fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix4x2fv)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix3x4fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix3x4fv)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix4x3fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix4x3fv)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +/****************** OpenGL 3.0 Macros *****************************/ + +#define glColorMaski glColorMaskIndexedEXT +#define glGetBooleani_v glGetBooleanIndexedvEXT +#define glGetIntegeri_v glGetIntegerIndexedvEXT +#define glEnablei glEnableIndexedEXT +#define glDisablei glDisableIndexedEXT +#define glIsEnabledi glIsEnabledIndexedEXT + +#define glBeginTransformFeedback glBeginTransformFeedbackEXT +#define glEndTransformFeedback glEndTransformFeedbackEXT +#define glBindBufferRange glBindBufferRangeEXT +#define glBindBufferBase glBindBufferBaseEXT +#define glTransformFeedbackVaryings glTransformFeedbackVaryingsEXT +#define glGetTransformFeedbackVarying glGetTransformFeedbackVaryingEXT + +#define glClampColor glClampColorARB + +#define glBeginConditionalRender glBeginConditionalRenderNV +#define glEndConditionalRender glEndConditionalRenderNV + +#define glVertexAttribIPointer glVertexAttribIPointerEXT +#define glGetVertexAttribIiv glGetVertexAttribIivEXT +#define glGetVertexAttribIuiv glGetVertexAttribIuivEXT +#define glVertexAttribI1i glVertexAttribI1iEXT +#define glVertexAttribI2i glVertexAttribI2iEXT +#define glVertexAttribI3i glVertexAttribI3iEXT +#define glVertexAttribI4i glVertexAttribI4iEXT +#define glVertexAttribI1ui glVertexAttribI1uiEXT +#define glVertexAttribI2ui glVertexAttribI2uiEXT +#define glVertexAttribI3ui glVertexAttribI3uiEXT +#define glVertexAttribI4ui glVertexAttribI4uiEXT +#define glVertexAttribI1iv glVertexAttribI1ivEXT +#define glVertexAttribI2iv glVertexAttribI2ivEXT +#define glVertexAttribI3iv glVertexAttribI3ivEXT +#define glVertexAttribI4iv glVertexAttribI4ivEXT +#define glVertexAttribI1uiv glVertexAttribI1uivEXT +#define glVertexAttribI2uiv glVertexAttribI2uivEXT +#define glVertexAttribI3uiv glVertexAttribI3uivEXT +#define glVertexAttribI4uiv glVertexAttribI4uivEXT +#define glVertexAttribI4bv glVertexAttribI4bvEXT +#define glVertexAttribI4sv glVertexAttribI4svEXT +#define glVertexAttribI4ubv glVertexAttribI4ubvEXT +#define glVertexAttribI4usv glVertexAttribI4usvEXT +#define glGetUniformuiv glGetUniformuivEXT +#define glBindFragDataLocation glBindFragDataLocationEXT +#define glGetFragDataLocation glGetFragDataLocationEXT +#define glUniform1ui glUniform1uiEXT +#define glUniform2ui glUniform2uiEXT +#define glUniform3ui glUniform3uiEXT +#define glUniform4ui glUniform4uiEXT +#define glUniform1uiv glUniform1uivEXT +#define glUniform2uiv glUniform2uivEXT +#define glUniform3uiv glUniform3uivEXT +#define glUniform4uiv glUniform4uivEXT + +#define glTexParameterIiv glTexParameterIivEXT +#define glTexParameterIuiv glTexParameterIuivEXT +#define glGetTexParameterIiv glGetTexParameterIivEXT +#define glGetTexParameterIuiv glGetTexParameterIuivEXT + +#define glClearBufferiv(buffer, drawbuffer, value) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_bufferiv)(CGL_MACRO_CONTEXT_RENDERER, buffer, drawbuffer, value) + +#define glClearBufferuiv(buffer, drawbuffer, value) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_bufferuiv)(CGL_MACRO_CONTEXT_RENDERER, buffer, drawbuffer, value) + +#define glClearBufferfv(buffer, drawbuffer, value) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_bufferfv)(CGL_MACRO_CONTEXT_RENDERER, buffer, drawbuffer, value) + +#define glClearBufferfi(buffer, drawbuffer, depth, stencil) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_bufferfi)(CGL_MACRO_CONTEXT_RENDERER, buffer, drawbuffer, depth, stencil) + +#define glGetStringi(name, index) \ + (*(CGL_MACRO_CONTEXT)->disp.get_stringi)(CGL_MACRO_CONTEXT_RENDERER, name, index) + + + +/********** ARB Extensions *************************************************/ + +/* GL_ARB_vertex_program */ +#define glBindProgramARB(target, id) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_program_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, id) + +#define glDeleteProgramsARB(n, programs) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_programs_ARB)(CGL_MACRO_CONTEXT_RENDERER, n, programs) + +#define glGenProgramsARB(n, programs) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_programs_ARB)(CGL_MACRO_CONTEXT_RENDERER, n, programs) + +#define glIsProgramARB(id) \ + (*(CGL_MACRO_CONTEXT)->disp.is_program_ARB)(CGL_MACRO_CONTEXT_RENDERER, id) + +#define glVertexAttrib1sARB(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x) + +#define glVertexAttrib1fARB(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x) + +#define glVertexAttrib1dARB(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x) + +#define glVertexAttrib2sARB(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) + +#define glVertexAttrib2fARB(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) + +#define glVertexAttrib2dARB(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) + +#define glVertexAttrib3sARB(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) + +#define glVertexAttrib3fARB(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) + +#define glVertexAttrib3dARB(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) + +#define glVertexAttrib4sARB(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) + +#define glVertexAttrib4fARB(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) + +#define glVertexAttrib4dARB(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) + +#define glVertexAttrib4NubARB(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nub_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) + +#define glVertexAttrib1svARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib1fvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib1dvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib2svARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib2fvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib2dvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib3svARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib3fvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib3dvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4bvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4bv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4ubvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4ubv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4svARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4usvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4usv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4ivARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4uivARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4uiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4fvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4dvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4NbvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nbv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4NubvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nubv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4NsvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nsv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4NusvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nusv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4NivARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Niv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4NuivARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nuiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttribPointerARB(index, size, type, normalized, stride, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib_pointer_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, size, type, normalized, stride, addr) + +#define glEnableVertexAttribArrayARB(index) \ + (*(CGL_MACRO_CONTEXT)->disp.enable_vertex_attrib_array_ARB)(CGL_MACRO_CONTEXT_RENDERER, index) + +#define glDisableVertexAttribArrayARB(index) \ + (*(CGL_MACRO_CONTEXT)->disp.disable_vertex_attrib_array_ARB)(CGL_MACRO_CONTEXT_RENDERER, index) + +#define glGetVertexAttribdvARB(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribdv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) + +#define glGetVertexAttribfvARB(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) + +#define glGetVertexAttribivARB(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) + +#define glGetVertexAttribPointervARB(index, pname, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attrib_pointerv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, pointer) + +#define glProgramEnvParameter4dARB(target, index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.program_env_parameter4d_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, x, y, z, w) + +#define glProgramEnvParameter4dvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.program_env_parameter4dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glProgramEnvParameter4fARB(target, index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.program_env_parameter4f_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, x, y, z, w) + +#define glProgramEnvParameter4fvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.program_env_parameter4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glProgramLocalParameter4dARB(target, index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.program_local_parameter4d_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, x, y, z, w) + +#define glProgramLocalParameter4dvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.program_local_parameter4dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glProgramLocalParameter4fARB(target, index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.program_local_parameter4f_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, x, y, z, w) + +#define glProgramLocalParameter4fvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.program_local_parameter4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glGetProgramEnvParameterdvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_program_env_parameterdv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glGetProgramEnvParameterfvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_program_env_parameterfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glGetProgramLocalParameterdvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_program_local_parameterdv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glGetProgramLocalParameterfvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_program_local_parameterfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glProgramStringARB(target, format, length, string) \ + (*(CGL_MACRO_CONTEXT)->disp.program_string_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, format, length, string) + +#define glGetProgramStringARB(target, pname, string) \ + (*(CGL_MACRO_CONTEXT)->disp.get_program_string_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, pname, string) + +#define glGetProgramivARB(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_programiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +/* GL_EXT_gpu_program_parameters */ +#define glProgramEnvParameters4fvEXT(target, index, count, params) \ + (*(CGL_MACRO_CONTEXT)->disp.program_env_parameters4fv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index, count, params) + +#define glProgramLocalParameters4fvEXT(target, index, count, params) \ + (*(CGL_MACRO_CONTEXT)->disp.program_local_parameters4fv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index, count, params) + +/* GL_ARB_vertex_blend */ +#define glWeightbvARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightbv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightsvARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightsv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightivARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightfvARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightdvARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightdv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightubvARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightubv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightusvARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightusv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightuivARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightuiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightPointerARB(size, type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.weight_pointer_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, type, stride, pointer) + +#define glVertexBlendARB(count) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_blend_ARB)(CGL_MACRO_CONTEXT_RENDERER, count) + +/* GL_ARB_multitexture */ +#define glClientActiveTextureARB glClientActiveTexture +#define glActiveTextureARB glActiveTexture +#define glMultiTexCoord1dARB glMultiTexCoord1d +#define glMultiTexCoord1dvARB glMultiTexCoord1dv +#define glMultiTexCoord1fARB glMultiTexCoord1f +#define glMultiTexCoord1fvARB glMultiTexCoord1fv +#define glMultiTexCoord1iARB glMultiTexCoord1i +#define glMultiTexCoord1ivARB glMultiTexCoord1iv +#define glMultiTexCoord1sARB glMultiTexCoord1s +#define glMultiTexCoord1svARB glMultiTexCoord1sv +#define glMultiTexCoord2dARB glMultiTexCoord2d +#define glMultiTexCoord2dvARB glMultiTexCoord2dv +#define glMultiTexCoord2fARB glMultiTexCoord2f +#define glMultiTexCoord2fvARB glMultiTexCoord2fv +#define glMultiTexCoord2iARB glMultiTexCoord2i +#define glMultiTexCoord2ivARB glMultiTexCoord2iv +#define glMultiTexCoord2sARB glMultiTexCoord2s +#define glMultiTexCoord2svARB glMultiTexCoord2sv +#define glMultiTexCoord3dARB glMultiTexCoord3d +#define glMultiTexCoord3dvARB glMultiTexCoord3dv +#define glMultiTexCoord3fARB glMultiTexCoord3f +#define glMultiTexCoord3fvARB glMultiTexCoord3fv +#define glMultiTexCoord3iARB glMultiTexCoord3i +#define glMultiTexCoord3ivARB glMultiTexCoord3iv +#define glMultiTexCoord3sARB glMultiTexCoord3s +#define glMultiTexCoord3svARB glMultiTexCoord3sv +#define glMultiTexCoord4dARB glMultiTexCoord4d +#define glMultiTexCoord4dvARB glMultiTexCoord4dv +#define glMultiTexCoord4fARB glMultiTexCoord4f +#define glMultiTexCoord4fvARB glMultiTexCoord4fv +#define glMultiTexCoord4iARB glMultiTexCoord4i +#define glMultiTexCoord4ivARB glMultiTexCoord4iv +#define glMultiTexCoord4sARB glMultiTexCoord4s +#define glMultiTexCoord4svARB glMultiTexCoord4sv + +/* GL_ARB_transpose_matrix */ +#define glLoadTransposeMatrixfARB glLoadTransposeMatrixf +#define glLoadTransposeMatrixdARB glLoadTransposeMatrixd +#define glMultTransposeMatrixfARB glMultTransposeMatrixf +#define glMultTransposeMatrixdARB glMultTransposeMatrixd + +/* GL_ARB_texture_compression */ +#define glCompressedTexImage3DARB glCompressedTexImage3D +#define glCompressedTexImage2DARB glCompressedTexImage2D +#define glCompressedTexImage1DARB glCompressedTexImage1D +#define glCompressedTexSubImage3DARB glCompressedTexSubImage3D +#define glCompressedTexSubImage2DARB glCompressedTexSubImage2D +#define glCompressedTexSubImage1DARB glCompressedTexSubImage1D +#define glGetCompressedTexImageARB glGetCompressedTexImage + +/* GL_ARB_multisample */ +#define glSampleCoverageARB glSampleCoverage + +/* GL_ARB_point_parameters */ +#define glPointParameterfARB glPointParameterf +#define glPointParameterfvARB glPointParameterfv + +/* GL_ARB_window_pos */ +#define glWindowPos2dARB glWindowPos2d +#define glWindowPos2dvARB glWindowPos2dv +#define glWindowPos2fARB glWindowPos2f +#define glWindowPos2fvARB glWindowPos2fv +#define glWindowPos2iARB glWindowPos2i +#define glWindowPos2ivARB glWindowPos2iv +#define glWindowPos2sARB glWindowPos2s +#define glWindowPos2svARB glWindowPos2sv +#define glWindowPos3dARB glWindowPos3d +#define glWindowPos3dvARB glWindowPos3dv +#define glWindowPos3fARB glWindowPos3f +#define glWindowPos3fvARB glWindowPos3fv +#define glWindowPos3iARB glWindowPos3i +#define glWindowPos3ivARB glWindowPos3iv +#define glWindowPos3sARB glWindowPos3s +#define glWindowPos3svARB glWindowPos3sv + +/* GL_ARB_occlusion_query */ +#define glGenQueriesARB glGenQueries +#define glDeleteQueriesARB glDeleteQueries +#define glIsQueryARB glIsQuery +#define glBeginQueryARB glBeginQuery +#define glEndQueryARB glEndQuery +#define glGetQueryivARB glGetQueryiv +#define glGetQueryObjectivARB glGetQueryObjectiv +#define glGetQueryObjectuivARB glGetQueryObjectuiv + +/* GL_ARB_vertex_buffer_object */ +#define glBindBufferARB glBindBuffer +#define glDeleteBuffersARB glDeleteBuffers +#define glGenBuffersARB glGenBuffers +#define glIsBufferARB glIsBuffer +#define glBufferDataARB glBufferData +#define glBufferSubDataARB glBufferSubData +#define glGetBufferSubDataARB glGetBufferSubData +#define glMapBufferARB glMapBuffer +#define glUnmapBufferARB glUnmapBuffer +#define glGetBufferParameterivARB glGetBufferParameteriv +#define glGetBufferPointervARB glGetBufferPointerv + +/* GL_ARB_shader_objects */ +#define glDeleteObjectARB(obj) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, obj) + +#define glGetHandleARB(pname) \ + (*(CGL_MACRO_CONTEXT)->disp.get_handle_ARB)(CGL_MACRO_CONTEXT_RENDERER, pname) + +#define glDetachObjectARB(container, attached) \ + (*(CGL_MACRO_CONTEXT)->disp.detach_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, container, attached) + +#define glCreateShaderObjectARB(shader) \ + (*(CGL_MACRO_CONTEXT)->disp.create_shader_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, shader) + +#define glShaderSourceARB(shader, count, string, length) \ + (*(CGL_MACRO_CONTEXT)->disp.shader_source_ARB)(CGL_MACRO_CONTEXT_RENDERER, shader, count, string, length) + +#define glCompileShaderARB(shader) \ + (*(CGL_MACRO_CONTEXT)->disp.compile_shader_ARB)(CGL_MACRO_CONTEXT_RENDERER, shader) + +#define glCreateProgramObjectARB() \ + (*(CGL_MACRO_CONTEXT)->disp.create_program_object_ARB)(CGL_MACRO_CONTEXT_RENDERER) + +#define glAttachObjectARB(container, object) \ + (*(CGL_MACRO_CONTEXT)->disp.attach_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, container, object) + +#define glLinkProgramARB(program) \ + (*(CGL_MACRO_CONTEXT)->disp.link_program_ARB)(CGL_MACRO_CONTEXT_RENDERER, program) + +#define glUseProgramObjectARB(program) \ + (*(CGL_MACRO_CONTEXT)->disp.use_program_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, program) + +#define glValidateProgramARB(program) \ + (*(CGL_MACRO_CONTEXT)->disp.validate_program_ARB)(CGL_MACRO_CONTEXT_RENDERER, program) + +#define glUniform1fARB(location, v0) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0) + +#define glUniform2fARB(location, v0, v1) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1) + +#define glUniform3fARB(location, v0, v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2) + +#define glUniform4fARB(location, v0, v1, v2, v3) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2, v3) + +#define glUniform1iARB(location, v0) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0) + +#define glUniform2iARB(location, v0, v1) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1) + +#define glUniform3iARB(location, v0, v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2) + +#define glUniform4iARB(location, v0, v1, v2, v3) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2, v3) + +#define glUniform1fvARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform2fvARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform3fvARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform4fvARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform1ivARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform2ivARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform3ivARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform4ivARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniformMatrix2fvARB(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix2fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix3fvARB(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix3fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix4fvARB(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glGetObjectParameterfvARB(obj, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_object_parameterfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, obj, pname, params) + +#define glGetObjectParameterivARB(obj, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_object_parameteriv_ARB)(CGL_MACRO_CONTEXT_RENDERER, obj, pname, params) + +#define glGetInfoLogARB(obj, max, length, info) \ + (*(CGL_MACRO_CONTEXT)->disp.get_info_log_ARB)(CGL_MACRO_CONTEXT_RENDERER, obj, max, length, info) + +#define glGetAttachedObjectsARB(container, max, count, obj) \ + (*(CGL_MACRO_CONTEXT)->disp.get_attached_objects_ARB)(CGL_MACRO_CONTEXT_RENDERER, container, max, count, obj) + +#define glGetUniformLocationARB(program, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniform_location_ARB)(CGL_MACRO_CONTEXT_RENDERER, program, name) + +#define glGetActiveUniformARB(program, index, max, length, size, type, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_active_uniform_ARB)(CGL_MACRO_CONTEXT_RENDERER, program, index, max, length, size, type, name) + +#define glGetUniformfvARB(program, location, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniformfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, program, location, params) + +#define glGetUniformivARB(program, location, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniformiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, program, location, params) + +#define glGetShaderSourceARB(obj, max, length, source) \ + (*(CGL_MACRO_CONTEXT)->disp.get_shader_source_ARB)(CGL_MACRO_CONTEXT_RENDERER, obj, max, length, source) + +/* GL_ARB_vertex_shader */ +#define glBindAttribLocationARB(program, index, name) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_attrib_location_ARB)(CGL_MACRO_CONTEXT_RENDERER, program, index, name) + +#define glGetActiveAttribARB(program, index, max, length, size, type, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_active_attrib_ARB)(CGL_MACRO_CONTEXT_RENDERER, program, index, max, length, size, type, name) + +#define glGetAttribLocationARB(program, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_attrib_location_ARB)(CGL_MACRO_CONTEXT_RENDERER, program, name) + +#define glDrawBuffersARB(n, bufs)\ + (*(CGL_MACRO_CONTEXT)->disp.draw_buffers_ARB)(CGL_MACRO_CONTEXT_RENDERER, n, bufs) + +/* GL_ARB_color_buffer_float */ +#define glClampColorARB(target, clamp)\ + (*(CGL_MACRO_CONTEXT)->disp.clamp_color_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, clamp) + +/* GL_ARB_framebuffer_object */ +#define glIsRenderbuffer(renderbuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.is_renderbuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, renderbuffer) + +#define glBindRenderbuffer(target, renderbuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_renderbuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, renderbuffer) + +#define glDeleteRenderbuffers(n, renderbuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_renderbuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, renderbuffers) + +#define glGenRenderbuffers(n, renderbuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_renderbuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, renderbuffers) + +#define glRenderbufferStorage(target, internalformat, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.renderbuffer_storage_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, width, height) + +#define glGetRenderbufferParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_renderbuffer_parameteriv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glIsFramebuffer(framebuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.is_framebuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, framebuffer) + +#define glBindFramebuffer(target, framebuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_framebuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, framebuffer) + +#define glDeleteFramebuffers(n, framebuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_framebuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, framebuffers) + +#define glGenFramebuffers(n, framebuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_framebuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, framebuffers) + +#define glCheckFramebufferStatus(target) \ + (*(CGL_MACRO_CONTEXT)->disp.check_framebuffer_status_EXT)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glFramebufferTexture1D(target, attachment, textarget, texture, level) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture1D_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, textarget, texture, level) + +#define glFramebufferTexture2D(target, attachment, textarget, texture, level) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture2D_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, textarget, texture, level) + +#define glFramebufferTexture3D(target, attachment, textarget, texture, level, zoffset) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture3D_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, textarget, texture, level, zoffset) + +#define glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_renderbuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, renderbuffertarget, renderbuffer) + +#define glGetFramebufferAttachmentParameteriv(target, attachment, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_framebuffer_attachment_parameteriv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, pname, params) + +#define glGenerateMipmap(target) \ + (*(CGL_MACRO_CONTEXT)->disp.generate_mipmap_EXT)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter) \ + (*(CGL_MACRO_CONTEXT)->disp.blit_framebuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter) + +#define glRenderbufferStorageMultisample(target, samples, internalformat, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.renderbuffer_storage_multisample_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, samples, internalformat, width, height) + +#define glFramebufferTextureLayer(target, attachment, texture, level, layer) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture_layer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, texture, level, layer) + +/* GL_ARB_instanced_arrays */ +#define glVertexAttribDivisorARB(index,divisor) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib_divisor)(CGL_MACRO_CONTEXT_RENDERER, index, divisor) + +/* GL_ARB_draw_instanced */ +#define glDrawArraysInstancedARB(mode, first, count, primcount) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_arrays_instanced)(CGL_MACRO_CONTEXT_RENDERER, mode, first, count, primcount) + +#define glDrawElementsInstancedARB(mode, count, type, indices, primcount) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_elements_instanced)(CGL_MACRO_CONTEXT_RENDERER, mode, count, type, indices, primcount) + +/* GL_ARB_draw_elements_base_vertex */ +#define glDrawElementsBaseVertex(mode, count, type, indices, basev) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_elements_base_vertex)(CGL_MACRO_CONTEXT_RENDERER, mode, count, type, indices, basev) + +#define glDrawRangeElementsBaseVertex(mode, start, end, count, type, indices, basev) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_range_elements_base_vertex)(CGL_MACRO_CONTEXT_RENDERER, mode, start, end, count, type, indices, basev) + +#define glDrawElementsInstancedBaseVertex(mode, count, type, indices, primcount, basev) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_elements_instanced_base_vertex)(CGL_MACRO_CONTEXT_RENDERER, mode, count, type, indices, primcount, basev) + +#define glMultiDrawElementsBaseVertex(mode, count, type, indices, primcount, basev) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_draw_elements_base_vertex)(CGL_MACRO_CONTEXT_RENDERER, mode, count, type, indices, primcount, basev) + +/* GL_ARB_sync */ +#define glFenceSync(condition, flags) \ + (*(CGL_MACRO_CONTEXT)->disp.fence_sync)(CGL_MACRO_CONTEXT_RENDERER, condition, flags) + +#define glIsSync(sync) \ + (*(CGL_MACRO_CONTEXT)->disp.is_sync)(CGL_MACRO_CONTEXT_RENDERER, sync) + +#define glDeleteSync(sync) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_sync)(CGL_MACRO_CONTEXT_RENDERER, sync) + +#define glClientWaitSync(sync, flags, timeout) \ + (*(CGL_MACRO_CONTEXT)->disp.client_wait_sync)(CGL_MACRO_CONTEXT_RENDERER, sync, flags, timeout) + +#define glWaitSync(sync, flags, timeout) \ + (*(CGL_MACRO_CONTEXT)->disp.wait_sync)(CGL_MACRO_CONTEXT_RENDERER, sync, flags, timeout) + +#define glGetInteger64v(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_integer64v_sync)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glGetSynciv(sync, pname, bufSize, length, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_synciv)(CGL_MACRO_CONTEXT_RENDERER, sync, pname, bufSize, length, values) + +/*********** EXT Extensions *************************************************/ + +/* GL_EXT_stencil_two_side */ +#define glActiveStencilFaceEXT(face) \ + (*(CGL_MACRO_CONTEXT)->disp.active_stencil_face_EXT)(CGL_MACRO_CONTEXT_RENDERER, face) + +/* GL_EXT_depth_bounds_test */ +#define glDepthBoundsEXT(zmin, zmax) \ + (*(CGL_MACRO_CONTEXT)->disp.depth_bounds_EXT)(CGL_MACRO_CONTEXT_RENDERER, zmin, zmax) + +/* GL_EXT_blend_equation_separate */ +#define glBlendEquationSeparateEXT(modeRGB, modeAlpha) \ + (*(CGL_MACRO_CONTEXT)->disp.blend_equation_separate_EXT)(CGL_MACRO_CONTEXT_RENDERER, modeRGB, modeAlpha) + +/* GL_EXT_paletted_texture */ +#define glColorTableEXT glColorTable +#define glColorSubTableEXT glColorSubTable +#define glGetColorTableEXT glGetColorTable +#define glGetColorTableParameterivEXT glGetColorTableParameteriv +#define glGetColorTableParameterfvEXT glGetColorTableParameterfv + +/* GL_EXT_secondary_color */ +#define glSecondaryColor3bEXT glSecondaryColor3b +#define glSecondaryColor3bvEXT glSecondaryColor3bv +#define glSecondaryColor3dEXT glSecondaryColor3d +#define glSecondaryColor3dvEXT glSecondaryColor3dv +#define glSecondaryColor3fEXT glSecondaryColor3f +#define glSecondaryColor3fvEXT glSecondaryColor3fv +#define glSecondaryColor3iEXT glSecondaryColor3i +#define glSecondaryColor3ivEXT glSecondaryColor3iv +#define glSecondaryColor3sEXT glSecondaryColor3s +#define glSecondaryColor3svEXT glSecondaryColor3sv +#define glSecondaryColor3ubEXT glSecondaryColor3ub +#define glSecondaryColor3ubvEXT glSecondaryColor3ubv +#define glSecondaryColor3uiEXT glSecondaryColor3ui +#define glSecondaryColor3uivEXT glSecondaryColor3uiv +#define glSecondaryColor3usEXT glSecondaryColor3us +#define glSecondaryColor3usvEXT glSecondaryColor3usv +#define glSecondaryColorPointerEXT glSecondaryColorPointer + +/* GL_EXT_fog_coord */ +#define glFogCoordfEXT glFogCoordf +#define glFogCoordfvEXT glFogCoordfv +#define glFogCoorddEXT glFogCoordd +#define glFogCoorddvEXT glFogCoorddv +#define glFogCoordPointerEXT glFogCoordPointer + +/* GL_EXT_draw_range_elements */ +#define glDrawRangeElementsEXT glDrawRangeElements + +/* GL_EXT_blend_func_separate */ +#define glBlendFuncSeparateEXT glBlendFuncSeparate + +/* GL_EXT_multi_draw_arrays */ +#define glMultiDrawArraysEXT glMultiDrawArrays +#define glMultiDrawElementsEXT glMultiDrawElements + +/* GL_EXT_blend_color */ +#define glBlendColorEXT glBlendColor + +/* GL_EXT_blend_minmax */ +#define glBlendEquationEXT glBlendEquation + +/* GL_EXT_framebuffer_object */ +#define glIsRenderbufferEXT(renderbuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.is_renderbuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, renderbuffer) + +#define glBindRenderbufferEXT(target, renderbuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_renderbuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, renderbuffer) + +#define glDeleteRenderbuffersEXT(n, renderbuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_renderbuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, renderbuffers) + +#define glGenRenderbuffersEXT(n, renderbuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_renderbuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, renderbuffers) + +#define glRenderbufferStorageEXT(target, internalformat, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.renderbuffer_storage_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, width, height) + +#define glGetRenderbufferParameterivEXT(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_renderbuffer_parameteriv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glIsFramebufferEXT(framebuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.is_framebuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, framebuffer) + +#define glBindFramebufferEXT(target, framebuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_framebuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, framebuffer) + +#define glDeleteFramebuffersEXT(n, framebuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_framebuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, framebuffers) + +#define glGenFramebuffersEXT(n, framebuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_framebuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, framebuffers) + +#define glCheckFramebufferStatusEXT(target) \ + (*(CGL_MACRO_CONTEXT)->disp.check_framebuffer_status_EXT)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glFramebufferTexture1DEXT(target, attachment, textarget, texture, level) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture1D_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, textarget, texture, level) + +#define glFramebufferTexture2DEXT(target, attachment, textarget, texture, level) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture2D_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, textarget, texture, level) + +#define glFramebufferTexture3DEXT(target, attachment, textarget, texture, level, zoffset) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture3D_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, textarget, texture, level, zoffset) + +#define glFramebufferRenderbufferEXT(target, attachment, renderbuffertarget, renderbuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_renderbuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, renderbuffertarget, renderbuffer) + +#define glGetFramebufferAttachmentParameterivEXT(target, attachment, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_framebuffer_attachment_parameteriv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, pname, params) + +#define glGenerateMipmapEXT(target) \ + (*(CGL_MACRO_CONTEXT)->disp.generate_mipmap_EXT)(CGL_MACRO_CONTEXT_RENDERER, target) + +/* EXT_framebuffer_blit and EXT_framebuffer_multisample */ +#define glBlitFramebufferEXT(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter) \ + (*(CGL_MACRO_CONTEXT)->disp.blit_framebuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter) + +#define glRenderbufferStorageMultisampleEXT(target, samples, internalformat, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.renderbuffer_storage_multisample_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, samples, internalformat, width, height) + +/* GL_EXT_geometry_shader4 */ +#define glProgramParameteriEXT(program, pname, value) \ + (*(CGL_MACRO_CONTEXT)->disp.program_parameteri_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, pname, value) + +#define glFramebufferTextureEXT(target, attachment, texture, level) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, texture, level) + +#define glFramebufferTextureLayerEXT(target, attachment, texture, level, layer) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture_layer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, texture, level, layer) + +#define glFramebufferTextureFaceEXT(target, attachment, texture, level, face) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture_face_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, texture, level, face) + +/* GL_EXT_transform_feedback */ +#define glBindBufferRangeEXT(target, index, buffer, offset, size) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_buffer_range_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index, buffer, offset, size) +#define glBindBufferOffsetEXT(target, index, buffer, offset) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_buffer_offset_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index, buffer, offset) +#define glBindBufferBaseEXT(target, index, buffer) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_buffer_base_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index, buffer) +#define glBeginTransformFeedbackEXT(primitiveMode) \ + (*(CGL_MACRO_CONTEXT)->disp.begin_transform_feedback_EXT)(CGL_MACRO_CONTEXT_RENDERER, primitiveMode) +#define glEndTransformFeedbackEXT() \ + (*(CGL_MACRO_CONTEXT)->disp.end_transform_feedback_EXT)(CGL_MACRO_CONTEXT_RENDERER) +#define glTransformFeedbackVaryingsEXT(program, count, varyings, bufferMode) \ + (*(CGL_MACRO_CONTEXT)->disp.transform_feedback_varyings_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, count, varyings, bufferMode) +#define glGetTransformFeedbackVaryingEXT(program, index, bufSize, length, size, type, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_transform_feedback_varying_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, index, bufSize, length, size, type, name) + +/* GL_EXT_transform_feedback || GL_EXT_draw_buffers2 */ +#define glGetIntegerIndexedvEXT(param, index, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_integer_indexedv_EXT)(CGL_MACRO_CONTEXT_RENDERER, param, index, values) +#define glGetBooleanIndexedvEXT(param, index, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_boolean_indexedv_EXT)(CGL_MACRO_CONTEXT_RENDERER, param, index, values) + +/* GL_EXT_bindable_uniform */ +#define glUniformBufferEXT(program, location, buffer) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_buffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, location, buffer) +#define glGetUniformBufferSizeEXT(program, location) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniform_buffer_size_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, location) +#define glGetUniformOffsetEXT(program, location) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniform_buffer_offset_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, location) + +/* GL_EXT_texture_integer */ +#define glClearColorIiEXT(r, g, b, a) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_colorIi_EXT)(CGL_MACRO_CONTEXT_RENDERER, r, g, b, a) +#define glClearColorIuiEXT(r, g, b, a) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_colorIui_EXT)(CGL_MACRO_CONTEXT_RENDERER, r, g, b, a) +#define glTexParameterIivEXT(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_parameterIiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) +#define glTexParameterIuivEXT(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_parameterIuiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) +#define glGetTexParameterIivEXT(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_parameterIiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) +#define glGetTexParameterIuivEXT(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_parameterIuiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +/* GL_EXT_gpu_shader4 */ +#define glVertexAttribI1iEXT(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI1i_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x) +#define glVertexAttribI2iEXT(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI2i_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) +#define glVertexAttribI3iEXT(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI3i_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) +#define glVertexAttribI4iEXT(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4i_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) +#define glVertexAttribI1uiEXT(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI1ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x) +#define glVertexAttribI2uiEXT(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI2ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) +#define glVertexAttribI3uiEXT(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI3ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) +#define glVertexAttribI4uiEXT(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) +#define glVertexAttribI1ivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI1iv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI2ivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI2iv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI3ivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI3iv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI4ivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4iv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI1uivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI1uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI2uivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI2uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI3uivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI3uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI4uivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI4bvEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4bv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI4svEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4sv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI4ubvEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4ubv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI4usvEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4usv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribIPointerEXT(index, size, type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI_pointer_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, size, type, stride, pointer) +#define glGetVertexAttribIivEXT(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribIiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) +#define glGetVertexAttribIuivEXT(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribIuiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) +#define glUniform1uiEXT(location, v0) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, v0) +#define glUniform2uiEXT(location, v0, v1) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1) +#define glUniform3uiEXT(location, v0, v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2) +#define glUniform4uiEXT(location, v0, v1, v2, v3) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2, v3) +#define glUniform1uivEXT(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) +#define glUniform2uivEXT(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) +#define glUniform3uivEXT(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) +#define glUniform4uivEXT(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) +#define glGetUniformuivEXT(program, location, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniformuiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, location, params) +#define glBindFragDataLocationEXT(program, colorNumber, name) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_frag_data_location_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, colorNumber, name) +#define glGetFragDataLocationEXT(program, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_frag_data_location_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, name) + +/* GL_EXT_draw_buffers2 */ +#define glColorMaskIndexedEXT(index, r, g, b, a) \ + (*(CGL_MACRO_CONTEXT)->disp.color_mask_indexed_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, r, g, b, a) +#define glEnableIndexedEXT(target, index) \ + (*(CGL_MACRO_CONTEXT)->disp.enable_indexed_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index) +#define glDisableIndexedEXT(target, index) \ + (*(CGL_MACRO_CONTEXT)->disp.disable_indexed_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index) +#define glIsEnabledIndexedEXT(target, index) \ + (*(CGL_MACRO_CONTEXT)->disp.is_enabled_indexed_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index) + +/* GL_ARB_provoking_vertex */ +#define glProvokingVertex(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.provoking_vertex_EXT)(CGL_MACRO_CONTEXT_RENDERER, mode) + +/* GL_EXT_provoking_vertex */ +#define glProvokingVertexEXT glProvokingVertex + +/* GL_EXT_timer_query */ +#define glGetQueryObjecti64vEXT(id, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_query_objecti64v)(CGL_MACRO_CONTEXT_RENDERER, id, pname, params) + +#define glGetQueryObjectui64vEXT(id, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_query_objectui64v)(CGL_MACRO_CONTEXT_RENDERER, id, pname, params) + +/* GL_EXT_debug_label */ +#define glLabelObjectEXT(type, object, length, label) \ + (*(CGL_MACRO_CONTEXT)->disp.label_object_EXT)(CGL_MACRO_CONTEXT_RENDERER, type, object, length, label) + +#define glGetObjectLabelEXT(type, object, bufSize, length, label) \ + (*(CGL_MACRO_CONTEXT)->disp.get_object_label_EXT)(CGL_MACRO_CONTEXT_RENDERER, type, object, bufSize, length, label) + +/* GL_EXT_debug_marker */ +#define glInsertEventMarkerEXT(length, marker) \ + (*(CGL_MACRO_CONTEXT)->disp.insert_event_marker_EXT)(CGL_MACRO_CONTEXT_RENDERER, length, marker) + +#define glPushGroupMarkerEXT(length, marker) \ + (*(CGL_MACRO_CONTEXT)->disp.push_group_marker_EXT)(CGL_MACRO_CONTEXT_RENDERER, length, marker) + +#define glPopGroupMarkerEXT() \ + (*(CGL_MACRO_CONTEXT)->disp.pop_group_marker_EXT)(CGL_MACRO_CONTEXT_RENDERER) + +/*********** APPLE Extensions ***********************************************/ + +/* GL_APPLE_vertex_program_evaluators */ +#define glEnableVertexAttribAPPLE(index, pname) \ + (*(CGL_MACRO_CONTEXT)->disp.enable_vertex_attrib_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname) + +#define glDisableVertexAttribAPPLE(index, pname) \ + (*(CGL_MACRO_CONTEXT)->disp.disable_vertex_attrib_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname) + +#define glIsVertexAttribEnabledAPPLE(index, pname) \ + (*(CGL_MACRO_CONTEXT)->disp.is_vertex_attrib_enabled_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname) + +#define glMapVertexAttrib1dAPPLE(index, size, u1, u2, stride, order, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map_vertex_attrib1d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, size, u1, u2, stride, order, points) + +#define glMapVertexAttrib1fAPPLE(index, size, u1, u2, stride, order, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map_vertex_attrib1f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, size, u1, u2, stride, order, points) + +#define glMapVertexAttrib2dAPPLE(index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map_vertex_attrib2d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) + +#define glMapVertexAttrib2fAPPLE(index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map_vertex_attrib2f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) + +/* GL_APPLE_texture_range */ +#define glTextureRangeAPPLE(target, length, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.texture_range_APPLE)(CGL_MACRO_CONTEXT_RENDERER, target, length, pointer) + +#define glGetTexParameterPointervAPPLE(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_parameter_pointerv_APPLE)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +/* GL_APPLE_fence */ +#define glGenFencesAPPLE(n, fences) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_fences_APPLE)(CGL_MACRO_CONTEXT_RENDERER, n, fences) + +#define glDeleteFencesAPPLE(n, fences) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_fences_APPLE)(CGL_MACRO_CONTEXT_RENDERER, n, fences) + +#define glSetFenceAPPLE(fence) \ + (*(CGL_MACRO_CONTEXT)->disp.set_fence_APPLE)(CGL_MACRO_CONTEXT_RENDERER, fence) + +#define glIsFenceAPPLE(fence) \ + (*(CGL_MACRO_CONTEXT)->disp.is_fence_APPLE)(CGL_MACRO_CONTEXT_RENDERER, fence) + +#define glTestFenceAPPLE(fence) \ + (*(CGL_MACRO_CONTEXT)->disp.test_fence_APPLE)(CGL_MACRO_CONTEXT_RENDERER, fence) + +#define glFinishFenceAPPLE(fence) \ + (*(CGL_MACRO_CONTEXT)->disp.finish_fence_APPLE)(CGL_MACRO_CONTEXT_RENDERER, fence) + +#define glTestObjectAPPLE(object, name) \ + (*(CGL_MACRO_CONTEXT)->disp.test_object_APPLE)(CGL_MACRO_CONTEXT_RENDERER, object, name) + +#define glFinishObjectAPPLE(object, name) \ + (*(CGL_MACRO_CONTEXT)->disp.finish_object_APPLE)(CGL_MACRO_CONTEXT_RENDERER, object, name) + +/* GL_APPLE_vertex_array_range */ +#define glVertexArrayRangeAPPLE(length, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_array_range_EXT)(CGL_MACRO_CONTEXT_RENDERER, length, pointer) + +#define glFlushVertexArrayRangeAPPLE(length, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.flush_vertex_array_range_EXT)(CGL_MACRO_CONTEXT_RENDERER, length, pointer) + +#define glVertexArrayParameteriAPPLE(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_array_parameteri_EXT)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +/* GL_APPLE_vertex_array_object */ +#define glBindVertexArrayAPPLE(id) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_vertex_array_EXT)(CGL_MACRO_CONTEXT_RENDERER, id) + +#define glDeleteVertexArraysAPPLE(n, ids) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_vertex_arrays_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, ids) + +#define glGenVertexArraysAPPLE(n, ids) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_vertex_arrays_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, ids) + +#define glIsVertexArrayAPPLE(id) \ + (*(CGL_MACRO_CONTEXT)->disp.is_vertex_array_EXT)(CGL_MACRO_CONTEXT_RENDERER, id) + +/* GL_APPLE_element_array */ +#define glElementPointerAPPLE(type, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.element_pointer_APPLE)(CGL_MACRO_CONTEXT_RENDERER, type, pointer) + +#define glDrawElementArrayAPPLE(mode, first, count) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_element_array_APPLE)(CGL_MACRO_CONTEXT_RENDERER, mode, first, count) + +#define glDrawRangeElementArrayAPPLE(mode, start, end, first, count) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_range_element_array_APPLE)(CGL_MACRO_CONTEXT_RENDERER, mode, start, end, first, count) + +#define glMultiDrawElementArrayAPPLE(mode, first, count, primcount) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_draw_element_array_APPLE)(CGL_MACRO_CONTEXT_RENDERER, mode, first, count, primcount) + +#define glMultiDrawRangeElementArrayAPPLE(mode, start, end, first, count, primcount) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_draw_range_element_array_APPLE)(CGL_MACRO_CONTEXT_RENDERER, mode, start, end, first, count, primcount) + +/* GL_APPLE_flush_render */ +#define glFlushRenderAPPLE() \ + (*(CGL_MACRO_CONTEXT)->disp.flush_render_APPLE)(CGL_MACRO_CONTEXT_RENDERER) + +#define glFinishRenderAPPLE() \ + (*(CGL_MACRO_CONTEXT)->disp.finish_render_APPLE)(CGL_MACRO_CONTEXT_RENDERER) + +#define glSwapAPPLE() \ + (*(CGL_MACRO_CONTEXT)->disp.swap_APPLE)(CGL_MACRO_CONTEXT_RENDERER) + +/* GL_APPLE_flush_buffer_range */ +#define glBufferParameteriAPPLE(target, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.buffer_parameteri_APPLE)(CGL_MACRO_CONTEXT_RENDERER, target, pname, param) + +#define glFlushMappedBufferRangeAPPLE(target, offset, size) \ + (*(CGL_MACRO_CONTEXT)->disp.flush_mapped_buffer_range_APPLE)(CGL_MACRO_CONTEXT_RENDERER, target, offset, size) + +/* GL_APPLE_object_purgeability */ +#define glObjectPurgeableAPPLE(objectType, name, option) \ + (*(CGL_MACRO_CONTEXT)->disp.object_purgeable_APPLE)(CGL_MACRO_CONTEXT_RENDERER, objectType, name, option) + +#define glObjectUnpurgeableAPPLE(objectType, name, option) \ + (*(CGL_MACRO_CONTEXT)->disp.object_unpurgeable_APPLE)(CGL_MACRO_CONTEXT_RENDERER, objectType, name, option) + +#define glGetObjectParameterivAPPLE(objectType, name, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_object_parameteriv_APPLE)(CGL_MACRO_CONTEXT_RENDERER, objectType, name, pname, params) + +/* GL_APPLE_vertex_point_size */ +#define glPointSizePointerAPPLE(type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.point_size_pointer)(CGL_MACRO_CONTEXT_RENDERER, type, stride, pointer) + +#define glVertexPointSizefAPPLE(size) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_point_sizef_APPLE)(CGL_MACRO_CONTEXT_RENDERER, size) + +/*********** ATI Extensions *************************************************/ + +/* GL_ATI_separate_stencil */ +#define glStencilOpSeparateATI(face, sfail, dpfail, dppass) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_op_separate_ATI)(CGL_MACRO_CONTEXT_RENDERER, face, sfail, dpfail, dppass) + +#define glStencilFuncSeparateATI(frontfunc, backfunc, ref, mask) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_func_separate_ATI)(CGL_MACRO_CONTEXT_RENDERER, frontfunc, backfunc, ref, mask) + +/* GL_ATI_blend_equation_separate */ +#define glBlendEquationSeparateATI glBlendEquationSeparateEXT + +/*********** NVIDIA Extensions **********************************************/ + +/* GL_NV_point_sprite */ +#define glPointParameteriNV(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.point_parameteri)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glPointParameterivNV(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.point_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +/* GL_NV_conditional_render */ +#define glBeginConditionalRenderNV(id, mode) \ + (*(CGL_MACRO_CONTEXT)->disp.begin_conditional_render_NV)(CGL_MACRO_CONTEXT_RENDERER, id, mode) + +#define glEndConditionalRenderNV() \ + (*(CGL_MACRO_CONTEXT)->disp.end_conditional_render_NV)(CGL_MACRO_CONTEXT_RENDERER) + +/* GL_NV_texture_barrier */ +#define glTextureBarrierNV() \ + (*(CGL_MACRO_CONTEXT)->disp.texture_barrier_NV)(CGL_MACRO_CONTEXT_RENDERER) + +#endif /* _CGLMACRO_H */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/CGLRenderers.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/CGLRenderers.h" new file mode 100644 index 0000000..d1be7da --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/CGLRenderers.h" @@ -0,0 +1,57 @@ +/* + Copyright: (c) 1999-2013 Apple Inc. All rights reserved. +*/ + +#ifndef _CGLRENDERERS_H +#define _CGLRENDERERS_H + +#include + +/* +** Renderer ID numbers +*/ +enum { + kCGLRendererGenericID OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 0x00020200, + kCGLRendererGenericFloatID OPENGL_ENUM_AVAILABLE(10_3) = 0x00020400, // Apple Software Renderer + kCGLRendererAppleSWID = 0x00020600, + + kCGLRendererATIRage128ID OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 0x00021000, + kCGLRendererATIRadeonID OPENGL_ENUM_DEPRECATED(10_0, 10_6) = 0x00021200, + kCGLRendererATIRageProID OPENGL_ENUM_DEPRECATED(10_0, 10_6) = 0x00021400, + kCGLRendererATIRadeon8500ID OPENGL_ENUM_DEPRECATED(10_2, 10_6) = 0x00021600, + kCGLRendererATIRadeon9700ID OPENGL_ENUM_DEPRECATED(10_2, 10_6) = 0x00021800, + kCGLRendererATIRadeonX1000ID OPENGL_ENUM_DEPRECATED(10_4, 10_8) = 0x00021900, // Radeon X1xxx + kCGLRendererATIRadeonX2000ID OPENGL_ENUM_AVAILABLE(10_4) = 0x00021A00, // Radeon HD 2xxx and 4xxx + kCGLRendererATIRadeonX3000ID OPENGL_ENUM_AVAILABLE(10_6) = 0x00021B00, // Radeon HD 5xxx and 6xxx + kCGLRendererATIRadeonX4000ID OPENGL_ENUM_AVAILABLE(10_8) = 0x00021C00, // Radeon HD 7xxx + + kCGLRendererGeForce2MXID OPENGL_ENUM_DEPRECATED(10_0, 10_6) = 0x00022000, // GeForce 2MX and 4MX + kCGLRendererGeForce3ID OPENGL_ENUM_DEPRECATED(10_0, 10_6) = 0x00022200, // GeForce 3 and 4Ti + kCGLRendererGeForceFXID OPENGL_ENUM_DEPRECATED(10_2, 10_8) = 0x00022400, // GeForce 5xxx, 6xxx and 7xxx, and + // Quadro FX 4500 + kCGLRendererGeForce8xxxID OPENGL_ENUM_AVAILABLE(10_4) = 0x00022600, // GeForce 8xxx, 9xxx, 1xx, 2xx, and 3xx, and + // Quadro 4800 + kCGLRendererGeForceID OPENGL_ENUM_AVAILABLE(10_9) = 0x00022700, // GeForce 6xx, and + // Quadro 4000, K5000 + + kCGLRendererVTBladeXP2ID OPENGL_ENUM_DEPRECATED(10_3, 10_6) = 0x00023000, + + kCGLRendererIntel900ID OPENGL_ENUM_DEPRECATED(10_4, 10_8) = 0x00024000, // GMA 950 + kCGLRendererIntelX3100ID OPENGL_ENUM_DEPRECATED(10_5, 10_8) = 0x00024200, + kCGLRendererIntelHDID OPENGL_ENUM_AVAILABLE(10_6) = 0x00024300, // HD Graphics 3000 + kCGLRendererIntelHD4000ID OPENGL_ENUM_AVAILABLE(10_7) = 0x00024400, + kCGLRendererIntelHD5000ID OPENGL_ENUM_AVAILABLE(10_8) = 0x00024500, // Iris + + kCGLRendererMesa3DFXID OPENGL_ENUM_DEPRECATED(10_0, 10_6) = 0x00040000, +}; + +/* +** kCGLRendererIDMatchingMask gives the bits that are useful for matching a +** renderer ID (as returned by CGLDescribePixelFormat or CGLDescribeRenderer) +** with the assigned values above. There should be no bits set in the assigned +** renderer ID's that are not set in this mask. +*/ +#define kCGLRendererIDMatchingMask 0x00FE7F00 + + +#endif /* _CGLRENDERERS_H */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/CGLTypes.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/CGLTypes.h" new file mode 100644 index 0000000..0f152c0 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/CGLTypes.h" @@ -0,0 +1,316 @@ +/* + Copyright: (c) 1999-2013 Apple Inc. All rights reserved. +*/ + +#ifndef _CGLTYPES_H +#define _CGLTYPES_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#if __has_feature(assume_nonnull) +#define OPENGL_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin") +#define OPENGL_ASSUME_NONNULL_END _Pragma("clang assume_nonnull end") +#else +#define OPENGL_ASSUME_NONNULL_BEGIN +#define OPENGL_ASSUME_NONNULL_END +#endif + +#if __has_feature(nullability) +#define OPENGL_NULLABLE __nullable +#define OPENGL_NONNULL __nonnull +#else +#define OPENGL_NULLABLE +#define OPENGL_NONNULL +#endif + +/* +** CGL opaque data. +*/ +typedef struct _CGLContextObject *CGLContextObj; +typedef struct _CGLPixelFormatObject *CGLPixelFormatObj; +typedef struct _CGLRendererInfoObject *CGLRendererInfoObj; +typedef struct _CGLPBufferObject *CGLPBufferObj OPENGL_DEPRECATED(10_3, 10_7); + +/* +** Attribute names for CGLChoosePixelFormat and CGLDescribePixelFormat. +*/ +typedef enum _CGLPixelFormatAttribute { + kCGLPFAAllRenderers = 1, /* choose from all available renderers */ + kCGLPFATripleBuffer OPENGL_ENUM_AVAILABLE(10_7) = 3, /* choose a triple buffered pixel format */ + kCGLPFADoubleBuffer = 5, /* choose a double buffered pixel format */ + kCGLPFAColorSize = 8, /* number of color buffer bits */ + kCGLPFAAlphaSize = 11, /* number of alpha component bits */ + kCGLPFADepthSize = 12, /* number of depth buffer bits */ + kCGLPFAStencilSize = 13, /* number of stencil buffer bits */ + kCGLPFAMinimumPolicy = 51, /* never choose smaller buffers than requested */ + kCGLPFAMaximumPolicy = 52, /* choose largest buffers of type requested */ + kCGLPFASampleBuffers OPENGL_ENUM_AVAILABLE(10_2) = 55, /* number of multi sample buffers */ + kCGLPFASamples OPENGL_ENUM_AVAILABLE(10_2) = 56, /* number of samples per multi sample buffer */ + kCGLPFAColorFloat OPENGL_ENUM_AVAILABLE(10_2) = 58, /* color buffers store floating point pixels */ + kCGLPFAMultisample OPENGL_ENUM_AVAILABLE(10_3) = 59, /* choose multisampling */ + kCGLPFASupersample OPENGL_ENUM_AVAILABLE(10_3) = 60, /* choose supersampling */ + kCGLPFASampleAlpha OPENGL_ENUM_AVAILABLE(10_3) = 61, /* request alpha filtering */ + kCGLPFARendererID = 70, /* request renderer by ID */ + kCGLPFANoRecovery = 72, /* disable all failure recovery systems */ + kCGLPFAAccelerated = 73, /* choose a hardware accelerated renderer */ + kCGLPFAClosestPolicy = 74, /* choose the closest color buffer to request */ + kCGLPFABackingStore = 76, /* back buffer contents are valid after swap */ + kCGLPFABackingVolatile OPENGL_ENUM_AVAILABLE(10_7) = 77, /* back buffer contents are volatile after swap */ + kCGLPFADisplayMask = 84, /* mask limiting supported displays */ + kCGLPFAAllowOfflineRenderers OPENGL_ENUM_AVAILABLE(10_5) = 96, /* show offline renderers in pixel formats */ + kCGLPFAAcceleratedCompute OPENGL_ENUM_AVAILABLE(10_6) = 97, /* choose a hardware accelerated compute device */ + kCGLPFAOpenGLProfile OPENGL_ENUM_AVAILABLE(10_7) = 99, /* specify an OpenGL Profile to use */ + kCGLPFASupportsAutomaticGraphicsSwitching OPENGL_ENUM_AVAILABLE(10_8) = 101, /* responds to display changes */ + kCGLPFAVirtualScreenCount = 128, /* number of virtual screens in this format */ + + /* Note: the following attributes are deprecated in Core Profile */ + kCGLPFAAuxBuffers = 7, /* number of aux buffers */ + kCGLPFAAccumSize = 14, /* number of accum buffer bits */ + kCGLPFAAuxDepthStencil OPENGL_ENUM_AVAILABLE(10_2) = 57, /* each aux buffer has its own depth stencil */ + + kCGLPFAStereo OPENGL_ENUM_DEPRECATED(10_0, 10_11) = 6, + kCGLPFAOffScreen OPENGL_ENUM_DEPRECATED(10_0, 10_7) = 53, + kCGLPFAWindow OPENGL_ENUM_DEPRECATED(10_0, 10_9) = 80, + kCGLPFACompliant OPENGL_ENUM_DEPRECATED(10_0, 10_9) = 83, + kCGLPFAPBuffer OPENGL_ENUM_DEPRECATED(10_3, 10_7) = 90, + kCGLPFARemotePBuffer OPENGL_ENUM_DEPRECATED(10_3, 10_9) = 91, + + kCGLPFASingleRenderer OPENGL_ENUM_DEPRECATED(10_0, 10_9) = 71, + kCGLPFARobust OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 75, + kCGLPFAMPSafe OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 78, + kCGLPFAMultiScreen OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 81, + kCGLPFAFullScreen OPENGL_ENUM_DEPRECATED(10_0, 10_6) = 54, +} CGLPixelFormatAttribute; + +/* +** Property names for CGLDescribeRenderer. +*/ +typedef enum _CGLRendererProperty { + kCGLRPOffScreen = 53, + kCGLRPRendererID = 70, + kCGLRPAccelerated = 73, + kCGLRPBackingStore = 76, + kCGLRPWindow = 80, + kCGLRPCompliant = 83, + kCGLRPDisplayMask = 84, + kCGLRPBufferModes = 100, /* a bitfield of supported buffer modes */ + kCGLRPColorModes = 103, /* a bitfield of supported color buffer formats */ + kCGLRPAccumModes = 104, /* a bitfield of supported accum buffer formats */ + kCGLRPDepthModes = 105, /* a bitfield of supported depth buffer depths */ + kCGLRPStencilModes = 106, /* a bitfield of supported stencil buffer depths */ + kCGLRPMaxAuxBuffers = 107, /* maximum number of auxilliary buffers */ + kCGLRPMaxSampleBuffers OPENGL_ENUM_AVAILABLE(10_2) = 108, /* maximum number of sample buffers */ + kCGLRPMaxSamples OPENGL_ENUM_AVAILABLE(10_2) = 109, /* maximum number of samples */ + kCGLRPSampleModes OPENGL_ENUM_AVAILABLE(10_3) = 110, /* a bitfield of supported sample modes */ + kCGLRPSampleAlpha OPENGL_ENUM_AVAILABLE(10_3) = 111, /* support for alpha sampling */ + kCGLRPGPUVertProcCapable OPENGL_ENUM_AVAILABLE(10_4) = 122, /* renderer capable of GPU vertex processing */ + kCGLRPGPUFragProcCapable OPENGL_ENUM_AVAILABLE(10_4) = 123, /* renderer capable of GPU fragment processing */ + kCGLRPRendererCount = 128, /* the number of renderers in this renderer info */ + kCGLRPOnline OPENGL_ENUM_AVAILABLE(10_5) = 129, /* a boolean stating if renderer is on/offline */ + kCGLRPAcceleratedCompute OPENGL_ENUM_AVAILABLE(10_6) = 130, /* hardware accelerated compute device */ + kCGLRPVideoMemoryMegabytes OPENGL_ENUM_AVAILABLE(10_7) = 131, /* total video memory (in megabytes) */ + kCGLRPTextureMemoryMegabytes OPENGL_ENUM_AVAILABLE(10_7) = 132, /* video memory useable for textures (in megabytes) */ + kCGLRPMajorGLVersion OPENGL_ENUM_AVAILABLE(10_9) = 133, /* maximum supported major GL revision */ + + kCGLRPRobust OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 75, + kCGLRPMPSafe OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 78, + kCGLRPMultiScreen OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 81, + kCGLRPFullScreen OPENGL_ENUM_DEPRECATED(10_0, 10_6) = 54, + kCGLRPVideoMemory OPENGL_ENUM_DEPRECATED_MSG(10_0, 10_7, "Use kCGLRPVideoMemoryMegabytes") = 120, + kCGLRPTextureMemory OPENGL_ENUM_DEPRECATED_MSG(10_0, 10_7, "Use kCGLRPTextureMemoryMegabytes") = 121, +} CGLRendererProperty; + +/* +** Enable names for CGLEnable, CGLDisable, and CGLIsEnabled. +*/ +typedef enum _CGLContextEnable { + kCGLCESwapRectangle = 201, /* Enable or disable the swap rectangle */ + kCGLCESwapLimit OPENGL_ENUM_AVAILABLE(10_2) = 203, /* Enable or disable the swap async limit */ + kCGLCERasterization = 221, /* Enable or disable all rasterization */ + kCGLCEStateValidation = 301, /* Validate state for multi-screen functionality */ + kCGLCESurfaceBackingSize OPENGL_ENUM_AVAILABLE(10_3) = 305, /* Enable or disable surface backing size override */ + kCGLCEDisplayListOptimization OPENGL_ENUM_AVAILABLE(10_3) = 307, /* Ability to turn off display list optimizer */ + kCGLCEMPEngine OPENGL_ENUM_AVAILABLE(10_4) = 313, /* Enable or disable multi-threaded GL engine */ + kCGLCECrashOnRemovedFunctions OPENGL_ENUM_AVAILABLE(10_7) = 316 /* Die on call to function removed from Core Profile */ +} CGLContextEnable; + +/* +** GPURestartStatus names +*/ +typedef enum _CGLGPURestartStatus { /* GPU Restart Status */ + kCGLCPGPURestartStatusNone = 0, /* current context has not caused recent GPU restart */ + kCGLCPGPURestartStatusCaused = 1, /* current context caused recent GPU restart (auto-clear on query) */ + kCGLCPGPURestartStatusBlacklisted = 2, /* current context is being ignored for excessive GPU restarts (won't clear on query) */ +} CGLGPURestartStatus; + +/* +** Parameter names for CGLSetParameter and CGLGetParameter. +*/ +typedef enum _CGLContextParameter { + kCGLCPSwapRectangle = 200, /* 4 params. Set or get the swap rectangle {x, y, w, h} */ + kCGLCPSwapInterval = 222, /* 1 param. 0 -> Don't sync, 1 -> Sync to vertical retrace */ + kCGLCPDispatchTableSize OPENGL_ENUM_AVAILABLE(10_3) = 224, /* 1 param. Get the dispatch table size */ + /* Note: kCGLCPClientStorage is always a pointer-sized parameter, even though the API claims GLint. */ + kCGLCPClientStorage = 226, /* 1 param. Context specific generic storage */ + kCGLCPSurfaceTexture OPENGL_ENUM_DEPRECATED(10_3, 10_9) = 228, /* 3 params. Context, target, internal_format */ +/* - Used by AGL - */ +/* AGL_STATE_VALIDATION 230 */ +/* AGL_BUFFER_NAME 231 */ +/* AGL_ORDER_CONTEXT_TO_FRONT 232 */ +/* AGL_CONTEXT_SURFACE_ID 233 */ +/* AGL_CONTEXT_DISPLAY_ID 234 */ + kCGLCPSurfaceOrder OPENGL_ENUM_AVAILABLE(10_2) = 235, /* 1 param. 1 -> Above window, -1 -> Below Window */ + kCGLCPSurfaceOpacity OPENGL_ENUM_AVAILABLE(10_2) = 236, /* 1 param. 1 -> Surface is opaque (default), 0 -> non-opaque */ +/* - Used by AGL - */ +/* AGL_CLIP_REGION 254 */ +/* AGL_FS_CAPTURE_SINGLE 255 */ + kCGLCPSurfaceBackingSize OPENGL_ENUM_AVAILABLE(10_3) = 304, /* 2 params. Width/height of surface backing size */ +/* AGL_SURFACE_VOLATILE 306 */ + kCGLCPSurfaceSurfaceVolatile OPENGL_ENUM_AVAILABLE(10_3) = 306, /* 1 param. Surface volatile state */ + kCGLCPReclaimResources OPENGL_ENUM_AVAILABLE(10_4) = 308, /* 0 params. */ + kCGLCPCurrentRendererID OPENGL_ENUM_AVAILABLE(10_4) = 309, /* 1 param. Retrieves the current renderer ID */ + kCGLCPGPUVertexProcessing OPENGL_ENUM_AVAILABLE(10_4) = 310, /* 1 param. Currently processing vertices with GPU (get) */ + kCGLCPGPUFragmentProcessing OPENGL_ENUM_AVAILABLE(10_4) = 311, /* 1 param. Currently processing fragments with GPU (get) */ + kCGLCPHasDrawable OPENGL_ENUM_AVAILABLE(10_5) = 314, /* 1 param. Boolean returned if drawable is attached */ + kCGLCPMPSwapsInFlight OPENGL_ENUM_AVAILABLE(10_5) = 315, /* 1 param. Max number of swaps queued by the MP GL engine */ + kCGLCPGPURestartStatus OPENGL_ENUM_AVAILABLE(10_10) = 317, /* 1 param. Retrieves and clears the current CGLGPURestartStatus */ + kCGLCPAbortOnGPURestartStatusBlacklisted OPENGL_ENUM_AVAILABLE(10_10) = 318, /* 1 param. Establish action to take upon blacklisting */ + kCGLCPSupportGPURestart OPENGL_ENUM_AVAILABLE(10_10) = 319, /* 1 param. Does driver support auto-restart of GPU on hang/crash? */ + kCGLCPSupportSeparateAddressSpace OPENGL_ENUM_AVAILABLE(10_10) = 320, /* 1 param. Does context get its own GPU address space? */ + kCGLCPContextPriorityRequest OPENGL_ENUM_AVAILABLE(10_10) = 608, /* 1 param. kCGLCPContextPriorityRequest[High|Normal|Low] 0|1|2 */ +} CGLContextParameter; + +typedef enum +{ + kCGLCPContextPriorityRequestHigh = 0, + kCGLCPContextPriorityRequestNormal = 1, + kCGLCPContextPriorityRequestLow = 2 +} CGLCPContextPriorityRequest; + +/* +** Option names for CGLSetOption and CGLGetOption. +*/ +typedef enum _CGLGlobalOption { + kCGLGOFormatCacheSize = 501, /* Set the size of the pixel format cache */ + kCGLGOClearFormatCache = 502, /* Reset the pixel format cache if true */ + kCGLGORetainRenderers = 503, /* Whether to retain loaded renderers in memory */ + kCGLGOUseBuildCache OPENGL_ENUM_AVAILABLE(10_5) = 506, /* Enable the function compilation block cache. */ + /* Off by default. Must be enabled at startup. */ + + kCGLGOResetLibrary OPENGL_ENUM_DEPRECATED(10_0, 10_4) = 504, + kCGLGOUseErrorHandler OPENGL_ENUM_DEPRECATED(10_0, 10_7) = 505, +} CGLGlobalOption; + +/* +** OpenGL Implementation Profiles +*/ +typedef enum _CGLOpenGLProfile { + kCGLOGLPVersion_Legacy OPENGL_ENUM_AVAILABLE(10_7) = 0x1000, /* choose a renderer compatible with GL1.0 */ + kCGLOGLPVersion_3_2_Core OPENGL_ENUM_AVAILABLE(10_7) = 0x3200, /* choose a renderer capable of GL3.2 or later */ + kCGLOGLPVersion_GL3_Core OPENGL_ENUM_AVAILABLE(10_7) = 0x3200, /* choose a renderer capable of GL3.2 or later */ + kCGLOGLPVersion_GL4_Core OPENGL_ENUM_AVAILABLE(10_9) = 0x4100, /* choose a renderer capable of GL4.1 or later */ +} CGLOpenGLProfile OPENGL_AVAILABLE(10_7); + +/* +** Error return values from CGLGetError. +*/ +typedef enum _CGLError { + kCGLNoError = 0, /* no error */ + kCGLBadAttribute = 10000, /* invalid pixel format attribute */ + kCGLBadProperty = 10001, /* invalid renderer property */ + kCGLBadPixelFormat = 10002, /* invalid pixel format */ + kCGLBadRendererInfo = 10003, /* invalid renderer info */ + kCGLBadContext = 10004, /* invalid context */ + kCGLBadDrawable = 10005, /* invalid drawable */ + kCGLBadDisplay = 10006, /* invalid graphics device */ + kCGLBadState = 10007, /* invalid context state */ + kCGLBadValue = 10008, /* invalid numerical value */ + kCGLBadMatch = 10009, /* invalid share context */ + kCGLBadEnumeration = 10010, /* invalid enumerant */ + kCGLBadOffScreen = 10011, /* invalid offscreen drawable */ + kCGLBadFullScreen = 10012, /* invalid fullscreen drawable */ + kCGLBadWindow = 10013, /* invalid window */ + kCGLBadAddress = 10014, /* invalid pointer */ + kCGLBadCodeModule = 10015, /* invalid code module */ + kCGLBadAlloc = 10016, /* invalid memory allocation */ + kCGLBadConnection = 10017 /* invalid CoreGraphics connection */ +} CGLError; + + +/* +** Buffer modes +*/ +#define kCGLMonoscopicBit 0x00000001 +#define kCGLStereoscopicBit 0x00000002 +#define kCGLSingleBufferBit 0x00000004 +#define kCGLDoubleBufferBit 0x00000008 +#define kCGLTripleBufferBit 0x00000010 + +/* +** Depth and stencil buffer depths +*/ +#define kCGL0Bit 0x00000001 +#define kCGL1Bit 0x00000002 +#define kCGL2Bit 0x00000004 +#define kCGL3Bit 0x00000008 +#define kCGL4Bit 0x00000010 +#define kCGL5Bit 0x00000020 +#define kCGL6Bit 0x00000040 +#define kCGL8Bit 0x00000080 +#define kCGL10Bit 0x00000100 +#define kCGL12Bit 0x00000200 +#define kCGL16Bit 0x00000400 +#define kCGL24Bit 0x00000800 +#define kCGL32Bit 0x00001000 +#define kCGL48Bit 0x00002000 +#define kCGL64Bit 0x00004000 +#define kCGL96Bit 0x00008000 +#define kCGL128Bit 0x00010000 + +/* +** Color and accumulation buffer formats. +*/ +#define kCGLRGB444Bit 0x00000040 /* 16 rgb bit/pixel, R=11:8, G=7:4, B=3:0 */ +#define kCGLARGB4444Bit 0x00000080 /* 16 argb bit/pixel, A=15:12, R=11:8, G=7:4, B=3:0 */ +#define kCGLRGB444A8Bit 0x00000100 /* 8-16 argb bit/pixel, A=7:0, R=11:8, G=7:4, B=3:0 */ +#define kCGLRGB555Bit 0x00000200 /* 16 rgb bit/pixel, R=14:10, G=9:5, B=4:0 */ +#define kCGLARGB1555Bit 0x00000400 /* 16 argb bit/pixel, A=15, R=14:10, G=9:5, B=4:0 */ +#define kCGLRGB555A8Bit 0x00000800 /* 8-16 argb bit/pixel, A=7:0, R=14:10, G=9:5, B=4:0 */ +#define kCGLRGB565Bit 0x00001000 /* 16 rgb bit/pixel, R=15:11, G=10:5, B=4:0 */ +#define kCGLRGB565A8Bit 0x00002000 /* 8-16 argb bit/pixel, A=7:0, R=15:11, G=10:5, B=4:0 */ +#define kCGLRGB888Bit 0x00004000 /* 32 rgb bit/pixel, R=23:16, G=15:8, B=7:0 */ +#define kCGLARGB8888Bit 0x00008000 /* 32 argb bit/pixel, A=31:24, R=23:16, G=15:8, B=7:0 */ +#define kCGLRGB888A8Bit 0x00010000 /* 8-32 argb bit/pixel, A=7:0, R=23:16, G=15:8, B=7:0 */ +#define kCGLRGB101010Bit 0x00020000 /* 32 rgb bit/pixel, R=29:20, G=19:10, B=9:0 */ +#define kCGLARGB2101010Bit 0x00040000 /* 32 argb bit/pixel, A=31:30 R=29:20, G=19:10, B=9:0 */ +#define kCGLRGB101010_A8Bit 0x00080000 /* 8-32 argb bit/pixel, A=7:0 R=29:20, G=19:10, B=9:0 */ +#define kCGLRGB121212Bit 0x00100000 /* 48 rgb bit/pixel, R=35:24, G=23:12, B=11:0 */ +#define kCGLARGB12121212Bit 0x00200000 /* 48 argb bit/pixel, A=47:36, R=35:24, G=23:12, B=11:0 */ +#define kCGLRGB161616Bit 0x00400000 /* 64 rgb bit/pixel, R=63:48, G=47:32, B=31:16 */ +#define kCGLRGBA16161616Bit 0x00800000 /* 64 argb bit/pixel, R=63:48, G=47:32, B=31:16, A=15:0 */ +#define kCGLRGBFloat64Bit 0x01000000 /* 64 rgb bit/pixel, half float */ +#define kCGLRGBAFloat64Bit 0x02000000 /* 64 argb bit/pixel, half float */ +#define kCGLRGBFloat128Bit 0x04000000 /* 128 rgb bit/pixel, ieee float */ +#define kCGLRGBAFloat128Bit 0x08000000 /* 128 argb bit/pixel, ieee float */ +#define kCGLRGBFloat256Bit 0x10000000 /* 256 rgb bit/pixel, ieee double */ +#define kCGLRGBAFloat256Bit 0x20000000 /* 256 argb bit/pixel, ieee double */ + +/* +** Sampling modes +*/ +#define kCGLSupersampleBit 0x00000001 +#define kCGLMultisampleBit 0x00000002 + +/* Obsolete */ +#define kCGLARGB16161616Bit kCGLRGBA16161616Bit + + +#ifdef __cplusplus +} +#endif + +#endif /* _CGLTYPES_H */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/OpenGL.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/OpenGL.h" new file mode 100644 index 0000000..f96ff0a --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/OpenGL.h" @@ -0,0 +1,132 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _OPENGL_H +#define _OPENGL_H + +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +OPENGL_ASSUME_NONNULL_BEGIN + +/* +** CGL API version. +*/ +#define CGL_VERSION_1_0 1 +#define CGL_VERSION_1_1 1 +#define CGL_VERSION_1_2 1 +#define CGL_VERSION_1_3 1 + +/* +** Pixel format functions +*/ +extern CGLError CGLChoosePixelFormat(const CGLPixelFormatAttribute *attribs, CGLPixelFormatObj OPENGL_NULLABLE * OPENGL_NONNULL pix, GLint *npix); +extern CGLError CGLDestroyPixelFormat(CGLPixelFormatObj pix); +extern CGLError CGLDescribePixelFormat(CGLPixelFormatObj pix, GLint pix_num, CGLPixelFormatAttribute attrib, GLint *value); +extern void CGLReleasePixelFormat(CGLPixelFormatObj pix) OPENGL_AVAILABLE(10_5); +extern CGLPixelFormatObj CGLRetainPixelFormat(CGLPixelFormatObj pix) OPENGL_AVAILABLE(10_5); +extern GLuint CGLGetPixelFormatRetainCount(CGLPixelFormatObj pix) OPENGL_AVAILABLE(10_5); + +/* +** Renderer information functions +*/ +extern CGLError CGLQueryRendererInfo(GLuint display_mask, CGLRendererInfoObj OPENGL_NULLABLE * OPENGL_NONNULL rend, GLint *nrend); +extern CGLError CGLDestroyRendererInfo(CGLRendererInfoObj rend); +extern CGLError CGLDescribeRenderer(CGLRendererInfoObj rend, GLint rend_num, CGLRendererProperty prop, GLint * OPENGL_NULLABLE value); + +/* +** Context functions +*/ +extern CGLError CGLCreateContext(CGLPixelFormatObj pix, CGLContextObj OPENGL_NULLABLE share, CGLContextObj OPENGL_NULLABLE * OPENGL_NONNULL ctx); +extern CGLError CGLDestroyContext(CGLContextObj ctx); +extern CGLError CGLCopyContext(CGLContextObj src, CGLContextObj dst, GLbitfield mask) OPENGL_DEPRECATED(10_0, 10_8); +extern CGLContextObj CGLRetainContext(CGLContextObj ctx) OPENGL_AVAILABLE(10_5); +extern void CGLReleaseContext(CGLContextObj ctx) OPENGL_AVAILABLE(10_5); +extern GLuint CGLGetContextRetainCount(CGLContextObj ctx) OPENGL_AVAILABLE(10_5); +extern CGLPixelFormatObj OPENGL_NULLABLE CGLGetPixelFormat(CGLContextObj ctx) OPENGL_AVAILABLE(10_5); + +/* +** PBuffer functions +*/ +extern CGLError CGLCreatePBuffer(GLsizei width, GLsizei height, GLenum target, GLenum internalFormat, GLint max_level, CGLPBufferObj OPENGL_NULLABLE * OPENGL_NONNULL pbuffer) OPENGL_DEPRECATED(10_3, 10_7); +extern CGLError CGLDestroyPBuffer(CGLPBufferObj pbuffer) OPENGL_DEPRECATED(10_3, 10_7); +extern CGLError CGLDescribePBuffer(CGLPBufferObj obj, GLsizei *width, GLsizei *height, GLenum *target, GLenum *internalFormat, GLint *mipmap) OPENGL_DEPRECATED(10_3, 10_7); +extern CGLError CGLTexImagePBuffer(CGLContextObj ctx, CGLPBufferObj pbuffer, GLenum source) OPENGL_DEPRECATED(10_3, 10_7); +extern CGLPBufferObj CGLRetainPBuffer(CGLPBufferObj pbuffer) OPENGL_DEPRECATED(10_5, 10_7); +extern void CGLReleasePBuffer(CGLPBufferObj pbuffer) OPENGL_DEPRECATED(10_5, 10_7); +extern GLuint CGLGetPBufferRetainCount(CGLPBufferObj pbuffer) OPENGL_DEPRECATED(10_5, 10_7); + +/* +** Drawable Functions +*/ +extern CGLError CGLSetOffScreen(CGLContextObj ctx, GLsizei width, GLsizei height, GLint rowbytes, void *baseaddr) OPENGL_DEPRECATED(10_0, 10_7); +extern CGLError CGLGetOffScreen(CGLContextObj ctx, GLsizei *width, GLsizei *height, GLint *rowbytes, void * OPENGL_NULLABLE * OPENGL_NONNULL baseaddr) OPENGL_DEPRECATED(10_0, 10_7); +extern CGLError CGLSetFullScreen(CGLContextObj ctx) OPENGL_DEPRECATED(10_0, 10_6); +extern CGLError CGLSetFullScreenOnDisplay(CGLContextObj ctx, GLuint display_mask) OPENGL_DEPRECATED(10_5, 10_7); + +extern CGLError CGLSetPBuffer(CGLContextObj ctx, CGLPBufferObj pbuffer, GLenum face, GLint level, GLint screen) OPENGL_DEPRECATED(10_3, 10_7); +extern CGLError CGLGetPBuffer(CGLContextObj ctx, CGLPBufferObj OPENGL_NULLABLE * OPENGL_NONNULL pbuffer, GLenum *face, GLint *level, GLint *screen) OPENGL_DEPRECATED(10_3, 10_7); + +extern CGLError CGLClearDrawable(CGLContextObj ctx); +extern CGLError CGLFlushDrawable(CGLContextObj ctx); + +/* +** Per context enables and parameters +*/ +extern CGLError CGLEnable(CGLContextObj ctx, CGLContextEnable pname); +extern CGLError CGLDisable(CGLContextObj ctx, CGLContextEnable pname); +extern CGLError CGLIsEnabled(CGLContextObj ctx, CGLContextEnable pname, GLint *enable); +extern CGLError CGLSetParameter(CGLContextObj ctx, CGLContextParameter pname, const GLint *params); +extern CGLError CGLGetParameter(CGLContextObj ctx, CGLContextParameter pname, GLint *params); + +/* +** Virtual screen functions +*/ +extern CGLError CGLSetVirtualScreen(CGLContextObj ctx, GLint screen); +extern CGLError CGLGetVirtualScreen(CGLContextObj ctx, GLint *screen); + +extern CGLError CGLUpdateContext(CGLContextObj ctx) OPENGL_AVAILABLE(10_7); + +/* +** Global library options +*/ +extern CGLError CGLSetGlobalOption(CGLGlobalOption pname, const GLint * OPENGL_NULLABLE params) OPENGL_AVAILABLE(10_6); +extern CGLError CGLGetGlobalOption(CGLGlobalOption pname, GLint *params) OPENGL_AVAILABLE(10_6); + +extern CGLError CGLSetOption(CGLGlobalOption pname, GLint param); /* Use CGLSetGlobalOption */ +extern CGLError CGLGetOption(CGLGlobalOption pname, GLint *param); /* Use CGLGetGlobalOption */ + +/* +** Locking functions +*/ +extern CGLError CGLLockContext(CGLContextObj ctx) OPENGL_AVAILABLE(10_4); + +extern CGLError CGLUnlockContext(CGLContextObj ctx) OPENGL_AVAILABLE(10_4); + +/* +** Version numbers +*/ +extern void CGLGetVersion(GLint * OPENGL_NULLABLE majorvers, GLint * OPENGL_NULLABLE minorvers); + +/* +** Convert an error code to a string +*/ +const char *CGLErrorString(CGLError error); + +OPENGL_ASSUME_NONNULL_END + +#ifdef __cplusplus +} +#endif + +#endif /* _OPENGL_H */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/OpenGLAvailability.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/OpenGLAvailability.h" new file mode 100644 index 0000000..db1b21d --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/OpenGLAvailability.h" @@ -0,0 +1,24 @@ +#ifndef _OpenGLAvailability_H +#define _OpenGLAvailability_H + +#include + +#if !defined(__has_extension) + #define __has_extension(x) 0 +#endif + +#define OPENGL_AVAILABLE(from) __OSX_AVAILABLE_STARTING(__MAC_##from, __IPHONE_NA) +#define OPENGL_DEPRECATED(from, to) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_##from, __MAC_##to, __IPHONE_NA, __IPHONE_NA) +#define OPENGL_DEPRECATED_MSG(from, to, msg) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_##from, __MAC_##to, __IPHONE_NA, __IPHONE_NA, "" #msg "") + +#if __has_extension(enumerator_attributes) + #define OPENGL_ENUM_AVAILABLE(from) OPENGL_AVAILABLE(from) + #define OPENGL_ENUM_DEPRECATED(from, to) OPENGL_DEPRECATED(from, to) + #define OPENGL_ENUM_DEPRECATED_MSG(from, to, msg) OPENGL_DEPRECATED_MSG(from, to, msg) +#else + #define OPENGL_ENUM_AVAILABLE(from) + #define OPENGL_ENUM_DEPRECATED(from, to) + #define OPENGL_ENUM_DEPRECATED_MSG(from, to, msg) +#endif + +#endif diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gl.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gl.h" new file mode 100644 index 0000000..ba8d0ea --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gl.h" @@ -0,0 +1,2983 @@ +#ifndef __gl_h_ +#define __gl_h_ + +#if defined __gl3_h_ && !(defined GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED) +#warning gl.h and gl3.h are both included. Compiler will not invoke errors if using removed OpenGL functionality. +#endif + +/* +** License Applicability. Except to the extent portions of this file are +** made subject to an alternative license as permitted in the SGI Free +** Software License B, Version 1.1 (the "License"), the contents of this +** file are subject only to the provisions of the License. You may not use +** this file except in compliance with the License. You may obtain a copy +** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 +** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: +** +** http://oss.sgi.com/projects/FreeB +** +** Note that, as provided in the License, the Software is distributed on an +** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS +** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND +** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A +** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. +** +** Original Code. The Original Code is: OpenGL Sample Implementation, +** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, +** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. +** Copyright in any portions created by third parties is as indicated +** elsewhere herein. All Rights Reserved. +** +** Additional Notice Provisions: This software was created using the +** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has +** not been independently verified as being compliant with the OpenGL(R) +** version 1.2.1 Specification. +*/ + +// switches to providing function pointers +//#define GL_GLEXT_FUNCTION_POINTERS 1 + +#include + +#ifndef GL_GLEXT_LEGACY +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* For compatibility with OpenGL v1.0 */ +#define GL_LOGIC_OP GL_INDEX_LOGIC_OP +#define GL_TEXTURE_COMPONENTS GL_TEXTURE_INTERNAL_FORMAT + +/*************************************************************/ + +/* Version */ +#define GL_VERSION_1_1 1 +#define GL_VERSION_1_2 1 +#define GL_VERSION_1_3 1 +#define GL_VERSION_1_4 1 +#define GL_VERSION_1_5 1 +#define GL_VERSION_2_0 1 +#define GL_VERSION_2_1 1 + +/* AccumOp */ +#define GL_ACCUM 0x0100 +#define GL_LOAD 0x0101 +#define GL_RETURN 0x0102 +#define GL_MULT 0x0103 +#define GL_ADD 0x0104 + +/* AlphaFunction */ +#define GL_NEVER 0x0200 +#define GL_LESS 0x0201 +#define GL_EQUAL 0x0202 +#define GL_LEQUAL 0x0203 +#define GL_GREATER 0x0204 +#define GL_NOTEQUAL 0x0205 +#define GL_GEQUAL 0x0206 +#define GL_ALWAYS 0x0207 + +/* AttribMask */ +#define GL_CURRENT_BIT 0x00000001 +#define GL_POINT_BIT 0x00000002 +#define GL_LINE_BIT 0x00000004 +#define GL_POLYGON_BIT 0x00000008 +#define GL_POLYGON_STIPPLE_BIT 0x00000010 +#define GL_PIXEL_MODE_BIT 0x00000020 +#define GL_LIGHTING_BIT 0x00000040 +#define GL_FOG_BIT 0x00000080 +#define GL_DEPTH_BUFFER_BIT 0x00000100 +#define GL_ACCUM_BUFFER_BIT 0x00000200 +#define GL_STENCIL_BUFFER_BIT 0x00000400 +#define GL_VIEWPORT_BIT 0x00000800 +#define GL_TRANSFORM_BIT 0x00001000 +#define GL_ENABLE_BIT 0x00002000 +#define GL_COLOR_BUFFER_BIT 0x00004000 +#define GL_HINT_BIT 0x00008000 +#define GL_EVAL_BIT 0x00010000 +#define GL_LIST_BIT 0x00020000 +#define GL_TEXTURE_BIT 0x00040000 +#define GL_SCISSOR_BIT 0x00080000 +#define GL_ALL_ATTRIB_BITS 0x000fffff + +/* BeginMode */ +#define GL_POINTS 0x0000 +#define GL_LINES 0x0001 +#define GL_LINE_LOOP 0x0002 +#define GL_LINE_STRIP 0x0003 +#define GL_TRIANGLES 0x0004 +#define GL_TRIANGLE_STRIP 0x0005 +#define GL_TRIANGLE_FAN 0x0006 +#define GL_QUADS 0x0007 +#define GL_QUAD_STRIP 0x0008 +#define GL_POLYGON 0x0009 + +/* BlendEquationMode */ +/* GL_LOGIC_OP */ +/* GL_FUNC_ADD */ +/* GL_MIN */ +/* GL_MAX */ +/* GL_FUNC_SUBTRACT */ +/* GL_FUNC_REVERSE_SUBTRACT */ + +/* BlendingFactorDest */ +#define GL_ZERO 0 +#define GL_ONE 1 +#define GL_SRC_COLOR 0x0300 +#define GL_ONE_MINUS_SRC_COLOR 0x0301 +#define GL_SRC_ALPHA 0x0302 +#define GL_ONE_MINUS_SRC_ALPHA 0x0303 +#define GL_DST_ALPHA 0x0304 +#define GL_ONE_MINUS_DST_ALPHA 0x0305 +/* GL_CONSTANT_COLOR */ +/* GL_ONE_MINUS_CONSTANT_COLOR */ +/* GL_CONSTANT_ALPHA */ +/* GL_ONE_MINUS_CONSTANT_ALPHA */ + +/* BlendingFactorSrc */ +/* GL_ZERO */ +/* GL_ONE */ +#define GL_DST_COLOR 0x0306 +#define GL_ONE_MINUS_DST_COLOR 0x0307 +#define GL_SRC_ALPHA_SATURATE 0x0308 +/* GL_SRC_ALPHA */ +/* GL_ONE_MINUS_SRC_ALPHA */ +/* GL_DST_ALPHA */ +/* GL_ONE_MINUS_DST_ALPHA */ +/* GL_CONSTANT_COLOR */ +/* GL_ONE_MINUS_CONSTANT_COLOR */ +/* GL_CONSTANT_ALPHA */ +/* GL_ONE_MINUS_CONSTANT_ALPHA */ + +/* Boolean */ +#define GL_TRUE 1 +#define GL_FALSE 0 + +/* ClearBufferMask */ +/* GL_COLOR_BUFFER_BIT */ +/* GL_ACCUM_BUFFER_BIT */ +/* GL_STENCIL_BUFFER_BIT */ +/* GL_DEPTH_BUFFER_BIT */ + +/* ClientArrayType */ +/* GL_VERTEX_ARRAY */ +/* GL_NORMAL_ARRAY */ +/* GL_COLOR_ARRAY */ +/* GL_INDEX_ARRAY */ +/* GL_TEXTURE_COORD_ARRAY */ +/* GL_EDGE_FLAG_ARRAY */ + +/* ClipPlaneName */ +#define GL_CLIP_PLANE0 0x3000 +#define GL_CLIP_PLANE1 0x3001 +#define GL_CLIP_PLANE2 0x3002 +#define GL_CLIP_PLANE3 0x3003 +#define GL_CLIP_PLANE4 0x3004 +#define GL_CLIP_PLANE5 0x3005 + +/* ColorMaterialFace */ +/* GL_FRONT */ +/* GL_BACK */ +/* GL_FRONT_AND_BACK */ + +/* ColorMaterialParameter */ +/* GL_AMBIENT */ +/* GL_DIFFUSE */ +/* GL_SPECULAR */ +/* GL_EMISSION */ +/* GL_AMBIENT_AND_DIFFUSE */ + +/* ColorPointerType */ +/* GL_BYTE */ +/* GL_UNSIGNED_BYTE */ +/* GL_SHORT */ +/* GL_UNSIGNED_SHORT */ +/* GL_INT */ +/* GL_UNSIGNED_INT */ +/* GL_FLOAT */ +/* GL_DOUBLE */ + +/* ColorTableParameterPName */ +/* GL_COLOR_TABLE_SCALE */ +/* GL_COLOR_TABLE_BIAS */ + +/* ColorTableTarget */ +/* GL_COLOR_TABLE */ +/* GL_POST_CONVOLUTION_COLOR_TABLE */ +/* GL_POST_COLOR_MATRIX_COLOR_TABLE */ +/* GL_PROXY_COLOR_TABLE */ +/* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */ +/* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */ + +/* ConvolutionBorderMode */ +/* GL_REDUCE */ +/* GL_IGNORE_BORDER */ +/* GL_CONSTANT_BORDER */ + +/* ConvolutionParameter */ +/* GL_CONVOLUTION_BORDER_MODE */ +/* GL_CONVOLUTION_FILTER_SCALE */ +/* GL_CONVOLUTION_FILTER_BIAS */ + +/* ConvolutionTarget */ +/* GL_CONVOLUTION_1D */ +/* GL_CONVOLUTION_2D */ + +/* CullFaceMode */ +/* GL_FRONT */ +/* GL_BACK */ +/* GL_FRONT_AND_BACK */ + +/* DataType */ +#define GL_BYTE 0x1400 +#define GL_UNSIGNED_BYTE 0x1401 +#define GL_SHORT 0x1402 +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_INT 0x1404 +#define GL_UNSIGNED_INT 0x1405 +#define GL_FLOAT 0x1406 +#define GL_2_BYTES 0x1407 +#define GL_3_BYTES 0x1408 +#define GL_4_BYTES 0x1409 +#define GL_DOUBLE 0x140A + +/* DepthFunction */ +/* GL_NEVER */ +/* GL_LESS */ +/* GL_EQUAL */ +/* GL_LEQUAL */ +/* GL_GREATER */ +/* GL_NOTEQUAL */ +/* GL_GEQUAL */ +/* GL_ALWAYS */ + +/* DrawBufferMode */ +#define GL_NONE 0 +#define GL_FRONT_LEFT 0x0400 +#define GL_FRONT_RIGHT 0x0401 +#define GL_BACK_LEFT 0x0402 +#define GL_BACK_RIGHT 0x0403 +#define GL_FRONT 0x0404 +#define GL_BACK 0x0405 +#define GL_LEFT 0x0406 +#define GL_RIGHT 0x0407 +#define GL_FRONT_AND_BACK 0x0408 +#define GL_AUX0 0x0409 +#define GL_AUX1 0x040A +#define GL_AUX2 0x040B +#define GL_AUX3 0x040C + +/* Enable */ +/* GL_FOG */ +/* GL_LIGHTING */ +/* GL_TEXTURE_1D */ +/* GL_TEXTURE_2D */ +/* GL_LINE_STIPPLE */ +/* GL_POLYGON_STIPPLE */ +/* GL_CULL_FACE */ +/* GL_ALPHA_TEST */ +/* GL_BLEND */ +/* GL_INDEX_LOGIC_OP */ +/* GL_COLOR_LOGIC_OP */ +/* GL_DITHER */ +/* GL_STENCIL_TEST */ +/* GL_DEPTH_TEST */ +/* GL_CLIP_PLANE0 */ +/* GL_CLIP_PLANE1 */ +/* GL_CLIP_PLANE2 */ +/* GL_CLIP_PLANE3 */ +/* GL_CLIP_PLANE4 */ +/* GL_CLIP_PLANE5 */ +/* GL_LIGHT0 */ +/* GL_LIGHT1 */ +/* GL_LIGHT2 */ +/* GL_LIGHT3 */ +/* GL_LIGHT4 */ +/* GL_LIGHT5 */ +/* GL_LIGHT6 */ +/* GL_LIGHT7 */ +/* GL_TEXTURE_GEN_S */ +/* GL_TEXTURE_GEN_T */ +/* GL_TEXTURE_GEN_R */ +/* GL_TEXTURE_GEN_Q */ +/* GL_MAP1_VERTEX_3 */ +/* GL_MAP1_VERTEX_4 */ +/* GL_MAP1_COLOR_4 */ +/* GL_MAP1_INDEX */ +/* GL_MAP1_NORMAL */ +/* GL_MAP1_TEXTURE_COORD_1 */ +/* GL_MAP1_TEXTURE_COORD_2 */ +/* GL_MAP1_TEXTURE_COORD_3 */ +/* GL_MAP1_TEXTURE_COORD_4 */ +/* GL_MAP2_VERTEX_3 */ +/* GL_MAP2_VERTEX_4 */ +/* GL_MAP2_COLOR_4 */ +/* GL_MAP2_INDEX */ +/* GL_MAP2_NORMAL */ +/* GL_MAP2_TEXTURE_COORD_1 */ +/* GL_MAP2_TEXTURE_COORD_2 */ +/* GL_MAP2_TEXTURE_COORD_3 */ +/* GL_MAP2_TEXTURE_COORD_4 */ +/* GL_POINT_SMOOTH */ +/* GL_LINE_SMOOTH */ +/* GL_POLYGON_SMOOTH */ +/* GL_SCISSOR_TEST */ +/* GL_COLOR_MATERIAL */ +/* GL_NORMALIZE */ +/* GL_AUTO_NORMAL */ +/* GL_VERTEX_ARRAY */ +/* GL_NORMAL_ARRAY */ +/* GL_COLOR_ARRAY */ +/* GL_INDEX_ARRAY */ +/* GL_TEXTURE_COORD_ARRAY */ +/* GL_EDGE_FLAG_ARRAY */ +/* GL_POLYGON_OFFSET_POINT */ +/* GL_POLYGON_OFFSET_LINE */ +/* GL_POLYGON_OFFSET_FILL */ +/* GL_COLOR_TABLE */ +/* GL_POST_CONVOLUTION_COLOR_TABLE */ +/* GL_POST_COLOR_MATRIX_COLOR_TABLE */ +/* GL_CONVOLUTION_1D */ +/* GL_CONVOLUTION_2D */ +/* GL_SEPARABLE_2D */ +/* GL_HISTOGRAM */ +/* GL_MINMAX */ +/* GL_RESCALE_NORMAL */ +/* GL_TEXTURE_3D */ + +/* ErrorCode */ +#define GL_NO_ERROR 0 +#define GL_INVALID_ENUM 0x0500 +#define GL_INVALID_VALUE 0x0501 +#define GL_INVALID_OPERATION 0x0502 +#define GL_STACK_OVERFLOW 0x0503 +#define GL_STACK_UNDERFLOW 0x0504 +#define GL_OUT_OF_MEMORY 0x0505 +/* GL_TABLE_TOO_LARGE */ + +/* FeedBackMode */ +#define GL_2D 0x0600 +#define GL_3D 0x0601 +#define GL_3D_COLOR 0x0602 +#define GL_3D_COLOR_TEXTURE 0x0603 +#define GL_4D_COLOR_TEXTURE 0x0604 + +/* FeedBackToken */ +#define GL_PASS_THROUGH_TOKEN 0x0700 +#define GL_POINT_TOKEN 0x0701 +#define GL_LINE_TOKEN 0x0702 +#define GL_POLYGON_TOKEN 0x0703 +#define GL_BITMAP_TOKEN 0x0704 +#define GL_DRAW_PIXEL_TOKEN 0x0705 +#define GL_COPY_PIXEL_TOKEN 0x0706 +#define GL_LINE_RESET_TOKEN 0x0707 + +/* FogMode */ +/* GL_LINEAR */ +#define GL_EXP 0x0800 +#define GL_EXP2 0x0801 + +/* FogParameter */ +/* GL_FOG_COLOR */ +/* GL_FOG_DENSITY */ +/* GL_FOG_END */ +/* GL_FOG_INDEX */ +/* GL_FOG_MODE */ +/* GL_FOG_START */ + +/* FrontFaceDirection */ +#define GL_CW 0x0900 +#define GL_CCW 0x0901 + +/* GetColorTableParameterPName */ +/* GL_COLOR_TABLE_SCALE */ +/* GL_COLOR_TABLE_BIAS */ +/* GL_COLOR_TABLE_FORMAT */ +/* GL_COLOR_TABLE_WIDTH */ +/* GL_COLOR_TABLE_RED_SIZE */ +/* GL_COLOR_TABLE_GREEN_SIZE */ +/* GL_COLOR_TABLE_BLUE_SIZE */ +/* GL_COLOR_TABLE_ALPHA_SIZE */ +/* GL_COLOR_TABLE_LUMINANCE_SIZE */ +/* GL_COLOR_TABLE_INTENSITY_SIZE */ + +/* GetConvolutionParameterPName */ +/* GL_CONVOLUTION_BORDER_COLOR */ +/* GL_CONVOLUTION_BORDER_MODE */ +/* GL_CONVOLUTION_FILTER_SCALE */ +/* GL_CONVOLUTION_FILTER_BIAS */ +/* GL_CONVOLUTION_FORMAT */ +/* GL_CONVOLUTION_WIDTH */ +/* GL_CONVOLUTION_HEIGHT */ +/* GL_MAX_CONVOLUTION_WIDTH */ +/* GL_MAX_CONVOLUTION_HEIGHT */ + +/* GetHistogramParameterPName */ +/* GL_HISTOGRAM_WIDTH */ +/* GL_HISTOGRAM_FORMAT */ +/* GL_HISTOGRAM_RED_SIZE */ +/* GL_HISTOGRAM_GREEN_SIZE */ +/* GL_HISTOGRAM_BLUE_SIZE */ +/* GL_HISTOGRAM_ALPHA_SIZE */ +/* GL_HISTOGRAM_LUMINANCE_SIZE */ +/* GL_HISTOGRAM_SINK */ + +/* GetMapTarget */ +#define GL_COEFF 0x0A00 +#define GL_ORDER 0x0A01 +#define GL_DOMAIN 0x0A02 + +/* GetMinmaxParameterPName */ +/* GL_MINMAX_FORMAT */ +/* GL_MINMAX_SINK */ + +/* GetPixelMap */ +/* GL_PIXEL_MAP_I_TO_I */ +/* GL_PIXEL_MAP_S_TO_S */ +/* GL_PIXEL_MAP_I_TO_R */ +/* GL_PIXEL_MAP_I_TO_G */ +/* GL_PIXEL_MAP_I_TO_B */ +/* GL_PIXEL_MAP_I_TO_A */ +/* GL_PIXEL_MAP_R_TO_R */ +/* GL_PIXEL_MAP_G_TO_G */ +/* GL_PIXEL_MAP_B_TO_B */ +/* GL_PIXEL_MAP_A_TO_A */ + +/* GetPointerTarget */ +/* GL_VERTEX_ARRAY_POINTER */ +/* GL_NORMAL_ARRAY_POINTER */ +/* GL_COLOR_ARRAY_POINTER */ +/* GL_INDEX_ARRAY_POINTER */ +/* GL_TEXTURE_COORD_ARRAY_POINTER */ +/* GL_EDGE_FLAG_ARRAY_POINTER */ + +/* GetTarget */ +#define GL_CURRENT_COLOR 0x0B00 +#define GL_CURRENT_INDEX 0x0B01 +#define GL_CURRENT_NORMAL 0x0B02 +#define GL_CURRENT_TEXTURE_COORDS 0x0B03 +#define GL_CURRENT_RASTER_COLOR 0x0B04 +#define GL_CURRENT_RASTER_INDEX 0x0B05 +#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 +#define GL_CURRENT_RASTER_POSITION 0x0B07 +#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 +#define GL_CURRENT_RASTER_DISTANCE 0x0B09 +#define GL_POINT_SMOOTH 0x0B10 +#define GL_POINT_SIZE 0x0B11 +#define GL_POINT_SIZE_RANGE 0x0B12 +#define GL_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_LINE_SMOOTH 0x0B20 +#define GL_LINE_WIDTH 0x0B21 +#define GL_LINE_WIDTH_RANGE 0x0B22 +#define GL_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_LINE_STIPPLE 0x0B24 +#define GL_LINE_STIPPLE_PATTERN 0x0B25 +#define GL_LINE_STIPPLE_REPEAT 0x0B26 +/* GL_SMOOTH_POINT_SIZE_RANGE */ +/* GL_SMOOTH_POINT_SIZE_GRANULARITY */ +/* GL_SMOOTH_LINE_WIDTH_RANGE */ +/* GL_SMOOTH_LINE_WIDTH_GRANULARITY */ +/* GL_ALIASED_POINT_SIZE_RANGE */ +/* GL_ALIASED_LINE_WIDTH_RANGE */ +#define GL_LIST_MODE 0x0B30 +#define GL_MAX_LIST_NESTING 0x0B31 +#define GL_LIST_BASE 0x0B32 +#define GL_LIST_INDEX 0x0B33 +#define GL_POLYGON_MODE 0x0B40 +#define GL_POLYGON_SMOOTH 0x0B41 +#define GL_POLYGON_STIPPLE 0x0B42 +#define GL_EDGE_FLAG 0x0B43 +#define GL_CULL_FACE 0x0B44 +#define GL_CULL_FACE_MODE 0x0B45 +#define GL_FRONT_FACE 0x0B46 +#define GL_LIGHTING 0x0B50 +#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 +#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 +#define GL_LIGHT_MODEL_AMBIENT 0x0B53 +#define GL_SHADE_MODEL 0x0B54 +#define GL_COLOR_MATERIAL_FACE 0x0B55 +#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 +#define GL_COLOR_MATERIAL 0x0B57 +#define GL_FOG 0x0B60 +#define GL_FOG_INDEX 0x0B61 +#define GL_FOG_DENSITY 0x0B62 +#define GL_FOG_START 0x0B63 +#define GL_FOG_END 0x0B64 +#define GL_FOG_MODE 0x0B65 +#define GL_FOG_COLOR 0x0B66 +#define GL_DEPTH_RANGE 0x0B70 +#define GL_DEPTH_TEST 0x0B71 +#define GL_DEPTH_WRITEMASK 0x0B72 +#define GL_DEPTH_CLEAR_VALUE 0x0B73 +#define GL_DEPTH_FUNC 0x0B74 +#define GL_ACCUM_CLEAR_VALUE 0x0B80 +#define GL_STENCIL_TEST 0x0B90 +#define GL_STENCIL_CLEAR_VALUE 0x0B91 +#define GL_STENCIL_FUNC 0x0B92 +#define GL_STENCIL_VALUE_MASK 0x0B93 +#define GL_STENCIL_FAIL 0x0B94 +#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 +#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 +#define GL_STENCIL_REF 0x0B97 +#define GL_STENCIL_WRITEMASK 0x0B98 +#define GL_MATRIX_MODE 0x0BA0 +#define GL_NORMALIZE 0x0BA1 +#define GL_VIEWPORT 0x0BA2 +#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 +#define GL_PROJECTION_STACK_DEPTH 0x0BA4 +#define GL_TEXTURE_STACK_DEPTH 0x0BA5 +#define GL_MODELVIEW_MATRIX 0x0BA6 +#define GL_PROJECTION_MATRIX 0x0BA7 +#define GL_TEXTURE_MATRIX 0x0BA8 +#define GL_ATTRIB_STACK_DEPTH 0x0BB0 +#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 +#define GL_ALPHA_TEST 0x0BC0 +#define GL_ALPHA_TEST_FUNC 0x0BC1 +#define GL_ALPHA_TEST_REF 0x0BC2 +#define GL_DITHER 0x0BD0 +#define GL_BLEND_DST 0x0BE0 +#define GL_BLEND_SRC 0x0BE1 +#define GL_BLEND 0x0BE2 +#define GL_LOGIC_OP_MODE 0x0BF0 +#define GL_INDEX_LOGIC_OP 0x0BF1 +#define GL_COLOR_LOGIC_OP 0x0BF2 +#define GL_AUX_BUFFERS 0x0C00 +#define GL_DRAW_BUFFER 0x0C01 +#define GL_READ_BUFFER 0x0C02 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_INDEX_CLEAR_VALUE 0x0C20 +#define GL_INDEX_WRITEMASK 0x0C21 +#define GL_COLOR_CLEAR_VALUE 0x0C22 +#define GL_COLOR_WRITEMASK 0x0C23 +#define GL_INDEX_MODE 0x0C30 +#define GL_RGBA_MODE 0x0C31 +#define GL_DOUBLEBUFFER 0x0C32 +#define GL_STEREO 0x0C33 +#define GL_RENDER_MODE 0x0C40 +#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 +#define GL_POINT_SMOOTH_HINT 0x0C51 +#define GL_LINE_SMOOTH_HINT 0x0C52 +#define GL_POLYGON_SMOOTH_HINT 0x0C53 +#define GL_FOG_HINT 0x0C54 +#define GL_TEXTURE_GEN_S 0x0C60 +#define GL_TEXTURE_GEN_T 0x0C61 +#define GL_TEXTURE_GEN_R 0x0C62 +#define GL_TEXTURE_GEN_Q 0x0C63 +#define GL_PIXEL_MAP_I_TO_I 0x0C70 +#define GL_PIXEL_MAP_S_TO_S 0x0C71 +#define GL_PIXEL_MAP_I_TO_R 0x0C72 +#define GL_PIXEL_MAP_I_TO_G 0x0C73 +#define GL_PIXEL_MAP_I_TO_B 0x0C74 +#define GL_PIXEL_MAP_I_TO_A 0x0C75 +#define GL_PIXEL_MAP_R_TO_R 0x0C76 +#define GL_PIXEL_MAP_G_TO_G 0x0C77 +#define GL_PIXEL_MAP_B_TO_B 0x0C78 +#define GL_PIXEL_MAP_A_TO_A 0x0C79 +#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 +#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 +#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 +#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 +#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 +#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 +#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 +#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 +#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 +#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 +#define GL_UNPACK_SWAP_BYTES 0x0CF0 +#define GL_UNPACK_LSB_FIRST 0x0CF1 +#define GL_UNPACK_ROW_LENGTH 0x0CF2 +#define GL_UNPACK_SKIP_ROWS 0x0CF3 +#define GL_UNPACK_SKIP_PIXELS 0x0CF4 +#define GL_UNPACK_ALIGNMENT 0x0CF5 +#define GL_PACK_SWAP_BYTES 0x0D00 +#define GL_PACK_LSB_FIRST 0x0D01 +#define GL_PACK_ROW_LENGTH 0x0D02 +#define GL_PACK_SKIP_ROWS 0x0D03 +#define GL_PACK_SKIP_PIXELS 0x0D04 +#define GL_PACK_ALIGNMENT 0x0D05 +#define GL_MAP_COLOR 0x0D10 +#define GL_MAP_STENCIL 0x0D11 +#define GL_INDEX_SHIFT 0x0D12 +#define GL_INDEX_OFFSET 0x0D13 +#define GL_RED_SCALE 0x0D14 +#define GL_RED_BIAS 0x0D15 +#define GL_ZOOM_X 0x0D16 +#define GL_ZOOM_Y 0x0D17 +#define GL_GREEN_SCALE 0x0D18 +#define GL_GREEN_BIAS 0x0D19 +#define GL_BLUE_SCALE 0x0D1A +#define GL_BLUE_BIAS 0x0D1B +#define GL_ALPHA_SCALE 0x0D1C +#define GL_ALPHA_BIAS 0x0D1D +#define GL_DEPTH_SCALE 0x0D1E +#define GL_DEPTH_BIAS 0x0D1F +#define GL_MAX_EVAL_ORDER 0x0D30 +#define GL_MAX_LIGHTS 0x0D31 +#define GL_MAX_CLIP_PLANES 0x0D32 +#define GL_MAX_TEXTURE_SIZE 0x0D33 +#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 +#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 +#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 +#define GL_MAX_NAME_STACK_DEPTH 0x0D37 +#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 +#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 +#define GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B +#define GL_SUBPIXEL_BITS 0x0D50 +#define GL_INDEX_BITS 0x0D51 +#define GL_RED_BITS 0x0D52 +#define GL_GREEN_BITS 0x0D53 +#define GL_BLUE_BITS 0x0D54 +#define GL_ALPHA_BITS 0x0D55 +#define GL_DEPTH_BITS 0x0D56 +#define GL_STENCIL_BITS 0x0D57 +#define GL_ACCUM_RED_BITS 0x0D58 +#define GL_ACCUM_GREEN_BITS 0x0D59 +#define GL_ACCUM_BLUE_BITS 0x0D5A +#define GL_ACCUM_ALPHA_BITS 0x0D5B +#define GL_NAME_STACK_DEPTH 0x0D70 +#define GL_AUTO_NORMAL 0x0D80 +#define GL_MAP1_COLOR_4 0x0D90 +#define GL_MAP1_INDEX 0x0D91 +#define GL_MAP1_NORMAL 0x0D92 +#define GL_MAP1_TEXTURE_COORD_1 0x0D93 +#define GL_MAP1_TEXTURE_COORD_2 0x0D94 +#define GL_MAP1_TEXTURE_COORD_3 0x0D95 +#define GL_MAP1_TEXTURE_COORD_4 0x0D96 +#define GL_MAP1_VERTEX_3 0x0D97 +#define GL_MAP1_VERTEX_4 0x0D98 +#define GL_MAP2_COLOR_4 0x0DB0 +#define GL_MAP2_INDEX 0x0DB1 +#define GL_MAP2_NORMAL 0x0DB2 +#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 +#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 +#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 +#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 +#define GL_MAP2_VERTEX_3 0x0DB7 +#define GL_MAP2_VERTEX_4 0x0DB8 +#define GL_MAP1_GRID_DOMAIN 0x0DD0 +#define GL_MAP1_GRID_SEGMENTS 0x0DD1 +#define GL_MAP2_GRID_DOMAIN 0x0DD2 +#define GL_MAP2_GRID_SEGMENTS 0x0DD3 +#define GL_TEXTURE_1D 0x0DE0 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 +#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 +#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 +#define GL_SELECTION_BUFFER_POINTER 0x0DF3 +#define GL_SELECTION_BUFFER_SIZE 0x0DF4 +/* GL_TEXTURE_BINDING_1D */ +/* GL_TEXTURE_BINDING_2D */ +/* GL_TEXTURE_BINDING_3D */ +/* GL_VERTEX_ARRAY */ +/* GL_NORMAL_ARRAY */ +/* GL_COLOR_ARRAY */ +/* GL_INDEX_ARRAY */ +/* GL_TEXTURE_COORD_ARRAY */ +/* GL_EDGE_FLAG_ARRAY */ +/* GL_VERTEX_ARRAY_SIZE */ +/* GL_VERTEX_ARRAY_TYPE */ +/* GL_VERTEX_ARRAY_STRIDE */ +/* GL_NORMAL_ARRAY_TYPE */ +/* GL_NORMAL_ARRAY_STRIDE */ +/* GL_COLOR_ARRAY_SIZE */ +/* GL_COLOR_ARRAY_TYPE */ +/* GL_COLOR_ARRAY_STRIDE */ +/* GL_INDEX_ARRAY_TYPE */ +/* GL_INDEX_ARRAY_STRIDE */ +/* GL_TEXTURE_COORD_ARRAY_SIZE */ +/* GL_TEXTURE_COORD_ARRAY_TYPE */ +/* GL_TEXTURE_COORD_ARRAY_STRIDE */ +/* GL_EDGE_FLAG_ARRAY_STRIDE */ +/* GL_POLYGON_OFFSET_FACTOR */ +/* GL_POLYGON_OFFSET_UNITS */ +/* GL_COLOR_TABLE */ +/* GL_POST_CONVOLUTION_COLOR_TABLE */ +/* GL_POST_COLOR_MATRIX_COLOR_TABLE */ +/* GL_CONVOLUTION_1D */ +/* GL_CONVOLUTION_2D */ +/* GL_SEPARABLE_2D */ +/* GL_POST_CONVOLUTION_RED_SCALE */ +/* GL_POST_CONVOLUTION_GREEN_SCALE */ +/* GL_POST_CONVOLUTION_BLUE_SCALE */ +/* GL_POST_CONVOLUTION_ALPHA_SCALE */ +/* GL_POST_CONVOLUTION_RED_BIAS */ +/* GL_POST_CONVOLUTION_GREEN_BIAS */ +/* GL_POST_CONVOLUTION_BLUE_BIAS */ +/* GL_POST_CONVOLUTION_ALPHA_BIAS */ +/* GL_COLOR_MATRIX */ +/* GL_COLOR_MATRIX_STACK_DEPTH */ +/* GL_MAX_COLOR_MATRIX_STACK_DEPTH */ +/* GL_POST_COLOR_MATRIX_RED_SCALE */ +/* GL_POST_COLOR_MATRIX_GREEN_SCALE */ +/* GL_POST_COLOR_MATRIX_BLUE_SCALE */ +/* GL_POST_COLOR_MATRIX_ALPHA_SCALE */ +/* GL_POST_COLOR_MATRIX_RED_BIAS */ +/* GL_POST_COLOR_MATRIX_GREEN_BIAS */ +/* GL_POST_COLOR_MATRIX_BLUE_BIAS */ +/* GL_POST_COLOR_MATRIX_ALPHA_BIAS */ +/* GL_HISTOGRAM */ +/* GL_MINMAX */ +/* GL_MAX_ELEMENTS_VERTICES */ +/* GL_MAX_ELEMENTS_INDICES */ +/* GL_RESCALE_NORMAL */ +/* GL_LIGHT_MODEL_COLOR_CONTROL */ +/* GL_PACK_SKIP_IMAGES */ +/* GL_PACK_IMAGE_HEIGHT */ +/* GL_UNPACK_SKIP_IMAGES */ +/* GL_UNPACK_IMAGE_HEIGHT */ +/* GL_TEXTURE_3D */ +/* GL_MAX_3D_TEXTURE_SIZE */ +/* GL_BLEND_COLOR */ +/* GL_BLEND_EQUATION */ + +/* GetTextureParameter */ +/* GL_TEXTURE_MAG_FILTER */ +/* GL_TEXTURE_MIN_FILTER */ +/* GL_TEXTURE_WRAP_S */ +/* GL_TEXTURE_WRAP_T */ +#define GL_TEXTURE_WIDTH 0x1000 +#define GL_TEXTURE_HEIGHT 0x1001 +#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 +#define GL_TEXTURE_BORDER_COLOR 0x1004 +#define GL_TEXTURE_BORDER 0x1005 +/* GL_TEXTURE_RED_SIZE */ +/* GL_TEXTURE_GREEN_SIZE */ +/* GL_TEXTURE_BLUE_SIZE */ +/* GL_TEXTURE_ALPHA_SIZE */ +/* GL_TEXTURE_LUMINANCE_SIZE */ +/* GL_TEXTURE_INTENSITY_SIZE */ +/* GL_TEXTURE_PRIORITY */ +/* GL_TEXTURE_RESIDENT */ +/* GL_TEXTURE_DEPTH */ +/* GL_TEXTURE_WRAP_R */ +/* GL_TEXTURE_MIN_LOD */ +/* GL_TEXTURE_MAX_LOD */ +/* GL_TEXTURE_BASE_LEVEL */ +/* GL_TEXTURE_MAX_LEVEL */ + +/* HintMode */ +#define GL_DONT_CARE 0x1100 +#define GL_FASTEST 0x1101 +#define GL_NICEST 0x1102 + +/* HintTarget */ +/* GL_PERSPECTIVE_CORRECTION_HINT */ +/* GL_POINT_SMOOTH_HINT */ +/* GL_LINE_SMOOTH_HINT */ +/* GL_POLYGON_SMOOTH_HINT */ +/* GL_FOG_HINT */ + +/* HistogramTarget */ +/* GL_HISTOGRAM */ +/* GL_PROXY_HISTOGRAM */ + +/* IndexPointerType */ +/* GL_SHORT */ +/* GL_INT */ +/* GL_FLOAT */ +/* GL_DOUBLE */ + +/* LightModelColorControl */ +/* GL_SINGLE_COLOR */ +/* GL_SEPARATE_SPECULAR_COLOR */ + +/* LightModelParameter */ +/* GL_LIGHT_MODEL_AMBIENT */ +/* GL_LIGHT_MODEL_LOCAL_VIEWER */ +/* GL_LIGHT_MODEL_TWO_SIDE */ +/* GL_LIGHT_MODEL_COLOR_CONTROL */ + +/* LightName */ +#define GL_LIGHT0 0x4000 +#define GL_LIGHT1 0x4001 +#define GL_LIGHT2 0x4002 +#define GL_LIGHT3 0x4003 +#define GL_LIGHT4 0x4004 +#define GL_LIGHT5 0x4005 +#define GL_LIGHT6 0x4006 +#define GL_LIGHT7 0x4007 + +/* LightParameter */ +#define GL_AMBIENT 0x1200 +#define GL_DIFFUSE 0x1201 +#define GL_SPECULAR 0x1202 +#define GL_POSITION 0x1203 +#define GL_SPOT_DIRECTION 0x1204 +#define GL_SPOT_EXPONENT 0x1205 +#define GL_SPOT_CUTOFF 0x1206 +#define GL_CONSTANT_ATTENUATION 0x1207 +#define GL_LINEAR_ATTENUATION 0x1208 +#define GL_QUADRATIC_ATTENUATION 0x1209 + +/* InterleavedArrays */ +/* GL_V2F */ +/* GL_V3F */ +/* GL_C4UB_V2F */ +/* GL_C4UB_V3F */ +/* GL_C3F_V3F */ +/* GL_N3F_V3F */ +/* GL_C4F_N3F_V3F */ +/* GL_T2F_V3F */ +/* GL_T4F_V4F */ +/* GL_T2F_C4UB_V3F */ +/* GL_T2F_C3F_V3F */ +/* GL_T2F_N3F_V3F */ +/* GL_T2F_C4F_N3F_V3F */ +/* GL_T4F_C4F_N3F_V4F */ + +/* ListMode */ +#define GL_COMPILE 0x1300 +#define GL_COMPILE_AND_EXECUTE 0x1301 + +/* ListNameType */ +/* GL_BYTE */ +/* GL_UNSIGNED_BYTE */ +/* GL_SHORT */ +/* GL_UNSIGNED_SHORT */ +/* GL_INT */ +/* GL_UNSIGNED_INT */ +/* GL_FLOAT */ +/* GL_2_BYTES */ +/* GL_3_BYTES */ +/* GL_4_BYTES */ + +/* LogicOp */ +#define GL_CLEAR 0x1500 +#define GL_AND 0x1501 +#define GL_AND_REVERSE 0x1502 +#define GL_COPY 0x1503 +#define GL_AND_INVERTED 0x1504 +#define GL_NOOP 0x1505 +#define GL_XOR 0x1506 +#define GL_OR 0x1507 +#define GL_NOR 0x1508 +#define GL_EQUIV 0x1509 +#define GL_INVERT 0x150A +#define GL_OR_REVERSE 0x150B +#define GL_COPY_INVERTED 0x150C +#define GL_OR_INVERTED 0x150D +#define GL_NAND 0x150E +#define GL_SET 0x150F + +/* MapTarget */ +/* GL_MAP1_COLOR_4 */ +/* GL_MAP1_INDEX */ +/* GL_MAP1_NORMAL */ +/* GL_MAP1_TEXTURE_COORD_1 */ +/* GL_MAP1_TEXTURE_COORD_2 */ +/* GL_MAP1_TEXTURE_COORD_3 */ +/* GL_MAP1_TEXTURE_COORD_4 */ +/* GL_MAP1_VERTEX_3 */ +/* GL_MAP1_VERTEX_4 */ +/* GL_MAP2_COLOR_4 */ +/* GL_MAP2_INDEX */ +/* GL_MAP2_NORMAL */ +/* GL_MAP2_TEXTURE_COORD_1 */ +/* GL_MAP2_TEXTURE_COORD_2 */ +/* GL_MAP2_TEXTURE_COORD_3 */ +/* GL_MAP2_TEXTURE_COORD_4 */ +/* GL_MAP2_VERTEX_3 */ +/* GL_MAP2_VERTEX_4 */ + +/* MaterialFace */ +/* GL_FRONT */ +/* GL_BACK */ +/* GL_FRONT_AND_BACK */ + +/* MaterialParameter */ +#define GL_EMISSION 0x1600 +#define GL_SHININESS 0x1601 +#define GL_AMBIENT_AND_DIFFUSE 0x1602 +#define GL_COLOR_INDEXES 0x1603 +/* GL_AMBIENT */ +/* GL_DIFFUSE */ +/* GL_SPECULAR */ + +/* MatrixMode */ +#define GL_MODELVIEW 0x1700 +#define GL_PROJECTION 0x1701 +#define GL_TEXTURE 0x1702 + +/* MeshMode1 */ +/* GL_POINT */ +/* GL_LINE */ + +/* MeshMode2 */ +/* GL_POINT */ +/* GL_LINE */ +/* GL_FILL */ + +/* MinmaxTarget */ +/* GL_MINMAX */ + +/* NormalPointerType */ +/* GL_BYTE */ +/* GL_SHORT */ +/* GL_INT */ +/* GL_FLOAT */ +/* GL_DOUBLE */ + +/* PixelCopyType */ +#define GL_COLOR 0x1800 +#define GL_DEPTH 0x1801 +#define GL_STENCIL 0x1802 + +/* PixelFormat */ +#define GL_COLOR_INDEX 0x1900 +#define GL_STENCIL_INDEX 0x1901 +#define GL_DEPTH_COMPONENT 0x1902 +#define GL_RED 0x1903 +#define GL_GREEN 0x1904 +#define GL_BLUE 0x1905 +#define GL_ALPHA 0x1906 +#define GL_RGB 0x1907 +#define GL_RGBA 0x1908 +#define GL_LUMINANCE 0x1909 +#define GL_LUMINANCE_ALPHA 0x190A +/* GL_ABGR */ + +/* PixelInternalFormat */ +/* GL_ALPHA4 */ +/* GL_ALPHA8 */ +/* GL_ALPHA12 */ +/* GL_ALPHA16 */ +/* GL_LUMINANCE4 */ +/* GL_LUMINANCE8 */ +/* GL_LUMINANCE12 */ +/* GL_LUMINANCE16 */ +/* GL_LUMINANCE4_ALPHA4 */ +/* GL_LUMINANCE6_ALPHA2 */ +/* GL_LUMINANCE8_ALPHA8 */ +/* GL_LUMINANCE12_ALPHA4 */ +/* GL_LUMINANCE12_ALPHA12 */ +/* GL_LUMINANCE16_ALPHA16 */ +/* GL_INTENSITY */ +/* GL_INTENSITY4 */ +/* GL_INTENSITY8 */ +/* GL_INTENSITY12 */ +/* GL_INTENSITY16 */ +/* GL_R3_G3_B2 */ +/* GL_RGB4 */ +/* GL_RGB5 */ +/* GL_RGB8 */ +/* GL_RGB10 */ +/* GL_RGB12 */ +/* GL_RGB16 */ +/* GL_RGBA2 */ +/* GL_RGBA4 */ +/* GL_RGB5_A1 */ +/* GL_RGBA8 */ +/* GL_RGB10_A2 */ +/* GL_RGBA12 */ +/* GL_RGBA16 */ + +/* PixelMap */ +/* GL_PIXEL_MAP_I_TO_I */ +/* GL_PIXEL_MAP_S_TO_S */ +/* GL_PIXEL_MAP_I_TO_R */ +/* GL_PIXEL_MAP_I_TO_G */ +/* GL_PIXEL_MAP_I_TO_B */ +/* GL_PIXEL_MAP_I_TO_A */ +/* GL_PIXEL_MAP_R_TO_R */ +/* GL_PIXEL_MAP_G_TO_G */ +/* GL_PIXEL_MAP_B_TO_B */ +/* GL_PIXEL_MAP_A_TO_A */ + +/* PixelStore */ +/* GL_UNPACK_SWAP_BYTES */ +/* GL_UNPACK_LSB_FIRST */ +/* GL_UNPACK_ROW_LENGTH */ +/* GL_UNPACK_SKIP_ROWS */ +/* GL_UNPACK_SKIP_PIXELS */ +/* GL_UNPACK_ALIGNMENT */ +/* GL_PACK_SWAP_BYTES */ +/* GL_PACK_LSB_FIRST */ +/* GL_PACK_ROW_LENGTH */ +/* GL_PACK_SKIP_ROWS */ +/* GL_PACK_SKIP_PIXELS */ +/* GL_PACK_ALIGNMENT */ +/* GL_PACK_SKIP_IMAGES */ +/* GL_PACK_IMAGE_HEIGHT */ +/* GL_UNPACK_SKIP_IMAGES */ +/* GL_UNPACK_IMAGE_HEIGHT */ + +/* PixelTransfer */ +/* GL_MAP_COLOR */ +/* GL_MAP_STENCIL */ +/* GL_INDEX_SHIFT */ +/* GL_INDEX_OFFSET */ +/* GL_RED_SCALE */ +/* GL_RED_BIAS */ +/* GL_GREEN_SCALE */ +/* GL_GREEN_BIAS */ +/* GL_BLUE_SCALE */ +/* GL_BLUE_BIAS */ +/* GL_ALPHA_SCALE */ +/* GL_ALPHA_BIAS */ +/* GL_DEPTH_SCALE */ +/* GL_DEPTH_BIAS */ +/* GL_POST_CONVOLUTION_RED_SCALE */ +/* GL_POST_CONVOLUTION_GREEN_SCALE */ +/* GL_POST_CONVOLUTION_BLUE_SCALE */ +/* GL_POST_CONVOLUTION_ALPHA_SCALE */ +/* GL_POST_CONVOLUTION_RED_BIAS */ +/* GL_POST_CONVOLUTION_GREEN_BIAS */ +/* GL_POST_CONVOLUTION_BLUE_BIAS */ +/* GL_POST_CONVOLUTION_ALPHA_BIAS */ +/* GL_POST_COLOR_MATRIX_RED_SCALE */ +/* GL_POST_COLOR_MATRIX_GREEN_SCALE */ +/* GL_POST_COLOR_MATRIX_BLUE_SCALE */ +/* GL_POST_COLOR_MATRIX_ALPHA_SCALE */ +/* GL_POST_COLOR_MATRIX_RED_BIAS */ +/* GL_POST_COLOR_MATRIX_GREEN_BIAS */ +/* GL_POST_COLOR_MATRIX_BLUE_BIAS */ +/* GL_POST_COLOR_MATRIX_ALPHA_BIAS */ + +/* PixelType */ +#define GL_BITMAP 0x1A00 +/* GL_BYTE */ +/* GL_UNSIGNED_BYTE */ +/* GL_SHORT */ +/* GL_UNSIGNED_SHORT */ +/* GL_INT */ +/* GL_UNSIGNED_INT */ +/* GL_FLOAT */ +/* GL_BGR */ +/* GL_BGRA */ +/* GL_UNSIGNED_BYTE_3_3_2 */ +/* GL_UNSIGNED_SHORT_4_4_4_4 */ +/* GL_UNSIGNED_SHORT_5_5_5_1 */ +/* GL_UNSIGNED_INT_8_8_8_8 */ +/* GL_UNSIGNED_INT_10_10_10_2 */ +/* GL_UNSIGNED_SHORT_5_6_5 */ +/* GL_UNSIGNED_BYTE_2_3_3_REV */ +/* GL_UNSIGNED_SHORT_5_6_5_REV */ +/* GL_UNSIGNED_SHORT_4_4_4_4_REV */ +/* GL_UNSIGNED_SHORT_1_5_5_5_REV */ +/* GL_UNSIGNED_INT_8_8_8_8_REV */ +/* GL_UNSIGNED_INT_2_10_10_10_REV */ + +/* PolygonMode */ +#define GL_POINT 0x1B00 +#define GL_LINE 0x1B01 +#define GL_FILL 0x1B02 + +/* ReadBufferMode */ +/* GL_FRONT_LEFT */ +/* GL_FRONT_RIGHT */ +/* GL_BACK_LEFT */ +/* GL_BACK_RIGHT */ +/* GL_FRONT */ +/* GL_BACK */ +/* GL_LEFT */ +/* GL_RIGHT */ +/* GL_AUX0 */ +/* GL_AUX1 */ +/* GL_AUX2 */ +/* GL_AUX3 */ + +/* RenderingMode */ +#define GL_RENDER 0x1C00 +#define GL_FEEDBACK 0x1C01 +#define GL_SELECT 0x1C02 + +/* SeparableTarget */ +/* GL_SEPARABLE_2D */ + +/* ShadingModel */ +#define GL_FLAT 0x1D00 +#define GL_SMOOTH 0x1D01 + +/* StencilFunction */ +/* GL_NEVER */ +/* GL_LESS */ +/* GL_EQUAL */ +/* GL_LEQUAL */ +/* GL_GREATER */ +/* GL_NOTEQUAL */ +/* GL_GEQUAL */ +/* GL_ALWAYS */ + +/* StencilOp */ +/* GL_ZERO */ +#define GL_KEEP 0x1E00 +#define GL_REPLACE 0x1E01 +#define GL_INCR 0x1E02 +#define GL_DECR 0x1E03 +/* GL_INVERT */ + +/* StringName */ +#define GL_VENDOR 0x1F00 +#define GL_RENDERER 0x1F01 +#define GL_VERSION 0x1F02 +#define GL_EXTENSIONS 0x1F03 + +/* TextureCoordName */ +#define GL_S 0x2000 +#define GL_T 0x2001 +#define GL_R 0x2002 +#define GL_Q 0x2003 + +/* TexCoordPointerType */ +/* GL_SHORT */ +/* GL_INT */ +/* GL_FLOAT */ +/* GL_DOUBLE */ + +/* TextureEnvMode */ +#define GL_MODULATE 0x2100 +#define GL_DECAL 0x2101 +/* GL_BLEND */ +/* GL_REPLACE */ + +/* TextureEnvParameter */ +#define GL_TEXTURE_ENV_MODE 0x2200 +#define GL_TEXTURE_ENV_COLOR 0x2201 + +/* TextureEnvTarget */ +#define GL_TEXTURE_ENV 0x2300 + +/* TextureGenMode */ +#define GL_EYE_LINEAR 0x2400 +#define GL_OBJECT_LINEAR 0x2401 +#define GL_SPHERE_MAP 0x2402 + +/* TextureGenParameter */ +#define GL_TEXTURE_GEN_MODE 0x2500 +#define GL_OBJECT_PLANE 0x2501 +#define GL_EYE_PLANE 0x2502 + +/* TextureMagFilter */ +#define GL_NEAREST 0x2600 +#define GL_LINEAR 0x2601 + +/* TextureMinFilter */ +/* GL_NEAREST */ +/* GL_LINEAR */ +#define GL_NEAREST_MIPMAP_NEAREST 0x2700 +#define GL_LINEAR_MIPMAP_NEAREST 0x2701 +#define GL_NEAREST_MIPMAP_LINEAR 0x2702 +#define GL_LINEAR_MIPMAP_LINEAR 0x2703 + +/* TextureParameterName */ +#define GL_TEXTURE_MAG_FILTER 0x2800 +#define GL_TEXTURE_MIN_FILTER 0x2801 +#define GL_TEXTURE_WRAP_S 0x2802 +#define GL_TEXTURE_WRAP_T 0x2803 +/* GL_TEXTURE_BORDER_COLOR */ +/* GL_TEXTURE_PRIORITY */ +/* GL_TEXTURE_WRAP_R */ +/* GL_TEXTURE_MIN_LOD */ +/* GL_TEXTURE_MAX_LOD */ +/* GL_TEXTURE_BASE_LEVEL */ +/* GL_TEXTURE_MAX_LEVEL */ + +/* TextureTarget */ +/* GL_TEXTURE_1D */ +/* GL_TEXTURE_2D */ +/* GL_PROXY_TEXTURE_1D */ +/* GL_PROXY_TEXTURE_2D */ +/* GL_TEXTURE_3D */ +/* GL_PROXY_TEXTURE_3D */ + +/* TextureWrapMode */ +#define GL_CLAMP 0x2900 +#define GL_REPEAT 0x2901 +/* GL_CLAMP_TO_EDGE */ + +/* VertexPointerType */ +/* GL_SHORT */ +/* GL_INT */ +/* GL_FLOAT */ +/* GL_DOUBLE */ + +/* ClientAttribMask */ +#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 +#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 +#define GL_CLIENT_ALL_ATTRIB_BITS 0xffffffff + +/* polygon_offset */ +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +#define GL_POLYGON_OFFSET_POINT 0x2A01 +#define GL_POLYGON_OFFSET_LINE 0x2A02 +#define GL_POLYGON_OFFSET_FILL 0x8037 + +/* texture */ +#define GL_ALPHA4 0x803B +#define GL_ALPHA8 0x803C +#define GL_ALPHA12 0x803D +#define GL_ALPHA16 0x803E +#define GL_LUMINANCE4 0x803F +#define GL_LUMINANCE8 0x8040 +#define GL_LUMINANCE12 0x8041 +#define GL_LUMINANCE16 0x8042 +#define GL_LUMINANCE4_ALPHA4 0x8043 +#define GL_LUMINANCE6_ALPHA2 0x8044 +#define GL_LUMINANCE8_ALPHA8 0x8045 +#define GL_LUMINANCE12_ALPHA4 0x8046 +#define GL_LUMINANCE12_ALPHA12 0x8047 +#define GL_LUMINANCE16_ALPHA16 0x8048 +#define GL_INTENSITY 0x8049 +#define GL_INTENSITY4 0x804A +#define GL_INTENSITY8 0x804B +#define GL_INTENSITY12 0x804C +#define GL_INTENSITY16 0x804D +#define GL_R3_G3_B2 0x2A10 +#define GL_RGB4 0x804F +#define GL_RGB5 0x8050 +#define GL_RGB8 0x8051 +#define GL_RGB10 0x8052 +#define GL_RGB12 0x8053 +#define GL_RGB16 0x8054 +#define GL_RGBA2 0x8055 +#define GL_RGBA4 0x8056 +#define GL_RGB5_A1 0x8057 +#define GL_RGBA8 0x8058 +#define GL_RGB10_A2 0x8059 +#define GL_RGBA12 0x805A +#define GL_RGBA16 0x805B +#define GL_TEXTURE_RED_SIZE 0x805C +#define GL_TEXTURE_GREEN_SIZE 0x805D +#define GL_TEXTURE_BLUE_SIZE 0x805E +#define GL_TEXTURE_ALPHA_SIZE 0x805F +#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE 0x8061 +#define GL_PROXY_TEXTURE_1D 0x8063 +#define GL_PROXY_TEXTURE_2D 0x8064 + +/* texture_object */ +#define GL_TEXTURE_PRIORITY 0x8066 +#define GL_TEXTURE_RESIDENT 0x8067 +#define GL_TEXTURE_BINDING_1D 0x8068 +#define GL_TEXTURE_BINDING_2D 0x8069 +#define GL_TEXTURE_BINDING_3D 0x806A + +/* vertex_array */ +#define GL_VERTEX_ARRAY 0x8074 +#define GL_NORMAL_ARRAY 0x8075 +#define GL_COLOR_ARRAY 0x8076 +#define GL_INDEX_ARRAY 0x8077 +#define GL_TEXTURE_COORD_ARRAY 0x8078 +#define GL_EDGE_FLAG_ARRAY 0x8079 +#define GL_VERTEX_ARRAY_SIZE 0x807A +#define GL_VERTEX_ARRAY_TYPE 0x807B +#define GL_VERTEX_ARRAY_STRIDE 0x807C +#define GL_NORMAL_ARRAY_TYPE 0x807E +#define GL_NORMAL_ARRAY_STRIDE 0x807F +#define GL_COLOR_ARRAY_SIZE 0x8081 +#define GL_COLOR_ARRAY_TYPE 0x8082 +#define GL_COLOR_ARRAY_STRIDE 0x8083 +#define GL_INDEX_ARRAY_TYPE 0x8085 +#define GL_INDEX_ARRAY_STRIDE 0x8086 +#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A +#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C +#define GL_VERTEX_ARRAY_POINTER 0x808E +#define GL_NORMAL_ARRAY_POINTER 0x808F +#define GL_COLOR_ARRAY_POINTER 0x8090 +#define GL_INDEX_ARRAY_POINTER 0x8091 +#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 +#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 +#define GL_V2F 0x2A20 +#define GL_V3F 0x2A21 +#define GL_C4UB_V2F 0x2A22 +#define GL_C4UB_V3F 0x2A23 +#define GL_C3F_V3F 0x2A24 +#define GL_N3F_V3F 0x2A25 +#define GL_C4F_N3F_V3F 0x2A26 +#define GL_T2F_V3F 0x2A27 +#define GL_T4F_V4F 0x2A28 +#define GL_T2F_C4UB_V3F 0x2A29 +#define GL_T2F_C3F_V3F 0x2A2A +#define GL_T2F_N3F_V3F 0x2A2B +#define GL_T2F_C4F_N3F_V3F 0x2A2C +#define GL_T4F_C4F_N3F_V4F 0x2A2D + +/* bgra */ +#define GL_BGR 0x80E0 +#define GL_BGRA 0x80E1 + +/* blend_color */ +#define GL_CONSTANT_COLOR 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GL_BLEND_COLOR 0x8005 + +/* blend_minmax */ +#define GL_FUNC_ADD 0x8006 +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +#define GL_BLEND_EQUATION 0x8009 + +/* blend_equation_separate */ +#define GL_BLEND_EQUATION_RGB 0x8009 +#define GL_BLEND_EQUATION_ALPHA 0x883D + +/* blend_subtract */ +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B + +/* color_matrix */ +#define GL_COLOR_MATRIX 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB + +/* color_table */ +#define GL_COLOR_TABLE 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 +#define GL_PROXY_COLOR_TABLE 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 +#define GL_COLOR_TABLE_SCALE 0x80D6 +#define GL_COLOR_TABLE_BIAS 0x80D7 +#define GL_COLOR_TABLE_FORMAT 0x80D8 +#define GL_COLOR_TABLE_WIDTH 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF + +/* convolution */ +#define GL_CONVOLUTION_1D 0x8010 +#define GL_CONVOLUTION_2D 0x8011 +#define GL_SEPARABLE_2D 0x8012 +#define GL_CONVOLUTION_BORDER_MODE 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS 0x8015 +#define GL_REDUCE 0x8016 +#define GL_CONVOLUTION_FORMAT 0x8017 +#define GL_CONVOLUTION_WIDTH 0x8018 +#define GL_CONVOLUTION_HEIGHT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 +#define GL_CONSTANT_BORDER 0x8151 +#define GL_REPLICATE_BORDER 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR 0x8154 + +/* draw_range_elements */ +#define GL_MAX_ELEMENTS_VERTICES 0x80E8 +#define GL_MAX_ELEMENTS_INDICES 0x80E9 + +/* histogram */ +#define GL_HISTOGRAM 0x8024 +#define GL_PROXY_HISTOGRAM 0x8025 +#define GL_HISTOGRAM_WIDTH 0x8026 +#define GL_HISTOGRAM_FORMAT 0x8027 +#define GL_HISTOGRAM_RED_SIZE 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C +#define GL_HISTOGRAM_SINK 0x802D +#define GL_MINMAX 0x802E +#define GL_MINMAX_FORMAT 0x802F +#define GL_MINMAX_SINK 0x8030 +#define GL_TABLE_TOO_LARGE 0x8031 + +/* packed_pixels */ +#define GL_UNSIGNED_BYTE_3_3_2 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2 0x8036 +#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 +#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 + +/* rescale_normal */ +#define GL_RESCALE_NORMAL 0x803A + +/* separate_specular_color */ +#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 +#define GL_SINGLE_COLOR 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR 0x81FA + +/* texture3D */ +#define GL_PACK_SKIP_IMAGES 0x806B +#define GL_PACK_IMAGE_HEIGHT 0x806C +#define GL_UNPACK_SKIP_IMAGES 0x806D +#define GL_UNPACK_IMAGE_HEIGHT 0x806E +#define GL_TEXTURE_3D 0x806F +#define GL_PROXY_TEXTURE_3D 0x8070 +#define GL_TEXTURE_DEPTH 0x8071 +#define GL_TEXTURE_WRAP_R 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE 0x8073 + +/* texture_edge_clamp */ +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_CLAMP_TO_BORDER 0x812D + +/* texture_lod */ +#define GL_TEXTURE_MIN_LOD 0x813A +#define GL_TEXTURE_MAX_LOD 0x813B +#define GL_TEXTURE_BASE_LEVEL 0x813C +#define GL_TEXTURE_MAX_LEVEL 0x813D + +/* GetTarget1_2 */ +#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 +#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 +#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_ALIASED_POINT_SIZE_RANGE 0x846D +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E + +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_ACTIVE_TEXTURE 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 +#define GL_MAX_TEXTURE_UNITS 0x84E2 + +#define GL_COMBINE 0x8570 +#define GL_COMBINE_RGB 0x8571 +#define GL_COMBINE_ALPHA 0x8572 +#define GL_RGB_SCALE 0x8573 +#define GL_ADD_SIGNED 0x8574 +#define GL_INTERPOLATE 0x8575 +#define GL_CONSTANT 0x8576 +#define GL_PRIMARY_COLOR 0x8577 +#define GL_PREVIOUS 0x8578 +#define GL_SUBTRACT 0x84E7 + +#define GL_SRC0_RGB 0x8580 +#define GL_SRC1_RGB 0x8581 +#define GL_SRC2_RGB 0x8582 +#define GL_SRC0_ALPHA 0x8588 +#define GL_SRC1_ALPHA 0x8589 +#define GL_SRC2_ALPHA 0x858A + +/* Obsolete */ +#define GL_SOURCE0_RGB 0x8580 +#define GL_SOURCE1_RGB 0x8581 +#define GL_SOURCE2_RGB 0x8582 +#define GL_SOURCE0_ALPHA 0x8588 +#define GL_SOURCE1_ALPHA 0x8589 +#define GL_SOURCE2_ALPHA 0x858A + +#define GL_OPERAND0_RGB 0x8590 +#define GL_OPERAND1_RGB 0x8591 +#define GL_OPERAND2_RGB 0x8592 +#define GL_OPERAND0_ALPHA 0x8598 +#define GL_OPERAND1_ALPHA 0x8599 +#define GL_OPERAND2_ALPHA 0x859A + +#define GL_DOT3_RGB 0x86AE +#define GL_DOT3_RGBA 0x86AF + +#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 + +#define GL_NORMAL_MAP 0x8511 +#define GL_REFLECTION_MAP 0x8512 +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C + +#define GL_COMPRESSED_ALPHA 0x84E9 +#define GL_COMPRESSED_LUMINANCE 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB +#define GL_COMPRESSED_INTENSITY 0x84EC +#define GL_COMPRESSED_RGB 0x84ED +#define GL_COMPRESSED_RGBA 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 +#define GL_TEXTURE_COMPRESSED 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 + +#define GL_MULTISAMPLE 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE 0x809F +#define GL_SAMPLE_COVERAGE 0x80A0 +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_MULTISAMPLE_BIT 0x20000000 + +#define GL_DEPTH_COMPONENT16 0x81A5 +#define GL_DEPTH_COMPONENT24 0x81A6 +#define GL_DEPTH_COMPONENT32 0x81A7 +#define GL_TEXTURE_DEPTH_SIZE 0x884A +#define GL_DEPTH_TEXTURE_MODE 0x884B + +#define GL_TEXTURE_COMPARE_MODE 0x884C +#define GL_TEXTURE_COMPARE_FUNC 0x884D +#define GL_COMPARE_R_TO_TEXTURE 0x884E + +/* occlusion_query */ +#define GL_QUERY_COUNTER_BITS 0x8864 +#define GL_CURRENT_QUERY 0x8865 +#define GL_QUERY_RESULT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE 0x8867 +#define GL_SAMPLES_PASSED 0x8914 + +#define GL_FOG_COORD_SRC 0x8450 +#define GL_FOG_COORD 0x8451 +#define GL_FRAGMENT_DEPTH 0x8452 +#define GL_CURRENT_FOG_COORD 0x8453 +#define GL_FOG_COORD_ARRAY_TYPE 0x8454 +#define GL_FOG_COORD_ARRAY_STRIDE 0x8455 +#define GL_FOG_COORD_ARRAY_POINTER 0x8456 +#define GL_FOG_COORD_ARRAY 0x8457 + +/* Obsolete */ +#define GL_FOG_COORDINATE_SOURCE 0x8450 +#define GL_FOG_COORDINATE 0x8451 +#define GL_CURRENT_FOG_COORDINATE 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 +#define GL_FOG_COORDINATE_ARRAY 0x8457 + +#define GL_COLOR_SUM 0x8458 +#define GL_CURRENT_SECONDARY_COLOR 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D +#define GL_SECONDARY_COLOR_ARRAY 0x845E + +#define GL_POINT_SIZE_MIN 0x8126 +#define GL_POINT_SIZE_MAX 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 +#define GL_POINT_DISTANCE_ATTENUATION 0x8129 + +#define GL_BLEND_DST_RGB 0x80C8 +#define GL_BLEND_SRC_RGB 0x80C9 +#define GL_BLEND_DST_ALPHA 0x80CA +#define GL_BLEND_SRC_ALPHA 0x80CB + +#define GL_GENERATE_MIPMAP 0x8191 +#define GL_GENERATE_MIPMAP_HINT 0x8192 + +#define GL_INCR_WRAP 0x8507 +#define GL_DECR_WRAP 0x8508 + +#define GL_MIRRORED_REPEAT 0x8370 + +#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD +#define GL_TEXTURE_FILTER_CONTROL 0x8500 +#define GL_TEXTURE_LOD_BIAS 0x8501 + +/* vertex_buffer_object */ +#define GL_ARRAY_BUFFER 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GL_ARRAY_BUFFER_BINDING 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 +#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C +#define GL_FOG_COORD_ARRAY_BUFFER_BINDING 0x889D +#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F +#define GL_STREAM_DRAW 0x88E0 +#define GL_STREAM_READ 0x88E1 +#define GL_STREAM_COPY 0x88E2 +#define GL_STATIC_DRAW 0x88E4 +#define GL_STATIC_READ 0x88E5 +#define GL_STATIC_COPY 0x88E6 +#define GL_DYNAMIC_DRAW 0x88E8 +#define GL_DYNAMIC_READ 0x88E9 +#define GL_DYNAMIC_COPY 0x88EA +#define GL_READ_ONLY 0x88B8 +#define GL_WRITE_ONLY 0x88B9 +#define GL_READ_WRITE 0x88BA +#define GL_BUFFER_SIZE 0x8764 +#define GL_BUFFER_USAGE 0x8765 +#define GL_BUFFER_ACCESS 0x88BB +#define GL_BUFFER_MAPPED 0x88BC +#define GL_BUFFER_MAP_POINTER 0x88BD +/* Obsolete */ +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D + +/* OpenGL 2.0 */ +#define GL_CURRENT_PROGRAM 0x8B8D +#define GL_SHADER_TYPE 0x8B4F +#define GL_DELETE_STATUS 0x8B80 +#define GL_COMPILE_STATUS 0x8B81 +#define GL_LINK_STATUS 0x8B82 +#define GL_VALIDATE_STATUS 0x8B83 +#define GL_INFO_LOG_LENGTH 0x8B84 +#define GL_ATTACHED_SHADERS 0x8B85 +#define GL_ACTIVE_UNIFORMS 0x8B86 +#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 +#define GL_SHADER_SOURCE_LENGTH 0x8B88 +#define GL_FLOAT_VEC2 0x8B50 +#define GL_FLOAT_VEC3 0x8B51 +#define GL_FLOAT_VEC4 0x8B52 +#define GL_INT_VEC2 0x8B53 +#define GL_INT_VEC3 0x8B54 +#define GL_INT_VEC4 0x8B55 +#define GL_BOOL 0x8B56 +#define GL_BOOL_VEC2 0x8B57 +#define GL_BOOL_VEC3 0x8B58 +#define GL_BOOL_VEC4 0x8B59 +#define GL_FLOAT_MAT2 0x8B5A +#define GL_FLOAT_MAT3 0x8B5B +#define GL_FLOAT_MAT4 0x8B5C +#define GL_SAMPLER_1D 0x8B5D +#define GL_SAMPLER_2D 0x8B5E +#define GL_SAMPLER_3D 0x8B5F +#define GL_SAMPLER_CUBE 0x8B60 +#define GL_SAMPLER_1D_SHADOW 0x8B61 +#define GL_SAMPLER_2D_SHADOW 0x8B62 +#define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#define GL_VERTEX_SHADER 0x8B31 +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A +#define GL_MAX_VARYING_FLOATS 0x8B4B +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D +#define GL_ACTIVE_ATTRIBUTES 0x8B89 +#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A +#define GL_FRAGMENT_SHADER 0x8B30 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B +#define GL_MAX_VERTEX_ATTRIBS 0x8869 +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A +#define GL_CURRENT_VERTEX_ATTRIB 0x8626 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 +#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 +#define GL_MAX_TEXTURE_COORDS 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 +#define GL_MAX_DRAW_BUFFERS 0x8824 +#define GL_DRAW_BUFFER0 0x8825 +#define GL_DRAW_BUFFER1 0x8826 +#define GL_DRAW_BUFFER2 0x8827 +#define GL_DRAW_BUFFER3 0x8828 +#define GL_DRAW_BUFFER4 0x8829 +#define GL_DRAW_BUFFER5 0x882A +#define GL_DRAW_BUFFER6 0x882B +#define GL_DRAW_BUFFER7 0x882C +#define GL_DRAW_BUFFER8 0x882D +#define GL_DRAW_BUFFER9 0x882E +#define GL_DRAW_BUFFER10 0x882F +#define GL_DRAW_BUFFER11 0x8830 +#define GL_DRAW_BUFFER12 0x8831 +#define GL_DRAW_BUFFER13 0x8832 +#define GL_DRAW_BUFFER14 0x8833 +#define GL_DRAW_BUFFER15 0x8834 +#define GL_POINT_SPRITE 0x8861 +#define GL_COORD_REPLACE 0x8862 +#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 +#define GL_LOWER_LEFT 0x8CA1 +#define GL_UPPER_LEFT 0x8CA2 +#define GL_STENCIL_BACK_FUNC 0x8800 +#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 +#define GL_STENCIL_BACK_REF 0x8CA3 +#define GL_STENCIL_BACK_FAIL 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 +#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 + +/* OpenGL 2.1 */ +#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F +#define GL_PIXEL_PACK_BUFFER 0x88EB +#define GL_PIXEL_UNPACK_BUFFER 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF +#define GL_FLOAT_MAT2x3 0x8B65 +#define GL_FLOAT_MAT2x4 0x8B66 +#define GL_FLOAT_MAT3x2 0x8B67 +#define GL_FLOAT_MAT3x4 0x8B68 +#define GL_FLOAT_MAT4x2 0x8B69 +#define GL_FLOAT_MAT4x3 0x8B6A +#define GL_SRGB 0x8C40 +#define GL_SRGB8 0x8C41 +#define GL_SRGB_ALPHA 0x8C42 +#define GL_SRGB8_ALPHA8 0x8C43 +#define GL_SLUMINANCE_ALPHA 0x8C44 +#define GL_SLUMINANCE8_ALPHA8 0x8C45 +#define GL_SLUMINANCE 0x8C46 +#define GL_SLUMINANCE8 0x8C47 +#define GL_COMPRESSED_SRGB 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 +#define GL_COMPRESSED_SLUMINANCE 0x8C4A +#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B + +/*************************************************************/ + +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glAccumProcPtr) (GLenum op, GLfloat value); +typedef void (* glAlphaFuncProcPtr) (GLenum func, GLclampf ref); +typedef GLboolean (* glAreTexturesResidentProcPtr) (GLsizei n, const GLuint *textures, GLboolean *residences); +typedef void (* glArrayElementProcPtr) (GLint i); +typedef void (* glBeginProcPtr) (GLenum mode); +typedef void (* glBindTextureProcPtr) (GLenum target, GLuint texture); +typedef void (* glBitmapProcPtr) (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); +typedef void (* glBlendColorProcPtr) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +typedef void (* glBlendEquationProcPtr) (GLenum mode); +typedef void (* glBlendEquationSeparateProcPtr) (GLenum modeRGB, GLenum modeAlpha); +typedef void (* glBlendFuncProcPtr) (GLenum sfactor, GLenum dfactor); +typedef void (* glCallListProcPtr) (GLuint list); +typedef void (* glCallListsProcPtr) (GLsizei n, GLenum type, const GLvoid *lists); +typedef void (* glClearProcPtr) (GLbitfield mask); +typedef void (* glClearAccumProcPtr) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +typedef void (* glClearColorProcPtr) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +typedef void (* glClearDepthProcPtr) (GLclampd depth); +typedef void (* glClearIndexProcPtr) (GLfloat c); +typedef void (* glClearStencilProcPtr) (GLint s); +typedef void (* glClipPlaneProcPtr) (GLenum plane, const GLdouble *equation); +typedef void (* glColor3bProcPtr) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (* glColor3bvProcPtr) (const GLbyte *v); +typedef void (* glColor3dProcPtr) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (* glColor3dvProcPtr) (const GLdouble *v); +typedef void (* glColor3fProcPtr) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (* glColor3fvProcPtr) (const GLfloat *v); +typedef void (* glColor3iProcPtr) (GLint red, GLint green, GLint blue); +typedef void (* glColor3ivProcPtr) (const GLint *v); +typedef void (* glColor3sProcPtr) (GLshort red, GLshort green, GLshort blue); +typedef void (* glColor3svProcPtr) (const GLshort *v); +typedef void (* glColor3ubProcPtr) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (* glColor3ubvProcPtr) (const GLubyte *v); +typedef void (* glColor3uiProcPtr) (GLuint red, GLuint green, GLuint blue); +typedef void (* glColor3uivProcPtr) (const GLuint *v); +typedef void (* glColor3usProcPtr) (GLushort red, GLushort green, GLushort blue); +typedef void (* glColor3usvProcPtr) (const GLushort *v); +typedef void (* glColor4bProcPtr) (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); +typedef void (* glColor4bvProcPtr) (const GLbyte *v); +typedef void (* glColor4dProcPtr) (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); +typedef void (* glColor4dvProcPtr) (const GLdouble *v); +typedef void (* glColor4fProcPtr) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +typedef void (* glColor4fvProcPtr) (const GLfloat *v); +typedef void (* glColor4iProcPtr) (GLint red, GLint green, GLint blue, GLint alpha); +typedef void (* glColor4ivProcPtr) (const GLint *v); +typedef void (* glColor4sProcPtr) (GLshort red, GLshort green, GLshort blue, GLshort alpha); +typedef void (* glColor4svProcPtr) (const GLshort *v); +typedef void (* glColor4ubProcPtr) (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); +typedef void (* glColor4ubvProcPtr) (const GLubyte *v); +typedef void (* glColor4uiProcPtr) (GLuint red, GLuint green, GLuint blue, GLuint alpha); +typedef void (* glColor4uivProcPtr) (const GLuint *v); +typedef void (* glColor4usProcPtr) (GLushort red, GLushort green, GLushort blue, GLushort alpha); +typedef void (* glColor4usvProcPtr) (const GLushort *v); +typedef void (* glColorMaskProcPtr) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +typedef void (* glColorMaterialProcPtr) (GLenum face, GLenum mode); +typedef void (* glColorPointerProcPtr) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glColorSubTableProcPtr) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); +typedef void (* glColorTableProcPtr) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); +typedef void (* glColorTableParameterfvProcPtr) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (* glColorTableParameterivProcPtr) (GLenum target, GLenum pname, const GLint *params); +typedef void (* glConvolutionFilter1DProcPtr) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); +typedef void (* glConvolutionFilter2DProcPtr) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); +typedef void (* glConvolutionParameterfProcPtr) (GLenum target, GLenum pname, GLfloat params); +typedef void (* glConvolutionParameterfvProcPtr) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (* glConvolutionParameteriProcPtr) (GLenum target, GLenum pname, GLint params); +typedef void (* glConvolutionParameterivProcPtr) (GLenum target, GLenum pname, const GLint *params); +typedef void (* glCopyColorSubTableProcPtr) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +typedef void (* glCopyColorTableProcPtr) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (* glCopyConvolutionFilter1DProcPtr) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (* glCopyConvolutionFilter2DProcPtr) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (* glCopyPixelsProcPtr) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); +typedef void (* glCopyTexImage1DProcPtr) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (* glCopyTexImage2DProcPtr) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (* glCopyTexSubImage1DProcPtr) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (* glCopyTexSubImage2DProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (* glCopyTexSubImage3DProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (* glCullFaceProcPtr) (GLenum mode); +typedef void (* glDeleteListsProcPtr) (GLuint list, GLsizei range); +typedef void (* glDeleteTexturesProcPtr) (GLsizei n, const GLuint *textures); +typedef void (* glDepthFuncProcPtr) (GLenum func); +typedef void (* glDepthMaskProcPtr) (GLboolean flag); +typedef void (* glDepthRangeProcPtr) (GLclampd zNear, GLclampd zFar); +typedef void (* glDisableProcPtr) (GLenum cap); +typedef void (* glDisableClientStateProcPtr) (GLenum array); +typedef void (* glDrawArraysProcPtr) (GLenum mode, GLint first, GLsizei count); +typedef void (* glDrawBufferProcPtr) (GLenum mode); +typedef void (* glDrawElementsProcPtr) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); +typedef void (* glDrawPixelsProcPtr) (GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (* glDrawRangeElementsProcPtr) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +typedef void (* glEdgeFlagProcPtr) (GLboolean flag); +typedef void (* glEdgeFlagPointerProcPtr) (GLsizei stride, const GLvoid *pointer); +typedef void (* glEdgeFlagvProcPtr) (const GLboolean *flag); +typedef void (* glEnableProcPtr) (GLenum cap); +typedef void (* glEnableClientStateProcPtr) (GLenum array); +typedef void (* glEndProcPtr) (void); +typedef void (* glEndListProcPtr) (void); +typedef void (* glEvalCoord1dProcPtr) (GLdouble u); +typedef void (* glEvalCoord1dvProcPtr) (const GLdouble *u); +typedef void (* glEvalCoord1fProcPtr) (GLfloat u); +typedef void (* glEvalCoord1fvProcPtr) (const GLfloat *u); +typedef void (* glEvalCoord2dProcPtr) (GLdouble u, GLdouble v); +typedef void (* glEvalCoord2dvProcPtr) (const GLdouble *u); +typedef void (* glEvalCoord2fProcPtr) (GLfloat u, GLfloat v); +typedef void (* glEvalCoord2fvProcPtr) (const GLfloat *u); +typedef void (* glEvalMesh1ProcPtr) (GLenum mode, GLint i1, GLint i2); +typedef void (* glEvalMesh2ProcPtr) (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); +typedef void (* glEvalPoint1ProcPtr) (GLint i); +typedef void (* glEvalPoint2ProcPtr) (GLint i, GLint j); +typedef void (* glFeedbackBufferProcPtr) (GLsizei size, GLenum type, GLfloat *buffer); +typedef void (* glFinishProcPtr) (void); +typedef void (* glFlushProcPtr) (void); +typedef void (* glFogfProcPtr) (GLenum pname, GLfloat param); +typedef void (* glFogfvProcPtr) (GLenum pname, const GLfloat *params); +typedef void (* glFogiProcPtr) (GLenum pname, GLint param); +typedef void (* glFogivProcPtr) (GLenum pname, const GLint *params); +typedef void (* glFrontFaceProcPtr) (GLenum mode); +typedef void (* glFrustumProcPtr) (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +typedef GLuint (* glGenListsProcPtr) (GLsizei range); +typedef void (* glGenTexturesProcPtr) (GLsizei n, GLuint *textures); +typedef void (* glGetBooleanvProcPtr) (GLenum pname, GLboolean *params); +typedef void (* glGetClipPlaneProcPtr) (GLenum plane, GLdouble *equation); +typedef void (* glGetColorTableProcPtr) (GLenum target, GLenum format, GLenum type, GLvoid *table); +typedef void (* glGetColorTableParameterfvProcPtr) (GLenum target, GLenum pname, GLfloat *params); +typedef void (* glGetColorTableParameterivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetConvolutionFilterProcPtr) (GLenum target, GLenum format, GLenum type, GLvoid *image); +typedef void (* glGetConvolutionParameterfvProcPtr) (GLenum target, GLenum pname, GLfloat *params); +typedef void (* glGetConvolutionParameterivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetDoublevProcPtr) (GLenum pname, GLdouble *params); +typedef GLenum (* glGetErrorProcPtr) (void); +typedef void (* glGetFloatvProcPtr) (GLenum pname, GLfloat *params); +typedef void (* glGetHistogramProcPtr) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (* glGetHistogramParameterfvProcPtr) (GLenum target, GLenum pname, GLfloat *params); +typedef void (* glGetHistogramParameterivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetIntegervProcPtr) (GLenum pname, GLint *params); +typedef void (* glGetLightfvProcPtr) (GLenum light, GLenum pname, GLfloat *params); +typedef void (* glGetLightivProcPtr) (GLenum light, GLenum pname, GLint *params); +typedef void (* glGetMapdvProcPtr) (GLenum target, GLenum query, GLdouble *v); +typedef void (* glGetMapfvProcPtr) (GLenum target, GLenum query, GLfloat *v); +typedef void (* glGetMapivProcPtr) (GLenum target, GLenum query, GLint *v); +typedef void (* glGetMaterialfvProcPtr) (GLenum face, GLenum pname, GLfloat *params); +typedef void (* glGetMaterialivProcPtr) (GLenum face, GLenum pname, GLint *params); +typedef void (* glGetMinmaxProcPtr) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (* glGetMinmaxParameterfvProcPtr) (GLenum target, GLenum pname, GLfloat *params); +typedef void (* glGetMinmaxParameterivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetPixelMapfvProcPtr) (GLenum map, GLfloat *values); +typedef void (* glGetPixelMapuivProcPtr) (GLenum map, GLuint *values); +typedef void (* glGetPixelMapusvProcPtr) (GLenum map, GLushort *values); +typedef void (* glGetPointervProcPtr) (GLenum pname, GLvoid **params); +typedef void (* glGetPolygonStippleProcPtr) (GLubyte *mask); +typedef void (* glGetSeparableFilterProcPtr) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); +typedef const GLubyte *(* glGetStringProcPtr) (GLenum name); +typedef void (* glGetTexEnvfvProcPtr) (GLenum target, GLenum pname, GLfloat *params); +typedef void (* glGetTexEnvivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetTexGendvProcPtr) (GLenum coord, GLenum pname, GLdouble *params); +typedef void (* glGetTexGenfvProcPtr) (GLenum coord, GLenum pname, GLfloat *params); +typedef void (* glGetTexGenivProcPtr) (GLenum coord, GLenum pname, GLint *params); +typedef void (* glGetTexImageProcPtr) (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); +typedef void (* glGetTexLevelParameterfvProcPtr) (GLenum target, GLint level, GLenum pname, GLfloat *params); +typedef void (* glGetTexLevelParameterivProcPtr) (GLenum target, GLint level, GLenum pname, GLint *params); +typedef void (* glGetTexParameterfvProcPtr) (GLenum target, GLenum pname, GLfloat *params); +typedef void (* glGetTexParameterivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glHintProcPtr) (GLenum target, GLenum mode); +typedef void (* glHistogramProcPtr) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +typedef void (* glIndexMaskProcPtr) (GLuint mask); +typedef void (* glIndexPointerProcPtr) (GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glIndexdProcPtr) (GLdouble c); +typedef void (* glIndexdvProcPtr) (const GLdouble *c); +typedef void (* glIndexfProcPtr) (GLfloat c); +typedef void (* glIndexfvProcPtr) (const GLfloat *c); +typedef void (* glIndexiProcPtr) (GLint c); +typedef void (* glIndexivProcPtr) (const GLint *c); +typedef void (* glIndexsProcPtr) (GLshort c); +typedef void (* glIndexsvProcPtr) (const GLshort *c); +typedef void (* glIndexubProcPtr) (GLubyte c); +typedef void (* glIndexubvProcPtr) (const GLubyte *c); +typedef void (* glInitNamesProcPtr) (void); +typedef void (* glInterleavedArraysProcPtr) (GLenum format, GLsizei stride, const GLvoid *pointer); +typedef GLboolean (* glIsEnabledProcPtr) (GLenum cap); +typedef GLboolean (* glIsListProcPtr) (GLuint list); +typedef GLboolean (* glIsTextureProcPtr) (GLuint texture); +typedef void (* glLightModelfProcPtr) (GLenum pname, GLfloat param); +typedef void (* glLightModelfvProcPtr) (GLenum pname, const GLfloat *params); +typedef void (* glLightModeliProcPtr) (GLenum pname, GLint param); +typedef void (* glLightModelivProcPtr) (GLenum pname, const GLint *params); +typedef void (* glLightfProcPtr) (GLenum light, GLenum pname, GLfloat param); +typedef void (* glLightfvProcPtr) (GLenum light, GLenum pname, const GLfloat *params); +typedef void (* glLightiProcPtr) (GLenum light, GLenum pname, GLint param); +typedef void (* glLightivProcPtr) (GLenum light, GLenum pname, const GLint *params); +typedef void (* glLineStippleProcPtr) (GLint factor, GLushort pattern); +typedef void (* glLineWidthProcPtr) (GLfloat width); +typedef void (* glListBaseProcPtr) (GLuint base); +typedef void (* glLoadIdentityProcPtr) (void); +typedef void (* glLoadMatrixdProcPtr) (const GLdouble *m); +typedef void (* glLoadMatrixfProcPtr) (const GLfloat *m); +typedef void (* glLoadNameProcPtr) (GLuint name); +typedef void (* glLogicOpProcPtr) (GLenum opcode); +typedef void (* glMap1dProcPtr) (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +typedef void (* glMap1fProcPtr) (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +typedef void (* glMap2dProcPtr) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +typedef void (* glMap2fProcPtr) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +typedef void (* glMapGrid1dProcPtr) (GLint un, GLdouble u1, GLdouble u2); +typedef void (* glMapGrid1fProcPtr) (GLint un, GLfloat u1, GLfloat u2); +typedef void (* glMapGrid2dProcPtr) (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); +typedef void (* glMapGrid2fProcPtr) (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); +typedef void (* glMaterialfProcPtr) (GLenum face, GLenum pname, GLfloat param); +typedef void (* glMaterialfvProcPtr) (GLenum face, GLenum pname, const GLfloat *params); +typedef void (* glMaterialiProcPtr) (GLenum face, GLenum pname, GLint param); +typedef void (* glMaterialivProcPtr) (GLenum face, GLenum pname, const GLint *params); +typedef void (* glMatrixModeProcPtr) (GLenum mode); +typedef void (* glMinmaxProcPtr) (GLenum target, GLenum internalformat, GLboolean sink); +typedef void (* glMultMatrixdProcPtr) (const GLdouble *m); +typedef void (* glMultMatrixfProcPtr) (const GLfloat *m); +typedef void (* glNewListProcPtr) (GLuint list, GLenum mode); +typedef void (* glNormal3bProcPtr) (GLbyte nx, GLbyte ny, GLbyte nz); +typedef void (* glNormal3bvProcPtr) (const GLbyte *v); +typedef void (* glNormal3dProcPtr) (GLdouble nx, GLdouble ny, GLdouble nz); +typedef void (* glNormal3dvProcPtr) (const GLdouble *v); +typedef void (* glNormal3fProcPtr) (GLfloat nx, GLfloat ny, GLfloat nz); +typedef void (* glNormal3fvProcPtr) (const GLfloat *v); +typedef void (* glNormal3iProcPtr) (GLint nx, GLint ny, GLint nz); +typedef void (* glNormal3ivProcPtr) (const GLint *v); +typedef void (* glNormal3sProcPtr) (GLshort nx, GLshort ny, GLshort nz); +typedef void (* glNormal3svProcPtr) (const GLshort *v); +typedef void (* glNormalPointerProcPtr) (GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glOrthoProcPtr) (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +typedef void (* glPassThroughProcPtr) (GLfloat token); +typedef void (* glPixelMapfvProcPtr) (GLenum map, GLint mapsize, const GLfloat *values); +typedef void (* glPixelMapuivProcPtr) (GLenum map, GLint mapsize, const GLuint *values); +typedef void (* glPixelMapusvProcPtr) (GLenum map, GLint mapsize, const GLushort *values); +typedef void (* glPixelStorefProcPtr) (GLenum pname, GLfloat param); +typedef void (* glPixelStoreiProcPtr) (GLenum pname, GLint param); +typedef void (* glPixelTransferfProcPtr) (GLenum pname, GLfloat param); +typedef void (* glPixelTransferiProcPtr) (GLenum pname, GLint param); +typedef void (* glPixelZoomProcPtr) (GLfloat xfactor, GLfloat yfactor); +typedef void (* glPointSizeProcPtr) (GLfloat size); +typedef void (* glPolygonModeProcPtr) (GLenum face, GLenum mode); +typedef void (* glPolygonOffsetProcPtr) (GLfloat factor, GLfloat units); +typedef void (* glPolygonStippleProcPtr) (const GLubyte *mask); +typedef void (* glPopAttribProcPtr) (void); +typedef void (* glPopClientAttribProcPtr) (void); +typedef void (* glPopMatrixProcPtr) (void); +typedef void (* glPopNameProcPtr) (void); +typedef void (* glPrioritizeTexturesProcPtr) (GLsizei n, const GLuint *textures, const GLclampf *priorities); +typedef void (* glPushAttribProcPtr) (GLbitfield mask); +typedef void (* glPushClientAttribProcPtr) (GLbitfield mask); +typedef void (* glPushMatrixProcPtr) (void); +typedef void (* glPushNameProcPtr) (GLuint name); +typedef void (* glRasterPos2dProcPtr) (GLdouble x, GLdouble y); +typedef void (* glRasterPos2dvProcPtr) (const GLdouble *v); +typedef void (* glRasterPos2fProcPtr) (GLfloat x, GLfloat y); +typedef void (* glRasterPos2fvProcPtr) (const GLfloat *v); +typedef void (* glRasterPos2iProcPtr) (GLint x, GLint y); +typedef void (* glRasterPos2ivProcPtr) (const GLint *v); +typedef void (* glRasterPos2sProcPtr) (GLshort x, GLshort y); +typedef void (* glRasterPos2svProcPtr) (const GLshort *v); +typedef void (* glRasterPos3dProcPtr) (GLdouble x, GLdouble y, GLdouble z); +typedef void (* glRasterPos3dvProcPtr) (const GLdouble *v); +typedef void (* glRasterPos3fProcPtr) (GLfloat x, GLfloat y, GLfloat z); +typedef void (* glRasterPos3fvProcPtr) (const GLfloat *v); +typedef void (* glRasterPos3iProcPtr) (GLint x, GLint y, GLint z); +typedef void (* glRasterPos3ivProcPtr) (const GLint *v); +typedef void (* glRasterPos3sProcPtr) (GLshort x, GLshort y, GLshort z); +typedef void (* glRasterPos3svProcPtr) (const GLshort *v); +typedef void (* glRasterPos4dProcPtr) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glRasterPos4dvProcPtr) (const GLdouble *v); +typedef void (* glRasterPos4fProcPtr) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glRasterPos4fvProcPtr) (const GLfloat *v); +typedef void (* glRasterPos4iProcPtr) (GLint x, GLint y, GLint z, GLint w); +typedef void (* glRasterPos4ivProcPtr) (const GLint *v); +typedef void (* glRasterPos4sProcPtr) (GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (* glRasterPos4svProcPtr) (const GLshort *v); +typedef void (* glReadBufferProcPtr) (GLenum mode); +typedef void (* glReadPixelsProcPtr) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); +typedef void (* glRectdProcPtr) (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); +typedef void (* glRectdvProcPtr) (const GLdouble *v1, const GLdouble *v2); +typedef void (* glRectfProcPtr) (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); +typedef void (* glRectfvProcPtr) (const GLfloat *v1, const GLfloat *v2); +typedef void (* glRectiProcPtr) (GLint x1, GLint y1, GLint x2, GLint y2); +typedef void (* glRectivProcPtr) (const GLint *v1, const GLint *v2); +typedef void (* glRectsProcPtr) (GLshort x1, GLshort y1, GLshort x2, GLshort y2); +typedef void (* glRectsvProcPtr) (const GLshort *v1, const GLshort *v2); +typedef GLint (* glRenderModeProcPtr) (GLenum mode); +typedef void (* glResetHistogramProcPtr) (GLenum target); +typedef void (* glResetMinmaxProcPtr) (GLenum target); +typedef void (* glRotatedProcPtr) (GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +typedef void (* glRotatefProcPtr) (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +typedef void (* glScaledProcPtr) (GLdouble x, GLdouble y, GLdouble z); +typedef void (* glScalefProcPtr) (GLfloat x, GLfloat y, GLfloat z); +typedef void (* glScissorProcPtr) (GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (* glSelectBufferProcPtr) (GLsizei size, GLuint *buffer); +typedef void (* glSeparableFilter2DProcPtr) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); +typedef void (* glShadeModelProcPtr) (GLenum mode); +typedef void (* glStencilFuncProcPtr) (GLenum func, GLint ref, GLuint mask); +typedef void (* glStencilMaskProcPtr) (GLuint mask); +typedef void (* glStencilOpProcPtr) (GLenum fail, GLenum zfail, GLenum zpass); +typedef void (* glTexCoord1dProcPtr) (GLdouble s); +typedef void (* glTexCoord1dvProcPtr) (const GLdouble *v); +typedef void (* glTexCoord1fProcPtr) (GLfloat s); +typedef void (* glTexCoord1fvProcPtr) (const GLfloat *v); +typedef void (* glTexCoord1iProcPtr) (GLint s); +typedef void (* glTexCoord1ivProcPtr) (const GLint *v); +typedef void (* glTexCoord1sProcPtr) (GLshort s); +typedef void (* glTexCoord1svProcPtr) (const GLshort *v); +typedef void (* glTexCoord2dProcPtr) (GLdouble s, GLdouble t); +typedef void (* glTexCoord2dvProcPtr) (const GLdouble *v); +typedef void (* glTexCoord2fProcPtr) (GLfloat s, GLfloat t); +typedef void (* glTexCoord2fvProcPtr) (const GLfloat *v); +typedef void (* glTexCoord2iProcPtr) (GLint s, GLint t); +typedef void (* glTexCoord2ivProcPtr) (const GLint *v); +typedef void (* glTexCoord2sProcPtr) (GLshort s, GLshort t); +typedef void (* glTexCoord2svProcPtr) (const GLshort *v); +typedef void (* glTexCoord3dProcPtr) (GLdouble s, GLdouble t, GLdouble r); +typedef void (* glTexCoord3dvProcPtr) (const GLdouble *v); +typedef void (* glTexCoord3fProcPtr) (GLfloat s, GLfloat t, GLfloat r); +typedef void (* glTexCoord3fvProcPtr) (const GLfloat *v); +typedef void (* glTexCoord3iProcPtr) (GLint s, GLint t, GLint r); +typedef void (* glTexCoord3ivProcPtr) (const GLint *v); +typedef void (* glTexCoord3sProcPtr) (GLshort s, GLshort t, GLshort r); +typedef void (* glTexCoord3svProcPtr) (const GLshort *v); +typedef void (* glTexCoord4dProcPtr) (GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (* glTexCoord4dvProcPtr) (const GLdouble *v); +typedef void (* glTexCoord4fProcPtr) (GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (* glTexCoord4fvProcPtr) (const GLfloat *v); +typedef void (* glTexCoord4iProcPtr) (GLint s, GLint t, GLint r, GLint q); +typedef void (* glTexCoord4ivProcPtr) (const GLint *v); +typedef void (* glTexCoord4sProcPtr) (GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (* glTexCoord4svProcPtr) (const GLshort *v); +typedef void (* glTexCoordPointerProcPtr) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glTexEnvfProcPtr) (GLenum target, GLenum pname, GLfloat param); +typedef void (* glTexEnvfvProcPtr) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (* glTexEnviProcPtr) (GLenum target, GLenum pname, GLint param); +typedef void (* glTexEnvivProcPtr) (GLenum target, GLenum pname, const GLint *params); +typedef void (* glTexGendProcPtr) (GLenum coord, GLenum pname, GLdouble param); +typedef void (* glTexGendvProcPtr) (GLenum coord, GLenum pname, const GLdouble *params); +typedef void (* glTexGenfProcPtr) (GLenum coord, GLenum pname, GLfloat param); +typedef void (* glTexGenfvProcPtr) (GLenum coord, GLenum pname, const GLfloat *params); +typedef void (* glTexGeniProcPtr) (GLenum coord, GLenum pname, GLint param); +typedef void (* glTexGenivProcPtr) (GLenum coord, GLenum pname, const GLint *params); +typedef void (* glTexImage1DProcPtr) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (* glTexImage2DProcPtr) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (* glTexImage3DProcPtr) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (* glTexParameterfProcPtr) (GLenum target, GLenum pname, GLfloat param); +typedef void (* glTexParameterfvProcPtr) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (* glTexParameteriProcPtr) (GLenum target, GLenum pname, GLint param); +typedef void (* glTexParameterivProcPtr) (GLenum target, GLenum pname, const GLint *params); +typedef void (* glTexSubImage1DProcPtr) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (* glTexSubImage2DProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (* glTexSubImage3DProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (* glTranslatedProcPtr) (GLdouble x, GLdouble y, GLdouble z); +typedef void (* glTranslatefProcPtr) (GLfloat x, GLfloat y, GLfloat z); +typedef void (* glVertex2dProcPtr) (GLdouble x, GLdouble y); +typedef void (* glVertex2dvProcPtr) (const GLdouble *v); +typedef void (* glVertex2fProcPtr) (GLfloat x, GLfloat y); +typedef void (* glVertex2fvProcPtr) (const GLfloat *v); +typedef void (* glVertex2iProcPtr) (GLint x, GLint y); +typedef void (* glVertex2ivProcPtr) (const GLint *v); +typedef void (* glVertex2sProcPtr) (GLshort x, GLshort y); +typedef void (* glVertex2svProcPtr) (const GLshort *v); +typedef void (* glVertex3dProcPtr) (GLdouble x, GLdouble y, GLdouble z); +typedef void (* glVertex3dvProcPtr) (const GLdouble *v); +typedef void (* glVertex3fProcPtr) (GLfloat x, GLfloat y, GLfloat z); +typedef void (* glVertex3fvProcPtr) (const GLfloat *v); +typedef void (* glVertex3iProcPtr) (GLint x, GLint y, GLint z); +typedef void (* glVertex3ivProcPtr) (const GLint *v); +typedef void (* glVertex3sProcPtr) (GLshort x, GLshort y, GLshort z); +typedef void (* glVertex3svProcPtr) (const GLshort *v); +typedef void (* glVertex4dProcPtr) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glVertex4dvProcPtr) (const GLdouble *v); +typedef void (* glVertex4fProcPtr) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glVertex4fvProcPtr) (const GLfloat *v); +typedef void (* glVertex4iProcPtr) (GLint x, GLint y, GLint z, GLint w); +typedef void (* glVertex4ivProcPtr) (const GLint *v); +typedef void (* glVertex4sProcPtr) (GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (* glVertex4svProcPtr) (const GLshort *v); +typedef void (* glVertexPointerProcPtr) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glViewportProcPtr) (GLint x, GLint y, GLsizei width, GLsizei height); + +typedef void (* glSampleCoverageProcPtr) (GLclampf value, GLboolean invert); + +typedef void (* glLoadTransposeMatrixfProcPtr) (const GLfloat *m); +typedef void (* glLoadTransposeMatrixdProcPtr) (const GLdouble *m); +typedef void (* glMultTransposeMatrixfProcPtr) (const GLfloat *m); +typedef void (* glMultTransposeMatrixdProcPtr) (const GLdouble *m); + +typedef void (* glCompressedTexImage3DProcPtr) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexImage2DProcPtr) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexImage1DProcPtr) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexSubImage3DProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexSubImage2DProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexSubImage1DProcPtr) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (* glGetCompressedTexImageProcPtr) (GLenum target, GLint lod, GLvoid *img); + +typedef void (* glActiveTextureProcPtr) (GLenum texture); +typedef void (* glClientActiveTextureProcPtr) (GLenum texture); +typedef void (* glMultiTexCoord1dProcPtr) (GLenum target, GLdouble s); +typedef void (* glMultiTexCoord1dvProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord1fProcPtr) (GLenum target, GLfloat s); +typedef void (* glMultiTexCoord1fvProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord1iProcPtr) (GLenum target, GLint s); +typedef void (* glMultiTexCoord1ivProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord1sProcPtr) (GLenum target, GLshort s); +typedef void (* glMultiTexCoord1svProcPtr) (GLenum target, const GLshort *v); +typedef void (* glMultiTexCoord2dProcPtr) (GLenum target, GLdouble s, GLdouble t); +typedef void (* glMultiTexCoord2dvProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord2fProcPtr) (GLenum target, GLfloat s, GLfloat t); +typedef void (* glMultiTexCoord2fvProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord2iProcPtr) (GLenum target, GLint s, GLint t); +typedef void (* glMultiTexCoord2ivProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord2sProcPtr) (GLenum target, GLshort s, GLshort t); +typedef void (* glMultiTexCoord2svProcPtr) (GLenum target, const GLshort *v); +typedef void (* glMultiTexCoord3dProcPtr) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (* glMultiTexCoord3dvProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord3fProcPtr) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (* glMultiTexCoord3fvProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord3iProcPtr) (GLenum target, GLint s, GLint t, GLint r); +typedef void (* glMultiTexCoord3ivProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord3sProcPtr) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (* glMultiTexCoord3svProcPtr) (GLenum target, const GLshort *v); +typedef void (* glMultiTexCoord4dProcPtr) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (* glMultiTexCoord4dvProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord4fProcPtr) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (* glMultiTexCoord4fvProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord4iProcPtr) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (* glMultiTexCoord4ivProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord4sProcPtr) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (* glMultiTexCoord4svProcPtr) (GLenum target, const GLshort *v); + +typedef void (* glFogCoordfProcPtr) (GLfloat coord); +typedef void (* glFogCoordfvProcPtr) (const GLfloat *coord); +typedef void (* glFogCoorddProcPtr) (GLdouble coord); +typedef void (* glFogCoorddvProcPtr) (const GLdouble *coord); +typedef void (* glFogCoordPointerProcPtr) (GLenum type, GLsizei stride, const GLvoid *pointer); + +typedef void (* glSecondaryColor3bProcPtr) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (* glSecondaryColor3bvProcPtr) (const GLbyte *v); +typedef void (* glSecondaryColor3dProcPtr) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (* glSecondaryColor3dvProcPtr) (const GLdouble *v); +typedef void (* glSecondaryColor3fProcPtr) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (* glSecondaryColor3fvProcPtr) (const GLfloat *v); +typedef void (* glSecondaryColor3iProcPtr) (GLint red, GLint green, GLint blue); +typedef void (* glSecondaryColor3ivProcPtr) (const GLint *v); +typedef void (* glSecondaryColor3sProcPtr) (GLshort red, GLshort green, GLshort blue); +typedef void (* glSecondaryColor3svProcPtr) (const GLshort *v); +typedef void (* glSecondaryColor3ubProcPtr) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (* glSecondaryColor3ubvProcPtr) (const GLubyte *v); +typedef void (* glSecondaryColor3uiProcPtr) (GLuint red, GLuint green, GLuint blue); +typedef void (* glSecondaryColor3uivProcPtr) (const GLuint *v); +typedef void (* glSecondaryColor3usProcPtr) (GLushort red, GLushort green, GLushort blue); +typedef void (* glSecondaryColor3usvProcPtr) (const GLushort *v); +typedef void (* glSecondaryColorPointerProcPtr) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + +typedef void (* glPointParameterfProcPtr) (GLenum pname, GLfloat param); +typedef void (* glPointParameterfvProcPtr) (GLenum pname, const GLfloat *params); +typedef void (* glPointParameteriProcPtr) (GLenum pname, GLint param); +typedef void (* glPointParameterivProcPtr) (GLenum pname, const GLint *params); + +typedef void (* glBlendFuncSeparateProcPtr) (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); + +typedef void (* glMultiDrawArraysProcPtr) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +typedef void (* glMultiDrawElementsProcPtr) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount); + +typedef void (* glWindowPos2dProcPtr) (GLdouble x, GLdouble y); +typedef void (* glWindowPos2dvProcPtr) (const GLdouble *v); +typedef void (* glWindowPos2fProcPtr) (GLfloat x, GLfloat y); +typedef void (* glWindowPos2fvProcPtr) (const GLfloat *v); +typedef void (* glWindowPos2iProcPtr) (GLint x, GLint y); +typedef void (* glWindowPos2ivProcPtr) (const GLint *v); +typedef void (* glWindowPos2sProcPtr) (GLshort x, GLshort y); +typedef void (* glWindowPos2svProcPtr) (const GLshort *v); +typedef void (* glWindowPos3dProcPtr) (GLdouble x, GLdouble y, GLdouble z); +typedef void (* glWindowPos3dvProcPtr) (const GLdouble *v); +typedef void (* glWindowPos3fProcPtr) (GLfloat x, GLfloat y, GLfloat z); +typedef void (* glWindowPos3fvProcPtr) (const GLfloat *v); +typedef void (* glWindowPos3iProcPtr) (GLint x, GLint y, GLint z); +typedef void (* glWindowPos3ivProcPtr) (const GLint *v); +typedef void (* glWindowPos3sProcPtr) (GLshort x, GLshort y, GLshort z); +typedef void (* glWindowPos3svProcPtr) (const GLshort *v); + +typedef void (* glGenQueriesProcPtr) (GLsizei n, GLuint *ids); +typedef void (* glDeleteQueriesProcPtr) (GLsizei n, const GLuint *ids); +typedef GLboolean (* glIsQueryProcPtr) (GLuint id); +typedef void (* glBeginQueryProcPtr) (GLenum target, GLuint id); +typedef void (* glEndQueryProcPtr) (GLenum target); +typedef void (* glGetQueryivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetQueryObjectivProcPtr) (GLuint id, GLenum pname, GLint *params); +typedef void (* glGetQueryObjectuivProcPtr) (GLuint id, GLenum pname, GLuint *params); + +typedef void (* glBindBufferProcPtr) (GLenum target, GLuint buffer); +typedef void (* glDeleteBuffersProcPtr) (GLsizei n, const GLuint *buffers); +typedef void (* glGenBuffersProcPtr) (GLsizei n, GLuint *buffers); +typedef GLboolean (* glIsBufferProcPtr) (GLuint buffer); +typedef void (* glBufferDataProcPtr) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); +typedef void (* glBufferSubDataProcPtr) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); +typedef void (* glGetBufferSubDataProcPtr) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); +typedef GLvoid *(* glMapBufferProcPtr) (GLenum target, GLenum access); +typedef GLboolean (* glUnmapBufferProcPtr) (GLenum target); +typedef void (* glGetBufferParameterivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetBufferPointervProcPtr) (GLenum target, GLenum pname, GLvoid **params); + +typedef void (* glDrawBuffersProcPtr) (GLsizei n, const GLenum *bufs); +typedef void (* glVertexAttrib1dProcPtr) (GLuint index, GLdouble x); +typedef void (* glVertexAttrib1dvProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib1fProcPtr) (GLuint index, GLfloat x); +typedef void (* glVertexAttrib1fvProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib1sProcPtr) (GLuint index, GLshort x); +typedef void (* glVertexAttrib1svProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib2dProcPtr) (GLuint index, GLdouble x, GLdouble y); +typedef void (* glVertexAttrib2dvProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib2fProcPtr) (GLuint index, GLfloat x, GLfloat y); +typedef void (* glVertexAttrib2fvProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib2sProcPtr) (GLuint index, GLshort x, GLshort y); +typedef void (* glVertexAttrib2svProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib3dProcPtr) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (* glVertexAttrib3dvProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib3fProcPtr) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (* glVertexAttrib3fvProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib3sProcPtr) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (* glVertexAttrib3svProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib4NbvProcPtr) (GLuint index, const GLbyte *v); +typedef void (* glVertexAttrib4NivProcPtr) (GLuint index, const GLint *v); +typedef void (* glVertexAttrib4NsvProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib4NubProcPtr) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (* glVertexAttrib4NubvProcPtr) (GLuint index, const GLubyte *v); +typedef void (* glVertexAttrib4NuivProcPtr) (GLuint index, const GLuint *v); +typedef void (* glVertexAttrib4NusvProcPtr) (GLuint index, const GLushort *v); +typedef void (* glVertexAttrib4bvProcPtr) (GLuint index, const GLbyte *v); +typedef void (* glVertexAttrib4dProcPtr) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glVertexAttrib4dvProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib4fProcPtr) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glVertexAttrib4fvProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib4ivProcPtr) (GLuint index, const GLint *v); +typedef void (* glVertexAttrib4sProcPtr) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (* glVertexAttrib4svProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib4ubvProcPtr) (GLuint index, const GLubyte *v); +typedef void (* glVertexAttrib4uivProcPtr) (GLuint index, const GLuint *v); +typedef void (* glVertexAttrib4usvProcPtr) (GLuint index, const GLushort *v); +typedef void (* glVertexAttribPointerProcPtr) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +typedef void (* glEnableVertexAttribArrayProcPtr) (GLuint index); +typedef void (* glDisableVertexAttribArrayProcPtr) (GLuint index); +typedef void (* glGetVertexAttribdvProcPtr) (GLuint index, GLenum pname, GLdouble *params); +typedef void (* glGetVertexAttribfvProcPtr) (GLuint index, GLenum pname, GLfloat *params); +typedef void (* glGetVertexAttribivProcPtr) (GLuint index, GLenum pname, GLint *params); +typedef void (* glGetVertexAttribPointervProcPtr) (GLuint index, GLenum pname, GLvoid **pointer); +typedef void (* glDeleteShaderProcPtr) (GLuint shader); +typedef void (* glDetachShaderProcPtr) (GLuint program, GLuint shader); +typedef GLuint (* glCreateShaderProcPtr) (GLenum type); +typedef void (* glShaderSourceProcPtr) (GLuint shader, GLsizei count, const GLchar* const *string, const GLint *length); +typedef void (* glCompileShaderProcPtr) (GLuint shader); +typedef GLuint (* glCreateProgramProcPtr) (void); +typedef void (* glAttachShaderProcPtr) (GLuint program, GLuint shader); +typedef void (* glLinkProgramProcPtr) (GLuint program); +typedef void (* glUseProgramProcPtr) (GLuint program); +typedef void (* glDeleteProgramProcPtr) (GLuint program); +typedef void (* glValidateProgramProcPtr) (GLuint program); +typedef void (* glUniform1fProcPtr) (GLint location, GLfloat v0); +typedef void (* glUniform2fProcPtr) (GLint location, GLfloat v0, GLfloat v1); +typedef void (* glUniform3fProcPtr) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (* glUniform4fProcPtr) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (* glUniform1iProcPtr) (GLint location, GLint v0); +typedef void (* glUniform2iProcPtr) (GLint location, GLint v0, GLint v1); +typedef void (* glUniform3iProcPtr) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (* glUniform4iProcPtr) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (* glUniform1fvProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform2fvProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform3fvProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform4fvProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform1ivProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniform2ivProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniform3ivProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniform4ivProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniformMatrix2fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix3fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix4fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef GLboolean (* glIsShaderProcPtr) (GLuint shader); +typedef GLboolean (* glIsProgramProcPtr) (GLuint program); +typedef void (* glGetShaderivProcPtr) (GLuint shader, GLenum pname, GLint *params); +typedef void (* glGetProgramivProcPtr) (GLuint program, GLenum pname, GLint *params); +typedef void (* glGetAttachedShadersProcPtr) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +typedef void (* glGetShaderInfoLogProcPtr) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (* glGetProgramInfoLogProcPtr) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef GLint (* glGetUniformLocationProcPtr) (GLuint program, const GLchar *name); +typedef void (* glGetActiveUniformProcPtr) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef void (* glGetUniformfvProcPtr) (GLuint program, GLint location, GLfloat *params); +typedef void (* glGetUniformivProcPtr) (GLuint program, GLint location, GLint *params); +typedef void (* glGetShaderSourceProcPtr) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +typedef void (* glBindAttribLocationProcPtr) (GLuint program, GLuint index, const GLchar *name); +typedef void (* glGetActiveAttribProcPtr) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef GLint (* glGetAttribLocationProcPtr) (GLuint program, const GLchar *name); +typedef void (* glStencilFuncSeparateProcPtr) (GLenum face, GLenum func, GLint ref, GLuint mask); +typedef void (* glStencilOpSeparateProcPtr) (GLenum face, GLenum fail, GLenum zfail, GLenum zpass); +typedef void (* glStencilMaskSeparateProcPtr) (GLenum face, GLuint mask); + +typedef void (* glUniformMatrix2x3fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix3x2fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix2x4fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix4x2fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix3x4fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix4x3fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + +#else /* GL_GLEXT_FUNCTION_POINTERS */ + +extern void glAccum (GLenum op, GLfloat value); +extern void glAlphaFunc (GLenum func, GLclampf ref); +extern GLboolean glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences); +extern void glArrayElement (GLint i); +extern void glBegin (GLenum mode); +extern void glBindTexture (GLenum target, GLuint texture); +extern void glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); +extern void glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +extern void glBlendEquation (GLenum mode); +extern void glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); +extern void glBlendFunc (GLenum sfactor, GLenum dfactor); +extern void glCallList (GLuint list); +extern void glCallLists (GLsizei n, GLenum type, const GLvoid *lists); +extern void glClear (GLbitfield mask); +extern void glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +extern void glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +extern void glClearDepth (GLclampd depth); +extern void glClearIndex (GLfloat c); +extern void glClearStencil (GLint s); +extern void glClipPlane (GLenum plane, const GLdouble *equation); +extern void glColor3b (GLbyte red, GLbyte green, GLbyte blue); +extern void glColor3bv (const GLbyte *v); +extern void glColor3d (GLdouble red, GLdouble green, GLdouble blue); +extern void glColor3dv (const GLdouble *v); +extern void glColor3f (GLfloat red, GLfloat green, GLfloat blue); +extern void glColor3fv (const GLfloat *v); +extern void glColor3i (GLint red, GLint green, GLint blue); +extern void glColor3iv (const GLint *v); +extern void glColor3s (GLshort red, GLshort green, GLshort blue); +extern void glColor3sv (const GLshort *v); +extern void glColor3ub (GLubyte red, GLubyte green, GLubyte blue); +extern void glColor3ubv (const GLubyte *v); +extern void glColor3ui (GLuint red, GLuint green, GLuint blue); +extern void glColor3uiv (const GLuint *v); +extern void glColor3us (GLushort red, GLushort green, GLushort blue); +extern void glColor3usv (const GLushort *v); +extern void glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); +extern void glColor4bv (const GLbyte *v); +extern void glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); +extern void glColor4dv (const GLdouble *v); +extern void glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +extern void glColor4fv (const GLfloat *v); +extern void glColor4i (GLint red, GLint green, GLint blue, GLint alpha); +extern void glColor4iv (const GLint *v); +extern void glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha); +extern void glColor4sv (const GLshort *v); +extern void glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); +extern void glColor4ubv (const GLubyte *v); +extern void glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha); +extern void glColor4uiv (const GLuint *v); +extern void glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha); +extern void glColor4usv (const GLushort *v); +extern void glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +extern void glColorMaterial (GLenum face, GLenum mode); +extern void glColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glColorSubTable (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); +extern void glColorTable (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); +extern void glColorTableParameterfv (GLenum target, GLenum pname, const GLfloat *params); +extern void glColorTableParameteriv (GLenum target, GLenum pname, const GLint *params); +extern void glConvolutionFilter1D (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); +extern void glConvolutionFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); +extern void glConvolutionParameterf (GLenum target, GLenum pname, GLfloat params); +extern void glConvolutionParameterfv (GLenum target, GLenum pname, const GLfloat *params); +extern void glConvolutionParameteri (GLenum target, GLenum pname, GLint params); +extern void glConvolutionParameteriv (GLenum target, GLenum pname, const GLint *params); +extern void glCopyColorSubTable (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +extern void glCopyColorTable (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +extern void glCopyConvolutionFilter1D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +extern void glCopyConvolutionFilter2D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +extern void glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); +extern void glCopyTexImage1D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +extern void glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +extern void glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +extern void glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +extern void glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +extern void glCullFace (GLenum mode); +extern void glDeleteLists (GLuint list, GLsizei range); +extern void glDeleteTextures (GLsizei n, const GLuint *textures); +extern void glDepthFunc (GLenum func); +extern void glDepthMask (GLboolean flag); +extern void glDepthRange (GLclampd zNear, GLclampd zFar); +extern void glDisable (GLenum cap); +extern void glDisableClientState (GLenum array); +extern void glDrawArrays (GLenum mode, GLint first, GLsizei count); +extern void glDrawBuffer (GLenum mode); +extern void glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); +extern void glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +extern void glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +extern void glEdgeFlag (GLboolean flag); +extern void glEdgeFlagPointer (GLsizei stride, const GLvoid *pointer); +extern void glEdgeFlagv (const GLboolean *flag); +extern void glEnable (GLenum cap); +extern void glEnableClientState (GLenum array); +extern void glEnd (void); +extern void glEndList (void); +extern void glEvalCoord1d (GLdouble u); +extern void glEvalCoord1dv (const GLdouble *u); +extern void glEvalCoord1f (GLfloat u); +extern void glEvalCoord1fv (const GLfloat *u); +extern void glEvalCoord2d (GLdouble u, GLdouble v); +extern void glEvalCoord2dv (const GLdouble *u); +extern void glEvalCoord2f (GLfloat u, GLfloat v); +extern void glEvalCoord2fv (const GLfloat *u); +extern void glEvalMesh1 (GLenum mode, GLint i1, GLint i2); +extern void glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); +extern void glEvalPoint1 (GLint i); +extern void glEvalPoint2 (GLint i, GLint j); +extern void glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer); +extern void glFinish (void); +extern void glFlush (void); +extern void glFogf (GLenum pname, GLfloat param); +extern void glFogfv (GLenum pname, const GLfloat *params); +extern void glFogi (GLenum pname, GLint param); +extern void glFogiv (GLenum pname, const GLint *params); +extern void glFrontFace (GLenum mode); +extern void glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +extern GLuint glGenLists (GLsizei range); +extern void glGenTextures (GLsizei n, GLuint *textures); +extern void glGetBooleanv (GLenum pname, GLboolean *params); +extern void glGetClipPlane (GLenum plane, GLdouble *equation); +extern void glGetColorTable (GLenum target, GLenum format, GLenum type, GLvoid *table); +extern void glGetColorTableParameterfv (GLenum target, GLenum pname, GLfloat *params); +extern void glGetColorTableParameteriv (GLenum target, GLenum pname, GLint *params); +extern void glGetConvolutionFilter (GLenum target, GLenum format, GLenum type, GLvoid *image); +extern void glGetConvolutionParameterfv (GLenum target, GLenum pname, GLfloat *params); +extern void glGetConvolutionParameteriv (GLenum target, GLenum pname, GLint *params); +extern void glGetDoublev (GLenum pname, GLdouble *params); +extern GLenum glGetError (void); +extern void glGetFloatv (GLenum pname, GLfloat *params); +extern void glGetHistogram (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +extern void glGetHistogramParameterfv (GLenum target, GLenum pname, GLfloat *params); +extern void glGetHistogramParameteriv (GLenum target, GLenum pname, GLint *params); +extern void glGetIntegerv (GLenum pname, GLint *params); +extern void glGetLightfv (GLenum light, GLenum pname, GLfloat *params); +extern void glGetLightiv (GLenum light, GLenum pname, GLint *params); +extern void glGetMapdv (GLenum target, GLenum query, GLdouble *v); +extern void glGetMapfv (GLenum target, GLenum query, GLfloat *v); +extern void glGetMapiv (GLenum target, GLenum query, GLint *v); +extern void glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params); +extern void glGetMaterialiv (GLenum face, GLenum pname, GLint *params); +extern void glGetMinmax (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +extern void glGetMinmaxParameterfv (GLenum target, GLenum pname, GLfloat *params); +extern void glGetMinmaxParameteriv (GLenum target, GLenum pname, GLint *params); +extern void glGetPixelMapfv (GLenum map, GLfloat *values); +extern void glGetPixelMapuiv (GLenum map, GLuint *values); +extern void glGetPixelMapusv (GLenum map, GLushort *values); +extern void glGetPointerv (GLenum pname, GLvoid **params); +extern void glGetPolygonStipple (GLubyte *mask); +extern void glGetSeparableFilter (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); +extern const GLubyte *glGetString (GLenum name); +extern void glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params); +extern void glGetTexEnviv (GLenum target, GLenum pname, GLint *params); +extern void glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params); +extern void glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params); +extern void glGetTexGeniv (GLenum coord, GLenum pname, GLint *params); +extern void glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); +extern void glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); +extern void glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); +extern void glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); +extern void glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); +extern void glHint (GLenum target, GLenum mode); +extern void glHistogram (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +extern void glIndexMask (GLuint mask); +extern void glIndexPointer (GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glIndexd (GLdouble c); +extern void glIndexdv (const GLdouble *c); +extern void glIndexf (GLfloat c); +extern void glIndexfv (const GLfloat *c); +extern void glIndexi (GLint c); +extern void glIndexiv (const GLint *c); +extern void glIndexs (GLshort c); +extern void glIndexsv (const GLshort *c); +extern void glIndexub (GLubyte c); +extern void glIndexubv (const GLubyte *c); +extern void glInitNames (void); +extern void glInterleavedArrays (GLenum format, GLsizei stride, const GLvoid *pointer); +extern GLboolean glIsEnabled (GLenum cap); +extern GLboolean glIsList (GLuint list); +extern GLboolean glIsTexture (GLuint texture); +extern void glLightModelf (GLenum pname, GLfloat param); +extern void glLightModelfv (GLenum pname, const GLfloat *params); +extern void glLightModeli (GLenum pname, GLint param); +extern void glLightModeliv (GLenum pname, const GLint *params); +extern void glLightf (GLenum light, GLenum pname, GLfloat param); +extern void glLightfv (GLenum light, GLenum pname, const GLfloat *params); +extern void glLighti (GLenum light, GLenum pname, GLint param); +extern void glLightiv (GLenum light, GLenum pname, const GLint *params); +extern void glLineStipple (GLint factor, GLushort pattern); +extern void glLineWidth (GLfloat width); +extern void glListBase (GLuint base); +extern void glLoadIdentity (void); +extern void glLoadMatrixd (const GLdouble *m); +extern void glLoadMatrixf (const GLfloat *m); +extern void glLoadName (GLuint name); +extern void glLogicOp (GLenum opcode); +extern void glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +extern void glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +extern void glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +extern void glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +extern void glMapGrid1d (GLint un, GLdouble u1, GLdouble u2); +extern void glMapGrid1f (GLint un, GLfloat u1, GLfloat u2); +extern void glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); +extern void glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); +extern void glMaterialf (GLenum face, GLenum pname, GLfloat param); +extern void glMaterialfv (GLenum face, GLenum pname, const GLfloat *params); +extern void glMateriali (GLenum face, GLenum pname, GLint param); +extern void glMaterialiv (GLenum face, GLenum pname, const GLint *params); +extern void glMatrixMode (GLenum mode); +extern void glMinmax (GLenum target, GLenum internalformat, GLboolean sink); +extern void glMultMatrixd (const GLdouble *m); +extern void glMultMatrixf (const GLfloat *m); +extern void glNewList (GLuint list, GLenum mode); +extern void glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz); +extern void glNormal3bv (const GLbyte *v); +extern void glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz); +extern void glNormal3dv (const GLdouble *v); +extern void glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz); +extern void glNormal3fv (const GLfloat *v); +extern void glNormal3i (GLint nx, GLint ny, GLint nz); +extern void glNormal3iv (const GLint *v); +extern void glNormal3s (GLshort nx, GLshort ny, GLshort nz); +extern void glNormal3sv (const GLshort *v); +extern void glNormalPointer (GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +extern void glPassThrough (GLfloat token); +extern void glPixelMapfv (GLenum map, GLint mapsize, const GLfloat *values); +extern void glPixelMapuiv (GLenum map, GLint mapsize, const GLuint *values); +extern void glPixelMapusv (GLenum map, GLint mapsize, const GLushort *values); +extern void glPixelStoref (GLenum pname, GLfloat param); +extern void glPixelStorei (GLenum pname, GLint param); +extern void glPixelTransferf (GLenum pname, GLfloat param); +extern void glPixelTransferi (GLenum pname, GLint param); +extern void glPixelZoom (GLfloat xfactor, GLfloat yfactor); +extern void glPointSize (GLfloat size); +extern void glPolygonMode (GLenum face, GLenum mode); +extern void glPolygonOffset (GLfloat factor, GLfloat units); +extern void glPolygonStipple (const GLubyte *mask); +extern void glPopAttrib (void); +extern void glPopClientAttrib (void); +extern void glPopMatrix (void); +extern void glPopName (void); +extern void glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities); +extern void glPushAttrib (GLbitfield mask); +extern void glPushClientAttrib (GLbitfield mask); +extern void glPushMatrix (void); +extern void glPushName (GLuint name); +extern void glRasterPos2d (GLdouble x, GLdouble y); +extern void glRasterPos2dv (const GLdouble *v); +extern void glRasterPos2f (GLfloat x, GLfloat y); +extern void glRasterPos2fv (const GLfloat *v); +extern void glRasterPos2i (GLint x, GLint y); +extern void glRasterPos2iv (const GLint *v); +extern void glRasterPos2s (GLshort x, GLshort y); +extern void glRasterPos2sv (const GLshort *v); +extern void glRasterPos3d (GLdouble x, GLdouble y, GLdouble z); +extern void glRasterPos3dv (const GLdouble *v); +extern void glRasterPos3f (GLfloat x, GLfloat y, GLfloat z); +extern void glRasterPos3fv (const GLfloat *v); +extern void glRasterPos3i (GLint x, GLint y, GLint z); +extern void glRasterPos3iv (const GLint *v); +extern void glRasterPos3s (GLshort x, GLshort y, GLshort z); +extern void glRasterPos3sv (const GLshort *v); +extern void glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glRasterPos4dv (const GLdouble *v); +extern void glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glRasterPos4fv (const GLfloat *v); +extern void glRasterPos4i (GLint x, GLint y, GLint z, GLint w); +extern void glRasterPos4iv (const GLint *v); +extern void glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w); +extern void glRasterPos4sv (const GLshort *v); +extern void glReadBuffer (GLenum mode); +extern void glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); +extern void glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); +extern void glRectdv (const GLdouble *v1, const GLdouble *v2); +extern void glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); +extern void glRectfv (const GLfloat *v1, const GLfloat *v2); +extern void glRecti (GLint x1, GLint y1, GLint x2, GLint y2); +extern void glRectiv (const GLint *v1, const GLint *v2); +extern void glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2); +extern void glRectsv (const GLshort *v1, const GLshort *v2); +extern GLint glRenderMode (GLenum mode); +extern void glResetHistogram (GLenum target); +extern void glResetMinmax (GLenum target); +extern void glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +extern void glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +extern void glScaled (GLdouble x, GLdouble y, GLdouble z); +extern void glScalef (GLfloat x, GLfloat y, GLfloat z); +extern void glScissor (GLint x, GLint y, GLsizei width, GLsizei height); +extern void glSelectBuffer (GLsizei size, GLuint *buffer); +extern void glSeparableFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); +extern void glShadeModel (GLenum mode); +extern void glStencilFunc (GLenum func, GLint ref, GLuint mask); +extern void glStencilMask (GLuint mask); +extern void glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); +extern void glTexCoord1d (GLdouble s); +extern void glTexCoord1dv (const GLdouble *v); +extern void glTexCoord1f (GLfloat s); +extern void glTexCoord1fv (const GLfloat *v); +extern void glTexCoord1i (GLint s); +extern void glTexCoord1iv (const GLint *v); +extern void glTexCoord1s (GLshort s); +extern void glTexCoord1sv (const GLshort *v); +extern void glTexCoord2d (GLdouble s, GLdouble t); +extern void glTexCoord2dv (const GLdouble *v); +extern void glTexCoord2f (GLfloat s, GLfloat t); +extern void glTexCoord2fv (const GLfloat *v); +extern void glTexCoord2i (GLint s, GLint t); +extern void glTexCoord2iv (const GLint *v); +extern void glTexCoord2s (GLshort s, GLshort t); +extern void glTexCoord2sv (const GLshort *v); +extern void glTexCoord3d (GLdouble s, GLdouble t, GLdouble r); +extern void glTexCoord3dv (const GLdouble *v); +extern void glTexCoord3f (GLfloat s, GLfloat t, GLfloat r); +extern void glTexCoord3fv (const GLfloat *v); +extern void glTexCoord3i (GLint s, GLint t, GLint r); +extern void glTexCoord3iv (const GLint *v); +extern void glTexCoord3s (GLshort s, GLshort t, GLshort r); +extern void glTexCoord3sv (const GLshort *v); +extern void glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q); +extern void glTexCoord4dv (const GLdouble *v); +extern void glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q); +extern void glTexCoord4fv (const GLfloat *v); +extern void glTexCoord4i (GLint s, GLint t, GLint r, GLint q); +extern void glTexCoord4iv (const GLint *v); +extern void glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q); +extern void glTexCoord4sv (const GLshort *v); +extern void glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glTexEnvf (GLenum target, GLenum pname, GLfloat param); +extern void glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params); +extern void glTexEnvi (GLenum target, GLenum pname, GLint param); +extern void glTexEnviv (GLenum target, GLenum pname, const GLint *params); +extern void glTexGend (GLenum coord, GLenum pname, GLdouble param); +extern void glTexGendv (GLenum coord, GLenum pname, const GLdouble *params); +extern void glTexGenf (GLenum coord, GLenum pname, GLfloat param); +extern void glTexGenfv (GLenum coord, GLenum pname, const GLfloat *params); +extern void glTexGeni (GLenum coord, GLenum pname, GLint param); +extern void glTexGeniv (GLenum coord, GLenum pname, const GLint *params); +extern void glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +extern void glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +extern void glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +extern void glTexParameterf (GLenum target, GLenum pname, GLfloat param); +extern void glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); +extern void glTexParameteri (GLenum target, GLenum pname, GLint param); +extern void glTexParameteriv (GLenum target, GLenum pname, const GLint *params); +extern void glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); +extern void glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +extern void glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +extern void glTranslated (GLdouble x, GLdouble y, GLdouble z); +extern void glTranslatef (GLfloat x, GLfloat y, GLfloat z); +extern void glVertex2d (GLdouble x, GLdouble y); +extern void glVertex2dv (const GLdouble *v); +extern void glVertex2f (GLfloat x, GLfloat y); +extern void glVertex2fv (const GLfloat *v); +extern void glVertex2i (GLint x, GLint y); +extern void glVertex2iv (const GLint *v); +extern void glVertex2s (GLshort x, GLshort y); +extern void glVertex2sv (const GLshort *v); +extern void glVertex3d (GLdouble x, GLdouble y, GLdouble z); +extern void glVertex3dv (const GLdouble *v); +extern void glVertex3f (GLfloat x, GLfloat y, GLfloat z); +extern void glVertex3fv (const GLfloat *v); +extern void glVertex3i (GLint x, GLint y, GLint z); +extern void glVertex3iv (const GLint *v); +extern void glVertex3s (GLshort x, GLshort y, GLshort z); +extern void glVertex3sv (const GLshort *v); +extern void glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glVertex4dv (const GLdouble *v); +extern void glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glVertex4fv (const GLfloat *v); +extern void glVertex4i (GLint x, GLint y, GLint z, GLint w); +extern void glVertex4iv (const GLint *v); +extern void glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w); +extern void glVertex4sv (const GLshort *v); +extern void glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glViewport (GLint x, GLint y, GLsizei width, GLsizei height); + +extern void glSampleCoverage (GLclampf value, GLboolean invert); + +extern void glLoadTransposeMatrixf (const GLfloat *m); +extern void glLoadTransposeMatrixd (const GLdouble *m); +extern void glMultTransposeMatrixf (const GLfloat *m); +extern void glMultTransposeMatrixd (const GLdouble *m); + +extern void glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexImage1D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +extern void glGetCompressedTexImage (GLenum target, GLint lod, GLvoid *img); + +extern void glActiveTexture (GLenum texture); +extern void glClientActiveTexture (GLenum texture); +extern void glMultiTexCoord1d (GLenum target, GLdouble s); +extern void glMultiTexCoord1dv (GLenum target, const GLdouble *v); +extern void glMultiTexCoord1f (GLenum target, GLfloat s); +extern void glMultiTexCoord1fv (GLenum target, const GLfloat *v); +extern void glMultiTexCoord1i (GLenum target, GLint s); +extern void glMultiTexCoord1iv (GLenum target, const GLint *v); +extern void glMultiTexCoord1s (GLenum target, GLshort s); +extern void glMultiTexCoord1sv (GLenum target, const GLshort *v); +extern void glMultiTexCoord2d (GLenum target, GLdouble s, GLdouble t); +extern void glMultiTexCoord2dv (GLenum target, const GLdouble *v); +extern void glMultiTexCoord2f (GLenum target, GLfloat s, GLfloat t); +extern void glMultiTexCoord2fv (GLenum target, const GLfloat *v); +extern void glMultiTexCoord2i (GLenum target, GLint s, GLint t); +extern void glMultiTexCoord2iv (GLenum target, const GLint *v); +extern void glMultiTexCoord2s (GLenum target, GLshort s, GLshort t); +extern void glMultiTexCoord2sv (GLenum target, const GLshort *v); +extern void glMultiTexCoord3d (GLenum target, GLdouble s, GLdouble t, GLdouble r); +extern void glMultiTexCoord3dv (GLenum target, const GLdouble *v); +extern void glMultiTexCoord3f (GLenum target, GLfloat s, GLfloat t, GLfloat r); +extern void glMultiTexCoord3fv (GLenum target, const GLfloat *v); +extern void glMultiTexCoord3i (GLenum target, GLint s, GLint t, GLint r); +extern void glMultiTexCoord3iv (GLenum target, const GLint *v); +extern void glMultiTexCoord3s (GLenum target, GLshort s, GLshort t, GLshort r); +extern void glMultiTexCoord3sv (GLenum target, const GLshort *v); +extern void glMultiTexCoord4d (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +extern void glMultiTexCoord4dv (GLenum target, const GLdouble *v); +extern void glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +extern void glMultiTexCoord4fv (GLenum target, const GLfloat *v); +extern void glMultiTexCoord4i (GLenum target, GLint s, GLint t, GLint r, GLint q); +extern void glMultiTexCoord4iv (GLenum target, const GLint *v); +extern void glMultiTexCoord4s (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +extern void glMultiTexCoord4sv (GLenum target, const GLshort *v); + +extern void glFogCoordf (GLfloat coord); +extern void glFogCoordfv (const GLfloat *coord); +extern void glFogCoordd (GLdouble coord); +extern void glFogCoorddv (const GLdouble *coord); +extern void glFogCoordPointer (GLenum type, GLsizei stride, const GLvoid *pointer); + +extern void glSecondaryColor3b (GLbyte red, GLbyte green, GLbyte blue); +extern void glSecondaryColor3bv (const GLbyte *v); +extern void glSecondaryColor3d (GLdouble red, GLdouble green, GLdouble blue); +extern void glSecondaryColor3dv (const GLdouble *v); +extern void glSecondaryColor3f (GLfloat red, GLfloat green, GLfloat blue); +extern void glSecondaryColor3fv (const GLfloat *v); +extern void glSecondaryColor3i (GLint red, GLint green, GLint blue); +extern void glSecondaryColor3iv (const GLint *v); +extern void glSecondaryColor3s (GLshort red, GLshort green, GLshort blue); +extern void glSecondaryColor3sv (const GLshort *v); +extern void glSecondaryColor3ub (GLubyte red, GLubyte green, GLubyte blue); +extern void glSecondaryColor3ubv (const GLubyte *v); +extern void glSecondaryColor3ui (GLuint red, GLuint green, GLuint blue); +extern void glSecondaryColor3uiv (const GLuint *v); +extern void glSecondaryColor3us (GLushort red, GLushort green, GLushort blue); +extern void glSecondaryColor3usv (const GLushort *v); +extern void glSecondaryColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + +extern void glPointParameterf (GLenum pname, GLfloat param); +extern void glPointParameterfv (GLenum pname, const GLfloat *params); +extern void glPointParameteri (GLenum pname, GLint param); +extern void glPointParameteriv (GLenum pname, const GLint *params); + +extern void glBlendFuncSeparate (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); + +extern void glMultiDrawArrays (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +extern void glMultiDrawElements (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount); + +extern void glWindowPos2d (GLdouble x, GLdouble y); +extern void glWindowPos2dv (const GLdouble *v); +extern void glWindowPos2f (GLfloat x, GLfloat y); +extern void glWindowPos2fv (const GLfloat *v); +extern void glWindowPos2i (GLint x, GLint y); +extern void glWindowPos2iv (const GLint *v); +extern void glWindowPos2s (GLshort x, GLshort y); +extern void glWindowPos2sv (const GLshort *v); +extern void glWindowPos3d (GLdouble x, GLdouble y, GLdouble z); +extern void glWindowPos3dv (const GLdouble *v); +extern void glWindowPos3f (GLfloat x, GLfloat y, GLfloat z); +extern void glWindowPos3fv (const GLfloat *v); +extern void glWindowPos3i (GLint x, GLint y, GLint z); +extern void glWindowPos3iv (const GLint *v); +extern void glWindowPos3s (GLshort x, GLshort y, GLshort z); +extern void glWindowPos3sv (const GLshort *v); + +extern void glGenQueries (GLsizei n, GLuint *ids); +extern void glDeleteQueries (GLsizei n, const GLuint *ids); +extern GLboolean glIsQuery (GLuint id); +extern void glBeginQuery (GLenum target, GLuint id); +extern void glEndQuery (GLenum target); +extern void glGetQueryiv (GLenum target, GLenum pname, GLint *params); +extern void glGetQueryObjectiv (GLuint id, GLenum pname, GLint *params); +extern void glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); + +extern void glBindBuffer (GLenum target, GLuint buffer); +extern void glDeleteBuffers (GLsizei n, const GLuint *buffers); +extern void glGenBuffers (GLsizei n, GLuint *buffers); +extern GLboolean glIsBuffer (GLuint buffer); +extern void glBufferData (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); +extern void glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); +extern void glGetBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); +extern GLvoid *glMapBuffer (GLenum target, GLenum access); +extern GLboolean glUnmapBuffer (GLenum target); +extern void glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); +extern void glGetBufferPointerv (GLenum target, GLenum pname, GLvoid **params); + +extern void glDrawBuffers (GLsizei n, const GLenum *bufs); +extern void glVertexAttrib1d (GLuint index, GLdouble x); +extern void glVertexAttrib1dv (GLuint index, const GLdouble *v); +extern void glVertexAttrib1f (GLuint index, GLfloat x); +extern void glVertexAttrib1fv (GLuint index, const GLfloat *v); +extern void glVertexAttrib1s (GLuint index, GLshort x); +extern void glVertexAttrib1sv (GLuint index, const GLshort *v); +extern void glVertexAttrib2d (GLuint index, GLdouble x, GLdouble y); +extern void glVertexAttrib2dv (GLuint index, const GLdouble *v); +extern void glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); +extern void glVertexAttrib2fv (GLuint index, const GLfloat *v); +extern void glVertexAttrib2s (GLuint index, GLshort x, GLshort y); +extern void glVertexAttrib2sv (GLuint index, const GLshort *v); +extern void glVertexAttrib3d (GLuint index, GLdouble x, GLdouble y, GLdouble z); +extern void glVertexAttrib3dv (GLuint index, const GLdouble *v); +extern void glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); +extern void glVertexAttrib3fv (GLuint index, const GLfloat *v); +extern void glVertexAttrib3s (GLuint index, GLshort x, GLshort y, GLshort z); +extern void glVertexAttrib3sv (GLuint index, const GLshort *v); +extern void glVertexAttrib4Nbv (GLuint index, const GLbyte *v); +extern void glVertexAttrib4Niv (GLuint index, const GLint *v); +extern void glVertexAttrib4Nsv (GLuint index, const GLshort *v); +extern void glVertexAttrib4Nub (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +extern void glVertexAttrib4Nubv (GLuint index, const GLubyte *v); +extern void glVertexAttrib4Nuiv (GLuint index, const GLuint *v); +extern void glVertexAttrib4Nusv (GLuint index, const GLushort *v); +extern void glVertexAttrib4bv (GLuint index, const GLbyte *v); +extern void glVertexAttrib4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glVertexAttrib4dv (GLuint index, const GLdouble *v); +extern void glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glVertexAttrib4fv (GLuint index, const GLfloat *v); +extern void glVertexAttrib4iv (GLuint index, const GLint *v); +extern void glVertexAttrib4s (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +extern void glVertexAttrib4sv (GLuint index, const GLshort *v); +extern void glVertexAttrib4ubv (GLuint index, const GLubyte *v); +extern void glVertexAttrib4uiv (GLuint index, const GLuint *v); +extern void glVertexAttrib4usv (GLuint index, const GLushort *v); +extern void glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +extern void glEnableVertexAttribArray (GLuint index); +extern void glDisableVertexAttribArray (GLuint index); +extern void glGetVertexAttribdv (GLuint index, GLenum pname, GLdouble *params); +extern void glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); +extern void glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); +extern void glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid **pointer); +extern void glDeleteShader (GLuint shader); +extern void glDetachShader (GLuint program, GLuint shader); +extern GLuint glCreateShader (GLenum type); +extern void glShaderSource (GLuint shader, GLsizei count, const GLchar* const *string, const GLint *length); +extern void glCompileShader (GLuint shader); +extern GLuint glCreateProgram (void); +extern void glAttachShader (GLuint program, GLuint shader); +extern void glLinkProgram (GLuint program); +extern void glUseProgram (GLuint program); +extern void glDeleteProgram (GLuint program); +extern void glValidateProgram (GLuint program); +extern void glUniform1f (GLint location, GLfloat v0); +extern void glUniform2f (GLint location, GLfloat v0, GLfloat v1); +extern void glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +extern void glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +extern void glUniform1i (GLint location, GLint v0); +extern void glUniform2i (GLint location, GLint v0, GLint v1); +extern void glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); +extern void glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +extern void glUniform1fv (GLint location, GLsizei count, const GLfloat *value); +extern void glUniform2fv (GLint location, GLsizei count, const GLfloat *value); +extern void glUniform3fv (GLint location, GLsizei count, const GLfloat *value); +extern void glUniform4fv (GLint location, GLsizei count, const GLfloat *value); +extern void glUniform1iv (GLint location, GLsizei count, const GLint *value); +extern void glUniform2iv (GLint location, GLsizei count, const GLint *value); +extern void glUniform3iv (GLint location, GLsizei count, const GLint *value); +extern void glUniform4iv (GLint location, GLsizei count, const GLint *value); +extern void glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern GLboolean glIsShader (GLuint shader); +extern GLboolean glIsProgram (GLuint program); +extern void glGetShaderiv (GLuint shader, GLenum pname, GLint *params); +extern void glGetProgramiv (GLuint program, GLenum pname, GLint *params); +extern void glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +extern void glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +extern void glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +extern GLint glGetUniformLocation (GLuint program, const GLchar *name); +extern void glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +extern void glGetUniformfv (GLuint program, GLint location, GLfloat *params); +extern void glGetUniformiv (GLuint program, GLint location, GLint *params); +extern void glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +extern void glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); +extern void glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +extern GLint glGetAttribLocation (GLuint program, const GLchar *name); +extern void glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); +extern void glStencilOpSeparate (GLenum face, GLenum fail, GLenum zfail, GLenum zpass); +extern void glStencilMaskSeparate (GLenum face, GLuint mask); + +extern void glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + + +#endif /* GL_GLEXT_FUNCTION_POINTERS */ + +#ifdef __cplusplus +} +#endif + +#endif /* __gl_h_ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gl3.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gl3.h" new file mode 100644 index 0000000..b82689f --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gl3.h" @@ -0,0 +1,2913 @@ +#ifndef __gl3_h_ +#define __gl3_h_ + +/* Allow multiple GL version headers to be included when we're working + with modules. */ +#ifdef __has_feature +# if __has_feature(modules) +# ifndef GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED +# define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED 1 +# endif +# endif +#endif + +#if defined __gl_h_ && !(defined GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED) +#warning gl.h and gl3.h are both included. Compiler will not invoke errors if using removed OpenGL functionality. +#endif + +#ifdef _CGLMACRO_H +# ifndef __has_feature +# define __has_feature(X) 0 +# endif +# if !__has_feature(modules) +# error Can not include both gl3.h and CGLMacro.h simultaneously +# endif +#endif + +/* +** Copyright (c) 2007-2012 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +/* This is a draft release of gl3.h, a header for use with OpenGL 3.1, and + * 3.2 and later core profile implementations. The current version is + * available at http://www.opengl.org/registry/ . Please don't package + * gl3.h for release with other software until it's out of draft status. + * The structure of the file may change significantly, and the details + * will probably change slightly as we make sure exactly the right set + * of interfaces is included. + * + * gl3.h last updated on $Date: 2012-01-26 02:57:23 -0800 (Thu, 26 Jan 2012) $ + * + * RELEASE NOTES - 2012/01/26 + * + * gl3.h should be placed under a directory 'GL3' and included as + * ''. + * + * gl3.h is supposed to only include APIs in a OpenGL 3.1 (without + * GL_ARB_compatibility) or OpenGL 3.2 or later core profile + * implementation, as well as interfaces for newer ARB extensions which + * can be supported by the core profile. It does not, and never will + * include functionality removed from the core profile, such as + * fixed-function vertex and fragment processing. + * + * Implementations of OpenGL 3.1 supporting the optional + * GL_ARB_compatibility extension continue to provide that functionality, + * as do implementations of the OpenGL 3.2+ compatibility profiles, and + * source code requiring it should use the traditional and + * headers instead of . + * + * It is not possible to #include both and either of + * or in the same source file. + * + * We welcome feedback on gl3.h. Please register for the Khronos Bugzilla + * (www.khronos.org/bugzilla) and file issues there under product + * "OpenGL", category "Registry". Feedback on the opengl.org forums + * may not be responded to in a timely fashion. + */ + +/* Function declaration macros - to move into glplatform.h */ + +#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) +#define WIN32_LEAN_AND_MEAN 1 +#include +#endif + + +#if defined(__APPLE__) +#define GL3_PROTOTYPES +#endif + +#ifndef APIENTRY +#define APIENTRY +#endif +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * +#endif +#ifndef GLAPI +#define GLAPI extern +#endif + +/* Base GL types */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/*************************************************************/ + +#ifndef GL_VERSION_1_1 +/* AttribMask */ +#define GL_DEPTH_BUFFER_BIT 0x00000100 +#define GL_STENCIL_BUFFER_BIT 0x00000400 +#define GL_COLOR_BUFFER_BIT 0x00004000 +/* Boolean */ +#define GL_FALSE 0 +#define GL_TRUE 1 +/* BeginMode */ +#define GL_POINTS 0x0000 +#define GL_LINES 0x0001 +#define GL_LINE_LOOP 0x0002 +#define GL_LINE_STRIP 0x0003 +#define GL_TRIANGLES 0x0004 +#define GL_TRIANGLE_STRIP 0x0005 +#define GL_TRIANGLE_FAN 0x0006 +/* AlphaFunction */ +#define GL_NEVER 0x0200 +#define GL_LESS 0x0201 +#define GL_EQUAL 0x0202 +#define GL_LEQUAL 0x0203 +#define GL_GREATER 0x0204 +#define GL_NOTEQUAL 0x0205 +#define GL_GEQUAL 0x0206 +#define GL_ALWAYS 0x0207 +/* BlendingFactorDest */ +#define GL_ZERO 0 +#define GL_ONE 1 +#define GL_SRC_COLOR 0x0300 +#define GL_ONE_MINUS_SRC_COLOR 0x0301 +#define GL_SRC_ALPHA 0x0302 +#define GL_ONE_MINUS_SRC_ALPHA 0x0303 +#define GL_DST_ALPHA 0x0304 +#define GL_ONE_MINUS_DST_ALPHA 0x0305 +/* BlendingFactorSrc */ +#define GL_DST_COLOR 0x0306 +#define GL_ONE_MINUS_DST_COLOR 0x0307 +#define GL_SRC_ALPHA_SATURATE 0x0308 +/* DrawBufferMode */ +#define GL_NONE 0 +#define GL_FRONT_LEFT 0x0400 +#define GL_FRONT_RIGHT 0x0401 +#define GL_BACK_LEFT 0x0402 +#define GL_BACK_RIGHT 0x0403 +#define GL_FRONT 0x0404 +#define GL_BACK 0x0405 +#define GL_LEFT 0x0406 +#define GL_RIGHT 0x0407 +#define GL_FRONT_AND_BACK 0x0408 +/* ErrorCode */ +#define GL_NO_ERROR 0 +#define GL_INVALID_ENUM 0x0500 +#define GL_INVALID_VALUE 0x0501 +#define GL_INVALID_OPERATION 0x0502 +#define GL_OUT_OF_MEMORY 0x0505 +/* FrontFaceDirection */ +#define GL_CW 0x0900 +#define GL_CCW 0x0901 +/* GetPName */ +#define GL_POINT_SIZE 0x0B11 +#define GL_POINT_SIZE_RANGE 0x0B12 +#define GL_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_LINE_SMOOTH 0x0B20 +#define GL_LINE_WIDTH 0x0B21 +#define GL_LINE_WIDTH_RANGE 0x0B22 +#define GL_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_POLYGON_MODE 0x0B40 +#define GL_POLYGON_SMOOTH 0x0B41 +#define GL_CULL_FACE 0x0B44 +#define GL_CULL_FACE_MODE 0x0B45 +#define GL_FRONT_FACE 0x0B46 +#define GL_DEPTH_RANGE 0x0B70 +#define GL_DEPTH_TEST 0x0B71 +#define GL_DEPTH_WRITEMASK 0x0B72 +#define GL_DEPTH_CLEAR_VALUE 0x0B73 +#define GL_DEPTH_FUNC 0x0B74 +#define GL_STENCIL_TEST 0x0B90 +#define GL_STENCIL_CLEAR_VALUE 0x0B91 +#define GL_STENCIL_FUNC 0x0B92 +#define GL_STENCIL_VALUE_MASK 0x0B93 +#define GL_STENCIL_FAIL 0x0B94 +#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 +#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 +#define GL_STENCIL_REF 0x0B97 +#define GL_STENCIL_WRITEMASK 0x0B98 +#define GL_VIEWPORT 0x0BA2 +#define GL_DITHER 0x0BD0 +#define GL_BLEND_DST 0x0BE0 +#define GL_BLEND_SRC 0x0BE1 +#define GL_BLEND 0x0BE2 +#define GL_LOGIC_OP_MODE 0x0BF0 +#define GL_COLOR_LOGIC_OP 0x0BF2 +#define GL_DRAW_BUFFER 0x0C01 +#define GL_READ_BUFFER 0x0C02 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_COLOR_CLEAR_VALUE 0x0C22 +#define GL_COLOR_WRITEMASK 0x0C23 +#define GL_DOUBLEBUFFER 0x0C32 +#define GL_STEREO 0x0C33 +#define GL_LINE_SMOOTH_HINT 0x0C52 +#define GL_POLYGON_SMOOTH_HINT 0x0C53 +#define GL_UNPACK_SWAP_BYTES 0x0CF0 +#define GL_UNPACK_LSB_FIRST 0x0CF1 +#define GL_UNPACK_ROW_LENGTH 0x0CF2 +#define GL_UNPACK_SKIP_ROWS 0x0CF3 +#define GL_UNPACK_SKIP_PIXELS 0x0CF4 +#define GL_UNPACK_ALIGNMENT 0x0CF5 +#define GL_PACK_SWAP_BYTES 0x0D00 +#define GL_PACK_LSB_FIRST 0x0D01 +#define GL_PACK_ROW_LENGTH 0x0D02 +#define GL_PACK_SKIP_ROWS 0x0D03 +#define GL_PACK_SKIP_PIXELS 0x0D04 +#define GL_PACK_ALIGNMENT 0x0D05 +#define GL_MAX_TEXTURE_SIZE 0x0D33 +#define GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GL_SUBPIXEL_BITS 0x0D50 +#define GL_TEXTURE_1D 0x0DE0 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +#define GL_POLYGON_OFFSET_POINT 0x2A01 +#define GL_POLYGON_OFFSET_LINE 0x2A02 +#define GL_POLYGON_OFFSET_FILL 0x8037 +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_TEXTURE_BINDING_1D 0x8068 +#define GL_TEXTURE_BINDING_2D 0x8069 +/* GetTextureParameter */ +#define GL_TEXTURE_WIDTH 0x1000 +#define GL_TEXTURE_HEIGHT 0x1001 +#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 +#define GL_TEXTURE_BORDER_COLOR 0x1004 +#define GL_TEXTURE_RED_SIZE 0x805C +#define GL_TEXTURE_GREEN_SIZE 0x805D +#define GL_TEXTURE_BLUE_SIZE 0x805E +#define GL_TEXTURE_ALPHA_SIZE 0x805F +/* HintMode */ +#define GL_DONT_CARE 0x1100 +#define GL_FASTEST 0x1101 +#define GL_NICEST 0x1102 +/* DataType */ +#define GL_BYTE 0x1400 +#define GL_UNSIGNED_BYTE 0x1401 +#define GL_SHORT 0x1402 +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_INT 0x1404 +#define GL_UNSIGNED_INT 0x1405 +#define GL_FLOAT 0x1406 +#define GL_DOUBLE 0x140A +/* LogicOp */ +#define GL_CLEAR 0x1500 +#define GL_AND 0x1501 +#define GL_AND_REVERSE 0x1502 +#define GL_COPY 0x1503 +#define GL_AND_INVERTED 0x1504 +#define GL_NOOP 0x1505 +#define GL_XOR 0x1506 +#define GL_OR 0x1507 +#define GL_NOR 0x1508 +#define GL_EQUIV 0x1509 +#define GL_INVERT 0x150A +#define GL_OR_REVERSE 0x150B +#define GL_COPY_INVERTED 0x150C +#define GL_OR_INVERTED 0x150D +#define GL_NAND 0x150E +#define GL_SET 0x150F +/* MatrixMode (for gl3.h, FBO attachment type) */ +#define GL_TEXTURE 0x1702 +/* PixelCopyType */ +#define GL_COLOR 0x1800 +#define GL_DEPTH 0x1801 +#define GL_STENCIL 0x1802 +/* PixelFormat */ +#define GL_STENCIL_INDEX 0x1901 +#define GL_DEPTH_COMPONENT 0x1902 +#define GL_RED 0x1903 +#define GL_GREEN 0x1904 +#define GL_BLUE 0x1905 +#define GL_ALPHA 0x1906 +#define GL_RGB 0x1907 +#define GL_RGBA 0x1908 +/* PolygonMode */ +#define GL_POINT 0x1B00 +#define GL_LINE 0x1B01 +#define GL_FILL 0x1B02 +/* StencilOp */ +#define GL_KEEP 0x1E00 +#define GL_REPLACE 0x1E01 +#define GL_INCR 0x1E02 +#define GL_DECR 0x1E03 +/* StringName */ +#define GL_VENDOR 0x1F00 +#define GL_RENDERER 0x1F01 +#define GL_VERSION 0x1F02 +#define GL_EXTENSIONS 0x1F03 +/* TextureMagFilter */ +#define GL_NEAREST 0x2600 +#define GL_LINEAR 0x2601 +/* TextureMinFilter */ +#define GL_NEAREST_MIPMAP_NEAREST 0x2700 +#define GL_LINEAR_MIPMAP_NEAREST 0x2701 +#define GL_NEAREST_MIPMAP_LINEAR 0x2702 +#define GL_LINEAR_MIPMAP_LINEAR 0x2703 +/* TextureParameterName */ +#define GL_TEXTURE_MAG_FILTER 0x2800 +#define GL_TEXTURE_MIN_FILTER 0x2801 +#define GL_TEXTURE_WRAP_S 0x2802 +#define GL_TEXTURE_WRAP_T 0x2803 +/* TextureTarget */ +#define GL_PROXY_TEXTURE_1D 0x8063 +#define GL_PROXY_TEXTURE_2D 0x8064 +/* TextureWrapMode */ +#define GL_REPEAT 0x2901 +/* PixelInternalFormat */ +#define GL_R3_G3_B2 0x2A10 +#define GL_RGB4 0x804F +#define GL_RGB5 0x8050 +#define GL_RGB8 0x8051 +#define GL_RGB10 0x8052 +#define GL_RGB12 0x8053 +#define GL_RGB16 0x8054 +#define GL_RGBA2 0x8055 +#define GL_RGBA4 0x8056 +#define GL_RGB5_A1 0x8057 +#define GL_RGBA8 0x8058 +#define GL_RGB10_A2 0x8059 +#define GL_RGBA12 0x805A +#define GL_RGBA16 0x805B +#endif + +#ifndef GL_VERSION_1_2 +#define GL_UNSIGNED_BYTE_3_3_2 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2 0x8036 +#define GL_TEXTURE_BINDING_3D 0x806A +#define GL_PACK_SKIP_IMAGES 0x806B +#define GL_PACK_IMAGE_HEIGHT 0x806C +#define GL_UNPACK_SKIP_IMAGES 0x806D +#define GL_UNPACK_IMAGE_HEIGHT 0x806E +#define GL_TEXTURE_3D 0x806F +#define GL_PROXY_TEXTURE_3D 0x8070 +#define GL_TEXTURE_DEPTH 0x8071 +#define GL_TEXTURE_WRAP_R 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE 0x8073 +#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 +#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 +#define GL_BGR 0x80E0 +#define GL_BGRA 0x80E1 +#define GL_MAX_ELEMENTS_VERTICES 0x80E8 +#define GL_MAX_ELEMENTS_INDICES 0x80E9 +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_TEXTURE_MIN_LOD 0x813A +#define GL_TEXTURE_MAX_LOD 0x813B +#define GL_TEXTURE_BASE_LEVEL 0x813C +#define GL_TEXTURE_MAX_LEVEL 0x813D +#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 +#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 +#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E +#endif + +#ifndef GL_ARB_imaging +#define GL_CONSTANT_COLOR 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GL_BLEND_COLOR 0x8005 +#define GL_FUNC_ADD 0x8006 +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +#define GL_BLEND_EQUATION 0x8009 +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B +#endif + +#ifndef GL_VERSION_1_3 +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_ACTIVE_TEXTURE 0x84E0 +#define GL_MULTISAMPLE 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE 0x809F +#define GL_SAMPLE_COVERAGE 0x80A0 +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C +#define GL_COMPRESSED_RGB 0x84ED +#define GL_COMPRESSED_RGBA 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 +#define GL_TEXTURE_COMPRESSED 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 +#define GL_CLAMP_TO_BORDER 0x812D +#endif + +#ifndef GL_VERSION_1_4 +#define GL_BLEND_DST_RGB 0x80C8 +#define GL_BLEND_SRC_RGB 0x80C9 +#define GL_BLEND_DST_ALPHA 0x80CA +#define GL_BLEND_SRC_ALPHA 0x80CB +#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 +#define GL_DEPTH_COMPONENT16 0x81A5 +#define GL_DEPTH_COMPONENT24 0x81A6 +#define GL_DEPTH_COMPONENT32 0x81A7 +#define GL_MIRRORED_REPEAT 0x8370 +#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD +#define GL_TEXTURE_LOD_BIAS 0x8501 +#define GL_INCR_WRAP 0x8507 +#define GL_DECR_WRAP 0x8508 +#define GL_TEXTURE_DEPTH_SIZE 0x884A +#define GL_TEXTURE_COMPARE_MODE 0x884C +#define GL_TEXTURE_COMPARE_FUNC 0x884D +#endif + +#ifndef GL_VERSION_1_5 +#define GL_BUFFER_SIZE 0x8764 +#define GL_BUFFER_USAGE 0x8765 +#define GL_QUERY_COUNTER_BITS 0x8864 +#define GL_CURRENT_QUERY 0x8865 +#define GL_QUERY_RESULT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE 0x8867 +#define GL_ARRAY_BUFFER 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GL_ARRAY_BUFFER_BINDING 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F +#define GL_READ_ONLY 0x88B8 +#define GL_WRITE_ONLY 0x88B9 +#define GL_READ_WRITE 0x88BA +#define GL_BUFFER_ACCESS 0x88BB +#define GL_BUFFER_MAPPED 0x88BC +#define GL_BUFFER_MAP_POINTER 0x88BD +#define GL_STREAM_DRAW 0x88E0 +#define GL_STREAM_READ 0x88E1 +#define GL_STREAM_COPY 0x88E2 +#define GL_STATIC_DRAW 0x88E4 +#define GL_STATIC_READ 0x88E5 +#define GL_STATIC_COPY 0x88E6 +#define GL_DYNAMIC_DRAW 0x88E8 +#define GL_DYNAMIC_READ 0x88E9 +#define GL_DYNAMIC_COPY 0x88EA +#define GL_SAMPLES_PASSED 0x8914 +#endif + +#ifndef GL_VERSION_2_0 +#define GL_BLEND_EQUATION_RGB 0x8009 +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 +#define GL_CURRENT_VERTEX_ATTRIB 0x8626 +#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 +#define GL_STENCIL_BACK_FUNC 0x8800 +#define GL_STENCIL_BACK_FAIL 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 +#define GL_MAX_DRAW_BUFFERS 0x8824 +#define GL_DRAW_BUFFER0 0x8825 +#define GL_DRAW_BUFFER1 0x8826 +#define GL_DRAW_BUFFER2 0x8827 +#define GL_DRAW_BUFFER3 0x8828 +#define GL_DRAW_BUFFER4 0x8829 +#define GL_DRAW_BUFFER5 0x882A +#define GL_DRAW_BUFFER6 0x882B +#define GL_DRAW_BUFFER7 0x882C +#define GL_DRAW_BUFFER8 0x882D +#define GL_DRAW_BUFFER9 0x882E +#define GL_DRAW_BUFFER10 0x882F +#define GL_DRAW_BUFFER11 0x8830 +#define GL_DRAW_BUFFER12 0x8831 +#define GL_DRAW_BUFFER13 0x8832 +#define GL_DRAW_BUFFER14 0x8833 +#define GL_DRAW_BUFFER15 0x8834 +#define GL_BLEND_EQUATION_ALPHA 0x883D +#define GL_MAX_VERTEX_ATTRIBS 0x8869 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A +#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 +#define GL_FRAGMENT_SHADER 0x8B30 +#define GL_VERTEX_SHADER 0x8B31 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A +#define GL_MAX_VARYING_FLOATS 0x8B4B +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D +#define GL_SHADER_TYPE 0x8B4F +#define GL_FLOAT_VEC2 0x8B50 +#define GL_FLOAT_VEC3 0x8B51 +#define GL_FLOAT_VEC4 0x8B52 +#define GL_INT_VEC2 0x8B53 +#define GL_INT_VEC3 0x8B54 +#define GL_INT_VEC4 0x8B55 +#define GL_BOOL 0x8B56 +#define GL_BOOL_VEC2 0x8B57 +#define GL_BOOL_VEC3 0x8B58 +#define GL_BOOL_VEC4 0x8B59 +#define GL_FLOAT_MAT2 0x8B5A +#define GL_FLOAT_MAT3 0x8B5B +#define GL_FLOAT_MAT4 0x8B5C +#define GL_SAMPLER_1D 0x8B5D +#define GL_SAMPLER_2D 0x8B5E +#define GL_SAMPLER_3D 0x8B5F +#define GL_SAMPLER_CUBE 0x8B60 +#define GL_SAMPLER_1D_SHADOW 0x8B61 +#define GL_SAMPLER_2D_SHADOW 0x8B62 +#define GL_DELETE_STATUS 0x8B80 +#define GL_COMPILE_STATUS 0x8B81 +#define GL_LINK_STATUS 0x8B82 +#define GL_VALIDATE_STATUS 0x8B83 +#define GL_INFO_LOG_LENGTH 0x8B84 +#define GL_ATTACHED_SHADERS 0x8B85 +#define GL_ACTIVE_UNIFORMS 0x8B86 +#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 +#define GL_SHADER_SOURCE_LENGTH 0x8B88 +#define GL_ACTIVE_ATTRIBUTES 0x8B89 +#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B +#define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#define GL_CURRENT_PROGRAM 0x8B8D +#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 +#define GL_LOWER_LEFT 0x8CA1 +#define GL_UPPER_LEFT 0x8CA2 +#define GL_STENCIL_BACK_REF 0x8CA3 +#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 +#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 +#endif + +#ifndef GL_VERSION_2_1 +#define GL_PIXEL_PACK_BUFFER 0x88EB +#define GL_PIXEL_UNPACK_BUFFER 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF +#define GL_FLOAT_MAT2x3 0x8B65 +#define GL_FLOAT_MAT2x4 0x8B66 +#define GL_FLOAT_MAT3x2 0x8B67 +#define GL_FLOAT_MAT3x4 0x8B68 +#define GL_FLOAT_MAT4x2 0x8B69 +#define GL_FLOAT_MAT4x3 0x8B6A +#define GL_SRGB 0x8C40 +#define GL_SRGB8 0x8C41 +#define GL_SRGB_ALPHA 0x8C42 +#define GL_SRGB8_ALPHA8 0x8C43 +#define GL_COMPRESSED_SRGB 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 +#endif + +#ifndef GL_VERSION_3_0 +#define GL_COMPARE_REF_TO_TEXTURE 0x884E +#define GL_CLIP_DISTANCE0 0x3000 +#define GL_CLIP_DISTANCE1 0x3001 +#define GL_CLIP_DISTANCE2 0x3002 +#define GL_CLIP_DISTANCE3 0x3003 +#define GL_CLIP_DISTANCE4 0x3004 +#define GL_CLIP_DISTANCE5 0x3005 +#define GL_CLIP_DISTANCE6 0x3006 +#define GL_CLIP_DISTANCE7 0x3007 +#define GL_MAX_CLIP_DISTANCES 0x0D32 +#define GL_MAJOR_VERSION 0x821B +#define GL_MINOR_VERSION 0x821C +#define GL_NUM_EXTENSIONS 0x821D +#define GL_CONTEXT_FLAGS 0x821E +#define GL_COMPRESSED_RED 0x8225 +#define GL_COMPRESSED_RG 0x8226 +#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001 +#define GL_RGBA32F 0x8814 +#define GL_RGB32F 0x8815 +#define GL_RGBA16F 0x881A +#define GL_RGB16F 0x881B +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD +#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF +#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 +#define GL_CLAMP_READ_COLOR 0x891C +#define GL_FIXED_ONLY 0x891D +#define GL_MAX_VARYING_COMPONENTS 0x8B4B +#define GL_TEXTURE_1D_ARRAY 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 +#define GL_TEXTURE_2D_ARRAY 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D +#define GL_R11F_G11F_B10F 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B +#define GL_RGB9_E5 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E +#define GL_TEXTURE_SHARED_SIZE 0x8C3F +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 +#define GL_PRIMITIVES_GENERATED 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 +#define GL_RASTERIZER_DISCARD 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B +#define GL_INTERLEAVED_ATTRIBS 0x8C8C +#define GL_SEPARATE_ATTRIBS 0x8C8D +#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F +#define GL_RGBA32UI 0x8D70 +#define GL_RGB32UI 0x8D71 +#define GL_RGBA16UI 0x8D76 +#define GL_RGB16UI 0x8D77 +#define GL_RGBA8UI 0x8D7C +#define GL_RGB8UI 0x8D7D +#define GL_RGBA32I 0x8D82 +#define GL_RGB32I 0x8D83 +#define GL_RGBA16I 0x8D88 +#define GL_RGB16I 0x8D89 +#define GL_RGBA8I 0x8D8E +#define GL_RGB8I 0x8D8F +#define GL_RED_INTEGER 0x8D94 +#define GL_GREEN_INTEGER 0x8D95 +#define GL_BLUE_INTEGER 0x8D96 +#define GL_RGB_INTEGER 0x8D98 +#define GL_RGBA_INTEGER 0x8D99 +#define GL_BGR_INTEGER 0x8D9A +#define GL_BGRA_INTEGER 0x8D9B +#define GL_SAMPLER_1D_ARRAY 0x8DC0 +#define GL_SAMPLER_2D_ARRAY 0x8DC1 +#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 +#define GL_UNSIGNED_INT_VEC2 0x8DC6 +#define GL_UNSIGNED_INT_VEC3 0x8DC7 +#define GL_UNSIGNED_INT_VEC4 0x8DC8 +#define GL_INT_SAMPLER_1D 0x8DC9 +#define GL_INT_SAMPLER_2D 0x8DCA +#define GL_INT_SAMPLER_3D 0x8DCB +#define GL_INT_SAMPLER_CUBE 0x8DCC +#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF +#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 +#define GL_QUERY_WAIT 0x8E13 +#define GL_QUERY_NO_WAIT 0x8E14 +#define GL_QUERY_BY_REGION_WAIT 0x8E15 +#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 +#define GL_BUFFER_ACCESS_FLAGS 0x911F +#define GL_BUFFER_MAP_LENGTH 0x9120 +#define GL_BUFFER_MAP_OFFSET 0x9121 +/* Reuse tokens from ARB_depth_buffer_float */ +/* reuse GL_DEPTH_COMPONENT32F */ +/* reuse GL_DEPTH32F_STENCIL8 */ +/* reuse GL_FLOAT_32_UNSIGNED_INT_24_8_REV */ +/* Reuse tokens from ARB_framebuffer_object */ +/* reuse GL_INVALID_FRAMEBUFFER_OPERATION */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */ +/* reuse GL_FRAMEBUFFER_DEFAULT */ +/* reuse GL_FRAMEBUFFER_UNDEFINED */ +/* reuse GL_DEPTH_STENCIL_ATTACHMENT */ +/* reuse GL_MAX_RENDERBUFFER_SIZE */ +/* reuse GL_DEPTH_STENCIL */ +/* reuse GL_UNSIGNED_INT_24_8 */ +/* reuse GL_DEPTH24_STENCIL8 */ +/* reuse GL_TEXTURE_STENCIL_SIZE */ +/* reuse GL_TEXTURE_RED_TYPE */ +/* reuse GL_TEXTURE_GREEN_TYPE */ +/* reuse GL_TEXTURE_BLUE_TYPE */ +/* reuse GL_TEXTURE_ALPHA_TYPE */ +/* reuse GL_TEXTURE_DEPTH_TYPE */ +/* reuse GL_UNSIGNED_NORMALIZED */ +/* reuse GL_FRAMEBUFFER_BINDING */ +/* reuse GL_DRAW_FRAMEBUFFER_BINDING */ +/* reuse GL_RENDERBUFFER_BINDING */ +/* reuse GL_READ_FRAMEBUFFER */ +/* reuse GL_DRAW_FRAMEBUFFER */ +/* reuse GL_READ_FRAMEBUFFER_BINDING */ +/* reuse GL_RENDERBUFFER_SAMPLES */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ +/* reuse GL_FRAMEBUFFER_COMPLETE */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */ +/* reuse GL_FRAMEBUFFER_UNSUPPORTED */ +/* reuse GL_MAX_COLOR_ATTACHMENTS */ +/* reuse GL_COLOR_ATTACHMENT0 */ +/* reuse GL_COLOR_ATTACHMENT1 */ +/* reuse GL_COLOR_ATTACHMENT2 */ +/* reuse GL_COLOR_ATTACHMENT3 */ +/* reuse GL_COLOR_ATTACHMENT4 */ +/* reuse GL_COLOR_ATTACHMENT5 */ +/* reuse GL_COLOR_ATTACHMENT6 */ +/* reuse GL_COLOR_ATTACHMENT7 */ +/* reuse GL_COLOR_ATTACHMENT8 */ +/* reuse GL_COLOR_ATTACHMENT9 */ +/* reuse GL_COLOR_ATTACHMENT10 */ +/* reuse GL_COLOR_ATTACHMENT11 */ +/* reuse GL_COLOR_ATTACHMENT12 */ +/* reuse GL_COLOR_ATTACHMENT13 */ +/* reuse GL_COLOR_ATTACHMENT14 */ +/* reuse GL_COLOR_ATTACHMENT15 */ +/* reuse GL_DEPTH_ATTACHMENT */ +/* reuse GL_STENCIL_ATTACHMENT */ +/* reuse GL_FRAMEBUFFER */ +/* reuse GL_RENDERBUFFER */ +/* reuse GL_RENDERBUFFER_WIDTH */ +/* reuse GL_RENDERBUFFER_HEIGHT */ +/* reuse GL_RENDERBUFFER_INTERNAL_FORMAT */ +/* reuse GL_STENCIL_INDEX1 */ +/* reuse GL_STENCIL_INDEX4 */ +/* reuse GL_STENCIL_INDEX8 */ +/* reuse GL_STENCIL_INDEX16 */ +/* reuse GL_RENDERBUFFER_RED_SIZE */ +/* reuse GL_RENDERBUFFER_GREEN_SIZE */ +/* reuse GL_RENDERBUFFER_BLUE_SIZE */ +/* reuse GL_RENDERBUFFER_ALPHA_SIZE */ +/* reuse GL_RENDERBUFFER_DEPTH_SIZE */ +/* reuse GL_RENDERBUFFER_STENCIL_SIZE */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */ +/* reuse GL_MAX_SAMPLES */ +/* Reuse tokens from ARB_framebuffer_sRGB */ +/* reuse GL_FRAMEBUFFER_SRGB */ +/* Reuse tokens from ARB_half_float_vertex */ +/* reuse GL_HALF_FLOAT */ +/* Reuse tokens from ARB_map_buffer_range */ +/* reuse GL_MAP_READ_BIT */ +/* reuse GL_MAP_WRITE_BIT */ +/* reuse GL_MAP_INVALIDATE_RANGE_BIT */ +/* reuse GL_MAP_INVALIDATE_BUFFER_BIT */ +/* reuse GL_MAP_FLUSH_EXPLICIT_BIT */ +/* reuse GL_MAP_UNSYNCHRONIZED_BIT */ +/* Reuse tokens from ARB_texture_compression_rgtc */ +/* reuse GL_COMPRESSED_RED_RGTC1 */ +/* reuse GL_COMPRESSED_SIGNED_RED_RGTC1 */ +/* reuse GL_COMPRESSED_RG_RGTC2 */ +/* reuse GL_COMPRESSED_SIGNED_RG_RGTC2 */ +/* Reuse tokens from ARB_texture_rg */ +/* reuse GL_RG */ +/* reuse GL_RG_INTEGER */ +/* reuse GL_R8 */ +/* reuse GL_R16 */ +/* reuse GL_RG8 */ +/* reuse GL_RG16 */ +/* reuse GL_R16F */ +/* reuse GL_R32F */ +/* reuse GL_RG16F */ +/* reuse GL_RG32F */ +/* reuse GL_R8I */ +/* reuse GL_R8UI */ +/* reuse GL_R16I */ +/* reuse GL_R16UI */ +/* reuse GL_R32I */ +/* reuse GL_R32UI */ +/* reuse GL_RG8I */ +/* reuse GL_RG8UI */ +/* reuse GL_RG16I */ +/* reuse GL_RG16UI */ +/* reuse GL_RG32I */ +/* reuse GL_RG32UI */ +/* Reuse tokens from ARB_vertex_array_object */ +/* reuse GL_VERTEX_ARRAY_BINDING */ +#endif + +#ifndef GL_VERSION_3_1 +#define GL_SAMPLER_2D_RECT 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 +#define GL_SAMPLER_BUFFER 0x8DC2 +#define GL_INT_SAMPLER_2D_RECT 0x8DCD +#define GL_INT_SAMPLER_BUFFER 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 +#define GL_TEXTURE_BUFFER 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D +#define GL_TEXTURE_RECTANGLE 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 +#define GL_R8_SNORM 0x8F94 +#define GL_RG8_SNORM 0x8F95 +#define GL_RGB8_SNORM 0x8F96 +#define GL_RGBA8_SNORM 0x8F97 +#define GL_R16_SNORM 0x8F98 +#define GL_RG16_SNORM 0x8F99 +#define GL_RGB16_SNORM 0x8F9A +#define GL_RGBA16_SNORM 0x8F9B +#define GL_SIGNED_NORMALIZED 0x8F9C +#define GL_PRIMITIVE_RESTART 0x8F9D +#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E +/* Reuse tokens from ARB_copy_buffer */ +/* reuse GL_COPY_READ_BUFFER */ +/* reuse GL_COPY_WRITE_BUFFER */ +/* Reuse tokens from ARB_draw_instanced (none) */ +/* Reuse tokens from ARB_uniform_buffer_object */ +/* reuse GL_UNIFORM_BUFFER */ +/* reuse GL_UNIFORM_BUFFER_BINDING */ +/* reuse GL_UNIFORM_BUFFER_START */ +/* reuse GL_UNIFORM_BUFFER_SIZE */ +/* reuse GL_MAX_VERTEX_UNIFORM_BLOCKS */ +/* reuse GL_MAX_FRAGMENT_UNIFORM_BLOCKS */ +/* reuse GL_MAX_COMBINED_UNIFORM_BLOCKS */ +/* reuse GL_MAX_UNIFORM_BUFFER_BINDINGS */ +/* reuse GL_MAX_UNIFORM_BLOCK_SIZE */ +/* reuse GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS */ +/* reuse GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS */ +/* reuse GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT */ +/* reuse GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */ +/* reuse GL_ACTIVE_UNIFORM_BLOCKS */ +/* reuse GL_UNIFORM_TYPE */ +/* reuse GL_UNIFORM_SIZE */ +/* reuse GL_UNIFORM_NAME_LENGTH */ +/* reuse GL_UNIFORM_BLOCK_INDEX */ +/* reuse GL_UNIFORM_OFFSET */ +/* reuse GL_UNIFORM_ARRAY_STRIDE */ +/* reuse GL_UNIFORM_MATRIX_STRIDE */ +/* reuse GL_UNIFORM_IS_ROW_MAJOR */ +/* reuse GL_UNIFORM_BLOCK_BINDING */ +/* reuse GL_UNIFORM_BLOCK_DATA_SIZE */ +/* reuse GL_UNIFORM_BLOCK_NAME_LENGTH */ +/* reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS */ +/* reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES */ +/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER */ +/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER */ +/* reuse GL_INVALID_INDEX */ +#endif + +#ifndef GL_VERSION_3_2 +#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 +#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 +#define GL_LINES_ADJACENCY 0x000A +#define GL_LINE_STRIP_ADJACENCY 0x000B +#define GL_TRIANGLES_ADJACENCY 0x000C +#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D +#define GL_PROGRAM_POINT_SIZE 0x8642 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 +#define GL_GEOMETRY_SHADER 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT 0x8916 +#define GL_GEOMETRY_INPUT_TYPE 0x8917 +#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 +#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 +#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 +#define GL_CONTEXT_PROFILE_MASK 0x9126 +/* reuse GL_MAX_VARYING_COMPONENTS */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ +/* Reuse tokens from ARB_depth_clamp */ +/* reuse GL_DEPTH_CLAMP */ +/* Reuse tokens from ARB_draw_elements_base_vertex (none) */ +/* Reuse tokens from ARB_fragment_coord_conventions (none) */ +/* Reuse tokens from ARB_provoking_vertex */ +/* reuse GL_FIRST_VERTEX_CONVENTION */ +/* reuse GL_LAST_VERTEX_CONVENTION */ +/* reuse GL_PROVOKING_VERTEX */ +/* Reuse tokens from ARB_seamless_cube_map */ +/* reuse GL_TEXTURE_CUBE_MAP_SEAMLESS */ +/* Reuse tokens from ARB_sync */ +/* reuse GL_MAX_SERVER_WAIT_TIMEOUT */ +/* reuse GL_OBJECT_TYPE */ +/* reuse GL_SYNC_CONDITION */ +/* reuse GL_SYNC_STATUS */ +/* reuse GL_SYNC_FLAGS */ +/* reuse GL_SYNC_FENCE */ +/* reuse GL_SYNC_GPU_COMMANDS_COMPLETE */ +/* reuse GL_UNSIGNALED */ +/* reuse GL_SIGNALED */ +/* reuse GL_ALREADY_SIGNALED */ +/* reuse GL_TIMEOUT_EXPIRED */ +/* reuse GL_CONDITION_SATISFIED */ +/* reuse GL_WAIT_FAILED */ +/* reuse GL_TIMEOUT_IGNORED */ +/* reuse GL_SYNC_FLUSH_COMMANDS_BIT */ +/* reuse GL_TIMEOUT_IGNORED */ +/* Reuse tokens from ARB_texture_multisample */ +/* reuse GL_SAMPLE_POSITION */ +/* reuse GL_SAMPLE_MASK */ +/* reuse GL_SAMPLE_MASK_VALUE */ +/* reuse GL_MAX_SAMPLE_MASK_WORDS */ +/* reuse GL_TEXTURE_2D_MULTISAMPLE */ +/* reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE */ +/* reuse GL_TEXTURE_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE */ +/* reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_TEXTURE_SAMPLES */ +/* reuse GL_TEXTURE_FIXED_SAMPLE_LOCATIONS */ +/* reuse GL_SAMPLER_2D_MULTISAMPLE */ +/* reuse GL_INT_SAMPLER_2D_MULTISAMPLE */ +/* reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE */ +/* reuse GL_SAMPLER_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_MAX_COLOR_TEXTURE_SAMPLES */ +/* reuse GL_MAX_DEPTH_TEXTURE_SAMPLES */ +/* reuse GL_MAX_INTEGER_SAMPLES */ +/* Don't need to reuse tokens from ARB_vertex_array_bgra since they're already in 1.2 core */ +#endif + +#ifndef GL_VERSION_3_3 +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE +/* Reuse tokens from ARB_blend_func_extended */ +/* reuse GL_SRC1_COLOR */ +/* reuse GL_SRC1_ALPHA */ +/* reuse GL_ONE_MINUS_SRC1_COLOR */ +/* reuse GL_ONE_MINUS_SRC1_ALPHA */ +/* reuse GL_MAX_DUAL_SOURCE_DRAW_BUFFERS */ +/* Reuse tokens from ARB_explicit_attrib_location (none) */ +/* Reuse tokens from ARB_occlusion_query2 */ +/* reuse GL_ANY_SAMPLES_PASSED */ +/* Reuse tokens from ARB_sampler_objects */ +/* reuse GL_SAMPLER_BINDING */ +/* Reuse tokens from ARB_shader_bit_encoding (none) */ +/* Reuse tokens from ARB_texture_rgb10_a2ui */ +/* reuse GL_RGB10_A2UI */ +/* Reuse tokens from ARB_texture_swizzle */ +/* reuse GL_TEXTURE_SWIZZLE_R */ +/* reuse GL_TEXTURE_SWIZZLE_G */ +/* reuse GL_TEXTURE_SWIZZLE_B */ +/* reuse GL_TEXTURE_SWIZZLE_A */ +/* reuse GL_TEXTURE_SWIZZLE_RGBA */ +/* Reuse tokens from ARB_timer_query */ +/* reuse GL_TIME_ELAPSED */ +/* reuse GL_TIMESTAMP */ +/* Reuse tokens from ARB_vertex_type_2_10_10_10_rev */ +/* reuse GL_INT_2_10_10_10_REV */ +#endif + +#ifndef GL_VERSION_4_0 +#define GL_SAMPLE_SHADING 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F +#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B +#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F +/* Reuse tokens from ARB_texture_query_lod (none) */ +/* Reuse tokens from ARB_draw_indirect */ +/* reuse GL_DRAW_INDIRECT_BUFFER */ +/* reuse GL_DRAW_INDIRECT_BUFFER_BINDING */ +/* Reuse tokens from ARB_gpu_shader5 */ +/* reuse GL_GEOMETRY_SHADER_INVOCATIONS */ +/* reuse GL_MAX_GEOMETRY_SHADER_INVOCATIONS */ +/* reuse GL_MIN_FRAGMENT_INTERPOLATION_OFFSET */ +/* reuse GL_MAX_FRAGMENT_INTERPOLATION_OFFSET */ +/* reuse GL_FRAGMENT_INTERPOLATION_OFFSET_BITS */ +/* reuse GL_MAX_VERTEX_STREAMS */ +/* Reuse tokens from ARB_gpu_shader_fp64 */ +/* reuse GL_DOUBLE_VEC2 */ +/* reuse GL_DOUBLE_VEC3 */ +/* reuse GL_DOUBLE_VEC4 */ +/* reuse GL_DOUBLE_MAT2 */ +/* reuse GL_DOUBLE_MAT3 */ +/* reuse GL_DOUBLE_MAT4 */ +/* reuse GL_DOUBLE_MAT2x3 */ +/* reuse GL_DOUBLE_MAT2x4 */ +/* reuse GL_DOUBLE_MAT3x2 */ +/* reuse GL_DOUBLE_MAT3x4 */ +/* reuse GL_DOUBLE_MAT4x2 */ +/* reuse GL_DOUBLE_MAT4x3 */ +/* Reuse tokens from ARB_shader_subroutine */ +/* reuse GL_ACTIVE_SUBROUTINES */ +/* reuse GL_ACTIVE_SUBROUTINE_UNIFORMS */ +/* reuse GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS */ +/* reuse GL_ACTIVE_SUBROUTINE_MAX_LENGTH */ +/* reuse GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH */ +/* reuse GL_MAX_SUBROUTINES */ +/* reuse GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS */ +/* reuse GL_NUM_COMPATIBLE_SUBROUTINES */ +/* reuse GL_COMPATIBLE_SUBROUTINES */ +/* Reuse tokens from ARB_tessellation_shader */ +/* reuse GL_PATCHES */ +/* reuse GL_PATCH_VERTICES */ +/* reuse GL_PATCH_DEFAULT_INNER_LEVEL */ +/* reuse GL_PATCH_DEFAULT_OUTER_LEVEL */ +/* reuse GL_TESS_CONTROL_OUTPUT_VERTICES */ +/* reuse GL_TESS_GEN_MODE */ +/* reuse GL_TESS_GEN_SPACING */ +/* reuse GL_TESS_GEN_VERTEX_ORDER */ +/* reuse GL_TESS_GEN_POINT_MODE */ +/* reuse GL_ISOLINES */ +/* reuse GL_FRACTIONAL_ODD */ +/* reuse GL_FRACTIONAL_EVEN */ +/* reuse GL_MAX_PATCH_VERTICES */ +/* reuse GL_MAX_TESS_GEN_LEVEL */ +/* reuse GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS */ +/* reuse GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS */ +/* reuse GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS */ +/* reuse GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS */ +/* reuse GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS */ +/* reuse GL_MAX_TESS_PATCH_COMPONENTS */ +/* reuse GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS */ +/* reuse GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS */ +/* reuse GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS */ +/* reuse GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS */ +/* reuse GL_MAX_TESS_CONTROL_INPUT_COMPONENTS */ +/* reuse GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS */ +/* reuse GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS */ +/* reuse GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS */ +/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER */ +/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER */ +/* reuse GL_TESS_EVALUATION_SHADER */ +/* reuse GL_TESS_CONTROL_SHADER */ +/* Reuse tokens from ARB_texture_buffer_object_rgb32 (none) */ +/* Reuse tokens from ARB_transform_feedback2 */ +/* reuse GL_TRANSFORM_FEEDBACK */ +/* reuse GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED */ +/* reuse GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE */ +/* reuse GL_TRANSFORM_FEEDBACK_BINDING */ +/* Reuse tokens from ARB_transform_feedback3 */ +/* reuse GL_MAX_TRANSFORM_FEEDBACK_BUFFERS */ +/* reuse GL_MAX_VERTEX_STREAMS */ +#endif + +#ifndef GL_VERSION_4_1 +/* Reuse tokens from ARB_ES2_compatibility */ +/* reuse GL_FIXED */ +/* reuse GL_IMPLEMENTATION_COLOR_READ_TYPE */ +/* reuse GL_IMPLEMENTATION_COLOR_READ_FORMAT */ +/* reuse GL_LOW_FLOAT */ +/* reuse GL_MEDIUM_FLOAT */ +/* reuse GL_HIGH_FLOAT */ +/* reuse GL_LOW_INT */ +/* reuse GL_MEDIUM_INT */ +/* reuse GL_HIGH_INT */ +/* reuse GL_SHADER_COMPILER */ +/* reuse GL_NUM_SHADER_BINARY_FORMATS */ +/* reuse GL_MAX_VERTEX_UNIFORM_VECTORS */ +/* reuse GL_MAX_VARYING_VECTORS */ +/* reuse GL_MAX_FRAGMENT_UNIFORM_VECTORS */ +/* reuse GL_RGB565 */ +/* Reuse tokens from ARB_get_program_binary */ +/* reuse GL_PROGRAM_BINARY_RETRIEVABLE_HINT */ +/* reuse GL_PROGRAM_BINARY_LENGTH */ +/* reuse GL_NUM_PROGRAM_BINARY_FORMATS */ +/* reuse GL_PROGRAM_BINARY_FORMATS */ +/* Reuse tokens from ARB_separate_shader_objects */ +/* reuse GL_VERTEX_SHADER_BIT */ +/* reuse GL_FRAGMENT_SHADER_BIT */ +/* reuse GL_GEOMETRY_SHADER_BIT */ +/* reuse GL_TESS_CONTROL_SHADER_BIT */ +/* reuse GL_TESS_EVALUATION_SHADER_BIT */ +/* reuse GL_ALL_SHADER_BITS */ +/* reuse GL_PROGRAM_SEPARABLE */ +/* reuse GL_ACTIVE_PROGRAM */ +/* reuse GL_PROGRAM_PIPELINE_BINDING */ +/* Reuse tokens from ARB_shader_precision (none) */ +/* Reuse tokens from ARB_vertex_attrib_64bit - all are in GL 3.0 and 4.0 already */ +/* Reuse tokens from ARB_viewport_array - some are in GL 1.1 and ARB_provoking_vertex already */ +/* reuse GL_MAX_VIEWPORTS */ +/* reuse GL_VIEWPORT_SUBPIXEL_BITS */ +/* reuse GL_VIEWPORT_BOUNDS_RANGE */ +/* reuse GL_LAYER_PROVOKING_VERTEX */ +/* reuse GL_VIEWPORT_INDEX_PROVOKING_VERTEX */ +/* reuse GL_UNDEFINED_VERTEX */ +#endif + +#ifndef GL_ARB_depth_buffer_float +#define GL_DEPTH_COMPONENT32F 0x8CAC +#define GL_DEPTH32F_STENCIL8 0x8CAD +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD +#endif + +#ifndef GL_ARB_framebuffer_object +#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 +#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 +#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 +#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 +#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 +#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 +#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 +#define GL_FRAMEBUFFER_DEFAULT 0x8218 +#define GL_FRAMEBUFFER_UNDEFINED 0x8219 +#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A +#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 +#define GL_DEPTH_STENCIL 0x84F9 +#define GL_UNSIGNED_INT_24_8 0x84FA +#define GL_DEPTH24_STENCIL8 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE 0x88F1 +#define GL_TEXTURE_RED_TYPE 0x8C10 +#define GL_TEXTURE_GREEN_TYPE 0x8C11 +#define GL_TEXTURE_BLUE_TYPE 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE 0x8C13 +#define GL_TEXTURE_DEPTH_TYPE 0x8C16 +#define GL_UNSIGNED_NORMALIZED 0x8C17 +#define GL_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_DRAW_FRAMEBUFFER_BINDING GL_FRAMEBUFFER_BINDING +#define GL_RENDERBUFFER_BINDING 0x8CA7 +#define GL_READ_FRAMEBUFFER 0x8CA8 +#define GL_DRAW_FRAMEBUFFER 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA +#define GL_RENDERBUFFER_SAMPLES 0x8CAB +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 +#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD +#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF +#define GL_COLOR_ATTACHMENT0 0x8CE0 +#define GL_COLOR_ATTACHMENT1 0x8CE1 +#define GL_COLOR_ATTACHMENT2 0x8CE2 +#define GL_COLOR_ATTACHMENT3 0x8CE3 +#define GL_COLOR_ATTACHMENT4 0x8CE4 +#define GL_COLOR_ATTACHMENT5 0x8CE5 +#define GL_COLOR_ATTACHMENT6 0x8CE6 +#define GL_COLOR_ATTACHMENT7 0x8CE7 +#define GL_COLOR_ATTACHMENT8 0x8CE8 +#define GL_COLOR_ATTACHMENT9 0x8CE9 +#define GL_COLOR_ATTACHMENT10 0x8CEA +#define GL_COLOR_ATTACHMENT11 0x8CEB +#define GL_COLOR_ATTACHMENT12 0x8CEC +#define GL_COLOR_ATTACHMENT13 0x8CED +#define GL_COLOR_ATTACHMENT14 0x8CEE +#define GL_COLOR_ATTACHMENT15 0x8CEF +#define GL_DEPTH_ATTACHMENT 0x8D00 +#define GL_STENCIL_ATTACHMENT 0x8D20 +#define GL_FRAMEBUFFER 0x8D40 +#define GL_RENDERBUFFER 0x8D41 +#define GL_RENDERBUFFER_WIDTH 0x8D42 +#define GL_RENDERBUFFER_HEIGHT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 +#define GL_STENCIL_INDEX1 0x8D46 +#define GL_STENCIL_INDEX4 0x8D47 +#define GL_STENCIL_INDEX8 0x8D48 +#define GL_STENCIL_INDEX16 0x8D49 +#define GL_RENDERBUFFER_RED_SIZE 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 +#define GL_MAX_SAMPLES 0x8D57 +#endif + +#ifndef GL_ARB_framebuffer_sRGB +#define GL_FRAMEBUFFER_SRGB 0x8DB9 +#endif + +#ifndef GL_ARB_half_float_vertex +#define GL_HALF_FLOAT 0x140B +#endif + +#ifndef GL_ARB_map_buffer_range +#define GL_MAP_READ_BIT 0x0001 +#define GL_MAP_WRITE_BIT 0x0002 +#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 +#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 +#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 +#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 +#endif + +#ifndef GL_ARB_texture_compression_rgtc +#define GL_COMPRESSED_RED_RGTC1 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC +#define GL_COMPRESSED_RG_RGTC2 0x8DBD +#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE +#endif + +#ifndef GL_ARB_texture_rg +#define GL_RG 0x8227 +#define GL_RG_INTEGER 0x8228 +#define GL_R8 0x8229 +#define GL_R16 0x822A +#define GL_RG8 0x822B +#define GL_RG16 0x822C +#define GL_R16F 0x822D +#define GL_R32F 0x822E +#define GL_RG16F 0x822F +#define GL_RG32F 0x8230 +#define GL_R8I 0x8231 +#define GL_R8UI 0x8232 +#define GL_R16I 0x8233 +#define GL_R16UI 0x8234 +#define GL_R32I 0x8235 +#define GL_R32UI 0x8236 +#define GL_RG8I 0x8237 +#define GL_RG8UI 0x8238 +#define GL_RG16I 0x8239 +#define GL_RG16UI 0x823A +#define GL_RG32I 0x823B +#define GL_RG32UI 0x823C +#endif + +#ifndef GL_ARB_vertex_array_object +#define GL_VERTEX_ARRAY_BINDING 0x85B5 +#endif + +#ifndef GL_ARB_uniform_buffer_object +#define GL_UNIFORM_BUFFER 0x8A11 +#define GL_UNIFORM_BUFFER_BINDING 0x8A28 +#define GL_UNIFORM_BUFFER_START 0x8A29 +#define GL_UNIFORM_BUFFER_SIZE 0x8A2A +#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C +#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D +#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E +#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F +#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 +#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 +#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 +#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 +#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 +#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 +#define GL_UNIFORM_TYPE 0x8A37 +#define GL_UNIFORM_SIZE 0x8A38 +#define GL_UNIFORM_NAME_LENGTH 0x8A39 +#define GL_UNIFORM_BLOCK_INDEX 0x8A3A +#define GL_UNIFORM_OFFSET 0x8A3B +#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C +#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D +#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E +#define GL_UNIFORM_BLOCK_BINDING 0x8A3F +#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 +#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 +#define GL_INVALID_INDEX 0xFFFFFFFFu +#endif + +#ifndef GL_ARB_copy_buffer +#define GL_COPY_READ_BUFFER 0x8F36 +#define GL_COPY_WRITE_BUFFER 0x8F37 +#endif + +#ifndef GL_ARB_depth_clamp +#define GL_DEPTH_CLAMP 0x864F +#endif + +#ifndef GL_ARB_draw_elements_base_vertex +#endif + +#ifndef GL_ARB_fragment_coord_conventions +#endif + +#ifndef GL_ARB_provoking_vertex +#define GL_FIRST_VERTEX_CONVENTION 0x8E4D +#define GL_LAST_VERTEX_CONVENTION 0x8E4E +#define GL_PROVOKING_VERTEX 0x8E4F +#endif + +#ifndef GL_ARB_seamless_cube_map +#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F +#endif + +#ifndef GL_ARB_sync +#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 +#define GL_OBJECT_TYPE 0x9112 +#define GL_SYNC_CONDITION 0x9113 +#define GL_SYNC_STATUS 0x9114 +#define GL_SYNC_FLAGS 0x9115 +#define GL_SYNC_FENCE 0x9116 +#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 +#define GL_UNSIGNALED 0x9118 +#define GL_SIGNALED 0x9119 +#define GL_ALREADY_SIGNALED 0x911A +#define GL_TIMEOUT_EXPIRED 0x911B +#define GL_CONDITION_SATISFIED 0x911C +#define GL_WAIT_FAILED 0x911D +#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 +#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull +#endif + +#ifndef GL_ARB_texture_multisample +#define GL_SAMPLE_POSITION 0x8E50 +#define GL_SAMPLE_MASK 0x8E51 +#define GL_SAMPLE_MASK_VALUE 0x8E52 +#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 +#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101 +#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 +#define GL_TEXTURE_SAMPLES 0x9106 +#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 +#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 +#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A +#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B +#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D +#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E +#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F +#define GL_MAX_INTEGER_SAMPLES 0x9110 +#endif + +#ifndef GL_ARB_vertex_array_bgra +/* reuse GL_BGRA */ +#endif + +#ifndef GL_ARB_texture_query_lod +#endif + +#ifndef GL_ARB_blend_func_extended +#define GL_SRC1_COLOR 0x88F9 +#define GL_SRC1_ALPHA 0x8589 +#define GL_ONE_MINUS_SRC1_COLOR 0x88FA +#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB +#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC +#endif + +#ifndef GL_ARB_explicit_attrib_location +#endif + +#ifndef GL_ARB_occlusion_query2 +#define GL_ANY_SAMPLES_PASSED 0x8C2F +#endif + +#ifndef GL_ARB_sampler_objects +#define GL_SAMPLER_BINDING 0x8919 +#endif + +#ifndef GL_ARB_shader_bit_encoding +#endif + +#ifndef GL_ARB_texture_rgb10_a2ui +#define GL_RGB10_A2UI 0x906F +#endif + +#ifndef GL_ARB_texture_swizzle +#define GL_TEXTURE_SWIZZLE_R 0x8E42 +#define GL_TEXTURE_SWIZZLE_G 0x8E43 +#define GL_TEXTURE_SWIZZLE_B 0x8E44 +#define GL_TEXTURE_SWIZZLE_A 0x8E45 +#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 +#endif + +#ifndef GL_ARB_timer_query +#define GL_TIME_ELAPSED 0x88BF +#define GL_TIMESTAMP 0x8E28 +#endif + +#ifndef GL_ARB_vertex_type_2_10_10_10_rev +/* reuse GL_UNSIGNED_INT_2_10_10_10_REV */ +#define GL_INT_2_10_10_10_REV 0x8D9F +#endif + +#ifndef GL_ARB_draw_indirect +#define GL_DRAW_INDIRECT_BUFFER 0x8F3F +#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 +#endif + +#ifndef GL_ARB_gpu_shader5 +#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C +#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D +/* reuse GL_MAX_VERTEX_STREAMS */ +#endif + +#ifndef GL_ARB_gpu_shader_fp64 +/* reuse GL_DOUBLE */ +#define GL_DOUBLE_VEC2 0x8FFC +#define GL_DOUBLE_VEC3 0x8FFD +#define GL_DOUBLE_VEC4 0x8FFE +#define GL_DOUBLE_MAT2 0x8F46 +#define GL_DOUBLE_MAT3 0x8F47 +#define GL_DOUBLE_MAT4 0x8F48 +#define GL_DOUBLE_MAT2x3 0x8F49 +#define GL_DOUBLE_MAT2x4 0x8F4A +#define GL_DOUBLE_MAT3x2 0x8F4B +#define GL_DOUBLE_MAT3x4 0x8F4C +#define GL_DOUBLE_MAT4x2 0x8F4D +#define GL_DOUBLE_MAT4x3 0x8F4E +#endif + +#ifndef GL_ARB_shader_subroutine +#define GL_ACTIVE_SUBROUTINES 0x8DE5 +#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47 +#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49 +#define GL_MAX_SUBROUTINES 0x8DE7 +#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8 +#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A +#define GL_COMPATIBLE_SUBROUTINES 0x8E4B +/* reuse GL_UNIFORM_SIZE */ +/* reuse GL_UNIFORM_NAME_LENGTH */ +#endif + +#ifndef GL_ARB_tessellation_shader +#define GL_PATCHES 0x000E +#define GL_PATCH_VERTICES 0x8E72 +#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73 +#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74 +#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 +#define GL_TESS_GEN_MODE 0x8E76 +#define GL_TESS_GEN_SPACING 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 +#define GL_TESS_GEN_POINT_MODE 0x8E79 +/* reuse GL_TRIANGLES */ +#define GL_QUADS 0x0007 +#define GL_ISOLINES 0x8E7A +/* reuse GL_EQUAL */ +#define GL_FRACTIONAL_ODD 0x8E7B +#define GL_FRACTIONAL_EVEN 0x8E7C +/* reuse GL_CCW */ +/* reuse GL_CW */ +#define GL_MAX_PATCH_VERTICES 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1 +#define GL_TESS_EVALUATION_SHADER 0x8E87 +#define GL_TESS_CONTROL_SHADER 0x8E88 +#endif + +#ifndef GL_ARB_texture_buffer_object_rgb32 +/* reuse GL_RGB32F */ +/* reuse GL_RGB32UI */ +/* reuse GL_RGB32I */ +#endif + +#ifndef GL_ARB_transform_feedback2 +#define GL_TRANSFORM_FEEDBACK 0x8E22 +#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23 +#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24 +#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 +#endif + +#ifndef GL_ARB_transform_feedback3 +#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70 +#define GL_MAX_VERTEX_STREAMS 0x8E71 +#endif + +#ifndef GL_ARB_ES2_compatibility +#define GL_FIXED 0x140C +#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A +#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B +#define GL_LOW_FLOAT 0x8DF0 +#define GL_MEDIUM_FLOAT 0x8DF1 +#define GL_HIGH_FLOAT 0x8DF2 +#define GL_LOW_INT 0x8DF3 +#define GL_MEDIUM_INT 0x8DF4 +#define GL_HIGH_INT 0x8DF5 +#define GL_SHADER_COMPILER 0x8DFA +#define GL_SHADER_BINARY_FORMATS 0x8DF8 +#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 +#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB +#define GL_MAX_VARYING_VECTORS 0x8DFC +#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD +#define GL_RGB565 0x8D62 +#endif + +#ifndef GL_ARB_get_program_binary +#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 +#define GL_PROGRAM_BINARY_LENGTH 0x8741 +#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE +#define GL_PROGRAM_BINARY_FORMATS 0x87FF +#endif + +#ifndef GL_ARB_separate_shader_objects +#define GL_VERTEX_SHADER_BIT 0x00000001 +#define GL_FRAGMENT_SHADER_BIT 0x00000002 +#define GL_GEOMETRY_SHADER_BIT 0x00000004 +#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 +#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 +#define GL_ALL_SHADER_BITS 0xFFFFFFFF +#define GL_PROGRAM_SEPARABLE 0x8258 +#define GL_ACTIVE_PROGRAM 0x8259 +#define GL_PROGRAM_PIPELINE_BINDING 0x825A +#endif + +#ifndef GL_ARB_shader_precision +#endif + +#ifndef GL_ARB_vertex_attrib_64bit +/* reuse GL_DOUBLE */ +/* reuse GL_DOUBLE_VEC2 */ +/* reuse GL_DOUBLE_VEC3 */ +/* reuse GL_DOUBLE_VEC4 */ +/* reuse GL_DOUBLE_MAT2 */ +/* reuse GL_DOUBLE_MAT3 */ +/* reuse GL_DOUBLE_MAT4 */ +/* reuse GL_DOUBLE_MAT2x3 */ +/* reuse GL_DOUBLE_MAT2x4 */ +/* reuse GL_DOUBLE_MAT3x2 */ +/* reuse GL_DOUBLE_MAT3x4 */ +/* reuse GL_DOUBLE_MAT4x2 */ +/* reuse GL_DOUBLE_MAT4x3 */ +#endif + +#ifndef GL_ARB_viewport_array +/* reuse GL_SCISSOR_BOX */ +/* reuse GL_VIEWPORT */ +/* reuse GL_DEPTH_RANGE */ +/* reuse GL_SCISSOR_TEST */ +#define GL_MAX_VIEWPORTS 0x825B +#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C +#define GL_VIEWPORT_BOUNDS_RANGE 0x825D +#define GL_LAYER_PROVOKING_VERTEX 0x825E +#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F +#define GL_UNDEFINED_VERTEX 0x8260 +/* reuse GL_FIRST_VERTEX_CONVENTION */ +/* reuse GL_LAST_VERTEX_CONVENTION */ +/* reuse GL_PROVOKING_VERTEX */ +#endif + + +/*************************************************************/ + +#ifndef GL_VERSION_1_0 +#define GL_VERSION_1_0 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glCullFace (GLenum mode); +GLAPI void APIENTRY glFrontFace (GLenum mode); +GLAPI void APIENTRY glHint (GLenum target, GLenum mode); +GLAPI void APIENTRY glLineWidth (GLfloat width); +GLAPI void APIENTRY glPointSize (GLfloat size); +GLAPI void APIENTRY glPolygonMode (GLenum face, GLenum mode); +GLAPI void APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); +GLAPI void APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); +GLAPI void APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void APIENTRY glDrawBuffer (GLenum mode); +GLAPI void APIENTRY glClear (GLbitfield mask); +GLAPI void APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI void APIENTRY glClearStencil (GLint s); +GLAPI void APIENTRY glClearDepth (GLclampd depth); +GLAPI void APIENTRY glStencilMask (GLuint mask); +GLAPI void APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +GLAPI void APIENTRY glDepthMask (GLboolean flag); +GLAPI void APIENTRY glDisable (GLenum cap); +GLAPI void APIENTRY glEnable (GLenum cap); +GLAPI void APIENTRY glFinish (void); +GLAPI void APIENTRY glFlush (void); +GLAPI void APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); +GLAPI void APIENTRY glLogicOp (GLenum opcode); +GLAPI void APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); +GLAPI void APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); +GLAPI void APIENTRY glDepthFunc (GLenum func); +GLAPI void APIENTRY glPixelStoref (GLenum pname, GLfloat param); +GLAPI void APIENTRY glPixelStorei (GLenum pname, GLint param); +GLAPI void APIENTRY glReadBuffer (GLenum mode); +GLAPI void APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); +GLAPI void APIENTRY glGetBooleanv (GLenum pname, GLboolean *params); +GLAPI void APIENTRY glGetDoublev (GLenum pname, GLdouble *params); +GLAPI GLenum APIENTRY glGetError (void); +GLAPI void APIENTRY glGetFloatv (GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetIntegerv (GLenum pname, GLint *params); +GLAPI const GLubyte * APIENTRY glGetString (GLenum name); +GLAPI void APIENTRY glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); +GLAPI void APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); +GLAPI GLboolean APIENTRY glIsEnabled (GLenum cap); +GLAPI void APIENTRY glDepthRange (GLclampd near, GLclampd far); +GLAPI void APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); +typedef void (APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); +typedef void (APIENTRYP PFNGLPOINTSIZEPROC) (GLfloat size); +typedef void (APIENTRYP PFNGLPOLYGONMODEPROC) (GLenum face, GLenum mode); +typedef void (APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXIMAGE1DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLDRAWBUFFERPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); +typedef void (APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +typedef void (APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); +typedef void (APIENTRYP PFNGLCLEARDEPTHPROC) (GLclampd depth); +typedef void (APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); +typedef void (APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +typedef void (APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); +typedef void (APIENTRYP PFNGLDISABLEPROC) (GLenum cap); +typedef void (APIENTRYP PFNGLENABLEPROC) (GLenum cap); +typedef void (APIENTRYP PFNGLFINISHPROC) (void); +typedef void (APIENTRYP PFNGLFLUSHPROC) (void); +typedef void (APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); +typedef void (APIENTRYP PFNGLLOGICOPPROC) (GLenum opcode); +typedef void (APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); +typedef void (APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); +typedef void (APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); +typedef void (APIENTRYP PFNGLPIXELSTOREFPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLREADBUFFERPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); +typedef void (APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *params); +typedef void (APIENTRYP PFNGLGETDOUBLEVPROC) (GLenum pname, GLdouble *params); +typedef GLenum (APIENTRYP PFNGLGETERRORPROC) (void); +typedef void (APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *params); +typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); +typedef void (APIENTRYP PFNGLGETTEXIMAGEPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC) (GLenum target, GLint level, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC) (GLenum target, GLint level, GLenum pname, GLint *params); +typedef GLboolean (APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); +typedef void (APIENTRYP PFNGLDEPTHRANGEPROC) (GLclampd near, GLclampd far); +typedef void (APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); +#endif + +#ifndef GL_VERSION_1_1 +#define GL_VERSION_1_1 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); +GLAPI void APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); +GLAPI void APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); +GLAPI void APIENTRY glCopyTexImage1D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +GLAPI void APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +GLAPI void APIENTRY glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +GLAPI void APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void APIENTRY glBindTexture (GLenum target, GLuint texture); +GLAPI void APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); +GLAPI void APIENTRY glGenTextures (GLsizei n, GLuint *textures); +GLAPI GLboolean APIENTRY glIsTexture (GLuint texture); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); +typedef void (APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); +typedef void (APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); +typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); +typedef void (APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); +typedef void (APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); +typedef GLboolean (APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); +#endif + +#ifndef GL_VERSION_1_2 +#define GL_VERSION_1_2 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI void APIENTRY glBlendEquation (GLenum mode); +GLAPI void APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +GLAPI void APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#endif + +#ifndef GL_VERSION_1_3 +#define GL_VERSION_1_3 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glActiveTexture (GLenum texture); +GLAPI void APIENTRY glSampleCoverage (GLclampf value, GLboolean invert); +GLAPI void APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +GLAPI void APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +GLAPI void APIENTRY glCompressedTexImage1D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +GLAPI void APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +GLAPI void APIENTRY glCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +GLAPI void APIENTRY glGetCompressedTexImage (GLenum target, GLint level, GLvoid *img); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img); +#endif + +#ifndef GL_VERSION_1_4 +#define GL_VERSION_1_4 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +GLAPI void APIENTRY glMultiDrawArrays (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); +GLAPI void APIENTRY glMultiDrawElements (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei drawcount); +GLAPI void APIENTRY glPointParameterf (GLenum pname, GLfloat param); +GLAPI void APIENTRY glPointParameterfv (GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glPointParameteri (GLenum pname, GLint param); +GLAPI void APIENTRY glPointParameteriv (GLenum pname, const GLint *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei drawcount); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); +#endif + +#ifndef GL_VERSION_1_5 +#define GL_VERSION_1_5 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glGenQueries (GLsizei n, GLuint *ids); +GLAPI void APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); +GLAPI GLboolean APIENTRY glIsQuery (GLuint id); +GLAPI void APIENTRY glBeginQuery (GLenum target, GLuint id); +GLAPI void APIENTRY glEndQuery (GLenum target); +GLAPI void APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetQueryObjectiv (GLuint id, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); +GLAPI void APIENTRY glBindBuffer (GLenum target, GLuint buffer); +GLAPI void APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); +GLAPI void APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); +GLAPI GLboolean APIENTRY glIsBuffer (GLuint buffer); +GLAPI void APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); +GLAPI void APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); +GLAPI void APIENTRY glGetBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); +GLAPI GLvoid* APIENTRY glMapBuffer (GLenum target, GLenum access); +GLAPI GLboolean APIENTRY glUnmapBuffer (GLenum target); +GLAPI void APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, GLvoid* *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); +typedef void (APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISQUERYPROC) (GLuint id); +typedef void (APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLENDQUERYPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); +typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); +typedef void (APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); +typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); +typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); +typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); +typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); +typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, GLvoid* *params); +#endif + +#ifndef GL_VERSION_2_0 +#define GL_VERSION_2_0 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); +GLAPI void APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); +GLAPI void APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +GLAPI void APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); +GLAPI void APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); +GLAPI void APIENTRY glAttachShader (GLuint program, GLuint shader); +GLAPI void APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); +GLAPI void APIENTRY glCompileShader (GLuint shader); +GLAPI GLuint APIENTRY glCreateProgram (void); +GLAPI GLuint APIENTRY glCreateShader (GLenum type); +GLAPI void APIENTRY glDeleteProgram (GLuint program); +GLAPI void APIENTRY glDeleteShader (GLuint shader); +GLAPI void APIENTRY glDetachShader (GLuint program, GLuint shader); +GLAPI void APIENTRY glDisableVertexAttribArray (GLuint index); +GLAPI void APIENTRY glEnableVertexAttribArray (GLuint index); +GLAPI void APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +GLAPI void APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +GLAPI void APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +GLAPI GLint APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); +GLAPI void APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +GLAPI void APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +GLAPI void APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +GLAPI GLint APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); +GLAPI void APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); +GLAPI void APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); +GLAPI void APIENTRY glGetVertexAttribdv (GLuint index, GLenum pname, GLdouble *params); +GLAPI void APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid* *pointer); +GLAPI GLboolean APIENTRY glIsProgram (GLuint program); +GLAPI GLboolean APIENTRY glIsShader (GLuint shader); +GLAPI void APIENTRY glLinkProgram (GLuint program); +GLAPI void APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* const *string, const GLint *length); +GLAPI void APIENTRY glUseProgram (GLuint program); +GLAPI void APIENTRY glUniform1f (GLint location, GLfloat v0); +GLAPI void APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); +GLAPI void APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +GLAPI void APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +GLAPI void APIENTRY glUniform1i (GLint location, GLint v0); +GLAPI void APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); +GLAPI void APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); +GLAPI void APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +GLAPI void APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glValidateProgram (GLuint program); +GLAPI void APIENTRY glVertexAttrib1d (GLuint index, GLdouble x); +GLAPI void APIENTRY glVertexAttrib1dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); +GLAPI void APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib1s (GLuint index, GLshort x); +GLAPI void APIENTRY glVertexAttrib1sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib2d (GLuint index, GLdouble x, GLdouble y); +GLAPI void APIENTRY glVertexAttrib2dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); +GLAPI void APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib2s (GLuint index, GLshort x, GLshort y); +GLAPI void APIENTRY glVertexAttrib2sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib3d (GLuint index, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glVertexAttrib3dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib3s (GLuint index, GLshort x, GLshort y, GLshort z); +GLAPI void APIENTRY glVertexAttrib3sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4Nbv (GLuint index, const GLbyte *v); +GLAPI void APIENTRY glVertexAttrib4Niv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttrib4Nsv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4Nub (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +GLAPI void APIENTRY glVertexAttrib4Nubv (GLuint index, const GLubyte *v); +GLAPI void APIENTRY glVertexAttrib4Nuiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttrib4Nusv (GLuint index, const GLushort *v); +GLAPI void APIENTRY glVertexAttrib4bv (GLuint index, const GLbyte *v); +GLAPI void APIENTRY glVertexAttrib4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glVertexAttrib4dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib4iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttrib4s (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI void APIENTRY glVertexAttrib4sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4ubv (GLuint index, const GLubyte *v); +GLAPI void APIENTRY glVertexAttrib4uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttrib4usv (GLuint index, const GLushort *v); +GLAPI void APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); +typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); +typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); +typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); +typedef void (APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); +typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); +typedef void (APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); +typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC) (void); +typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); +typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); +typedef void (APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); +typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); +typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); +typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); +typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, GLvoid* *pointer); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); +typedef GLboolean (APIENTRYP PFNGLISSHADERPROC) (GLuint shader); +typedef void (APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar* const *string, const GLint *length); +typedef void (APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); +typedef void (APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); +typedef void (APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); +typedef void (APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); +typedef void (APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_VERSION_2_1 +#define GL_VERSION_2_1 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +#endif + +#ifndef GL_VERSION_3_0 +#define GL_VERSION_3_0 1 +/* OpenGL 3.0 also reuses entry points from these extensions: */ +/* ARB_framebuffer_object */ +/* ARB_map_buffer_range */ +/* ARB_vertex_array_object */ +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glColorMaski (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +GLAPI void APIENTRY glGetBooleani_v (GLenum target, GLuint index, GLboolean *data); +GLAPI void APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); +GLAPI void APIENTRY glEnablei (GLenum target, GLuint index); +GLAPI void APIENTRY glDisablei (GLenum target, GLuint index); +GLAPI GLboolean APIENTRY glIsEnabledi (GLenum target, GLuint index); +GLAPI void APIENTRY glBeginTransformFeedback (GLenum primitiveMode); +GLAPI void APIENTRY glEndTransformFeedback (void); +GLAPI void APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +GLAPI void APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); +GLAPI void APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar* const *varyings, GLenum bufferMode); +GLAPI void APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +GLAPI void APIENTRY glClampColor (GLenum target, GLenum clamp); +GLAPI void APIENTRY glBeginConditionalRender (GLuint id, GLenum mode); +GLAPI void APIENTRY glEndConditionalRender (void); +GLAPI void APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +GLAPI void APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); +GLAPI void APIENTRY glVertexAttribI1i (GLuint index, GLint x); +GLAPI void APIENTRY glVertexAttribI2i (GLuint index, GLint x, GLint y); +GLAPI void APIENTRY glVertexAttribI3i (GLuint index, GLint x, GLint y, GLint z); +GLAPI void APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); +GLAPI void APIENTRY glVertexAttribI1ui (GLuint index, GLuint x); +GLAPI void APIENTRY glVertexAttribI2ui (GLuint index, GLuint x, GLuint y); +GLAPI void APIENTRY glVertexAttribI3ui (GLuint index, GLuint x, GLuint y, GLuint z); +GLAPI void APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +GLAPI void APIENTRY glVertexAttribI1iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI2iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI3iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI1uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI2uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI3uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI4bv (GLuint index, const GLbyte *v); +GLAPI void APIENTRY glVertexAttribI4sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttribI4ubv (GLuint index, const GLubyte *v); +GLAPI void APIENTRY glVertexAttribI4usv (GLuint index, const GLushort *v); +GLAPI void APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); +GLAPI void APIENTRY glBindFragDataLocation (GLuint program, GLuint color, const GLchar *name); +GLAPI GLint APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); +GLAPI void APIENTRY glUniform1ui (GLint location, GLuint v0); +GLAPI void APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); +GLAPI void APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); +GLAPI void APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +GLAPI void APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glTexParameterIiv (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glTexParameterIuiv (GLenum target, GLenum pname, const GLuint *params); +GLAPI void APIENTRY glGetTexParameterIiv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetTexParameterIuiv (GLenum target, GLenum pname, GLuint *params); +GLAPI void APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); +GLAPI void APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); +GLAPI void APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); +GLAPI void APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +GLAPI const GLubyte * APIENTRY glGetStringi (GLenum name, GLuint index); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void (APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); +typedef void (APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); +typedef void (APIENTRYP PFNGLENABLEIPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLDISABLEIPROC) (GLenum target, GLuint index); +typedef GLboolean (APIENTRYP PFNGLISENABLEDIPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); +typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); +typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar* const *varyings, GLenum bufferMode); +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp); +typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode); +typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC) (void); +typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint x, GLint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint x, GLuint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); +typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint color, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); +typedef void (APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); +typedef void (APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); +typedef void (APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); +typedef void (APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); +typedef void (APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); +#endif + +#ifndef GL_VERSION_3_1 +#define GL_VERSION_3_1 1 +/* OpenGL 3.1 also reuses entry points from these extensions: */ +/* ARB_copy_buffer */ +/* ARB_uniform_buffer_object */ +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); +GLAPI void APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instancecount); +GLAPI void APIENTRY glTexBuffer (GLenum target, GLenum internalformat, GLuint buffer); +GLAPI void APIENTRY glPrimitiveRestartIndex (GLuint index); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instancecount); +typedef void (APIENTRYP PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer); +typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint index); +#endif + +#ifndef GL_VERSION_3_2 +#define GL_VERSION_3_2 1 +/* OpenGL 3.2 also reuses entry points from these extensions: */ +/* ARB_draw_elements_base_vertex */ +/* ARB_provoking_vertex */ +/* ARB_sync */ +/* ARB_texture_multisample */ +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); +GLAPI void APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); +GLAPI void APIENTRY glFramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); +#endif + +#ifndef GL_VERSION_3_3 +#define GL_VERSION_3_3 1 +/* OpenGL 3.3 also reuses entry points from these extensions: */ +/* ARB_blend_func_extended */ +/* ARB_sampler_objects */ +/* ARB_explicit_attrib_location, but it has none */ +/* ARB_occlusion_query2 (no entry points) */ +/* ARB_shader_bit_encoding (no entry points) */ +/* ARB_texture_rgb10_a2ui (no entry points) */ +/* ARB_texture_swizzle (no entry points) */ +/* ARB_timer_query */ +/* ARB_vertex_type_2_10_10_10_rev */ +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); +#endif + +#ifndef GL_VERSION_4_0 +#define GL_VERSION_4_0 1 +/* OpenGL 4.0 also reuses entry points from these extensions: */ +/* ARB_texture_query_lod (no entry points) */ +/* ARB_draw_indirect */ +/* ARB_gpu_shader5 (no entry points) */ +/* ARB_gpu_shader_fp64 */ +/* ARB_shader_subroutine */ +/* ARB_tessellation_shader */ +/* ARB_texture_buffer_object_rgb32 (no entry points) */ +/* ARB_texture_cube_map_array (no entry points) */ +/* ARB_texture_gather (no entry points) */ +/* ARB_transform_feedback2 */ +/* ARB_transform_feedback3 */ +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glMinSampleShading (GLfloat value); +GLAPI void APIENTRY glBlendEquationi (GLuint buf, GLenum mode); +GLAPI void APIENTRY glBlendEquationSeparatei (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +GLAPI void APIENTRY glBlendFunci (GLuint buf, GLenum src, GLenum dst); +GLAPI void APIENTRY glBlendFuncSeparatei (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLMINSAMPLESHADINGPROC) (GLfloat value); +typedef void (APIENTRYP PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (APIENTRYP PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +#endif + +#ifndef GL_VERSION_4_1 +#define GL_VERSION_4_1 1 +/* OpenGL 4.1 reuses entry points from these extensions: */ +/* ARB_ES2_compatibility */ +/* ARB_get_program_binary */ +/* ARB_separate_shader_objects */ +/* ARB_shader_precision (no entry points) */ +/* ARB_vertex_attrib_64bit */ +/* ARB_viewport_array */ +#endif + +#ifndef GL_ARB_depth_buffer_float +#define GL_ARB_depth_buffer_float 1 +#endif + +#ifndef GL_ARB_framebuffer_object +#define GL_ARB_framebuffer_object 1 +#ifdef GL3_PROTOTYPES +GLAPI GLboolean APIENTRY glIsRenderbuffer (GLuint renderbuffer); +GLAPI void APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); +GLAPI void APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); +GLAPI void APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); +GLAPI void APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI GLboolean APIENTRY glIsFramebuffer (GLuint framebuffer); +GLAPI void APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); +GLAPI void APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); +GLAPI void APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); +GLAPI GLenum APIENTRY glCheckFramebufferStatus (GLenum target); +GLAPI void APIENTRY glFramebufferTexture1D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GLAPI void APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GLAPI void APIENTRY glFramebufferTexture3D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +GLAPI void APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +GLAPI void APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); +GLAPI void APIENTRY glGenerateMipmap (GLenum target); +GLAPI void APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +GLAPI void APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +#endif /* GL3_PROTOTYPES */ +typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); +typedef void (APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); +typedef void (APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); +typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); +typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); +typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); +typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +#endif + +#ifndef GL_ARB_framebuffer_sRGB +#define GL_ARB_framebuffer_sRGB 1 +#endif + +#ifndef GL_ARB_half_float_vertex +#define GL_ARB_half_float_vertex 1 +#endif + +#ifndef GL_ARB_map_buffer_range +#define GL_ARB_map_buffer_range 1 +#ifdef GL3_PROTOTYPES +GLAPI GLvoid* APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +GLAPI void APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); +#endif /* GL3_PROTOTYPES */ +typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); +#endif + +#ifndef GL_ARB_texture_compression_rgtc +#define GL_ARB_texture_compression_rgtc 1 +#endif + +#ifndef GL_ARB_texture_rg +#define GL_ARB_texture_rg 1 +#endif + +#ifndef GL_ARB_vertex_array_object +#define GL_ARB_vertex_array_object 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glBindVertexArray (GLuint array); +GLAPI void APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); +GLAPI void APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); +GLAPI GLboolean APIENTRY glIsVertexArray (GLuint array); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); +typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); +typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); +typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); +#endif + +#ifndef GL_ARB_uniform_buffer_object +#define GL_ARB_uniform_buffer_object 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar* const *uniformNames, GLuint *uniformIndices); +GLAPI void APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetActiveUniformName (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); +GLAPI GLuint APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); +GLAPI void APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); +GLAPI void APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar* const *uniformNames, GLuint *uniformIndices); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); +typedef GLuint (APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); +typedef void (APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); +#endif + +#ifndef GL_ARB_copy_buffer +#define GL_ARB_copy_buffer 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +#endif + +#ifndef GL_ARB_depth_clamp +#define GL_ARB_depth_clamp 1 +#endif + +#ifndef GL_ARB_draw_elements_base_vertex +#define GL_ARB_draw_elements_base_vertex 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); +GLAPI void APIENTRY glDrawRangeElementsBaseVertex (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); +GLAPI void APIENTRY glDrawElementsInstancedBaseVertex (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instancecount, GLint basevertex); +GLAPI void APIENTRY glMultiDrawElementsBaseVertex (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei drawcount, const GLint *basevertex); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instancecount, GLint basevertex); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei drawcount, const GLint *basevertex); +#endif + +#ifndef GL_ARB_fragment_coord_conventions +#define GL_ARB_fragment_coord_conventions 1 +#endif + +#ifndef GL_ARB_provoking_vertex +#define GL_ARB_provoking_vertex 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glProvokingVertex (GLenum mode); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROVOKINGVERTEXPROC) (GLenum mode); +#endif + +#ifndef GL_ARB_seamless_cube_map +#define GL_ARB_seamless_cube_map 1 +#endif + +#ifndef GL_ARB_sync +#define GL_ARB_sync 1 +#ifdef GL3_PROTOTYPES +GLAPI GLsync APIENTRY glFenceSync (GLenum condition, GLbitfield flags); +GLAPI GLboolean APIENTRY glIsSync (GLsync sync); +GLAPI void APIENTRY glDeleteSync (GLsync sync); +GLAPI GLenum APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); +GLAPI void APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); +GLAPI void APIENTRY glGetInteger64v (GLenum pname, GLint64 *params); +GLAPI void APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +#endif /* GL3_PROTOTYPES */ +typedef GLsync (APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); +typedef GLboolean (APIENTRYP PFNGLISSYNCPROC) (GLsync sync); +typedef void (APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); +typedef GLenum (APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *params); +typedef void (APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +#endif + +#ifndef GL_ARB_texture_multisample +#define GL_ARB_texture_multisample 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glTexImage2DMultisample (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +GLAPI void APIENTRY glTexImage3DMultisample (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +GLAPI void APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val); +GLAPI void APIENTRY glSampleMaski (GLuint index, GLbitfield mask); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val); +typedef void (APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield mask); +#endif + +#ifndef GL_ARB_vertex_array_bgra +#define GL_ARB_vertex_array_bgra 1 +#endif + +#ifndef GL_ARB_texture_query_lod +#define GL_ARB_texture_query_lod 1 +#endif + +#ifndef GL_ARB_blend_func_extended +#define GL_ARB_blend_func_extended 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glBindFragDataLocationIndexed (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); +GLAPI GLint APIENTRY glGetFragDataIndex (GLuint program, const GLchar *name); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const GLchar *name); +#endif + +#ifndef GL_ARB_explicit_attrib_location +#define GL_ARB_explicit_attrib_location 1 +#endif + +#ifndef GL_ARB_occlusion_query2 +#define GL_ARB_occlusion_query2 1 +#endif + +#ifndef GL_ARB_sampler_objects +#define GL_ARB_sampler_objects 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); +GLAPI void APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); +GLAPI GLboolean APIENTRY glIsSampler (GLuint sampler); +GLAPI void APIENTRY glBindSampler (GLuint unit, GLuint sampler); +GLAPI void APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); +GLAPI void APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); +GLAPI void APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); +GLAPI void APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); +GLAPI void APIENTRY glSamplerParameterIiv (GLuint sampler, GLenum pname, const GLint *param); +GLAPI void APIENTRY glSamplerParameterIuiv (GLuint sampler, GLenum pname, const GLuint *param); +GLAPI void APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetSamplerParameterIiv (GLuint sampler, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetSamplerParameterIuiv (GLuint sampler, GLenum pname, GLuint *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); +typedef void (APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); +typedef GLboolean (APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); +typedef void (APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint *param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint *param); +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint *params); +#endif + +#ifndef GL_ARB_shader_bit_encoding +#define GL_ARB_shader_bit_encoding 1 +#endif + +#ifndef GL_ARB_texture_rgb10_a2ui +#define GL_ARB_texture_rgb10_a2ui 1 +#endif + +#ifndef GL_ARB_texture_swizzle +#define GL_ARB_texture_swizzle 1 +#endif + +#ifndef GL_ARB_timer_query +#define GL_ARB_timer_query 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glQueryCounter (GLuint id, GLenum target); +GLAPI void APIENTRY glGetQueryObjecti64v (GLuint id, GLenum pname, GLint64 *params); +GLAPI void APIENTRY glGetQueryObjectui64v (GLuint id, GLenum pname, GLuint64 *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64 *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64 *params); +#endif + +#ifndef GL_ARB_vertex_type_2_10_10_10_rev +#define GL_ARB_vertex_type_2_10_10_10_rev 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glVertexAttribP1ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI void APIENTRY glVertexAttribP1uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI void APIENTRY glVertexAttribP2ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI void APIENTRY glVertexAttribP2uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI void APIENTRY glVertexAttribP3ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI void APIENTRY glVertexAttribP3uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI void APIENTRY glVertexAttribP4ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI void APIENTRY glVertexAttribP4uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +#endif + +#ifndef GL_ARB_draw_indirect +#define GL_ARB_draw_indirect 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glDrawArraysIndirect (GLenum mode, const GLvoid *indirect); +GLAPI void APIENTRY glDrawElementsIndirect (GLenum mode, GLenum type, const GLvoid *indirect); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const GLvoid *indirect); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const GLvoid *indirect); +#endif + +#ifndef GL_ARB_gpu_shader5 +#define GL_ARB_gpu_shader5 1 +#endif + +#ifndef GL_ARB_gpu_shader_fp64 +#define GL_ARB_gpu_shader_fp64 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glUniform1d (GLint location, GLdouble x); +GLAPI void APIENTRY glUniform2d (GLint location, GLdouble x, GLdouble y); +GLAPI void APIENTRY glUniform3d (GLint location, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glUniform4d (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glUniform1dv (GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glUniform2dv (GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glUniform3dv (GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glUniform4dv (GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix2x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix2x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix3x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix3x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix4x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix4x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glGetUniformdv (GLuint program, GLint location, GLdouble *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLUNIFORM1DPROC) (GLint location, GLdouble x); +typedef void (APIENTRYP PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble *params); +#endif + +#ifndef GL_ARB_shader_subroutine +#define GL_ARB_shader_subroutine 1 +#ifdef GL3_PROTOTYPES +GLAPI GLint APIENTRY glGetSubroutineUniformLocation (GLuint program, GLenum shadertype, const GLchar *name); +GLAPI GLuint APIENTRY glGetSubroutineIndex (GLuint program, GLenum shadertype, const GLchar *name); +GLAPI void APIENTRY glGetActiveSubroutineUniformiv (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); +GLAPI void APIENTRY glGetActiveSubroutineUniformName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); +GLAPI void APIENTRY glGetActiveSubroutineName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); +GLAPI void APIENTRY glUniformSubroutinesuiv (GLenum shadertype, GLsizei count, const GLuint *indices); +GLAPI void APIENTRY glGetUniformSubroutineuiv (GLenum shadertype, GLint location, GLuint *params); +GLAPI void APIENTRY glGetProgramStageiv (GLuint program, GLenum shadertype, GLenum pname, GLint *values); +#endif /* GL3_PROTOTYPES */ +typedef GLint (APIENTRYP PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const GLchar *name); +typedef GLuint (APIENTRYP PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const GLchar *name); +typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); +typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); +typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); +typedef void (APIENTRYP PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint *indices); +typedef void (APIENTRYP PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint *values); +#endif + +#ifndef GL_ARB_tessellation_shader +#define GL_ARB_tessellation_shader 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glPatchParameteri (GLenum pname, GLint value); +GLAPI void APIENTRY glPatchParameterfv (GLenum pname, const GLfloat *values); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value); +typedef void (APIENTRYP PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat *values); +#endif + +#ifndef GL_ARB_texture_buffer_object_rgb32 +#define GL_ARB_texture_buffer_object_rgb32 1 +#endif + +#ifndef GL_ARB_transform_feedback2 +#define GL_ARB_transform_feedback2 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glBindTransformFeedback (GLenum target, GLuint id); +GLAPI void APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); +GLAPI void APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); +GLAPI GLboolean APIENTRY glIsTransformFeedback (GLuint id); +GLAPI void APIENTRY glPauseTransformFeedback (void); +GLAPI void APIENTRY glResumeTransformFeedback (void); +GLAPI void APIENTRY glDrawTransformFeedback (GLenum mode, GLuint id); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); +typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); +typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); +typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id); +#endif + +#ifndef GL_ARB_transform_feedback3 +#define GL_ARB_transform_feedback3 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glDrawTransformFeedbackStream (GLenum mode, GLuint id, GLuint stream); +GLAPI void APIENTRY glBeginQueryIndexed (GLenum target, GLuint index, GLuint id); +GLAPI void APIENTRY glEndQueryIndexed (GLenum target, GLuint index); +GLAPI void APIENTRY glGetQueryIndexediv (GLenum target, GLuint index, GLenum pname, GLint *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream); +typedef void (APIENTRYP PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id); +typedef void (APIENTRYP PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); +#endif + +#ifndef GL_ARB_ES2_compatibility +#define GL_ARB_ES2_compatibility 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glReleaseShaderCompiler (void); +GLAPI void APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length); +GLAPI void APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); +GLAPI void APIENTRY glDepthRangef (GLclampf n, GLclampf f); +GLAPI void APIENTRY glClearDepthf (GLclampf d); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); +typedef void (APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length); +typedef void (APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); +typedef void (APIENTRYP PFNGLDEPTHRANGEFPROC) (GLclampf n, GLclampf f); +typedef void (APIENTRYP PFNGLCLEARDEPTHFPROC) (GLclampf d); +#endif + +#ifndef GL_ARB_get_program_binary +#define GL_ARB_get_program_binary 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); +GLAPI void APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length); +GLAPI void APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); +typedef void (APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); +#endif + +#ifndef GL_ARB_separate_shader_objects +#define GL_ARB_separate_shader_objects 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program); +GLAPI void APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program); +GLAPI GLuint APIENTRY glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar* const *strings); +GLAPI void APIENTRY glBindProgramPipeline (GLuint pipeline); +GLAPI void APIENTRY glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines); +GLAPI void APIENTRY glGenProgramPipelines (GLsizei n, GLuint *pipelines); +GLAPI GLboolean APIENTRY glIsProgramPipeline (GLuint pipeline); +GLAPI void APIENTRY glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params); +GLAPI void APIENTRY glProgramUniform1i (GLuint program, GLint location, GLint v0); +GLAPI void APIENTRY glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform1f (GLuint program, GLint location, GLfloat v0); +GLAPI void APIENTRY glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform1d (GLuint program, GLint location, GLdouble v0); +GLAPI void APIENTRY glProgramUniform1dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform1ui (GLuint program, GLint location, GLuint v0); +GLAPI void APIENTRY glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1); +GLAPI void APIENTRY glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1); +GLAPI void APIENTRY glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform2d (GLuint program, GLint location, GLdouble v0, GLdouble v1); +GLAPI void APIENTRY glProgramUniform2dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1); +GLAPI void APIENTRY glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +GLAPI void APIENTRY glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +GLAPI void APIENTRY glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform3d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); +GLAPI void APIENTRY glProgramUniform3dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +GLAPI void APIENTRY glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +GLAPI void APIENTRY glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +GLAPI void APIENTRY glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform4d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); +GLAPI void APIENTRY glProgramUniform4dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +GLAPI void APIENTRY glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix2x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix3x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix2x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix4x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix3x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix4x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glValidateProgramPipeline (GLuint pipeline); +GLAPI void APIENTRY glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); +typedef void (APIENTRYP PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); +typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar* const *strings); +typedef void (APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); +typedef void (APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines); +typedef void (APIENTRYP PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); +typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); +typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +#endif + +#ifndef GL_ARB_shader_precision +#define GL_ARB_shader_precision 1 +#endif + +#ifndef GL_ARB_vertex_attrib_64bit +#define GL_ARB_vertex_attrib_64bit 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glVertexAttribL1d (GLuint index, GLdouble x); +GLAPI void APIENTRY glVertexAttribL2d (GLuint index, GLdouble x, GLdouble y); +GLAPI void APIENTRY glVertexAttribL3d (GLuint index, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glVertexAttribL4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glVertexAttribL1dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribL2dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribL3dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribL4dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribLPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +GLAPI void APIENTRY glGetVertexAttribLdv (GLuint index, GLenum pname, GLdouble *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble *params); +#endif + +#ifndef GL_ARB_viewport_array +#define GL_ARB_viewport_array 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glViewportArrayv (GLuint first, GLsizei count, const GLfloat *v); +GLAPI void APIENTRY glViewportIndexedf (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +GLAPI void APIENTRY glViewportIndexedfv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glScissorArrayv (GLuint first, GLsizei count, const GLint *v); +GLAPI void APIENTRY glScissorIndexed (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +GLAPI void APIENTRY glScissorIndexedv (GLuint index, const GLint *v); +GLAPI void APIENTRY glDepthRangeArrayv (GLuint first, GLsizei count, const GLclampd *v); +GLAPI void APIENTRY glDepthRangeIndexed (GLuint index, GLclampd n, GLclampd f); +GLAPI void APIENTRY glGetFloati_v (GLenum target, GLuint index, GLfloat *data); +GLAPI void APIENTRY glGetDoublei_v (GLenum target, GLuint index, GLdouble *data); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint *v); +typedef void (APIENTRYP PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLclampd *v); +typedef void (APIENTRYP PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLclampd n, GLclampd f); +typedef void (APIENTRYP PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat *data); +typedef void (APIENTRYP PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble *data); +#endif + + +#ifdef __cplusplus +} +#endif + +#endif diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gl3ext.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gl3ext.h" new file mode 100644 index 0000000..2c82000 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gl3ext.h" @@ -0,0 +1,363 @@ +/* + Copyright: (c) 2010-2013 Apple Inc. All rights reserved. +*/ + +#ifndef __gl3ext_h_ +#define __gl3ext_h_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) +#define WIN32_LEAN_AND_MEAN 1 +#include +#endif + +#if defined(__APPLE__) +#define GL3_PROTOTYPES +#endif + +#ifndef APIENTRY +#define APIENTRY +#endif +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * +#endif +#ifndef GLAPI +#define GLAPI extern +#endif + +/****** Enums ************************************************/ + +#ifndef GL_ARB_instanced_arrays +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE +#endif + +#ifndef GL_ARB_internalformat_query +#define GL_NUM_SAMPLE_COUNTS 0x9380 +#endif + +#ifndef GL_ARB_sample_shading +#define GL_SAMPLE_SHADING_ARB 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37 +#endif + +#ifndef GL_ARB_shading_language_include +#define GL_SHADER_INCLUDE_ARB 0x8DAE +#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9 +#define GL_NAMED_STRING_TYPE_ARB 0x8DEA +#endif + +#ifndef GL_ARB_texture_cube_map_array +#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B +#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F +#endif + +#ifndef GL_ARB_texture_gather +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F +#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F +#endif + +#ifndef GL_ARB_texture_storage +#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F +#endif + +#ifndef GL_EXT_debug_label +/* reuse GL_TEXTURE */ +/* reuse GL_FRAMEBUFFER */ +/* reuse GL_RENDERBUFFER */ +/* reuse GL_TRANSFORM_FEEDBACK */ +#define GL_BUFFER_OBJECT_EXT 0x9151 +#define GL_SHADER_OBJECT_EXT 0x8B48 +#define GL_PROGRAM_OBJECT_EXT 0x8B40 +#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 +#define GL_QUERY_OBJECT_EXT 0x9153 +#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F +#define GL_SYNC_OBJECT_APPLE 0x8A53 +#define GL_SAMPLER 0x82E6 +#endif + +#ifndef GL_EXT_depth_bounds_test +#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 +#define GL_DEPTH_BOUNDS_EXT 0x8891 +#endif + +#ifndef GL_EXT_framebuffer_multisample_blit_scaled +#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA +#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB +#endif + +#ifndef GL_EXT_texture_compression_s3tc +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 +#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F +#endif + +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF +#endif + +#ifndef GL_EXT_texture_mirror_clamp +#define GL_MIRROR_CLAMP_EXT 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 +#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 +#endif + +#ifndef GL_EXT_texture_sRGB_decode +#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 +#define GL_DECODE_EXT 0x8A49 +#define GL_SKIP_DECODE_EXT 0x8A4A +#endif + +#ifndef GL_APPLE_client_storage +#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 +#endif + +#ifndef GL_APPLE_object_purgeable +#define GL_RELEASED_APPLE 0x8A19 +#define GL_VOLATILE_APPLE 0x8A1A +#define GL_RETAINED_APPLE 0x8A1B +#define GL_UNDEFINED_APPLE 0x8A1C +#define GL_PURGEABLE_APPLE 0x8A1D +#endif + +#ifndef GL_APPLE_rgb_422 +#define GL_RGB_422_APPLE 0x8A1F +#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB +#define GL_RGB_RAW_422_APPLE 0x8A51 +#endif + +#ifndef GL_APPLE_row_bytes +#define GL_PACK_ROW_BYTES_APPLE 0x8A15 +#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16 +#define GL_PACK_IMAGE_BYTES_APPLE 0x8A17 +#define GL_UNPACK_IMAGE_BYTES_APPLE 0x8A18 +#endif + +#ifndef GL_APPLE_texture_range +#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 +#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 +#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC +#define GL_TEXTURE_MINIMIZE_STORAGE_APPLE 0x85B6 +#define GL_STORAGE_PRIVATE_APPLE 0x85BD +#define GL_STORAGE_CACHED_APPLE 0x85BE +#define GL_STORAGE_SHARED_APPLE 0x85BF +#endif + +#ifndef GL_ATI_texture_mirror_once +#define GL_MIRROR_CLAMP_ATI 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 +#endif + +/****** Functions Prototypes *********************************/ + +#ifndef GL_ARB_draw_buffers_blend +#define GL_ARB_draw_buffers_blend 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glBlendEquationiARB (GLuint buf, GLenum mode); +GLAPI void APIENTRY glBlendEquationSeparateiARB (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +GLAPI void APIENTRY glBlendFunciARB (GLuint buf, GLenum src, GLenum dst); +GLAPI void APIENTRY glBlendFuncSeparateiARB (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode); +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (APIENTRYP PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +#endif + +#ifndef GL_ARB_instanced_arrays +#define GL_ARB_instanced_arrays 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glVertexAttribDivisorARB (GLuint index, GLuint divisor); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor); +#endif + +#ifndef GL_ARB_internalformat_query +#define GL_ARB_internalformat_query 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); +#endif + +#ifndef GL_ARB_sample_shading +#define GL_ARB_sample_shading 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glMinSampleShadingARB (GLclampf value); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLMINSAMPLESHADINGARBPROC) (GLclampf value); +#endif + +#ifndef GL_ARB_shading_language_include +#define GL_ARB_shading_language_include 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glNamedStringARB (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); +GLAPI void APIENTRY glDeleteNamedStringARB (GLint namelen, const GLchar *name); +GLAPI void APIENTRY glCompileShaderIncludeARB (GLuint shader, GLsizei count, const GLchar* const *path, const GLint *length); +GLAPI GLboolean APIENTRY glIsNamedStringARB (GLint namelen, const GLchar *name); +GLAPI void APIENTRY glGetNamedStringARB (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); +GLAPI void APIENTRY glGetNamedStringivARB (GLint namelen, const GLchar *name, GLenum pname, GLint *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); +typedef void (APIENTRYP PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name); +typedef void (APIENTRYP PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const GLchar* const *path, const GLint *length); +typedef GLboolean (APIENTRYP PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name); +typedef void (APIENTRYP PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); +typedef void (APIENTRYP PFNGLGETNAMEDSTRINGIVARBPROC) (GLint namelen, const GLchar *name, GLenum pname, GLint *params); +#endif + +#ifndef GL_ARB_texture_cube_map_array +#define GL_ARB_texture_cube_map_array 1 +#endif + +#ifndef GL_ARB_texture_gather +#define GL_ARB_texture_gather 1 +#endif + +#ifndef GL_ARB_texture_storage +#define GL_ARB_texture_storage 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glTexStorage1D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +GLAPI void APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXSTORAGE1DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +#endif + +#ifndef GL_EXT_debug_label +#define GL_EXT_debug_label 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label); +GLAPI void APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label); +typedef void (APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#endif + +#ifndef GL_EXT_debug_marker +#define GL_EXT_debug_marker 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glInsertEventMarkerEXT (GLsizei length, const char *marker); +GLAPI void APIENTRY glPushGroupMarkerEXT (GLsizei length, const char *marker); +GLAPI void APIENTRY glPopGroupMarkerEXT (void); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const char *marker); +typedef void (APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const char *marker); +typedef void (APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void); +#endif + +#ifndef GL_EXT_depth_bounds_test +#define GL_EXT_depth_bounds_test 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glDepthBoundsEXT (GLclampd zmin, GLclampd zmax); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); +#endif + +#ifndef GL_EXT_framebuffer_multisample_blit_scaled +#define GL_EXT_framebuffer_multisample_blit_scaled 1 +#endif + +#ifndef GL_EXT_texture_compression_s3tc +#define GL_EXT_texture_compression_s3tc 1 +#endif + +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_EXT_texture_filter_anisotropic 1 +#endif + +#ifndef GL_EXT_texture_mirror_clamp +#define GL_EXT_texture_mirror_clamp 1 +#endif + +#ifndef GL_EXT_texture_sRGB_decode +#define GL_EXT_texture_sRGB_decode 1 +#endif + +#ifndef GL_APPLE_client_storage +#define GL_APPLE_client_storage 1 +#endif + +#ifndef GL_APPLE_container_object_shareable +#define GL_APPLE_container_object_shareable 1 +#endif + +#ifndef GL_APPLE_flush_render +#define GL_APPLE_flush_render 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glFlushRenderAPPLE (void); +GLAPI void APIENTRY glFinishRenderAPPLE (void); +GLAPI void APIENTRY glSwapAPPLE (void); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFLUSHRENDERAPPLEPROC) (void); +typedef void (APIENTRYP PFNGLFINISHRENDERAPPLEPROC) (void); +typedef void (APIENTRYP PFNGLSWAPAPPLEPROC) (void); +#endif + +#ifndef GL_APPLE_object_purgeable +#define GL_APPLE_object_purgeable 1 +#ifdef GL3_PROTOTYPES +GLAPI GLenum APIENTRY glObjectPurgeableAPPLE (GLenum objectType, GLuint name, GLenum option); +GLAPI GLenum APIENTRY glObjectUnpurgeableAPPLE (GLenum objectType, GLuint name, GLenum option); +GLAPI void APIENTRY glGetObjectParameterivAPPLE (GLenum objectType, GLuint name, GLenum pname, GLint *params); +#endif /* GL3_PROTOTYPES */ +typedef GLenum (APIENTRYP PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); +typedef GLenum (APIENTRYP PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); +typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint *params); +#endif + +#ifndef GL_APPLE_rgb_422 +#define GL_APPLE_rgb_422 1 +#endif + +#ifndef GL_APPLE_row_bytes +#define GL_APPLE_row_bytes 1 +#endif + +#ifndef GL_APPLE_texture_range +#define GL_APPLE_texture_range 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glTextureRangeAPPLE (GLenum target, GLsizei length, const GLvoid *pointer); +GLAPI void APIENTRY glGetTexParameterPointervAPPLE (GLenum target, GLenum pname, GLvoid **params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, GLvoid **params); +#endif + +#ifndef GL_ATI_texture_mirror_once +#define GL_ATI_texture_mirror_once 1 +#endif + +#ifndef GL_NV_texture_barrier +#define GL_NV_texture_barrier 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glTextureBarrierNV (void); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXTUREBARRIERNVPROC) (void); +#endif + +#ifdef __cplusplus +} +#endif + +#endif + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/glext.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/glext.h" new file mode 100644 index 0000000..dbd8d97 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/glext.h" @@ -0,0 +1,3730 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef __glext_h_ +#define __glext_h_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** License Applicability. Except to the extent portions of this file are +** made subject to an alternative license as permitted in the SGI Free +** Software License B, Version 1.1 (the "License"), the contents of this +** file are subject only to the provisions of the License. You may not use +** this file except in compliance with the License. You may obtain a copy +** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 +** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: +** +** http://oss.sgi.com/projects/FreeB +** +** Note that, as provided in the License, the Software is distributed on an +** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS +** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND +** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A +** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. +** +** Original Code. The Original Code is: OpenGL Sample Implementation, +** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, +** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. +** Copyright in any portions created by third parties is as indicated +** elsewhere herein. All Rights Reserved. +** +** Additional Notice Provisions: This software was created using the +** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has +** not been independently verified as being compliant with the OpenGL(R) +** version 1.2.1 Specification. +*/ + +/* switches to providing function pointers */ +/* #define GL_GLEXT_FUNCTION_POINTERS 1 */ + +#define GL_ARB_color_buffer_float 1 +#define GL_ARB_depth_buffer_float 1 +#define GL_ARB_depth_clamp 1 +#define GL_ARB_depth_texture 1 +#define GL_ARB_draw_buffers 1 +#define GL_ARB_draw_elements_base_vertex 1 +#define GL_ARB_draw_instanced 1 +#define GL_ARB_fragment_program 1 +#define GL_ARB_fragment_program_shadow 1 +#define GL_ARB_fragment_shader 1 +#define GL_ARB_framebuffer_object 1 +#define GL_ARB_framebuffer_sRGB 1 +#define GL_ARB_half_float_pixel 1 +#define GL_ARB_half_float_vertex 1 +#define GL_ARB_imaging 1 +#define GL_ARB_instanced_arrays 1 +#define GL_ARB_multisample 1 +#define GL_ARB_multitexture 1 +#define GL_ARB_occlusion_query 1 +#define GL_ARB_pixel_buffer_object 1 +#define GL_ARB_point_parameters 1 +#define GL_ARB_point_sprite 1 +#define GL_ARB_provoking_vertex 1 +#define GL_ARB_seamless_cube_map 1 +#define GL_ARB_shader_objects 1 +#define GL_ARB_shader_texture_lod 1 +#define GL_ARB_shading_language_100 1 +#define GL_ARB_shadow 1 +#define GL_ARB_shadow_ambient 1 +#define GL_ARB_sync 1 +#define GL_ARB_texture_border_clamp 1 +#define GL_ARB_texture_compression 1 +#define GL_ARB_texture_compression_rgtc 1 +#define GL_ARB_texture_cube_map 1 +#define GL_ARB_texture_env_add 1 +#define GL_ARB_texture_env_combine 1 +#define GL_ARB_texture_env_crossbar 1 +#define GL_ARB_texture_env_dot3 1 +#define GL_ARB_texture_float 1 +#define GL_ARB_texture_mirrored_repeat 1 +#define GL_ARB_texture_non_power_of_two 1 +#define GL_ARB_texture_rectangle 1 +#define GL_ARB_texture_rg 1 +#define GL_ARB_transpose_matrix 1 +#define GL_ARB_vertex_array_bgra 1 +#define GL_ARB_vertex_blend 1 +#define GL_ARB_vertex_buffer_object 1 +#define GL_ARB_vertex_program 1 +#define GL_ARB_vertex_shader 1 +#define GL_ARB_window_pos 1 +#define GL_EXT_abgr 1 +#define GL_EXT_bgra 1 +#define GL_EXT_bindable_uniform 1 +#define GL_EXT_blend_color 1 +#define GL_EXT_blend_equation_separate 1 +#define GL_EXT_blend_func_separate 1 +#define GL_EXT_blend_minmax 1 +#define GL_EXT_blend_subtract 1 +#define GL_EXT_clip_volume_hint 1 +#define GL_EXT_debug_label 1 +#define GL_EXT_debug_marker 1 +#define GL_EXT_depth_bounds_test 1 +#define GL_EXT_draw_buffers2 1 +#define GL_EXT_draw_range_elements 1 +#define GL_EXT_fog_coord 1 +#define GL_EXT_framebuffer_blit 1 +#define GL_EXT_framebuffer_multisample 1 +#define GL_EXT_framebuffer_multisample_blit_scaled 1 +#define GL_EXT_framebuffer_object 1 +#define GL_EXT_framebuffer_sRGB 1 +#define GL_EXT_geometry_shader4 1 +#define GL_EXT_gpu_program_parameters 1 +#define GL_EXT_gpu_shader4 1 +#define GL_EXT_multi_draw_arrays 1 +#define GL_EXT_packed_depth_stencil 1 +#define GL_EXT_packed_float 1 +#define GL_EXT_provoking_vertex 1 +#define GL_EXT_rescale_normal 1 +#define GL_EXT_secondary_color 1 +#define GL_EXT_separate_specular_color 1 +#define GL_EXT_shadow_funcs 1 +#define GL_EXT_stencil_two_side 1 +#define GL_EXT_stencil_wrap 1 +#define GL_EXT_texture_array 1 +#define GL_EXT_texture_compression_dxt1 1 +#define GL_EXT_texture_compression_s3tc 1 +#define GL_EXT_texture_env_add 1 +#define GL_EXT_texture_filter_anisotropic 1 +#define GL_EXT_texture_integer 1 +#define GL_EXT_texture_lod_bias 1 +#define GL_EXT_texture_mirror_clamp 1 +#define GL_EXT_texture_rectangle 1 +#define GL_EXT_texture_shared_exponent 1 +#define GL_EXT_texture_sRGB 1 +#define GL_EXT_texture_sRGB_decode 1 +#define GL_EXT_timer_query 1 +#define GL_EXT_transform_feedback 1 +#define GL_EXT_vertex_array_bgra 1 +#define GL_APPLE_aux_depth_stencil 1 +#define GL_APPLE_client_storage 1 +#define GL_APPLE_element_array 1 +#define GL_APPLE_fence 1 +#define GL_APPLE_float_pixels 1 +#define GL_APPLE_flush_buffer_range 1 +#define GL_APPLE_flush_render 1 +#define GL_APPLE_object_purgeable 1 +#define GL_APPLE_packed_pixels 1 +#define GL_APPLE_pixel_buffer 1 +#define GL_APPLE_rgb_422 1 +#define GL_APPLE_row_bytes 1 +#define GL_APPLE_specular_vector 1 +#define GL_APPLE_texture_range 1 +#define GL_APPLE_transform_hint 1 +#define GL_APPLE_vertex_array_object 1 +#define GL_APPLE_vertex_array_range 1 +#define GL_APPLE_vertex_point_size 1 +#define GL_APPLE_vertex_program_evaluators 1 +#define GL_APPLE_ycbcr_422 1 +#define GL_ATI_blend_equation_separate 1 +#define GL_ATI_blend_weighted_minmax 1 +#define GL_ATI_separate_stencil 1 +#define GL_ATI_texture_compression_3dc 1 +#define GL_ATI_texture_env_combine3 1 +#define GL_ATI_texture_float 1 +#define GL_ATI_texture_mirror_once 1 +#define GL_IBM_rasterpos_clip 1 +#define GL_NV_blend_square 1 +#define GL_NV_conditional_render 1 +#define GL_NV_depth_clamp 1 +#define GL_NV_fog_distance 1 +#define GL_NV_fragment_program_option 1 +#define GL_NV_fragment_program2 1 +#define GL_NV_light_max_exponent 1 +#define GL_NV_multisample_filter_hint 1 +#define GL_NV_point_sprite 1 +#define GL_NV_texgen_reflection 1 +#define GL_NV_texture_barrier 1 +#define GL_NV_vertex_program2_option 1 +#define GL_NV_vertex_program3 1 +#define GL_SGI_color_matrix 1 +#define GL_SGIS_generate_mipmap 1 +#define GL_SGIS_texture_edge_clamp 1 +#define GL_SGIS_texture_lod 1 + +#ifdef GL_GLEXT_WUNDEF_SUPPORT +#define GL_EXT_color_subtable 0 +#define GL_EXT_compiled_vertex_array 0 +#define GL_EXT_convolution 0 +#define GL_EXT_copy_texture 0 +#define GL_EXT_histogram 0 +#define GL_EXT_packed_pixels 0 +#define GL_EXT_paletted_texture 0 +#define GL_EXT_polygon_offset 0 +#define GL_EXT_shared_texture_palette 0 +#define GL_EXT_subtexture 0 +#define GL_EXT_texture 0 +#define GL_EXT_texture_cube_map 0 +#define GL_EXT_texture_env_combine 0 +#define GL_EXT_texture_object 0 +#define GL_EXT_texture3D 0 +#define GL_EXT_vertex_array 0 +#define GL_ATI_array_rev_comps_in_4_bytes 0 +#define GL_ATI_pn_triangles 0 +#define GL_ATI_point_cull_mode 0 +#define GL_ATI_text_fragment_shader 0 +#define GL_ATIX_pn_triangles 0 +#define GL_HP_convolution_border_modes 0 +#define GL_NV_register_combiners 0 +#define GL_NV_register_combiners2 0 +#define GL_NV_texture_shader 0 +#define GL_NV_texture_shader2 0 +#define GL_NV_texture_shader3 0 +#define GL_NV_vertex_array_range 0 +#define GL_NV_vertex_array_range2 0 +#define GL_NV_vertex_program 0 +#define GL_SGI_color_table 0 +#define GL_SGIS_point_parameters 0 +#define GL_SGIS_texture_border_clamp 0 +#define GL_SGIX_depth_texture 0 +#endif + +/*************************************************************/ + +#ifndef __gltypes_h_ +#if GL_ARB_half_float_pixel +typedef unsigned short GLhalfARB; +#endif + +#if GL_ARB_half_float_vertex +typedef unsigned short GLhalf; +#endif + +#if GL_ARB_shader_objects +typedef char GLcharARB; +typedef void *GLhandleARB; +#endif + +#if GL_ARB_sync +typedef int64_t GLint64; +typedef uint64_t GLuint64; +typedef struct __GLsync *GLsync; +#endif + +#if GL_ARB_vertex_buffer_object +typedef long GLintptrARB; +typedef long GLsizeiptrARB; +#endif + +#if GL_EXT_timer_query +typedef int64_t GLint64EXT; +typedef uint64_t GLuint64EXT; +#endif +#endif + +/*************************************************************/ +#define GL_GLEXT_VERSION 8 + +#if GL_ARB_color_buffer_float +#define GL_RGBA_FLOAT_MODE_ARB 0x8820 +#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A +#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B +#define GL_CLAMP_READ_COLOR_ARB 0x891C +#define GL_FIXED_ONLY_ARB 0x891D +#endif + +#if GL_ARB_depth_buffer_float +#define GL_DEPTH_COMPONENT32F 0x8CAC +#define GL_DEPTH32F_STENCIL8 0x8CAD +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD +#endif + +#if GL_ARB_depth_clamp +#define GL_DEPTH_CLAMP 0x864F +#endif + +#if GL_ARB_depth_texture +#define GL_DEPTH_COMPONENT16_ARB 0x81A5 +#define GL_DEPTH_COMPONENT24_ARB 0x81A6 +#define GL_DEPTH_COMPONENT32_ARB 0x81A7 +#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A +#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B +#endif + +#if GL_ARB_draw_buffers +#define GL_MAX_DRAW_BUFFERS_ARB 0x8824 +#define GL_DRAW_BUFFER0_ARB 0x8825 +#define GL_DRAW_BUFFER1_ARB 0x8826 +#define GL_DRAW_BUFFER2_ARB 0x8827 +#define GL_DRAW_BUFFER3_ARB 0x8828 +#define GL_DRAW_BUFFER4_ARB 0x8829 +#define GL_DRAW_BUFFER5_ARB 0x882A +#define GL_DRAW_BUFFER6_ARB 0x882B +#define GL_DRAW_BUFFER7_ARB 0x882C +#define GL_DRAW_BUFFER8_ARB 0x882D +#define GL_DRAW_BUFFER9_ARB 0x882E +#define GL_DRAW_BUFFER10_ARB 0x882F +#define GL_DRAW_BUFFER11_ARB 0x8830 +#define GL_DRAW_BUFFER12_ARB 0x8831 +#define GL_DRAW_BUFFER13_ARB 0x8832 +#define GL_DRAW_BUFFER14_ARB 0x8833 +#define GL_DRAW_BUFFER15_ARB 0x8834 +#endif + +#if GL_ARB_fragment_program +#define GL_FRAGMENT_PROGRAM_ARB 0x8804 +#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 +#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 +#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 +#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 +#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 +#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A +#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B +#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C +#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D +#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E +#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F +#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 +#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 +#endif + +#if GL_ARB_fragment_shader +#define GL_FRAGMENT_SHADER_ARB 0x8B30 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B +#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 +#endif + +#if GL_ARB_framebuffer_object +#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 +#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 +#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 +#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 +#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 +#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 +#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 +#define GL_FRAMEBUFFER_DEFAULT 0x8218 +#define GL_FRAMEBUFFER_UNDEFINED 0x8219 +#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A +#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 +#define GL_DEPTH_STENCIL 0x84F9 +#define GL_UNSIGNED_INT_24_8 0x84FA +#define GL_DEPTH24_STENCIL8 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE 0x88F1 +#define GL_TEXTURE_RED_TYPE 0x8C10 +#define GL_TEXTURE_GREEN_TYPE 0x8C11 +#define GL_TEXTURE_BLUE_TYPE 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE 0x8C13 +#define GL_TEXTURE_DEPTH_TYPE 0x8C16 +#define GL_UNSIGNED_NORMALIZED 0x8C17 +#define GL_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_DRAW_FRAMEBUFFER_BINDING GL_FRAMEBUFFER_BINDING +#define GL_RENDERBUFFER_BINDING 0x8CA7 +#define GL_READ_FRAMEBUFFER 0x8CA8 +#define GL_DRAW_FRAMEBUFFER 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA +#define GL_RENDERBUFFER_SAMPLES 0x8CAB +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 +#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD +#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF +#define GL_COLOR_ATTACHMENT0 0x8CE0 +#define GL_COLOR_ATTACHMENT1 0x8CE1 +#define GL_COLOR_ATTACHMENT2 0x8CE2 +#define GL_COLOR_ATTACHMENT3 0x8CE3 +#define GL_COLOR_ATTACHMENT4 0x8CE4 +#define GL_COLOR_ATTACHMENT5 0x8CE5 +#define GL_COLOR_ATTACHMENT6 0x8CE6 +#define GL_COLOR_ATTACHMENT7 0x8CE7 +#define GL_COLOR_ATTACHMENT8 0x8CE8 +#define GL_COLOR_ATTACHMENT9 0x8CE9 +#define GL_COLOR_ATTACHMENT10 0x8CEA +#define GL_COLOR_ATTACHMENT11 0x8CEB +#define GL_COLOR_ATTACHMENT12 0x8CEC +#define GL_COLOR_ATTACHMENT13 0x8CED +#define GL_COLOR_ATTACHMENT14 0x8CEE +#define GL_COLOR_ATTACHMENT15 0x8CEF +#define GL_DEPTH_ATTACHMENT 0x8D00 +#define GL_STENCIL_ATTACHMENT 0x8D20 +#define GL_FRAMEBUFFER 0x8D40 +#define GL_RENDERBUFFER 0x8D41 +#define GL_RENDERBUFFER_WIDTH 0x8D42 +#define GL_RENDERBUFFER_HEIGHT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 +#define GL_STENCIL_INDEX1 0x8D46 +#define GL_STENCIL_INDEX4 0x8D47 +#define GL_STENCIL_INDEX8 0x8D48 +#define GL_STENCIL_INDEX16 0x8D49 +#define GL_RENDERBUFFER_RED_SIZE 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 +#define GL_MAX_SAMPLES 0x8D57 +#endif + +#if GL_ARB_framebuffer_sRGB +#define GL_FRAMEBUFFER_SRGB 0x8DB9 +#endif + +#if GL_ARB_half_float_pixel +#define GL_HALF_FLOAT_ARB 0x140B +#endif + +#if GL_ARB_half_float_vertex +#define GL_HALF_FLOAT 0x140B +#endif + +#if GL_ARB_instanced_arrays +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE +#endif + +#if GL_ARB_multisample +#define GL_MULTISAMPLE_ARB 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F +#define GL_SAMPLE_COVERAGE_ARB 0x80A0 +#define GL_SAMPLE_BUFFERS_ARB 0x80A8 +#define GL_SAMPLES_ARB 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB +#define GL_MULTISAMPLE_BIT_ARB 0x20000000 +#endif + +#if GL_ARB_multitexture +#define GL_TEXTURE0_ARB 0x84C0 +#define GL_TEXTURE1_ARB 0x84C1 +#define GL_TEXTURE2_ARB 0x84C2 +#define GL_TEXTURE3_ARB 0x84C3 +#define GL_TEXTURE4_ARB 0x84C4 +#define GL_TEXTURE5_ARB 0x84C5 +#define GL_TEXTURE6_ARB 0x84C6 +#define GL_TEXTURE7_ARB 0x84C7 +#define GL_TEXTURE8_ARB 0x84C8 +#define GL_TEXTURE9_ARB 0x84C9 +#define GL_TEXTURE10_ARB 0x84CA +#define GL_TEXTURE11_ARB 0x84CB +#define GL_TEXTURE12_ARB 0x84CC +#define GL_TEXTURE13_ARB 0x84CD +#define GL_TEXTURE14_ARB 0x84CE +#define GL_TEXTURE15_ARB 0x84CF +#define GL_TEXTURE16_ARB 0x84D0 +#define GL_TEXTURE17_ARB 0x84D1 +#define GL_TEXTURE18_ARB 0x84D2 +#define GL_TEXTURE19_ARB 0x84D3 +#define GL_TEXTURE20_ARB 0x84D4 +#define GL_TEXTURE21_ARB 0x84D5 +#define GL_TEXTURE22_ARB 0x84D6 +#define GL_TEXTURE23_ARB 0x84D7 +#define GL_TEXTURE24_ARB 0x84D8 +#define GL_TEXTURE25_ARB 0x84D9 +#define GL_TEXTURE26_ARB 0x84DA +#define GL_TEXTURE27_ARB 0x84DB +#define GL_TEXTURE28_ARB 0x84DC +#define GL_TEXTURE29_ARB 0x84DD +#define GL_TEXTURE30_ARB 0x84DE +#define GL_TEXTURE31_ARB 0x84DF +#define GL_ACTIVE_TEXTURE_ARB 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 +#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 +#endif + +#if GL_ARB_occlusion_query +#define GL_SAMPLES_PASSED_ARB 0x8914 +#define GL_QUERY_COUNTER_BITS_ARB 0x8864 +#define GL_CURRENT_QUERY_ARB 0x8865 +#define GL_QUERY_RESULT_ARB 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 +#endif + +#if GL_ARB_pixel_buffer_object +#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB +#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF +#endif + +#if GL_ARB_point_parameters +#define GL_POINT_SIZE_MIN_ARB 0x8126 +#define GL_POINT_SIZE_MAX_ARB 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 +#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 +#endif + +#if GL_ARB_point_sprite +#define GL_POINT_SPRITE_ARB 0x8861 +#define GL_COORD_REPLACE_ARB 0x8862 +#endif + +#if GL_ARB_provoking_vertex +#define GL_FIRST_VERTEX_CONVENTION 0x8E4D +#define GL_LAST_VERTEX_CONVENTION 0x8E4E +#define GL_PROVOKING_VERTEX 0x8E4F +#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C +#endif + +#if GL_ARB_seamless_cube_map +#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F +#endif + +#if GL_ARB_shader_objects +#define GL_PROGRAM_OBJECT_ARB 0x8B40 +#define GL_OBJECT_TYPE_ARB 0x8B4E +#define GL_OBJECT_SUBTYPE_ARB 0x8B4F +#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 +#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 +#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 +#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 +#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 +#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 +#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 +#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 +#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 +#define GL_SHADER_OBJECT_ARB 0x8B48 +#define GL_FLOAT_VEC2_ARB 0x8B50 +#define GL_FLOAT_VEC3_ARB 0x8B51 +#define GL_FLOAT_VEC4_ARB 0x8B52 +#define GL_INT_VEC2_ARB 0x8B53 +#define GL_INT_VEC3_ARB 0x8B54 +#define GL_INT_VEC4_ARB 0x8B55 +#define GL_BOOL_ARB 0x8B56 +#define GL_BOOL_VEC2_ARB 0x8B57 +#define GL_BOOL_VEC3_ARB 0x8B58 +#define GL_BOOL_VEC4_ARB 0x8B59 +#define GL_FLOAT_MAT2_ARB 0x8B5A +#define GL_FLOAT_MAT3_ARB 0x8B5B +#define GL_FLOAT_MAT4_ARB 0x8B5C +#define GL_SAMPLER_1D_ARB 0x8B5D +#define GL_SAMPLER_2D_ARB 0x8B5E +#define GL_SAMPLER_3D_ARB 0x8B5F +#define GL_SAMPLER_CUBE_ARB 0x8B60 +#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 +#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 +#define GL_SAMPLER_2D_RECT_ARB 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 +#endif + +#if GL_ARB_shading_language_100 +#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C +#endif + +#if GL_ARB_shadow +#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C +#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D +#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E +#endif + +#if GL_ARB_shadow_ambient +#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF +#endif + +#if GL_ARB_sync +#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 +#define GL_OBJECT_TYPE 0x9112 +#define GL_SYNC_CONDITION 0x9113 +#define GL_SYNC_STATUS 0x9114 +#define GL_SYNC_FLAGS 0x9115 +#define GL_SYNC_FENCE 0x9116 +#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 +#define GL_UNSIGNALED 0x9118 +#define GL_SIGNALED 0x9119 +#define GL_ALREADY_SIGNALED 0x911A +#define GL_TIMEOUT_EXPIRED 0x911B +#define GL_CONDITION_SATISFIED 0x911C +#define GL_WAIT_FAILED 0x911D +#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 +#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull +#endif + +#if GL_ARB_texture_border_clamp +#define GL_CLAMP_TO_BORDER_ARB 0x812D +#endif + +#if GL_ARB_texture_compression +#define GL_COMPRESSED_ALPHA_ARB 0x84E9 +#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB +#define GL_COMPRESSED_INTENSITY_ARB 0x84EC +#define GL_COMPRESSED_RGB_ARB 0x84ED +#define GL_COMPRESSED_RGBA_ARB 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 +#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 +#endif + +#if GL_ARB_texture_compression_rgtc +#define GL_COMPRESSED_RED_RGTC1 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC +#define GL_COMPRESSED_RG_RGTC2 0x8DBD +#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE +#endif + +#if GL_ARB_texture_cube_map +#define GL_NORMAL_MAP_ARB 0x8511 +#define GL_REFLECTION_MAP_ARB 0x8512 +#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C +#endif + +#if GL_ARB_texture_env_combine +#define GL_COMBINE_ARB 0x8570 +#define GL_COMBINE_RGB_ARB 0x8571 +#define GL_COMBINE_ALPHA_ARB 0x8572 +#define GL_RGB_SCALE_ARB 0x8573 +#define GL_ADD_SIGNED_ARB 0x8574 +#define GL_INTERPOLATE_ARB 0x8575 +#define GL_CONSTANT_ARB 0x8576 +#define GL_PRIMARY_COLOR_ARB 0x8577 +#define GL_PREVIOUS_ARB 0x8578 +#define GL_SUBTRACT_ARB 0x84E7 +#define GL_SOURCE0_RGB_ARB 0x8580 +#define GL_SOURCE1_RGB_ARB 0x8581 +#define GL_SOURCE2_RGB_ARB 0x8582 +#define GL_SOURCE0_ALPHA_ARB 0x8588 +#define GL_SOURCE1_ALPHA_ARB 0x8589 +#define GL_SOURCE2_ALPHA_ARB 0x858A +#define GL_OPERAND0_RGB_ARB 0x8590 +#define GL_OPERAND1_RGB_ARB 0x8591 +#define GL_OPERAND2_RGB_ARB 0x8592 +#define GL_OPERAND0_ALPHA_ARB 0x8598 +#define GL_OPERAND1_ALPHA_ARB 0x8599 +#define GL_OPERAND2_ALPHA_ARB 0x859A +#endif + +#if GL_ARB_texture_env_dot3 +#define GL_DOT3_RGB_ARB 0x86AE +#define GL_DOT3_RGBA_ARB 0x86AF +#endif + +#if GL_ARB_texture_float +#define GL_TEXTURE_RED_TYPE_ARB 0x8C10 +#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11 +#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13 +#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 +#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15 +#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 +#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17 +#define GL_RGBA32F_ARB 0x8814 +#define GL_RGB32F_ARB 0x8815 +#define GL_ALPHA32F_ARB 0x8816 +#define GL_INTENSITY32F_ARB 0x8817 +#define GL_LUMINANCE32F_ARB 0x8818 +#define GL_LUMINANCE_ALPHA32F_ARB 0x8819 +#define GL_RGBA16F_ARB 0x881A +#define GL_RGB16F_ARB 0x881B +#define GL_ALPHA16F_ARB 0x881C +#define GL_INTENSITY16F_ARB 0x881D +#define GL_LUMINANCE16F_ARB 0x881E +#define GL_LUMINANCE_ALPHA16F_ARB 0x881F +#endif + +#if GL_ARB_texture_mirrored_repeat +#define GL_MIRRORED_REPEAT_ARB 0x8370 +#endif + +#if GL_ARB_texture_rectangle +#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 +#endif + +#if GL_ARB_texture_rg +#define GL_COMPRESSED_RED 0x8225 +#define GL_COMPRESSED_RG 0x8226 +#define GL_RG 0x8227 +#define GL_RG_INTEGER 0x8228 +#define GL_R8 0x8229 +#define GL_R16 0x822A +#define GL_RG8 0x822B +#define GL_RG16 0x822C +#define GL_R16F 0x822D +#define GL_R32F 0x822E +#define GL_RG16F 0x822F +#define GL_RG32F 0x8230 +#define GL_R8I 0x8231 +#define GL_R8UI 0x8232 +#define GL_R16I 0x8233 +#define GL_R16UI 0x8234 +#define GL_R32I 0x8235 +#define GL_R32UI 0x8236 +#define GL_RG8I 0x8237 +#define GL_RG8UI 0x8238 +#define GL_RG16I 0x8239 +#define GL_RG16UI 0x823A +#define GL_RG32I 0x823B +#define GL_RG32UI 0x823C +#endif + +#if GL_ARB_transpose_matrix +#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 +#endif + +#if GL_ARB_vertex_blend +#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 +#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 +#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 +#define GL_VERTEX_BLEND_ARB 0x86A7 +#define GL_CURRENT_WEIGHT_ARB 0x86A8 +#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 +#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA +#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB +#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC +#define GL_WEIGHT_ARRAY_ARB 0x86AD +#define GL_MODELVIEW0_ARB 0x1700 +#define GL_MODELVIEW1_ARB 0x850A +#define GL_MODELVIEW2_ARB 0x8722 +#define GL_MODELVIEW3_ARB 0x8723 +#define GL_MODELVIEW4_ARB 0x8724 +#define GL_MODELVIEW5_ARB 0x8725 +#define GL_MODELVIEW6_ARB 0x8726 +#define GL_MODELVIEW7_ARB 0x8727 +#define GL_MODELVIEW8_ARB 0x8728 +#define GL_MODELVIEW9_ARB 0x8729 +#define GL_MODELVIEW10_ARB 0x872A +#define GL_MODELVIEW11_ARB 0x872B +#define GL_MODELVIEW12_ARB 0x872C +#define GL_MODELVIEW13_ARB 0x872D +#define GL_MODELVIEW14_ARB 0x872E +#define GL_MODELVIEW15_ARB 0x872F +#define GL_MODELVIEW16_ARB 0x8730 +#define GL_MODELVIEW17_ARB 0x8731 +#define GL_MODELVIEW18_ARB 0x8732 +#define GL_MODELVIEW19_ARB 0x8733 +#define GL_MODELVIEW20_ARB 0x8734 +#define GL_MODELVIEW21_ARB 0x8735 +#define GL_MODELVIEW22_ARB 0x8736 +#define GL_MODELVIEW23_ARB 0x8737 +#define GL_MODELVIEW24_ARB 0x8738 +#define GL_MODELVIEW25_ARB 0x8739 +#define GL_MODELVIEW26_ARB 0x873A +#define GL_MODELVIEW27_ARB 0x873B +#define GL_MODELVIEW28_ARB 0x873C +#define GL_MODELVIEW29_ARB 0x873D +#define GL_MODELVIEW30_ARB 0x873E +#define GL_MODELVIEW31_ARB 0x873F +#endif + +#if GL_ARB_vertex_buffer_object +#define GL_ARRAY_BUFFER_ARB 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 +#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 +#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C +#define GL_FOG_COORD_ARRAY_BUFFER_BINDING_ARB 0x889D +#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F +#define GL_STREAM_DRAW_ARB 0x88E0 +#define GL_STREAM_READ_ARB 0x88E1 +#define GL_STREAM_COPY_ARB 0x88E2 +#define GL_STATIC_DRAW_ARB 0x88E4 +#define GL_STATIC_READ_ARB 0x88E5 +#define GL_STATIC_COPY_ARB 0x88E6 +#define GL_DYNAMIC_DRAW_ARB 0x88E8 +#define GL_DYNAMIC_READ_ARB 0x88E9 +#define GL_DYNAMIC_COPY_ARB 0x88EA +#define GL_READ_ONLY_ARB 0x88B8 +#define GL_WRITE_ONLY_ARB 0x88B9 +#define GL_READ_WRITE_ARB 0x88BA +#define GL_BUFFER_SIZE_ARB 0x8764 +#define GL_BUFFER_USAGE_ARB 0x8765 +#define GL_BUFFER_ACCESS_ARB 0x88BB +#define GL_BUFFER_MAPPED_ARB 0x88BC +#define GL_BUFFER_MAP_POINTER_ARB 0x88BD +/* Obsolete */ +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D +#endif + +#if GL_ARB_vertex_program +#define GL_VERTEX_PROGRAM_ARB 0x8620 +#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 +#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A +#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 +#define GL_PROGRAM_LENGTH_ARB 0x8627 +#define GL_PROGRAM_FORMAT_ARB 0x8876 +#define GL_PROGRAM_NAME_ARB 0x8677 +#define GL_PROGRAM_BINDING_ARB 0x8677 +#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 +#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 +#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 +#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 +#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 +#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 +#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 +#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 +#define GL_PROGRAM_PARAMETERS_ARB 0x88A8 +#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 +#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA +#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB +#define GL_PROGRAM_ATTRIBS_ARB 0x88AC +#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD +#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE +#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF +#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 +#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 +#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 +#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 +#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 +#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 +#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 +#define GL_PROGRAM_STRING_ARB 0x8628 +#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B +#define GL_CURRENT_MATRIX_ARB 0x8641 +#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 +#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 +#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 +#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F +#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E +#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 +#define GL_MATRIX0_ARB 0x88C0 +#define GL_MATRIX1_ARB 0x88C1 +#define GL_MATRIX2_ARB 0x88C2 +#define GL_MATRIX3_ARB 0x88C3 +#define GL_MATRIX4_ARB 0x88C4 +#define GL_MATRIX5_ARB 0x88C5 +#define GL_MATRIX6_ARB 0x88C6 +#define GL_MATRIX7_ARB 0x88C7 +#define GL_MATRIX8_ARB 0x88C8 +#define GL_MATRIX9_ARB 0x88C9 +#define GL_MATRIX10_ARB 0x88CA +#define GL_MATRIX11_ARB 0x88CB +#define GL_MATRIX12_ARB 0x88CC +#define GL_MATRIX13_ARB 0x88CD +#define GL_MATRIX14_ARB 0x88CE +#define GL_MATRIX15_ARB 0x88CF +#define GL_MATRIX16_ARB 0x88D0 +#define GL_MATRIX17_ARB 0x88D1 +#define GL_MATRIX18_ARB 0x88D2 +#define GL_MATRIX19_ARB 0x88D3 +#define GL_MATRIX20_ARB 0x88D4 +#define GL_MATRIX21_ARB 0x88D5 +#define GL_MATRIX22_ARB 0x88D6 +#define GL_MATRIX23_ARB 0x88D7 +#define GL_MATRIX24_ARB 0x88D8 +#define GL_MATRIX25_ARB 0x88D9 +#define GL_MATRIX26_ARB 0x88DA +#define GL_MATRIX27_ARB 0x88DB +#define GL_MATRIX28_ARB 0x88DC +#define GL_MATRIX29_ARB 0x88DD +#define GL_MATRIX30_ARB 0x88DE +#define GL_MATRIX31_ARB 0x88DF +#define GL_COLOR_SUM_ARB 0x8458 +#endif + +#if GL_ARB_vertex_shader +#define GL_VERTEX_SHADER_ARB 0x8B31 +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A +#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 +#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B +#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D +#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 +#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 +#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A +#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 +#endif + +#if GL_ARB_vertex_shader || GL_NV_vertex_program3 +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C +#endif + +#if GL_EXT_abgr +#define GL_ABGR_EXT 0x8000 +#endif + +#if GL_EXT_bgra +#define GL_BGR_EXT 0x80E0 +#define GL_BGRA_EXT 0x80E1 +#endif + +#if GL_EXT_bindable_uniform +#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 +#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 +#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 +#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED +#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF +#define GL_UNIFORM_BUFFER_EXT 0x8DEE +#endif + +#if GL_EXT_blend_color +#define GL_CONSTANT_COLOR_EXT 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 +#define GL_CONSTANT_ALPHA_EXT 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 +#define GL_BLEND_COLOR_EXT 0x8005 +#endif + +#if GL_EXT_blend_equation_separate +#define GL_BLEND_EQUATION_RGB_EXT 0x8009 +#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D +#endif + +#if GL_EXT_blend_func_separate +#define GL_BLEND_DST_RGB_EXT 0x80C8 +#define GL_BLEND_SRC_RGB_EXT 0x80C9 +#define GL_BLEND_DST_ALPHA_EXT 0x80CA +#define GL_BLEND_SRC_ALPHA_EXT 0x80CB +#endif + +#if GL_EXT_blend_minmax +#define GL_FUNC_ADD_EXT 0x8006 +#define GL_MIN_EXT 0x8007 +#define GL_MAX_EXT 0x8008 +#define GL_BLEND_EQUATION_EXT 0x8009 +#endif + +#if GL_EXT_blend_subtract +#define GL_FUNC_SUBTRACT_EXT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B +#endif + +#if GL_EXT_clip_volume_hint +#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 +#endif + +#if GL_EXT_compiled_vertex_array +#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 +#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 +#endif + +#if GL_EXT_convolution +#define GL_CONVOLUTION_1D_EXT 0x8010 +#define GL_CONVOLUTION_2D_EXT 0x8011 +#define GL_SEPARABLE_2D_EXT 0x8012 +#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 +#define GL_REDUCE_EXT 0x8016 +#define GL_CONVOLUTION_FORMAT_EXT 0x8017 +#define GL_CONVOLUTION_WIDTH_EXT 0x8018 +#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 +#endif + +#if GL_EXT_debug_label +#define GL_BUFFER_OBJECT_EXT 0x9151 +#define GL_SHADER_OBJECT_EXT 0x8B48 +#define GL_PROGRAM_OBJECT_EXT 0x8B40 +#define GL_QUERY_OBJECT_EXT 0x9153 +#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 +#define GL_SAMPLER 0x82E6 +#define GL_SYNC_OBJECT_APPLE 0x8A53 +#endif + +#if GL_EXT_depth_bounds_test +#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 +#define GL_DEPTH_BOUNDS_EXT 0x8891 +#endif + +#if GL_EXT_draw_range_elements +#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 +#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 +#endif + +#if GL_EXT_fog_coord +#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 +#define GL_FOG_COORDINATE_EXT 0x8451 +#define GL_FRAGMENT_DEPTH_EXT 0x8452 +#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 +#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 +#endif + +#if GL_EXT_framebuffer_blit +#define GL_READ_FRAMEBUFFER_EXT 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 +#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6 +#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA +#endif + +#if GL_EXT_framebuffer_multisample +#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 +#define GL_MAX_SAMPLES_EXT 0x8D57 +#endif + +#if GL_EXT_framebuffer_multisample_blit_scaled +#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA +#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB +#endif + +#if GL_EXT_framebuffer_object +#define GL_FRAMEBUFFER_EXT 0x8D40 +#define GL_RENDERBUFFER_EXT 0x8D41 +#define GL_STENCIL_INDEX1_EXT 0x8D46 +#define GL_STENCIL_INDEX4_EXT 0x8D47 +#define GL_STENCIL_INDEX8_EXT 0x8D48 +#define GL_STENCIL_INDEX16_EXT 0x8D49 +#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42 +#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44 +#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4 +#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 +#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 +#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 +#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 +#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 +#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 +#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 +#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 +#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 +#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 +#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA +#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB +#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC +#define GL_COLOR_ATTACHMENT13_EXT 0x8CED +#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE +#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF +#define GL_DEPTH_ATTACHMENT_EXT 0x8D00 +#define GL_STENCIL_ATTACHMENT_EXT 0x8D20 +#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9 +#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD +#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6 +#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7 +#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF +#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8 +#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506 +#endif + +#if GL_EXT_framebuffer_sRGB +#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 +#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA +#endif + +#if GL_EXT_geometry_shader4 +#define GL_GEOMETRY_SHADER_EXT 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA +#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB +#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 +#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD +#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE +#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 +#define GL_LINES_ADJACENCY_EXT 0xA +#define GL_LINE_STRIP_ADJACENCY_EXT 0xB +#define GL_TRIANGLES_ADJACENCY_EXT 0xC +#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 +#define GL_PROGRAM_POINT_SIZE_EXT 0x8642 +#endif + +#if GL_EXT_gpu_shader4 +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD +#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 +#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 +#define GL_SAMPLER_BUFFER_EXT 0x8DC2 +#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 +#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 +#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 +#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 +#define GL_INT_SAMPLER_1D_EXT 0x8DC9 +#define GL_INT_SAMPLER_2D_EXT 0x8DCA +#define GL_INT_SAMPLER_3D_EXT 0x8DCB +#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC +#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD +#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF +#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 +#define GL_MIN_PROGRAM_TEXEL_OFFSET_EXT 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET_EXT 0x8905 +#endif + +#if GL_EXT_histogram +#define GL_HISTOGRAM_EXT 0x8024 +#define GL_PROXY_HISTOGRAM_EXT 0x8025 +#define GL_HISTOGRAM_WIDTH_EXT 0x8026 +#define GL_HISTOGRAM_FORMAT_EXT 0x8027 +#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C +#define GL_HISTOGRAM_SINK_EXT 0x802D +#define GL_MINMAX_EXT 0x802E +#define GL_MINMAX_FORMAT_EXT 0x802F +#define GL_MINMAX_SINK_EXT 0x8030 +#define GL_TABLE_TOO_LARGE_EXT 0x8031 +#endif + +#if GL_EXT_packed_depth_stencil +#define GL_DEPTH_STENCIL_EXT 0x84F9 +#define GL_UNSIGNED_INT_24_8_EXT 0x84FA +#define GL_DEPTH24_STENCIL8_EXT 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1 +#endif + +#if GL_EXT_packed_float +#define GL_R11F_G11F_B10F_EXT 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B +#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C +#endif + +#if GL_EXT_packed_pixels +#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 +#endif + +#if GL_EXT_paletted_texture +#define GL_COLOR_INDEX1_EXT 0x80E2 +#define GL_COLOR_INDEX2_EXT 0x80E3 +#define GL_COLOR_INDEX4_EXT 0x80E4 +#define GL_COLOR_INDEX8_EXT 0x80E5 +#define GL_COLOR_INDEX12_EXT 0x80E6 +#define GL_COLOR_INDEX16_EXT 0x80E7 +#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED +#endif + +#if GL_EXT_polygon_offset +#define GL_POLYGON_OFFSET_EXT 0x8037 +#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 +#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 +#endif + +#if GL_EXT_provoking_vertex +#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E +#define GL_PROVOKING_VERTEX_EXT 0x8E4F +#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C +#endif + +#if GL_EXT_rescale_normal +#define GL_RESCALE_NORMAL_EXT 0x803A +#endif + +#if GL_EXT_secondary_color +#define GL_COLOR_SUM_EXT 0x8458 +#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D +#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E +#endif + +#if GL_EXT_separate_specular_color +#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 +#define GL_SINGLE_COLOR_EXT 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA +#endif + +#if GL_EXT_shared_texture_palette +#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB +#endif + +#if GL_EXT_stencil_two_side +#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 +#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 +#endif + +#if GL_EXT_stencil_wrap +#define GL_INCR_WRAP_EXT 0x8507 +#define GL_DECR_WRAP_EXT 0x8508 +#endif + +#if GL_EXT_texture +#define GL_ALPHA4_EXT 0x803B +#define GL_ALPHA8_EXT 0x803C +#define GL_ALPHA12_EXT 0x803D +#define GL_ALPHA16_EXT 0x803E +#define GL_LUMINANCE4_EXT 0x803F +#define GL_LUMINANCE8_EXT 0x8040 +#define GL_LUMINANCE12_EXT 0x8041 +#define GL_LUMINANCE16_EXT 0x8042 +#define GL_LUMINANCE4_ALPHA4_EXT 0x8043 +#define GL_LUMINANCE6_ALPHA2_EXT 0x8044 +#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 +#define GL_LUMINANCE12_ALPHA4_EXT 0x8046 +#define GL_LUMINANCE12_ALPHA12_EXT 0x8047 +#define GL_LUMINANCE16_ALPHA16_EXT 0x8048 +#define GL_INTENSITY_EXT 0x8049 +#define GL_INTENSITY4_EXT 0x804A +#define GL_INTENSITY8_EXT 0x804B +#define GL_INTENSITY12_EXT 0x804C +#define GL_INTENSITY16_EXT 0x804D +#define GL_RGB2_EXT 0x804E +#define GL_RGB4_EXT 0x804F +#define GL_RGB5_EXT 0x8050 +#define GL_RGB8_EXT 0x8051 +#define GL_RGB10_EXT 0x8052 +#define GL_RGB12_EXT 0x8053 +#define GL_RGB16_EXT 0x8054 +#define GL_RGBA2_EXT 0x8055 +#define GL_RGBA4_EXT 0x8056 +#define GL_RGB5_A1_EXT 0x8057 +#define GL_RGBA8_EXT 0x8058 +#define GL_RGB10_A2_EXT 0x8059 +#define GL_RGBA12_EXT 0x805A +#define GL_RGBA16_EXT 0x805B +#define GL_TEXTURE_RED_SIZE_EXT 0x805C +#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D +#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E +#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F +#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 +#define GL_REPLACE_EXT 0x8062 +#define GL_PROXY_TEXTURE_1D_EXT 0x8063 +#define GL_PROXY_TEXTURE_2D_EXT 0x8064 +#define GL_TEXTURE_TOO_LARGE_EXT 0x8065 +#endif + +#if GL_EXT_texture3D +#define GL_PACK_SKIP_IMAGES_EXT 0x806B +#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C +#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D +#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E +#define GL_TEXTURE_3D_EXT 0x806F +#define GL_PROXY_TEXTURE_3D_EXT 0x8070 +#define GL_TEXTURE_DEPTH_EXT 0x8071 +#define GL_TEXTURE_WRAP_R_EXT 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 +#endif + +#if GL_EXT_texture_array +#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 +#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D +#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF +#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */ +/* reuse GL_SAMPLER_1D_ARRAY_EXT */ +/* reuse GL_SAMPLER_2D_ARRAY_EXT */ +/* reuse GL_SAMPLER_1D_ARRAY_SHADOW_EXT */ +/* reuse GL_SAMPLER_2D_ARRAY_SHADOW_EXT */ +#endif + +#if GL_EXT_texture_compression_s3tc +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 +#endif + +#if GL_EXT_texture_cube_map +#define GL_NORMAL_MAP_EXT 0x8511 +#define GL_REFLECTION_MAP_EXT 0x8512 +#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C +#endif + +#if GL_EXT_texture_env_combine +#define GL_COMBINE_EXT 0x8570 +#define GL_COMBINE_RGB_EXT 0x8571 +#define GL_COMBINE_ALPHA_EXT 0x8572 +#define GL_RGB_SCALE_EXT 0x8573 +#define GL_ADD_SIGNED_EXT 0x8574 +#define GL_INTERPOLATE_EXT 0x8575 +#define GL_CONSTANT_EXT 0x8576 +#define GL_PRIMARY_COLOR_EXT 0x8577 +#define GL_PREVIOUS_EXT 0x8578 +#define GL_SOURCE0_RGB_EXT 0x8580 +#define GL_SOURCE1_RGB_EXT 0x8581 +#define GL_SOURCE2_RGB_EXT 0x8582 +#define GL_SOURCE0_ALPHA_EXT 0x8588 +#define GL_SOURCE1_ALPHA_EXT 0x8589 +#define GL_SOURCE2_ALPHA_EXT 0x858A +#define GL_OPERAND0_RGB_EXT 0x8590 +#define GL_OPERAND1_RGB_EXT 0x8591 +#define GL_OPERAND2_RGB_EXT 0x8592 +#define GL_OPERAND0_ALPHA_EXT 0x8598 +#define GL_OPERAND1_ALPHA_EXT 0x8599 +#define GL_OPERAND2_ALPHA_EXT 0x859A +#endif + +#if GL_EXT_texture_filter_anisotropic +#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF +#endif + +#if GL_EXT_texture_integer +#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E +#define GL_RGBA32UI_EXT 0x8D70 +#define GL_RGB32UI_EXT 0x8D71 +#define GL_ALPHA32UI_EXT 0x8D72 +#define GL_INTENSITY32UI_EXT 0x8D73 +#define GL_LUMINANCE32UI_EXT 0x8D74 +#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75 +#define GL_RGBA16UI_EXT 0x8D76 +#define GL_RGB16UI_EXT 0x8D77 +#define GL_ALPHA16UI_EXT 0x8D78 +#define GL_INTENSITY16UI_EXT 0x8D79 +#define GL_LUMINANCE16UI_EXT 0x8D7A +#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B +#define GL_RGBA8UI_EXT 0x8D7C +#define GL_RGB8UI_EXT 0x8D7D +#define GL_ALPHA8UI_EXT 0x8D7E +#define GL_INTENSITY8UI_EXT 0x8D7F +#define GL_LUMINANCE8UI_EXT 0x8D80 +#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81 +#define GL_RGBA32I_EXT 0x8D82 +#define GL_RGB32I_EXT 0x8D83 +#define GL_ALPHA32I_EXT 0x8D84 +#define GL_INTENSITY32I_EXT 0x8D85 +#define GL_LUMINANCE32I_EXT 0x8D86 +#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87 +#define GL_RGBA16I_EXT 0x8D88 +#define GL_RGB16I_EXT 0x8D89 +#define GL_ALPHA16I_EXT 0x8D8A +#define GL_INTENSITY16I_EXT 0x8D8B +#define GL_LUMINANCE16I_EXT 0x8D8C +#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D +#define GL_RGBA8I_EXT 0x8D8E +#define GL_RGB8I_EXT 0x8D8F +#define GL_ALPHA8I_EXT 0x8D90 +#define GL_INTENSITY8I_EXT 0x8D91 +#define GL_LUMINANCE8I_EXT 0x8D92 +#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93 +#define GL_RED_INTEGER_EXT 0x8D94 +#define GL_GREEN_INTEGER_EXT 0x8D95 +#define GL_BLUE_INTEGER_EXT 0x8D96 +#define GL_ALPHA_INTEGER_EXT 0x8D97 +#define GL_RGB_INTEGER_EXT 0x8D98 +#define GL_RGBA_INTEGER_EXT 0x8D99 +#define GL_BGR_INTEGER_EXT 0x8D9A +#define GL_BGRA_INTEGER_EXT 0x8D9B +#define GL_LUMINANCE_INTEGER_EXT 0x8D9C +#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D +#endif + +#if GL_EXT_texture_lod_bias +#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD +#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 +#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 +#endif + +#if GL_EXT_texture_mirror_clamp +#define GL_MIRROR_CLAMP_EXT 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 +#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 +#endif + +#if GL_EXT_texture_object +#define GL_TEXTURE_PRIORITY_EXT 0x8066 +#define GL_TEXTURE_RESIDENT_EXT 0x8067 +#define GL_TEXTURE_1D_BINDING_EXT 0x8068 +#define GL_TEXTURE_2D_BINDING_EXT 0x8069 +#define GL_TEXTURE_3D_BINDING_EXT 0x806A +#endif + +#if GL_EXT_texture_rectangle +#define GL_TEXTURE_RECTANGLE_EXT 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_EXT 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_EXT 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8 +#endif + +#if GL_EXT_texture_shared_exponent +#define GL_RGB9_E5_EXT 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E +#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F +#endif + +#if GL_EXT_texture_sRGB +#define GL_SRGB_EXT 0x8C40 +#define GL_SRGB8_EXT 0x8C41 +#define GL_SRGB_ALPHA_EXT 0x8C42 +#define GL_SRGB8_ALPHA8_EXT 0x8C43 +#define GL_SLUMINANCE_ALPHA_EXT 0x8C44 +#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45 +#define GL_SLUMINANCE_EXT 0x8C46 +#define GL_SLUMINANCE8_EXT 0x8C47 +#define GL_COMPRESSED_SRGB_EXT 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49 +#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A +#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B +#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F +#endif + +#if GL_EXT_texture_sRGB_decode +#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 +#define GL_DECODE_EXT 0x8A49 +#define GL_SKIP_DECODE_EXT 0x8A4A +#endif + +#if GL_EXT_timer_query +#define GL_TIME_ELAPSED_EXT 0x88BF +#endif + +#if GL_EXT_transform_feedback +#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F +#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C +#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D +#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 +#define GL_RASTERIZER_DISCARD_EXT 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 +#endif + +#if GL_EXT_vertex_array +#define GL_VERTEX_ARRAY_EXT 0x8074 +#define GL_NORMAL_ARRAY_EXT 0x8075 +#define GL_COLOR_ARRAY_EXT 0x8076 +#define GL_INDEX_ARRAY_EXT 0x8077 +#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 +#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 +#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A +#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B +#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C +#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D +#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E +#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F +#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 +#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 +#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 +#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 +#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 +#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 +#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 +#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 +#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A +#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B +#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C +#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D +#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E +#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F +#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 +#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 +#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 +#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 +#endif + +#if GL_APPLE_aux_depth_stencil +#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14 +#endif + +#if GL_APPLE_client_storage +#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 +#endif + +#if GL_APPLE_element_array +#define GL_ELEMENT_ARRAY_APPLE 0x8A0C +#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D +#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E +#endif + +#if GL_APPLE_fence +#define GL_DRAW_PIXELS_APPLE 0x8A0A +#define GL_FENCE_APPLE 0x8A0B +#define GL_BUFFER_OBJECT_APPLE 0x85B3 +#endif + +#if GL_APPLE_float_pixels +#define GL_HALF_APPLE 0x140B +#define GL_COLOR_FLOAT_APPLE 0x8A0F +#define GL_RGBA_FLOAT32_APPLE 0x8814 +#define GL_RGB_FLOAT32_APPLE 0x8815 +#define GL_ALPHA_FLOAT32_APPLE 0x8816 +#define GL_INTENSITY_FLOAT32_APPLE 0x8817 +#define GL_LUMINANCE_FLOAT32_APPLE 0x8818 +#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819 +#define GL_RGBA_FLOAT16_APPLE 0x881A +#define GL_RGB_FLOAT16_APPLE 0x881B +#define GL_ALPHA_FLOAT16_APPLE 0x881C +#define GL_INTENSITY_FLOAT16_APPLE 0x881D +#define GL_LUMINANCE_FLOAT16_APPLE 0x881E +#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F +#endif + +#if GL_APPLE_flush_buffer_range +#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12 +#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13 +#endif + +#if GL_APPLE_object_purgeable +#define GL_RELEASED_APPLE 0x8A19 +#define GL_VOLATILE_APPLE 0x8A1A +#define GL_RETAINED_APPLE 0x8A1B +#define GL_UNDEFINED_APPLE 0x8A1C +#define GL_PURGEABLE_APPLE 0x8A1D +#endif + +#if GL_APPLE_pixel_buffer +#define GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE 0x8A10 +#endif + +#if GL_APPLE_rgb_422 +#define GL_RGB_422_APPLE 0x8A1F +#endif + +#if GL_APPLE_row_bytes +#define GL_PACK_ROW_BYTES_APPLE 0x8A15 +#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16 +#define GL_PACK_IMAGE_BYTES_APPLE 0x8A17 +#define GL_UNPACK_IMAGE_BYTES_APPLE 0x8A18 +#endif + +#if GL_APPLE_specular_vector +#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 +#endif + +#if GL_APPLE_texture_range +#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 +#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 +#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC +#define GL_TEXTURE_MINIMIZE_STORAGE_APPLE 0x85B6 +#define GL_STORAGE_PRIVATE_APPLE 0x85BD +#define GL_STORAGE_CACHED_APPLE 0x85BE +#define GL_STORAGE_SHARED_APPLE 0x85BF +#endif + +#if GL_APPLE_transform_hint +#define GL_TRANSFORM_HINT_APPLE 0x85B1 +#endif + +#if GL_APPLE_vertex_array_object +#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 +#endif + +#if GL_APPLE_vertex_array_range +#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D +#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E +#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE 0x8520 +#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 +#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F +#define GL_STORAGE_CLIENT_APPLE 0x85B4 +#define GL_STORAGE_PRIVATE_APPLE 0x85BD +#define GL_STORAGE_CACHED_APPLE 0x85BE +#define GL_STORAGE_SHARED_APPLE 0x85BF +#endif + +#if GL_APPLE_vertex_point_size +#define GL_VERTEX_POINT_SIZE_APPLE 0x8A26 +#define GL_CURRENT_POINT_SIZE_APPLE 0x8A27 +#define GL_POINT_SIZE_ARRAY_APPLE 0x8B9C +#define GL_POINT_SIZE_ARRAY_TYPE_APPLE 0x898A +#define GL_POINT_SIZE_ARRAY_STRIDE_APPLE 0x898B +#define GL_POINT_SIZE_ARRAY_POINTER_APPLE 0x898C +#define GL_POINT_SIZE_ARRAY_BUFFER_BINDING_APPLE 0x8B9F +#endif + +#if GL_APPLE_vertex_program_evaluators +#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00 +#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01 +#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02 +#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03 +#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04 +#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05 +#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06 +#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07 +#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08 +#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09 +#endif + +#if GL_APPLE_ycbcr_422 +#define GL_YCBCR_422_APPLE 0x85B9 +#endif + +#if GL_APPLE_ycbcr_422 || GL_APPLE_rgb_422 +#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB +#endif + +#if GL_ATI_array_rev_comps_in_4_bytes +#define GL_ARRAY_REV_COMPS_IN_4_BYTES_ATI 0x897C +#endif + +#if GL_ATI_blend_equation_separate +#define GL_ALPHA_BLEND_EQUATION_ATI 0x883D +#endif + +#if GL_ATI_blend_weighted_minmax +#define GL_MIN_WEIGHTED_ATI 0x877D +#define GL_MAX_WEIGHTED_ATI 0x877E +#endif + +#if GL_ATI_pn_triangles +#define GL_PN_TRIANGLES_ATI 0x6090 +#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x6091 +#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x6092 +#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x6093 +#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x6094 +#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x6095 +#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x6096 +#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x6097 +#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x6098 +#endif + +#if GL_ATI_point_cull_mode +#define GL_POINT_CULL_MODE_ATI 0x60B3 +#define GL_POINT_CULL_CENTER_ATI 0x60B4 +#define GL_POINT_CULL_CLIP_ATI 0x60B5 +#endif + +#if GL_ATI_separate_stencil +#define GL_STENCIL_BACK_FUNC_ATI 0x8800 +#define GL_STENCIL_BACK_FAIL_ATI 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 +#endif + +#if GL_ATI_text_fragment_shader +#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 +#endif + +#if GL_ATI_texture_compression_3dc +#define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837 +#endif + +#if GL_ATI_texture_env_combine3 +#define GL_MODULATE_ADD_ATI 0x8744 +#define GL_MODULATE_SIGNED_ADD_ATI 0x8745 +#define GL_MODULATE_SUBTRACT_ATI 0x8746 +#endif + +#if GL_ATI_texture_float +#define GL_RGBA_FLOAT32_ATI 0x8814 +#define GL_RGB_FLOAT32_ATI 0x8815 +#define GL_ALPHA_FLOAT32_ATI 0x8816 +#define GL_INTENSITY_FLOAT32_ATI 0x8817 +#define GL_LUMINANCE_FLOAT32_ATI 0x8818 +#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 +#define GL_RGBA_FLOAT16_ATI 0x881A +#define GL_RGB_FLOAT16_ATI 0x881B +#define GL_ALPHA_FLOAT16_ATI 0x881C +#define GL_INTENSITY_FLOAT16_ATI 0x881D +#define GL_LUMINANCE_FLOAT16_ATI 0x881E +#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F +#endif + +#if GL_ATI_texture_mirror_once +#define GL_MIRROR_CLAMP_ATI 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 +#endif + +#if GL_ATIX_pn_triangles +#define GL_PN_TRIANGLES_ATIX 0x6090 +#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATIX 0x6091 +#define GL_PN_TRIANGLES_POINT_MODE_ATIX 0x6092 +#define GL_PN_TRIANGLES_NORMAL_MODE_ATIX 0x6093 +#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATIX 0x6094 +#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATIX 0x6095 +#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATIX 0x6096 +#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATIX 0x6097 +#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATIX 0x6098 +#endif + +#if GL_HP_convolution_border_modes +#define GL_IGNORE_BORDER_HP 0x8150 +#define GL_CONSTANT_BORDER_HP 0x8151 +#define GL_REPLICATE_BORDER_HP 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154 +#endif + +#if GL_IBM_rasterpos_clip +#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262 +#endif + +#if GL_NV_conditional_render +#define GL_QUERY_WAIT_NV 0x8E13 +#define GL_QUERY_NO_WAIT_NV 0x8E14 +#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 +#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 +#endif + +#if GL_NV_depth_clamp +#define GL_DEPTH_CLAMP_NV 0x864F +#endif + +#if GL_NV_fog_distance +#define GL_FOG_DISTANCE_MODE_NV 0x855A +#define GL_EYE_RADIAL_NV 0x855B +#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C +/* reuse GL_EYE_PLANE */ +#endif + +#if GL_NV_fragment_program2 +#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 +#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 +#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 +#endif + +#if GL_NV_fragment_program2 || GL_NV_vertex_program2_option +#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 +#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 +#endif + +#if GL_NV_light_max_exponent +#define GL_MAX_SHININESS_NV 0x8504 +#define GL_MAX_SPOT_EXPONENT_NV 0x8505 +#endif + +#if GL_NV_multisample_filter_hint +#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 +#endif + +#if GL_NV_point_sprite +#define GL_POINT_SPRITE_NV 0x8861 +#define GL_COORD_REPLACE_NV 0x8862 +#define GL_POINT_SPRITE_R_MODE_NV 0x8863 +#endif + +#if GL_NV_register_combiners +#define GL_REGISTER_COMBINERS_NV 0x8522 +#define GL_VARIABLE_A_NV 0x8523 +#define GL_VARIABLE_B_NV 0x8524 +#define GL_VARIABLE_C_NV 0x8525 +#define GL_VARIABLE_D_NV 0x8526 +#define GL_VARIABLE_E_NV 0x8527 +#define GL_VARIABLE_F_NV 0x8528 +#define GL_VARIABLE_G_NV 0x8529 +#define GL_CONSTANT_COLOR0_NV 0x852A +#define GL_CONSTANT_COLOR1_NV 0x852B +#define GL_PRIMARY_COLOR_NV 0x852C +#define GL_SECONDARY_COLOR_NV 0x852D +#define GL_SPARE0_NV 0x852E +#define GL_SPARE1_NV 0x852F +#define GL_DISCARD_NV 0x8530 +#define GL_E_TIMES_F_NV 0x8531 +#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 +#define GL_UNSIGNED_IDENTITY_NV 0x8536 +#define GL_UNSIGNED_INVERT_NV 0x8537 +#define GL_EXPAND_NORMAL_NV 0x8538 +#define GL_EXPAND_NEGATE_NV 0x8539 +#define GL_HALF_BIAS_NORMAL_NV 0x853A +#define GL_HALF_BIAS_NEGATE_NV 0x853B +#define GL_SIGNED_IDENTITY_NV 0x853C +#define GL_SIGNED_NEGATE_NV 0x853D +#define GL_SCALE_BY_TWO_NV 0x853E +#define GL_SCALE_BY_FOUR_NV 0x853F +#define GL_SCALE_BY_ONE_HALF_NV 0x8540 +#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 +#define GL_COMBINER_INPUT_NV 0x8542 +#define GL_COMBINER_MAPPING_NV 0x8543 +#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 +#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 +#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 +#define GL_COMBINER_MUX_SUM_NV 0x8547 +#define GL_COMBINER_SCALE_NV 0x8548 +#define GL_COMBINER_BIAS_NV 0x8549 +#define GL_COMBINER_AB_OUTPUT_NV 0x854A +#define GL_COMBINER_CD_OUTPUT_NV 0x854B +#define GL_COMBINER_SUM_OUTPUT_NV 0x854C +#define GL_MAX_GENERAL_COMBINERS_NV 0x854D +#define GL_NUM_GENERAL_COMBINERS_NV 0x854E +#define GL_COLOR_SUM_CLAMP_NV 0x854F +#define GL_COMBINER0_NV 0x8550 +#define GL_COMBINER1_NV 0x8551 +#define GL_COMBINER2_NV 0x8552 +#define GL_COMBINER3_NV 0x8553 +#define GL_COMBINER4_NV 0x8554 +#define GL_COMBINER5_NV 0x8555 +#define GL_COMBINER6_NV 0x8556 +#define GL_COMBINER7_NV 0x8557 +/* reuse GL_TEXTURE0_ARB */ +/* reuse GL_TEXTURE1_ARB */ +/* reuse GL_ZERO */ +/* reuse GL_NONE */ +/* reuse GL_FOG */ +#endif + +#if GL_NV_register_combiners2 +#define GL_PER_STAGE_CONSTANTS_NV 0x8535 +#endif + +#if GL_NV_texgen_reflection +#define GL_NORMAL_MAP_NV 0x8511 +#define GL_REFLECTION_MAP_NV 0x8512 +#endif + +#if GL_NV_texture_shader +#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 +#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA +#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB +#define GL_DSDT_MAG_INTENSITY_NV 0x86DC +#define GL_TEXTURE_SHADER_NV 0x86DE +#define GL_SHADER_OPERATION_NV 0x86DF +#define GL_CULL_MODES_NV 0x86E0 +#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 +#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 +#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 +#define GL_OFFSET_TEXTURE_2D_MATRIX_NV GL_OFFSET_TEXTURE_MATRIX_NV +#define GL_OFFSET_TEXTURE_2D_SCALE_NV GL_OFFSET_TEXTURE_SCALE_NV +#define GL_OFFSET_TEXTURE_2D_BIAS_NV GL_OFFSET_TEXTURE_BIAS_NV +#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 +#define GL_CONST_EYE_NV 0x86E5 +#define GL_SHADER_CONSISTENT_NV 0x86DD +#define GL_PASS_THROUGH_NV 0x86E6 +#define GL_CULL_FRAGMENT_NV 0x86E7 +#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 +#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C +#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D +#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 +#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA +#define GL_DOT_PRODUCT_NV 0x86EC +#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED +#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE +#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E +#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 +#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 +#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 +#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 +#define GL_HILO_NV 0x86F4 +#define GL_DSDT_NV 0x86F5 +#define GL_DSDT_MAG_NV 0x86F6 +#define GL_DSDT_MAG_VIB_NV 0x86F7 +#define GL_HILO16_NV 0x86F8 +#define GL_SIGNED_HILO_NV 0x86F9 +#define GL_SIGNED_HILO16_NV 0x86FA +#define GL_SIGNED_RGBA_NV 0x86FB +#define GL_SIGNED_RGBA8_NV 0x86FC +#define GL_SIGNED_RGB_NV 0x86FE +#define GL_SIGNED_RGB8_NV 0x86FF +#define GL_SIGNED_LUMINANCE_NV 0x8701 +#define GL_SIGNED_LUMINANCE8_NV 0x8702 +#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 +#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 +#define GL_SIGNED_ALPHA_NV 0x8705 +#define GL_SIGNED_ALPHA8_NV 0x8706 +#define GL_SIGNED_INTENSITY_NV 0x8707 +#define GL_SIGNED_INTENSITY8_NV 0x8708 +#define GL_DSDT8_NV 0x8709 +#define GL_DSDT8_MAG8_NV 0x870A +#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B +#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C +#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D +#define GL_HI_SCALE_NV 0x870E +#define GL_LO_SCALE_NV 0x870F +#define GL_DS_SCALE_NV 0x8710 +#define GL_DT_SCALE_NV 0x8711 +#define GL_MAGNITUDE_SCALE_NV 0x8712 +#define GL_VIBRANCE_SCALE_NV 0x8713 +#define GL_HI_BIAS_NV 0x8714 +#define GL_LO_BIAS_NV 0x8715 +#define GL_DS_BIAS_NV 0x8716 +#define GL_DT_BIAS_NV 0x8717 +#define GL_MAGNITUDE_BIAS_NV 0x8718 +#define GL_VIBRANCE_BIAS_NV 0x8719 +#define GL_TEXTURE_BORDER_VALUES_NV 0x871A +#define GL_TEXTURE_HI_SIZE_NV 0x871B +#define GL_TEXTURE_LO_SIZE_NV 0x871C +#define GL_TEXTURE_DS_SIZE_NV 0x871D +#define GL_TEXTURE_DT_SIZE_NV 0x871E +#define GL_TEXTURE_MAG_SIZE_NV 0x871F +#endif + +#if GL_NV_texture_shader2 +#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF +#endif + +#if GL_NV_texture_shader3 +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 +#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 +#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 +#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 +#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 +#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A +#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B +#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C +#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D +#define GL_HILO8_NV 0x885E +#define GL_SIGNED_HILO8_NV 0x885F +#define GL_FORCE_BLUE_TO_ONE_NV 0x8860 +#endif + +#if GL_NV_vertex_array_range +#define GL_VERTEX_ARRAY_RANGE_NV 0x851D +#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E +#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F +#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 +#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 +#endif + +#if GL_NV_vertex_array_range2 +#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 +#endif + +#if GL_NV_vertex_program +#define GL_VERTEX_PROGRAM_NV 0x8620 +#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 +#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 +#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 +#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 +#define GL_CURRENT_ATTRIB_NV 0x8626 +#define GL_PROGRAM_LENGTH_NV 0x8627 +#define GL_PROGRAM_STRING_NV 0x8628 +#define GL_MODELVIEW_PROJECTION_NV 0x8629 +#define GL_IDENTITY_NV 0x862A +#define GL_INVERSE_NV 0x862B +#define GL_TRANSPOSE_NV 0x862C +#define GL_INVERSE_TRANSPOSE_NV 0x862D +#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E +#define GL_MAX_TRACK_MATRICES_NV 0x862F +#define GL_MATRIX0_NV 0x8630 +#define GL_MATRIX1_NV 0x8631 +#define GL_MATRIX2_NV 0x8632 +#define GL_MATRIX3_NV 0x8633 +#define GL_MATRIX4_NV 0x8634 +#define GL_MATRIX5_NV 0x8635 +#define GL_MATRIX6_NV 0x8636 +#define GL_MATRIX7_NV 0x8637 +#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 +#define GL_CURRENT_MATRIX_NV 0x8641 +#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 +#define GL_PROGRAM_PARAMETER_NV 0x8644 +#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 +#define GL_PROGRAM_TARGET_NV 0x8646 +#define GL_PROGRAM_RESIDENT_NV 0x8647 +#define GL_TRACK_MATRIX_NV 0x8648 +#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 +#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A +#define GL_PROGRAM_ERROR_POSITION_NV 0x864B +#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 +#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 +#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 +#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 +#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 +#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 +#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 +#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 +#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 +#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 +#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A +#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B +#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C +#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D +#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E +#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F +#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 +#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 +#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 +#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 +#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 +#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 +#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 +#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 +#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 +#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 +#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A +#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B +#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C +#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D +#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E +#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F +#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 +#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 +#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 +#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 +#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 +#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 +#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 +#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 +#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 +#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 +#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A +#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B +#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C +#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D +#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E +#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F +#endif + +#if GL_SGI_color_matrix +#define GL_COLOR_MATRIX_SGI 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB +#endif + +#if GL_SGI_color_table +#define GL_COLOR_TABLE_SGI 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 +#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 +#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 +#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 +#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 +#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF +#endif + +#if GL_SGIS_generate_mipmap +#define GL_GENERATE_MIPMAP_SGIS 0x8191 +#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 +#endif + +#if GL_SGIS_point_parameters +#define GL_POINT_SIZE_MIN_SGIS 0x8126 +#define GL_POINT_SIZE_MAX_SGIS 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128 +#define GL_DISTANCE_ATTENUATION_SGIS 0x8129 +#endif + +#if GL_SGIS_texture_edge_clamp +#define GL_CLAMP_TO_EDGE_SGIS 0x812F +#endif + +#if GL_SGIS_texture_border_clamp +#define GL_CLAMP_TO_BORDER_SGIS 0x812D +#endif + +#if GL_SGIS_texture_lod +#define GL_TEXTURE_MIN_LOD_SGIS 0x813A +#define GL_TEXTURE_MAX_LOD_SGIS 0x813B +#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C +#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D +#endif + +#if GL_SGIX_depth_texture +#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 +#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 +#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 +#endif + +/*************************************************************/ + +#if GL_ARB_color_buffer_float +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glClampColorARBProcPtr) (GLenum target, GLenum clamp); +#else +extern void glClampColorARB(GLenum target, GLenum clamp); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_draw_buffers +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glDrawBuffersARBProcPtr) (GLsizei n, const GLenum *bufs); +#else +extern void glDrawBuffersARB(GLsizei n, const GLenum *bufs); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_draw_elements_base_vertex +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glDrawElementsBaseVertexProcPtr) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint base_vertex); +typedef void (* glDrawRangeElementsBaseVertexProcPtr) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint base_vertex); +typedef void (* glDrawElementsInstancedBaseVertexProcPtr) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint base_vertex); +typedef void (* glMultiDrawElementsBaseVertexProcPtr) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount, const GLint *base_vertex); +#else +extern void glDrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint base_vertex); +extern void glDrawRangeElementsBaseVertex(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint base_vertex); +extern void glDrawElementsInstancedBaseVertex(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint base_vertex); +extern void glMultiDrawElementsBaseVertex(GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount, const GLint *base_vertex); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_draw_instanced +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glDrawArraysInstancedARBProcPtr) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void (* glDrawElementsInstancedARBProcPtr) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); +#else +extern void glDrawArraysInstancedARB(GLenum mode, GLint first, GLsizei count, GLsizei primcount); +extern void glDrawElementsInstancedARB(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_framebuffer_object +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef GLboolean (* glIsRenderbufferProcPtr) (GLuint renderbuffer); +typedef void (* glBindRenderbufferProcPtr) (GLenum target, GLuint renderbuffer); +typedef void (* glDeleteRenderbuffersProcPtr) (GLsizei n, const GLuint *renderbuffers); +typedef void (* glGenRenderbuffersProcPtr) (GLsizei n, GLuint *renderbuffers); +typedef void (* glRenderbufferStorageProcPtr) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (* glGetRenderbufferParameterivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef GLboolean (* glIsFramebufferProcPtr) (GLuint framebuffer); +typedef void (* glBindFramebufferProcPtr) (GLenum target, GLuint framebuffer); +typedef void (* glDeleteFramebuffersProcPtr) (GLsizei n, const GLuint *framebuffers); +typedef void (* glGenFramebuffersProcPtr) (GLsizei n, GLuint *framebuffers); +typedef GLenum (* glCheckFramebufferStatusProcPtr) (GLenum target); +typedef void (* glFramebufferTexture1DProcPtr) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (* glFramebufferTexture2DProcPtr) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (* glFramebufferTexture3DProcPtr) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (* glFramebufferRenderbufferProcPtr) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (* glGetFramebufferAttachmentParameterivProcPtr) (GLenum target, GLenum attachment, GLenum pname, GLint *params); +typedef void (* glGenerateMipmapProcPtr) (GLenum target); +typedef void (* glBlitFramebufferProcPtr) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef void (* glRenderbufferStorageMultisampleProcPtr) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (* glFramebufferTextureLayerProcPtr) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +#else +extern GLboolean glIsRenderbuffer(GLuint renderbuffer); +extern void glBindRenderbuffer(GLenum target, GLuint renderbuffer); +extern void glDeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers); +extern void glGenRenderbuffers(GLsizei n, GLuint *renderbuffers); +extern void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +extern void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params); +extern GLboolean glIsFramebuffer(GLuint framebuffer); +extern void glBindFramebuffer(GLenum target, GLuint framebuffer); +extern void glDeleteFramebuffers(GLsizei n, const GLuint *framebuffers); +extern void glGenFramebuffers(GLsizei n, GLuint *framebuffers); +extern GLenum glCheckFramebufferStatus(GLenum target); +extern void glFramebufferTexture1D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +extern void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +extern void glFramebufferTexture3D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +extern void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +extern void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint *params); +extern void glGenerateMipmap(GLenum target); +extern void glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +extern void glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +extern void glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_instanced_arrays +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glVertexAttribDivisorARBProcPtr) (GLuint index, GLuint divisor); +#else +extern void glVertexAttribDivisorARB(GLuint index, GLuint divisor); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_multisample +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glSampleCoverageARBProcPtr) (GLclampf value, GLboolean invert); +#else +extern void glSampleCoverageARB(GLclampf value, GLboolean invert); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_multitexture +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glActiveTextureARBProcPtr) (GLenum texture); +typedef void (* glClientActiveTextureARBProcPtr) (GLenum texture); +typedef void (* glMultiTexCoord1dARBProcPtr) (GLenum target, GLdouble s); +typedef void (* glMultiTexCoord1dvARBProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord1fARBProcPtr) (GLenum target, GLfloat s); +typedef void (* glMultiTexCoord1fvARBProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord1iARBProcPtr) (GLenum target, GLint s); +typedef void (* glMultiTexCoord1ivARBProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord1sARBProcPtr) (GLenum target, GLshort s); +typedef void (* glMultiTexCoord1svARBProcPtr) (GLenum target, const GLshort *v); +typedef void (* glMultiTexCoord2dARBProcPtr) (GLenum target, GLdouble s, GLdouble t); +typedef void (* glMultiTexCoord2dvARBProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord2fARBProcPtr) (GLenum target, GLfloat s, GLfloat t); +typedef void (* glMultiTexCoord2fvARBProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord2iARBProcPtr) (GLenum target, GLint s, GLint t); +typedef void (* glMultiTexCoord2ivARBProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord2sARBProcPtr) (GLenum target, GLshort s, GLshort t); +typedef void (* glMultiTexCoord2svARBProcPtr) (GLenum target, const GLshort *v); +typedef void (* glMultiTexCoord3dARBProcPtr) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (* glMultiTexCoord3dvARBProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord3fARBProcPtr) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (* glMultiTexCoord3fvARBProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord3iARBProcPtr) (GLenum target, GLint s, GLint t, GLint r); +typedef void (* glMultiTexCoord3ivARBProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord3sARBProcPtr) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (* glMultiTexCoord3svARBProcPtr) (GLenum target, const GLshort *v); +typedef void (* glMultiTexCoord4dARBProcPtr) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (* glMultiTexCoord4dvARBProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord4fARBProcPtr) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (* glMultiTexCoord4fvARBProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord4iARBProcPtr) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (* glMultiTexCoord4ivARBProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord4sARBProcPtr) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (* glMultiTexCoord4svARBProcPtr) (GLenum target, const GLshort *v); +#else +extern void glActiveTextureARB(GLenum texture); +extern void glClientActiveTextureARB(GLenum texture); +extern void glMultiTexCoord1dARB(GLenum target, GLdouble s); +extern void glMultiTexCoord1dvARB(GLenum target, const GLdouble *v); +extern void glMultiTexCoord1fARB(GLenum target, GLfloat s); +extern void glMultiTexCoord1fvARB(GLenum target, const GLfloat *v); +extern void glMultiTexCoord1iARB(GLenum target, GLint s); +extern void glMultiTexCoord1ivARB(GLenum target, const GLint *v); +extern void glMultiTexCoord1sARB(GLenum target, GLshort s); +extern void glMultiTexCoord1svARB(GLenum target, const GLshort *v); +extern void glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t); +extern void glMultiTexCoord2dvARB(GLenum target, const GLdouble *v); +extern void glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t); +extern void glMultiTexCoord2fvARB(GLenum target, const GLfloat *v); +extern void glMultiTexCoord2iARB(GLenum target, GLint s, GLint t); +extern void glMultiTexCoord2ivARB(GLenum target, const GLint *v); +extern void glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t); +extern void glMultiTexCoord2svARB(GLenum target, const GLshort *v); +extern void glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r); +extern void glMultiTexCoord3dvARB(GLenum target, const GLdouble *v); +extern void glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r); +extern void glMultiTexCoord3fvARB(GLenum target, const GLfloat *v); +extern void glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r); +extern void glMultiTexCoord3ivARB(GLenum target, const GLint *v); +extern void glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r); +extern void glMultiTexCoord3svARB(GLenum target, const GLshort *v); +extern void glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +extern void glMultiTexCoord4dvARB(GLenum target, const GLdouble *v); +extern void glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +extern void glMultiTexCoord4fvARB(GLenum target, const GLfloat *v); +extern void glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q); +extern void glMultiTexCoord4ivARB(GLenum target, const GLint *v); +extern void glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +extern void glMultiTexCoord4svARB(GLenum target, const GLshort *v); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_occlusion_query +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glGenQueriesARBProcPtr) (GLsizei n, GLuint *ids); +typedef void (* glDeleteQueriesARBProcPtr) (GLsizei n, const GLuint *ids); +typedef GLboolean (* glIsQueryARBProcPtr) (GLuint id); +typedef void (* glBeginQueryARBProcPtr) (GLenum target, GLuint id); +typedef void (* glEndQueryARBProcPtr) (GLenum target); +typedef void (* glGetQueryivARBProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetQueryObjectivARBProcPtr) (GLuint id, GLenum pname, GLint *params); +typedef void (* glGetQueryObjectuivARBProcPtr) (GLuint id, GLenum pname, GLuint *params); +#else +extern void glGenQueriesARB(GLsizei n, GLuint *ids); +extern void glDeleteQueriesARB(GLsizei n, const GLuint *ids); +extern GLboolean glIsQueryARB(GLuint id); +extern void glBeginQueryARB(GLenum target, GLuint id); +extern void glEndQueryARB(GLenum target); +extern void glGetQueryivARB(GLenum target, GLenum pname, GLint *params); +extern void glGetQueryObjectivARB(GLuint id, GLenum pname, GLint *params); +extern void glGetQueryObjectuivARB(GLuint id, GLenum pname, GLuint *params); +#endif +#endif + +#if GL_ARB_point_parameters +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glPointParameterfARBProcPtr) (GLenum pname, GLfloat param); +typedef void (* glPointParameterfvARBProcPtr) (GLenum pname, const GLfloat *params); +#else +extern void glPointParameterfARB(GLenum pname, GLfloat param); +extern void glPointParameterfvARB(GLenum pname, const GLfloat *params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_provoking_vertex +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glProvokingVertexProcPtr) (GLenum mode); +#else +extern void glProvokingVertex(GLenum mode); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_shader_objects +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glDeleteObjectARBProcPtr) (GLhandleARB obj); +typedef GLhandleARB (* glGetHandleARBProcPtr) (GLenum pname); +typedef void (* glDetachObjectARBProcPtr) (GLhandleARB containerObj, GLhandleARB attachedObj); +typedef GLhandleARB (* glCreateShaderObjectARBProcPtr) (GLenum shaderType); +typedef void (* glShaderSourceARBProcPtr) (GLhandleARB shaderObj, GLsizei count, const GLcharARB* const *string, const GLint *length); +typedef void (* glCompileShaderARBProcPtr) (GLhandleARB shaderObj); +typedef GLhandleARB (* glCreateProgramObjectARBProcPtr) (void); +typedef void (* glAttachObjectARBProcPtr) (GLhandleARB containerObj, GLhandleARB obj); +typedef void (* glLinkProgramARBProcPtr) (GLhandleARB programObj); +typedef void (* glUseProgramObjectARBProcPtr) (GLhandleARB programObj); +typedef void (* glValidateProgramARBProcPtr) (GLhandleARB programObj); +typedef void (* glUniform1fARBProcPtr) (GLint location, GLfloat v0); +typedef void (* glUniform2fARBProcPtr) (GLint location, GLfloat v0, GLfloat v1); +typedef void (* glUniform3fARBProcPtr) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (* glUniform4fARBProcPtr) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (* glUniform1iARBProcPtr) (GLint location, GLint v0); +typedef void (* glUniform2iARBProcPtr) (GLint location, GLint v0, GLint v1); +typedef void (* glUniform3iARBProcPtr) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (* glUniform4iARBProcPtr) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (* glUniform1fvARBProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform2fvARBProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform3fvARBProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform4fvARBProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform1ivARBProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniform2ivARBProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniform3ivARBProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniform4ivARBProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniformMatrix2fvARBProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix3fvARBProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix4fvARBProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glGetObjectParameterfvARBProcPtr) (GLhandleARB obj, GLenum pname, GLfloat *params); +typedef void (* glGetObjectParameterivARBProcPtr) (GLhandleARB obj, GLenum pname, GLint *params); +typedef void (* glGetInfoLogARBProcPtr) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); +typedef void (* glGetAttachedObjectsARBProcPtr) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); +typedef GLint (* glGetUniformLocationARBProcPtr) (GLhandleARB programObj, const GLcharARB *name); +typedef void (* glGetActiveUniformARBProcPtr) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +typedef void (* glGetUniformfvARBProcPtr) (GLhandleARB programObj, GLint location, GLfloat *params); +typedef void (* glGetUniformivARBProcPtr) (GLhandleARB programObj, GLint location, GLint *params); +typedef void (* glGetShaderSourceARBProcPtr) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); +#else +extern void glDeleteObjectARB(GLhandleARB obj); +extern GLhandleARB glGetHandleARB(GLenum pname); +extern void glDetachObjectARB(GLhandleARB containerObj, GLhandleARB attachedObj); +extern GLhandleARB glCreateShaderObjectARB(GLenum shaderType); +extern void glShaderSourceARB(GLhandleARB shaderObj, GLsizei count, const GLcharARB* const *string, const GLint *length); +extern void glCompileShaderARB(GLhandleARB shaderObj); +extern GLhandleARB glCreateProgramObjectARB(void); +extern void glAttachObjectARB(GLhandleARB containerObj, GLhandleARB obj); +extern void glLinkProgramARB(GLhandleARB programObj); +extern void glUseProgramObjectARB(GLhandleARB programObj); +extern void glValidateProgramARB(GLhandleARB programObj); +extern void glUniform1fARB(GLint location, GLfloat v0); +extern void glUniform2fARB(GLint location, GLfloat v0, GLfloat v1); +extern void glUniform3fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +extern void glUniform4fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +extern void glUniform1iARB(GLint location, GLint v0); +extern void glUniform2iARB(GLint location, GLint v0, GLint v1); +extern void glUniform3iARB(GLint location, GLint v0, GLint v1, GLint v2); +extern void glUniform4iARB(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +extern void glUniform1fvARB(GLint location, GLsizei count, const GLfloat *value); +extern void glUniform2fvARB(GLint location, GLsizei count, const GLfloat *value); +extern void glUniform3fvARB(GLint location, GLsizei count, const GLfloat *value); +extern void glUniform4fvARB(GLint location, GLsizei count, const GLfloat *value); +extern void glUniform1ivARB(GLint location, GLsizei count, const GLint *value); +extern void glUniform2ivARB(GLint location, GLsizei count, const GLint *value); +extern void glUniform3ivARB(GLint location, GLsizei count, const GLint *value); +extern void glUniform4ivARB(GLint location, GLsizei count, const GLint *value); +extern void glUniformMatrix2fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix3fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix4fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glGetObjectParameterfvARB(GLhandleARB obj, GLenum pname, GLfloat *params); +extern void glGetObjectParameterivARB(GLhandleARB obj, GLenum pname, GLint *params); +extern void glGetInfoLogARB(GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); +extern void glGetAttachedObjectsARB(GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); +extern GLint glGetUniformLocationARB(GLhandleARB programObj, const GLcharARB *name); +extern void glGetActiveUniformARB(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +extern void glGetUniformfvARB(GLhandleARB programObj, GLint location, GLfloat *params); +extern void glGetUniformivARB(GLhandleARB programObj, GLint location, GLint *params); +extern void glGetShaderSourceARB(GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_sync +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef GLsync (* glFenceSyncProcPtr) (GLenum condition, GLbitfield flags); +typedef GLboolean (* glIsSyncProcPtr) (GLsync sync); +typedef void (* glDeleteSyncProcPtr) (GLsync sync); +typedef GLenum (* glClientWaitSyncProcPtr) (GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (* glWaitSyncProcPtr)(GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (* glGetInteger64vProcPtr) (GLenum pname, GLint64 *params); +typedef void (* glGetSyncivProcPtr) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +#else +extern GLsync glFenceSync(GLenum condition, GLbitfield flags); +extern GLboolean glIsSync(GLsync sync); +extern void glDeleteSync(GLsync sync); +extern GLenum glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout); +extern void glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout); +extern void glGetInteger64v(GLenum pname, GLint64 *params); +extern void glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_texture_compression +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glCompressedTexImage3DARBProcPtr) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexImage2DARBProcPtr) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexImage1DARBProcPtr) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexSubImage3DARBProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexSubImage2DARBProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexSubImage1DARBProcPtr) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (* glGetCompressedTexImageARBProcPtr) (GLenum target, GLint level, GLvoid *data); +#else +extern void glCompressedTexImage3DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexImage2DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexImage1DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexSubImage3DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexSubImage2DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexSubImage1DARB(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +extern void glGetCompressedTexImageARB(GLenum target, GLint level, GLvoid *data); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_transpose_matrix +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glLoadTransposeMatrixfARBProcPtr) (const GLfloat *m); +typedef void (* glLoadTransposeMatrixdARBProcPtr) (const GLdouble *m); +typedef void (* glMultTransposeMatrixfARBProcPtr) (const GLfloat *m); +typedef void (* glMultTransposeMatrixdARBProcPtr) (const GLdouble *m); +#else +extern void glLoadTransposeMatrixfARB(const GLfloat *m); +extern void glLoadTransposeMatrixdARB(const GLdouble *m); +extern void glMultTransposeMatrixfARB(const GLfloat *m); +extern void glMultTransposeMatrixdARB(const GLdouble *m); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_vertex_blend +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glWeightbvARBProcPtr) (GLint size, const GLbyte *weights); +typedef void (* glWeightsvARBProcPtr) (GLint size, const GLshort *weights); +typedef void (* glWeightivARBProcPtr) (GLint size, const GLint *weights); +typedef void (* glWeightfvARBProcPtr) (GLint size, const GLfloat *weights); +typedef void (* glWeightdvARBProcPtr) (GLint size, const GLdouble *weights); +typedef void (* glWeightubvARBProcPtr) (GLint size, const GLubyte *weights); +typedef void (* glWeightusvARBProcPtr) (GLint size, const GLushort *weights); +typedef void (* glWeightuivARBProcPtr) (GLint size, const GLuint *weights); +typedef void (* glWeightPointerARBProcPtr) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glVertexBlendARBProcPtr) (GLint count); +#else +extern void glWeightbvARB(GLint size, const GLbyte *weights); +extern void glWeightsvARB(GLint size, const GLshort *weights); +extern void glWeightivARB(GLint size, const GLint *weights); +extern void glWeightfvARB(GLint size, const GLfloat *weights); +extern void glWeightdvARB(GLint size, const GLdouble *weights); +extern void glWeightubvARB(GLint size, const GLubyte *weights); +extern void glWeightusvARB(GLint size, const GLushort *weights); +extern void glWeightuivARB(GLint size, const GLuint *weights); +extern void glWeightPointerARB(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glVertexBlendARB(GLint count); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_vertex_buffer_object +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBindBufferARBProcPtr) (GLenum target, GLuint buffer); +typedef void (* glDeleteBuffersARBProcPtr) (GLsizei n, const GLuint *buffers); +typedef void (* glGenBuffersARBProcPtr) (GLsizei n, GLuint *buffers); +typedef GLboolean (* glIsBufferARBProcPtr) (GLuint buffer); +typedef void (* glBufferDataARBProcPtr) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); +typedef void (* glBufferSubDataARBProcPtr) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); +typedef void (* glGetBufferSubDataARBProcPtr) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data); +typedef GLvoid *(* glMapBufferARBProcPtr) (GLenum target, GLenum access); +typedef GLboolean (* glUnmapBufferARBProcPtr) (GLenum target); +typedef void (* glGetBufferParameterivARBProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetBufferPointervARBProcPtr) (GLenum target, GLenum pname, GLvoid **params); +#else +extern void glBindBufferARB(GLenum target, GLuint buffer); +extern void glDeleteBuffersARB(GLsizei n, const GLuint *buffers); +extern void glGenBuffersARB(GLsizei n, GLuint *buffers); +extern GLboolean glIsBufferARB(GLuint buffer); +extern void glBufferDataARB(GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); +extern void glBufferSubDataARB(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); +extern void glGetBufferSubDataARB(GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data); +extern GLvoid *glMapBufferARB(GLenum target, GLenum access); +extern GLboolean glUnmapBufferARB(GLenum target); +extern void glGetBufferParameterivARB(GLenum target, GLenum pname, GLint *params); +extern void glGetBufferPointervARB(GLenum target, GLenum pname, GLvoid **params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_vertex_program +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBindProgramARBProcPtr) (GLenum target, GLuint program); +typedef void (* glDeleteProgramsARBProcPtr) (GLsizei n, const GLuint *programs); +typedef void (* glGenProgramsARBProcPtr) (GLsizei n, GLuint *programs); +typedef GLboolean (* glIsProgramARBProcPtr) (GLuint program); +typedef void (* glProgramEnvParameter4dARBProcPtr) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glProgramEnvParameter4dvARBProcPtr) (GLenum target, GLuint index, const GLdouble *params); +typedef void (* glProgramEnvParameter4fARBProcPtr) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glProgramEnvParameter4fvARBProcPtr) (GLenum target, GLuint index, const GLfloat *params); +typedef void (* glProgramLocalParameter4dARBProcPtr) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glProgramLocalParameter4dvARBProcPtr) (GLenum target, GLuint index, const GLdouble *params); +typedef void (* glProgramLocalParameter4fARBProcPtr) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glProgramLocalParameter4fvARBProcPtr) (GLenum target, GLuint index, const GLfloat *params); +#if GL_EXT_gpu_program_parameters +typedef void (* glProgramEnvParameters4fvEXTProcPtr) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); +typedef void (* glProgramLocalParameters4fvEXTProcPtr) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); +#endif +typedef void (* glGetProgramEnvParameterdvARBProcPtr) (GLenum target, GLuint index, GLdouble *params); +typedef void (* glGetProgramEnvParameterfvARBProcPtr) (GLenum target, GLuint index, GLfloat *params); +typedef void (* glGetProgramLocalParameterdvARBProcPtr) (GLenum target, GLuint index, GLdouble *params); +typedef void (* glGetProgramLocalParameterfvARBProcPtr) (GLenum target, GLuint index, GLfloat *params); +typedef void (* glProgramStringARBProcPtr) (GLenum target, GLenum format, GLsizei len, const GLvoid *string); +typedef void (* glGetProgramStringARBProcPtr) (GLenum target, GLenum pname, GLvoid *string); +typedef void (* glGetProgramivARBProcPtr) (GLenum target, GLenum pname, GLint *params); +#else +extern void glBindProgramARB(GLenum target, GLuint program); +extern void glDeleteProgramsARB(GLsizei n, const GLuint *programs); +extern void glGenProgramsARB(GLsizei n, GLuint *programs); +extern GLboolean glIsProgramARB(GLuint program); +extern void glProgramEnvParameter4dARB(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glProgramEnvParameter4dvARB(GLenum target, GLuint index, const GLdouble *params); +extern void glProgramEnvParameter4fARB(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glProgramEnvParameter4fvARB(GLenum target, GLuint index, const GLfloat *params); +extern void glProgramLocalParameter4dARB(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glProgramLocalParameter4dvARB(GLenum target, GLuint index, const GLdouble *params); +extern void glProgramLocalParameter4fARB(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glProgramLocalParameter4fvARB(GLenum target, GLuint index, const GLfloat *params); +extern void glGetProgramEnvParameterdvARB(GLenum target, GLuint index, GLdouble *params); +extern void glGetProgramEnvParameterfvARB(GLenum target, GLuint index, GLfloat *params); +#if GL_EXT_gpu_program_parameters +extern void glProgramEnvParameters4fvEXT(GLenum target, GLuint index, GLsizei count, const GLfloat *params); +extern void glProgramLocalParameters4fvEXT(GLenum target, GLuint index, GLsizei count, const GLfloat *params); +#endif +extern void glGetProgramLocalParameterdvARB(GLenum target, GLuint index, GLdouble *params); +extern void glGetProgramLocalParameterfvARB(GLenum target, GLuint index, GLfloat *params); +extern void glProgramStringARB(GLenum target, GLenum format, GLsizei len, const GLvoid *string); +extern void glGetProgramStringARB(GLenum target, GLenum pname, GLvoid *string); +extern void glGetProgramivARB(GLenum target, GLenum pname, GLint *params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_vertex_shader +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBindAttribLocationARBProcPtr) (GLhandleARB programObj, GLuint index, const GLcharARB *name); +typedef void (* glGetActiveAttribARBProcPtr) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +typedef GLint (* glGetAttribLocationARBProcPtr) (GLhandleARB programObj, const GLcharARB *name); +#else +extern void glBindAttribLocationARB(GLhandleARB programObj, GLuint index, const GLcharARB *name); +extern void glGetActiveAttribARB(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +extern GLint glGetAttribLocationARB(GLhandleARB programObj, const GLcharARB *name); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_vertex_shader || GL_ARB_vertex_program +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glVertexAttrib1dARBProcPtr) (GLuint index, GLdouble x); +typedef void (* glVertexAttrib1dvARBProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib1fARBProcPtr) (GLuint index, GLfloat x); +typedef void (* glVertexAttrib1fvARBProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib1sARBProcPtr) (GLuint index, GLshort x); +typedef void (* glVertexAttrib1svARBProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib2dARBProcPtr) (GLuint index, GLdouble x, GLdouble y); +typedef void (* glVertexAttrib2dvARBProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib2fARBProcPtr) (GLuint index, GLfloat x, GLfloat y); +typedef void (* glVertexAttrib2fvARBProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib2sARBProcPtr) (GLuint index, GLshort x, GLshort y); +typedef void (* glVertexAttrib2svARBProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib3dARBProcPtr) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (* glVertexAttrib3dvARBProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib3fARBProcPtr) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (* glVertexAttrib3fvARBProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib3sARBProcPtr) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (* glVertexAttrib3svARBProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib4NbvARBProcPtr) (GLuint index, const GLbyte *v); +typedef void (* glVertexAttrib4NivARBProcPtr) (GLuint index, const GLint *v); +typedef void (* glVertexAttrib4NsvARBProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib4NubARBProcPtr) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (* glVertexAttrib4NubvARBProcPtr) (GLuint index, const GLubyte *v); +typedef void (* glVertexAttrib4NuivARBProcPtr) (GLuint index, const GLuint *v); +typedef void (* glVertexAttrib4NusvARBProcPtr) (GLuint index, const GLushort *v); +typedef void (* glVertexAttrib4bvARBProcPtr) (GLuint index, const GLbyte *v); +typedef void (* glVertexAttrib4dARBProcPtr) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glVertexAttrib4dvARBProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib4fARBProcPtr) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glVertexAttrib4fvARBProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib4ivARBProcPtr) (GLuint index, const GLint *v); +typedef void (* glVertexAttrib4sARBProcPtr) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (* glVertexAttrib4svARBProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib4ubvARBProcPtr) (GLuint index, const GLubyte *v); +typedef void (* glVertexAttrib4uivARBProcPtr) (GLuint index, const GLuint *v); +typedef void (* glVertexAttrib4usvARBProcPtr) (GLuint index, const GLushort *v); +typedef void (* glVertexAttribPointerARBProcPtr) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +typedef void (* glDisableVertexAttribArrayARBProcPtr) (GLuint index); +typedef void (* glEnableVertexAttribArrayARBProcPtr) (GLuint index); +typedef void (* glGetVertexAttribPointervARBProcPtr) (GLuint index, GLenum pname, GLvoid **pointer); +typedef void (* glGetVertexAttribdvARBProcPtr) (GLuint index, GLenum pname, GLdouble *params); +typedef void (* glGetVertexAttribfvARBProcPtr) (GLuint index, GLenum pname, GLfloat *params); +typedef void (* glGetVertexAttribivARBProcPtr) (GLuint index, GLenum pname, GLint *params); +#else +extern void glVertexAttrib1dARB(GLuint index, GLdouble x); +extern void glVertexAttrib1dvARB(GLuint index, const GLdouble *v); +extern void glVertexAttrib1fARB(GLuint index, GLfloat x); +extern void glVertexAttrib1fvARB(GLuint index, const GLfloat *v); +extern void glVertexAttrib1sARB(GLuint index, GLshort x); +extern void glVertexAttrib1svARB(GLuint index, const GLshort *v); +extern void glVertexAttrib2dARB(GLuint index, GLdouble x, GLdouble y); +extern void glVertexAttrib2dvARB(GLuint index, const GLdouble *v); +extern void glVertexAttrib2fARB(GLuint index, GLfloat x, GLfloat y); +extern void glVertexAttrib2fvARB(GLuint index, const GLfloat *v); +extern void glVertexAttrib2sARB(GLuint index, GLshort x, GLshort y); +extern void glVertexAttrib2svARB(GLuint index, const GLshort *v); +extern void glVertexAttrib3dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z); +extern void glVertexAttrib3dvARB(GLuint index, const GLdouble *v); +extern void glVertexAttrib3fARB(GLuint index, GLfloat x, GLfloat y, GLfloat z); +extern void glVertexAttrib3fvARB(GLuint index, const GLfloat *v); +extern void glVertexAttrib3sARB(GLuint index, GLshort x, GLshort y, GLshort z); +extern void glVertexAttrib3svARB(GLuint index, const GLshort *v); +extern void glVertexAttrib4NbvARB(GLuint index, const GLbyte *v); +extern void glVertexAttrib4NivARB(GLuint index, const GLint *v); +extern void glVertexAttrib4NsvARB(GLuint index, const GLshort *v); +extern void glVertexAttrib4NubARB(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +extern void glVertexAttrib4NubvARB(GLuint index, const GLubyte *v); +extern void glVertexAttrib4NuivARB(GLuint index, const GLuint *v); +extern void glVertexAttrib4NusvARB(GLuint index, const GLushort *v); +extern void glVertexAttrib4bvARB(GLuint index, const GLbyte *v); +extern void glVertexAttrib4dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glVertexAttrib4dvARB(GLuint index, const GLdouble *v); +extern void glVertexAttrib4fARB(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glVertexAttrib4fvARB(GLuint index, const GLfloat *v); +extern void glVertexAttrib4ivARB(GLuint index, const GLint *v); +extern void glVertexAttrib4sARB(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +extern void glVertexAttrib4svARB(GLuint index, const GLshort *v); +extern void glVertexAttrib4ubvARB(GLuint index, const GLubyte *v); +extern void glVertexAttrib4uivARB(GLuint index, const GLuint *v); +extern void glVertexAttrib4usvARB(GLuint index, const GLushort *v); +extern void glVertexAttribPointerARB(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +extern void glDisableVertexAttribArrayARB(GLuint index); +extern void glEnableVertexAttribArrayARB(GLuint index); +extern void glGetVertexAttribPointervARB(GLuint index, GLenum pname, GLvoid **pointer); +extern void glGetVertexAttribdvARB(GLuint index, GLenum pname, GLdouble *params); +extern void glGetVertexAttribfvARB(GLuint index, GLenum pname, GLfloat *params); +extern void glGetVertexAttribivARB(GLuint index, GLenum pname, GLint *params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_window_pos +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glWindowPos2dARBProcPtr) (GLdouble x, GLdouble y); +typedef void (* glWindowPos2dvARBProcPtr) (const GLdouble *p); +typedef void (* glWindowPos2fARBProcPtr) (GLfloat x, GLfloat y); +typedef void (* glWindowPos2fvARBProcPtr) (const GLfloat *p); +typedef void (* glWindowPos2iARBProcPtr) (GLint x, GLint y); +typedef void (* glWindowPos2ivARBProcPtr) (const GLint *p); +typedef void (* glWindowPos2sARBProcPtr) (GLshort x, GLshort y); +typedef void (* glWindowPos2svARBProcPtr) (const GLshort *p); +typedef void (* glWindowPos3dARBProcPtr) (GLdouble x, GLdouble y, GLdouble z); +typedef void (* glWindowPos3dvARBProcPtr) (const GLdouble *p); +typedef void (* glWindowPos3fARBProcPtr) (GLfloat x, GLfloat y, GLfloat z); +typedef void (* glWindowPos3fvARBProcPtr) (const GLfloat *p); +typedef void (* glWindowPos3iARBProcPtr) (GLint x, GLint y, GLint z); +typedef void (* glWindowPos3ivARBProcPtr) (const GLint *p); +typedef void (* glWindowPos3sARBProcPtr) (GLshort x, GLshort y, GLshort z); +typedef void (* glWindowPos3svARBProcPtr) (const GLshort *p); +#else +extern void glWindowPos2dARB(GLdouble x, GLdouble y); +extern void glWindowPos2dvARB(const GLdouble *p); +extern void glWindowPos2fARB(GLfloat x, GLfloat y); +extern void glWindowPos2fvARB(const GLfloat *p); +extern void glWindowPos2iARB(GLint x, GLint y); +extern void glWindowPos2ivARB(const GLint *p); +extern void glWindowPos2sARB(GLshort x, GLshort y); +extern void glWindowPos2svARB(const GLshort *p); +extern void glWindowPos3dARB(GLdouble x, GLdouble y, GLdouble z); +extern void glWindowPos3dvARB(const GLdouble *p); +extern void glWindowPos3fARB(GLfloat x, GLfloat y, GLfloat z); +extern void glWindowPos3fvARB(const GLfloat *p); +extern void glWindowPos3iARB(GLint x, GLint y, GLint z); +extern void glWindowPos3ivARB(const GLint *p); +extern void glWindowPos3sARB(GLshort x, GLshort y, GLshort z); +extern void glWindowPos3svARB(const GLshort *p); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_bindable_uniform +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (*glUniformBufferEXTProcPtr) (GLuint program, GLint location, GLuint buffer); +typedef GLint (*glGetUniformBufferSizeEXTProcPtr) (GLuint program, GLint location); +typedef GLintptr (*glGetUniformOffsetEXTProcPtr) (GLuint program, GLint location); +#else +extern void glUniformBufferEXT(GLuint program, GLint location, GLuint buffer); +extern GLint glGetUniformBufferSizeEXT(GLuint program, GLint location); +extern GLintptr glGetUniformOffsetEXT(GLuint program, GLint location); +#endif +#endif /* GL_EXT_bindable_uniform */ + +#if GL_EXT_blend_color +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBlendColorEXTProcPtr) (GLclampf red, GLclampf blue, GLclampf green, GLclampf alpha); +#else +extern void glBlendColorEXT(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_blend_equation_separate +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBlendEquationSeparateEXTProcPtr) (GLenum modeRGB, GLenum modeAlpha); +#else +extern void glBlendEquationSeparateEXT(GLenum modeRGB, GLenum modeAlpha); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_blend_func_separate +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBlendFuncSeparateEXTProcPtr) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#else +extern void glBlendFuncSeparateEXT(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_blend_minmax +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBlendEquationEXTProcPtr) (GLenum mode); +#else +extern void glBlendEquationEXT(GLenum mode); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_color_subtable +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glColorSubTableEXTProcPtr) (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +typedef void (* glCopyColorSubTableEXTProcPtr) (GLenum, GLsizei, GLint, GLint, GLsizei); +#else +extern void glColorSubTableEXT(GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +extern void glCopyColorSubTableEXT(GLenum, GLsizei, GLint, GLint, GLsizei); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_compiled_vertex_array +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glLockArraysEXTProcPtr) (GLint first, GLsizei count); +typedef void (* glUnlockArraysEXTProcPtr) (void); +#else +extern void glLockArraysEXT(GLint first, GLsizei count); +extern void glUnlockArraysEXT(void); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_convolution +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glConvolutionFilter1DEXTProcPtr) (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +typedef void (* glConvolutionFilter2DEXTProcPtr) (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +typedef void (* glConvolutionParameterfEXTProcPtr) (GLenum, GLenum, GLfloat); +typedef void (* glConvolutionParameterfvEXTProcPtr) (GLenum, GLenum, const GLfloat *); +typedef void (* glConvolutionParameteriEXTProcPtr) (GLenum, GLenum, GLint); +typedef void (* glConvolutionParameterivEXTProcPtr) (GLenum, GLenum, const GLint *); +typedef void (* glCopyConvolutionFilter1DEXTProcPtr) (GLenum, GLenum, GLint, GLint, GLsizei); +typedef void (* glCopyConvolutionFilter2DEXTProcPtr) (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei); +typedef void (* glGetConvolutionFilterEXTProcPtr) (GLenum, GLenum, GLenum, GLvoid *); +typedef void (* glGetConvolutionParameterfvEXTProcPtr) (GLenum, GLenum, GLfloat *); +typedef void (* glGetConvolutionParameterivEXTProcPtr) (GLenum, GLenum, GLint *); +typedef void (* glGetSeparableFilterEXTProcPtr) (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *); +typedef void (* glSeparableFilter2DEXTProcPtr) (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *); +#else +extern void glConvolutionFilter1DEXT(GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +extern void glConvolutionFilter2DEXT(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +extern void glConvolutionParameterfEXT(GLenum, GLenum, GLfloat); +extern void glConvolutionParameterfvEXT(GLenum, GLenum, const GLfloat *); +extern void glConvolutionParameteriEXT(GLenum, GLenum, GLint); +extern void glConvolutionParameterivEXT(GLenum, GLenum, const GLint *); +extern void glCopyConvolutionFilter1DEXT(GLenum, GLenum, GLint, GLint, GLsizei); +extern void glCopyConvolutionFilter2DEXT(GLenum, GLenum, GLint, GLint, GLsizei, GLsizei); +extern void glGetConvolutionFilterEXT(GLenum, GLenum, GLenum, GLvoid *); +extern void glGetConvolutionParameterfvEXT(GLenum, GLenum, GLfloat *); +extern void glGetConvolutionParameterivEXT(GLenum, GLenum, GLint *); +extern void glGetSeparableFilterEXT(GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *); +extern void glSeparableFilter2DEXT(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_copy_texture +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glCopyTexImage1DEXTProcPtr) (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint); +typedef void (* glCopyTexImage2DEXTProcPtr) (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint); +typedef void (* glCopyTexSubImage1DEXTProcPtr) (GLenum, GLint, GLint, GLint, GLint, GLsizei); +typedef void (* glCopyTexSubImage2DEXTProcPtr) (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +typedef void (* glCopyTexSubImage3DEXTProcPtr) (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +#else +extern void glCopyTexImage1DEXT(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint); +extern void glCopyTexImage2DEXT(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint); +extern void glCopyTexSubImage1DEXT(GLenum, GLint, GLint, GLint, GLint, GLsizei); +extern void glCopyTexSubImage2DEXT(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +extern void glCopyTexSubImage3DEXT(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_debug_label +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glLabelObjectEXTProcPtr) (GLenum type, GLuint object, GLsizei length, const GLchar *label); +typedef void (* glGetObjectLabelEXTProcPtr) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#else +extern void glLabelObjectEXT(GLenum type, GLuint object, GLsizei length, const GLchar *label); +extern void glGetObjectLabelEXT(GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_debug_marker +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glInsertEventMarkerEXTProcPtr) (GLsizei length, const char *marker); +typedef void (* glPushGroupMarkerEXTProcPtr) (GLsizei length, const char *marker); +typedef void (* glPopGroupMarkerEXTProcPtr) (void); +#else +extern void glInsertEventMarkerEXT(GLsizei length, const char *marker); +extern void glPushGroupMarkerEXT(GLsizei length, const char *marker); +extern void glPopGroupMarkerEXT(void); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_depth_bounds_test +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glDepthBoundsEXTProcPtr) (GLclampd zmin, GLclampd zmax); +#else +extern void glDepthBoundsEXT(GLclampd zmin, GLclampd zmax); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_draw_buffers2 +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glColorMaskIndexedEXTProcPtr) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void (* glEnableIndexedEXTProcPtr) (GLenum target, GLuint index); +typedef void (* glDisableIndexedEXTProcPtr) (GLenum target, GLuint index); +typedef GLboolean (* glIsEnabledIndexedEXTProcPtr) (GLenum target, GLuint index); +#else +extern void glColorMaskIndexedEXT(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +extern void glEnableIndexedEXT(GLenum target, GLuint index); +extern void glDisableIndexedEXT(GLenum target, GLuint index); +extern GLboolean glIsEnabledIndexedEXT(GLenum target, GLuint index); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_draw_range_elements +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glDrawRangeElementsEXTProcPtr) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +#else +extern void glDrawRangeElementsEXT(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_fog_coord +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glFogCoordfEXTProcPtr) (GLfloat coord); +typedef void (* glFogCoordfvEXTProcPtr) (const GLfloat *coord); +typedef void (* glFogCoorddEXTProcPtr) (GLdouble coord); +typedef void (* glFogCoorddvEXTProcPtr) (const GLdouble *coord); +typedef void (* glFogCoordPointerEXTProcPtr) (GLenum type, GLsizei stride, const GLvoid *pointer); +#else +extern void glFogCoordfEXT(GLfloat coord); +extern void glFogCoordfvEXT(const GLfloat *coord); +extern void glFogCoorddEXT(GLdouble coord); +extern void glFogCoorddvEXT(const GLdouble *coord); +extern void glFogCoordPointerEXT(GLenum type, GLsizei stride, const GLvoid *pointer); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_framebuffer_blit +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBlitFramebufferEXTProcPtr) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#else +extern void glBlitFramebufferEXT(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_framebuffer_multisample +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glRenderbufferStorageMultisampleEXTProcPtr) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#else +extern void glRenderbufferStorageMultisampleEXT(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_framebuffer_object +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef GLboolean (* glIsRenderbufferEXTProcPtr) (GLuint renderbuffer); +typedef void (* glBindRenderbufferEXTProcPtr) (GLenum target, GLuint renderbuffer); +typedef void (* glDeleteRenderbuffersEXTProcPtr) (GLsizei n, const GLuint *renderbuffers); +typedef void (* glGenRenderbuffersEXTProcPtr) (GLsizei n, GLuint *renderbuffers); +typedef void (* glRenderbufferStorageEXTProcPtr) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (* glGetRenderbufferParameterivEXTProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef GLboolean (* glIsFramebufferEXTProcPtr) (GLuint framebuffer); +typedef void (* glBindFramebufferEXTProcPtr) (GLenum target, GLuint framebuffer); +typedef void (* glDeleteFramebuffersEXTProcPtr) (GLsizei n, const GLuint *framebuffers); +typedef void (* glGenFramebuffersEXTProcPtr) (GLsizei n, GLuint *framebuffers); +typedef GLenum (* glCheckFramebufferStatusEXTProcPtr) (GLenum target); +typedef void (* glFramebufferTexture1DEXTProcPtr) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (* glFramebufferTexture2DEXTProcPtr) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (* glFramebufferTexture3DEXTProcPtr) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (* glFramebufferRenderbufferEXTProcPtr) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (* glGetFramebufferAttachmentParameterivEXTProcPtr) (GLenum target, GLenum attachment, GLenum pname, GLint *params); +typedef void (* glGenerateMipmapEXTProcPtr) (GLenum target); +#else +extern GLboolean glIsRenderbufferEXT(GLuint renderbuffer); +extern void glBindRenderbufferEXT(GLenum target, GLuint renderbuffer); +extern void glDeleteRenderbuffersEXT(GLsizei n, const GLuint *renderbuffers); +extern void glGenRenderbuffersEXT(GLsizei n, GLuint *renderbuffers); +extern void glRenderbufferStorageEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +extern void glGetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint *params); +extern GLboolean glIsFramebufferEXT(GLuint framebuffer); +extern void glBindFramebufferEXT(GLenum target, GLuint framebuffer); +extern void glDeleteFramebuffersEXT(GLsizei n, const GLuint *framebuffers); +extern void glGenFramebuffersEXT(GLsizei n, GLuint *framebuffers); +extern GLenum glCheckFramebufferStatusEXT(GLenum target); +extern void glFramebufferTexture1DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +extern void glFramebufferTexture2DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +extern void glFramebufferTexture3DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +extern void glFramebufferRenderbufferEXT(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +extern void glGetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, GLenum pname, GLint *params); +extern void glGenerateMipmapEXT(GLenum target); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_geometry_shader4 +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glProgramParameteriEXTProcPtr) (GLuint program, GLenum pname, GLint value); +typedef void (* glFramebufferTextureEXTProcPtr) (GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void (* glFramebufferTextureFaceEXTProcPtr) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +#else +extern void glProgramParameteriEXT(GLuint program, GLenum pname, GLint value); +extern void glFramebufferTextureEXT(GLenum target, GLenum attachment, GLuint texture, GLint level); +extern void glFramebufferTextureFaceEXT(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_geometry_shader4 || GL_EXT_texture_array +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glFramebufferTextureLayerEXTProcPtr) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +#else +extern void glFramebufferTextureLayerEXT(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +#endif +#endif + +#if GL_EXT_gpu_shader4 +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (*glVertexAttribI1iEXTProcPtr) (GLuint index, GLint x); +typedef void (*glVertexAttribI2iEXTProcPtr) (GLuint index, GLint x, GLint y); +typedef void (*glVertexAttribI3iEXTProcPtr) (GLuint index, GLint x, GLint y, GLint z); +typedef void (*glVertexAttribI4iEXTProcPtr) (GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (*glVertexAttribI1uiEXTProcPtr) (GLuint index, GLuint x); +typedef void (*glVertexAttribI2uiEXTProcPtr) (GLuint index, GLuint x, GLuint y); +typedef void (*glVertexAttribI3uiEXTProcPtr) (GLuint index, GLuint x, GLuint y, GLuint z); +typedef void (*glVertexAttribI4uiEXTProcPtr) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (*glVertexAttribI1ivEXTProcPtr) (GLuint index, const GLint *v); +typedef void (*glVertexAttribI2ivEXTProcPtr) (GLuint index, const GLint *v); +typedef void (*glVertexAttribI3ivEXTProcPtr) (GLuint index, const GLint *v); +typedef void (*glVertexAttribI4ivEXTProcPtr) (GLuint index, const GLint *v); +typedef void (*glVertexAttribI1uivEXTProcPtr) (GLuint index, const GLuint *v); +typedef void (*glVertexAttribI2uivEXTProcPtr) (GLuint index, const GLuint *v); +typedef void (*glVertexAttribI3uivEXTProcPtr) (GLuint index, const GLuint *v); +typedef void (*glVertexAttribI4uivEXTProcPtr) (GLuint index, const GLuint *v); +typedef void (*glVertexAttribI4bvEXTProcPtr) (GLuint index, const GLbyte *v); +typedef void (*glVertexAttribI4svEXTProcPtr) (GLuint index, const GLshort *v); +typedef void (*glVertexAttribI4ubvEXTProcPtr) (GLuint index, const GLubyte *v); +typedef void (*glVertexAttribI4usvEXTProcPtr) (GLuint index, const GLushort *v); +typedef void (*glVertexAttribIPointerEXTProcPtr) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (*glGetVertexAttribIivEXTProcPtr) (GLuint index, GLenum pname, GLint *params); +typedef void (*glGetVertexAttribIuivEXTProcPtr) (GLuint index, GLenum pname, GLuint *params); +typedef void (*glUniform1uiEXTProcPtr) (GLint location, GLuint v0); +typedef void (*glUniform2uiEXTProcPtr) (GLint location, GLuint v0, GLuint v1); +typedef void (*glUniform3uiEXTProcPtr) (GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (*glUniform4uiEXTProcPtr) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (*glUniform1uivEXTProcPtr) (GLint location, GLsizei count, const GLuint *value); +typedef void (*glUniform2uivEXTProcPtr) (GLint location, GLsizei count, const GLuint *value); +typedef void (*glUniform3uivEXTProcPtr) (GLint location, GLsizei count, const GLuint *value); +typedef void (*glUniform4uivEXTProcPtr) (GLint location, GLsizei count, const GLuint *value); +typedef void (*glGetUniformuivEXTProcPtr) (GLuint program, GLint location, GLuint *params); +typedef void (*glBindFragDataLocationEXTProcPtr) (GLuint program, GLuint colorNumber, const GLchar *name); +typedef GLint (*glGetFragDataLocationEXTProcPtr) (GLuint program, const GLchar *name); +#else +extern void glVertexAttribI1iEXT(GLuint index, GLint x); +extern void glVertexAttribI2iEXT(GLuint index, GLint x, GLint y); +extern void glVertexAttribI3iEXT(GLuint index, GLint x, GLint y, GLint z); +extern void glVertexAttribI4iEXT(GLuint index, GLint x, GLint y, GLint z, GLint w); +extern void glVertexAttribI1uiEXT(GLuint index, GLuint x); +extern void glVertexAttribI2uiEXT(GLuint index, GLuint x, GLuint y); +extern void glVertexAttribI3uiEXT(GLuint index, GLuint x, GLuint y, GLuint z); +extern void glVertexAttribI4uiEXT(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +extern void glVertexAttribI1ivEXT(GLuint index, const GLint *v); +extern void glVertexAttribI2ivEXT(GLuint index, const GLint *v); +extern void glVertexAttribI3ivEXT(GLuint index, const GLint *v); +extern void glVertexAttribI4ivEXT(GLuint index, const GLint *v); +extern void glVertexAttribI1uivEXT(GLuint index, const GLuint *v); +extern void glVertexAttribI2uivEXT(GLuint index, const GLuint *v); +extern void glVertexAttribI3uivEXT(GLuint index, const GLuint *v); +extern void glVertexAttribI4uivEXT(GLuint index, const GLuint *v); +extern void glVertexAttribI4bvEXT(GLuint index, const GLbyte *v); +extern void glVertexAttribI4svEXT(GLuint index, const GLshort *v); +extern void glVertexAttribI4ubvEXT(GLuint index, const GLubyte *v); +extern void glVertexAttribI4usvEXT(GLuint index, const GLushort *v); +extern void glVertexAttribIPointerEXT(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glGetVertexAttribIivEXT(GLuint index, GLenum pname, GLint *params); +extern void glGetVertexAttribIuivEXT(GLuint index, GLenum pname, GLuint *params); +extern void glUniform1uiEXT(GLint location, GLuint v0); +extern void glUniform2uiEXT(GLint location, GLuint v0, GLuint v1); +extern void glUniform3uiEXT(GLint location, GLuint v0, GLuint v1, GLuint v2); +extern void glUniform4uiEXT(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +extern void glUniform1uivEXT(GLint location, GLsizei count, const GLuint *value); +extern void glUniform2uivEXT(GLint location, GLsizei count, const GLuint *value); +extern void glUniform3uivEXT(GLint location, GLsizei count, const GLuint *value); +extern void glUniform4uivEXT(GLint location, GLsizei count, const GLuint *value); +extern void glGetUniformuivEXT(GLuint program, GLint location, GLuint *params); +extern void glBindFragDataLocationEXT(GLuint program, GLuint colorNumber, const GLchar *name); +extern GLint glGetFragDataLocationEXT(GLuint program, const GLchar *name); +#endif +#endif /* GL_EXT_gpu_shader4 */ + +#if GL_EXT_histogram +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glGetHistogramEXTProcPtr) (GLenum, GLboolean, GLenum, GLenum, GLvoid *); +typedef void (* glGetHistogramParameterfvEXTProcPtr) (GLenum, GLenum, GLfloat *); +typedef void (* glGetHistogramParameterivEXTProcPtr) (GLenum, GLenum, GLint *); +typedef void (* glGetMinmaxEXTProcPtr) (GLenum, GLboolean, GLenum, GLenum, GLvoid *); +typedef void (* glGetMinmaxParameterfvEXTProcPtr) (GLenum, GLenum, GLfloat *); +typedef void (* glGetMinmaxParameterivEXTProcPtr) (GLenum, GLenum, GLint *); +typedef void (* glHistogramEXTProcPtr) (GLenum, GLsizei, GLenum, GLboolean); +typedef void (* glMinmaxEXTProcPtr) (GLenum, GLenum, GLboolean); +typedef void (* glResetHistogramEXTProcPtr) (GLenum); +typedef void (* glResetMinmaxEXTProcPtr) (GLenum); +#else +extern void glGetHistogramEXT(GLenum, GLboolean, GLenum, GLenum, GLvoid *); +extern void glGetHistogramParameterfvEXT(GLenum, GLenum, GLfloat *); +extern void glGetHistogramParameterivEXT(GLenum, GLenum, GLint *); +extern void glGetMinmaxEXT(GLenum, GLboolean, GLenum, GLenum, GLvoid *); +extern void glGetMinmaxParameterfvEXT(GLenum, GLenum, GLfloat *); +extern void glGetMinmaxParameterivEXT(GLenum, GLenum, GLint *); +extern void glHistogramEXT(GLenum, GLsizei, GLenum, GLboolean); +extern void glMinmaxEXT(GLenum, GLenum, GLboolean); +extern void glResetHistogramEXT(GLenum); +extern void glResetMinmaxEXT(GLenum); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_multi_draw_arrays +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glMultiDrawArraysEXTProcPtr) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +typedef void (* glMultiDrawElementsEXTProcPtr) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount); +#else +extern void glMultiDrawArraysEXT(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +extern void glMultiDrawElementsEXT(GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_paletted_texture +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glColorTableEXTProcPtr) (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +typedef void (* glColorSubTableEXTProcPtr) (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +typedef void (* glGetColorTableEXTProcPtr) (GLenum, GLenum, GLenum, GLvoid *); +typedef void (* glGetColorTableParameterivEXTProcPtr) (GLenum, GLenum, GLint *); +typedef void (* glGetColorTableParameterfvEXTProcPtr) (GLenum, GLenum, GLfloat *); +#else +extern void glColorTableEXT(GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +extern void glColorSubTableEXT(GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +extern void glGetColorTableEXT(GLenum, GLenum, GLenum, GLvoid *); +extern void glGetColorTableParameterivEXT(GLenum, GLenum, GLint *); +extern void glGetColorTableParameterfvEXT(GLenum, GLenum, GLfloat *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_polygon_offset +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glPolygonOffsetEXTProcPtr) (GLfloat factor, GLfloat bias); +#else +extern void glPolygonOffsetEXT(GLfloat factor, GLfloat bias); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_provoking_vertex +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glProvokingVertexEXTProcPtr) (GLenum mode); +#else +extern void glProvokingVertexEXT(GLenum mode); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_secondary_color +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glSecondaryColor3bEXTProcPtr) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (* glSecondaryColor3bvEXTProcPtr) (const GLbyte *v); +typedef void (* glSecondaryColor3dEXTProcPtr) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (* glSecondaryColor3dvEXTProcPtr) (const GLdouble *v); +typedef void (* glSecondaryColor3fEXTProcPtr) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (* glSecondaryColor3fvEXTProcPtr) (const GLfloat *v); +typedef void (* glSecondaryColor3iEXTProcPtr) (GLint red, GLint green, GLint blue); +typedef void (* glSecondaryColor3ivEXTProcPtr) (const GLint *v); +typedef void (* glSecondaryColor3sEXTProcPtr) (GLshort red, GLshort green, GLshort blue); +typedef void (* glSecondaryColor3svEXTProcPtr) (const GLshort *v); +typedef void (* glSecondaryColor3ubEXTProcPtr) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (* glSecondaryColor3ubvEXTProcPtr) (const GLubyte *v); +typedef void (* glSecondaryColor3uiEXTProcPtr) (GLuint red, GLuint green, GLuint blue); +typedef void (* glSecondaryColor3uivEXTProcPtr) (const GLuint *v); +typedef void (* glSecondaryColor3usEXTProcPtr) (GLushort red, GLushort green, GLushort blue); +typedef void (* glSecondaryColor3usvEXTProcPtr) (const GLushort *v); +typedef void (* glSecondaryColorPointerEXTProcPtr) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +#else +extern void glSecondaryColor3bEXT(GLbyte red, GLbyte green, GLbyte blue); +extern void glSecondaryColor3bvEXT(const GLbyte *v); +extern void glSecondaryColor3dEXT(GLdouble red, GLdouble green, GLdouble blue); +extern void glSecondaryColor3dvEXT(const GLdouble *v); +extern void glSecondaryColor3fEXT(GLfloat red, GLfloat green, GLfloat blue); +extern void glSecondaryColor3fvEXT(const GLfloat *v); +extern void glSecondaryColor3iEXT(GLint red, GLint green, GLint blue); +extern void glSecondaryColor3ivEXT(const GLint *v); +extern void glSecondaryColor3sEXT(GLshort red, GLshort green, GLshort blue); +extern void glSecondaryColor3svEXT(const GLshort *v); +extern void glSecondaryColor3ubEXT(GLubyte red, GLubyte green, GLubyte blue); +extern void glSecondaryColor3ubvEXT(const GLubyte *v); +extern void glSecondaryColor3uiEXT(GLuint red, GLuint green, GLuint blue); +extern void glSecondaryColor3uivEXT(const GLuint *v); +extern void glSecondaryColor3usEXT(GLushort red, GLushort green, GLushort blue); +extern void glSecondaryColor3usvEXT(const GLushort *v); +extern void glSecondaryColorPointerEXT(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_stencil_two_side +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glActiveStencilFaceEXTProcPtr) (GLenum face); +#else +extern void glActiveStencilFaceEXT(GLenum face); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_subtexture +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glTexSubImage1DEXTProcPtr) (GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *); +typedef void (* glTexSubImage2DEXTProcPtr) (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#else +extern void glTexSubImage1DEXT(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *); +extern void glTexSubImage2DEXT(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_texture3D +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glTexImage3DEXTProcPtr) (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +typedef void (* glTexSubImage3DEXTProcPtr) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#else +extern void glTexImage3DEXT(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +extern void glTexSubImage3DEXT(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_texture_integer +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (*glClearColorIiEXTProcPtr) ( GLint r, GLint g, GLint b, GLint a ); +typedef void (*glClearColorIuiEXTProcPtr) ( GLuint r, GLuint g, GLuint b, GLuint a ); +typedef void (*glTexParameterIivEXTProcPtr)( GLenum target, GLenum pname, GLint *params ); +typedef void (*glTexParameterIuivEXTProcPtr)( GLenum target, GLenum pname, GLuint *params ); +typedef void (*glGetTexParameterIivEXTProcPtr) ( GLenum target, GLenum pname, GLint *params); +typedef void (*glGetTexParameterIuivEXTProcPtr) ( GLenum target, GLenum pname, GLuint *params); +#else +extern void glClearColorIiEXT( GLint r, GLint g, GLint b, GLint a ); +extern void glClearColorIuiEXT( GLuint r, GLuint g, GLuint b, GLuint a ); +extern void glTexParameterIivEXT( GLenum target, GLenum pname, GLint *params ); +extern void glTexParameterIuivEXT( GLenum target, GLenum pname, GLuint *params ); +extern void glGetTexParameterIivEXT( GLenum target, GLenum pname, GLint *params); +extern void glGetTexParameterIuivEXT( GLenum target, GLenum pname, GLuint *params); +#endif +#endif /* GL_EXT_texture_integer */ + +#if GL_EXT_texture_object +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef GLboolean (* glAreTexturesResidentEXTProcPtr) (GLsizei, const GLuint *, GLboolean *); +typedef void (* glBindTextureEXTProcPtr) (GLenum, GLuint); +typedef void (* glDeleteTexturesEXTProcPtr) (GLsizei, const GLuint *); +typedef void (* glGenTexturesEXTProcPtr) (GLsizei, GLuint *); +typedef GLboolean (* glIsTextureEXTProcPtr) (GLuint); +typedef void (* glPrioritizeTexturesEXTProcPtr) (GLsizei, const GLuint *, const GLclampf *); +#else +extern GLboolean glAreTexturesResidentEXT(GLsizei, const GLuint *, GLboolean *); +extern void glBindTextureEXT(GLenum, GLuint); +extern void glDeleteTexturesEXT(GLsizei, const GLuint *); +extern void glGenTexturesEXT(GLsizei, GLuint *); +extern GLboolean glIsTextureEXT(GLuint); +extern void glPrioritizeTexturesEXT(GLsizei, const GLuint *, const GLclampf *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_timer_query +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glGetQueryObjecti64vEXTProcPtr)(GLuint id, GLenum pname, GLint64EXT *params); +typedef void (* glGetQueryObjectui64vEXTProcPtr)(GLuint id, GLenum pname, GLuint64EXT *params); +#else +extern void glGetQueryObjecti64vEXT(GLuint id, GLenum pname, GLint64EXT *params); +extern void glGetQueryObjectui64vEXT(GLuint id, GLenum pname, GLuint64EXT *params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_transform_feedback +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBindBufferRangeEXTProcPtr) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (* glBindBufferOffsetEXTProcPtr) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); +typedef void (* glBindBufferBaseEXTProcPtr) (GLenum target, GLuint index, GLuint buffer); +typedef void (* glBeginTransformFeedbackEXTProcPtr) (GLenum primitiveMode); +typedef void (* glEndTransformFeedbackEXTProcPtr) (void); +typedef void (* glTransformFeedbackVaryingsEXTProcPtr) (GLuint program, GLsizei count, const GLchar* const *varyings, GLenum bufferMode); +typedef void (* glGetTransformFeedbackVaryingEXTProcPtr) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +#else +extern void glBindBufferRangeEXT(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +extern void glBindBufferOffsetEXT(GLenum target, GLuint index, GLuint buffer, GLintptr offset); +extern void glBindBufferBaseEXT(GLenum target, GLuint index, GLuint buffer); +extern void glBeginTransformFeedbackEXT(GLenum primitiveMode); +extern void glEndTransformFeedbackEXT(void); +extern void glTransformFeedbackVaryingsEXT(GLuint program, GLsizei count, const GLchar* const *varyings, GLenum bufferMode); +extern void glGetTransformFeedbackVaryingEXT(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +#endif +#endif /* GL_EXT_transform_feedback */ + +#if GL_EXT_transform_feedback || GL_EXT_draw_buffers2 +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glGetIntegerIndexedvEXTProcPtr) (GLenum param, GLint index, GLint *values); +typedef void (* glGetBooleanIndexedvEXTProcPtr) (GLenum param, GLint index, GLboolean *values); +#else +extern void glGetIntegerIndexedvEXT(GLenum param, GLuint index, GLint *values); +extern void glGetBooleanIndexedvEXT(GLenum param, GLuint index, GLboolean *values); +#endif +#endif /* GL_EXT_transform_feedback || GL_EXT_draw_buffers2 */ + +#if GL_EXT_vertex_array +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glArrayElementEXTProcPtr) (GLint); +typedef void (* glColorPointerEXTProcPtr) (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +typedef void (* glDrawArraysEXTProcPtr) (GLenum, GLint, GLsizei); +typedef void (* glEdgeFlagPointerEXTProcPtr) (GLsizei, GLsizei, const GLvoid *); +typedef void (* glGetPointervEXTProcPtr) (GLenum, GLvoid **); +typedef void (* glIndexPointerEXTProcPtr) (GLenum, GLsizei, GLsizei, const GLvoid *); +typedef void (* glNormalPointerEXTProcPtr) (GLenum, GLsizei, GLsizei, const GLvoid *); +typedef void (* glTexCoordPointerEXTProcPtr) (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +typedef void (* glVertexPointerEXTProcPtr) (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +#else +extern void glArrayElementEXT(GLint); +extern void glColorPointerEXT(GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +extern void glDrawArraysEXT(GLenum, GLint, GLsizei); +extern void glEdgeFlagPointerEXT(GLsizei, GLsizei, const GLvoid *); +extern void glGetPointervEXT(GLenum, GLvoid **); +extern void glIndexPointerEXT(GLenum, GLsizei, GLsizei, const GLvoid *); +extern void glNormalPointerEXT(GLenum, GLsizei, GLsizei, const GLvoid *); +extern void glTexCoordPointerEXT(GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +extern void glVertexPointerEXT(GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_element_array +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glElementPointerAPPLEProcPtr) (GLenum type, const GLvoid *pointer); +typedef void (* glDrawElementArrayAPPLEProcPtr) (GLenum mode, GLint first, GLsizei count); +typedef void (* glDrawRangeElementArrayAPPLEProcPtr) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); +typedef void (* glMultiDrawElementArrayAPPLEProcPtr) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +typedef void (* glMultiDrawRangeElementArrayAPPLEProcPtr) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); +#else +extern void glElementPointerAPPLE(GLenum type, const GLvoid *pointer); +extern void glDrawElementArrayAPPLE(GLenum mode, GLint first, GLsizei count); +extern void glDrawRangeElementArrayAPPLE(GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); +extern void glMultiDrawElementArrayAPPLE(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +extern void glMultiDrawRangeElementArrayAPPLE(GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_fence +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glGenFencesAPPLEProcPtr) (GLsizei n, GLuint *fences); +typedef void (* glDeleteFencesAPPLEProcPtr) (GLsizei n, const GLuint *fences); +typedef void (* glSetFenceAPPLEProcPtr) (GLuint fence); +typedef GLboolean (* glIsFenceAPPLEProcPtr) (GLuint fence); +typedef GLboolean (* glTestFenceAPPLEProcPtr) (GLuint fence); +typedef void (* glFinishFenceAPPLEProcPtr) (GLuint fence); +typedef GLboolean (* glTestObjectAPPLEProcPtr) (GLenum object, GLuint name); +typedef void (* glFinishObjectAPPLEProcPtr) (GLenum object, GLuint name); +#else +extern void glGenFencesAPPLE(GLsizei n, GLuint *fences); +extern void glDeleteFencesAPPLE(GLsizei n, const GLuint *fences); +extern void glSetFenceAPPLE(GLuint fence); +extern GLboolean glIsFenceAPPLE(GLuint fence); +extern GLboolean glTestFenceAPPLE(GLuint fence); +extern void glFinishFenceAPPLE(GLuint fence); +extern GLboolean glTestObjectAPPLE(GLenum object, GLuint name); +extern void glFinishObjectAPPLE(GLenum object, GLuint name); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_flush_buffer_range +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBufferParameteriAPPLEProcPtr) (GLenum target, GLenum pname, GLint param); +typedef void (* glFlushMappedBufferRangeAPPLEProcPtr) (GLenum target, GLintptr offset, GLsizeiptr size); +#else +extern void glBufferParameteriAPPLE(GLenum target, GLenum pname, GLint param); +extern void glFlushMappedBufferRangeAPPLE(GLenum target, GLintptr offset, GLsizeiptr size); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_flush_render +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glFlushRenderAPPLEProcPtr) (void); +typedef void (* glFinishRenderAPPLEProcPtr) (void); +typedef void (* glSwapAPPLEProcPtr) (void); +#else +extern void glFlushRenderAPPLE(void); +extern void glFinishRenderAPPLE(void); +extern void glSwapAPPLE(void); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_object_purgeable +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef GLenum (* glObjectPurgeableAPPLEProcPtr) (GLenum objectType, GLuint name, GLenum option); +typedef GLenum (* glObjectUnpurgeableAPPLEProcPtr) (GLenum objectType, GLuint name, GLenum option); +typedef void (* glGetObjectParameterivAPPLEProcPtr) (GLenum objectType, GLuint name, GLenum pname, GLint *params); +#else +extern GLenum glObjectPurgeableAPPLE(GLenum objectType, GLuint name, GLenum option); +extern GLenum glObjectUnpurgeableAPPLE(GLenum objectType, GLuint name, GLenum option); +extern void glGetObjectParameterivAPPLE(GLenum objectType, GLuint name, GLenum pname, GLint *params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_texture_range +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glTextureRangeAPPLEProcPtr) (GLenum target, GLsizei length, const GLvoid *pointer); +typedef void (* glGetTexParameterPointervAPPLEProcPtr) (GLenum target, GLenum pname, GLvoid **params); +#else +extern void glTextureRangeAPPLE(GLenum target, GLsizei length, const GLvoid *pointer); +extern void glGetTexParameterPointervAPPLE(GLenum target, GLenum pname, GLvoid **params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_vertex_array_object +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBindVertexArrayAPPLEProcPtr) (GLuint id); +typedef void (* glDeleteVertexArraysAPPLEProcPtr) (GLsizei n, const GLuint *ids); +typedef void (* glGenVertexArraysAPPLEProcPtr) (GLsizei n, GLuint *ids); +typedef GLboolean (* glIsVertexArrayAPPLEProcPtr) (GLuint id); +#else +extern void glBindVertexArrayAPPLE(GLuint id); +extern void glDeleteVertexArraysAPPLE(GLsizei n, const GLuint *ids); +extern void glGenVertexArraysAPPLE(GLsizei n, GLuint *ids); +extern GLboolean glIsVertexArrayAPPLE(GLuint id); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_vertex_array_range +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glVertexArrayRangeAPPLEProcPtr) (GLsizei length, const GLvoid *pointer); +typedef void (* glFlushVertexArrayRangeAPPLEProcPtr) (GLsizei length, const GLvoid *pointer); +typedef void (* glVertexArrayParameteriAPPLEProcPtr) (GLenum pname, GLint param); +#else +extern void glVertexArrayRangeAPPLE(GLsizei length, const GLvoid *pointer); +extern void glFlushVertexArrayRangeAPPLE(GLsizei length, const GLvoid *pointer); +extern void glVertexArrayParameteriAPPLE(GLenum pname, GLint param); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_vertex_point_size +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glPointSizePointerAPPLEProcPtr) (GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glVertexPointSizefAPPLEProcPtr) (GLfloat size); +#else +extern void glPointSizePointerAPPLE(GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glVertexPointSizefAPPLE(GLfloat size); +#endif +#endif + +#if GL_APPLE_vertex_program_evaluators +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glEnableVertexAttribAPPLEProcPtr) (GLuint index, GLenum pname); +typedef void (* glDisableVertexAttribAPPLEProcPtr) (GLuint index, GLenum pname); +typedef GLboolean (* glIsVertexAttribEnabledAPPLEProcPtr) (GLuint index, GLenum pname); +typedef void (* glMapVertexAttrib1dAPPLEProcPtr) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +typedef void (* glMapVertexAttrib1fAPPLEProcPtr) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +typedef void (* glMapVertexAttrib2dAPPLEProcPtr) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +typedef void (* glMapVertexAttrib2fAPPLEProcPtr) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +#else +extern void glEnableVertexAttribAPPLE(GLuint index, GLenum pname); +extern void glDisableVertexAttribAPPLE(GLuint index, GLenum pname); +extern GLboolean glIsVertexAttribEnabledAPPLE(GLuint index, GLenum pname); +extern void glMapVertexAttrib1dAPPLE(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +extern void glMapVertexAttrib1fAPPLE(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +extern void glMapVertexAttrib2dAPPLE(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +extern void glMapVertexAttrib2fAPPLE(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ATI_blend_equation_separate +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBlendEquationSeparateATIProcPtr) (GLenum equationRGB, GLenum equationAlpha); +#else +extern void glBlendEquationSeparateATI(GLenum equationRGB, GLenum equationAlpha); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ATI_pn_triangles +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glPNTrianglesiATIProcPtr) (GLenum pname, GLint param); +typedef void (* glPNTrianglesfATIProcPtr) (GLenum pname, GLfloat param); +#else +extern void glPNTrianglesiATI(GLenum pname, GLint param); +extern void glPNTrianglesfATI(GLenum pname, GLfloat param); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ATI_separate_stencil +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glStencilOpSeparateATIProcPtr) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void (* glStencilFuncSeparateATIProcPtr) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +#else +extern void glStencilOpSeparateATI(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +extern void glStencilFuncSeparateATI(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ATIX_pn_triangles +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glPNTrianglesiATIXProcPtr) (GLenum pname, GLint param); +typedef void (* glPNTrianglesfATIXProcPtr) (GLenum pname, GLfloat param); +#else +extern void glPNTrianglesiATIX(GLenum pname, GLint param); +extern void glPNTrianglesfATIX(GLenum pname, GLfloat param); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_NV_conditional_render +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBeginConditionalRenderNVProcPtr) (GLuint id, GLenum mode); +typedef void (* glEndConditionalRenderNVProcPtr) (void); +#else +extern void glBeginConditionalRenderNV(GLuint id, GLenum mode); +extern void glEndConditionalRenderNV(void); +#endif +#endif + +#if GL_NV_point_sprite +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glPointParameteriNVProcPtr) (GLenum pname, GLint param); +typedef void (* glPointParameterivNVProcPtr) (GLenum pname, const GLint *params); +#else +extern void glPointParameteriNV(GLenum pname, GLint param); +extern void glPointParameterivNV(GLenum pname, const GLint *params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_NV_register_combiners +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glCombinerParameterfvNVProcPtr) (GLenum, const GLfloat *); +typedef void (* glCombinerParameterfNVProcPtr) (GLenum, GLfloat); +typedef void (* glCombinerParameterivNVProcPtr) (GLenum, const GLint *); +typedef void (* glCombinerParameteriNVProcPtr) (GLenum, GLint); +typedef void (* glCombinerInputNVProcPtr) (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum); +typedef void (* glCombinerOutputNVProcPtr) (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLboolean, GLboolean, GLboolean); +typedef void (* glFinalCombinerInputNVProcPtr) (GLenum, GLenum, GLenum, GLenum); +typedef void (* glGetCombinerInputParameterfvNVProcPtr) (GLenum, GLenum, GLenum, GLenum, GLfloat *); +typedef void (* glGetCombinerInputParameterivNVProcPtr) (GLenum, GLenum, GLenum, GLenum, GLint *); +typedef void (* glGetCombinerOutputParameterfvNVProcPtr) (GLenum, GLenum, GLenum, GLfloat *); +typedef void (* glGetCombinerOutputParameterivNVProcPtr) (GLenum, GLenum, GLenum, GLint *); +typedef void (* glGetFinalCombinerInputParameterfvNVProcPtr) (GLenum, GLenum, GLfloat *); +typedef void (* glGetFinalCombinerInputParameterivNVProcPtr) (GLenum, GLenum, GLint *); +#else +extern void glCombinerParameterfvNV (GLenum, const GLfloat *); +extern void glCombinerParameterfNV (GLenum, GLfloat); +extern void glCombinerParameterivNV (GLenum, const GLint *); +extern void glCombinerParameteriNV (GLenum, GLint); +extern void glCombinerInputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum); +extern void glCombinerOutputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLboolean, GLboolean, GLboolean); +extern void glFinalCombinerInputNV (GLenum, GLenum, GLenum, GLenum); +extern void glGetCombinerInputParameterfvNV (GLenum, GLenum, GLenum, GLenum, GLfloat *); +extern void glGetCombinerInputParameterivNV (GLenum, GLenum, GLenum, GLenum, GLint *); +extern void glGetCombinerOutputParameterfvNV (GLenum, GLenum, GLenum, GLfloat *); +extern void glGetCombinerOutputParameterivNV (GLenum, GLenum, GLenum, GLint *); +extern void glGetFinalCombinerInputParameterfvNV (GLenum, GLenum, GLfloat *); +extern void glGetFinalCombinerInputParameterivNV (GLenum, GLenum, GLint *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_NV_register_combiners2 +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glCombinerStageParameterfvNVProcPtr) (GLenum, GLenum, const GLfloat *); +typedef void (* glGetCombinerStageParameterfvNVProcPtr) (GLenum, GLenum, GLfloat *); +#else +extern void glCombinerStageParameterfvNV (GLenum, GLenum, const GLfloat *); +extern void glGetCombinerStageParameterfvNV (GLenum, GLenum, GLfloat *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_NV_texture_barrier +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glTextureBarrierNVProcPtr) (void); +#else +extern void glTextureBarrierNV (void); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_NV_vertex_array_range +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glFlushVertexArrayRangeNVProcPtr) (void); +typedef void (* glVertexArrayRangeNVProcPtr) (GLsizei, const GLvoid *); +#else +extern void glFlushVertexArrayRangeNV (void); +extern void glVertexArrayRangeNV (GLsizei, const GLvoid *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_NV_vertex_program +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBindProgramNVProcPtr) (GLenum target, GLuint id); +typedef void (* glDeleteProgramsNVProcPtr) (GLsizei n, const GLuint *ids); +typedef void (* glExecuteProgramNVProcPtr) (GLenum target, GLuint id, const GLfloat *params); +typedef void (* glGenProgramsNVProcPtr) (GLsizei n, GLuint *ids); +typedef GLboolean (* glAreProgramsResidentNVProcPtr) (GLsizei n, const GLuint *ids, GLboolean *residences); +typedef void (* glRequestResidentProgramsNVProcPtr) (GLsizei n, GLuint *ids); +typedef void (* glGetProgramParameterfvNVProcPtr) (GLenum target, GLuint index, GLenum pname, GLfloat *params); +typedef void (* glGetProgramParameterdvNVProcPtr) (GLenum target, GLuint index, GLenum pname, GLdouble *params); +typedef void (* glGetProgramivNVProcPtr) (GLuint id, GLenum pname, GLint *params); +typedef void (* glGetProgramStringNVProcPtr) (GLuint id, GLenum pname, GLubyte *program); +typedef void (* glGetTrackMatrixivNVProcPtr) (GLenum target, GLuint address, GLenum pname, GLint *params); +typedef void (* glGetVertexAttribdvNVProcPtr) (GLuint index, GLenum pname, GLdouble *params); +typedef void (* glGetVertexAttribfvNVProcPtr) (GLuint index, GLenum pname, GLfloat *params); +typedef void (* glGetVertexAttribivNVProcPtr) (GLuint index, GLenum pname, GLint *params); +typedef void (* glGetVertexAttribPointervNVProcPtr) (GLuint index, GLenum pname, GLvoid **pointer); +typedef GLboolean (* glIsProgramNVProcPtr) (GLuint id); +typedef void (* glLoadProgramNVProcPtr) (GLenum target, GLuint id, GLsizei len, const GLubyte *program); +typedef void (* glProgramParameter4fNVProcPtr) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glProgramParameter4dNVProcPtr) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glProgramParameter4dvNVProcPtr) (GLenum target, GLuint index, const GLdouble *params); +typedef void (* glProgramParameter4fvNVProcPtr) (GLenum target, GLuint index, const GLfloat *params); +typedef void (* glProgramParameters4dvNVProcPtr) (GLenum target, GLuint index, GLuint num, const GLdouble *params); +typedef void (* glProgramParameters4fvNVProcPtr) (GLenum target, GLuint index, GLuint num, const GLfloat *params); +typedef void (* glTrackMatrixNVProcPtr) (GLenum target, GLuint address, GLenum matrix, GLenum transform); +typedef void (* glVertexAttribPointerNVProcPtr) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glVertexAttrib1sNVProcPtr) (GLuint index, GLshort x); +typedef void (* glVertexAttrib1fNVProcPtr) (GLuint index, GLfloat x); +typedef void (* glVertexAttrib1dNVProcPtr) (GLuint index, GLdouble x); +typedef void (* glVertexAttrib2sNVProcPtr) (GLuint index, GLshort x, GLshort y); +typedef void (* glVertexAttrib2fNVProcPtr) (GLuint index, GLfloat x, GLfloat y); +typedef void (* glVertexAttrib2dNVProcPtr) (GLuint index, GLdouble x, GLdouble y); +typedef void (* glVertexAttrib3sNVProcPtr) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (* glVertexAttrib3fNVProcPtr) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (* glVertexAttrib3dNVProcPtr) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (* glVertexAttrib4sNVProcPtr) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (* glVertexAttrib4fNVProcPtr) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glVertexAttrib4dNVProcPtr) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glVertexAttrib4ubNVProcPtr) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (* glVertexAttrib1svNVProcPtr) (GLuint index, GLshort *v); +typedef void (* glVertexAttrib1fvNVProcPtr) (GLuint index, GLfloat *v); +typedef void (* glVertexAttrib1dvNVProcPtr) (GLuint index, GLdouble *v); +typedef void (* glVertexAttrib2svNVProcPtr) (GLuint index, GLshort *v); +typedef void (* glVertexAttrib2fvNVProcPtr) (GLuint index, GLfloat *v); +typedef void (* glVertexAttrib2dvNVProcPtr) (GLuint index, GLdouble *v); +typedef void (* glVertexAttrib3svNVProcPtr) (GLuint index, GLshort *v); +typedef void (* glVertexAttrib3fvNVProcPtr) (GLuint index, GLfloat *v); +typedef void (* glVertexAttrib3dvNVProcPtr) (GLuint index, GLdouble *v); +typedef void (* glVertexAttrib4svNVProcPtr) (GLuint index, GLshort *v); +typedef void (* glVertexAttrib4fvNVProcPtr) (GLuint index, GLfloat *v); +typedef void (* glVertexAttrib4dvNVProcPtr) (GLuint index, GLdouble *v); +typedef void (* glVertexAttrib4ubvNVProcPtr) (GLuint index, GLubyte *v); +typedef void (* glVertexAttribs1svNVProcPtr) (GLuint index, GLsizei n, GLshort *v); +typedef void (* glVertexAttribs1fvNVProcPtr) (GLuint index, GLsizei n, GLfloat *v); +typedef void (* glVertexAttribs1dvNVProcPtr) (GLuint index, GLsizei n, GLdouble *v); +typedef void (* glVertexAttribs2svNVProcPtr) (GLuint index, GLsizei n, GLshort *v); +typedef void (* glVertexAttribs2fvNVProcPtr) (GLuint index, GLsizei n, GLfloat *v); +typedef void (* glVertexAttribs2dvNVProcPtr) (GLuint index, GLsizei n, GLdouble *v); +typedef void (* glVertexAttribs3svNVProcPtr) (GLuint index, GLsizei n, GLshort *v); +typedef void (* glVertexAttribs3fvNVProcPtr) (GLuint index, GLsizei n, GLfloat *v); +typedef void (* glVertexAttribs3dvNVProcPtr) (GLuint index, GLsizei n, GLdouble *v); +typedef void (* glVertexAttribs4svNVProcPtr) (GLuint index, GLsizei n, GLshort *v); +typedef void (* glVertexAttribs4fvNVProcPtr) (GLuint index, GLsizei n, GLfloat *v); +typedef void (* glVertexAttribs4dvNVProcPtr) (GLuint index, GLsizei n, GLdouble *v); +typedef void (* glVertexAttribs4ubvNVProcPtr) (GLuint index, GLsizei n, GLubyte *v); +#else +extern void glBindProgramNV(GLenum target, GLuint id); +extern void glDeleteProgramsNV(GLsizei n, const GLuint *ids); +extern void glExecuteProgramNV(GLenum target, GLuint id, const GLfloat *params); +extern void glGenProgramsNV(GLsizei n, GLuint *ids); +extern GLboolean glAreProgramsResidentNV(GLsizei n, const GLuint *ids, GLboolean *residences); +extern void glRequestResidentProgramsNV(GLsizei n, GLuint *ids); +extern void glGetProgramParameterfvNV(GLenum target, GLuint index, GLenum pname, GLfloat *params); +extern void glGetProgramParameterdvNV(GLenum target, GLuint index, GLenum pname, GLdouble *params); +extern void glGetProgramivNV(GLuint id, GLenum pname, GLint *params); +extern void glGetProgramStringNV(GLuint id, GLenum pname, GLubyte *program); +extern void glGetTrackMatrixivNV(GLenum target, GLuint address, GLenum pname, GLint *params); +extern void glGetVertexAttribdvNV(GLuint index, GLenum pname, GLdouble *params); +extern void glGetVertexAttribfvNV(GLuint index, GLenum pname, GLfloat *params); +extern void glGetVertexAttribivNV(GLuint index, GLenum pname, GLint *params); +extern void glGetVertexAttribPointervNV(GLuint index, GLenum pname, GLvoid **pointer); +extern GLboolean glIsProgramNV(GLuint id); +extern void glLoadProgramNV(GLenum target, GLuint id, GLsizei len, const GLubyte *program); +extern void glProgramParameter4fNV(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glProgramParameter4dNV(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glProgramParameter4dvNV(GLenum target, GLuint index, const GLdouble *params); +extern void glProgramParameter4fvNV(GLenum target, GLuint index, const GLfloat *params); +extern void glProgramParameters4dvNV(GLenum target, GLuint index, GLuint num, const GLdouble *params); +extern void glProgramParameters4fvNV(GLenum target, GLuint index, GLuint num, const GLfloat *params); +extern void glTrackMatrixNV(GLenum target, GLuint address, GLenum matrix, GLenum transform); +extern void glVertexAttribPointerNV(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glVertexAttrib1sNV(GLuint index, GLshort x); +extern void glVertexAttrib1fNV(GLuint index, GLfloat x); +extern void glVertexAttrib1dNV(GLuint index, GLdouble x); +extern void glVertexAttrib2sNV(GLuint index, GLshort x, GLshort y); +extern void glVertexAttrib2fNV(GLuint index, GLfloat x, GLfloat y); +extern void glVertexAttrib2dNV(GLuint index, GLdouble x, GLdouble y); +extern void glVertexAttrib3sNV(GLuint index, GLshort x, GLshort y, GLshort z); +extern void glVertexAttrib3fNV(GLuint index, GLfloat x, GLfloat y, GLfloat z); +extern void glVertexAttrib3dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z); +extern void glVertexAttrib4sNV(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +extern void glVertexAttrib4fNV(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glVertexAttrib4dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glVertexAttrib4ubNV(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +extern void glVertexAttrib1svNV(GLuint index, GLshort *v); +extern void glVertexAttrib1fvNV(GLuint index, GLfloat *v); +extern void glVertexAttrib1dvNV(GLuint index, GLdouble *v); +extern void glVertexAttrib2svNV(GLuint index, GLshort *v); +extern void glVertexAttrib2fvNV(GLuint index, GLfloat *v); +extern void glVertexAttrib2dvNV(GLuint index, GLdouble *v); +extern void glVertexAttrib3svNV(GLuint index, GLshort *v); +extern void glVertexAttrib3fvNV(GLuint index, GLfloat *v); +extern void glVertexAttrib3dvNV(GLuint index, GLdouble *v); +extern void glVertexAttrib4svNV(GLuint index, GLshort *v); +extern void glVertexAttrib4fvNV(GLuint index, GLfloat *v); +extern void glVertexAttrib4dvNV(GLuint index, GLdouble *v); +extern void glVertexAttrib4ubvNV(GLuint index, GLubyte *v); +extern void glVertexAttribs1svNV(GLuint index, GLsizei n, GLshort *v); +extern void glVertexAttribs1fvNV(GLuint index, GLsizei n, GLfloat *v); +extern void glVertexAttribs1dvNV(GLuint index, GLsizei n, GLdouble *v); +extern void glVertexAttribs2svNV(GLuint index, GLsizei n, GLshort *v); +extern void glVertexAttribs2fvNV(GLuint index, GLsizei n, GLfloat *v); +extern void glVertexAttribs2dvNV(GLuint index, GLsizei n, GLdouble *v); +extern void glVertexAttribs3svNV(GLuint index, GLsizei n, GLshort *v); +extern void glVertexAttribs3fvNV(GLuint index, GLsizei n, GLfloat *v); +extern void glVertexAttribs3dvNV(GLuint index, GLsizei n, GLdouble *v); +extern void glVertexAttribs4svNV(GLuint index, GLsizei n, GLshort *v); +extern void glVertexAttribs4fvNV(GLuint index, GLsizei n, GLfloat *v); +extern void glVertexAttribs4dvNV(GLuint index, GLsizei n, GLdouble *v); +extern void glVertexAttribs4ubvNV(GLuint index, GLsizei n, GLubyte *v); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_SGI_color_table +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glColorTableSGIProcPtr) (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +typedef void (* glColorTableParameterfvSGIProcPtr) (GLenum, GLenum, const GLfloat *); +typedef void (* glColorTableParameterivSGIProcPtr) (GLenum, GLenum, const GLint *); +typedef void (* glCopyColorTableSGIProcPtr) (GLenum, GLenum, GLint, GLint, GLsizei); +typedef void (* glGetColorTableSGIProcPtr) (GLenum, GLenum, GLenum, GLvoid *); +typedef void (* glGetColorTableParameterfvSGIProcPtr) (GLenum, GLenum, GLfloat *); +typedef void (* glGetColorTableParameterivSGIProcPtr) (GLenum, GLenum, GLint *); +#else +extern void glColorTableSGI (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +extern void glColorTableParameterfvSGI (GLenum, GLenum, const GLfloat *); +extern void glColorTableParameterivSGI (GLenum, GLenum, const GLint *); +extern void glCopyColorTableSGI (GLenum, GLenum, GLint, GLint, GLsizei); +extern void glGetColorTableSGI (GLenum, GLenum, GLenum, GLvoid *); +extern void glGetColorTableParameterfvSGI (GLenum, GLenum, GLfloat *); +extern void glGetColorTableParameterivSGI (GLenum, GLenum, GLint *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gliContext.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gliContext.h" new file mode 100644 index 0000000..363bbd1 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gliContext.h" @@ -0,0 +1,25 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _GLICONTEXT_H +#define _GLICONTEXT_H + +#ifdef __cplusplus +extern "C" { +#endif + + +/* +** GL context data type +*/ +typedef struct __GLIContextRec *GLIContext; +typedef struct __GLISharedRec *GLIShared; + + +#ifdef __cplusplus +} +#endif + +#endif /* _GLICONTEXT_H */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gliDispatch.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gliDispatch.h" new file mode 100644 index 0000000..2e216e2 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gliDispatch.h" @@ -0,0 +1,1108 @@ +/* + Copyright: (c) 1999-2013 Apple Inc. All rights reserved. +*/ + +#ifndef _GLIDISPATCH_H +#define _GLIDISPATCH_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/* +** GL function dispatch table type +*/ +typedef struct __GLIFunctionDispatchRec +{ + void (*accum)(GLIContext ctx, GLenum op, GLfloat value); + void (*alpha_func)(GLIContext ctx, GLenum func, GLclampf ref); + GLboolean (*are_textures_resident)(GLIContext ctx, GLsizei n, const GLuint *textures, GLboolean *residences); + void (*array_element)(GLIContext ctx, GLint i); + void (*begin)(GLIContext ctx, GLenum mode); + void (*bind_texture)(GLIContext ctx, GLenum target, GLuint texture); + void (*bitmap)(GLIContext ctx, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); + void (*blend_func)(GLIContext ctx, GLenum sfactor, GLenum dfactor); + void (*call_list)(GLIContext ctx, GLuint list); + void (*call_lists)(GLIContext ctx, GLsizei n, GLenum type, const GLvoid *lists); + void (*clear)(GLIContext ctx, GLbitfield mask); + void (*clear_accum)(GLIContext ctx, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); + void (*clear_color)(GLIContext ctx, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); + void (*clear_depth)(GLIContext ctx, GLclampd depth); + void (*clear_index)(GLIContext ctx, GLfloat c); + void (*clear_stencil)(GLIContext ctx, GLint s); + void (*clip_plane)(GLIContext ctx, GLenum plane, const GLdouble *equation); + void (*color3b)(GLIContext ctx, GLbyte red, GLbyte green, GLbyte blue); + void (*color3bv)(GLIContext ctx, const GLbyte *v); + void (*color3d)(GLIContext ctx, GLdouble red, GLdouble green, GLdouble blue); + void (*color3dv)(GLIContext ctx, const GLdouble *v); + void (*color3f)(GLIContext ctx, GLfloat red, GLfloat green, GLfloat blue); + void (*color3fv)(GLIContext ctx, const GLfloat *v); + void (*color3i)(GLIContext ctx, GLint red, GLint green, GLint blue); + void (*color3iv)(GLIContext ctx, const GLint *v); + void (*color3s)(GLIContext ctx, GLshort red, GLshort green, GLshort blue); + void (*color3sv)(GLIContext ctx, const GLshort *v); + void (*color3ub)(GLIContext ctx, GLubyte red, GLubyte green, GLubyte blue); + void (*color3ubv)(GLIContext ctx, const GLubyte *v); + void (*color3ui)(GLIContext ctx, GLuint red, GLuint green, GLuint blue); + void (*color3uiv)(GLIContext ctx, const GLuint *v); + void (*color3us)(GLIContext ctx, GLushort red, GLushort green, GLushort blue); + void (*color3usv)(GLIContext ctx, const GLushort *v); + void (*color4b)(GLIContext ctx, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); + void (*color4bv)(GLIContext ctx, const GLbyte *v); + void (*color4d)(GLIContext ctx, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); + void (*color4dv)(GLIContext ctx, const GLdouble *v); + void (*color4f)(GLIContext ctx, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); + void (*color4fv)(GLIContext ctx, const GLfloat *v); + void (*color4i)(GLIContext ctx, GLint red, GLint green, GLint blue, GLint alpha); + void (*color4iv)(GLIContext ctx, const GLint *v); + void (*color4s)(GLIContext ctx, GLshort red, GLshort green, GLshort blue, GLshort alpha); + void (*color4sv)(GLIContext ctx, const GLshort *v); + void (*color4ub)(GLIContext ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); + void (*color4ubv)(GLIContext ctx, const GLubyte *v); + void (*color4ui)(GLIContext ctx, GLuint red, GLuint green, GLuint blue, GLuint alpha); + void (*color4uiv)(GLIContext ctx, const GLuint *v); + void (*color4us)(GLIContext ctx, GLushort red, GLushort green, GLushort blue, GLushort alpha); + void (*color4usv)(GLIContext ctx, const GLushort *v); + void (*color_mask)(GLIContext ctx, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); + void (*color_material)(GLIContext ctx, GLenum face, GLenum mode); + void (*color_pointer)(GLIContext ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*copy_pixels)(GLIContext ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); + void (*copy_tex_image1D)(GLIContext ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); + void (*copy_tex_image2D)(GLIContext ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); + void (*copy_tex_sub_image1D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); + void (*copy_tex_sub_image2D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); + void (*cull_face)(GLIContext ctx, GLenum mode); + void (*delete_lists)(GLIContext ctx, GLuint list, GLsizei range); + void (*delete_textures)(GLIContext ctx, GLsizei n, const GLuint *textures); + void (*depth_func)(GLIContext ctx, GLenum func); + void (*depth_mask)(GLIContext ctx, GLboolean flag); + void (*depth_range)(GLIContext ctx, GLclampd zNear, GLclampd zFar); + void (*disable)(GLIContext ctx, GLenum cap); + void (*disable_client_state)(GLIContext ctx, GLenum array); + void (*draw_arrays)(GLIContext ctx, GLenum mode, GLint first, GLsizei count); + void (*draw_buffer)(GLIContext ctx, GLenum mode); + void (*draw_elements)(GLIContext ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); + void (*draw_pixels)(GLIContext ctx, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); + void (*edge_flag)(GLIContext ctx, GLboolean flag); + void (*edge_flag_pointer)(GLIContext ctx, GLsizei stride, const GLvoid *pointer); + void (*edge_flagv)(GLIContext ctx, const GLboolean *flag); + void (*enable)(GLIContext ctx, GLenum cap); + void (*enable_client_state)(GLIContext ctx, GLenum array); + void (*end)(GLIContext ctx); + void (*end_list)(GLIContext ctx); + void (*eval_coord1d)(GLIContext ctx, GLdouble u); + void (*eval_coord1dv)(GLIContext ctx, const GLdouble *u); + void (*eval_coord1f)(GLIContext ctx, GLfloat u); + void (*eval_coord1fv)(GLIContext ctx, const GLfloat *u); + void (*eval_coord2d)(GLIContext ctx, GLdouble u, GLdouble v); + void (*eval_coord2dv)(GLIContext ctx, const GLdouble *u); + void (*eval_coord2f)(GLIContext ctx, GLfloat u, GLfloat v); + void (*eval_coord2fv)(GLIContext ctx, const GLfloat *u); + void (*eval_mesh1)(GLIContext ctx, GLenum mode, GLint i1, GLint i2); + void (*eval_mesh2)(GLIContext ctx, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); + void (*eval_point1)(GLIContext ctx, GLint i); + void (*eval_point2)(GLIContext ctx, GLint i, GLint j); + void (*feedback_buffer)(GLIContext ctx, GLsizei size, GLenum type, GLfloat *buffer); + void (*finish)(GLIContext ctx); + void (*flush)(GLIContext ctx); + void (*fogf)(GLIContext ctx, GLenum pname, GLfloat param); + void (*fogfv)(GLIContext ctx, GLenum pname, const GLfloat *params); + void (*fogi)(GLIContext ctx, GLenum pname, GLint param); + void (*fogiv)(GLIContext ctx, GLenum pname, const GLint *params); + void (*front_face)(GLIContext ctx, GLenum mode); + void (*frustum)(GLIContext ctx, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); + GLuint (*gen_lists)(GLIContext ctx, GLsizei range); + void (*gen_textures)(GLIContext ctx, GLsizei n, GLuint *textures); + void (*get_booleanv)(GLIContext ctx, GLenum pname, GLboolean *params); + void (*get_clip_plane)(GLIContext ctx, GLenum plane, GLdouble *equation); + void (*get_doublev)(GLIContext ctx, GLenum pname, GLdouble *params); + GLenum (*get_error)(GLIContext ctx); + void (*get_floatv)(GLIContext ctx, GLenum pname, GLfloat *params); + void (*get_integerv)(GLIContext ctx, GLenum pname, GLint *params); + void (*get_lightfv)(GLIContext ctx, GLenum light, GLenum pname, GLfloat *params); + void (*get_lightiv)(GLIContext ctx, GLenum light, GLenum pname, GLint *params); + void (*get_mapdv)(GLIContext ctx, GLenum target, GLenum query, GLdouble *v); + void (*get_mapfv)(GLIContext ctx, GLenum target, GLenum query, GLfloat *v); + void (*get_mapiv)(GLIContext ctx, GLenum target, GLenum query, GLint *v); + void (*get_materialfv)(GLIContext ctx, GLenum face, GLenum pname, GLfloat *params); + void (*get_materialiv)(GLIContext ctx, GLenum face, GLenum pname, GLint *params); + void (*get_pixel_mapfv)(GLIContext ctx, GLenum map, GLfloat *values); + void (*get_pixel_mapuiv)(GLIContext ctx, GLenum map, GLuint *values); + void (*get_pixel_mapusv)(GLIContext ctx, GLenum map, GLushort *values); + void (*get_pointerv)(GLIContext ctx, GLenum pname, GLvoid **params); + void (*get_polygon_stipple)(GLIContext ctx, GLubyte *mask); + const GLubyte* (*get_string)(GLIContext ctx, GLenum name); + void (*get_tex_envfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat *params); + void (*get_tex_enviv)(GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*get_tex_gendv)(GLIContext ctx, GLenum coord, GLenum pname, GLdouble *params); + void (*get_tex_genfv)(GLIContext ctx, GLenum coord, GLenum pname, GLfloat *params); + void (*get_tex_geniv)(GLIContext ctx, GLenum coord, GLenum pname, GLint *params); + void (*get_tex_image)(GLIContext ctx, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); + void (*get_tex_level_parameterfv)(GLIContext ctx, GLenum target, GLint level, GLenum pname, GLfloat *params); + void (*get_tex_level_parameteriv)(GLIContext ctx, GLenum target, GLint level, GLenum pname, GLint *params); + void (*get_tex_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat *params); + void (*get_tex_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*hint)(GLIContext ctx, GLenum target, GLenum mode); + void (*index_mask)(GLIContext ctx, GLuint mask); + void (*index_pointer)(GLIContext ctx, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*indexd)(GLIContext ctx, GLdouble c); + void (*indexdv)(GLIContext ctx, const GLdouble *c); + void (*indexf)(GLIContext ctx, GLfloat c); + void (*indexfv)(GLIContext ctx, const GLfloat *c); + void (*indexi)(GLIContext ctx, GLint c); + void (*indexiv)(GLIContext ctx, const GLint *c); + void (*indexs)(GLIContext ctx, GLshort c); + void (*indexsv)(GLIContext ctx, const GLshort *c); + void (*indexub)(GLIContext ctx, GLubyte c); + void (*indexubv)(GLIContext ctx, const GLubyte *c); + void (*init_names)(GLIContext ctx); + void (*interleaved_arrays)(GLIContext ctx, GLenum format, GLsizei stride, const GLvoid *pointer); + GLboolean (*is_enabled)(GLIContext ctx, GLenum cap); + GLboolean (*is_list)(GLIContext ctx, GLuint list); + GLboolean (*is_texture)(GLIContext ctx, GLuint texture); + void (*light_modelf)(GLIContext ctx, GLenum pname, GLfloat param); + void (*light_modelfv)(GLIContext ctx, GLenum pname, const GLfloat *params); + void (*light_modeli)(GLIContext ctx, GLenum pname, GLint param); + void (*light_modeliv)(GLIContext ctx, GLenum pname, const GLint *params); + void (*lightf)(GLIContext ctx, GLenum light, GLenum pname, GLfloat param); + void (*lightfv)(GLIContext ctx, GLenum light, GLenum pname, const GLfloat *params); + void (*lighti)(GLIContext ctx, GLenum light, GLenum pname, GLint param); + void (*lightiv)(GLIContext ctx, GLenum light, GLenum pname, const GLint *params); + void (*line_stipple)(GLIContext ctx, GLint factor, GLushort pattern); + void (*line_width)(GLIContext ctx, GLfloat width); + void (*list_base)(GLIContext ctx, GLuint base); + void (*load_identity)(GLIContext ctx); + void (*load_matrixd)(GLIContext ctx, const GLdouble *m); + void (*load_matrixf)(GLIContext ctx, const GLfloat *m); + void (*load_name)(GLIContext ctx, GLuint name); + void (*logic_op)(GLIContext ctx, GLenum opcode); + void (*map1d)(GLIContext ctx, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); + void (*map1f)(GLIContext ctx, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); + void (*map2d)(GLIContext ctx, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); + void (*map2f)(GLIContext ctx, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); + void (*map_grid1d)(GLIContext ctx, GLint un, GLdouble u1, GLdouble u2); + void (*map_grid1f)(GLIContext ctx, GLint un, GLfloat u1, GLfloat u2); + void (*map_grid2d)(GLIContext ctx, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); + void (*map_grid2f)(GLIContext ctx, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); + void (*materialf)(GLIContext ctx, GLenum face, GLenum pname, GLfloat param); + void (*materialfv)(GLIContext ctx, GLenum face, GLenum pname, const GLfloat *params); + void (*materiali)(GLIContext ctx, GLenum face, GLenum pname, GLint param); + void (*materialiv)(GLIContext ctx, GLenum face, GLenum pname, const GLint *params); + void (*matrix_mode)(GLIContext ctx, GLenum mode); + void (*mult_matrixd)(GLIContext ctx, const GLdouble *m); + void (*mult_matrixf)(GLIContext ctx, const GLfloat *m); + void (*new_list)(GLIContext ctx, GLuint list, GLenum mode); + void (*normal3b)(GLIContext ctx, GLbyte nx, GLbyte ny, GLbyte nz); + void (*normal3bv)(GLIContext ctx, const GLbyte *v); + void (*normal3d)(GLIContext ctx, GLdouble nx, GLdouble ny, GLdouble nz); + void (*normal3dv)(GLIContext ctx, const GLdouble *v); + void (*normal3f)(GLIContext ctx, GLfloat nx, GLfloat ny, GLfloat nz); + void (*normal3fv)(GLIContext ctx, const GLfloat *v); + void (*normal3i)(GLIContext ctx, GLint nx, GLint ny, GLint nz); + void (*normal3iv)(GLIContext ctx, const GLint *v); + void (*normal3s)(GLIContext ctx, GLshort nx, GLshort ny, GLshort nz); + void (*normal3sv)(GLIContext ctx, const GLshort *v); + void (*normal_pointer)(GLIContext ctx, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*ortho)(GLIContext ctx, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); + void (*pass_through)(GLIContext ctx, GLfloat token); + void (*pixel_mapfv)(GLIContext ctx, GLenum map, GLsizei mapsize, const GLfloat *values); + void (*pixel_mapuiv)(GLIContext ctx, GLenum map, GLsizei mapsize, const GLuint *values); + void (*pixel_mapusv)(GLIContext ctx, GLenum map, GLsizei mapsize, const GLushort *values); + void (*pixel_storef)(GLIContext ctx, GLenum pname, GLfloat param); + void (*pixel_storei)(GLIContext ctx, GLenum pname, GLint param); + void (*pixel_transferf)(GLIContext ctx, GLenum pname, GLfloat param); + void (*pixel_transferi)(GLIContext ctx, GLenum pname, GLint param); + void (*pixel_zoom)(GLIContext ctx, GLfloat xfactor, GLfloat yfactor); + void (*point_size)(GLIContext ctx, GLfloat size); + void (*polygon_mode)(GLIContext ctx, GLenum face, GLenum mode); + void (*polygon_offset)(GLIContext ctx, GLfloat factor, GLfloat units); + void (*polygon_stipple)(GLIContext ctx, const GLubyte *mask); + void (*pop_attrib)(GLIContext ctx); + void (*pop_client_attrib)(GLIContext ctx); + void (*pop_matrix)(GLIContext ctx); + void (*pop_name)(GLIContext ctx); + void (*prioritize_textures)(GLIContext ctx, GLsizei n, const GLuint *textures, const GLclampf *priorities); + void (*push_attrib)(GLIContext ctx, GLbitfield mask); + void (*push_client_attrib)(GLIContext ctx, GLbitfield mask); + void (*push_matrix)(GLIContext ctx); + void (*push_name)(GLIContext ctx, GLuint name); + void (*raster_pos2d)(GLIContext ctx, GLdouble x, GLdouble y); + void (*raster_pos2dv)(GLIContext ctx, const GLdouble *v); + void (*raster_pos2f)(GLIContext ctx, GLfloat x, GLfloat y); + void (*raster_pos2fv)(GLIContext ctx, const GLfloat *v); + void (*raster_pos2i)(GLIContext ctx, GLint x, GLint y); + void (*raster_pos2iv)(GLIContext ctx, const GLint *v); + void (*raster_pos2s)(GLIContext ctx, GLshort x, GLshort y); + void (*raster_pos2sv)(GLIContext ctx, const GLshort *v); + void (*raster_pos3d)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z); + void (*raster_pos3dv)(GLIContext ctx, const GLdouble *v); + void (*raster_pos3f)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z); + void (*raster_pos3fv)(GLIContext ctx, const GLfloat *v); + void (*raster_pos3i)(GLIContext ctx, GLint x, GLint y, GLint z); + void (*raster_pos3iv)(GLIContext ctx, const GLint *v); + void (*raster_pos3s)(GLIContext ctx, GLshort x, GLshort y, GLshort z); + void (*raster_pos3sv)(GLIContext ctx, const GLshort *v); + void (*raster_pos4d)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*raster_pos4dv)(GLIContext ctx, const GLdouble *v); + void (*raster_pos4f)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z, GLfloat w); + void (*raster_pos4fv)(GLIContext ctx, const GLfloat *v); + void (*raster_pos4i)(GLIContext ctx, GLint x, GLint y, GLint z, GLint w); + void (*raster_pos4iv)(GLIContext ctx, const GLint *v); + void (*raster_pos4s)(GLIContext ctx, GLshort x, GLshort y, GLshort z, GLshort w); + void (*raster_pos4sv)(GLIContext ctx, const GLshort *v); + void (*read_buffer)(GLIContext ctx, GLenum mode); + void (*read_pixels)(GLIContext ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); + void (*rectd)(GLIContext ctx, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); + void (*rectdv)(GLIContext ctx, const GLdouble *v1, const GLdouble *v2); + void (*rectf)(GLIContext ctx, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); + void (*rectfv)(GLIContext ctx, const GLfloat *v1, const GLfloat *v2); + void (*recti)(GLIContext ctx, GLint x1, GLint y1, GLint x2, GLint y2); + void (*rectiv)(GLIContext ctx, const GLint *v1, const GLint *v2); + void (*rects)(GLIContext ctx, GLshort x1, GLshort y1, GLshort x2, GLshort y2); + void (*rectsv)(GLIContext ctx, const GLshort *v1, const GLshort *v2); + GLint (*render_mode)(GLIContext ctx, GLenum mode); + void (*rotated)(GLIContext ctx, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); + void (*rotatef)(GLIContext ctx, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); + void (*scaled)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z); + void (*scalef)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z); + void (*scissor)(GLIContext ctx, GLint x, GLint y, GLsizei width, GLsizei height); + void (*select_buffer)(GLIContext ctx, GLsizei size, GLuint *buffer); + void (*shade_model)(GLIContext ctx, GLenum mode); + void (*stencil_func)(GLIContext ctx, GLenum func, GLint ref, GLuint mask); + void (*stencil_mask)(GLIContext ctx, GLuint mask); + void (*stencil_op)(GLIContext ctx, GLenum fail, GLenum zfail, GLenum zpass); + void (*tex_coord1d)(GLIContext ctx, GLdouble s); + void (*tex_coord1dv)(GLIContext ctx, const GLdouble *v); + void (*tex_coord1f)(GLIContext ctx, GLfloat s); + void (*tex_coord1fv)(GLIContext ctx, const GLfloat *v); + void (*tex_coord1i)(GLIContext ctx, GLint s); + void (*tex_coord1iv)(GLIContext ctx, const GLint *v); + void (*tex_coord1s)(GLIContext ctx, GLshort s); + void (*tex_coord1sv)(GLIContext ctx, const GLshort *v); + void (*tex_coord2d)(GLIContext ctx, GLdouble s, GLdouble t); + void (*tex_coord2dv)(GLIContext ctx, const GLdouble *v); + void (*tex_coord2f)(GLIContext ctx, GLfloat s, GLfloat t); + void (*tex_coord2fv)(GLIContext ctx, const GLfloat *v); + void (*tex_coord2i)(GLIContext ctx, GLint s, GLint t); + void (*tex_coord2iv)(GLIContext ctx, const GLint *v); + void (*tex_coord2s)(GLIContext ctx, GLshort s, GLshort t); + void (*tex_coord2sv)(GLIContext ctx, const GLshort *v); + void (*tex_coord3d)(GLIContext ctx, GLdouble s, GLdouble t, GLdouble r); + void (*tex_coord3dv)(GLIContext ctx, const GLdouble *v); + void (*tex_coord3f)(GLIContext ctx, GLfloat s, GLfloat t, GLfloat r); + void (*tex_coord3fv)(GLIContext ctx, const GLfloat *v); + void (*tex_coord3i)(GLIContext ctx, GLint s, GLint t, GLint r); + void (*tex_coord3iv)(GLIContext ctx, const GLint *v); + void (*tex_coord3s)(GLIContext ctx, GLshort s, GLshort t, GLshort r); + void (*tex_coord3sv)(GLIContext ctx, const GLshort *v); + void (*tex_coord4d)(GLIContext ctx, GLdouble s, GLdouble t, GLdouble r, GLdouble q); + void (*tex_coord4dv)(GLIContext ctx, const GLdouble *v); + void (*tex_coord4f)(GLIContext ctx, GLfloat s, GLfloat t, GLfloat r, GLfloat q); + void (*tex_coord4fv)(GLIContext ctx, const GLfloat *v); + void (*tex_coord4i)(GLIContext ctx, GLint s, GLint t, GLint r, GLint q); + void (*tex_coord4iv)(GLIContext ctx, const GLint *v); + void (*tex_coord4s)(GLIContext ctx, GLshort s, GLshort t, GLshort r, GLshort q); + void (*tex_coord4sv)(GLIContext ctx, const GLshort *v); + void (*tex_coord_pointer)(GLIContext ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*tex_envf)(GLIContext ctx, GLenum target, GLenum pname, GLfloat param); + void (*tex_envfv)(GLIContext ctx, GLenum target, GLenum pname, const GLfloat *params); + void (*tex_envi)(GLIContext ctx, GLenum target, GLenum pname, GLint param); + void (*tex_enviv)(GLIContext ctx, GLenum target, GLenum pname, const GLint *params); + void (*tex_gend)(GLIContext ctx, GLenum coord, GLenum pname, GLdouble param); + void (*tex_gendv)(GLIContext ctx, GLenum coord, GLenum pname, const GLdouble *params); + void (*tex_genf)(GLIContext ctx, GLenum coord, GLenum pname, GLfloat param); + void (*tex_genfv)(GLIContext ctx, GLenum coord, GLenum pname, const GLfloat *params); + void (*tex_geni)(GLIContext ctx, GLenum coord, GLenum pname, GLint param); + void (*tex_geniv)(GLIContext ctx, GLenum coord, GLenum pname, const GLint *params); + void (*tex_image1D)(GLIContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); + void (*tex_image2D)(GLIContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); + void (*tex_parameterf)(GLIContext ctx, GLenum target, GLenum pname, GLfloat param); + void (*tex_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, const GLfloat *params); + void (*tex_parameteri)(GLIContext ctx, GLenum target, GLenum pname, GLint param); + void (*tex_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, const GLint *params); + void (*tex_sub_image1D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); + void (*tex_sub_image2D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); + void (*translated)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z); + void (*translatef)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z); + void (*vertex2d)(GLIContext ctx, GLdouble x, GLdouble y); + void (*vertex2dv)(GLIContext ctx, const GLdouble *v); + void (*vertex2f)(GLIContext ctx, GLfloat x, GLfloat y); + void (*vertex2fv)(GLIContext ctx, const GLfloat *v); + void (*vertex2i)(GLIContext ctx, GLint x, GLint y); + void (*vertex2iv)(GLIContext ctx, const GLint *v); + void (*vertex2s)(GLIContext ctx, GLshort x, GLshort y); + void (*vertex2sv)(GLIContext ctx, const GLshort *v); + void (*vertex3d)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z); + void (*vertex3dv)(GLIContext ctx, const GLdouble *v); + void (*vertex3f)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z); + void (*vertex3fv)(GLIContext ctx, const GLfloat *v); + void (*vertex3i)(GLIContext ctx, GLint x, GLint y, GLint z); + void (*vertex3iv)(GLIContext ctx, const GLint *v); + void (*vertex3s)(GLIContext ctx, GLshort x, GLshort y, GLshort z); + void (*vertex3sv)(GLIContext ctx, const GLshort *v); + void (*vertex4d)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*vertex4dv)(GLIContext ctx, const GLdouble *v); + void (*vertex4f)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z, GLfloat w); + void (*vertex4fv)(GLIContext ctx, const GLfloat *v); + void (*vertex4i)(GLIContext ctx, GLint x, GLint y, GLint z, GLint w); + void (*vertex4iv)(GLIContext ctx, const GLint *v); + void (*vertex4s)(GLIContext ctx, GLshort x, GLshort y, GLshort z, GLshort w); + void (*vertex4sv)(GLIContext ctx, const GLshort *v); + void (*vertex_pointer)(GLIContext ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*viewport)(GLIContext ctx, GLint x, GLint y, GLsizei width, GLsizei height); + void (*blend_func_separate)(GLIContext ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); + void (*blend_color)(GLIContext ctx, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); + void (*blend_equation)(GLIContext ctx, GLenum mode); + void (*lock_arrays_EXT)(GLIContext ctx, GLint first, GLsizei count); + void (*unlock_arrays_EXT)(GLIContext ctx); + void (*client_active_texture)(GLIContext ctx, GLenum target); + void (*active_texture)(GLIContext ctx, GLenum target); + void (*multi_tex_coord1d)(GLIContext ctx, GLenum target, GLdouble s); + void (*multi_tex_coord1dv)(GLIContext ctx, GLenum target, const GLdouble *v); + void (*multi_tex_coord1f)(GLIContext ctx, GLenum target, GLfloat s); + void (*multi_tex_coord1fv)(GLIContext ctx, GLenum target, const GLfloat *v); + void (*multi_tex_coord1i)(GLIContext ctx, GLenum target, GLint s); + void (*multi_tex_coord1iv)(GLIContext ctx, GLenum target, const GLint *v); + void (*multi_tex_coord1s)(GLIContext ctx, GLenum target, GLshort s); + void (*multi_tex_coord1sv)(GLIContext ctx, GLenum target, const GLshort *v); + void (*multi_tex_coord2d)(GLIContext ctx, GLenum target, GLdouble s, GLdouble t); + void (*multi_tex_coord2dv)(GLIContext ctx, GLenum target, const GLdouble *v); + void (*multi_tex_coord2f)(GLIContext ctx, GLenum target, GLfloat s, GLfloat t); + void (*multi_tex_coord2fv)(GLIContext ctx, GLenum target, const GLfloat *v); + void (*multi_tex_coord2i)(GLIContext ctx, GLenum target, GLint s, GLint t); + void (*multi_tex_coord2iv)(GLIContext ctx, GLenum target, const GLint *v); + void (*multi_tex_coord2s)(GLIContext ctx, GLenum target, GLshort s, GLshort t); + void (*multi_tex_coord2sv)(GLIContext ctx, GLenum target, const GLshort *v); + void (*multi_tex_coord3d)(GLIContext ctx, GLenum target, GLdouble s, GLdouble t, GLdouble r); + void (*multi_tex_coord3dv)(GLIContext ctx, GLenum target, const GLdouble *v); + void (*multi_tex_coord3f)(GLIContext ctx, GLenum target, GLfloat s, GLfloat t, GLfloat r); + void (*multi_tex_coord3fv)(GLIContext ctx, GLenum target, const GLfloat *v); + void (*multi_tex_coord3i)(GLIContext ctx, GLenum target, GLint s, GLint t, GLint r); + void (*multi_tex_coord3iv)(GLIContext ctx, GLenum target, const GLint *v); + void (*multi_tex_coord3s)(GLIContext ctx, GLenum target, GLshort s, GLshort t, GLshort r); + void (*multi_tex_coord3sv)(GLIContext ctx, GLenum target, const GLshort *v); + void (*multi_tex_coord4d)(GLIContext ctx, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); + void (*multi_tex_coord4dv)(GLIContext ctx, GLenum target, const GLdouble *v); + void (*multi_tex_coord4f)(GLIContext ctx, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); + void (*multi_tex_coord4fv)(GLIContext ctx, GLenum target, const GLfloat *v); + void (*multi_tex_coord4i)(GLIContext ctx, GLenum target, GLint s, GLint t, GLint r, GLint q); + void (*multi_tex_coord4iv)(GLIContext ctx, GLenum target, const GLint *v); + void (*multi_tex_coord4s)(GLIContext ctx, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); + void (*multi_tex_coord4sv)(GLIContext ctx, GLenum target, const GLshort *v); + void (*load_transpose_matrixd)(GLIContext ctx, const GLdouble *m); + void (*load_transpose_matrixf)(GLIContext ctx, const GLfloat *m); + void (*mult_transpose_matrixd)(GLIContext ctx, const GLdouble *m); + void (*mult_transpose_matrixf)(GLIContext ctx, const GLfloat *m); + void (*compressed_tex_image3D)(GLIContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); + void (*compressed_tex_image2D)(GLIContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); + void (*compressed_tex_image1D)(GLIContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); + void (*compressed_tex_sub_image3D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); + void (*compressed_tex_sub_image2D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); + void (*compressed_tex_sub_image1D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); + void (*get_compressed_tex_image)(GLIContext ctx, GLenum target, GLint level, GLvoid *img); + void (*secondary_color3b)(GLIContext ctx, GLbyte red, GLbyte green, GLbyte blue); + void (*secondary_color3bv)(GLIContext ctx, const GLbyte *v); + void (*secondary_color3d)(GLIContext ctx, GLdouble red, GLdouble green, GLdouble blue); + void (*secondary_color3dv)(GLIContext ctx, const GLdouble *v); + void (*secondary_color3f)(GLIContext ctx, GLfloat red, GLfloat green, GLfloat blue); + void (*secondary_color3fv)(GLIContext ctx, const GLfloat *v); + void (*secondary_color3i)(GLIContext ctx, GLint red, GLint green, GLint blue); + void (*secondary_color3iv)(GLIContext ctx, const GLint *v); + void (*secondary_color3s)(GLIContext ctx, GLshort red, GLshort green, GLshort blue); + void (*secondary_color3sv)(GLIContext ctx, const GLshort *v); + void (*secondary_color3ub)(GLIContext ctx, GLubyte red, GLubyte green, GLubyte blue); + void (*secondary_color3ubv)(GLIContext ctx, const GLubyte *v); + void (*secondary_color3ui)(GLIContext ctx, GLuint red, GLuint green, GLuint blue); + void (*secondary_color3uiv)(GLIContext ctx, const GLuint *v); + void (*secondary_color3us)(GLIContext ctx, GLushort red, GLushort green, GLushort blue); + void (*secondary_color3usv)(GLIContext ctx, const GLushort *v); + void (*secondary_color_pointer)(GLIContext ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*vertex_array_range_EXT)(GLIContext ctx, GLsizei count, const GLvoid *pointer); + void (*flush_vertex_array_range_EXT)(GLIContext ctx, GLsizei count, const GLvoid *pointer); + void (*draw_range_elements)(GLIContext ctx, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); + void (*color_table)(GLIContext ctx, GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); + void (*color_table_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, const GLfloat *params); + void (*color_table_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, const GLint *params); + void (*copy_color_table)(GLIContext ctx, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); + void (*get_color_table)(GLIContext ctx, GLenum target, GLenum format, GLenum type, GLvoid *table); + void (*get_color_table_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat *params); + void (*get_color_table_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*color_sub_table)(GLIContext ctx, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); + void (*copy_color_sub_table)(GLIContext ctx, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); + void (*convolution_filter1D)(GLIContext ctx, GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); + void (*convolution_filter2D)(GLIContext ctx, GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); + void (*convolution_parameterf)(GLIContext ctx, GLenum target, GLenum pname, GLfloat params); + void (*convolution_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, const GLfloat *params); + void (*convolution_parameteri)(GLIContext ctx, GLenum target, GLenum pname, GLint params); + void (*convolution_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, const GLint *params); + void (*copy_convolution_filter1D)(GLIContext ctx, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); + void (*copy_convolution_filter2D)(GLIContext ctx, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); + void (*get_convolution_filter)(GLIContext ctx, GLenum target, GLenum format, GLenum type, GLvoid *image); + void (*get_convolution_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat *params); + void (*get_convolution_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*get_separable_filter)(GLIContext ctx, GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); + void (*separable_filter2D)(GLIContext ctx, GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); + void (*get_histogram)(GLIContext ctx, GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); + void (*get_histogram_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat *params); + void (*get_histogram_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*get_minmax)(GLIContext ctx, GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); + void (*get_minmax_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat *params); + void (*get_minmax_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*histogram)(GLIContext ctx, GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); + void (*minmax)(GLIContext ctx, GLenum target, GLenum internalformat, GLboolean sink); + void (*reset_histogram)(GLIContext ctx, GLenum target); + void (*reset_minmax)(GLIContext ctx, GLenum target); + void (*tex_image3D)(GLIContext ctx, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); + void (*tex_sub_image3D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); + void (*copy_tex_sub_image3D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); + void (*get_uniform_indices) (GLIContext ctx, GLuint program, GLsizei uniformCount, const GLchar* const *uniformNames, GLuint* uniformIndices); + void (*get_active_uniformsiv) (GLIContext ctx, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params); + void (*get_active_uniform_name) (GLIContext ctx, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName); + GLuint (*get_uniform_block_index) (GLIContext ctx, GLuint program, const GLchar* uniformBlockName); + void (*get_active_uniform_blockiv) (GLIContext ctx, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params); + void (*get_active_uniform_block_name) (GLIContext ctx, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName); + void (*uniform_block_binding) (GLIContext ctx, GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); + void (*get_combiner_input_parameterfv_NV)(GLIContext ctx, GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); + void (*get_combiner_input_parameteriv_NV)(GLIContext ctx, GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); + void (*get_combiner_output_parameterfv_NV)(GLIContext ctx, GLenum stage, GLenum portion, GLenum pname, GLfloat *params); + void (*get_combiner_output_parameteriv_NV)(GLIContext ctx, GLenum stage, GLenum portion, GLenum pname, GLint *params); + void (*get_final_combiner_input_parameterfv_NV)(GLIContext ctx, GLenum variable, GLenum pname, GLfloat *params); + void (*get_final_combiner_input_parameteriv_NV)(GLIContext ctx, GLenum variable, GLenum pname, GLint *params); + void (*combiner_stage_parameterfv_NV)(GLIContext ctx, GLenum stage, GLenum pname, const GLfloat *params); + void (*get_combiner_stage_parameterfv_NV)(GLIContext ctx, GLenum stage, GLenum pname, GLfloat *params); + void (*texture_range_APPLE)(GLIContext ctx, GLenum target, GLsizei length, const GLvoid *pointer); + void (*get_tex_parameter_pointerv_APPLE)(GLIContext ctx, GLenum target, GLenum pname, GLvoid **params); + void (*blend_equation_separate_EXT)(GLIContext ctx, GLenum equationRGB, GLenum equationAlpha); + void (*sample_coverage)(GLIContext ctx, GLclampf value, GLboolean invert); + void (*sample_pass)(GLIContext ctx, GLenum mode); + void (*pn_trianglesi_ATI)(GLIContext ctx, GLenum pname, GLint param); + void (*pn_trianglesf_ATI)(GLIContext ctx, GLenum pname, GLfloat param); + void (*gen_fences_APPLE)(GLIContext ctx, GLsizei n, GLuint *fences); + void (*delete_fences_APPLE)(GLIContext ctx, GLsizei n, const GLuint *fences); + void (*set_fence_APPLE)(GLIContext ctx, GLuint fence); + GLboolean (*is_fence_APPLE)(GLIContext ctx, GLuint fence); + GLboolean (*test_fence_APPLE)(GLIContext ctx, GLuint fence); + void (*finish_fence_APPLE)(GLIContext ctx, GLuint fence); + GLboolean (*test_object_APPLE)(GLIContext ctx, GLenum object, GLuint name); + void (*finish_object_APPLE)(GLIContext ctx, GLenum object, GLuint name); + void (*bind_program_ARB)(GLIContext ctx, GLenum target, GLuint program); + void (*delete_programs_ARB)(GLIContext ctx, GLsizei n, const GLuint *programs); + void (*gen_programs_ARB)(GLIContext ctx, GLsizei n, GLuint *programs); + GLboolean (*is_program_ARB)(GLIContext ctx, GLuint program); + void (*vertex_attrib1s_ARB)(GLIContext ctx, GLuint index, GLshort x); + void (*vertex_attrib1f_ARB)(GLIContext ctx, GLuint index, GLfloat x); + void (*vertex_attrib1d_ARB)(GLIContext ctx, GLuint index, GLdouble x); + void (*vertex_attrib2s_ARB)(GLIContext ctx, GLuint index, GLshort x, GLshort y); + void (*vertex_attrib2f_ARB)(GLIContext ctx, GLuint index, GLfloat x, GLfloat y); + void (*vertex_attrib2d_ARB)(GLIContext ctx, GLuint index, GLdouble x, GLdouble y); + void (*vertex_attrib3s_ARB)(GLIContext ctx, GLuint index, GLshort x, GLshort y, GLshort z); + void (*vertex_attrib3f_ARB)(GLIContext ctx, GLuint index, GLfloat x, GLfloat y, GLfloat z); + void (*vertex_attrib3d_ARB)(GLIContext ctx, GLuint index, GLdouble x, GLdouble y, GLdouble z); + void (*vertex_attrib4s_ARB)(GLIContext ctx, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); + void (*vertex_attrib4f_ARB)(GLIContext ctx, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); + void (*vertex_attrib4d_ARB)(GLIContext ctx, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*vertex_attrib4Nub_ARB)(GLIContext ctx, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); + void (*vertex_attrib1sv_ARB)(GLIContext ctx, GLuint index, const GLshort *v); + void (*vertex_attrib1fv_ARB)(GLIContext ctx, GLuint index, const GLfloat *v); + void (*vertex_attrib1dv_ARB)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attrib2sv_ARB)(GLIContext ctx, GLuint index, const GLshort *v); + void (*vertex_attrib2fv_ARB)(GLIContext ctx, GLuint index, const GLfloat *v); + void (*vertex_attrib2dv_ARB)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attrib3sv_ARB)(GLIContext ctx, GLuint index, const GLshort *v); + void (*vertex_attrib3fv_ARB)(GLIContext ctx, GLuint index, const GLfloat *v); + void (*vertex_attrib3dv_ARB)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attrib4bv_ARB)(GLIContext ctx, GLuint index, const GLbyte *v); + void (*vertex_attrib4sv_ARB)(GLIContext ctx, GLuint index, const GLshort *v); + void (*vertex_attrib4iv_ARB)(GLIContext ctx, GLuint index, const GLint *v); + void (*vertex_attrib4ubv_ARB)(GLIContext ctx, GLuint index, const GLubyte *v); + void (*vertex_attrib4usv_ARB)(GLIContext ctx, GLuint index, const GLushort *v); + void (*vertex_attrib4uiv_ARB)(GLIContext ctx, GLuint index, const GLuint *v); + void (*vertex_attrib4fv_ARB)(GLIContext ctx, GLuint index, const GLfloat *v); + void (*vertex_attrib4dv_ARB)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attrib4Nbv_ARB)(GLIContext ctx, GLuint index, const GLbyte *v); + void (*vertex_attrib4Nsv_ARB)(GLIContext ctx, GLuint index, const GLshort *v); + void (*vertex_attrib4Niv_ARB)(GLIContext ctx, GLuint index, const GLint *v); + void (*vertex_attrib4Nubv_ARB)(GLIContext ctx, GLuint index, const GLubyte *v); + void (*vertex_attrib4Nusv_ARB)(GLIContext ctx, GLuint index, const GLushort *v); + void (*vertex_attrib4Nuiv_ARB)(GLIContext ctx, GLuint index, const GLuint *v); + void (*vertex_attrib_pointer_ARB)(GLIContext ctx, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); + void (*enable_vertex_attrib_array_ARB)(GLIContext ctx, GLuint index); + void (*disable_vertex_attrib_array_ARB)(GLIContext ctx, GLuint index); + void (*get_vertex_attribdv_ARB)(GLIContext ctx, GLuint index, GLenum pname, GLdouble *params); + void (*get_vertex_attribfv_ARB)(GLIContext ctx, GLuint index, GLenum pname, GLfloat *params); + void (*get_vertex_attribiv_ARB)(GLIContext ctx, GLuint index, GLenum pname, GLint *params); + void (*get_vertex_attrib_pointerv_ARB)(GLIContext ctx, GLuint index, GLenum pname, GLvoid **pointer); + void (*program_env_parameter4d_ARB)(GLIContext ctx, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*program_env_parameter4dv_ARB)(GLIContext ctx, GLenum target, GLuint index, const GLdouble *params); + void (*program_env_parameter4f_ARB)(GLIContext ctx, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); + void (*program_env_parameter4fv_ARB)(GLIContext ctx, GLenum target, GLuint index, const GLfloat *params); + void (*program_local_parameter4d_ARB)(GLIContext ctx, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*program_local_parameter4dv_ARB)(GLIContext ctx, GLenum target, GLuint index, const GLdouble *params); + void (*program_local_parameter4f_ARB)(GLIContext ctx, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); + void (*program_local_parameter4fv_ARB)(GLIContext ctx, GLenum target, GLuint index, const GLfloat *params); + void (*get_program_env_parameterdv_ARB)(GLIContext ctx, GLenum target, GLuint index, GLdouble *params); + void (*get_program_env_parameterfv_ARB)(GLIContext ctx, GLenum target, GLuint index, GLfloat *params); + void (*get_program_local_parameterdv_ARB)(GLIContext ctx, GLenum target, GLuint index, GLdouble *params); + void (*get_program_local_parameterfv_ARB)(GLIContext ctx, GLenum target, GLuint index, GLfloat *params); + void (*program_string_ARB)(GLIContext ctx, GLenum target, GLenum format, GLsizei len, const GLvoid* string); + void (*get_program_string_ARB)(GLIContext ctx, GLenum target, GLenum pname, GLvoid *string); + void (*get_programiv_ARB)(GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*enable_vertex_attrib_ARB)(GLIContext ctx, GLuint index, GLenum pname); + void (*disable_vertex_attrib_ARB)(GLIContext ctx, GLuint index, GLenum pname); + GLboolean (*is_vertex_attrib_enabled_ARB)(GLIContext ctx, GLuint index, GLenum pname); + void (*map_vertex_attrib1d_ARB)(GLIContext ctx, GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); + void (*map_vertex_attrib1f_ARB)(GLIContext ctx, GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); + void (*map_vertex_attrib2d_ARB)(GLIContext ctx, GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); + void (*map_vertex_attrib2f_ARB)(GLIContext ctx, GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); + void (*point_parameterf)(GLIContext ctx, GLenum pname, GLfloat param); + void (*point_parameterfv)(GLIContext ctx, GLenum pname, const GLfloat *params); + void (*point_parameteri)(GLIContext ctx, GLenum pname, GLint param); + void (*point_parameteriv)(GLIContext ctx, GLenum pname, const GLint *params); + void (*fog_coordf)(GLIContext ctx, GLfloat coord); + void (*fog_coordfv)(GLIContext ctx, const GLfloat *coord); + void (*fog_coordd)(GLIContext ctx, GLdouble coord); + void (*fog_coorddv)(GLIContext ctx, const GLdouble *coord); + void (*fog_coord_pointer)(GLIContext ctx, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*vertex_array_parameteri_EXT)(GLIContext ctx, GLenum pname, GLint param); + void (*bind_vertex_array_EXT)(GLIContext ctx, GLuint id); + void (*delete_vertex_arrays_EXT)(GLIContext ctx, GLsizei n, const GLuint *ids); + void (*gen_vertex_arrays_EXT)(GLIContext ctx, GLsizei n, GLuint *ids); + GLboolean (*is_vertex_array_EXT)(GLIContext ctx, GLuint id); + void (*element_pointer_APPLE)(GLIContext ctx, GLenum type, const GLvoid *pointer); + void (*draw_element_array_APPLE)(GLIContext ctx, GLenum mode, GLint first, GLsizei count); + void (*draw_range_element_array_APPLE)(GLIContext ctx, GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); + void (*weightbv_ARB)(GLIContext ctx, GLint size, const GLbyte *weights); + void (*weightsv_ARB)(GLIContext ctx, GLint size, const GLshort *weights); + void (*weightiv_ARB)(GLIContext ctx, GLint size, const GLint *weights); + void (*weightfv_ARB)(GLIContext ctx, GLint size, const GLfloat *weights); + void (*weightdv_ARB)(GLIContext ctx, GLint size, const GLdouble *weights); + void (*weightubv_ARB)(GLIContext ctx, GLint size, const GLubyte *weights); + void (*weightusv_ARB)(GLIContext ctx, GLint size, const GLushort *weights); + void (*weightuiv_ARB)(GLIContext ctx, GLint size, const GLuint *weights); + void (*weight_pointer_ARB)(GLIContext ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*vertex_blend_ARB)(GLIContext ctx, GLint count); + void (*multi_draw_arrays)(GLIContext ctx, GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); + void (*multi_draw_elements)(GLIContext ctx, GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei drawcount); + void (*window_pos2d) (GLIContext ctx, GLdouble x, GLdouble y); + void (*window_pos2dv) (GLIContext ctx, const GLdouble *v); + void (*window_pos2f) (GLIContext ctx, GLfloat x, GLfloat y); + void (*window_pos2fv) (GLIContext ctx, const GLfloat *v); + void (*window_pos2i) (GLIContext ctx, GLint x, GLint y); + void (*window_pos2iv) (GLIContext ctx, const GLint *v); + void (*window_pos2s) (GLIContext ctx, GLshort x, GLshort y); + void (*window_pos2sv) (GLIContext ctx, const GLshort *v); + void (*window_pos3d) (GLIContext ctx, GLdouble x, GLdouble y, GLdouble z); + void (*window_pos3dv) (GLIContext ctx, const GLdouble *v); + void (*window_pos3f) (GLIContext ctx, GLfloat x, GLfloat y, GLfloat z); + void (*window_pos3fv) (GLIContext ctx, const GLfloat *v); + void (*window_pos3i) (GLIContext ctx, GLint x, GLint y, GLint z); + void (*window_pos3iv) (GLIContext ctx, const GLint *v); + void (*window_pos3s) (GLIContext ctx, GLshort x, GLshort y, GLshort z); + void (*window_pos3sv) (GLIContext ctx, const GLshort *v); + void (*active_stencil_face_EXT) (GLIContext ctx, GLenum face); + void (*stencil_op_separate_ATI) (GLIContext ctx, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); + void (*stencil_func_separate_ATI) (GLIContext ctx, GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); + void (*flush_render_APPLE) (GLIContext ctx); + void (*finish_render_APPLE) (GLIContext ctx); + void (*swap_APPLE)(GLIContext ctx); + void (*delete_object_ARB) (GLIContext ctx, GLhandleARB obj); + GLhandleARB (*get_handle_ARB) (GLIContext ctx, GLenum pname); + void (*detach_object_ARB) (GLIContext ctx, GLhandleARB containerObj, GLhandleARB attachedObj); + GLhandleARB (*create_shader_object_ARB) (GLIContext ctx, GLenum shaderType); + void (*shader_source_ARB) (GLIContext ctx, GLhandleARB shaderObj, GLsizei count, const GLcharARB* const *string, const GLint *length); + void (*compile_shader_ARB) (GLIContext ctx, GLhandleARB shaderObj); + GLhandleARB (*create_program_object_ARB) (GLIContext ctx); + void (*attach_object_ARB) (GLIContext ctx, GLhandleARB containerObj, GLhandleARB obj); + void (*link_program_ARB) (GLIContext ctx, GLhandleARB programObj); + void (*use_program_object_ARB) (GLIContext ctx, GLhandleARB programObj); + void (*validate_program_ARB) (GLIContext ctx, GLhandleARB programObj); + void (*uniform1f_ARB) (GLIContext ctx, GLint location, GLfloat v0); + void (*uniform2f_ARB) (GLIContext ctx, GLint location, GLfloat v0, GLfloat v1); + void (*uniform3f_ARB) (GLIContext ctx, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); + void (*uniform4f_ARB) (GLIContext ctx, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); + void (*uniform1i_ARB) (GLIContext ctx, GLint location, GLint v0); + void (*uniform2i_ARB) (GLIContext ctx, GLint location, GLint v0, GLint v1); + void (*uniform3i_ARB) (GLIContext ctx, GLint location, GLint v0, GLint v1, GLint v2); + void (*uniform4i_ARB) (GLIContext ctx, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); + void (*uniform1fv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLfloat *value); + void (*uniform2fv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLfloat *value); + void (*uniform3fv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLfloat *value); + void (*uniform4fv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLfloat *value); + void (*uniform1iv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLint *value); + void (*uniform2iv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLint *value); + void (*uniform3iv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLint *value); + void (*uniform4iv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLint *value); + void (*uniform_matrix2fv_ARB) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*uniform_matrix3fv_ARB) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*uniform_matrix4fv_ARB) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*get_object_parameterfv_ARB) (GLIContext ctx, GLhandleARB obj, GLenum pname, GLfloat *params); + void (*get_object_parameteriv_ARB) (GLIContext ctx, GLhandleARB obj, GLenum pname, GLint *params); + void (*get_info_log_ARB) (GLIContext ctx, GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); + void (*get_attached_objects_ARB) (GLIContext ctx, GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); + GLint (*get_uniform_location_ARB) (GLIContext ctx, GLhandleARB programObj, const GLcharARB *name); + void (*get_active_uniform_ARB) (GLIContext ctx, GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); + void (*get_uniformfv_ARB) (GLIContext ctx, GLhandleARB programObj, GLint location, GLfloat *params); + void (*get_uniformiv_ARB) (GLIContext ctx, GLhandleARB programObj, GLint location, GLint *params); + void (*get_shader_source_ARB) (GLIContext ctx, GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); + void (*bind_attrib_location_ARB) (GLIContext ctx, GLhandleARB programObj, GLuint index, const GLcharARB *name); + void (*get_active_attrib_ARB) (GLIContext ctx, GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); + GLint (*get_attrib_location_ARB) (GLIContext ctx, GLhandleARB programObj, const GLcharARB *name); + void (*clamp_color_ARB) (GLIContext ctx, GLenum target, GLenum clamp); + void (*gen_queries) (GLIContext ctx, GLsizei n, GLuint *ids); + void (*delete_queries) (GLIContext ctx, GLsizei n, const GLuint *ids); + GLboolean (*is_query) (GLIContext ctx, GLuint id); + void (*begin_query) (GLIContext ctx, GLenum target, GLuint id); + void (*end_query) (GLIContext ctx, GLenum target); + void (*get_queryiv) (GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*get_query_objectiv) (GLIContext ctx, GLuint id, GLenum pname, GLint *params); + void (*get_query_objectuiv) (GLIContext ctx, GLuint id, GLenum pname, GLuint *params); + void (*bind_buffer) (GLIContext ctx, GLenum target, GLuint buffer); + void (*delete_buffers) (GLIContext ctx, GLsizei n, const GLuint *buffers); + void (*gen_buffers) (GLIContext ctx, GLsizei n, GLuint *buffers); + GLboolean (*is_buffer) (GLIContext ctx, GLuint buffer); + void (*buffer_data) (GLIContext ctx, GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); + void (*buffer_sub_data) (GLIContext ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); + void (*get_buffer_sub_data) (GLIContext ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data); + GLvoid *(*map_buffer) (GLIContext ctx, GLenum target, GLenum access); + GLboolean (*unmap_buffer) (GLIContext ctx, GLenum target); + void (*get_buffer_parameteriv) (GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*get_buffer_pointerv) (GLIContext ctx, GLenum target, GLenum pname, GLvoid **params); + void (*depth_bounds_EXT) (GLIContext ctx, GLclampd zmin, GLclampd zmax); + void (*draw_buffers_ARB) (GLIContext ctx, GLsizei n, const GLenum *bufs); + + GLboolean (*is_shader) (GLIContext ctx, GLuint shader); + GLboolean (*is_program) (GLIContext ctx, GLuint program); + void (*get_shaderiv) (GLIContext ctx, GLuint shader, GLenum pname, GLint *params); + void (*get_programiv) (GLIContext ctx, GLuint program, GLenum pname, GLint *params); + void (*get_shader_info_log) (GLIContext ctx, GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); + void (*get_program_info_log) (GLIContext ctx, GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); + + void (*stencil_func_separate) (GLIContext ctx, GLenum face, GLenum func, GLint ref, GLuint mask); + void (*stencil_mask_separate) (GLIContext ctx, GLenum face, GLuint mask); + + void (*multi_draw_element_array_APPLE)(GLIContext ctx, GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); + void (*multi_draw_range_element_array_APPLE)(GLIContext ctx, GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); + + /* EXT_framebuffer_object */ + GLboolean (*is_renderbuffer_EXT) (GLIContext ctx, GLuint renderbuffer); + void (*bind_renderbuffer_EXT) (GLIContext ctx, GLenum target, GLuint renderbuffer); + void (*delete_renderbuffers_EXT) (GLIContext ctx, GLsizei n, const GLuint *renderbuffers); + void (*gen_renderbuffers_EXT) (GLIContext ctx, GLsizei n, GLuint *renderbuffers); + void (*renderbuffer_storage_EXT) (GLIContext ctx, GLenum target, GLenum internalformat, GLsizei width, GLsizei height); + void (*get_renderbuffer_parameteriv_EXT) (GLIContext ctx, GLenum target, GLenum pname, GLint *params); + GLboolean (*is_framebuffer_EXT) (GLIContext ctx, GLuint framebuffer); + void (*bind_framebuffer_EXT) (GLIContext ctx, GLenum target, GLuint framebuffer); + void (*delete_framebuffers_EXT) (GLIContext ctx, GLsizei n, const GLuint *framebuffers); + void (*gen_framebuffers_EXT) (GLIContext ctx, GLsizei n, GLuint *framebuffers); + GLenum (*check_framebuffer_status_EXT) (GLIContext ctx, GLenum target); + void (*framebuffer_texture1D_EXT) (GLIContext ctx, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); + void (*framebuffer_texture2D_EXT) (GLIContext ctx, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); + void (*framebuffer_texture3D_EXT) (GLIContext ctx, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); + void (*framebuffer_renderbuffer_EXT) (GLIContext ctx, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); + void (*get_framebuffer_attachment_parameteriv_EXT) (GLIContext ctx, GLenum target, GLenum attachment, GLenum pname, GLint *params); + void (*generate_mipmap_EXT) (GLIContext ctx, GLenum target); + + void (*buffer_parameteri_APPLE) (GLIContext ctx, GLenum target, GLenum pname, GLint param); + void (*flush_mapped_buffer_range_APPLE) (GLIContext ctx, GLenum target, GLintptr offset, GLsizeiptr size); + + void (*program_env_parameters4fv_EXT)(GLIContext ctx, GLenum target, GLuint index, GLsizei count, const GLfloat *params); + void (*program_local_parameters4fv_EXT)(GLIContext ctx, GLenum target, GLuint index, GLsizei count, const GLfloat *params); + + GLenum (*object_purgeable_APPLE)(GLIContext ctx, GLenum objectType, GLuint name, GLenum option); + GLenum (*object_unpurgeable_APPLE)(GLIContext ctx, GLenum objectType, GLuint name, GLenum option); + void (*get_object_parameteriv_APPLE) (GLIContext ctx, GLenum objectType, GLuint name, GLenum pname, GLint* params); + + /* EXT_geometry_shader4 */ + void (*program_parameteri_EXT)(GLIContext ctx, GLuint program_name, GLenum pname, GLint value); + void (*framebuffer_texture_EXT)(GLIContext ctx, GLenum target, GLenum attachment, GLuint texture, GLint level); + void (*framebuffer_texture_layer_EXT)(GLIContext ctx, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); + void (*framebuffer_texture_face_EXT)(GLIContext ctx, GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); + + /* EXT_transform_feedback */ + void (*bind_buffer_range_EXT)(GLIContext ctx, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); + void (*bind_buffer_offset_EXT)(GLIContext ctx, GLenum target, GLuint index, GLuint buffer, GLintptr offset); + void (*bind_buffer_base_EXT)(GLIContext ctx, GLenum target, GLuint index, GLuint buffer); + void (*begin_transform_feedback_EXT)(GLIContext ctx, GLenum primitiveMode); + void (*end_transform_feedback_EXT)(GLIContext ctx); + void (*transform_feedback_varyings_EXT)(GLIContext ctx, GLuint program, GLsizei count, const GLchar* const *varyings, GLenum bufferMode); + void (*get_transform_feedback_varying_EXT)(GLIContext ctx, GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); + void (*get_integer_indexedv_EXT)(GLIContext ctx, GLenum param, GLuint index, GLint *values); + void (*get_boolean_indexedv_EXT)(GLIContext ctx, GLenum param, GLuint index, GLboolean *values); + + /* EXT_bindable_uniform */ + void (*uniform_buffer_EXT)(GLIContext ctx, GLuint program, GLint location, GLuint buffer); + GLint (*get_uniform_buffer_size_EXT)(GLIContext ctx, GLuint program, GLint location); + GLintptr (*get_uniform_buffer_offset_EXT)(GLIContext ctx, GLuint program, GLint location); + + /* EXT_texture_integer */ + void (*clear_colorIi_EXT) (GLIContext ctx, GLint r, GLint g, GLint b, GLint a ); + void (*clear_colorIui_EXT) (GLIContext ctx, GLuint r, GLuint g, GLuint b, GLuint a ); + void (*tex_parameterIiv_EXT)(GLIContext ctx, GLenum target, GLenum pname, GLint *params ); + void (*tex_parameterIuiv_EXT)(GLIContext ctx, GLenum target, GLenum pname, GLuint *params ); + void (*get_tex_parameterIiv_EXT) (GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*get_tex_parameterIuiv_EXT) (GLIContext ctx, GLenum target, GLenum pname, GLuint *params); + + /* EXT_gpu_shader4 */ + void (*vertex_attribI1i_EXT)(GLIContext ctx, GLuint index, GLint x); + void (*vertex_attribI2i_EXT)(GLIContext ctx, GLuint index, GLint x, GLint y); + void (*vertex_attribI3i_EXT)(GLIContext ctx, GLuint index, GLint x, GLint y, GLint z); + void (*vertex_attribI4i_EXT)(GLIContext ctx, GLuint index, GLint x, GLint y, GLint z, GLint w); + void (*vertex_attribI1ui_EXT)(GLIContext ctx, GLuint index, GLuint x); + void (*vertex_attribI2ui_EXT)(GLIContext ctx, GLuint index, GLuint x, GLuint y); + void (*vertex_attribI3ui_EXT)(GLIContext ctx, GLuint index, GLuint x, GLuint y, GLuint z); + void (*vertex_attribI4ui_EXT)(GLIContext ctx, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); + void (*vertex_attribI1iv_EXT)(GLIContext ctx, GLuint index, const GLint *v); + void (*vertex_attribI2iv_EXT)(GLIContext ctx, GLuint index, const GLint *v); + void (*vertex_attribI3iv_EXT)(GLIContext ctx, GLuint index, const GLint *v); + void (*vertex_attribI4iv_EXT)(GLIContext ctx, GLuint index, const GLint *v); + void (*vertex_attribI1uiv_EXT)(GLIContext ctx, GLuint index, const GLuint *v); + void (*vertex_attribI2uiv_EXT)(GLIContext ctx, GLuint index, const GLuint *v); + void (*vertex_attribI3uiv_EXT)(GLIContext ctx, GLuint index, const GLuint *v); + void (*vertex_attribI4uiv_EXT)(GLIContext ctx, GLuint index, const GLuint *v); + void (*vertex_attribI4bv_EXT)(GLIContext ctx, GLuint index, const GLbyte *v); + void (*vertex_attribI4sv_EXT)(GLIContext ctx, GLuint index, const GLshort *v); + void (*vertex_attribI4ubv_EXT)(GLIContext ctx, GLuint index, const GLubyte *v); + void (*vertex_attribI4usv_EXT)(GLIContext ctx, GLuint index, const GLushort *v); + void (*vertex_attribI_pointer_EXT)(GLIContext ctx, GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*get_vertex_attribIiv_EXT)(GLIContext ctx, GLuint index, GLenum pname, GLint *params); + void (*get_vertex_attribIuiv_EXT)(GLIContext ctx, GLuint index, GLenum pname, GLuint *params); + void (*uniform1ui_EXT)(GLIContext ctx, GLint location, GLuint v0); + void (*uniform2ui_EXT)(GLIContext ctx, GLint location, GLuint v0, GLuint v1); + void (*uniform3ui_EXT)(GLIContext ctx, GLint location, GLuint v0, GLuint v1, GLuint v2); + void (*uniform4ui_EXT)(GLIContext ctx, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); + void (*uniform1uiv_EXT)(GLIContext ctx, GLint location, GLsizei count, const GLuint *value); + void (*uniform2uiv_EXT)(GLIContext ctx, GLint location, GLsizei count, const GLuint *value); + void (*uniform3uiv_EXT)(GLIContext ctx, GLint location, GLsizei count, const GLuint *value); + void (*uniform4uiv_EXT)(GLIContext ctx, GLint location, GLsizei count, const GLuint *value); + void (*get_uniformuiv_EXT)(GLIContext ctx, GLuint program, GLint location, GLuint *params); + void (*bind_frag_data_location_EXT)(GLIContext ctx, GLuint program, GLuint colorNumber, const GLchar *name); + GLint (*get_frag_data_location_EXT)(GLIContext ctx, GLuint program, const GLchar *name); + + /* EXT_draw_buffers2 */ + void (*color_mask_indexed_EXT) (GLIContext ctx, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); + void (*enable_indexed_EXT) (GLIContext ctx, GLenum target, GLuint index); + void (*disable_indexed_EXT) (GLIContext ctx, GLenum target, GLuint index); + GLboolean (*is_enabled_indexed_EXT) (GLIContext ctx, GLenum target, GLuint index); + + /* OpenGL 2.1 */ + void (*uniform_matrix2x3fv) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*uniform_matrix3x2fv) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*uniform_matrix2x4fv) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*uniform_matrix4x2fv) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*uniform_matrix3x4fv) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*uniform_matrix4x3fv) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + + /* EXT_framebuffer_blit and EXT_framebuffer_multisample */ + void (*blit_framebuffer_EXT) (GLIContext ctx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); + void (*renderbuffer_storage_multisample_EXT) (GLIContext ctx, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); + + /* NV_conditional_render */ + void (*begin_conditional_render_NV)(GLIContext ctx, GLuint id, GLenum mode); + void (*end_conditional_render_NV)(GLIContext ctx); + + void (*get_attached_shaders) (GLIContext ctx, GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); + + /* EXT_provoking_vertex */ + void (*provoking_vertex_EXT) (GLIContext ctx, GLenum mode); + + /* ARB_instanced_arrays */ + void (*vertex_attrib_divisor) (GLIContext ctx, GLuint index, GLuint divisor); + /* ARB_instanced_arrays and ARB_draw_instanced */ + void (*draw_arrays_instanced)(GLIContext ctx, GLenum mode, GLint first, GLsizei count, GLsizei instancecount); + void (*draw_elements_instanced)(GLIContext ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instancecount); + + /* ARB_draw_elements_base_vertex */ + void (*draw_elements_base_vertex)(GLIContext ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint base_vertex); + void (*draw_range_elements_base_vertex)(GLIContext ctx, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint base_vertex); + void (*draw_elements_instanced_base_vertex)(GLIContext ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instancecount, GLint base_vertex); + void (*multi_draw_elements_base_vertex)(GLIContext ctx, GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei drawcount, const GLint *base_vertex); + + /* ARB_vertex_array_object / OES_vertex_array_object */ + void (*bind_vertex_array_ARB)(GLIContext ctx, GLuint array); + void (*delete_vertex_arrays_ARB)(GLIContext ctx, GLsizei n, const GLuint *arrays); + void (*gen_vertex_arrays_ARB)(GLIContext ctx, GLsizei n, GLuint *arrays); + GLboolean (*is_vertex_array_ARB)(GLIContext ctx, GLuint array); + + /* APPLE_vertex_point_size */ + void (*point_size_pointer) (GLIContext ctx, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*vertex_point_sizef_APPLE) (GLIContext ctx, GLfloat size); + + /* OpenGL 3.0 */ + void (*clear_bufferiv)(GLIContext ctx, GLenum buffer, GLint drawbuffer, const GLint *value); + void (*clear_bufferuiv)(GLIContext ctx, GLenum buffer, GLint drawbuffer, const GLuint *value); + void (*clear_bufferfv)(GLIContext ctx, GLenum buffer, GLint drawbuffer, const GLfloat *value); + void (*clear_bufferfi)(GLIContext ctx, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); + const GLubyte* (*get_stringi)(GLIContext ctx, GLenum name, GLuint index); + + /* ARB_sync */ + GLsync (*fence_sync) (GLIContext ctx, GLenum condition, GLbitfield flags); + GLboolean (*is_sync) (GLIContext ctx, GLsync sync); + void (*delete_sync) (GLIContext ctx, GLsync sync); + GLenum (*client_wait_sync) (GLIContext ctx, GLsync sync, GLbitfield flags, GLuint64 timeout); + void (*wait_sync) (GLIContext ctx, GLsync sync, GLbitfield flags, GLuint64 timeout); + void (*get_integer64v_sync) (GLIContext ctx, GLenum pname, GLint64 *params); + void (*get_synciv) (GLIContext ctx, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); + + /* ARB_texture_multisample */ + void (*tex_image2D_multisample)(GLIContext ctx, GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); + void (*tex_image3D_multisample)(GLIContext ctx, GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); + void (*get_multisamplefv)(GLIContext ctx, GLenum pname, GLuint index, GLfloat *val); + void (*sample_maski)(GLIContext ctx, GLuint index, GLbitfield mask); + + /* ARB_texture_buffer_object */ + void (*tex_buffer)(GLIContext ctx, GLenum target, GLenum internalformat, GLuint buffer); + + /* ARB_copy_buffer */ + void (*copy_buffer_sub_data)(GLIContext ctx, GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size); + + /* NV_primitive_restart */ + void (*primitive_restart_index)(GLIContext ctx, GLuint index); + + /* EXT_timer_query */ + void (*get_query_objecti64v) (GLIContext ctx, GLuint id, GLenum pname, GLint64EXT *params); + void (*get_query_objectui64v) (GLIContext ctx, GLuint id, GLenum pname, GLuint64EXT *params); + + /* ARB_map_buffer_range */ + GLvoid *(*map_buffer_range) (GLIContext ctx, GLenum target, GLintptr offset, GLsizeiptr length, GLenum access); + void (*flush_mapped_buffer_range) (GLIContext ctx, GLenum target, GLintptr offset, GLsizeiptr length); + + /* ARB_timer_query */ + void (*query_counter) (GLIContext ctx, GLuint id, GLenum target); + void (*get_integer64i_v) (GLIContext ctx, GLenum target, GLuint index, GLint64 *data); + void (*get_buffer_parameteri64v)(GLIContext ctx, GLenum target, GLenum pname, GLint64 *params); + + /* ARB_sampler_object */ + void (*gen_samplers) (GLIContext ctx, GLsizei count, GLuint *samplers); + void (*delete_samplers) (GLIContext ctx, GLsizei count, const GLuint *samplers); + GLboolean (*is_sampler) (GLIContext ctx, GLuint sampler); + void (*bind_sampler) (GLIContext ctx, GLuint unit, GLuint sampler); + void (*sampler_parameteri) (GLIContext ctx, GLuint sampler, GLenum pname, GLint param); + void (*sampler_parameteriv) (GLIContext ctx, GLuint sampler, GLenum pname, const GLint *param); + void (*sampler_parameterf) (GLIContext ctx, GLuint sampler, GLenum pname, GLfloat param); + void (*sampler_parameterfv) (GLIContext ctx, GLuint sampler, GLenum pname, const GLfloat *param); + void (*sampler_parameterIiv) (GLIContext ctx, GLuint sampler, GLenum pname, const GLint *param); + void (*sampler_parameterIuiv) (GLIContext ctx, GLuint sampler, GLenum pname, const GLuint *param); + void (*get_sampler_parameteriv) (GLIContext ctx, GLuint sampler, GLenum pname, GLint *params); + void (*get_sampler_parameterfv) (GLIContext ctx, GLuint sampler, GLenum pname, GLfloat *params); + void (*get_sampler_parameterIiv) (GLIContext ctx, GLuint sampler, GLenum pname, GLint *params); + void (*get_sampler_parameterIuiv) (GLIContext ctx, GLuint sampler, GLenum pname, GLuint *params); + + /* EXT_debug_label */ + void (*label_object_EXT)(GLIContext ctx, GLenum type, GLuint object, GLsizei length, const GLchar *label); + void (*get_object_label_EXT)(GLIContext ctx, GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); + + /* EXT_debug_marker */ + void (*insert_event_marker_EXT)(GLIContext ctx, GLsizei length, const GLchar *marker); + void (*push_group_marker_EXT)(GLIContext ctx, GLsizei length, const GLchar *marker); + void (*pop_group_marker_EXT)(GLIContext ctx); + + /* ARB_separate_shader_objects */ + void (*use_program_stages)(GLIContext ctx, GLuint pipeline, GLbitfield stages, GLuint program); + void (*active_shader_program)(GLIContext ctx, GLuint pipeline, GLuint program); + GLuint (*create_shader_programv)(GLIContext ctx, GLenum type, GLsizei count, const GLchar* const *strings); + void (*bind_program_pipeline)(GLIContext ctx, GLuint pipeline); + void (*delete_program_pipelines)(GLIContext ctx, GLsizei n, const GLuint *pipelines); + void (*gen_program_pipelines)(GLIContext ctx, GLsizei n, GLuint *pipelines); + GLboolean (*is_program_pipeline)(GLIContext ctx, GLuint pipeline); + void (*get_program_pipelineiv)(GLIContext ctx, GLuint pipeline, GLenum pname, GLint *params); + void (*validate_program_pipeline)(GLIContext ctx, GLuint pipeline); + void (*get_program_pipeline_info_log)(GLIContext ctx, GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); + void (*program_uniform1i)(GLIContext ctx, GLuint program, GLint location, GLint x); + void (*program_uniform2i)(GLIContext ctx, GLuint program, GLint location, GLint x, GLint y); + void (*program_uniform3i)(GLIContext ctx, GLuint program, GLint location, GLint x, GLint y, GLint z); + void (*program_uniform4i)(GLIContext ctx, GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w); + void (*program_uniform1f)(GLIContext ctx, GLuint program, GLint location, GLfloat x); + void (*program_uniform2f)(GLIContext ctx, GLuint program, GLint location, GLfloat x, GLfloat y); + void (*program_uniform3f)(GLIContext ctx, GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z); + void (*program_uniform4f)(GLIContext ctx, GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); + void (*program_uniform1iv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); + void (*program_uniform2iv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); + void (*program_uniform3iv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); + void (*program_uniform4iv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); + void (*program_uniform1fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); + void (*program_uniform2fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); + void (*program_uniform3fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); + void (*program_uniform4fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); + void (*program_uniform_matrix2fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform_matrix3fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform_matrix4fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform1ui)(GLIContext ctx, GLuint program, GLint location, GLuint x); + void (*program_uniform2ui)(GLIContext ctx, GLuint program, GLint location, GLuint x, GLuint y); + void (*program_uniform3ui)(GLIContext ctx, GLuint program, GLint location, GLuint x, GLuint y, GLuint z); + void (*program_uniform4ui)(GLIContext ctx, GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w); + void (*program_uniform1uiv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); + void (*program_uniform2uiv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); + void (*program_uniform3uiv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); + void (*program_uniform4uiv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); + void (*program_uniform_matrix2x3fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform_matrix3x2fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform_matrix2x4fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform_matrix4x2fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform_matrix3x4fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform_matrix4x3fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + + /* ARB_blend_func_extended */ + void (*bind_frag_data_location_indexed) (GLIContext ctx, GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); + GLint (*get_frag_data_index) (GLIContext ctx, GLuint program, const GLchar *name); + + /* ARB_draw_buffers_blend */ + void (*blend_func_i) (GLIContext ctx, GLuint buf, GLenum src, GLenum dst); + void (*blend_func_separate_i) (GLIContext ctx, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); + void (*blend_equation_i) (GLIContext ctx, GLuint buf, GLenum mode); + void (*blend_equation_separate_i) (GLIContext ctx, GLuint buf, GLenum modeRGB, GLenum modeAlpha); + + /* ARB_shading_language_include */ + void (*named_string_ARB) (GLIContext ctx, GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); + void (*delete_named_string_ARB) (GLIContext ctx, GLint namelen, const GLchar *name); + void (*compile_shader_include_ARB) (GLIContext ctx, GLuint shader, GLsizei count, const GLchar* const *path, const GLint *length); + GLboolean (*is_named_string_ARB) (GLIContext ctx, GLint namelen, const GLchar *name); + void (*get_named_string_ARB) (GLIContext ctx, GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); + void (*get_named_string_iv_ARB) (GLIContext ctx, GLint namelen, const GLchar *name, GLenum pname, GLint *params); + + /* ARB_ES2_compatibility */ + void (*release_shader_compiler)(GLIContext ctx); + void (*shader_binary)(GLIContext ctx, GLint n, GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLint length); + void (*get_shader_precision_format)(GLIContext ctx, GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); + void (*depth_rangef) (GLIContext ctx, GLclampf zNear, GLclampf zFar); + void (*clear_depthf) (GLIContext ctx, GLclampf depth); + + /* ARB_vertex_type_2_10_10_10_rev */ + void (*vertex_attribP1ui) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, GLuint value); + void (*vertex_attribP2ui) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, GLuint value); + void (*vertex_attribP3ui) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, GLuint value); + void (*vertex_attribP4ui) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, GLuint value); + void (*vertex_attribP1uiv) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, const GLuint *value); + void (*vertex_attribP2uiv) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, const GLuint *value); + void (*vertex_attribP3uiv) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, const GLuint *value); + void (*vertex_attribP4uiv) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, const GLuint *value); + + /* ARB_get_program_binary */ + void (*get_program_binary) (GLIContext ctx, GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); + void (*program_binary) (GLIContext ctx, GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length); + + /* ARB_sample_shading */ + void (*min_sample_shading) (GLIContext ctx, GLclampf value); + + /* ARB_viewport_array */ + void (*viewport_arrayv) (GLIContext ctx, GLuint first, GLsizei count, const GLfloat * v); + void (*viewport_indexedf) (GLIContext ctx, GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); + void (*viewport_indexedfv) (GLIContext ctx, GLuint index, const GLfloat * v); + void (*scissor_arrayv) (GLIContext ctx, GLuint first, GLsizei count, const GLint * v); + void (*scissor_indexed) (GLIContext ctx, GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); + void (*scissor_indexedv) (GLIContext ctx, GLuint index, const GLint * v); + void (*depth_range_arrayv) (GLIContext ctx, GLuint first, GLsizei count, const GLclampd * v); + void (*depth_range_indexed) (GLIContext ctx, GLuint index, GLclampd n, GLclampd f); + void (*get_floati_v) (GLIContext ctx, GLenum target, GLuint index, GLfloat *data); + void (*get_doublei_v) (GLIContext ctx, GLenum target, GLuint index, GLdouble *data); + + /* ARB_draw_indirect */ + void (*draw_arrays_indirect) (GLIContext ctx, GLenum mode, const GLvoid *indirect); + void (*draw_elements_indirect) (GLIContext ctx, GLenum mode, GLenum type, const GLvoid *indirect); + + /* ARB_tessellation_shader */ + void (*patch_parameteri) (GLIContext ctx, GLenum pname, GLint value); + void (*patch_parameterfv) (GLIContext ctx, GLenum pname, const GLfloat* values); + + /* ARB_transform_feedback2 */ + void (*bind_transform_feedback) (GLIContext ctx, GLenum target, GLuint name); + void (*gen_transform_feedbacks) (GLIContext ctx, GLsizei n, GLuint* ids); + void (*delete_transform_feedbacks) (GLIContext ctx, GLsizei n, const GLuint* ids); + void (*pause_transform_feedback) (GLIContext ctx); + void (*resume_transform_feedback) (GLIContext ctx); + GLboolean (*is_transform_feedback) (GLIContext ctx, GLuint name); + void (*draw_transform_feedback) (GLIContext ctx, GLenum mode, GLuint name); + + /* ARB_transform_feedback3 */ + void (*begin_query_indexed) (GLIContext ctx, GLenum target, GLuint index, GLuint id); + void (*end_query_indexed) (GLIContext ctx, GLenum target, GLuint index); + void (*get_query_indexediv) (GLIContext ctx, GLenum target, GLuint index, GLenum pname, GLint *params); + void (*draw_transform_feedback_stream) (GLIContext ctx, GLenum mode, GLuint name, GLuint stream); + + /* ARB_separate_shader_objects && ARB_gpu_shader_fp64 */ + void (*program_uniform1d)(GLIContext ctx, GLuint program, GLint location, GLdouble x); + void (*program_uniform2d)(GLIContext ctx, GLuint program, GLint location, GLdouble x, GLdouble y); + void (*program_uniform3d)(GLIContext ctx, GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); + void (*program_uniform4d)(GLIContext ctx, GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*program_uniform1dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLdouble *value); + void (*program_uniform2dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLdouble *value); + void (*program_uniform3dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLdouble *value); + void (*program_uniform4dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLdouble *value); + void (*program_uniform_matrix2dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix3dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix4dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix2x3dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix3x2dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix2x4dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix4x2dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix3x4dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix4x3dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + + /* ARB_gpu_shader_fp64 */ + void (*uniform1d)(GLIContext ctx, GLint location, GLdouble x); + void (*uniform2d)(GLIContext ctx, GLint location, GLdouble x, GLdouble y); + void (*uniform3d)(GLIContext ctx, GLint location, GLdouble x, GLdouble y, GLdouble z); + void (*uniform4d)(GLIContext ctx, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*uniform1dv)(GLIContext ctx, GLint location, GLsizei count, const GLdouble *value); + void (*uniform2dv)(GLIContext ctx, GLint location, GLsizei count, const GLdouble *value); + void (*uniform3dv)(GLIContext ctx, GLint location, GLsizei count, const GLdouble *value); + void (*uniform4dv)(GLIContext ctx, GLint location, GLsizei count, const GLdouble *value); + void (*uniform_matrix2dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix3dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix4dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix2x3dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix3x2dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix2x4dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix4x2dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix3x4dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix4x3dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*get_uniformdv)(GLIContext ctx, GLuint program_obj, GLint location, GLdouble *params); + + /* ARB_vertex_attrib_64bit */ + void (*vertex_attribl1d)(GLIContext ctx, GLuint index, GLdouble x); + void (*vertex_attribl2d)(GLIContext ctx, GLuint index, GLdouble x, GLdouble y); + void (*vertex_attribl3d)(GLIContext ctx, GLuint index, GLdouble x, GLdouble y, GLdouble z); + void (*vertex_attribl4d)(GLIContext ctx, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*vertex_attribl1dv)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attribl2dv)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attribl3dv)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attribl4dv)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attrib_lpointer)(GLIContext ctx, GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); + void (*get_vertex_attrib_ldv)(GLIContext ctx, GLuint index, GLenum pname, GLdouble *params); + + /* ARB_shader_subroutine */ + GLint (*get_subroutine_uniform_location)(GLIContext ctx, GLuint program, GLenum shadertype, const GLchar *name); + GLuint (*get_subroutine_index)(GLIContext ctx, GLuint program, GLenum shadertype, const GLchar *name); + void (*get_active_subroutine_uniformiv)(GLIContext ctx, GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); + void (*get_active_subroutine_uniform_name)(GLIContext ctx, GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); + void (*get_active_subroutine_name)(GLIContext ctx, GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); + void (*uniform_subroutinesuiv)(GLIContext ctx, GLenum shadertype, GLsizei count, const GLuint *indices); + void (*get_uniform_subroutineuiv)(GLIContext ctx, GLenum shadertype, GLint location, GLuint *params); + void (*get_program_stageiv)(GLIContext ctx, GLuint program, GLenum shadertype, GLenum pname, GLint *values); + + + /* ARB_internalformat_query */ + void (*get_internal_formativ) (GLIContext ctx, GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params); + + /* ARB_texture_storage */ + void (*tex_storage1D) (GLIContext ctx, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); + void (*tex_storage2D) (GLIContext ctx, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); + void (*tex_storage3D) (GLIContext ctx, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); + + /* GL_APPLE_label_process */ + void (*label_object_with_responsible_process_APPLE) (GLIContext ctx, GLenum type, GLuint name, GLint pid); + + /* GL_NV_texture_barrier */ + void (*texture_barrier_NV) (GLIContext ctx); + +} GLIFunctionDispatch; + + +#ifdef __cplusplus +} +#endif + +#endif /* _GLIDISPATCH_H */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gltypes.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gltypes.h" new file mode 100644 index 0000000..bba4bef --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gltypes.h" @@ -0,0 +1,59 @@ +/* + Copyright: (c) 2010-2012 Apple Inc. All rights reserved. +*/ +#ifndef __gltypes_h_ +#define __gltypes_h_ + +#include + +typedef uint32_t GLbitfield; +typedef uint8_t GLboolean; +typedef int8_t GLbyte; +typedef float GLclampf; +typedef uint32_t GLenum; +typedef float GLfloat; +typedef int32_t GLint; +typedef int16_t GLshort; +typedef int32_t GLsizei; +typedef uint8_t GLubyte; +typedef uint32_t GLuint; +typedef uint16_t GLushort; +typedef void GLvoid; + +#if !defined(GL_VERSION_2_0) +typedef char GLchar; +#endif +#if !defined(GL_ARB_shader_objects) +typedef char GLcharARB; +typedef void *GLhandleARB; +#endif +typedef double GLdouble; +typedef double GLclampd; +#if !defined(ARB_ES2_compatibility) && !defined(GL_VERSION_4_1) +typedef int32_t GLfixed; +#endif +#if !defined(GL_ARB_half_float_vertex) && !defined(GL_VERSION_3_0) +typedef uint16_t GLhalf; +#endif +#if !defined(GL_ARB_half_float_pixel) +typedef uint16_t GLhalfARB; +#endif +#if !defined(GL_ARB_sync) && !defined(GL_VERSION_3_2) +typedef int64_t GLint64; +typedef struct __GLsync *GLsync; +typedef uint64_t GLuint64; +#endif +#if !defined(GL_EXT_timer_query) +typedef int64_t GLint64EXT; +typedef uint64_t GLuint64EXT; +#endif +#if !defined(GL_VERSION_1_5) +typedef intptr_t GLintptr; +typedef intptr_t GLsizeiptr; +#endif +#if !defined(GL_ARB_vertex_buffer_object) +typedef intptr_t GLintptrARB; +typedef intptr_t GLsizeiptrARB; +#endif + +#endif diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/glu.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/glu.h" new file mode 100644 index 0000000..12597a6 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/glu.h" @@ -0,0 +1,304 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef __glu_h__ +#define __glu_h__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/*************************************************************/ + +/* Extensions */ +#define GLU_EXT_object_space_tess 1 +#define GLU_EXT_nurbs_tessellator 1 + +/* Boolean */ +#define GLU_FALSE 0 +#define GLU_TRUE 1 + +/* Version */ +#define GLU_VERSION_1_1 1 +#define GLU_VERSION_1_2 1 +#define GLU_VERSION_1_3 1 + +/* StringName */ +#define GLU_VERSION 100800 +#define GLU_EXTENSIONS 100801 + +/* ErrorCode */ +#define GLU_INVALID_ENUM 100900 +#define GLU_INVALID_VALUE 100901 +#define GLU_OUT_OF_MEMORY 100902 +#define GLU_INCOMPATIBLE_GL_VERSION 100903 +#define GLU_INVALID_OPERATION 100904 + + +/* NurbsDisplay */ +/* GLU_FILL */ +#define GLU_OUTLINE_POLYGON 100240 +#define GLU_OUTLINE_PATCH 100241 + +/* NurbsCallback */ +#define GLU_NURBS_ERROR 100103 +#define GLU_ERROR 100103 +#define GLU_NURBS_BEGIN 100164 +#define GLU_NURBS_BEGIN_EXT 100164 +#define GLU_NURBS_VERTEX 100165 +#define GLU_NURBS_VERTEX_EXT 100165 +#define GLU_NURBS_NORMAL 100166 +#define GLU_NURBS_NORMAL_EXT 100166 +#define GLU_NURBS_COLOR 100167 +#define GLU_NURBS_COLOR_EXT 100167 +#define GLU_NURBS_TEXTURE_COORD 100168 +#define GLU_NURBS_TEX_COORD_EXT 100168 +#define GLU_NURBS_END 100169 +#define GLU_NURBS_END_EXT 100169 +#define GLU_NURBS_BEGIN_DATA 100170 +#define GLU_NURBS_BEGIN_DATA_EXT 100170 +#define GLU_NURBS_VERTEX_DATA 100171 +#define GLU_NURBS_VERTEX_DATA_EXT 100171 +#define GLU_NURBS_NORMAL_DATA 100172 +#define GLU_NURBS_NORMAL_DATA_EXT 100172 +#define GLU_NURBS_COLOR_DATA 100173 +#define GLU_NURBS_COLOR_DATA_EXT 100173 +#define GLU_NURBS_TEXTURE_COORD_DATA 100174 +#define GLU_NURBS_TEX_COORD_DATA_EXT 100174 +#define GLU_NURBS_END_DATA 100175 +#define GLU_NURBS_END_DATA_EXT 100175 + +/* NurbsError */ +#define GLU_NURBS_ERROR1 100251 /* spline order un-supported */ +#define GLU_NURBS_ERROR2 100252 /* too few knots */ +#define GLU_NURBS_ERROR3 100253 /* valid knot range is empty */ +#define GLU_NURBS_ERROR4 100254 /* decreasing knot sequence */ +#define GLU_NURBS_ERROR5 100255 /* knot multiplicity > spline order */ +#define GLU_NURBS_ERROR6 100256 /* endcurve() must follow bgncurve() */ +#define GLU_NURBS_ERROR7 100257 /* bgncurve() must precede endcurve() */ +#define GLU_NURBS_ERROR8 100258 /* ctrlarray or knot vector is NULL */ +#define GLU_NURBS_ERROR9 100259 /* can't draw pwlcurves */ +#define GLU_NURBS_ERROR10 100260 /* missing gluNurbsCurve() */ +#define GLU_NURBS_ERROR11 100261 /* missing gluNurbsSurface() */ +#define GLU_NURBS_ERROR12 100262 /* endtrim() must precede endsurface() */ +#define GLU_NURBS_ERROR13 100263 /* bgnsurface() must precede endsurface() */ +#define GLU_NURBS_ERROR14 100264 /* curve of improper type passed as trim curve */ +#define GLU_NURBS_ERROR15 100265 /* bgnsurface() must precede bgntrim() */ +#define GLU_NURBS_ERROR16 100266 /* endtrim() must follow bgntrim() */ +#define GLU_NURBS_ERROR17 100267 /* bgntrim() must precede endtrim()*/ +#define GLU_NURBS_ERROR18 100268 /* invalid or missing trim curve*/ +#define GLU_NURBS_ERROR19 100269 /* bgntrim() must precede pwlcurve() */ +#define GLU_NURBS_ERROR20 100270 /* pwlcurve referenced twice*/ +#define GLU_NURBS_ERROR21 100271 /* pwlcurve and nurbscurve mixed */ +#define GLU_NURBS_ERROR22 100272 /* improper usage of trim data type */ +#define GLU_NURBS_ERROR23 100273 /* nurbscurve referenced twice */ +#define GLU_NURBS_ERROR24 100274 /* nurbscurve and pwlcurve mixed */ +#define GLU_NURBS_ERROR25 100275 /* nurbssurface referenced twice */ +#define GLU_NURBS_ERROR26 100276 /* invalid property */ +#define GLU_NURBS_ERROR27 100277 /* endsurface() must follow bgnsurface() */ +#define GLU_NURBS_ERROR28 100278 /* intersecting or misoriented trim curves */ +#define GLU_NURBS_ERROR29 100279 /* intersecting trim curves */ +#define GLU_NURBS_ERROR30 100280 /* UNUSED */ +#define GLU_NURBS_ERROR31 100281 /* unconnected trim curves */ +#define GLU_NURBS_ERROR32 100282 /* unknown knot error */ +#define GLU_NURBS_ERROR33 100283 /* negative vertex count encountered */ +#define GLU_NURBS_ERROR34 100284 /* negative byte-stride */ +#define GLU_NURBS_ERROR35 100285 /* unknown type descriptor */ +#define GLU_NURBS_ERROR36 100286 /* null control point reference */ +#define GLU_NURBS_ERROR37 100287 /* duplicate point on pwlcurve */ + +/* NurbsProperty */ +#define GLU_AUTO_LOAD_MATRIX 100200 +#define GLU_CULLING 100201 +#define GLU_SAMPLING_TOLERANCE 100203 +#define GLU_DISPLAY_MODE 100204 +#define GLU_PARAMETRIC_TOLERANCE 100202 +#define GLU_SAMPLING_METHOD 100205 +#define GLU_U_STEP 100206 +#define GLU_V_STEP 100207 +#define GLU_NURBS_MODE 100160 +#define GLU_NURBS_MODE_EXT 100160 +#define GLU_NURBS_TESSELLATOR 100161 +#define GLU_NURBS_TESSELLATOR_EXT 100161 +#define GLU_NURBS_RENDERER 100162 +#define GLU_NURBS_RENDERER_EXT 100162 + +/* NurbsSampling */ +#define GLU_OBJECT_PARAMETRIC_ERROR 100208 +#define GLU_OBJECT_PARAMETRIC_ERROR_EXT 100208 +#define GLU_OBJECT_PATH_LENGTH 100209 +#define GLU_OBJECT_PATH_LENGTH_EXT 100209 +#define GLU_PATH_LENGTH 100215 +#define GLU_PARAMETRIC_ERROR 100216 +#define GLU_DOMAIN_DISTANCE 100217 + +/* NurbsTrim */ +#define GLU_MAP1_TRIM_2 100210 +#define GLU_MAP1_TRIM_3 100211 + +/* QuadricDrawStyle */ +#define GLU_POINT 100010 +#define GLU_LINE 100011 +#define GLU_FILL 100012 +#define GLU_SILHOUETTE 100013 + +/* QuadricCallback */ +/* GLU_ERROR */ + +/* QuadricNormal */ +#define GLU_SMOOTH 100000 +#define GLU_FLAT 100001 +#define GLU_NONE 100002 + +/* QuadricOrientation */ +#define GLU_OUTSIDE 100020 +#define GLU_INSIDE 100021 + +/* TessCallback */ +#define GLU_TESS_BEGIN 100100 +#define GLU_BEGIN 100100 +#define GLU_TESS_VERTEX 100101 +#define GLU_VERTEX 100101 +#define GLU_TESS_END 100102 +#define GLU_END 100102 +#define GLU_TESS_ERROR 100103 +#define GLU_TESS_EDGE_FLAG 100104 +#define GLU_EDGE_FLAG 100104 +#define GLU_TESS_COMBINE 100105 +#define GLU_TESS_BEGIN_DATA 100106 +#define GLU_TESS_VERTEX_DATA 100107 +#define GLU_TESS_END_DATA 100108 +#define GLU_TESS_ERROR_DATA 100109 +#define GLU_TESS_EDGE_FLAG_DATA 100110 +#define GLU_TESS_COMBINE_DATA 100111 + +/* TessContour */ +#define GLU_CW 100120 +#define GLU_CCW 100121 +#define GLU_INTERIOR 100122 +#define GLU_EXTERIOR 100123 +#define GLU_UNKNOWN 100124 + +/* TessProperty */ +#define GLU_TESS_WINDING_RULE 100140 +#define GLU_TESS_BOUNDARY_ONLY 100141 +#define GLU_TESS_TOLERANCE 100142 + +/* TessError */ +#define GLU_TESS_ERROR1 100151 +#define GLU_TESS_ERROR2 100152 +#define GLU_TESS_ERROR3 100153 +#define GLU_TESS_ERROR4 100154 +#define GLU_TESS_ERROR5 100155 +#define GLU_TESS_ERROR6 100156 +#define GLU_TESS_ERROR7 100157 +#define GLU_TESS_ERROR8 100158 +#define GLU_TESS_MISSING_BEGIN_POLYGON 100151 +#define GLU_TESS_MISSING_BEGIN_CONTOUR 100152 +#define GLU_TESS_MISSING_END_POLYGON 100153 +#define GLU_TESS_MISSING_END_CONTOUR 100154 +#define GLU_TESS_COORD_TOO_LARGE 100155 +#define GLU_TESS_NEED_COMBINE_CALLBACK 100156 + +/* TessWinding */ +#define GLU_TESS_WINDING_ODD 100130 +#define GLU_TESS_WINDING_NONZERO 100131 +#define GLU_TESS_WINDING_POSITIVE 100132 +#define GLU_TESS_WINDING_NEGATIVE 100133 +#define GLU_TESS_WINDING_ABS_GEQ_TWO 100134 + +/*************************************************************/ + + +#ifdef __cplusplus +class GLUnurbs; +class GLUquadric; +class GLUtesselator; + +typedef class GLUnurbs GLUnurbsObj OPENGL_DEPRECATED(10_0, 10_9); +typedef class GLUquadric GLUquadricObj OPENGL_DEPRECATED(10_0, 10_9); +typedef class GLUtesselator GLUtesselatorObj OPENGL_DEPRECATED(10_0, 10_9); +typedef class GLUtesselator GLUtriangulatorObj OPENGL_DEPRECATED(10_0, 10_9); +#else +typedef struct GLUnurbs GLUnurbs OPENGL_DEPRECATED(10_0, 10_9); +typedef struct GLUquadric GLUquadric OPENGL_DEPRECATED(10_0, 10_9); +typedef struct GLUtesselator GLUtesselator OPENGL_DEPRECATED(10_0, 10_9); + +typedef struct GLUnurbs GLUnurbsObj OPENGL_DEPRECATED(10_0, 10_9); +typedef struct GLUquadric GLUquadricObj OPENGL_DEPRECATED(10_0, 10_9); +typedef struct GLUtesselator GLUtesselatorObj OPENGL_DEPRECATED(10_0, 10_9); +typedef struct GLUtesselator GLUtriangulatorObj OPENGL_DEPRECATED(10_0, 10_9); +#endif + +#define GLU_TESS_MAX_COORD 1.0e150 + +extern void gluBeginCurve (GLUnurbs* nurb) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluBeginPolygon (GLUtesselator* tess) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluBeginSurface (GLUnurbs* nurb) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluBeginTrim (GLUnurbs* nurb) OPENGL_DEPRECATED(10_0, 10_9); +extern GLint gluBuild1DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data) OPENGL_DEPRECATED_MSG(10_2, 10_9, "Use glGenerateMipmap"); +extern GLint gluBuild1DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void *data) OPENGL_DEPRECATED_MSG(10_0, 10_9, "Use glGenerateMipmap"); +extern GLint gluBuild2DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data) OPENGL_DEPRECATED_MSG(10_2, 10_9, "Use glGenerateMipmap"); +extern GLint gluBuild2DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *data) OPENGL_DEPRECATED_MSG(10_0, 10_9, "Use glGenerateMipmap"); +extern GLint gluBuild3DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data) OPENGL_DEPRECATED_MSG(10_2, 10_9, "Use glGenerateMipmap"); +extern GLint gluBuild3DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data) OPENGL_DEPRECATED_MSG(10_2, 10_9, "Use glGenerateMipmap"); +extern GLboolean gluCheckExtension (const GLubyte *extName, const GLubyte *extString) OPENGL_DEPRECATED(10_2, 10_9); +extern void gluCylinder (GLUquadric* quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluDeleteNurbsRenderer (GLUnurbs* nurb) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluDeleteQuadric (GLUquadric* quad) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluDeleteTess (GLUtesselator* tess) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluEndCurve (GLUnurbs* nurb) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluEndPolygon (GLUtesselator* tess) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluEndSurface (GLUnurbs* nurb) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluEndTrim (GLUnurbs* nurb) OPENGL_DEPRECATED(10_0, 10_9); +extern const GLubyte * gluErrorString (GLenum error) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluGetNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat* data) OPENGL_DEPRECATED(10_0, 10_9); +extern const GLubyte * gluGetString (GLenum name) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluGetTessProperty (GLUtesselator* tess, GLenum which, GLdouble* data) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluLoadSamplingMatrices (GLUnurbs* nurb, const GLfloat *model, const GLfloat *perspective, const GLint *view) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluLookAt (GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, GLdouble centerX, GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble upZ) OPENGL_DEPRECATED_MSG(10_0, 10_9, "Use GLKMatrix4MakeLookAt"); +extern GLUnurbs* gluNewNurbsRenderer (void) OPENGL_DEPRECATED(10_0, 10_9); +extern GLUquadric* gluNewQuadric (void) OPENGL_DEPRECATED(10_0, 10_9); +extern GLUtesselator* gluNewTess (void) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluNextContour (GLUtesselator* tess, GLenum type) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluNurbsCallback (GLUnurbs* nurb, GLenum which, GLvoid (*CallBackFunc)()) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluNurbsCallbackData (GLUnurbs* nurb, GLvoid* userData) OPENGL_DEPRECATED(10_2, 10_9); +extern void gluNurbsCallbackDataEXT (GLUnurbs* nurb, GLvoid* userData) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluNurbsCurve (GLUnurbs* nurb, GLint knotCount, GLfloat *knots, GLint stride, GLfloat *control, GLint order, GLenum type) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat value) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluNurbsSurface (GLUnurbs* nurb, GLint sKnotCount, GLfloat* sKnots, GLint tKnotCount, GLfloat* tKnots, GLint sStride, GLint tStride, GLfloat* control, GLint sOrder, GLint tOrder, GLenum type) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluOrtho2D (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top) OPENGL_DEPRECATED_MSG(10_0, 10_9, "Use GLKMatrix4MakeOrtho"); +extern void gluPartialDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluPerspective (GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar) OPENGL_DEPRECATED_MSG(10_0, 10_9, "Use GLKMatrix4MakePerspective"); +extern void gluPickMatrix (GLdouble x, GLdouble y, GLdouble delX, GLdouble delY, GLint *viewport) OPENGL_DEPRECATED(10_0, 10_9); +extern GLint gluProject (GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* winX, GLdouble* winY, GLdouble* winZ) OPENGL_DEPRECATED_MSG(10_0, 10_9, "Use GLKMathProject"); +extern void gluPwlCurve (GLUnurbs* nurb, GLint count, GLfloat* data, GLint stride, GLenum type) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluQuadricCallback (GLUquadric* quad, GLenum which, GLvoid (*CallBackFunc)()) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluQuadricDrawStyle (GLUquadric* quad, GLenum draw) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluQuadricNormals (GLUquadric* quad, GLenum normal) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluQuadricOrientation (GLUquadric* quad, GLenum orientation) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluQuadricTexture (GLUquadric* quad, GLboolean texture) OPENGL_DEPRECATED(10_0, 10_9); +extern GLint gluScaleImage (GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void *dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid* dataOut) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluSphere (GLUquadric* quad, GLdouble radius, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessBeginContour (GLUtesselator* tess) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessBeginPolygon (GLUtesselator* tess, GLvoid* data) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessCallback (GLUtesselator* tess, GLenum which, GLvoid (*CallBackFunc)()) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessEndContour (GLUtesselator* tess) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessEndPolygon (GLUtesselator* tess) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessNormal (GLUtesselator* tess, GLdouble valueX, GLdouble valueY, GLdouble valueZ) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessProperty (GLUtesselator* tess, GLenum which, GLdouble data) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessVertex (GLUtesselator* tess, GLdouble *location, GLvoid* data) OPENGL_DEPRECATED(10_0, 10_9); +extern GLint gluUnProject (GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* objX, GLdouble* objY, GLdouble* objZ) OPENGL_DEPRECATED_MSG(10_0, 10_9, "Use GLKMathUnproject"); +extern GLint gluUnProject4 (GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble nearPlane, GLdouble farPlane, GLdouble* objX, GLdouble* objY, GLdouble* objZ, GLdouble* objW) OPENGL_DEPRECATED_MSG(10_2, 10_9, "Use GLKMathUnproject"); + +#ifdef __cplusplus +} +#endif + +#endif /* __glu_h__ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gluContext.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gluContext.h" new file mode 100644 index 0000000..fee55f9 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gluContext.h" @@ -0,0 +1,51 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _GLUCONTEXT_H +#define _GLUCONTEXT_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** GLU Context routines +*/ +extern GLint gluBuild1DMipmapsCTX( struct _CGLContextObject *ctx, + GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void *data) OPENGL_DEPRECATED(10_0, 10_9); +extern GLint gluBuild2DMipmapsCTX( struct _CGLContextObject *ctx, + GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *data) OPENGL_DEPRECATED(10_0, 10_9); +extern GLint gluBuild3DMipmapsCTX( struct _CGLContextObject *ctx, + GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data) OPENGL_DEPRECATED(10_2, 10_9); +extern GLint gluBuild1DMipmapLevelsCTX ( struct _CGLContextObject *ctx, + GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data) OPENGL_DEPRECATED(10_2, 10_9); +extern GLint gluBuild2DMipmapLevelsCTX ( struct _CGLContextObject *ctx, + GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data) OPENGL_DEPRECATED(10_2, 10_9); +extern GLint gluBuild3DMipmapLevelsCTX ( struct _CGLContextObject *ctx, + GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data) OPENGL_DEPRECATED(10_2, 10_9); + +extern void gluLookAtCTX( struct _CGLContextObject *ctx, GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, + GLdouble centerX, GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble upZ) OPENGL_DEPRECATED(10_0, 10_9); +extern GLUnurbs* gluNewNurbsRendererCTX(struct _CGLContextObject *ctx) OPENGL_DEPRECATED(10_0, 10_9); +extern GLUquadric* gluNewQuadricCTX( struct _CGLContextObject *ctx) OPENGL_DEPRECATED(10_0, 10_9); +extern GLUtesselator* gluNewTessCTX( struct _CGLContextObject *ctx) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluOrtho2DCTX( struct _CGLContextObject *ctx, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluPerspectiveCTX( struct _CGLContextObject *ctx, GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluPickMatrixCTX( struct _CGLContextObject *ctx, GLdouble x, GLdouble y, GLdouble delX, GLdouble delY, GLint *viewport) OPENGL_DEPRECATED(10_0, 10_9); +extern GLint gluScaleImageCTX( struct _CGLContextObject *ctx, GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void *dataIn, + GLsizei wOut, GLsizei hOut, GLenum typeOut, void* dataOut) OPENGL_DEPRECATED(10_0, 10_9); + +extern void gluCylinderCTX( struct _CGLContextObject *ctx, GLUquadric *qobj, GLdouble baseRadiusd, GLdouble topRadiusd, GLdouble heightd, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_9, 10_9); +extern void gluDiskCTX( struct _CGLContextObject *ctx, GLUquadric *qobj, GLdouble innerRadiusd, GLdouble outerRadiusd, GLint slices, GLint loops) OPENGL_DEPRECATED(10_9, 10_9); +extern void gluPartialDiskCTX( struct _CGLContextObject *ctx, GLUquadric *qobj, GLdouble innerRadiusd, GLdouble outerRadiusd, GLint slices, GLint loops, GLdouble startAngled, GLdouble sweepAngled) OPENGL_DEPRECATED(10_9, 10_9); +extern void gluSphereCTX( struct _CGLContextObject *ctx, GLUquadric *qobj, GLdouble radiusd, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_9, 10_9); + +#ifdef __cplusplus +} +#endif + +#endif /* _GLUCONTEXT_H */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gluMacro.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gluMacro.h" new file mode 100644 index 0000000..f0167ec --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Headers/gluMacro.h" @@ -0,0 +1,64 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _GLUMACRO_H +#define _GLUMACRO_H + +#include +#include + +/********************* GLU Macros *********************/ + +#define gluBuild1DMipmaps(target, internalFormat, width, format, type, data) \ + gluBuild1DMipmapsCTX(cgl_ctx, target, internalFormat, width, format, type, data) + +#define gluBuild2DMipmaps(target, internalFormat, width, height, format, type, data) \ + gluBuild2DMipmapsCTX(cgl_ctx, target, internalFormat, width, height, format, type, data) + +#define gluBuild3DMipmaps(target, internalFormat, width, height, depth, format, type, data) \ + gluBuild3DMipmapsCTX(cgl_ctx, target, internalFormat, width, height, depth, format, type, data) + +#define gluBuild1DMipmapLevels(target, internalFormat, width, format, type, level, base, max, data) \ + gluBuild1DMipmapLevelsCTX(cgl_ctx, target, internalFormat, width, format, type, level, base, max, data) + +#define gluBuild2DMipmapLevels(target, internalFormat, width, height, format, type, level, base, max, data) \ + gluBuild2DMipmapLevelsCTX(cgl_ctx, target, internalFormat, width, height, format, type, level, base, max, data) + +#define gluBuild3DMipmapLevels(target, internalFormat, width, height, depth, format, type, level, base, max, data) \ + gluBuild3DMipmapLevelsCTX(cgl_ctx, target, internalFormat, width, height, depth, format, type, level, base, max, data) + +#define gluLookAt(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ) \ + gluLookAtCTX(cgl_ctx, eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ) + +#define gluNewNurbsRenderer() \ + gluNewNurbsRendererCTX(cgl_ctx) + +#define gluNewQuadric() \ + gluNewQuadricCTX(cgl_ctx) + +#define gluOrtho2D(left, right, bottom, top) \ + gluOrtho2DCTX(cgl_ctx, left, right, bottom, top) + +#define gluPerspective(fovy, aspect, znear, zfar) \ + gluPerspectiveCTX(cgl_ctx, fovy, aspect, znear, zfar) + +#define gluPickMatrix(x, y, delx, dely, viewport) \ + gluPickMatrixCTX(cgl_ctx, x, y, delx, dely, viewport) + +#define gluScaleImage(format, wIn, hIn, typeIn, dataIn, wOut, hOut, typeOut, dataOut) \ + gluScaleImageCTX(cgl_ctx, format, wIn, hIn, typeIn, dataIn, wOut, hOut, typeOut, dataOut) + +#define gluCylinder(qobj, baseRadiusd, topRadiusd, heightd, slices, stacks) \ + gluCylinderCTX(cgl_ctx, qobj, baseRadiusd, topRadiusd, heightd, slices, stacks) + +#define gluDisk(qobj, innerRadiusd, outerRadiusd, slices, loops) \ + gluDiskCTX(cgl_ctx, qobj, innerRadiusd, outerRadiusd, slices, loops) + +#define gluPartialDisk(qobj, innerRadiusd, outerRadiusd, slices, loops, startAngled, sweepAngled) \ + gluPartialDiskCTX(cgl_ctx, qobj, innerRadiusd, outerRadiusd, slices, loops, startAngled, sweepAngled) + +#define gluSphere(qobj, radiusd, slices, stacks) \ + gluSphereCTX(cgl_ctx, qobj, radiusd, slices, stacks) + +#endif /* _GLUMACRO_H */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/3600/CVMCompiler" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/3600/CVMCompiler" new file mode 100755 index 0000000..b91eb5d Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/3600/CVMCompiler" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/3600/libCoreVMClient.mono.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/3600/libCoreVMClient.mono.dylib" new file mode 100755 index 0000000..976bf57 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/3600/libCoreVMClient.mono.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/CVMCompiler" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/CVMCompiler" new file mode 100755 index 0000000..1de5af1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/CVMCompiler" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/CVMServer" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/CVMServer" new file mode 100755 index 0000000..4825139 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/CVMServer" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/DumpGPURestart" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/DumpGPURestart" new file mode 100755 index 0000000..e4b9cae Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/DumpGPURestart" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/Legacy/CVMCompiler" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/Legacy/CVMCompiler" new file mode 100755 index 0000000..c69e16f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/Legacy/CVMCompiler" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/Legacy/libCoreVMClient.mono.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/Legacy/libCoreVMClient.mono.dylib" new file mode 100755 index 0000000..e13198f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/Legacy/libCoreVMClient.mono.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/Legacy/libLLVMContainer.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/Legacy/libLLVMContainer.dylib" new file mode 100755 index 0000000..46a1aaa Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/Legacy/libLLVMContainer.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/ReportGPURestart" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/ReportGPURestart" new file mode 100755 index 0000000..abda50a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/ReportGPURestart" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib" new file mode 100755 index 0000000..cd82d77 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libCVMSPluginSupport.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libCoreFSCache.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libCoreFSCache.dylib" new file mode 100755 index 0000000..910f1a8 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libCoreFSCache.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib" new file mode 100755 index 0000000..87447d7 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libCoreVMClient.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib" new file mode 100755 index 0000000..eb282f1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libGFXShared.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libGL.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libGL.dylib" new file mode 100755 index 0000000..b896f46 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libGL.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib" new file mode 100755 index 0000000..106336e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libGLImage.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libGLProgrammability.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libGLProgrammability.dylib" new file mode 100755 index 0000000..221ec74 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libGLProgrammability.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libGLU.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libGLU.dylib" new file mode 100755 index 0000000..c152503 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libGLU.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libGLVMPlugin.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libGLVMPlugin.dylib" new file mode 100755 index 0000000..bf5e3e4 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libGLVMPlugin.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libLLVMContainer.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libLLVMContainer.dylib" new file mode 100755 index 0000000..146e42e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Libraries/libLLVMContainer.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/OpenGL" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/OpenGL" new file mode 100755 index 0000000..e400164 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/OpenGL" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/BridgeSupport/OpenGL.bridgesupport" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/BridgeSupport/OpenGL.bridgesupport" new file mode 100644 index 0000000..9331c5f --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/BridgeSupport/OpenGL.bridgesupport" @@ -0,0 +1,9581 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/CVMSPlugin.exp" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/CVMSPlugin.exp" new file mode 100644 index 0000000..a36f9ac --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/CVMSPlugin.exp" @@ -0,0 +1 @@ +_cvmsModularBuilder diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/CVMSPluginAll.exp" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/CVMSPluginAll.exp" new file mode 100644 index 0000000..850c081 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/CVMSPluginAll.exp" @@ -0,0 +1,4 @@ +_cvmsModularBuilder +_cvmsPluginInit +_cvmsPluginTerm +_cvmsPluginBuild diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/CVMSPluginNoExec.exp" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/CVMSPluginNoExec.exp" new file mode 100644 index 0000000..522c024 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/CVMSPluginNoExec.exp" @@ -0,0 +1,4 @@ +_cvmsPluginInit +_cvmsPluginTerm +_cvmsPluginBuild + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/GLByteCodes.i386.bc" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/GLByteCodes.i386.bc" new file mode 100644 index 0000000..6e7b92a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/GLByteCodes.i386.bc" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/GLByteCodes.x86_64.bc" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/GLByteCodes.x86_64.bc" new file mode 100644 index 0000000..b0180b3 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/GLByteCodes.x86_64.bc" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/GLEngine.bundle/GLEngine" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/GLEngine.bundle/GLEngine" new file mode 100755 index 0000000..4bf8b3a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/GLEngine.bundle/GLEngine" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/GLRendererFloat.bundle/GLRendererFloat" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/GLRendererFloat.bundle/GLRendererFloat" new file mode 100755 index 0000000..57f7a4b Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/GLRendererFloat.bundle/GLRendererFloat" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/Info.plist" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/Info.plist" new file mode 100644 index 0000000..3d1d143 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/Info.plist" @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + OpenGL + CFBundleGetInfoString + OpenGL 12.0.34.11.0 + CFBundleIdentifier + com.apple.opengl + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + OpenGL + CFBundlePackageType + FMWK + CFBundleShortVersionString + 12.0.34 + CFBundleSignature + ???? + CFBundleVersion + 12.0.34 + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/cvmsConfig.plist" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/cvmsConfig.plist" new file mode 100644 index 0000000..1cace56 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/cvmsConfig.plist" @@ -0,0 +1,83 @@ + + + + + OpenGL + + bytecode + // TODO remove dead-code + plugin + /System/Library/Frameworks/OpenGL.framework/Libraries/libGLVMPlugin.dylib + options + 20 + cache_size + 0 + + OpenCLCPU + + bytecode + // TODO remove dead-code + plugin + /System/Library/Frameworks/OpenCL.framework/Libraries/libCLVMCPUPlugin.dylib + options + 272 + cache_size + 1048576 + + OpenCLPTX + + bytecode + // TODO remove dead-code + plugin + /System/Library/Frameworks/OpenCL.framework/Libraries/libCLVMPTXPlugin.dylib + options + 272 + cache_size + 0 + + OpenCLPTXSM1X + + bytecode + // TODO remove dead-codeSM1X + plugin + /System/Library/Frameworks/OpenCL.framework/Libraries/libCLVMPTXSM1XPlugin.dylib + options + 272 + cache_size + 0 + + OpenCLAMDil + + bytecode + // TODO remove dead-code + plugin + /System/Library/Frameworks/OpenCL.framework/Libraries/libCLVMAMDilPlugin.dylib + options + 272 + cache_size + 0 + + OpenCLAMDil_r700 + + bytecode + // TODO remove dead-code + plugin + /System/Library/Frameworks/OpenCL.framework/Libraries/libCLVMAMDil_r700Plugin.dylib + options + 272 + cache_size + 0 + + OpenCLIGIL + + bytecode + // TODO remove dead-code + plugin + /System/Library/Frameworks/OpenCL.framework/Libraries/libCLVMIGILPlugin.dylib + options + 272 + cache_size + 0 + + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/version.plist" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/version.plist" new file mode 100644 index 0000000..7eb7c0c --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/Resources/version.plist" @@ -0,0 +1,16 @@ + + + + + BuildVersion + 139 + CFBundleShortVersionString + 12.0.34 + CFBundleVersion + 12.0.34 + ProjectName + OpenGL + SourceVersion + 12000034011000 + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/_CodeSignature/CodeResources" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/_CodeSignature/CodeResources" new file mode 100644 index 0000000..0296645 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/A/_CodeSignature/CodeResources" @@ -0,0 +1,271 @@ + + + + + files + + Resources/BridgeSupport/OpenGL.bridgesupport + + RBhC4TseVnJBlxkyjMyGKOcThNg= + + Resources/CVMSPlugin.exp + + GQWCkaiXSRJMj/HNhYP2We4nmAY= + + Resources/CVMSPluginAll.exp + + sahisN+JrbOBOxisn2BohvSPTho= + + Resources/CVMSPluginNoExec.exp + + w271dKQgXInDt5pgOkcaKI8fRkA= + + Resources/GLByteCodes.i386.bc + + VTEcgQIlhXF3p4K8uwGD/f8Eq2g= + + Resources/GLByteCodes.x86_64.bc + + bS1uw12dyAKlUzHKf7HwH1KyQUc= + + Resources/GLEngine.bundle/GLEngine + + oDd494+gI5wc4TeOPbLxuHL9GtY= + + Resources/GLRendererFloat.bundle/GLRendererFloat + + tQx582UpCnJNbuvW809DraHQuew= + + Resources/Info.plist + + zP6eZFmSbjnqOefA2csTEpp0luU= + + Resources/cvmsConfig.plist + + pAm6BIY4yOMWUKDcCduekQUJLvQ= + + Resources/version.plist + + 4s0jT8sl2bej/d8KcjZLJBSlfa0= + + + files2 + + Libraries/3600/CVMCompiler + + cEt31PPM3i9QFm3rpdX4Yd8B5Ec= + + Libraries/3600/libCoreVMClient.mono.dylib + + l4KHJHeLclv5HXtsDOb+83mfgpE= + + Libraries/CVMCompiler + + InafVuj2Gcwg/X1sPGre6Q5IhKU= + + Libraries/CVMServer + + L3LiyrSzcIp8kpz4sYx/Zfxm+Wk= + + Libraries/DumpGPURestart + + 0kiZT4jiwvrxSiMnYmzNG2SMeTA= + + Libraries/Legacy/CVMCompiler + + wHhkpaVBSbXfAi2Dyr4eZBFHrH0= + + Libraries/Legacy/libCoreVMClient.mono.dylib + + o/mlrz+sbDILKHwmE95ilHfqTMo= + + Libraries/Legacy/libLLVMContainer.dylib + + Aj1uby+XB55Jsb60dzoz6LZWT6M= + + Libraries/ReportGPURestart + + qTN3mCX7AhVG+Sg4YFg/kAv3xoo= + + Libraries/libCVMSPluginSupport.dylib + + I9HlEbnCLnJjhuTLZduqMoi0yJY= + + Libraries/libCoreFSCache.dylib + + rwMF3EkPoBgH8D4cct83a4h15uo= + + Libraries/libCoreVMClient.dylib + + 8zuJaTWTA57uz6Wqs2Ec0rHWkCs= + + Libraries/libGFXShared.dylib + + v0f3rV8Jq9naXCJIPILjkM7hvNg= + + Libraries/libGL.dylib + + VuZDTKY9BSYVjDdvvNYJCYDfef8= + + Libraries/libGLImage.dylib + + d6U5lyDEE45VXZO3FrIivBtrXmM= + + Libraries/libGLProgrammability.dylib + + eMf5Fje/Kw4UVe8US9WAaPVEdrk= + + Libraries/libGLU.dylib + + maWf6oRJ7SFlLE4eyZ/hhUFV0CU= + + Libraries/libGLVMPlugin.dylib + + vFEVrMBQ/yEbSJC9dsD4MHmkCmI= + + Libraries/libLLVMContainer.dylib + + nIRKPH96OFptAlwaGbOsCcfCm+s= + + Resources/BridgeSupport/OpenGL.bridgesupport + + RBhC4TseVnJBlxkyjMyGKOcThNg= + + Resources/CVMSPlugin.exp + + GQWCkaiXSRJMj/HNhYP2We4nmAY= + + Resources/CVMSPluginAll.exp + + sahisN+JrbOBOxisn2BohvSPTho= + + Resources/CVMSPluginNoExec.exp + + w271dKQgXInDt5pgOkcaKI8fRkA= + + Resources/GLByteCodes.i386.bc + + VTEcgQIlhXF3p4K8uwGD/f8Eq2g= + + Resources/GLByteCodes.x86_64.bc + + bS1uw12dyAKlUzHKf7HwH1KyQUc= + + Resources/GLEngine.bundle/GLEngine + + oDd494+gI5wc4TeOPbLxuHL9GtY= + + Resources/GLRendererFloat.bundle/GLRendererFloat + + tQx582UpCnJNbuvW809DraHQuew= + + Resources/Info.plist + + zP6eZFmSbjnqOefA2csTEpp0luU= + + Resources/cvmsConfig.plist + + pAm6BIY4yOMWUKDcCduekQUJLvQ= + + Resources/version.plist + + 4s0jT8sl2bej/d8KcjZLJBSlfa0= + + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/CGLContext.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/CGLContext.h" new file mode 100644 index 0000000..c59fc01 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/CGLContext.h" @@ -0,0 +1,36 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _CGLCONTEXT_H +#define _CGLCONTEXT_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/* +** Opaque declaration for private CGLContext data. +*/ +typedef struct _CGLPrivateObject *CGLPrivateObj; + +/* +** CGLContext structure. +*/ +struct _CGLContextObject { + GLIContext rend; + GLIFunctionDispatch disp; + CGLPrivateObj priv; + void *stak; +}; + + +#ifdef __cplusplus +} +#endif + +#endif /* _CGLCONTEXT_H */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/CGLCurrent.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/CGLCurrent.h" new file mode 100644 index 0000000..e39c93f --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/CGLCurrent.h" @@ -0,0 +1,29 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _CGLCURRENT_H +#define _CGLCURRENT_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +OPENGL_ASSUME_NONNULL_BEGIN + +/* +** Current context functions +*/ +extern CGLError CGLSetCurrentContext(CGLContextObj OPENGL_NULLABLE ctx); +extern CGLContextObj OPENGL_NULLABLE CGLGetCurrentContext(void); + +OPENGL_ASSUME_NONNULL_END + +#ifdef __cplusplus +} +#endif + +#endif /* _CGLCURRENT_H */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/CGLDevice.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/CGLDevice.h" new file mode 100644 index 0000000..d11a8cf --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/CGLDevice.h" @@ -0,0 +1,39 @@ +/* + Copyright: (c) 2008-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _CGLDEVICE_H +#define _CGLDEVICE_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +OPENGL_ASSUME_NONNULL_BEGIN + +typedef struct CGLShareGroupRec *CGLShareGroupObj OPENGL_AVAILABLE(10_6); + +CGLShareGroupObj OPENGL_NULLABLE CGLGetShareGroup(CGLContextObj ctx) OPENGL_AVAILABLE(10_6); + +typedef struct _cl_device_id * cl_device_id OPENGL_AVAILABLE(10_10); + +/* +** CGLGetDeviceFromGLRenderer returns the cl_device_id corresponding to the +** specified GL renderer ID. Use CGLDescribeRenderer to check if the renderer +** supports kCGLRPAcceleratedCompute before calling this function. If there is +** no cl_device_id corresponding to the specified renderer ID, the result is +** undefined. + */ +cl_device_id CGLGetDeviceFromGLRenderer(GLint rendererID) OPENGL_AVAILABLE(10_10); + +OPENGL_ASSUME_NONNULL_END + +#ifdef __cplusplus +} +#endif + +#endif /* _CGLDEVICE_H */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/CGLIOSurface.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/CGLIOSurface.h" new file mode 100644 index 0000000..eeb93c8 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/CGLIOSurface.h" @@ -0,0 +1,205 @@ +/* + Copyright: (c) 2008-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _CGLIOSURFACE_H +#define _CGLIOSURFACE_H + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +OPENGL_ASSUME_NONNULL_BEGIN + +typedef struct __IOSurface *IOSurfaceRef; + +/*! + @function CGLTexImageIOSurface2D + + CGLTexImageIOSurface2D() allows you to bind a single image plane from an IOSurfaceRef to + an OpenGL texture object. It is the rough equivalent to glTexImage2D(), except that + the underlying source data comes from an IOSurface rather than from an explicit pointer. + Note that unlike glTexImage2D(), the binding is "live", in that if the contents of + the IOSurface change, the contents become visible to OpenGL without making another + call to CGLTexImageIOSurface2D(). That being said, there are a few synchronization + things to worry about if you are using IOSurface to pass data between contexts and/or + different processes, or between the CPU and OpenGL. + + In general IOSurface follows Apple's cross-context synchronization rules for OpenGL. Put + simply, in order for changes done to an IOSurface on context A to become visible to context + B, you must flush context A's command stream (via an explicit call to glFlush, glFlushRenderAPPLE, + etc.), and then perform a 'bind' (in this case, glBindTexture()) on context B. Note that + in the case of an IOSurface backed texture used as a color buffer attachment for an FBO, + you are only required to call glBindFramebuffer() again. You do not have to call + glFramebufferTexture2D(). + + Likewise, if you make changes to an IOSurface with the CPU, you *must* wrap those changes + with calls to IOSurfaceLock() and IOSurfaceUnlock(), and call glBindTexture() again for + OpenGL to pick up the changes. + + Going in the other direction, if you want changes made with OpenGL to an IOSurface to become + visible to the CPU, you must also perform an explicit flush of the OpenGL context before + calling IOSurfaceLock(), or you may not get the most recent data. + + IOSurface and OpenGL make no guarantees about correctness if these rules are not followed. + + Because of the way IOSurface is currently implemented, it does not allow for any kind of + automatic format conversion to take place between the data in the IOSurface and the data seen + by the GPU. This means that OpenGL is going to interpret the data in the IOSurface exactly + as how it is specified by the format and type parameters passed to CGLTexImageIOSurface2D(). + + The upshot if this is that the only supported format/type combinations are those that have + exact matching hardware formats. The table at the bottom of this file lists the format/type/ + internalFormat combinations that are supported in Mac OS X 10.6. + + In cases where a given format/type combination has both an Internal Format and Sized Internal + Format, either one may be used. + + Note that CGLTexImageIOSurface2D for the most part doesn't care what the pixel format or bytes + per element of the IOSurface is. Instead it only enforces the rule that there must be enough + data in the plane being bound to cover what is required by the width/height/format/type + parameters. However, if you are using the IOSurface texture as a color buffer attachment to + an FBO, then you must ensure that the bytes per element value of the IOSurface must match the + effective bytes per pixel value for the format and type combination you are passing to OpenGL. + + @param ctx The CGLContextObj for the OpenGL context you are using + @param target Must currently be GL_TEXTURE_RECTANGLE_ARB as of Mac OS X 10.6.0. + @param internal_format One of the supported values from the table below that matches + the format/type combination. + @param width The width of the texture in pixels. + @param height The height of the texture in pixels. + @param format The OpenGL texture format enum + @param type The OpenGL texture type enum + @param ioSurface The IOSurfaceRef this texture is being bound to + @param plane Which plane of the IOSurface this texture is being bound to + +*/ +extern CGLError CGLTexImageIOSurface2D(CGLContextObj ctx, GLenum target, GLenum internal_format, + GLsizei width, GLsizei height, GLenum format, GLenum type, IOSurfaceRef ioSurface, GLuint plane) OPENGL_AVAILABLE(10_6); +/*! + + Supported IOSurface texture format/type/internal format combinations in Mac OS X 10.6 + + Format Type Internal Format Sized Internal Format + GL_ALPHA GL_UNSIGNED_BYTE GL_ALPHA GL_ALPHA8 + GL_LUMINANCE GL_UNSIGNED_BYTE GL_LUMINANCE GL_LUMINANCE8 + GL_LUMINANCE GL_UNSIGNED_BYTE GL_INTENSITY GL_INTENSITY8 + GL_LUMINANCE_ALPHA GL_UNSIGNED_BYTE GL_LUMINANCE_ALPHA GL_LUMINANCE8_ALPHA8 + + GL_ALPHA GL_UNSIGNED_SHORT GL_ALPHA GL_ALPHA16 + GL_LUMINANCE GL_UNSIGNED_SHORT GL_LUMINANCE GL_LUMINANCE16 + GL_LUMINANCE GL_UNSIGNED_SHORT GL_INTENSITY GL_INTENSITY16 + + GL_BGRA GL_UNSIGNED_SHORT_1_5_5_5_REV GL_RGBA GL_RGB5_A1 + GL_BGRA GL_UNSIGNED_SHORT_4_4_4_4_REV GL_RGBA GL_RGBA4 + + GL_BGRA GL_UNSIGNED_INT_8_8_8_8_REV GL_RGB GL_RGB8 + GL_BGRA GL_UNSIGNED_INT_8_8_8_8_REV GL_RGBA GL_RGBA8 + GL_BGRA GL_UNSIGNED_INT_2_10_10_10_REV GL_RGBA GL_RGB10_A2 + + // "Video" formats + + GL_RGB_422_APPLE GL_UNSIGNED_SHORT_8_8_APPLE GL_RGB GL_RGB8 + GL_RGB_422_APPLE GL_UNSIGNED_SHORT_8_8_REV_APPLE GL_RGB GL_RGB8 + GL_YCBCR_422_APPLE GL_UNSIGNED_SHORT_8_8_APPLE GL_RGB GL_RGB8 + GL_YCBCR_422_APPLE GL_UNSIGNED_SHORT_8_8_REV_APPLE GL_RGB GL_RGB8 + + // sRGB formats + + GL_BGRA GL_UNSIGNED_INT_8_8_8_8_REV GL_SRGB GL_SRGB8 + GL_BGRA GL_UNSIGNED_INT_8_8_8_8_REV GL_SRGB_ALPHA GL_SRGB8_ALPHA8 + + // Float formats for drivers that support APPLE_float_pixels: + + GL_RGBA GL_HALF_APPLE GL_RGB GL_RGB_FLOAT16_APPLE + GL_RGBA GL_HALF_APPLE GL_RGBA GL_RGBA_FLOAT16_APPLE + GL_RGBA GL_FLOAT GL_RGB GL_RGB_FLOAT32_APPLE + GL_RGBA GL_FLOAT GL_RGBA GL_RGBA_FLOAT32_APPLE + + // 16-bit unorm textures + GL_RGBA GL_UNSIGNED_SHORT GL_RGBA GL_RGBA16 + + // Integer formats for drivers that support EXT_texture_integer: + + GL_ALPHA_INTEGER_EXT GL_UNSIGNED_BYTE GL_ALPHA8UI + GL_ALPHA_INTEGER_EXT GL_BYTE GL_ALPHA8I + GL_ALPHA_INTEGER_EXT GL_UNSIGNED_SHORT GL_ALPHA16UI + GL_ALPHA_INTEGER_EXT GL_SHORT GL_ALPHA16I + GL_ALPHA_INTEGER_EXT GL_UNSIGNED_INT GL_ALPHA32UI + GL_ALPHA_INTEGER_EXT GL_INT GL_ALPHA32I + + GL_LUMINANCE_INTEGER_EXT GL_UNSIGNED_BYTE GL_LUMINANCE8UI + GL_LUMINANCE_INTEGER_EXT GL_BYTE GL_LUMINANCE8I + GL_LUMINANCE_INTEGER_EXT GL_UNSIGNED_SHORT GL_LUMINANCE16UI + GL_LUMINANCE_INTEGER_EXT GL_SHORT GL_LUMINANCE16I + GL_LUMINANCE_INTEGER_EXT GL_UNSIGNED_INT GL_LUMINANCE32UI + GL_LUMINANCE_INTEGER_EXT GL_INT GL_LUMINANCE32I + + GL_LUMINANCE_INTEGER_EXT GL_UNSIGNED_BYTE GL_INTENSITY8UI + GL_LUMINANCE_INTEGER_EXT GL_BYTE GL_INTENSITY8I + GL_LUMINANCE_INTEGER_EXT GL_UNSIGNED_SHORT GL_INTENSITY16UI + GL_LUMINANCE_INTEGER_EXT GL_SHORT GL_INTENSITY16I + GL_LUMINANCE_INTEGER_EXT GL_UNSIGNED_INT GL_INTENSITY32UI + GL_LUMINANCE_INTEGER_EXT GL_INT GL_INTENSITY32I + + GL_LUMINANCE_ALPHA_INTEGER_EXT GL_UNSIGNED_BYTE GL_LUMINANCE_ALPHA8UI + GL_LUMINANCE_ALPHA_INTEGER_EXT GL_BYTE GL_LUMINANCE_ALPHA8I + GL_LUMINANCE_ALPHA_INTEGER_EXT GL_UNSIGNED_SHORT GL_LUMINANCE_ALPHA16UI + GL_LUMINANCE_ALPHA_INTEGER_EXT GL_SHORT GL_LUMINANCE_ALPHA16I + GL_LUMINANCE_ALPHA_INTEGER_EXT GL_UNSIGNED_INT GL_LUMINANCE_ALPHA32UI + GL_LUMINANCE_ALPHA_INTEGER_EXT GL_INT GL_LUMINANCE_ALPHA32I + + GL_RGBA_INTEGER_EXT GL_UNSIGNED_BYTE GL_RGB8UI + GL_RGBA_INTEGER_EXT GL_BYTE GL_RGB8I + GL_RGBA_INTEGER_EXT GL_UNSIGNED_SHORT GL_RGB16UI + GL_RGBA_INTEGER_EXT GL_SHORT GL_RGB16I + GL_RGBA_INTEGER_EXT GL_UNSIGNED_INT GL_RGB32UI + GL_RGBA_INTEGER_EXT GL_INT GL_RGB32I + + GL_RGBA_INTEGER_EXT GL_UNSIGNED_BYTE GL_RGBA8UI + GL_RGBA_INTEGER_EXT GL_BYTE GL_RGBA8I + GL_RGBA_INTEGER_EXT GL_UNSIGNED_SHORT GL_RGBA16UI + GL_RGBA_INTEGER_EXT GL_SHORT GL_RGBA16I + GL_RGBA_INTEGER_EXT GL_UNSIGNED_INT GL_RGBA32UI + GL_RGBA_INTEGER_EXT GL_INT GL_RGBA32I + + // Additional supported formats for drivers that support ARB_texture_rg: + + GL_RED GL_UNSIGNED_BYTE GL_RED GL_R8 + GL_RED GL_UNSIGNED_SHORT GL_RED GL_R16 + GL_RED GL_HALF_APPLE GL_RED GL_R16F + GL_RED GL_FLOAT GL_RED GL_R32F + + GL_RG GL_UNSIGNED_BYTE GL_RG GL_RG8 + GL_RG GL_UNSIGNED_SHORT GL_RG GL_RG16 + GL_RG GL_HALF_APPLE GL_RG GL_R16F + GL_RG GL_FLOAT GL_RG GL_R32F + + GL_RED_INTEGER GL_UNSIGNED_BYTE GL_R8UI + GL_RED_INTEGER GL_BYTE GL_R8I + GL_RED_INTEGER GL_UNSIGNED_SHORT GL_R16UI + GL_RED_INTEGER GL_SHORT GL_R16I + GL_RED_INTEGER GL_UNSIGNED_INT GL_R32UI + GL_RED_INTEGER GL_INT GL_R32I + + GL_RG_INTEGER GL_UNSIGNED_BYTE GL_RG8UI + GL_RG_INTEGER GL_BYTE GL_RG8I + GL_RG_INTEGER GL_UNSIGNED_SHORT GL_RG16UI + GL_RG_INTEGER GL_SHORT GL_RG16I + GL_RG_INTEGER GL_UNSIGNED_INT GL_RG32UI + GL_RG_INTEGER GL_INT GL_RG32I + +*/ + +OPENGL_ASSUME_NONNULL_END + +#ifdef __cplusplus +} +#endif + +#endif /* _CGLSURFACE_H */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/CGLMacro.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/CGLMacro.h" new file mode 100644 index 0000000..9f9847a --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/CGLMacro.h" @@ -0,0 +1,2915 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _CGLMACRO_H +#define _CGLMACRO_H + +#ifdef __gl3_h_ +# ifndef __has_feature +# define __has_feature(X) 0 +# endif +# if !__has_feature(modules) +# error Can not include both gl3.h and CGLMacro.h simultaneously +# endif +#endif + +#include +#include +#include +#include + +/* Macro context name (CGLContextObj) */ +#if !defined(CGL_MACRO_CONTEXT) +#define CGL_MACRO_CONTEXT cgl_ctx +#endif + +/* Macro renderer name (GLIContext) */ +#if !defined(CGL_MACRO_RENDERER) +#define CGL_MACRO_RENDERER cgl_rend +#endif + +#define CGL_MACRO_DECLARE_CONTEXT() CGLContextObj CGL_MACRO_CONTEXT = CGLGetCurrentContext(); + +/* Repeated renderer lookups may be avoided by defining CGL_MACRO_CACHE_RENDERER before including CGLMacro.h. + Note: If you change the value of CGL_MACRO_CONTEXT partway through a function, you will have to + keep CGL_MACRO_RENDERER up to date with with it's context. */ +#if defined(CGL_MACRO_CACHE_RENDERER) +#define CGL_MACRO_DECLARE_RENDERER() GLIContext CGL_MACRO_RENDERER = CGL_MACRO_CONTEXT->rend; +#define CGL_MACRO_CONTEXT_RENDERER CGL_MACRO_RENDERER +#else +#define CGL_MACRO_DECLARE_RENDERER() +#define CGL_MACRO_CONTEXT_RENDERER CGL_MACRO_CONTEXT->rend +#endif + +/* Use the following function macro to declare the local CGLMacro variables */ +#define CGL_MACRO_DECLARE_VARIABLES() \ + CGL_MACRO_DECLARE_CONTEXT(); \ + CGL_MACRO_DECLARE_RENDERER(); + +/* This is for converting old non-arb handle definitions to ARB handle definitions for 64 bit compiles */ +#define CGL_HANDLE_ARB(handle) (GLhandleARB)((unsigned long)handle) + +/****************** OpenGL 1.1 Macros *****************************/ + +#define glAccum(op, value) \ + (*(CGL_MACRO_CONTEXT)->disp.accum)(CGL_MACRO_CONTEXT_RENDERER, op, value) + +#define glAlphaFunc(func, ref) \ + (*(CGL_MACRO_CONTEXT)->disp.alpha_func)(CGL_MACRO_CONTEXT_RENDERER, func, ref) + +#define glAreTexturesResident(n, textures, residences) \ + (*(CGL_MACRO_CONTEXT)->disp.are_textures_resident)(CGL_MACRO_CONTEXT_RENDERER, n, textures, residences) + +#define glArrayElement(i) \ + (*(CGL_MACRO_CONTEXT)->disp.array_element)(CGL_MACRO_CONTEXT_RENDERER, i) + +#define glBegin(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.begin)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glBindTexture(target, texture) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_texture)(CGL_MACRO_CONTEXT_RENDERER, target, texture) + +#define glBitmap(width, height, xorig, yorig, xmove, ymove, bmap) \ + (*(CGL_MACRO_CONTEXT)->disp.bitmap)(CGL_MACRO_CONTEXT_RENDERER, width, height, xorig, yorig, xmove, ymove, bmap) + +#define glBlendFunc(sfactor, dfactor) \ + (*(CGL_MACRO_CONTEXT)->disp.blend_func)(CGL_MACRO_CONTEXT_RENDERER, sfactor, dfactor) + +#define glCallList(list) \ + (*(CGL_MACRO_CONTEXT)->disp.call_list)(CGL_MACRO_CONTEXT_RENDERER, list) + +#define glCallLists(n, type, lists) \ + (*(CGL_MACRO_CONTEXT)->disp.call_lists)(CGL_MACRO_CONTEXT_RENDERER, n, type, lists) + +#define glClear(mask) \ + (*(CGL_MACRO_CONTEXT)->disp.clear)(CGL_MACRO_CONTEXT_RENDERER, mask) + +#define glClearAccum(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_accum)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glClearColor(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_color)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glClearDepth(depth) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_depth)(CGL_MACRO_CONTEXT_RENDERER, depth) + +#define glClearIndex(c) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_index)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glClearStencil(s) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_stencil)(CGL_MACRO_CONTEXT_RENDERER, s) + +#define glClipPlane(plane, equation) \ + (*(CGL_MACRO_CONTEXT)->disp.clip_plane)(CGL_MACRO_CONTEXT_RENDERER, plane, equation) + +#define glColor3b(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3b)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3bv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3bv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor3d(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3d)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor3f(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3f)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor3i(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3i)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor3s(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3s)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor3ub(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3ub)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3ubv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3ubv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor3ui(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3ui)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3uiv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3uiv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor3us(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.color3us)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glColor3usv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color3usv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4b(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4b)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4bv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4bv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4d(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4d)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4f(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4f)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4i(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4i)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4s(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4s)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4ub(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4ub)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4ubv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4ubv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4ui(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4ui)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4uiv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4uiv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColor4us(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color4us)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColor4usv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.color4usv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glColorMask(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.color_mask)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glColorMaterial(face, mode) \ + (*(CGL_MACRO_CONTEXT)->disp.color_material)(CGL_MACRO_CONTEXT_RENDERER, face, mode) + +#define glColorPointer(size, type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.color_pointer)(CGL_MACRO_CONTEXT_RENDERER, size, type, stride, pointer) + +#define glCopyPixels(x, y, width, height, type) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_pixels)(CGL_MACRO_CONTEXT_RENDERER, x, y, width, height, type) + +#define glCopyTexImage1D(target, level, internalFormat, x, y, width, border) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_tex_image1D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalFormat, x, y, width, border) + +#define glCopyTexImage2D(target, level, internalFormat, x, y, width, height, border) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_tex_image2D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalFormat, x, y, width, height, border) + +#define glCopyTexSubImage1D(target, level, xoffset, x, y, width) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_tex_sub_image1D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, x, y, width) + +#define glCopyTexSubImage2D(target, level, xoffset, yoffset, x, y, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_tex_sub_image2D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, yoffset, x, y, width, height) + +#define glCullFace(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.cull_face)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glDeleteLists(list, range) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_lists)(CGL_MACRO_CONTEXT_RENDERER, list, range) + +#define glDeleteTextures(n, textures) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_textures)(CGL_MACRO_CONTEXT_RENDERER, n, textures) + +#define glDepthFunc(func) \ + (*(CGL_MACRO_CONTEXT)->disp.depth_func)(CGL_MACRO_CONTEXT_RENDERER, func) + +#define glDepthMask(flag) \ + (*(CGL_MACRO_CONTEXT)->disp.depth_mask)(CGL_MACRO_CONTEXT_RENDERER, flag) + +#define glDepthRange(zNear, zFar) \ + (*(CGL_MACRO_CONTEXT)->disp.depth_range)(CGL_MACRO_CONTEXT_RENDERER, zNear, zFar) + +#define glDisable(cap) \ + (*(CGL_MACRO_CONTEXT)->disp.disable)(CGL_MACRO_CONTEXT_RENDERER, cap) + +#define glDisableClientState(array) \ + (*(CGL_MACRO_CONTEXT)->disp.disable_client_state)(CGL_MACRO_CONTEXT_RENDERER, array) + +#define glDrawArrays(mode, first, count) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_arrays)(CGL_MACRO_CONTEXT_RENDERER, mode, first, count) + +#define glDrawBuffer(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_buffer)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glDrawElements(mode, count, type, indices) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_elements)(CGL_MACRO_CONTEXT_RENDERER, mode, count, type, indices) + +#define glDrawPixels(width, height, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_pixels)(CGL_MACRO_CONTEXT_RENDERER, width, height, format, type, pixels) + +#define glEdgeFlag(flag) \ + (*(CGL_MACRO_CONTEXT)->disp.edge_flag)(CGL_MACRO_CONTEXT_RENDERER, flag) + +#define glEdgeFlagPointer(stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.edge_flag_pointer)(CGL_MACRO_CONTEXT_RENDERER, stride, pointer) + +#define glEdgeFlagv(flag) \ + (*(CGL_MACRO_CONTEXT)->disp.edge_flagv)(CGL_MACRO_CONTEXT_RENDERER, flag) + +#define glEnable(cap) \ + (*(CGL_MACRO_CONTEXT)->disp.enable)(CGL_MACRO_CONTEXT_RENDERER, cap) + +#define glEnableClientState(array) \ + (*(CGL_MACRO_CONTEXT)->disp.enable_client_state)(CGL_MACRO_CONTEXT_RENDERER, array) + +#define glEnd() \ + (*(CGL_MACRO_CONTEXT)->disp.end)(CGL_MACRO_CONTEXT_RENDERER) + +#define glEndList() \ + (*(CGL_MACRO_CONTEXT)->disp.end_list)(CGL_MACRO_CONTEXT_RENDERER) + +#define glEvalCoord1d(u) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord1d)(CGL_MACRO_CONTEXT_RENDERER, u) + +#define glEvalCoord1dv(u) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord1dv)(CGL_MACRO_CONTEXT_RENDERER, u) + +#define glEvalCoord1f(u) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord1f)(CGL_MACRO_CONTEXT_RENDERER, u) + +#define glEvalCoord1fv(u) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord1fv)(CGL_MACRO_CONTEXT_RENDERER, u) + +#define glEvalCoord2d(u, v) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord2d)(CGL_MACRO_CONTEXT_RENDERER, u, v) + +#define glEvalCoord2dv(u) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord2dv)(CGL_MACRO_CONTEXT_RENDERER, u) + +#define glEvalCoord2f(u, v) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord2f)(CGL_MACRO_CONTEXT_RENDERER, u, v) + +#define glEvalCoord2fv(u) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_coord2fv)(CGL_MACRO_CONTEXT_RENDERER, u) + +#define glEvalMesh1(mode, i1, i2) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_mesh1)(CGL_MACRO_CONTEXT_RENDERER, mode, i1, i2) + +#define glEvalMesh2(mode, i1, i2, j1, j2) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_mesh2)(CGL_MACRO_CONTEXT_RENDERER, mode, i1, i2, j1, j2) + +#define glEvalPoint1(i) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_point1)(CGL_MACRO_CONTEXT_RENDERER, i) + +#define glEvalPoint2(i, j) \ + (*(CGL_MACRO_CONTEXT)->disp.eval_point2)(CGL_MACRO_CONTEXT_RENDERER, i, j) + +#define glFeedbackBuffer(size, type, buffer) \ + (*(CGL_MACRO_CONTEXT)->disp.feedback_buffer)(CGL_MACRO_CONTEXT_RENDERER, size, type, buffer) + +#define glFinish() \ + (*(CGL_MACRO_CONTEXT)->disp.finish)(CGL_MACRO_CONTEXT_RENDERER) + +#define glFlush() \ + (*(CGL_MACRO_CONTEXT)->disp.flush)(CGL_MACRO_CONTEXT_RENDERER) + +#define glFogf(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.fogf)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glFogfv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.fogfv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glFogi(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.fogi)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glFogiv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.fogiv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glFrontFace(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.front_face)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glFrustum(left, right, bottom, top, zNear, zFar) \ + (*(CGL_MACRO_CONTEXT)->disp.frustum)(CGL_MACRO_CONTEXT_RENDERER, left, right, bottom, top, zNear, zFar) + +#define glGenLists(range) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_lists)(CGL_MACRO_CONTEXT_RENDERER, range) + +#define glGenTextures(n, textures) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_textures)(CGL_MACRO_CONTEXT_RENDERER, n, textures) + +#define glGetBooleanv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_booleanv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glGetClipPlane(plane, equation) \ + (*(CGL_MACRO_CONTEXT)->disp.get_clip_plane)(CGL_MACRO_CONTEXT_RENDERER, plane, equation) + +#define glGetDoublev(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_doublev)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glGetError() \ + (*(CGL_MACRO_CONTEXT)->disp.get_error)(CGL_MACRO_CONTEXT_RENDERER) + +#define glGetFloatv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_floatv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glGetIntegerv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_integerv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glGetLightfv(light, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_lightfv)(CGL_MACRO_CONTEXT_RENDERER, light, pname, params) + +#define glGetLightiv(light, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_lightiv)(CGL_MACRO_CONTEXT_RENDERER, light, pname, params) + +#define glGetMapdv(target, query, v) \ + (*(CGL_MACRO_CONTEXT)->disp.get_mapdv)(CGL_MACRO_CONTEXT_RENDERER, target, query, v) + +#define glGetMapfv(target, query, v) \ + (*(CGL_MACRO_CONTEXT)->disp.get_mapfv)(CGL_MACRO_CONTEXT_RENDERER, target, query, v) + +#define glGetMapiv(target, query, v) \ + (*(CGL_MACRO_CONTEXT)->disp.get_mapiv)(CGL_MACRO_CONTEXT_RENDERER, target, query, v) + +#define glGetMaterialfv(face, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_materialfv)(CGL_MACRO_CONTEXT_RENDERER, face, pname, params) + +#define glGetMaterialiv(face, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_materialiv)(CGL_MACRO_CONTEXT_RENDERER, face, pname, params) + +#define glGetPixelMapfv(map, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_pixel_mapfv)(CGL_MACRO_CONTEXT_RENDERER, map, values) + +#define glGetPixelMapuiv(map, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_pixel_mapuiv)(CGL_MACRO_CONTEXT_RENDERER, map, values) + +#define glGetPixelMapusv(map, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_pixel_mapusv)(CGL_MACRO_CONTEXT_RENDERER, map, values) + +#define glGetPointerv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_pointerv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glGetPolygonStipple(mask) \ + (*(CGL_MACRO_CONTEXT)->disp.get_polygon_stipple)(CGL_MACRO_CONTEXT_RENDERER, mask) + +#define glGetString(name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_string)(CGL_MACRO_CONTEXT_RENDERER, name) + +#define glGetTexEnvfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_envfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetTexEnviv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_enviv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetTexGendv(coord, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_gendv)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, params) + +#define glGetTexGenfv(coord, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_genfv)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, params) + +#define glGetTexGeniv(coord, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_geniv)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, params) + +#define glGetTexImage(target, level, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_image)(CGL_MACRO_CONTEXT_RENDERER, target, level, format, type, pixels) + +#define glGetTexLevelParameterfv(target, level, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_level_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, level, pname, params) + +#define glGetTexLevelParameteriv(target, level, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_level_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, level, pname, params) + +#define glGetTexParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetTexParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glHint(target, mode) \ + (*(CGL_MACRO_CONTEXT)->disp.hint)(CGL_MACRO_CONTEXT_RENDERER, target, mode) + +#define glIndexMask(mask) \ + (*(CGL_MACRO_CONTEXT)->disp.index_mask)(CGL_MACRO_CONTEXT_RENDERER, mask) + +#define glIndexPointer(type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.index_pointer)(CGL_MACRO_CONTEXT_RENDERER, type, stride, pointer) + +#define glIndexd(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexd)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexdv(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexdv)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexf(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexf)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexfv(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexfv)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexi(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexi)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexiv(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexiv)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexs(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexs)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexsv(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexsv)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexub(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexub)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glIndexubv(c) \ + (*(CGL_MACRO_CONTEXT)->disp.indexubv)(CGL_MACRO_CONTEXT_RENDERER, c) + +#define glInitNames() \ + (*(CGL_MACRO_CONTEXT)->disp.init_names)(CGL_MACRO_CONTEXT_RENDERER) + +#define glInterleavedArrays(format, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.interleaved_arrays)(CGL_MACRO_CONTEXT_RENDERER, format, stride, pointer) + +#define glIsEnabled(cap) \ + (*(CGL_MACRO_CONTEXT)->disp.is_enabled)(CGL_MACRO_CONTEXT_RENDERER, cap) + +#define glIsList(list) \ + (*(CGL_MACRO_CONTEXT)->disp.is_list)(CGL_MACRO_CONTEXT_RENDERER, list) + +#define glIsTexture(texture) \ + (*(CGL_MACRO_CONTEXT)->disp.is_texture)(CGL_MACRO_CONTEXT_RENDERER, texture) + +#define glLightModelf(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.light_modelf)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glLightModelfv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.light_modelfv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glLightModeli(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.light_modeli)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glLightModeliv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.light_modeliv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glLightf(light, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.lightf)(CGL_MACRO_CONTEXT_RENDERER, light, pname, param) + +#define glLightfv(light, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.lightfv)(CGL_MACRO_CONTEXT_RENDERER, light, pname, params) + +#define glLighti(light, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.lighti)(CGL_MACRO_CONTEXT_RENDERER, light, pname, param) + +#define glLightiv(light, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.lightiv)(CGL_MACRO_CONTEXT_RENDERER, light, pname, params) + +#define glLineStipple(factor, pattern) \ + (*(CGL_MACRO_CONTEXT)->disp.line_stipple)(CGL_MACRO_CONTEXT_RENDERER, factor, pattern) + +#define glLineWidth(width) \ + (*(CGL_MACRO_CONTEXT)->disp.line_width)(CGL_MACRO_CONTEXT_RENDERER, width) + +#define glListBase(base) \ + (*(CGL_MACRO_CONTEXT)->disp.list_base)(CGL_MACRO_CONTEXT_RENDERER, base) + +#define glLoadIdentity() \ + (*(CGL_MACRO_CONTEXT)->disp.load_identity)(CGL_MACRO_CONTEXT_RENDERER) + +#define glLoadMatrixd(m) \ + (*(CGL_MACRO_CONTEXT)->disp.load_matrixd)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glLoadMatrixf(m) \ + (*(CGL_MACRO_CONTEXT)->disp.load_matrixf)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glLoadName(name) \ + (*(CGL_MACRO_CONTEXT)->disp.load_name)(CGL_MACRO_CONTEXT_RENDERER, name) + +#define glLogicOp(opcode) \ + (*(CGL_MACRO_CONTEXT)->disp.logic_op)(CGL_MACRO_CONTEXT_RENDERER, opcode) + +#define glMap1d(target, u1, u2, stride, order, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map1d)(CGL_MACRO_CONTEXT_RENDERER, target, u1, u2, stride, order, points) + +#define glMap1f(target, u1, u2, stride, order, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map1f)(CGL_MACRO_CONTEXT_RENDERER, target, u1, u2, stride, order, points) + +#define glMap2d(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map2d)(CGL_MACRO_CONTEXT_RENDERER, target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) + +#define glMap2f(target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map2f)(CGL_MACRO_CONTEXT_RENDERER, target, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) + +#define glMapGrid1d(un, u1, u2) \ + (*(CGL_MACRO_CONTEXT)->disp.map_grid1d)(CGL_MACRO_CONTEXT_RENDERER, un, u1, u2) + +#define glMapGrid1f(un, u1, u2) \ + (*(CGL_MACRO_CONTEXT)->disp.map_grid1f)(CGL_MACRO_CONTEXT_RENDERER, un, u1, u2) + +#define glMapGrid2d(un, u1, u2, vn, v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.map_grid2d)(CGL_MACRO_CONTEXT_RENDERER, un, u1, u2, vn, v1, v2) + +#define glMapGrid2f(un, u1, u2, vn, v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.map_grid2f)(CGL_MACRO_CONTEXT_RENDERER, un, u1, u2, vn, v1, v2) + +#define glMaterialf(face, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.materialf)(CGL_MACRO_CONTEXT_RENDERER, face, pname, param) + +#define glMaterialfv(face, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.materialfv)(CGL_MACRO_CONTEXT_RENDERER, face, pname, params) + +#define glMateriali(face, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.materiali)(CGL_MACRO_CONTEXT_RENDERER, face, pname, param) + +#define glMaterialiv(face, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.materialiv)(CGL_MACRO_CONTEXT_RENDERER, face, pname, params) + +#define glMatrixMode(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.matrix_mode)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glMultMatrixd(m) \ + (*(CGL_MACRO_CONTEXT)->disp.mult_matrixd)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glMultMatrixf(m) \ + (*(CGL_MACRO_CONTEXT)->disp.mult_matrixf)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glNewList(list, mode) \ + (*(CGL_MACRO_CONTEXT)->disp.new_list)(CGL_MACRO_CONTEXT_RENDERER, list, mode) + +#define glNormal3b(nx, ny, nz) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3b)(CGL_MACRO_CONTEXT_RENDERER, nx, ny, nz) + +#define glNormal3bv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3bv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glNormal3d(nx, ny, nz) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3d)(CGL_MACRO_CONTEXT_RENDERER, nx, ny, nz) + +#define glNormal3dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glNormal3f(nx, ny, nz) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3f)(CGL_MACRO_CONTEXT_RENDERER, nx, ny, nz) + +#define glNormal3fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glNormal3i(nx, ny, nz) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3i)(CGL_MACRO_CONTEXT_RENDERER, nx, ny, nz) + +#define glNormal3iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glNormal3s(nx, ny, nz) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3s)(CGL_MACRO_CONTEXT_RENDERER, nx, ny, nz) + +#define glNormal3sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.normal3sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glNormalPointer(type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.normal_pointer)(CGL_MACRO_CONTEXT_RENDERER, type, stride, pointer) + +#define glOrtho(left, right, bottom, top, zNear, zFar) \ + (*(CGL_MACRO_CONTEXT)->disp.ortho)(CGL_MACRO_CONTEXT_RENDERER, left, right, bottom, top, zNear, zFar) + +#define glPassThrough(token) \ + (*(CGL_MACRO_CONTEXT)->disp.pass_through)(CGL_MACRO_CONTEXT_RENDERER, token) + +#define glPixelMapfv(map, mapsize, values) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_mapfv)(CGL_MACRO_CONTEXT_RENDERER, map, mapsize, values) + +#define glPixelMapuiv(map, mapsize, values) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_mapuiv)(CGL_MACRO_CONTEXT_RENDERER, map, mapsize, values) + +#define glPixelMapusv(map, mapsize, values) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_mapusv)(CGL_MACRO_CONTEXT_RENDERER, map, mapsize, values) + +#define glPixelStoref(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_storef)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glPixelStorei(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_storei)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glPixelTransferf(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_transferf)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glPixelTransferi(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_transferi)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glPixelZoom(xfactor, yfactor) \ + (*(CGL_MACRO_CONTEXT)->disp.pixel_zoom)(CGL_MACRO_CONTEXT_RENDERER, xfactor, yfactor) + +#define glPointSize(size) \ + (*(CGL_MACRO_CONTEXT)->disp.point_size)(CGL_MACRO_CONTEXT_RENDERER, size) + +#define glPolygonMode(face, mode) \ + (*(CGL_MACRO_CONTEXT)->disp.polygon_mode)(CGL_MACRO_CONTEXT_RENDERER, face, mode) + +#define glPolygonOffset(factor, units) \ + (*(CGL_MACRO_CONTEXT)->disp.polygon_offset)(CGL_MACRO_CONTEXT_RENDERER, factor, units) + +#define glPolygonStipple(mask) \ + (*(CGL_MACRO_CONTEXT)->disp.polygon_stipple)(CGL_MACRO_CONTEXT_RENDERER, mask) + +#define glPopAttrib() \ + (*(CGL_MACRO_CONTEXT)->disp.pop_attrib)(CGL_MACRO_CONTEXT_RENDERER) + +#define glPopClientAttrib() \ + (*(CGL_MACRO_CONTEXT)->disp.pop_client_attrib)(CGL_MACRO_CONTEXT_RENDERER) + +#define glPopMatrix() \ + (*(CGL_MACRO_CONTEXT)->disp.pop_matrix)(CGL_MACRO_CONTEXT_RENDERER) + +#define glPopName() \ + (*(CGL_MACRO_CONTEXT)->disp.pop_name)(CGL_MACRO_CONTEXT_RENDERER) + +#define glPrioritizeTextures(n, textures, priorities) \ + (*(CGL_MACRO_CONTEXT)->disp.prioritize_textures)(CGL_MACRO_CONTEXT_RENDERER, n, textures, priorities) + +#define glPushAttrib(mask) \ + (*(CGL_MACRO_CONTEXT)->disp.push_attrib)(CGL_MACRO_CONTEXT_RENDERER, mask) + +#define glPushClientAttrib(mask) \ + (*(CGL_MACRO_CONTEXT)->disp.push_client_attrib)(CGL_MACRO_CONTEXT_RENDERER, mask) + +#define glPushMatrix() \ + (*(CGL_MACRO_CONTEXT)->disp.push_matrix)(CGL_MACRO_CONTEXT_RENDERER) + +#define glPushName(name) \ + (*(CGL_MACRO_CONTEXT)->disp.push_name)(CGL_MACRO_CONTEXT_RENDERER, name) + +#define glRasterPos2d(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2d)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glRasterPos2dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos2f(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2f)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glRasterPos2fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos2i(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2i)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glRasterPos2iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos2s(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2s)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glRasterPos2sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos2sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos3d(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3d)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glRasterPos3dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos3f(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3f)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glRasterPos3fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos3i(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3i)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glRasterPos3iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos3s(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3s)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glRasterPos3sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos3sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos4d(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4d)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glRasterPos4dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos4f(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4f)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glRasterPos4fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos4i(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4i)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glRasterPos4iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glRasterPos4s(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4s)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glRasterPos4sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.raster_pos4sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glReadBuffer(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.read_buffer)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glReadPixels(x, y, width, height, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.read_pixels)(CGL_MACRO_CONTEXT_RENDERER, x, y, width, height, format, type, pixels) + +#define glRectd(x1, y1, x2, y2) \ + (*(CGL_MACRO_CONTEXT)->disp.rectd)(CGL_MACRO_CONTEXT_RENDERER, x1, y1, x2, y2) + +#define glRectdv(v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.rectdv)(CGL_MACRO_CONTEXT_RENDERER, v1, v2) + +#define glRectf(x1, y1, x2, y2) \ + (*(CGL_MACRO_CONTEXT)->disp.rectf)(CGL_MACRO_CONTEXT_RENDERER, x1, y1, x2, y2) + +#define glRectfv(v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.rectfv)(CGL_MACRO_CONTEXT_RENDERER, v1, v2) + +#define glRecti(x1, y1, x2, y2) \ + (*(CGL_MACRO_CONTEXT)->disp.recti)(CGL_MACRO_CONTEXT_RENDERER, x1, y1, x2, y2) + +#define glRectiv(v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.rectiv)(CGL_MACRO_CONTEXT_RENDERER, v1, v2) + +#define glRects(x1, y1, x2, y2) \ + (*(CGL_MACRO_CONTEXT)->disp.rects)(CGL_MACRO_CONTEXT_RENDERER, x1, y1, x2, y2) + +#define glRectsv(v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.rectsv)(CGL_MACRO_CONTEXT_RENDERER, v1, v2) + +#define glRenderMode(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.render_mode)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glRotated(angle, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.rotated)(CGL_MACRO_CONTEXT_RENDERER, angle, x, y, z) + +#define glRotatef(angle, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.rotatef)(CGL_MACRO_CONTEXT_RENDERER, angle, x, y, z) + +#define glScaled(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.scaled)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glScalef(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.scalef)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glScissor(x, y, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.scissor)(CGL_MACRO_CONTEXT_RENDERER, x, y, width, height) + +#define glSelectBuffer(size, buffer) \ + (*(CGL_MACRO_CONTEXT)->disp.select_buffer)(CGL_MACRO_CONTEXT_RENDERER, size, buffer) + +#define glShadeModel(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.shade_model)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glStencilFunc(func, ref, mask) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_func)(CGL_MACRO_CONTEXT_RENDERER, func, ref, mask) + +#define glStencilMask(mask) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_mask)(CGL_MACRO_CONTEXT_RENDERER, mask) + +#define glStencilOp(fail, zfail, zpass) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_op)(CGL_MACRO_CONTEXT_RENDERER, fail, zfail, zpass) + +#define glTexCoord1d(s) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1d)(CGL_MACRO_CONTEXT_RENDERER, s) + +#define glTexCoord1dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord1f(s) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1f)(CGL_MACRO_CONTEXT_RENDERER, s) + +#define glTexCoord1fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord1i(s) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1i)(CGL_MACRO_CONTEXT_RENDERER, s) + +#define glTexCoord1iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord1s(s) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1s)(CGL_MACRO_CONTEXT_RENDERER, s) + +#define glTexCoord1sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord1sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord2d(s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2d)(CGL_MACRO_CONTEXT_RENDERER, s, t) + +#define glTexCoord2dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord2f(s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2f)(CGL_MACRO_CONTEXT_RENDERER, s, t) + +#define glTexCoord2fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord2i(s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2i)(CGL_MACRO_CONTEXT_RENDERER, s, t) + +#define glTexCoord2iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord2s(s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2s)(CGL_MACRO_CONTEXT_RENDERER, s, t) + +#define glTexCoord2sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord2sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord3d(s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3d)(CGL_MACRO_CONTEXT_RENDERER, s, t, r) + +#define glTexCoord3dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord3f(s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3f)(CGL_MACRO_CONTEXT_RENDERER, s, t, r) + +#define glTexCoord3fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord3i(s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3i)(CGL_MACRO_CONTEXT_RENDERER, s, t, r) + +#define glTexCoord3iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord3s(s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3s)(CGL_MACRO_CONTEXT_RENDERER, s, t, r) + +#define glTexCoord3sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord3sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord4d(s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4d)(CGL_MACRO_CONTEXT_RENDERER, s, t, r, q) + +#define glTexCoord4dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord4f(s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4f)(CGL_MACRO_CONTEXT_RENDERER, s, t, r, q) + +#define glTexCoord4fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord4i(s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4i)(CGL_MACRO_CONTEXT_RENDERER, s, t, r, q) + +#define glTexCoord4iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoord4s(s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4s)(CGL_MACRO_CONTEXT_RENDERER, s, t, r, q) + +#define glTexCoord4sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord4sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glTexCoordPointer(size, type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_coord_pointer)(CGL_MACRO_CONTEXT_RENDERER, size, type, stride, pointer) + +#define glTexEnvf(target, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_envf)(CGL_MACRO_CONTEXT_RENDERER, target, pname, param) + +#define glTexEnvfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_envfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glTexEnvi(target, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_envi)(CGL_MACRO_CONTEXT_RENDERER, target, pname, param) + +#define glTexEnviv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_enviv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glTexGend(coord, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_gend)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, param) + +#define glTexGendv(coord, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_gendv)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, params) + +#define glTexGenf(coord, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_genf)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, param) + +#define glTexGenfv(coord, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_genfv)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, params) + +#define glTexGeni(coord, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_geni)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, param) + +#define glTexGeniv(coord, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_geniv)(CGL_MACRO_CONTEXT_RENDERER, coord, pname, params) + +#define glTexImage1D(target, level, internalformat, width, border, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_image1D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalformat, width, border, format, type, pixels) + +#define glTexImage2D(target, level, internalformat, width, height, border, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_image2D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalformat, width, height, border, format, type, pixels) + +#define glTexParameterf(target, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_parameterf)(CGL_MACRO_CONTEXT_RENDERER, target, pname, param) + +#define glTexParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glTexParameteri(target, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_parameteri)(CGL_MACRO_CONTEXT_RENDERER, target, pname, param) + +#define glTexParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glTexSubImage1D(target, level, xoffset, width, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_sub_image1D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, width, format, type, pixels) + +#define glTexSubImage2D(target, level, xoffset, yoffset, width, height, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_sub_image2D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, yoffset, width, height, format, type, pixels) + +#define glTranslated(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.translated)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glTranslatef(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.translatef)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glVertex2d(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2d)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glVertex2dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex2f(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2f)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glVertex2fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex2i(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2i)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glVertex2iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex2s(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2s)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glVertex2sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex2sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex3d(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3d)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glVertex3dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex3f(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3f)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glVertex3fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex3i(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3i)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glVertex3iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex3s(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3s)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glVertex3sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex3sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex4d(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4d)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glVertex4dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex4f(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4f)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glVertex4fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex4i(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4i)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glVertex4iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertex4s(x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4s)(CGL_MACRO_CONTEXT_RENDERER, x, y, z, w) + +#define glVertex4sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex4sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glVertexPointer(size, type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_pointer)(CGL_MACRO_CONTEXT_RENDERER, size, type, stride, pointer) + +#define glViewport(x, y, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.viewport)(CGL_MACRO_CONTEXT_RENDERER, x, y, width, height) + +/****************** OpenGL 1.2 ************************************/ + +#define glBlendColor(red, green, blue, alpha) \ + (*(CGL_MACRO_CONTEXT)->disp.blend_color)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue, alpha) + +#define glBlendEquation(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.blend_equation)(CGL_MACRO_CONTEXT_RENDERER, mode) + +#define glDrawRangeElements(mode, start, end, count, type, indices) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_range_elements)(CGL_MACRO_CONTEXT_RENDERER, mode, start, end, count, type, indices) + +#define glTexImage3D(target, level, internalformat, width, height, depth, border, format, type, data) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_image3D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalformat, width, height, depth, border, format, type, data) + +#define glTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_sub_image3D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, yoffset, zoffset, width, height, depth, format, type, pixels) + +#define glCopyTexSubImage3D(target, level, xoffset, yoffset, zoffset, x, y, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_tex_sub_image3D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, yoffset, zoffset, x, y, width, height) + +/****************** OpenGL 1.2 Imaging Subset *********************/ + +#define glColorTable(target, internalformat, width, format, type, table) \ + (*(CGL_MACRO_CONTEXT)->disp.color_table)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, width, format, type, table) + +#define glColorTableParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.color_table_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glColorTableParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.color_table_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glCopyColorTable(target, internalformat, x, y, width) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_color_table)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, x, y, width) + +#define glGetColorTable(target, format, type, table) \ + (*(CGL_MACRO_CONTEXT)->disp.get_color_table)(CGL_MACRO_CONTEXT_RENDERER, target, format, type, table) + +#define glGetColorTableParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_color_table_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetColorTableParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_color_table_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glColorSubTable(target, start, count, format, type, data) \ + (*(CGL_MACRO_CONTEXT)->disp.color_sub_table)(CGL_MACRO_CONTEXT_RENDERER, target, start, count, format, type, data) + +#define glCopyColorSubTable(target, start, x, y, width) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_color_sub_table)(CGL_MACRO_CONTEXT_RENDERER, target, start, x, y, width) + +#define glConvolutionFilter1D(target, internalformat, width, format, type, image) \ + (*(CGL_MACRO_CONTEXT)->disp.convolution_filter1D)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, width, format, type, image) + +#define glConvolutionFilter2D(target, internalformat, width, height, format, type, image) \ + (*(CGL_MACRO_CONTEXT)->disp.convolution_filter2D)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, width, height, format, type, image) + +#define glConvolutionParameterf(target, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.convolution_parameterf)(CGL_MACRO_CONTEXT_RENDERER, target, pname, param) + +#define glConvolutionParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.convolution_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glConvolutionParameteri(target, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.convolution_parameteri)(CGL_MACRO_CONTEXT_RENDERER, target, pname, param) + +#define glConvolutionParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.convolution_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glCopyConvolutionFilter1D(target, internalformat, x, y, width) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_convolution_filter1D)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, x, y, width) + +#define glCopyConvolutionFilter2D(target, internalformat, x, y, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.copy_convolution_filter2D)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, x, y, width, height) + +#define glGetConvolutionFilter(target, format, type, image) \ + (*(CGL_MACRO_CONTEXT)->disp.get_convolution_filter)(CGL_MACRO_CONTEXT_RENDERER, target, format, type, image) + +#define glGetConvolutionParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_convolution_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetConvolutionParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_convolution_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetSeparableFilter(target, format, type, row, column, span) \ + (*(CGL_MACRO_CONTEXT)->disp.get_separable_filter)(CGL_MACRO_CONTEXT_RENDERER, target, format, type, row, column, span) + +#define glSeparableFilter2D(target, internalformat, width, height, format, type, row, column) \ + (*(CGL_MACRO_CONTEXT)->disp.separable_filter2D)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, width, height, format, type, row, column) + +#define glGetHistogram(target, reset, format, type, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_histogram)(CGL_MACRO_CONTEXT_RENDERER, target, reset, format, type, values) + +#define glGetHistogramParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_histogram_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetHistogramParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_histogram_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetMinmax(target, reset, format, type, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_minmax)(CGL_MACRO_CONTEXT_RENDERER, target, reset, format, type, values) + +#define glGetMinmaxParameterfv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_minmax_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetMinmaxParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_minmax_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glHistogram(target, width, internalformat, sink) \ + (*(CGL_MACRO_CONTEXT)->disp.histogram)(CGL_MACRO_CONTEXT_RENDERER, target, width, internalformat, sink) + +#define glMinmax(target, internalformat, sink) \ + (*(CGL_MACRO_CONTEXT)->disp.minmax)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, sink) + +#define glResetHistogram(target) \ + (*(CGL_MACRO_CONTEXT)->disp.reset_histogram)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glResetMinmax(target) \ + (*(CGL_MACRO_CONTEXT)->disp.reset_minmax)(CGL_MACRO_CONTEXT_RENDERER, target) + +/****************** OpenGL 1.3 ************************************/ + +#define glClientActiveTexture(target) \ + (*(CGL_MACRO_CONTEXT)->disp.client_active_texture)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glActiveTexture(target) \ + (*(CGL_MACRO_CONTEXT)->disp.active_texture)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glMultiTexCoord1d(target, s) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1d)(CGL_MACRO_CONTEXT_RENDERER, target, s) + +#define glMultiTexCoord1dv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1dv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord1f(target, s) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1f)(CGL_MACRO_CONTEXT_RENDERER, target, s) + +#define glMultiTexCoord1fv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1fv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord1i(target, s) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1i)(CGL_MACRO_CONTEXT_RENDERER, target, s) + +#define glMultiTexCoord1iv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1iv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord1s(target, s) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1s)(CGL_MACRO_CONTEXT_RENDERER, target, s) + +#define glMultiTexCoord1sv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord1sv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord2d(target, s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2d)(CGL_MACRO_CONTEXT_RENDERER, target, s, t) + +#define glMultiTexCoord2dv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2dv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord2f(target, s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2f)(CGL_MACRO_CONTEXT_RENDERER, target, s, t) + +#define glMultiTexCoord2fv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2fv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord2i(target, s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2i)(CGL_MACRO_CONTEXT_RENDERER, target, s, t) + +#define glMultiTexCoord2iv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2iv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord2s(target, s, t) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2s)(CGL_MACRO_CONTEXT_RENDERER, target, s, t) + +#define glMultiTexCoord2sv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord2sv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord3d(target, s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3d)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r) + +#define glMultiTexCoord3dv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3dv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord3f(target, s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3f)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r) + +#define glMultiTexCoord3fv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3fv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord3i(target, s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3i)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r) + +#define glMultiTexCoord3iv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3iv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord3s(target, s, t, r) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3s)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r) + +#define glMultiTexCoord3sv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord3sv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord4d(target, s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4d)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r, q) + +#define glMultiTexCoord4dv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4dv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord4f(target, s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4f)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r, q) + +#define glMultiTexCoord4fv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4fv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord4i(target, s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4i)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r, q) + +#define glMultiTexCoord4iv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4iv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glMultiTexCoord4s(target, s, t, r, q) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4s)(CGL_MACRO_CONTEXT_RENDERER, target, s, t, r, q) + +#define glMultiTexCoord4sv(target, v) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_tex_coord4sv)(CGL_MACRO_CONTEXT_RENDERER, target, v) + +#define glSampleCoverage(value, invert) \ + (*(CGL_MACRO_CONTEXT)->disp.sample_coverage)(CGL_MACRO_CONTEXT_RENDERER, value, invert) + +#define glLoadTransposeMatrixf(m) \ + (*(CGL_MACRO_CONTEXT)->disp.load_transpose_matrixf)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glLoadTransposeMatrixd(m) \ + (*(CGL_MACRO_CONTEXT)->disp.load_transpose_matrixd)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glMultTransposeMatrixf(m) \ + (*(CGL_MACRO_CONTEXT)->disp.mult_transpose_matrixf)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glMultTransposeMatrixd(m) \ + (*(CGL_MACRO_CONTEXT)->disp.mult_transpose_matrixd)(CGL_MACRO_CONTEXT_RENDERER, m) + +#define glCompressedTexImage3D(target, level, internalformat, width, height, depth, border, imageSize, data) \ + (*(CGL_MACRO_CONTEXT)->disp.compressed_tex_image3D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalformat, width, height, depth, border, imageSize, data) + +#define glCompressedTexImage2D(target, level, internalformat, width, height, border, imageSize, data) \ + (*(CGL_MACRO_CONTEXT)->disp.compressed_tex_image2D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalformat, width, height, border, imageSize, data) + +#define glCompressedTexImage1D(target, level, internalformat, width, border, imageSize, data) \ + (*(CGL_MACRO_CONTEXT)->disp.compressed_tex_image1D)(CGL_MACRO_CONTEXT_RENDERER, target, level, internalformat, width, border, imageSize, data) + +#define glCompressedTexSubImage3D(target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data) \ + (*(CGL_MACRO_CONTEXT)->disp.compressed_tex_sub_image3D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, yoffset, zoffset, width, height, depth, format, imageSize, data) + +#define glCompressedTexSubImage2D(target, level, xoffset, yoffset, width, height, format, imageSize, data) \ + (*(CGL_MACRO_CONTEXT)->disp.compressed_tex_sub_image2D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, yoffset, width, height, format, imageSize, data) + +#define glCompressedTexSubImage1D(target, level, xoffset, width, format, imageSize, data) \ + (*(CGL_MACRO_CONTEXT)->disp.compressed_tex_sub_image1D)(CGL_MACRO_CONTEXT_RENDERER, target, level, xoffset, width, format, imageSize, data) + +#define glGetCompressedTexImage(target, level, img) \ + (*(CGL_MACRO_CONTEXT)->disp.get_compressed_tex_image)(CGL_MACRO_CONTEXT_RENDERER, target, level, img) + +/****************** OpenGL 1.4 ************************************/ + +#define glFogCoordf(coord) \ + (*(CGL_MACRO_CONTEXT)->disp.fog_coordf)(CGL_MACRO_CONTEXT_RENDERER, coord) + +#define glFogCoordfv(coord) \ + (*(CGL_MACRO_CONTEXT)->disp.fog_coordfv)(CGL_MACRO_CONTEXT_RENDERER, coord) + +#define glFogCoordd(coord) \ + (*(CGL_MACRO_CONTEXT)->disp.fog_coordd)(CGL_MACRO_CONTEXT_RENDERER, coord) + +#define glFogCoorddv(coord) \ + (*(CGL_MACRO_CONTEXT)->disp.fog_coorddv)(CGL_MACRO_CONTEXT_RENDERER,coord) + +#define glFogCoordPointer(type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.fog_coord_pointer)(CGL_MACRO_CONTEXT_RENDERER, type, stride, pointer) + +#define glSecondaryColor3b(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3b)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3bv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3bv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColor3d(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3d)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3dv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3dv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColor3f(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3f)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3fv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3fv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColor3i(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3i)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3iv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3iv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColor3s(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3s)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3sv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3sv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColor3ub(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3ub)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3ubv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3ubv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColor3ui(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3ui)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3uiv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3uiv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColor3us(red, green, blue) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3us)(CGL_MACRO_CONTEXT_RENDERER, red, green, blue) + +#define glSecondaryColor3usv(components) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color3usv)(CGL_MACRO_CONTEXT_RENDERER, components) + +#define glSecondaryColorPointer(size, type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.secondary_color_pointer)(CGL_MACRO_CONTEXT_RENDERER, size, type, stride, pointer) + +#define glPointParameterf(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.point_parameterf)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glPointParameterfv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.point_parameterfv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glPointParameteri(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.point_parameteri)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glPointParameteriv(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.point_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glBlendFuncSeparate(sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha) \ + (*(CGL_MACRO_CONTEXT)->disp.blend_func_separate)(CGL_MACRO_CONTEXT_RENDERER, sfactorRGB, dfactorRGB, sfactorAlpha, dfactorAlpha) + +#define glMultiDrawArrays(mode, first, count, primcount) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_draw_arrays)(CGL_MACRO_CONTEXT_RENDERER, mode, first, count, primcount) + +#define glMultiDrawElements(mode, count, type, indices, primcount) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_draw_elements)(CGL_MACRO_CONTEXT_RENDERER, mode, count, type, indices, primcount) + +#define glWindowPos2d(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2d)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glWindowPos2dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glWindowPos2f(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2f)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glWindowPos2fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glWindowPos2i(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2i)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glWindowPos2iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glWindowPos2s(x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2s)(CGL_MACRO_CONTEXT_RENDERER, x, y) + +#define glWindowPos2sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos2sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glWindowPos3d(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3d)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glWindowPos3dv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3dv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glWindowPos3f(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3f)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glWindowPos3fv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3fv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glWindowPos3i(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3i)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glWindowPos3iv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3iv)(CGL_MACRO_CONTEXT_RENDERER, v) + +#define glWindowPos3s(x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3s)(CGL_MACRO_CONTEXT_RENDERER, x, y, z) + +#define glWindowPos3sv(v) \ + (*(CGL_MACRO_CONTEXT)->disp.window_pos3sv)(CGL_MACRO_CONTEXT_RENDERER, v) + +/****************** OpenGL 1.5 Macros *****************************/ + +#define glGenQueries(n, ids) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_queries)(CGL_MACRO_CONTEXT_RENDERER, n, ids) + +#define glDeleteQueries(n, ids) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_queries)(CGL_MACRO_CONTEXT_RENDERER, n, ids) + +#define glIsQuery(id) \ + (*(CGL_MACRO_CONTEXT)->disp.is_query)(CGL_MACRO_CONTEXT_RENDERER, id) + +#define glBeginQuery(target, id) \ + (*(CGL_MACRO_CONTEXT)->disp.begin_query)(CGL_MACRO_CONTEXT_RENDERER, target, id) + +#define glEndQuery(target) \ + (*(CGL_MACRO_CONTEXT)->disp.end_query)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glGetQueryiv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_queryiv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetQueryObjectiv(id, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_query_objectiv)(CGL_MACRO_CONTEXT_RENDERER, id, pname, params) + +#define glGetQueryObjectuiv(id, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_query_objectuiv)(CGL_MACRO_CONTEXT_RENDERER, id, pname, params) + +#define glBindBuffer(target, buffer) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_buffer)(CGL_MACRO_CONTEXT_RENDERER, target, buffer) + +#define glDeleteBuffers(n, buffers) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_buffers)(CGL_MACRO_CONTEXT_RENDERER, n, buffers) + +#define glGenBuffers(n, buffers) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_buffers)(CGL_MACRO_CONTEXT_RENDERER, n, buffers) + +#define glIsBuffer(buffer) \ + (*(CGL_MACRO_CONTEXT)->disp.is_buffer)(CGL_MACRO_CONTEXT_RENDERER, buffer) + +#define glBufferData(target, size, data, usage) \ + (*(CGL_MACRO_CONTEXT)->disp.buffer_data)(CGL_MACRO_CONTEXT_RENDERER, target, size, data, usage) + +#define glBufferSubData(target, offset, size, data) \ + (*(CGL_MACRO_CONTEXT)->disp.buffer_sub_data)(CGL_MACRO_CONTEXT_RENDERER, target, offset, size, data) + +#define glGetBufferSubData(target, offset, size, data) \ + (*(CGL_MACRO_CONTEXT)->disp.get_buffer_sub_data)(CGL_MACRO_CONTEXT_RENDERER, target, offset, size, data) + +#define glMapBuffer(target, access) \ + (*(CGL_MACRO_CONTEXT)->disp.map_buffer)(CGL_MACRO_CONTEXT_RENDERER, target, access) + +#define glUnmapBuffer(target) \ + (*(CGL_MACRO_CONTEXT)->disp.unmap_buffer)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glGetBufferParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_buffer_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glGetBufferPointerv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_buffer_pointerv)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +/****************** OpenGL 2.0 Macros *****************************/ + +#define glDrawBuffers(n, bufs) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_buffers_ARB)(CGL_MACRO_CONTEXT_RENDERER, n, bufs) + +#define glVertexAttrib1d(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x) + +#define glVertexAttrib1dv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib1f(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x) + +#define glVertexAttrib1fv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib1s(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x) + +#define glVertexAttrib1sv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib2d(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) + +#define glVertexAttrib2dv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib2f(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) + +#define glVertexAttrib2fv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib2s(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) + +#define glVertexAttrib2sv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib3d(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) + +#define glVertexAttrib3dv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib3f(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) + +#define glVertexAttrib3fv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib3s(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) + +#define glVertexAttrib3sv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4Nbv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nbv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4Niv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Niv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4Nsv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nsv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4Nub(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nub_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, x, w) + +#define glVertexAttrib4Nubv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nubv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4Nuiv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nuiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4Nusv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nusv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4bv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4bv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4d(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) + +#define glVertexAttrib4dv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4f(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) + +#define glVertexAttrib4fv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4iv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4s(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) + +#define glVertexAttrib4sv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4ubv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4ubv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4uiv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4uiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttrib4usv(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4usv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, v) + +#define glVertexAttribPointer(index, size, type, normalized, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib_pointer_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, size, type, normalized, stride, pointer) + +#define glEnableVertexAttribArray(index) \ + (*(CGL_MACRO_CONTEXT)->disp.enable_vertex_attrib_array_ARB)(CGL_MACRO_CONTEXT_RENDERER, index) + +#define glDisableVertexAttribArray(index) \ + (*(CGL_MACRO_CONTEXT)->disp.disable_vertex_attrib_array_ARB)(CGL_MACRO_CONTEXT_RENDERER, index) + +#define glGetVertexAttribdv(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribdv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) + +#define glGetVertexAttribfv(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) + +#define glGetVertexAttribiv(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) + +#define glGetVertexAttribPointerv(index, pname, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attrib_pointerv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, pointer) + +#define glDeleteShader(shader) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(shader)) + +#define glDetachShader(program, shader) \ + (*(CGL_MACRO_CONTEXT)->disp.detach_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), CGL_HANDLE_ARB(shader)) + +#define glCreateShader(type) \ + (GLuint)((unsigned long)(*(CGL_MACRO_CONTEXT)->disp.create_shader_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, type)) + +#define glShaderSource(shader, count, string, length) \ + (*(CGL_MACRO_CONTEXT)->disp.shader_source_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(shader), count, string, length) + +#define glCompileShader(shader) \ + (*(CGL_MACRO_CONTEXT)->disp.compile_shader_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(shader)) + +#define glCreateProgram() \ + (GLuint)((unsigned long)(*(CGL_MACRO_CONTEXT)->disp.create_program_object_ARB)(CGL_MACRO_CONTEXT_RENDERER)) + +#define glAttachShader(program, shader) \ + (*(CGL_MACRO_CONTEXT)->disp.attach_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), CGL_HANDLE_ARB(shader)) + +#define glLinkProgram(program) \ + (*(CGL_MACRO_CONTEXT)->disp.link_program_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program)) + +#define glUseProgram(program) \ + (*(CGL_MACRO_CONTEXT)->disp.use_program_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program)) + +#define glDeleteProgram(program) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program)) + +#define glValidateProgram(program) \ + (*(CGL_MACRO_CONTEXT)->disp.validate_program_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program)) + +#define glUniform1f(location, v0) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0) + +#define glUniform2f(location, v0, v1) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1) + +#define glUniform3f(location, v0, v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2) + +#define glUniform4f(location, v0, v1, v2, v3) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2, v3) + +#define glUniform1i(location, v0) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0) + +#define glUniform2i(location, v0, v1) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1) + +#define glUniform3i(location, v0, v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2) + +#define glUniform4i(location, v0, v1, v2, v3) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2, v3) + +#define glUniform1fv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform2fv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform3fv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform4fv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform1iv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform2iv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform3iv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform4iv(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniformMatrix2fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix2fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix3fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix3fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix4fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glIsShader(shader) \ + (*(CGL_MACRO_CONTEXT)->disp.is_shader)(CGL_MACRO_CONTEXT_RENDERER, shader) + +#define glIsProgram(program) \ + (*(CGL_MACRO_CONTEXT)->disp.is_program)(CGL_MACRO_CONTEXT_RENDERER, program) + +#define glGetShaderiv(shader, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_shaderiv)(CGL_MACRO_CONTEXT_RENDERER, shader, pname, params) + +#define glGetProgramiv(program, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_programiv)(CGL_MACRO_CONTEXT_RENDERER, program, pname, params) + +#define glGetAttachedShaders(program, maxCount, count, shaders) \ + (*(CGL_MACRO_CONTEXT)->disp.get_attached_shaders)(CGL_MACRO_CONTEXT_RENDERER, program, maxCount, count, shaders) + +#define glGetShaderInfoLog(shader, bufSize, length, infoLog) \ + (*(CGL_MACRO_CONTEXT)->disp.get_shader_info_log)(CGL_MACRO_CONTEXT_RENDERER, shader, bufSize, length, infoLog) + +#define glGetProgramInfoLog(program, bufSize, length, infoLog) \ + (*(CGL_MACRO_CONTEXT)->disp.get_program_info_log)(CGL_MACRO_CONTEXT_RENDERER, program, bufSize, length, infoLog) + +#define glGetUniformLocation(program, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniform_location_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), name) + +#define glGetActiveUniform(program, index, bufSize, length, size, type, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_active_uniform_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), index, bufSize, length, size, type, name) + +#define glGetUniformfv(program, location, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniformfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), location, params) + +#define glGetUniformiv(program, location, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniformiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), location, params) + +#define glGetShaderSource(shader, bufSize, length, source) \ + (*(CGL_MACRO_CONTEXT)->disp.get_shader_source_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(shader), bufSize, length, source) + +#define glBindAttribLocation(program, index, name) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_attrib_location_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), index, name) + +#define glGetActiveAttrib(program, index, bufSize, length, size, type, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_active_attrib_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), index, bufSize, length, size, type, name) + +#define glGetAttribLocation(program, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_attrib_location_ARB)(CGL_MACRO_CONTEXT_RENDERER, CGL_HANDLE_ARB(program), name) + +#define glStencilFuncSeparate(face, func, ref, mask) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_func_separate)(CGL_MACRO_CONTEXT_RENDERER, face, func, ref, mask) + +#define glStencilOpSeparate(face, fail, zfail, zpass) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_op_separate_ATI)(CGL_MACRO_CONTEXT_RENDERER, face, fail, zfail, zpass) + +#define glStencilMaskSeparate(face, mask) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_mask_separate)(CGL_MACRO_CONTEXT_RENDERER, face, mask) + +#define glBlendEquationSeparate glBlendEquationSeparateEXT + +/****************** OpenGL 2.1 Macros *****************************/ + +#define glUniformMatrix2x3fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix2x3fv)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix3x2fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix3x2fv)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix2x4fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix2x4fv)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix4x2fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix4x2fv)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix3x4fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix3x4fv)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix4x3fv(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix4x3fv)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +/****************** OpenGL 3.0 Macros *****************************/ + +#define glColorMaski glColorMaskIndexedEXT +#define glGetBooleani_v glGetBooleanIndexedvEXT +#define glGetIntegeri_v glGetIntegerIndexedvEXT +#define glEnablei glEnableIndexedEXT +#define glDisablei glDisableIndexedEXT +#define glIsEnabledi glIsEnabledIndexedEXT + +#define glBeginTransformFeedback glBeginTransformFeedbackEXT +#define glEndTransformFeedback glEndTransformFeedbackEXT +#define glBindBufferRange glBindBufferRangeEXT +#define glBindBufferBase glBindBufferBaseEXT +#define glTransformFeedbackVaryings glTransformFeedbackVaryingsEXT +#define glGetTransformFeedbackVarying glGetTransformFeedbackVaryingEXT + +#define glClampColor glClampColorARB + +#define glBeginConditionalRender glBeginConditionalRenderNV +#define glEndConditionalRender glEndConditionalRenderNV + +#define glVertexAttribIPointer glVertexAttribIPointerEXT +#define glGetVertexAttribIiv glGetVertexAttribIivEXT +#define glGetVertexAttribIuiv glGetVertexAttribIuivEXT +#define glVertexAttribI1i glVertexAttribI1iEXT +#define glVertexAttribI2i glVertexAttribI2iEXT +#define glVertexAttribI3i glVertexAttribI3iEXT +#define glVertexAttribI4i glVertexAttribI4iEXT +#define glVertexAttribI1ui glVertexAttribI1uiEXT +#define glVertexAttribI2ui glVertexAttribI2uiEXT +#define glVertexAttribI3ui glVertexAttribI3uiEXT +#define glVertexAttribI4ui glVertexAttribI4uiEXT +#define glVertexAttribI1iv glVertexAttribI1ivEXT +#define glVertexAttribI2iv glVertexAttribI2ivEXT +#define glVertexAttribI3iv glVertexAttribI3ivEXT +#define glVertexAttribI4iv glVertexAttribI4ivEXT +#define glVertexAttribI1uiv glVertexAttribI1uivEXT +#define glVertexAttribI2uiv glVertexAttribI2uivEXT +#define glVertexAttribI3uiv glVertexAttribI3uivEXT +#define glVertexAttribI4uiv glVertexAttribI4uivEXT +#define glVertexAttribI4bv glVertexAttribI4bvEXT +#define glVertexAttribI4sv glVertexAttribI4svEXT +#define glVertexAttribI4ubv glVertexAttribI4ubvEXT +#define glVertexAttribI4usv glVertexAttribI4usvEXT +#define glGetUniformuiv glGetUniformuivEXT +#define glBindFragDataLocation glBindFragDataLocationEXT +#define glGetFragDataLocation glGetFragDataLocationEXT +#define glUniform1ui glUniform1uiEXT +#define glUniform2ui glUniform2uiEXT +#define glUniform3ui glUniform3uiEXT +#define glUniform4ui glUniform4uiEXT +#define glUniform1uiv glUniform1uivEXT +#define glUniform2uiv glUniform2uivEXT +#define glUniform3uiv glUniform3uivEXT +#define glUniform4uiv glUniform4uivEXT + +#define glTexParameterIiv glTexParameterIivEXT +#define glTexParameterIuiv glTexParameterIuivEXT +#define glGetTexParameterIiv glGetTexParameterIivEXT +#define glGetTexParameterIuiv glGetTexParameterIuivEXT + +#define glClearBufferiv(buffer, drawbuffer, value) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_bufferiv)(CGL_MACRO_CONTEXT_RENDERER, buffer, drawbuffer, value) + +#define glClearBufferuiv(buffer, drawbuffer, value) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_bufferuiv)(CGL_MACRO_CONTEXT_RENDERER, buffer, drawbuffer, value) + +#define glClearBufferfv(buffer, drawbuffer, value) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_bufferfv)(CGL_MACRO_CONTEXT_RENDERER, buffer, drawbuffer, value) + +#define glClearBufferfi(buffer, drawbuffer, depth, stencil) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_bufferfi)(CGL_MACRO_CONTEXT_RENDERER, buffer, drawbuffer, depth, stencil) + +#define glGetStringi(name, index) \ + (*(CGL_MACRO_CONTEXT)->disp.get_stringi)(CGL_MACRO_CONTEXT_RENDERER, name, index) + + + +/********** ARB Extensions *************************************************/ + +/* GL_ARB_vertex_program */ +#define glBindProgramARB(target, id) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_program_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, id) + +#define glDeleteProgramsARB(n, programs) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_programs_ARB)(CGL_MACRO_CONTEXT_RENDERER, n, programs) + +#define glGenProgramsARB(n, programs) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_programs_ARB)(CGL_MACRO_CONTEXT_RENDERER, n, programs) + +#define glIsProgramARB(id) \ + (*(CGL_MACRO_CONTEXT)->disp.is_program_ARB)(CGL_MACRO_CONTEXT_RENDERER, id) + +#define glVertexAttrib1sARB(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x) + +#define glVertexAttrib1fARB(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x) + +#define glVertexAttrib1dARB(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x) + +#define glVertexAttrib2sARB(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) + +#define glVertexAttrib2fARB(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) + +#define glVertexAttrib2dARB(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) + +#define glVertexAttrib3sARB(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) + +#define glVertexAttrib3fARB(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) + +#define glVertexAttrib3dARB(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) + +#define glVertexAttrib4sARB(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4s_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) + +#define glVertexAttrib4fARB(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) + +#define glVertexAttrib4dARB(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) + +#define glVertexAttrib4NubARB(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nub_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) + +#define glVertexAttrib1svARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib1fvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib1dvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib1dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib2svARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib2fvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib2dvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib2dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib3svARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib3fvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib3dvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib3dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4bvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4bv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4ubvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4ubv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4svARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4sv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4usvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4usv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4ivARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4uivARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4uiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4fvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4dvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4NbvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nbv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4NubvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nubv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4NsvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nsv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4NusvARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nusv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4NivARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Niv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttrib4NuivARB(index, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib4Nuiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, addr) + +#define glVertexAttribPointerARB(index, size, type, normalized, stride, addr) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib_pointer_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, size, type, normalized, stride, addr) + +#define glEnableVertexAttribArrayARB(index) \ + (*(CGL_MACRO_CONTEXT)->disp.enable_vertex_attrib_array_ARB)(CGL_MACRO_CONTEXT_RENDERER, index) + +#define glDisableVertexAttribArrayARB(index) \ + (*(CGL_MACRO_CONTEXT)->disp.disable_vertex_attrib_array_ARB)(CGL_MACRO_CONTEXT_RENDERER, index) + +#define glGetVertexAttribdvARB(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribdv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) + +#define glGetVertexAttribfvARB(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) + +#define glGetVertexAttribivARB(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) + +#define glGetVertexAttribPointervARB(index, pname, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attrib_pointerv_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname, pointer) + +#define glProgramEnvParameter4dARB(target, index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.program_env_parameter4d_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, x, y, z, w) + +#define glProgramEnvParameter4dvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.program_env_parameter4dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glProgramEnvParameter4fARB(target, index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.program_env_parameter4f_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, x, y, z, w) + +#define glProgramEnvParameter4fvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.program_env_parameter4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glProgramLocalParameter4dARB(target, index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.program_local_parameter4d_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, x, y, z, w) + +#define glProgramLocalParameter4dvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.program_local_parameter4dv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glProgramLocalParameter4fARB(target, index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.program_local_parameter4f_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, x, y, z, w) + +#define glProgramLocalParameter4fvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.program_local_parameter4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glGetProgramEnvParameterdvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_program_env_parameterdv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glGetProgramEnvParameterfvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_program_env_parameterfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glGetProgramLocalParameterdvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_program_local_parameterdv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glGetProgramLocalParameterfvARB(target, index, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_program_local_parameterfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, index, params) + +#define glProgramStringARB(target, format, length, string) \ + (*(CGL_MACRO_CONTEXT)->disp.program_string_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, format, length, string) + +#define glGetProgramStringARB(target, pname, string) \ + (*(CGL_MACRO_CONTEXT)->disp.get_program_string_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, pname, string) + +#define glGetProgramivARB(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_programiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +/* GL_EXT_gpu_program_parameters */ +#define glProgramEnvParameters4fvEXT(target, index, count, params) \ + (*(CGL_MACRO_CONTEXT)->disp.program_env_parameters4fv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index, count, params) + +#define glProgramLocalParameters4fvEXT(target, index, count, params) \ + (*(CGL_MACRO_CONTEXT)->disp.program_local_parameters4fv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index, count, params) + +/* GL_ARB_vertex_blend */ +#define glWeightbvARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightbv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightsvARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightsv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightivARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightfvARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightdvARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightdv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightubvARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightubv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightusvARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightusv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightuivARB(size, weights) \ + (*(CGL_MACRO_CONTEXT)->disp.weightuiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, weights) + +#define glWeightPointerARB(size, type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.weight_pointer_ARB)(CGL_MACRO_CONTEXT_RENDERER, size, type, stride, pointer) + +#define glVertexBlendARB(count) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_blend_ARB)(CGL_MACRO_CONTEXT_RENDERER, count) + +/* GL_ARB_multitexture */ +#define glClientActiveTextureARB glClientActiveTexture +#define glActiveTextureARB glActiveTexture +#define glMultiTexCoord1dARB glMultiTexCoord1d +#define glMultiTexCoord1dvARB glMultiTexCoord1dv +#define glMultiTexCoord1fARB glMultiTexCoord1f +#define glMultiTexCoord1fvARB glMultiTexCoord1fv +#define glMultiTexCoord1iARB glMultiTexCoord1i +#define glMultiTexCoord1ivARB glMultiTexCoord1iv +#define glMultiTexCoord1sARB glMultiTexCoord1s +#define glMultiTexCoord1svARB glMultiTexCoord1sv +#define glMultiTexCoord2dARB glMultiTexCoord2d +#define glMultiTexCoord2dvARB glMultiTexCoord2dv +#define glMultiTexCoord2fARB glMultiTexCoord2f +#define glMultiTexCoord2fvARB glMultiTexCoord2fv +#define glMultiTexCoord2iARB glMultiTexCoord2i +#define glMultiTexCoord2ivARB glMultiTexCoord2iv +#define glMultiTexCoord2sARB glMultiTexCoord2s +#define glMultiTexCoord2svARB glMultiTexCoord2sv +#define glMultiTexCoord3dARB glMultiTexCoord3d +#define glMultiTexCoord3dvARB glMultiTexCoord3dv +#define glMultiTexCoord3fARB glMultiTexCoord3f +#define glMultiTexCoord3fvARB glMultiTexCoord3fv +#define glMultiTexCoord3iARB glMultiTexCoord3i +#define glMultiTexCoord3ivARB glMultiTexCoord3iv +#define glMultiTexCoord3sARB glMultiTexCoord3s +#define glMultiTexCoord3svARB glMultiTexCoord3sv +#define glMultiTexCoord4dARB glMultiTexCoord4d +#define glMultiTexCoord4dvARB glMultiTexCoord4dv +#define glMultiTexCoord4fARB glMultiTexCoord4f +#define glMultiTexCoord4fvARB glMultiTexCoord4fv +#define glMultiTexCoord4iARB glMultiTexCoord4i +#define glMultiTexCoord4ivARB glMultiTexCoord4iv +#define glMultiTexCoord4sARB glMultiTexCoord4s +#define glMultiTexCoord4svARB glMultiTexCoord4sv + +/* GL_ARB_transpose_matrix */ +#define glLoadTransposeMatrixfARB glLoadTransposeMatrixf +#define glLoadTransposeMatrixdARB glLoadTransposeMatrixd +#define glMultTransposeMatrixfARB glMultTransposeMatrixf +#define glMultTransposeMatrixdARB glMultTransposeMatrixd + +/* GL_ARB_texture_compression */ +#define glCompressedTexImage3DARB glCompressedTexImage3D +#define glCompressedTexImage2DARB glCompressedTexImage2D +#define glCompressedTexImage1DARB glCompressedTexImage1D +#define glCompressedTexSubImage3DARB glCompressedTexSubImage3D +#define glCompressedTexSubImage2DARB glCompressedTexSubImage2D +#define glCompressedTexSubImage1DARB glCompressedTexSubImage1D +#define glGetCompressedTexImageARB glGetCompressedTexImage + +/* GL_ARB_multisample */ +#define glSampleCoverageARB glSampleCoverage + +/* GL_ARB_point_parameters */ +#define glPointParameterfARB glPointParameterf +#define glPointParameterfvARB glPointParameterfv + +/* GL_ARB_window_pos */ +#define glWindowPos2dARB glWindowPos2d +#define glWindowPos2dvARB glWindowPos2dv +#define glWindowPos2fARB glWindowPos2f +#define glWindowPos2fvARB glWindowPos2fv +#define glWindowPos2iARB glWindowPos2i +#define glWindowPos2ivARB glWindowPos2iv +#define glWindowPos2sARB glWindowPos2s +#define glWindowPos2svARB glWindowPos2sv +#define glWindowPos3dARB glWindowPos3d +#define glWindowPos3dvARB glWindowPos3dv +#define glWindowPos3fARB glWindowPos3f +#define glWindowPos3fvARB glWindowPos3fv +#define glWindowPos3iARB glWindowPos3i +#define glWindowPos3ivARB glWindowPos3iv +#define glWindowPos3sARB glWindowPos3s +#define glWindowPos3svARB glWindowPos3sv + +/* GL_ARB_occlusion_query */ +#define glGenQueriesARB glGenQueries +#define glDeleteQueriesARB glDeleteQueries +#define glIsQueryARB glIsQuery +#define glBeginQueryARB glBeginQuery +#define glEndQueryARB glEndQuery +#define glGetQueryivARB glGetQueryiv +#define glGetQueryObjectivARB glGetQueryObjectiv +#define glGetQueryObjectuivARB glGetQueryObjectuiv + +/* GL_ARB_vertex_buffer_object */ +#define glBindBufferARB glBindBuffer +#define glDeleteBuffersARB glDeleteBuffers +#define glGenBuffersARB glGenBuffers +#define glIsBufferARB glIsBuffer +#define glBufferDataARB glBufferData +#define glBufferSubDataARB glBufferSubData +#define glGetBufferSubDataARB glGetBufferSubData +#define glMapBufferARB glMapBuffer +#define glUnmapBufferARB glUnmapBuffer +#define glGetBufferParameterivARB glGetBufferParameteriv +#define glGetBufferPointervARB glGetBufferPointerv + +/* GL_ARB_shader_objects */ +#define glDeleteObjectARB(obj) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, obj) + +#define glGetHandleARB(pname) \ + (*(CGL_MACRO_CONTEXT)->disp.get_handle_ARB)(CGL_MACRO_CONTEXT_RENDERER, pname) + +#define glDetachObjectARB(container, attached) \ + (*(CGL_MACRO_CONTEXT)->disp.detach_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, container, attached) + +#define glCreateShaderObjectARB(shader) \ + (*(CGL_MACRO_CONTEXT)->disp.create_shader_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, shader) + +#define glShaderSourceARB(shader, count, string, length) \ + (*(CGL_MACRO_CONTEXT)->disp.shader_source_ARB)(CGL_MACRO_CONTEXT_RENDERER, shader, count, string, length) + +#define glCompileShaderARB(shader) \ + (*(CGL_MACRO_CONTEXT)->disp.compile_shader_ARB)(CGL_MACRO_CONTEXT_RENDERER, shader) + +#define glCreateProgramObjectARB() \ + (*(CGL_MACRO_CONTEXT)->disp.create_program_object_ARB)(CGL_MACRO_CONTEXT_RENDERER) + +#define glAttachObjectARB(container, object) \ + (*(CGL_MACRO_CONTEXT)->disp.attach_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, container, object) + +#define glLinkProgramARB(program) \ + (*(CGL_MACRO_CONTEXT)->disp.link_program_ARB)(CGL_MACRO_CONTEXT_RENDERER, program) + +#define glUseProgramObjectARB(program) \ + (*(CGL_MACRO_CONTEXT)->disp.use_program_object_ARB)(CGL_MACRO_CONTEXT_RENDERER, program) + +#define glValidateProgramARB(program) \ + (*(CGL_MACRO_CONTEXT)->disp.validate_program_ARB)(CGL_MACRO_CONTEXT_RENDERER, program) + +#define glUniform1fARB(location, v0) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0) + +#define glUniform2fARB(location, v0, v1) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1) + +#define glUniform3fARB(location, v0, v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2) + +#define glUniform4fARB(location, v0, v1, v2, v3) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4f_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2, v3) + +#define glUniform1iARB(location, v0) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0) + +#define glUniform2iARB(location, v0, v1) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1) + +#define glUniform3iARB(location, v0, v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2) + +#define glUniform4iARB(location, v0, v1, v2, v3) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4i_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2, v3) + +#define glUniform1fvARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform2fvARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform3fvARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform4fvARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform1ivARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform2ivARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform3ivARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniform4ivARB(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4iv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) + +#define glUniformMatrix2fvARB(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix2fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix3fvARB(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix3fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glUniformMatrix4fvARB(location, count, transpose, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_matrix4fv_ARB)(CGL_MACRO_CONTEXT_RENDERER, location, count, transpose, value) + +#define glGetObjectParameterfvARB(obj, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_object_parameterfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, obj, pname, params) + +#define glGetObjectParameterivARB(obj, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_object_parameteriv_ARB)(CGL_MACRO_CONTEXT_RENDERER, obj, pname, params) + +#define glGetInfoLogARB(obj, max, length, info) \ + (*(CGL_MACRO_CONTEXT)->disp.get_info_log_ARB)(CGL_MACRO_CONTEXT_RENDERER, obj, max, length, info) + +#define glGetAttachedObjectsARB(container, max, count, obj) \ + (*(CGL_MACRO_CONTEXT)->disp.get_attached_objects_ARB)(CGL_MACRO_CONTEXT_RENDERER, container, max, count, obj) + +#define glGetUniformLocationARB(program, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniform_location_ARB)(CGL_MACRO_CONTEXT_RENDERER, program, name) + +#define glGetActiveUniformARB(program, index, max, length, size, type, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_active_uniform_ARB)(CGL_MACRO_CONTEXT_RENDERER, program, index, max, length, size, type, name) + +#define glGetUniformfvARB(program, location, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniformfv_ARB)(CGL_MACRO_CONTEXT_RENDERER, program, location, params) + +#define glGetUniformivARB(program, location, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniformiv_ARB)(CGL_MACRO_CONTEXT_RENDERER, program, location, params) + +#define glGetShaderSourceARB(obj, max, length, source) \ + (*(CGL_MACRO_CONTEXT)->disp.get_shader_source_ARB)(CGL_MACRO_CONTEXT_RENDERER, obj, max, length, source) + +/* GL_ARB_vertex_shader */ +#define glBindAttribLocationARB(program, index, name) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_attrib_location_ARB)(CGL_MACRO_CONTEXT_RENDERER, program, index, name) + +#define glGetActiveAttribARB(program, index, max, length, size, type, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_active_attrib_ARB)(CGL_MACRO_CONTEXT_RENDERER, program, index, max, length, size, type, name) + +#define glGetAttribLocationARB(program, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_attrib_location_ARB)(CGL_MACRO_CONTEXT_RENDERER, program, name) + +#define glDrawBuffersARB(n, bufs)\ + (*(CGL_MACRO_CONTEXT)->disp.draw_buffers_ARB)(CGL_MACRO_CONTEXT_RENDERER, n, bufs) + +/* GL_ARB_color_buffer_float */ +#define glClampColorARB(target, clamp)\ + (*(CGL_MACRO_CONTEXT)->disp.clamp_color_ARB)(CGL_MACRO_CONTEXT_RENDERER, target, clamp) + +/* GL_ARB_framebuffer_object */ +#define glIsRenderbuffer(renderbuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.is_renderbuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, renderbuffer) + +#define glBindRenderbuffer(target, renderbuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_renderbuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, renderbuffer) + +#define glDeleteRenderbuffers(n, renderbuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_renderbuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, renderbuffers) + +#define glGenRenderbuffers(n, renderbuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_renderbuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, renderbuffers) + +#define glRenderbufferStorage(target, internalformat, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.renderbuffer_storage_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, width, height) + +#define glGetRenderbufferParameteriv(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_renderbuffer_parameteriv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glIsFramebuffer(framebuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.is_framebuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, framebuffer) + +#define glBindFramebuffer(target, framebuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_framebuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, framebuffer) + +#define glDeleteFramebuffers(n, framebuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_framebuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, framebuffers) + +#define glGenFramebuffers(n, framebuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_framebuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, framebuffers) + +#define glCheckFramebufferStatus(target) \ + (*(CGL_MACRO_CONTEXT)->disp.check_framebuffer_status_EXT)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glFramebufferTexture1D(target, attachment, textarget, texture, level) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture1D_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, textarget, texture, level) + +#define glFramebufferTexture2D(target, attachment, textarget, texture, level) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture2D_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, textarget, texture, level) + +#define glFramebufferTexture3D(target, attachment, textarget, texture, level, zoffset) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture3D_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, textarget, texture, level, zoffset) + +#define glFramebufferRenderbuffer(target, attachment, renderbuffertarget, renderbuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_renderbuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, renderbuffertarget, renderbuffer) + +#define glGetFramebufferAttachmentParameteriv(target, attachment, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_framebuffer_attachment_parameteriv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, pname, params) + +#define glGenerateMipmap(target) \ + (*(CGL_MACRO_CONTEXT)->disp.generate_mipmap_EXT)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glBlitFramebuffer(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter) \ + (*(CGL_MACRO_CONTEXT)->disp.blit_framebuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter) + +#define glRenderbufferStorageMultisample(target, samples, internalformat, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.renderbuffer_storage_multisample_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, samples, internalformat, width, height) + +#define glFramebufferTextureLayer(target, attachment, texture, level, layer) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture_layer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, texture, level, layer) + +/* GL_ARB_instanced_arrays */ +#define glVertexAttribDivisorARB(index,divisor) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attrib_divisor)(CGL_MACRO_CONTEXT_RENDERER, index, divisor) + +/* GL_ARB_draw_instanced */ +#define glDrawArraysInstancedARB(mode, first, count, primcount) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_arrays_instanced)(CGL_MACRO_CONTEXT_RENDERER, mode, first, count, primcount) + +#define glDrawElementsInstancedARB(mode, count, type, indices, primcount) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_elements_instanced)(CGL_MACRO_CONTEXT_RENDERER, mode, count, type, indices, primcount) + +/* GL_ARB_draw_elements_base_vertex */ +#define glDrawElementsBaseVertex(mode, count, type, indices, basev) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_elements_base_vertex)(CGL_MACRO_CONTEXT_RENDERER, mode, count, type, indices, basev) + +#define glDrawRangeElementsBaseVertex(mode, start, end, count, type, indices, basev) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_range_elements_base_vertex)(CGL_MACRO_CONTEXT_RENDERER, mode, start, end, count, type, indices, basev) + +#define glDrawElementsInstancedBaseVertex(mode, count, type, indices, primcount, basev) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_elements_instanced_base_vertex)(CGL_MACRO_CONTEXT_RENDERER, mode, count, type, indices, primcount, basev) + +#define glMultiDrawElementsBaseVertex(mode, count, type, indices, primcount, basev) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_draw_elements_base_vertex)(CGL_MACRO_CONTEXT_RENDERER, mode, count, type, indices, primcount, basev) + +/* GL_ARB_sync */ +#define glFenceSync(condition, flags) \ + (*(CGL_MACRO_CONTEXT)->disp.fence_sync)(CGL_MACRO_CONTEXT_RENDERER, condition, flags) + +#define glIsSync(sync) \ + (*(CGL_MACRO_CONTEXT)->disp.is_sync)(CGL_MACRO_CONTEXT_RENDERER, sync) + +#define glDeleteSync(sync) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_sync)(CGL_MACRO_CONTEXT_RENDERER, sync) + +#define glClientWaitSync(sync, flags, timeout) \ + (*(CGL_MACRO_CONTEXT)->disp.client_wait_sync)(CGL_MACRO_CONTEXT_RENDERER, sync, flags, timeout) + +#define glWaitSync(sync, flags, timeout) \ + (*(CGL_MACRO_CONTEXT)->disp.wait_sync)(CGL_MACRO_CONTEXT_RENDERER, sync, flags, timeout) + +#define glGetInteger64v(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_integer64v_sync)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +#define glGetSynciv(sync, pname, bufSize, length, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_synciv)(CGL_MACRO_CONTEXT_RENDERER, sync, pname, bufSize, length, values) + +/*********** EXT Extensions *************************************************/ + +/* GL_EXT_stencil_two_side */ +#define glActiveStencilFaceEXT(face) \ + (*(CGL_MACRO_CONTEXT)->disp.active_stencil_face_EXT)(CGL_MACRO_CONTEXT_RENDERER, face) + +/* GL_EXT_depth_bounds_test */ +#define glDepthBoundsEXT(zmin, zmax) \ + (*(CGL_MACRO_CONTEXT)->disp.depth_bounds_EXT)(CGL_MACRO_CONTEXT_RENDERER, zmin, zmax) + +/* GL_EXT_blend_equation_separate */ +#define glBlendEquationSeparateEXT(modeRGB, modeAlpha) \ + (*(CGL_MACRO_CONTEXT)->disp.blend_equation_separate_EXT)(CGL_MACRO_CONTEXT_RENDERER, modeRGB, modeAlpha) + +/* GL_EXT_paletted_texture */ +#define glColorTableEXT glColorTable +#define glColorSubTableEXT glColorSubTable +#define glGetColorTableEXT glGetColorTable +#define glGetColorTableParameterivEXT glGetColorTableParameteriv +#define glGetColorTableParameterfvEXT glGetColorTableParameterfv + +/* GL_EXT_secondary_color */ +#define glSecondaryColor3bEXT glSecondaryColor3b +#define glSecondaryColor3bvEXT glSecondaryColor3bv +#define glSecondaryColor3dEXT glSecondaryColor3d +#define glSecondaryColor3dvEXT glSecondaryColor3dv +#define glSecondaryColor3fEXT glSecondaryColor3f +#define glSecondaryColor3fvEXT glSecondaryColor3fv +#define glSecondaryColor3iEXT glSecondaryColor3i +#define glSecondaryColor3ivEXT glSecondaryColor3iv +#define glSecondaryColor3sEXT glSecondaryColor3s +#define glSecondaryColor3svEXT glSecondaryColor3sv +#define glSecondaryColor3ubEXT glSecondaryColor3ub +#define glSecondaryColor3ubvEXT glSecondaryColor3ubv +#define glSecondaryColor3uiEXT glSecondaryColor3ui +#define glSecondaryColor3uivEXT glSecondaryColor3uiv +#define glSecondaryColor3usEXT glSecondaryColor3us +#define glSecondaryColor3usvEXT glSecondaryColor3usv +#define glSecondaryColorPointerEXT glSecondaryColorPointer + +/* GL_EXT_fog_coord */ +#define glFogCoordfEXT glFogCoordf +#define glFogCoordfvEXT glFogCoordfv +#define glFogCoorddEXT glFogCoordd +#define glFogCoorddvEXT glFogCoorddv +#define glFogCoordPointerEXT glFogCoordPointer + +/* GL_EXT_draw_range_elements */ +#define glDrawRangeElementsEXT glDrawRangeElements + +/* GL_EXT_blend_func_separate */ +#define glBlendFuncSeparateEXT glBlendFuncSeparate + +/* GL_EXT_multi_draw_arrays */ +#define glMultiDrawArraysEXT glMultiDrawArrays +#define glMultiDrawElementsEXT glMultiDrawElements + +/* GL_EXT_blend_color */ +#define glBlendColorEXT glBlendColor + +/* GL_EXT_blend_minmax */ +#define glBlendEquationEXT glBlendEquation + +/* GL_EXT_framebuffer_object */ +#define glIsRenderbufferEXT(renderbuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.is_renderbuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, renderbuffer) + +#define glBindRenderbufferEXT(target, renderbuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_renderbuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, renderbuffer) + +#define glDeleteRenderbuffersEXT(n, renderbuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_renderbuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, renderbuffers) + +#define glGenRenderbuffersEXT(n, renderbuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_renderbuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, renderbuffers) + +#define glRenderbufferStorageEXT(target, internalformat, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.renderbuffer_storage_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, internalformat, width, height) + +#define glGetRenderbufferParameterivEXT(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_renderbuffer_parameteriv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +#define glIsFramebufferEXT(framebuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.is_framebuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, framebuffer) + +#define glBindFramebufferEXT(target, framebuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_framebuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, framebuffer) + +#define glDeleteFramebuffersEXT(n, framebuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_framebuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, framebuffers) + +#define glGenFramebuffersEXT(n, framebuffers) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_framebuffers_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, framebuffers) + +#define glCheckFramebufferStatusEXT(target) \ + (*(CGL_MACRO_CONTEXT)->disp.check_framebuffer_status_EXT)(CGL_MACRO_CONTEXT_RENDERER, target) + +#define glFramebufferTexture1DEXT(target, attachment, textarget, texture, level) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture1D_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, textarget, texture, level) + +#define glFramebufferTexture2DEXT(target, attachment, textarget, texture, level) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture2D_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, textarget, texture, level) + +#define glFramebufferTexture3DEXT(target, attachment, textarget, texture, level, zoffset) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture3D_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, textarget, texture, level, zoffset) + +#define glFramebufferRenderbufferEXT(target, attachment, renderbuffertarget, renderbuffer) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_renderbuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, renderbuffertarget, renderbuffer) + +#define glGetFramebufferAttachmentParameterivEXT(target, attachment, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_framebuffer_attachment_parameteriv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, pname, params) + +#define glGenerateMipmapEXT(target) \ + (*(CGL_MACRO_CONTEXT)->disp.generate_mipmap_EXT)(CGL_MACRO_CONTEXT_RENDERER, target) + +/* EXT_framebuffer_blit and EXT_framebuffer_multisample */ +#define glBlitFramebufferEXT(srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter) \ + (*(CGL_MACRO_CONTEXT)->disp.blit_framebuffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, srcX0, srcY0, srcX1, srcY1, dstX0, dstY0, dstX1, dstY1, mask, filter) + +#define glRenderbufferStorageMultisampleEXT(target, samples, internalformat, width, height) \ + (*(CGL_MACRO_CONTEXT)->disp.renderbuffer_storage_multisample_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, samples, internalformat, width, height) + +/* GL_EXT_geometry_shader4 */ +#define glProgramParameteriEXT(program, pname, value) \ + (*(CGL_MACRO_CONTEXT)->disp.program_parameteri_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, pname, value) + +#define glFramebufferTextureEXT(target, attachment, texture, level) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, texture, level) + +#define glFramebufferTextureLayerEXT(target, attachment, texture, level, layer) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture_layer_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, texture, level, layer) + +#define glFramebufferTextureFaceEXT(target, attachment, texture, level, face) \ + (*(CGL_MACRO_CONTEXT)->disp.framebuffer_texture_face_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, attachment, texture, level, face) + +/* GL_EXT_transform_feedback */ +#define glBindBufferRangeEXT(target, index, buffer, offset, size) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_buffer_range_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index, buffer, offset, size) +#define glBindBufferOffsetEXT(target, index, buffer, offset) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_buffer_offset_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index, buffer, offset) +#define glBindBufferBaseEXT(target, index, buffer) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_buffer_base_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index, buffer) +#define glBeginTransformFeedbackEXT(primitiveMode) \ + (*(CGL_MACRO_CONTEXT)->disp.begin_transform_feedback_EXT)(CGL_MACRO_CONTEXT_RENDERER, primitiveMode) +#define glEndTransformFeedbackEXT() \ + (*(CGL_MACRO_CONTEXT)->disp.end_transform_feedback_EXT)(CGL_MACRO_CONTEXT_RENDERER) +#define glTransformFeedbackVaryingsEXT(program, count, varyings, bufferMode) \ + (*(CGL_MACRO_CONTEXT)->disp.transform_feedback_varyings_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, count, varyings, bufferMode) +#define glGetTransformFeedbackVaryingEXT(program, index, bufSize, length, size, type, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_transform_feedback_varying_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, index, bufSize, length, size, type, name) + +/* GL_EXT_transform_feedback || GL_EXT_draw_buffers2 */ +#define glGetIntegerIndexedvEXT(param, index, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_integer_indexedv_EXT)(CGL_MACRO_CONTEXT_RENDERER, param, index, values) +#define glGetBooleanIndexedvEXT(param, index, values) \ + (*(CGL_MACRO_CONTEXT)->disp.get_boolean_indexedv_EXT)(CGL_MACRO_CONTEXT_RENDERER, param, index, values) + +/* GL_EXT_bindable_uniform */ +#define glUniformBufferEXT(program, location, buffer) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform_buffer_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, location, buffer) +#define glGetUniformBufferSizeEXT(program, location) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniform_buffer_size_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, location) +#define glGetUniformOffsetEXT(program, location) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniform_buffer_offset_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, location) + +/* GL_EXT_texture_integer */ +#define glClearColorIiEXT(r, g, b, a) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_colorIi_EXT)(CGL_MACRO_CONTEXT_RENDERER, r, g, b, a) +#define glClearColorIuiEXT(r, g, b, a) \ + (*(CGL_MACRO_CONTEXT)->disp.clear_colorIui_EXT)(CGL_MACRO_CONTEXT_RENDERER, r, g, b, a) +#define glTexParameterIivEXT(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_parameterIiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) +#define glTexParameterIuivEXT(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.tex_parameterIuiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) +#define glGetTexParameterIivEXT(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_parameterIiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) +#define glGetTexParameterIuivEXT(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_parameterIuiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +/* GL_EXT_gpu_shader4 */ +#define glVertexAttribI1iEXT(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI1i_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x) +#define glVertexAttribI2iEXT(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI2i_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) +#define glVertexAttribI3iEXT(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI3i_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) +#define glVertexAttribI4iEXT(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4i_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) +#define glVertexAttribI1uiEXT(index, x) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI1ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x) +#define glVertexAttribI2uiEXT(index, x, y) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI2ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x, y) +#define glVertexAttribI3uiEXT(index, x, y, z) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI3ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z) +#define glVertexAttribI4uiEXT(index, x, y, z, w) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, x, y, z, w) +#define glVertexAttribI1ivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI1iv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI2ivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI2iv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI3ivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI3iv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI4ivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4iv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI1uivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI1uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI2uivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI2uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI3uivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI3uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI4uivEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI4bvEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4bv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI4svEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4sv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI4ubvEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4ubv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribI4usvEXT(index, v) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI4usv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, v) +#define glVertexAttribIPointerEXT(index, size, type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_attribI_pointer_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, size, type, stride, pointer) +#define glGetVertexAttribIivEXT(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribIiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) +#define glGetVertexAttribIuivEXT(index, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_vertex_attribIuiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, pname, params) +#define glUniform1uiEXT(location, v0) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, v0) +#define glUniform2uiEXT(location, v0, v1) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1) +#define glUniform3uiEXT(location, v0, v1, v2) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2) +#define glUniform4uiEXT(location, v0, v1, v2, v3) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4ui_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, v0, v1, v2, v3) +#define glUniform1uivEXT(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform1uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) +#define glUniform2uivEXT(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform2uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) +#define glUniform3uivEXT(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform3uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) +#define glUniform4uivEXT(location, count, value) \ + (*(CGL_MACRO_CONTEXT)->disp.uniform4uiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, location, count, value) +#define glGetUniformuivEXT(program, location, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_uniformuiv_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, location, params) +#define glBindFragDataLocationEXT(program, colorNumber, name) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_frag_data_location_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, colorNumber, name) +#define glGetFragDataLocationEXT(program, name) \ + (*(CGL_MACRO_CONTEXT)->disp.get_frag_data_location_EXT)(CGL_MACRO_CONTEXT_RENDERER, program, name) + +/* GL_EXT_draw_buffers2 */ +#define glColorMaskIndexedEXT(index, r, g, b, a) \ + (*(CGL_MACRO_CONTEXT)->disp.color_mask_indexed_EXT)(CGL_MACRO_CONTEXT_RENDERER, index, r, g, b, a) +#define glEnableIndexedEXT(target, index) \ + (*(CGL_MACRO_CONTEXT)->disp.enable_indexed_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index) +#define glDisableIndexedEXT(target, index) \ + (*(CGL_MACRO_CONTEXT)->disp.disable_indexed_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index) +#define glIsEnabledIndexedEXT(target, index) \ + (*(CGL_MACRO_CONTEXT)->disp.is_enabled_indexed_EXT)(CGL_MACRO_CONTEXT_RENDERER, target, index) + +/* GL_ARB_provoking_vertex */ +#define glProvokingVertex(mode) \ + (*(CGL_MACRO_CONTEXT)->disp.provoking_vertex_EXT)(CGL_MACRO_CONTEXT_RENDERER, mode) + +/* GL_EXT_provoking_vertex */ +#define glProvokingVertexEXT glProvokingVertex + +/* GL_EXT_timer_query */ +#define glGetQueryObjecti64vEXT(id, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_query_objecti64v)(CGL_MACRO_CONTEXT_RENDERER, id, pname, params) + +#define glGetQueryObjectui64vEXT(id, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_query_objectui64v)(CGL_MACRO_CONTEXT_RENDERER, id, pname, params) + +/* GL_EXT_debug_label */ +#define glLabelObjectEXT(type, object, length, label) \ + (*(CGL_MACRO_CONTEXT)->disp.label_object_EXT)(CGL_MACRO_CONTEXT_RENDERER, type, object, length, label) + +#define glGetObjectLabelEXT(type, object, bufSize, length, label) \ + (*(CGL_MACRO_CONTEXT)->disp.get_object_label_EXT)(CGL_MACRO_CONTEXT_RENDERER, type, object, bufSize, length, label) + +/* GL_EXT_debug_marker */ +#define glInsertEventMarkerEXT(length, marker) \ + (*(CGL_MACRO_CONTEXT)->disp.insert_event_marker_EXT)(CGL_MACRO_CONTEXT_RENDERER, length, marker) + +#define glPushGroupMarkerEXT(length, marker) \ + (*(CGL_MACRO_CONTEXT)->disp.push_group_marker_EXT)(CGL_MACRO_CONTEXT_RENDERER, length, marker) + +#define glPopGroupMarkerEXT() \ + (*(CGL_MACRO_CONTEXT)->disp.pop_group_marker_EXT)(CGL_MACRO_CONTEXT_RENDERER) + +/*********** APPLE Extensions ***********************************************/ + +/* GL_APPLE_vertex_program_evaluators */ +#define glEnableVertexAttribAPPLE(index, pname) \ + (*(CGL_MACRO_CONTEXT)->disp.enable_vertex_attrib_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname) + +#define glDisableVertexAttribAPPLE(index, pname) \ + (*(CGL_MACRO_CONTEXT)->disp.disable_vertex_attrib_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname) + +#define glIsVertexAttribEnabledAPPLE(index, pname) \ + (*(CGL_MACRO_CONTEXT)->disp.is_vertex_attrib_enabled_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, pname) + +#define glMapVertexAttrib1dAPPLE(index, size, u1, u2, stride, order, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map_vertex_attrib1d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, size, u1, u2, stride, order, points) + +#define glMapVertexAttrib1fAPPLE(index, size, u1, u2, stride, order, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map_vertex_attrib1f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, size, u1, u2, stride, order, points) + +#define glMapVertexAttrib2dAPPLE(index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map_vertex_attrib2d_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) + +#define glMapVertexAttrib2fAPPLE(index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) \ + (*(CGL_MACRO_CONTEXT)->disp.map_vertex_attrib2f_ARB)(CGL_MACRO_CONTEXT_RENDERER, index, size, u1, u2, ustride, uorder, v1, v2, vstride, vorder, points) + +/* GL_APPLE_texture_range */ +#define glTextureRangeAPPLE(target, length, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.texture_range_APPLE)(CGL_MACRO_CONTEXT_RENDERER, target, length, pointer) + +#define glGetTexParameterPointervAPPLE(target, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_tex_parameter_pointerv_APPLE)(CGL_MACRO_CONTEXT_RENDERER, target, pname, params) + +/* GL_APPLE_fence */ +#define glGenFencesAPPLE(n, fences) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_fences_APPLE)(CGL_MACRO_CONTEXT_RENDERER, n, fences) + +#define glDeleteFencesAPPLE(n, fences) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_fences_APPLE)(CGL_MACRO_CONTEXT_RENDERER, n, fences) + +#define glSetFenceAPPLE(fence) \ + (*(CGL_MACRO_CONTEXT)->disp.set_fence_APPLE)(CGL_MACRO_CONTEXT_RENDERER, fence) + +#define glIsFenceAPPLE(fence) \ + (*(CGL_MACRO_CONTEXT)->disp.is_fence_APPLE)(CGL_MACRO_CONTEXT_RENDERER, fence) + +#define glTestFenceAPPLE(fence) \ + (*(CGL_MACRO_CONTEXT)->disp.test_fence_APPLE)(CGL_MACRO_CONTEXT_RENDERER, fence) + +#define glFinishFenceAPPLE(fence) \ + (*(CGL_MACRO_CONTEXT)->disp.finish_fence_APPLE)(CGL_MACRO_CONTEXT_RENDERER, fence) + +#define glTestObjectAPPLE(object, name) \ + (*(CGL_MACRO_CONTEXT)->disp.test_object_APPLE)(CGL_MACRO_CONTEXT_RENDERER, object, name) + +#define glFinishObjectAPPLE(object, name) \ + (*(CGL_MACRO_CONTEXT)->disp.finish_object_APPLE)(CGL_MACRO_CONTEXT_RENDERER, object, name) + +/* GL_APPLE_vertex_array_range */ +#define glVertexArrayRangeAPPLE(length, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_array_range_EXT)(CGL_MACRO_CONTEXT_RENDERER, length, pointer) + +#define glFlushVertexArrayRangeAPPLE(length, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.flush_vertex_array_range_EXT)(CGL_MACRO_CONTEXT_RENDERER, length, pointer) + +#define glVertexArrayParameteriAPPLE(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_array_parameteri_EXT)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +/* GL_APPLE_vertex_array_object */ +#define glBindVertexArrayAPPLE(id) \ + (*(CGL_MACRO_CONTEXT)->disp.bind_vertex_array_EXT)(CGL_MACRO_CONTEXT_RENDERER, id) + +#define glDeleteVertexArraysAPPLE(n, ids) \ + (*(CGL_MACRO_CONTEXT)->disp.delete_vertex_arrays_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, ids) + +#define glGenVertexArraysAPPLE(n, ids) \ + (*(CGL_MACRO_CONTEXT)->disp.gen_vertex_arrays_EXT)(CGL_MACRO_CONTEXT_RENDERER, n, ids) + +#define glIsVertexArrayAPPLE(id) \ + (*(CGL_MACRO_CONTEXT)->disp.is_vertex_array_EXT)(CGL_MACRO_CONTEXT_RENDERER, id) + +/* GL_APPLE_element_array */ +#define glElementPointerAPPLE(type, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.element_pointer_APPLE)(CGL_MACRO_CONTEXT_RENDERER, type, pointer) + +#define glDrawElementArrayAPPLE(mode, first, count) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_element_array_APPLE)(CGL_MACRO_CONTEXT_RENDERER, mode, first, count) + +#define glDrawRangeElementArrayAPPLE(mode, start, end, first, count) \ + (*(CGL_MACRO_CONTEXT)->disp.draw_range_element_array_APPLE)(CGL_MACRO_CONTEXT_RENDERER, mode, start, end, first, count) + +#define glMultiDrawElementArrayAPPLE(mode, first, count, primcount) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_draw_element_array_APPLE)(CGL_MACRO_CONTEXT_RENDERER, mode, first, count, primcount) + +#define glMultiDrawRangeElementArrayAPPLE(mode, start, end, first, count, primcount) \ + (*(CGL_MACRO_CONTEXT)->disp.multi_draw_range_element_array_APPLE)(CGL_MACRO_CONTEXT_RENDERER, mode, start, end, first, count, primcount) + +/* GL_APPLE_flush_render */ +#define glFlushRenderAPPLE() \ + (*(CGL_MACRO_CONTEXT)->disp.flush_render_APPLE)(CGL_MACRO_CONTEXT_RENDERER) + +#define glFinishRenderAPPLE() \ + (*(CGL_MACRO_CONTEXT)->disp.finish_render_APPLE)(CGL_MACRO_CONTEXT_RENDERER) + +#define glSwapAPPLE() \ + (*(CGL_MACRO_CONTEXT)->disp.swap_APPLE)(CGL_MACRO_CONTEXT_RENDERER) + +/* GL_APPLE_flush_buffer_range */ +#define glBufferParameteriAPPLE(target, pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.buffer_parameteri_APPLE)(CGL_MACRO_CONTEXT_RENDERER, target, pname, param) + +#define glFlushMappedBufferRangeAPPLE(target, offset, size) \ + (*(CGL_MACRO_CONTEXT)->disp.flush_mapped_buffer_range_APPLE)(CGL_MACRO_CONTEXT_RENDERER, target, offset, size) + +/* GL_APPLE_object_purgeability */ +#define glObjectPurgeableAPPLE(objectType, name, option) \ + (*(CGL_MACRO_CONTEXT)->disp.object_purgeable_APPLE)(CGL_MACRO_CONTEXT_RENDERER, objectType, name, option) + +#define glObjectUnpurgeableAPPLE(objectType, name, option) \ + (*(CGL_MACRO_CONTEXT)->disp.object_unpurgeable_APPLE)(CGL_MACRO_CONTEXT_RENDERER, objectType, name, option) + +#define glGetObjectParameterivAPPLE(objectType, name, pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.get_object_parameteriv_APPLE)(CGL_MACRO_CONTEXT_RENDERER, objectType, name, pname, params) + +/* GL_APPLE_vertex_point_size */ +#define glPointSizePointerAPPLE(type, stride, pointer) \ + (*(CGL_MACRO_CONTEXT)->disp.point_size_pointer)(CGL_MACRO_CONTEXT_RENDERER, type, stride, pointer) + +#define glVertexPointSizefAPPLE(size) \ + (*(CGL_MACRO_CONTEXT)->disp.vertex_point_sizef_APPLE)(CGL_MACRO_CONTEXT_RENDERER, size) + +/*********** ATI Extensions *************************************************/ + +/* GL_ATI_separate_stencil */ +#define glStencilOpSeparateATI(face, sfail, dpfail, dppass) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_op_separate_ATI)(CGL_MACRO_CONTEXT_RENDERER, face, sfail, dpfail, dppass) + +#define glStencilFuncSeparateATI(frontfunc, backfunc, ref, mask) \ + (*(CGL_MACRO_CONTEXT)->disp.stencil_func_separate_ATI)(CGL_MACRO_CONTEXT_RENDERER, frontfunc, backfunc, ref, mask) + +/* GL_ATI_blend_equation_separate */ +#define glBlendEquationSeparateATI glBlendEquationSeparateEXT + +/*********** NVIDIA Extensions **********************************************/ + +/* GL_NV_point_sprite */ +#define glPointParameteriNV(pname, param) \ + (*(CGL_MACRO_CONTEXT)->disp.point_parameteri)(CGL_MACRO_CONTEXT_RENDERER, pname, param) + +#define glPointParameterivNV(pname, params) \ + (*(CGL_MACRO_CONTEXT)->disp.point_parameteriv)(CGL_MACRO_CONTEXT_RENDERER, pname, params) + +/* GL_NV_conditional_render */ +#define glBeginConditionalRenderNV(id, mode) \ + (*(CGL_MACRO_CONTEXT)->disp.begin_conditional_render_NV)(CGL_MACRO_CONTEXT_RENDERER, id, mode) + +#define glEndConditionalRenderNV() \ + (*(CGL_MACRO_CONTEXT)->disp.end_conditional_render_NV)(CGL_MACRO_CONTEXT_RENDERER) + +/* GL_NV_texture_barrier */ +#define glTextureBarrierNV() \ + (*(CGL_MACRO_CONTEXT)->disp.texture_barrier_NV)(CGL_MACRO_CONTEXT_RENDERER) + +#endif /* _CGLMACRO_H */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/CGLRenderers.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/CGLRenderers.h" new file mode 100644 index 0000000..d1be7da --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/CGLRenderers.h" @@ -0,0 +1,57 @@ +/* + Copyright: (c) 1999-2013 Apple Inc. All rights reserved. +*/ + +#ifndef _CGLRENDERERS_H +#define _CGLRENDERERS_H + +#include + +/* +** Renderer ID numbers +*/ +enum { + kCGLRendererGenericID OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 0x00020200, + kCGLRendererGenericFloatID OPENGL_ENUM_AVAILABLE(10_3) = 0x00020400, // Apple Software Renderer + kCGLRendererAppleSWID = 0x00020600, + + kCGLRendererATIRage128ID OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 0x00021000, + kCGLRendererATIRadeonID OPENGL_ENUM_DEPRECATED(10_0, 10_6) = 0x00021200, + kCGLRendererATIRageProID OPENGL_ENUM_DEPRECATED(10_0, 10_6) = 0x00021400, + kCGLRendererATIRadeon8500ID OPENGL_ENUM_DEPRECATED(10_2, 10_6) = 0x00021600, + kCGLRendererATIRadeon9700ID OPENGL_ENUM_DEPRECATED(10_2, 10_6) = 0x00021800, + kCGLRendererATIRadeonX1000ID OPENGL_ENUM_DEPRECATED(10_4, 10_8) = 0x00021900, // Radeon X1xxx + kCGLRendererATIRadeonX2000ID OPENGL_ENUM_AVAILABLE(10_4) = 0x00021A00, // Radeon HD 2xxx and 4xxx + kCGLRendererATIRadeonX3000ID OPENGL_ENUM_AVAILABLE(10_6) = 0x00021B00, // Radeon HD 5xxx and 6xxx + kCGLRendererATIRadeonX4000ID OPENGL_ENUM_AVAILABLE(10_8) = 0x00021C00, // Radeon HD 7xxx + + kCGLRendererGeForce2MXID OPENGL_ENUM_DEPRECATED(10_0, 10_6) = 0x00022000, // GeForce 2MX and 4MX + kCGLRendererGeForce3ID OPENGL_ENUM_DEPRECATED(10_0, 10_6) = 0x00022200, // GeForce 3 and 4Ti + kCGLRendererGeForceFXID OPENGL_ENUM_DEPRECATED(10_2, 10_8) = 0x00022400, // GeForce 5xxx, 6xxx and 7xxx, and + // Quadro FX 4500 + kCGLRendererGeForce8xxxID OPENGL_ENUM_AVAILABLE(10_4) = 0x00022600, // GeForce 8xxx, 9xxx, 1xx, 2xx, and 3xx, and + // Quadro 4800 + kCGLRendererGeForceID OPENGL_ENUM_AVAILABLE(10_9) = 0x00022700, // GeForce 6xx, and + // Quadro 4000, K5000 + + kCGLRendererVTBladeXP2ID OPENGL_ENUM_DEPRECATED(10_3, 10_6) = 0x00023000, + + kCGLRendererIntel900ID OPENGL_ENUM_DEPRECATED(10_4, 10_8) = 0x00024000, // GMA 950 + kCGLRendererIntelX3100ID OPENGL_ENUM_DEPRECATED(10_5, 10_8) = 0x00024200, + kCGLRendererIntelHDID OPENGL_ENUM_AVAILABLE(10_6) = 0x00024300, // HD Graphics 3000 + kCGLRendererIntelHD4000ID OPENGL_ENUM_AVAILABLE(10_7) = 0x00024400, + kCGLRendererIntelHD5000ID OPENGL_ENUM_AVAILABLE(10_8) = 0x00024500, // Iris + + kCGLRendererMesa3DFXID OPENGL_ENUM_DEPRECATED(10_0, 10_6) = 0x00040000, +}; + +/* +** kCGLRendererIDMatchingMask gives the bits that are useful for matching a +** renderer ID (as returned by CGLDescribePixelFormat or CGLDescribeRenderer) +** with the assigned values above. There should be no bits set in the assigned +** renderer ID's that are not set in this mask. +*/ +#define kCGLRendererIDMatchingMask 0x00FE7F00 + + +#endif /* _CGLRENDERERS_H */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/CGLTypes.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/CGLTypes.h" new file mode 100644 index 0000000..0f152c0 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/CGLTypes.h" @@ -0,0 +1,316 @@ +/* + Copyright: (c) 1999-2013 Apple Inc. All rights reserved. +*/ + +#ifndef _CGLTYPES_H +#define _CGLTYPES_H + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#if __has_feature(assume_nonnull) +#define OPENGL_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin") +#define OPENGL_ASSUME_NONNULL_END _Pragma("clang assume_nonnull end") +#else +#define OPENGL_ASSUME_NONNULL_BEGIN +#define OPENGL_ASSUME_NONNULL_END +#endif + +#if __has_feature(nullability) +#define OPENGL_NULLABLE __nullable +#define OPENGL_NONNULL __nonnull +#else +#define OPENGL_NULLABLE +#define OPENGL_NONNULL +#endif + +/* +** CGL opaque data. +*/ +typedef struct _CGLContextObject *CGLContextObj; +typedef struct _CGLPixelFormatObject *CGLPixelFormatObj; +typedef struct _CGLRendererInfoObject *CGLRendererInfoObj; +typedef struct _CGLPBufferObject *CGLPBufferObj OPENGL_DEPRECATED(10_3, 10_7); + +/* +** Attribute names for CGLChoosePixelFormat and CGLDescribePixelFormat. +*/ +typedef enum _CGLPixelFormatAttribute { + kCGLPFAAllRenderers = 1, /* choose from all available renderers */ + kCGLPFATripleBuffer OPENGL_ENUM_AVAILABLE(10_7) = 3, /* choose a triple buffered pixel format */ + kCGLPFADoubleBuffer = 5, /* choose a double buffered pixel format */ + kCGLPFAColorSize = 8, /* number of color buffer bits */ + kCGLPFAAlphaSize = 11, /* number of alpha component bits */ + kCGLPFADepthSize = 12, /* number of depth buffer bits */ + kCGLPFAStencilSize = 13, /* number of stencil buffer bits */ + kCGLPFAMinimumPolicy = 51, /* never choose smaller buffers than requested */ + kCGLPFAMaximumPolicy = 52, /* choose largest buffers of type requested */ + kCGLPFASampleBuffers OPENGL_ENUM_AVAILABLE(10_2) = 55, /* number of multi sample buffers */ + kCGLPFASamples OPENGL_ENUM_AVAILABLE(10_2) = 56, /* number of samples per multi sample buffer */ + kCGLPFAColorFloat OPENGL_ENUM_AVAILABLE(10_2) = 58, /* color buffers store floating point pixels */ + kCGLPFAMultisample OPENGL_ENUM_AVAILABLE(10_3) = 59, /* choose multisampling */ + kCGLPFASupersample OPENGL_ENUM_AVAILABLE(10_3) = 60, /* choose supersampling */ + kCGLPFASampleAlpha OPENGL_ENUM_AVAILABLE(10_3) = 61, /* request alpha filtering */ + kCGLPFARendererID = 70, /* request renderer by ID */ + kCGLPFANoRecovery = 72, /* disable all failure recovery systems */ + kCGLPFAAccelerated = 73, /* choose a hardware accelerated renderer */ + kCGLPFAClosestPolicy = 74, /* choose the closest color buffer to request */ + kCGLPFABackingStore = 76, /* back buffer contents are valid after swap */ + kCGLPFABackingVolatile OPENGL_ENUM_AVAILABLE(10_7) = 77, /* back buffer contents are volatile after swap */ + kCGLPFADisplayMask = 84, /* mask limiting supported displays */ + kCGLPFAAllowOfflineRenderers OPENGL_ENUM_AVAILABLE(10_5) = 96, /* show offline renderers in pixel formats */ + kCGLPFAAcceleratedCompute OPENGL_ENUM_AVAILABLE(10_6) = 97, /* choose a hardware accelerated compute device */ + kCGLPFAOpenGLProfile OPENGL_ENUM_AVAILABLE(10_7) = 99, /* specify an OpenGL Profile to use */ + kCGLPFASupportsAutomaticGraphicsSwitching OPENGL_ENUM_AVAILABLE(10_8) = 101, /* responds to display changes */ + kCGLPFAVirtualScreenCount = 128, /* number of virtual screens in this format */ + + /* Note: the following attributes are deprecated in Core Profile */ + kCGLPFAAuxBuffers = 7, /* number of aux buffers */ + kCGLPFAAccumSize = 14, /* number of accum buffer bits */ + kCGLPFAAuxDepthStencil OPENGL_ENUM_AVAILABLE(10_2) = 57, /* each aux buffer has its own depth stencil */ + + kCGLPFAStereo OPENGL_ENUM_DEPRECATED(10_0, 10_11) = 6, + kCGLPFAOffScreen OPENGL_ENUM_DEPRECATED(10_0, 10_7) = 53, + kCGLPFAWindow OPENGL_ENUM_DEPRECATED(10_0, 10_9) = 80, + kCGLPFACompliant OPENGL_ENUM_DEPRECATED(10_0, 10_9) = 83, + kCGLPFAPBuffer OPENGL_ENUM_DEPRECATED(10_3, 10_7) = 90, + kCGLPFARemotePBuffer OPENGL_ENUM_DEPRECATED(10_3, 10_9) = 91, + + kCGLPFASingleRenderer OPENGL_ENUM_DEPRECATED(10_0, 10_9) = 71, + kCGLPFARobust OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 75, + kCGLPFAMPSafe OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 78, + kCGLPFAMultiScreen OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 81, + kCGLPFAFullScreen OPENGL_ENUM_DEPRECATED(10_0, 10_6) = 54, +} CGLPixelFormatAttribute; + +/* +** Property names for CGLDescribeRenderer. +*/ +typedef enum _CGLRendererProperty { + kCGLRPOffScreen = 53, + kCGLRPRendererID = 70, + kCGLRPAccelerated = 73, + kCGLRPBackingStore = 76, + kCGLRPWindow = 80, + kCGLRPCompliant = 83, + kCGLRPDisplayMask = 84, + kCGLRPBufferModes = 100, /* a bitfield of supported buffer modes */ + kCGLRPColorModes = 103, /* a bitfield of supported color buffer formats */ + kCGLRPAccumModes = 104, /* a bitfield of supported accum buffer formats */ + kCGLRPDepthModes = 105, /* a bitfield of supported depth buffer depths */ + kCGLRPStencilModes = 106, /* a bitfield of supported stencil buffer depths */ + kCGLRPMaxAuxBuffers = 107, /* maximum number of auxilliary buffers */ + kCGLRPMaxSampleBuffers OPENGL_ENUM_AVAILABLE(10_2) = 108, /* maximum number of sample buffers */ + kCGLRPMaxSamples OPENGL_ENUM_AVAILABLE(10_2) = 109, /* maximum number of samples */ + kCGLRPSampleModes OPENGL_ENUM_AVAILABLE(10_3) = 110, /* a bitfield of supported sample modes */ + kCGLRPSampleAlpha OPENGL_ENUM_AVAILABLE(10_3) = 111, /* support for alpha sampling */ + kCGLRPGPUVertProcCapable OPENGL_ENUM_AVAILABLE(10_4) = 122, /* renderer capable of GPU vertex processing */ + kCGLRPGPUFragProcCapable OPENGL_ENUM_AVAILABLE(10_4) = 123, /* renderer capable of GPU fragment processing */ + kCGLRPRendererCount = 128, /* the number of renderers in this renderer info */ + kCGLRPOnline OPENGL_ENUM_AVAILABLE(10_5) = 129, /* a boolean stating if renderer is on/offline */ + kCGLRPAcceleratedCompute OPENGL_ENUM_AVAILABLE(10_6) = 130, /* hardware accelerated compute device */ + kCGLRPVideoMemoryMegabytes OPENGL_ENUM_AVAILABLE(10_7) = 131, /* total video memory (in megabytes) */ + kCGLRPTextureMemoryMegabytes OPENGL_ENUM_AVAILABLE(10_7) = 132, /* video memory useable for textures (in megabytes) */ + kCGLRPMajorGLVersion OPENGL_ENUM_AVAILABLE(10_9) = 133, /* maximum supported major GL revision */ + + kCGLRPRobust OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 75, + kCGLRPMPSafe OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 78, + kCGLRPMultiScreen OPENGL_ENUM_DEPRECATED(10_0, 10_5) = 81, + kCGLRPFullScreen OPENGL_ENUM_DEPRECATED(10_0, 10_6) = 54, + kCGLRPVideoMemory OPENGL_ENUM_DEPRECATED_MSG(10_0, 10_7, "Use kCGLRPVideoMemoryMegabytes") = 120, + kCGLRPTextureMemory OPENGL_ENUM_DEPRECATED_MSG(10_0, 10_7, "Use kCGLRPTextureMemoryMegabytes") = 121, +} CGLRendererProperty; + +/* +** Enable names for CGLEnable, CGLDisable, and CGLIsEnabled. +*/ +typedef enum _CGLContextEnable { + kCGLCESwapRectangle = 201, /* Enable or disable the swap rectangle */ + kCGLCESwapLimit OPENGL_ENUM_AVAILABLE(10_2) = 203, /* Enable or disable the swap async limit */ + kCGLCERasterization = 221, /* Enable or disable all rasterization */ + kCGLCEStateValidation = 301, /* Validate state for multi-screen functionality */ + kCGLCESurfaceBackingSize OPENGL_ENUM_AVAILABLE(10_3) = 305, /* Enable or disable surface backing size override */ + kCGLCEDisplayListOptimization OPENGL_ENUM_AVAILABLE(10_3) = 307, /* Ability to turn off display list optimizer */ + kCGLCEMPEngine OPENGL_ENUM_AVAILABLE(10_4) = 313, /* Enable or disable multi-threaded GL engine */ + kCGLCECrashOnRemovedFunctions OPENGL_ENUM_AVAILABLE(10_7) = 316 /* Die on call to function removed from Core Profile */ +} CGLContextEnable; + +/* +** GPURestartStatus names +*/ +typedef enum _CGLGPURestartStatus { /* GPU Restart Status */ + kCGLCPGPURestartStatusNone = 0, /* current context has not caused recent GPU restart */ + kCGLCPGPURestartStatusCaused = 1, /* current context caused recent GPU restart (auto-clear on query) */ + kCGLCPGPURestartStatusBlacklisted = 2, /* current context is being ignored for excessive GPU restarts (won't clear on query) */ +} CGLGPURestartStatus; + +/* +** Parameter names for CGLSetParameter and CGLGetParameter. +*/ +typedef enum _CGLContextParameter { + kCGLCPSwapRectangle = 200, /* 4 params. Set or get the swap rectangle {x, y, w, h} */ + kCGLCPSwapInterval = 222, /* 1 param. 0 -> Don't sync, 1 -> Sync to vertical retrace */ + kCGLCPDispatchTableSize OPENGL_ENUM_AVAILABLE(10_3) = 224, /* 1 param. Get the dispatch table size */ + /* Note: kCGLCPClientStorage is always a pointer-sized parameter, even though the API claims GLint. */ + kCGLCPClientStorage = 226, /* 1 param. Context specific generic storage */ + kCGLCPSurfaceTexture OPENGL_ENUM_DEPRECATED(10_3, 10_9) = 228, /* 3 params. Context, target, internal_format */ +/* - Used by AGL - */ +/* AGL_STATE_VALIDATION 230 */ +/* AGL_BUFFER_NAME 231 */ +/* AGL_ORDER_CONTEXT_TO_FRONT 232 */ +/* AGL_CONTEXT_SURFACE_ID 233 */ +/* AGL_CONTEXT_DISPLAY_ID 234 */ + kCGLCPSurfaceOrder OPENGL_ENUM_AVAILABLE(10_2) = 235, /* 1 param. 1 -> Above window, -1 -> Below Window */ + kCGLCPSurfaceOpacity OPENGL_ENUM_AVAILABLE(10_2) = 236, /* 1 param. 1 -> Surface is opaque (default), 0 -> non-opaque */ +/* - Used by AGL - */ +/* AGL_CLIP_REGION 254 */ +/* AGL_FS_CAPTURE_SINGLE 255 */ + kCGLCPSurfaceBackingSize OPENGL_ENUM_AVAILABLE(10_3) = 304, /* 2 params. Width/height of surface backing size */ +/* AGL_SURFACE_VOLATILE 306 */ + kCGLCPSurfaceSurfaceVolatile OPENGL_ENUM_AVAILABLE(10_3) = 306, /* 1 param. Surface volatile state */ + kCGLCPReclaimResources OPENGL_ENUM_AVAILABLE(10_4) = 308, /* 0 params. */ + kCGLCPCurrentRendererID OPENGL_ENUM_AVAILABLE(10_4) = 309, /* 1 param. Retrieves the current renderer ID */ + kCGLCPGPUVertexProcessing OPENGL_ENUM_AVAILABLE(10_4) = 310, /* 1 param. Currently processing vertices with GPU (get) */ + kCGLCPGPUFragmentProcessing OPENGL_ENUM_AVAILABLE(10_4) = 311, /* 1 param. Currently processing fragments with GPU (get) */ + kCGLCPHasDrawable OPENGL_ENUM_AVAILABLE(10_5) = 314, /* 1 param. Boolean returned if drawable is attached */ + kCGLCPMPSwapsInFlight OPENGL_ENUM_AVAILABLE(10_5) = 315, /* 1 param. Max number of swaps queued by the MP GL engine */ + kCGLCPGPURestartStatus OPENGL_ENUM_AVAILABLE(10_10) = 317, /* 1 param. Retrieves and clears the current CGLGPURestartStatus */ + kCGLCPAbortOnGPURestartStatusBlacklisted OPENGL_ENUM_AVAILABLE(10_10) = 318, /* 1 param. Establish action to take upon blacklisting */ + kCGLCPSupportGPURestart OPENGL_ENUM_AVAILABLE(10_10) = 319, /* 1 param. Does driver support auto-restart of GPU on hang/crash? */ + kCGLCPSupportSeparateAddressSpace OPENGL_ENUM_AVAILABLE(10_10) = 320, /* 1 param. Does context get its own GPU address space? */ + kCGLCPContextPriorityRequest OPENGL_ENUM_AVAILABLE(10_10) = 608, /* 1 param. kCGLCPContextPriorityRequest[High|Normal|Low] 0|1|2 */ +} CGLContextParameter; + +typedef enum +{ + kCGLCPContextPriorityRequestHigh = 0, + kCGLCPContextPriorityRequestNormal = 1, + kCGLCPContextPriorityRequestLow = 2 +} CGLCPContextPriorityRequest; + +/* +** Option names for CGLSetOption and CGLGetOption. +*/ +typedef enum _CGLGlobalOption { + kCGLGOFormatCacheSize = 501, /* Set the size of the pixel format cache */ + kCGLGOClearFormatCache = 502, /* Reset the pixel format cache if true */ + kCGLGORetainRenderers = 503, /* Whether to retain loaded renderers in memory */ + kCGLGOUseBuildCache OPENGL_ENUM_AVAILABLE(10_5) = 506, /* Enable the function compilation block cache. */ + /* Off by default. Must be enabled at startup. */ + + kCGLGOResetLibrary OPENGL_ENUM_DEPRECATED(10_0, 10_4) = 504, + kCGLGOUseErrorHandler OPENGL_ENUM_DEPRECATED(10_0, 10_7) = 505, +} CGLGlobalOption; + +/* +** OpenGL Implementation Profiles +*/ +typedef enum _CGLOpenGLProfile { + kCGLOGLPVersion_Legacy OPENGL_ENUM_AVAILABLE(10_7) = 0x1000, /* choose a renderer compatible with GL1.0 */ + kCGLOGLPVersion_3_2_Core OPENGL_ENUM_AVAILABLE(10_7) = 0x3200, /* choose a renderer capable of GL3.2 or later */ + kCGLOGLPVersion_GL3_Core OPENGL_ENUM_AVAILABLE(10_7) = 0x3200, /* choose a renderer capable of GL3.2 or later */ + kCGLOGLPVersion_GL4_Core OPENGL_ENUM_AVAILABLE(10_9) = 0x4100, /* choose a renderer capable of GL4.1 or later */ +} CGLOpenGLProfile OPENGL_AVAILABLE(10_7); + +/* +** Error return values from CGLGetError. +*/ +typedef enum _CGLError { + kCGLNoError = 0, /* no error */ + kCGLBadAttribute = 10000, /* invalid pixel format attribute */ + kCGLBadProperty = 10001, /* invalid renderer property */ + kCGLBadPixelFormat = 10002, /* invalid pixel format */ + kCGLBadRendererInfo = 10003, /* invalid renderer info */ + kCGLBadContext = 10004, /* invalid context */ + kCGLBadDrawable = 10005, /* invalid drawable */ + kCGLBadDisplay = 10006, /* invalid graphics device */ + kCGLBadState = 10007, /* invalid context state */ + kCGLBadValue = 10008, /* invalid numerical value */ + kCGLBadMatch = 10009, /* invalid share context */ + kCGLBadEnumeration = 10010, /* invalid enumerant */ + kCGLBadOffScreen = 10011, /* invalid offscreen drawable */ + kCGLBadFullScreen = 10012, /* invalid fullscreen drawable */ + kCGLBadWindow = 10013, /* invalid window */ + kCGLBadAddress = 10014, /* invalid pointer */ + kCGLBadCodeModule = 10015, /* invalid code module */ + kCGLBadAlloc = 10016, /* invalid memory allocation */ + kCGLBadConnection = 10017 /* invalid CoreGraphics connection */ +} CGLError; + + +/* +** Buffer modes +*/ +#define kCGLMonoscopicBit 0x00000001 +#define kCGLStereoscopicBit 0x00000002 +#define kCGLSingleBufferBit 0x00000004 +#define kCGLDoubleBufferBit 0x00000008 +#define kCGLTripleBufferBit 0x00000010 + +/* +** Depth and stencil buffer depths +*/ +#define kCGL0Bit 0x00000001 +#define kCGL1Bit 0x00000002 +#define kCGL2Bit 0x00000004 +#define kCGL3Bit 0x00000008 +#define kCGL4Bit 0x00000010 +#define kCGL5Bit 0x00000020 +#define kCGL6Bit 0x00000040 +#define kCGL8Bit 0x00000080 +#define kCGL10Bit 0x00000100 +#define kCGL12Bit 0x00000200 +#define kCGL16Bit 0x00000400 +#define kCGL24Bit 0x00000800 +#define kCGL32Bit 0x00001000 +#define kCGL48Bit 0x00002000 +#define kCGL64Bit 0x00004000 +#define kCGL96Bit 0x00008000 +#define kCGL128Bit 0x00010000 + +/* +** Color and accumulation buffer formats. +*/ +#define kCGLRGB444Bit 0x00000040 /* 16 rgb bit/pixel, R=11:8, G=7:4, B=3:0 */ +#define kCGLARGB4444Bit 0x00000080 /* 16 argb bit/pixel, A=15:12, R=11:8, G=7:4, B=3:0 */ +#define kCGLRGB444A8Bit 0x00000100 /* 8-16 argb bit/pixel, A=7:0, R=11:8, G=7:4, B=3:0 */ +#define kCGLRGB555Bit 0x00000200 /* 16 rgb bit/pixel, R=14:10, G=9:5, B=4:0 */ +#define kCGLARGB1555Bit 0x00000400 /* 16 argb bit/pixel, A=15, R=14:10, G=9:5, B=4:0 */ +#define kCGLRGB555A8Bit 0x00000800 /* 8-16 argb bit/pixel, A=7:0, R=14:10, G=9:5, B=4:0 */ +#define kCGLRGB565Bit 0x00001000 /* 16 rgb bit/pixel, R=15:11, G=10:5, B=4:0 */ +#define kCGLRGB565A8Bit 0x00002000 /* 8-16 argb bit/pixel, A=7:0, R=15:11, G=10:5, B=4:0 */ +#define kCGLRGB888Bit 0x00004000 /* 32 rgb bit/pixel, R=23:16, G=15:8, B=7:0 */ +#define kCGLARGB8888Bit 0x00008000 /* 32 argb bit/pixel, A=31:24, R=23:16, G=15:8, B=7:0 */ +#define kCGLRGB888A8Bit 0x00010000 /* 8-32 argb bit/pixel, A=7:0, R=23:16, G=15:8, B=7:0 */ +#define kCGLRGB101010Bit 0x00020000 /* 32 rgb bit/pixel, R=29:20, G=19:10, B=9:0 */ +#define kCGLARGB2101010Bit 0x00040000 /* 32 argb bit/pixel, A=31:30 R=29:20, G=19:10, B=9:0 */ +#define kCGLRGB101010_A8Bit 0x00080000 /* 8-32 argb bit/pixel, A=7:0 R=29:20, G=19:10, B=9:0 */ +#define kCGLRGB121212Bit 0x00100000 /* 48 rgb bit/pixel, R=35:24, G=23:12, B=11:0 */ +#define kCGLARGB12121212Bit 0x00200000 /* 48 argb bit/pixel, A=47:36, R=35:24, G=23:12, B=11:0 */ +#define kCGLRGB161616Bit 0x00400000 /* 64 rgb bit/pixel, R=63:48, G=47:32, B=31:16 */ +#define kCGLRGBA16161616Bit 0x00800000 /* 64 argb bit/pixel, R=63:48, G=47:32, B=31:16, A=15:0 */ +#define kCGLRGBFloat64Bit 0x01000000 /* 64 rgb bit/pixel, half float */ +#define kCGLRGBAFloat64Bit 0x02000000 /* 64 argb bit/pixel, half float */ +#define kCGLRGBFloat128Bit 0x04000000 /* 128 rgb bit/pixel, ieee float */ +#define kCGLRGBAFloat128Bit 0x08000000 /* 128 argb bit/pixel, ieee float */ +#define kCGLRGBFloat256Bit 0x10000000 /* 256 rgb bit/pixel, ieee double */ +#define kCGLRGBAFloat256Bit 0x20000000 /* 256 argb bit/pixel, ieee double */ + +/* +** Sampling modes +*/ +#define kCGLSupersampleBit 0x00000001 +#define kCGLMultisampleBit 0x00000002 + +/* Obsolete */ +#define kCGLARGB16161616Bit kCGLRGBA16161616Bit + + +#ifdef __cplusplus +} +#endif + +#endif /* _CGLTYPES_H */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/OpenGL.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/OpenGL.h" new file mode 100644 index 0000000..f96ff0a --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/OpenGL.h" @@ -0,0 +1,132 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _OPENGL_H +#define _OPENGL_H + +#include +#include +#include +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +OPENGL_ASSUME_NONNULL_BEGIN + +/* +** CGL API version. +*/ +#define CGL_VERSION_1_0 1 +#define CGL_VERSION_1_1 1 +#define CGL_VERSION_1_2 1 +#define CGL_VERSION_1_3 1 + +/* +** Pixel format functions +*/ +extern CGLError CGLChoosePixelFormat(const CGLPixelFormatAttribute *attribs, CGLPixelFormatObj OPENGL_NULLABLE * OPENGL_NONNULL pix, GLint *npix); +extern CGLError CGLDestroyPixelFormat(CGLPixelFormatObj pix); +extern CGLError CGLDescribePixelFormat(CGLPixelFormatObj pix, GLint pix_num, CGLPixelFormatAttribute attrib, GLint *value); +extern void CGLReleasePixelFormat(CGLPixelFormatObj pix) OPENGL_AVAILABLE(10_5); +extern CGLPixelFormatObj CGLRetainPixelFormat(CGLPixelFormatObj pix) OPENGL_AVAILABLE(10_5); +extern GLuint CGLGetPixelFormatRetainCount(CGLPixelFormatObj pix) OPENGL_AVAILABLE(10_5); + +/* +** Renderer information functions +*/ +extern CGLError CGLQueryRendererInfo(GLuint display_mask, CGLRendererInfoObj OPENGL_NULLABLE * OPENGL_NONNULL rend, GLint *nrend); +extern CGLError CGLDestroyRendererInfo(CGLRendererInfoObj rend); +extern CGLError CGLDescribeRenderer(CGLRendererInfoObj rend, GLint rend_num, CGLRendererProperty prop, GLint * OPENGL_NULLABLE value); + +/* +** Context functions +*/ +extern CGLError CGLCreateContext(CGLPixelFormatObj pix, CGLContextObj OPENGL_NULLABLE share, CGLContextObj OPENGL_NULLABLE * OPENGL_NONNULL ctx); +extern CGLError CGLDestroyContext(CGLContextObj ctx); +extern CGLError CGLCopyContext(CGLContextObj src, CGLContextObj dst, GLbitfield mask) OPENGL_DEPRECATED(10_0, 10_8); +extern CGLContextObj CGLRetainContext(CGLContextObj ctx) OPENGL_AVAILABLE(10_5); +extern void CGLReleaseContext(CGLContextObj ctx) OPENGL_AVAILABLE(10_5); +extern GLuint CGLGetContextRetainCount(CGLContextObj ctx) OPENGL_AVAILABLE(10_5); +extern CGLPixelFormatObj OPENGL_NULLABLE CGLGetPixelFormat(CGLContextObj ctx) OPENGL_AVAILABLE(10_5); + +/* +** PBuffer functions +*/ +extern CGLError CGLCreatePBuffer(GLsizei width, GLsizei height, GLenum target, GLenum internalFormat, GLint max_level, CGLPBufferObj OPENGL_NULLABLE * OPENGL_NONNULL pbuffer) OPENGL_DEPRECATED(10_3, 10_7); +extern CGLError CGLDestroyPBuffer(CGLPBufferObj pbuffer) OPENGL_DEPRECATED(10_3, 10_7); +extern CGLError CGLDescribePBuffer(CGLPBufferObj obj, GLsizei *width, GLsizei *height, GLenum *target, GLenum *internalFormat, GLint *mipmap) OPENGL_DEPRECATED(10_3, 10_7); +extern CGLError CGLTexImagePBuffer(CGLContextObj ctx, CGLPBufferObj pbuffer, GLenum source) OPENGL_DEPRECATED(10_3, 10_7); +extern CGLPBufferObj CGLRetainPBuffer(CGLPBufferObj pbuffer) OPENGL_DEPRECATED(10_5, 10_7); +extern void CGLReleasePBuffer(CGLPBufferObj pbuffer) OPENGL_DEPRECATED(10_5, 10_7); +extern GLuint CGLGetPBufferRetainCount(CGLPBufferObj pbuffer) OPENGL_DEPRECATED(10_5, 10_7); + +/* +** Drawable Functions +*/ +extern CGLError CGLSetOffScreen(CGLContextObj ctx, GLsizei width, GLsizei height, GLint rowbytes, void *baseaddr) OPENGL_DEPRECATED(10_0, 10_7); +extern CGLError CGLGetOffScreen(CGLContextObj ctx, GLsizei *width, GLsizei *height, GLint *rowbytes, void * OPENGL_NULLABLE * OPENGL_NONNULL baseaddr) OPENGL_DEPRECATED(10_0, 10_7); +extern CGLError CGLSetFullScreen(CGLContextObj ctx) OPENGL_DEPRECATED(10_0, 10_6); +extern CGLError CGLSetFullScreenOnDisplay(CGLContextObj ctx, GLuint display_mask) OPENGL_DEPRECATED(10_5, 10_7); + +extern CGLError CGLSetPBuffer(CGLContextObj ctx, CGLPBufferObj pbuffer, GLenum face, GLint level, GLint screen) OPENGL_DEPRECATED(10_3, 10_7); +extern CGLError CGLGetPBuffer(CGLContextObj ctx, CGLPBufferObj OPENGL_NULLABLE * OPENGL_NONNULL pbuffer, GLenum *face, GLint *level, GLint *screen) OPENGL_DEPRECATED(10_3, 10_7); + +extern CGLError CGLClearDrawable(CGLContextObj ctx); +extern CGLError CGLFlushDrawable(CGLContextObj ctx); + +/* +** Per context enables and parameters +*/ +extern CGLError CGLEnable(CGLContextObj ctx, CGLContextEnable pname); +extern CGLError CGLDisable(CGLContextObj ctx, CGLContextEnable pname); +extern CGLError CGLIsEnabled(CGLContextObj ctx, CGLContextEnable pname, GLint *enable); +extern CGLError CGLSetParameter(CGLContextObj ctx, CGLContextParameter pname, const GLint *params); +extern CGLError CGLGetParameter(CGLContextObj ctx, CGLContextParameter pname, GLint *params); + +/* +** Virtual screen functions +*/ +extern CGLError CGLSetVirtualScreen(CGLContextObj ctx, GLint screen); +extern CGLError CGLGetVirtualScreen(CGLContextObj ctx, GLint *screen); + +extern CGLError CGLUpdateContext(CGLContextObj ctx) OPENGL_AVAILABLE(10_7); + +/* +** Global library options +*/ +extern CGLError CGLSetGlobalOption(CGLGlobalOption pname, const GLint * OPENGL_NULLABLE params) OPENGL_AVAILABLE(10_6); +extern CGLError CGLGetGlobalOption(CGLGlobalOption pname, GLint *params) OPENGL_AVAILABLE(10_6); + +extern CGLError CGLSetOption(CGLGlobalOption pname, GLint param); /* Use CGLSetGlobalOption */ +extern CGLError CGLGetOption(CGLGlobalOption pname, GLint *param); /* Use CGLGetGlobalOption */ + +/* +** Locking functions +*/ +extern CGLError CGLLockContext(CGLContextObj ctx) OPENGL_AVAILABLE(10_4); + +extern CGLError CGLUnlockContext(CGLContextObj ctx) OPENGL_AVAILABLE(10_4); + +/* +** Version numbers +*/ +extern void CGLGetVersion(GLint * OPENGL_NULLABLE majorvers, GLint * OPENGL_NULLABLE minorvers); + +/* +** Convert an error code to a string +*/ +const char *CGLErrorString(CGLError error); + +OPENGL_ASSUME_NONNULL_END + +#ifdef __cplusplus +} +#endif + +#endif /* _OPENGL_H */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/OpenGLAvailability.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/OpenGLAvailability.h" new file mode 100644 index 0000000..db1b21d --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/OpenGLAvailability.h" @@ -0,0 +1,24 @@ +#ifndef _OpenGLAvailability_H +#define _OpenGLAvailability_H + +#include + +#if !defined(__has_extension) + #define __has_extension(x) 0 +#endif + +#define OPENGL_AVAILABLE(from) __OSX_AVAILABLE_STARTING(__MAC_##from, __IPHONE_NA) +#define OPENGL_DEPRECATED(from, to) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_##from, __MAC_##to, __IPHONE_NA, __IPHONE_NA) +#define OPENGL_DEPRECATED_MSG(from, to, msg) __OSX_AVAILABLE_BUT_DEPRECATED_MSG(__MAC_##from, __MAC_##to, __IPHONE_NA, __IPHONE_NA, "" #msg "") + +#if __has_extension(enumerator_attributes) + #define OPENGL_ENUM_AVAILABLE(from) OPENGL_AVAILABLE(from) + #define OPENGL_ENUM_DEPRECATED(from, to) OPENGL_DEPRECATED(from, to) + #define OPENGL_ENUM_DEPRECATED_MSG(from, to, msg) OPENGL_DEPRECATED_MSG(from, to, msg) +#else + #define OPENGL_ENUM_AVAILABLE(from) + #define OPENGL_ENUM_DEPRECATED(from, to) + #define OPENGL_ENUM_DEPRECATED_MSG(from, to, msg) +#endif + +#endif diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gl.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gl.h" new file mode 100644 index 0000000..ba8d0ea --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gl.h" @@ -0,0 +1,2983 @@ +#ifndef __gl_h_ +#define __gl_h_ + +#if defined __gl3_h_ && !(defined GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED) +#warning gl.h and gl3.h are both included. Compiler will not invoke errors if using removed OpenGL functionality. +#endif + +/* +** License Applicability. Except to the extent portions of this file are +** made subject to an alternative license as permitted in the SGI Free +** Software License B, Version 1.1 (the "License"), the contents of this +** file are subject only to the provisions of the License. You may not use +** this file except in compliance with the License. You may obtain a copy +** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 +** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: +** +** http://oss.sgi.com/projects/FreeB +** +** Note that, as provided in the License, the Software is distributed on an +** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS +** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND +** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A +** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. +** +** Original Code. The Original Code is: OpenGL Sample Implementation, +** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, +** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. +** Copyright in any portions created by third parties is as indicated +** elsewhere herein. All Rights Reserved. +** +** Additional Notice Provisions: This software was created using the +** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has +** not been independently verified as being compliant with the OpenGL(R) +** version 1.2.1 Specification. +*/ + +// switches to providing function pointers +//#define GL_GLEXT_FUNCTION_POINTERS 1 + +#include + +#ifndef GL_GLEXT_LEGACY +#include +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +/* For compatibility with OpenGL v1.0 */ +#define GL_LOGIC_OP GL_INDEX_LOGIC_OP +#define GL_TEXTURE_COMPONENTS GL_TEXTURE_INTERNAL_FORMAT + +/*************************************************************/ + +/* Version */ +#define GL_VERSION_1_1 1 +#define GL_VERSION_1_2 1 +#define GL_VERSION_1_3 1 +#define GL_VERSION_1_4 1 +#define GL_VERSION_1_5 1 +#define GL_VERSION_2_0 1 +#define GL_VERSION_2_1 1 + +/* AccumOp */ +#define GL_ACCUM 0x0100 +#define GL_LOAD 0x0101 +#define GL_RETURN 0x0102 +#define GL_MULT 0x0103 +#define GL_ADD 0x0104 + +/* AlphaFunction */ +#define GL_NEVER 0x0200 +#define GL_LESS 0x0201 +#define GL_EQUAL 0x0202 +#define GL_LEQUAL 0x0203 +#define GL_GREATER 0x0204 +#define GL_NOTEQUAL 0x0205 +#define GL_GEQUAL 0x0206 +#define GL_ALWAYS 0x0207 + +/* AttribMask */ +#define GL_CURRENT_BIT 0x00000001 +#define GL_POINT_BIT 0x00000002 +#define GL_LINE_BIT 0x00000004 +#define GL_POLYGON_BIT 0x00000008 +#define GL_POLYGON_STIPPLE_BIT 0x00000010 +#define GL_PIXEL_MODE_BIT 0x00000020 +#define GL_LIGHTING_BIT 0x00000040 +#define GL_FOG_BIT 0x00000080 +#define GL_DEPTH_BUFFER_BIT 0x00000100 +#define GL_ACCUM_BUFFER_BIT 0x00000200 +#define GL_STENCIL_BUFFER_BIT 0x00000400 +#define GL_VIEWPORT_BIT 0x00000800 +#define GL_TRANSFORM_BIT 0x00001000 +#define GL_ENABLE_BIT 0x00002000 +#define GL_COLOR_BUFFER_BIT 0x00004000 +#define GL_HINT_BIT 0x00008000 +#define GL_EVAL_BIT 0x00010000 +#define GL_LIST_BIT 0x00020000 +#define GL_TEXTURE_BIT 0x00040000 +#define GL_SCISSOR_BIT 0x00080000 +#define GL_ALL_ATTRIB_BITS 0x000fffff + +/* BeginMode */ +#define GL_POINTS 0x0000 +#define GL_LINES 0x0001 +#define GL_LINE_LOOP 0x0002 +#define GL_LINE_STRIP 0x0003 +#define GL_TRIANGLES 0x0004 +#define GL_TRIANGLE_STRIP 0x0005 +#define GL_TRIANGLE_FAN 0x0006 +#define GL_QUADS 0x0007 +#define GL_QUAD_STRIP 0x0008 +#define GL_POLYGON 0x0009 + +/* BlendEquationMode */ +/* GL_LOGIC_OP */ +/* GL_FUNC_ADD */ +/* GL_MIN */ +/* GL_MAX */ +/* GL_FUNC_SUBTRACT */ +/* GL_FUNC_REVERSE_SUBTRACT */ + +/* BlendingFactorDest */ +#define GL_ZERO 0 +#define GL_ONE 1 +#define GL_SRC_COLOR 0x0300 +#define GL_ONE_MINUS_SRC_COLOR 0x0301 +#define GL_SRC_ALPHA 0x0302 +#define GL_ONE_MINUS_SRC_ALPHA 0x0303 +#define GL_DST_ALPHA 0x0304 +#define GL_ONE_MINUS_DST_ALPHA 0x0305 +/* GL_CONSTANT_COLOR */ +/* GL_ONE_MINUS_CONSTANT_COLOR */ +/* GL_CONSTANT_ALPHA */ +/* GL_ONE_MINUS_CONSTANT_ALPHA */ + +/* BlendingFactorSrc */ +/* GL_ZERO */ +/* GL_ONE */ +#define GL_DST_COLOR 0x0306 +#define GL_ONE_MINUS_DST_COLOR 0x0307 +#define GL_SRC_ALPHA_SATURATE 0x0308 +/* GL_SRC_ALPHA */ +/* GL_ONE_MINUS_SRC_ALPHA */ +/* GL_DST_ALPHA */ +/* GL_ONE_MINUS_DST_ALPHA */ +/* GL_CONSTANT_COLOR */ +/* GL_ONE_MINUS_CONSTANT_COLOR */ +/* GL_CONSTANT_ALPHA */ +/* GL_ONE_MINUS_CONSTANT_ALPHA */ + +/* Boolean */ +#define GL_TRUE 1 +#define GL_FALSE 0 + +/* ClearBufferMask */ +/* GL_COLOR_BUFFER_BIT */ +/* GL_ACCUM_BUFFER_BIT */ +/* GL_STENCIL_BUFFER_BIT */ +/* GL_DEPTH_BUFFER_BIT */ + +/* ClientArrayType */ +/* GL_VERTEX_ARRAY */ +/* GL_NORMAL_ARRAY */ +/* GL_COLOR_ARRAY */ +/* GL_INDEX_ARRAY */ +/* GL_TEXTURE_COORD_ARRAY */ +/* GL_EDGE_FLAG_ARRAY */ + +/* ClipPlaneName */ +#define GL_CLIP_PLANE0 0x3000 +#define GL_CLIP_PLANE1 0x3001 +#define GL_CLIP_PLANE2 0x3002 +#define GL_CLIP_PLANE3 0x3003 +#define GL_CLIP_PLANE4 0x3004 +#define GL_CLIP_PLANE5 0x3005 + +/* ColorMaterialFace */ +/* GL_FRONT */ +/* GL_BACK */ +/* GL_FRONT_AND_BACK */ + +/* ColorMaterialParameter */ +/* GL_AMBIENT */ +/* GL_DIFFUSE */ +/* GL_SPECULAR */ +/* GL_EMISSION */ +/* GL_AMBIENT_AND_DIFFUSE */ + +/* ColorPointerType */ +/* GL_BYTE */ +/* GL_UNSIGNED_BYTE */ +/* GL_SHORT */ +/* GL_UNSIGNED_SHORT */ +/* GL_INT */ +/* GL_UNSIGNED_INT */ +/* GL_FLOAT */ +/* GL_DOUBLE */ + +/* ColorTableParameterPName */ +/* GL_COLOR_TABLE_SCALE */ +/* GL_COLOR_TABLE_BIAS */ + +/* ColorTableTarget */ +/* GL_COLOR_TABLE */ +/* GL_POST_CONVOLUTION_COLOR_TABLE */ +/* GL_POST_COLOR_MATRIX_COLOR_TABLE */ +/* GL_PROXY_COLOR_TABLE */ +/* GL_PROXY_POST_CONVOLUTION_COLOR_TABLE */ +/* GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE */ + +/* ConvolutionBorderMode */ +/* GL_REDUCE */ +/* GL_IGNORE_BORDER */ +/* GL_CONSTANT_BORDER */ + +/* ConvolutionParameter */ +/* GL_CONVOLUTION_BORDER_MODE */ +/* GL_CONVOLUTION_FILTER_SCALE */ +/* GL_CONVOLUTION_FILTER_BIAS */ + +/* ConvolutionTarget */ +/* GL_CONVOLUTION_1D */ +/* GL_CONVOLUTION_2D */ + +/* CullFaceMode */ +/* GL_FRONT */ +/* GL_BACK */ +/* GL_FRONT_AND_BACK */ + +/* DataType */ +#define GL_BYTE 0x1400 +#define GL_UNSIGNED_BYTE 0x1401 +#define GL_SHORT 0x1402 +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_INT 0x1404 +#define GL_UNSIGNED_INT 0x1405 +#define GL_FLOAT 0x1406 +#define GL_2_BYTES 0x1407 +#define GL_3_BYTES 0x1408 +#define GL_4_BYTES 0x1409 +#define GL_DOUBLE 0x140A + +/* DepthFunction */ +/* GL_NEVER */ +/* GL_LESS */ +/* GL_EQUAL */ +/* GL_LEQUAL */ +/* GL_GREATER */ +/* GL_NOTEQUAL */ +/* GL_GEQUAL */ +/* GL_ALWAYS */ + +/* DrawBufferMode */ +#define GL_NONE 0 +#define GL_FRONT_LEFT 0x0400 +#define GL_FRONT_RIGHT 0x0401 +#define GL_BACK_LEFT 0x0402 +#define GL_BACK_RIGHT 0x0403 +#define GL_FRONT 0x0404 +#define GL_BACK 0x0405 +#define GL_LEFT 0x0406 +#define GL_RIGHT 0x0407 +#define GL_FRONT_AND_BACK 0x0408 +#define GL_AUX0 0x0409 +#define GL_AUX1 0x040A +#define GL_AUX2 0x040B +#define GL_AUX3 0x040C + +/* Enable */ +/* GL_FOG */ +/* GL_LIGHTING */ +/* GL_TEXTURE_1D */ +/* GL_TEXTURE_2D */ +/* GL_LINE_STIPPLE */ +/* GL_POLYGON_STIPPLE */ +/* GL_CULL_FACE */ +/* GL_ALPHA_TEST */ +/* GL_BLEND */ +/* GL_INDEX_LOGIC_OP */ +/* GL_COLOR_LOGIC_OP */ +/* GL_DITHER */ +/* GL_STENCIL_TEST */ +/* GL_DEPTH_TEST */ +/* GL_CLIP_PLANE0 */ +/* GL_CLIP_PLANE1 */ +/* GL_CLIP_PLANE2 */ +/* GL_CLIP_PLANE3 */ +/* GL_CLIP_PLANE4 */ +/* GL_CLIP_PLANE5 */ +/* GL_LIGHT0 */ +/* GL_LIGHT1 */ +/* GL_LIGHT2 */ +/* GL_LIGHT3 */ +/* GL_LIGHT4 */ +/* GL_LIGHT5 */ +/* GL_LIGHT6 */ +/* GL_LIGHT7 */ +/* GL_TEXTURE_GEN_S */ +/* GL_TEXTURE_GEN_T */ +/* GL_TEXTURE_GEN_R */ +/* GL_TEXTURE_GEN_Q */ +/* GL_MAP1_VERTEX_3 */ +/* GL_MAP1_VERTEX_4 */ +/* GL_MAP1_COLOR_4 */ +/* GL_MAP1_INDEX */ +/* GL_MAP1_NORMAL */ +/* GL_MAP1_TEXTURE_COORD_1 */ +/* GL_MAP1_TEXTURE_COORD_2 */ +/* GL_MAP1_TEXTURE_COORD_3 */ +/* GL_MAP1_TEXTURE_COORD_4 */ +/* GL_MAP2_VERTEX_3 */ +/* GL_MAP2_VERTEX_4 */ +/* GL_MAP2_COLOR_4 */ +/* GL_MAP2_INDEX */ +/* GL_MAP2_NORMAL */ +/* GL_MAP2_TEXTURE_COORD_1 */ +/* GL_MAP2_TEXTURE_COORD_2 */ +/* GL_MAP2_TEXTURE_COORD_3 */ +/* GL_MAP2_TEXTURE_COORD_4 */ +/* GL_POINT_SMOOTH */ +/* GL_LINE_SMOOTH */ +/* GL_POLYGON_SMOOTH */ +/* GL_SCISSOR_TEST */ +/* GL_COLOR_MATERIAL */ +/* GL_NORMALIZE */ +/* GL_AUTO_NORMAL */ +/* GL_VERTEX_ARRAY */ +/* GL_NORMAL_ARRAY */ +/* GL_COLOR_ARRAY */ +/* GL_INDEX_ARRAY */ +/* GL_TEXTURE_COORD_ARRAY */ +/* GL_EDGE_FLAG_ARRAY */ +/* GL_POLYGON_OFFSET_POINT */ +/* GL_POLYGON_OFFSET_LINE */ +/* GL_POLYGON_OFFSET_FILL */ +/* GL_COLOR_TABLE */ +/* GL_POST_CONVOLUTION_COLOR_TABLE */ +/* GL_POST_COLOR_MATRIX_COLOR_TABLE */ +/* GL_CONVOLUTION_1D */ +/* GL_CONVOLUTION_2D */ +/* GL_SEPARABLE_2D */ +/* GL_HISTOGRAM */ +/* GL_MINMAX */ +/* GL_RESCALE_NORMAL */ +/* GL_TEXTURE_3D */ + +/* ErrorCode */ +#define GL_NO_ERROR 0 +#define GL_INVALID_ENUM 0x0500 +#define GL_INVALID_VALUE 0x0501 +#define GL_INVALID_OPERATION 0x0502 +#define GL_STACK_OVERFLOW 0x0503 +#define GL_STACK_UNDERFLOW 0x0504 +#define GL_OUT_OF_MEMORY 0x0505 +/* GL_TABLE_TOO_LARGE */ + +/* FeedBackMode */ +#define GL_2D 0x0600 +#define GL_3D 0x0601 +#define GL_3D_COLOR 0x0602 +#define GL_3D_COLOR_TEXTURE 0x0603 +#define GL_4D_COLOR_TEXTURE 0x0604 + +/* FeedBackToken */ +#define GL_PASS_THROUGH_TOKEN 0x0700 +#define GL_POINT_TOKEN 0x0701 +#define GL_LINE_TOKEN 0x0702 +#define GL_POLYGON_TOKEN 0x0703 +#define GL_BITMAP_TOKEN 0x0704 +#define GL_DRAW_PIXEL_TOKEN 0x0705 +#define GL_COPY_PIXEL_TOKEN 0x0706 +#define GL_LINE_RESET_TOKEN 0x0707 + +/* FogMode */ +/* GL_LINEAR */ +#define GL_EXP 0x0800 +#define GL_EXP2 0x0801 + +/* FogParameter */ +/* GL_FOG_COLOR */ +/* GL_FOG_DENSITY */ +/* GL_FOG_END */ +/* GL_FOG_INDEX */ +/* GL_FOG_MODE */ +/* GL_FOG_START */ + +/* FrontFaceDirection */ +#define GL_CW 0x0900 +#define GL_CCW 0x0901 + +/* GetColorTableParameterPName */ +/* GL_COLOR_TABLE_SCALE */ +/* GL_COLOR_TABLE_BIAS */ +/* GL_COLOR_TABLE_FORMAT */ +/* GL_COLOR_TABLE_WIDTH */ +/* GL_COLOR_TABLE_RED_SIZE */ +/* GL_COLOR_TABLE_GREEN_SIZE */ +/* GL_COLOR_TABLE_BLUE_SIZE */ +/* GL_COLOR_TABLE_ALPHA_SIZE */ +/* GL_COLOR_TABLE_LUMINANCE_SIZE */ +/* GL_COLOR_TABLE_INTENSITY_SIZE */ + +/* GetConvolutionParameterPName */ +/* GL_CONVOLUTION_BORDER_COLOR */ +/* GL_CONVOLUTION_BORDER_MODE */ +/* GL_CONVOLUTION_FILTER_SCALE */ +/* GL_CONVOLUTION_FILTER_BIAS */ +/* GL_CONVOLUTION_FORMAT */ +/* GL_CONVOLUTION_WIDTH */ +/* GL_CONVOLUTION_HEIGHT */ +/* GL_MAX_CONVOLUTION_WIDTH */ +/* GL_MAX_CONVOLUTION_HEIGHT */ + +/* GetHistogramParameterPName */ +/* GL_HISTOGRAM_WIDTH */ +/* GL_HISTOGRAM_FORMAT */ +/* GL_HISTOGRAM_RED_SIZE */ +/* GL_HISTOGRAM_GREEN_SIZE */ +/* GL_HISTOGRAM_BLUE_SIZE */ +/* GL_HISTOGRAM_ALPHA_SIZE */ +/* GL_HISTOGRAM_LUMINANCE_SIZE */ +/* GL_HISTOGRAM_SINK */ + +/* GetMapTarget */ +#define GL_COEFF 0x0A00 +#define GL_ORDER 0x0A01 +#define GL_DOMAIN 0x0A02 + +/* GetMinmaxParameterPName */ +/* GL_MINMAX_FORMAT */ +/* GL_MINMAX_SINK */ + +/* GetPixelMap */ +/* GL_PIXEL_MAP_I_TO_I */ +/* GL_PIXEL_MAP_S_TO_S */ +/* GL_PIXEL_MAP_I_TO_R */ +/* GL_PIXEL_MAP_I_TO_G */ +/* GL_PIXEL_MAP_I_TO_B */ +/* GL_PIXEL_MAP_I_TO_A */ +/* GL_PIXEL_MAP_R_TO_R */ +/* GL_PIXEL_MAP_G_TO_G */ +/* GL_PIXEL_MAP_B_TO_B */ +/* GL_PIXEL_MAP_A_TO_A */ + +/* GetPointerTarget */ +/* GL_VERTEX_ARRAY_POINTER */ +/* GL_NORMAL_ARRAY_POINTER */ +/* GL_COLOR_ARRAY_POINTER */ +/* GL_INDEX_ARRAY_POINTER */ +/* GL_TEXTURE_COORD_ARRAY_POINTER */ +/* GL_EDGE_FLAG_ARRAY_POINTER */ + +/* GetTarget */ +#define GL_CURRENT_COLOR 0x0B00 +#define GL_CURRENT_INDEX 0x0B01 +#define GL_CURRENT_NORMAL 0x0B02 +#define GL_CURRENT_TEXTURE_COORDS 0x0B03 +#define GL_CURRENT_RASTER_COLOR 0x0B04 +#define GL_CURRENT_RASTER_INDEX 0x0B05 +#define GL_CURRENT_RASTER_TEXTURE_COORDS 0x0B06 +#define GL_CURRENT_RASTER_POSITION 0x0B07 +#define GL_CURRENT_RASTER_POSITION_VALID 0x0B08 +#define GL_CURRENT_RASTER_DISTANCE 0x0B09 +#define GL_POINT_SMOOTH 0x0B10 +#define GL_POINT_SIZE 0x0B11 +#define GL_POINT_SIZE_RANGE 0x0B12 +#define GL_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_LINE_SMOOTH 0x0B20 +#define GL_LINE_WIDTH 0x0B21 +#define GL_LINE_WIDTH_RANGE 0x0B22 +#define GL_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_LINE_STIPPLE 0x0B24 +#define GL_LINE_STIPPLE_PATTERN 0x0B25 +#define GL_LINE_STIPPLE_REPEAT 0x0B26 +/* GL_SMOOTH_POINT_SIZE_RANGE */ +/* GL_SMOOTH_POINT_SIZE_GRANULARITY */ +/* GL_SMOOTH_LINE_WIDTH_RANGE */ +/* GL_SMOOTH_LINE_WIDTH_GRANULARITY */ +/* GL_ALIASED_POINT_SIZE_RANGE */ +/* GL_ALIASED_LINE_WIDTH_RANGE */ +#define GL_LIST_MODE 0x0B30 +#define GL_MAX_LIST_NESTING 0x0B31 +#define GL_LIST_BASE 0x0B32 +#define GL_LIST_INDEX 0x0B33 +#define GL_POLYGON_MODE 0x0B40 +#define GL_POLYGON_SMOOTH 0x0B41 +#define GL_POLYGON_STIPPLE 0x0B42 +#define GL_EDGE_FLAG 0x0B43 +#define GL_CULL_FACE 0x0B44 +#define GL_CULL_FACE_MODE 0x0B45 +#define GL_FRONT_FACE 0x0B46 +#define GL_LIGHTING 0x0B50 +#define GL_LIGHT_MODEL_LOCAL_VIEWER 0x0B51 +#define GL_LIGHT_MODEL_TWO_SIDE 0x0B52 +#define GL_LIGHT_MODEL_AMBIENT 0x0B53 +#define GL_SHADE_MODEL 0x0B54 +#define GL_COLOR_MATERIAL_FACE 0x0B55 +#define GL_COLOR_MATERIAL_PARAMETER 0x0B56 +#define GL_COLOR_MATERIAL 0x0B57 +#define GL_FOG 0x0B60 +#define GL_FOG_INDEX 0x0B61 +#define GL_FOG_DENSITY 0x0B62 +#define GL_FOG_START 0x0B63 +#define GL_FOG_END 0x0B64 +#define GL_FOG_MODE 0x0B65 +#define GL_FOG_COLOR 0x0B66 +#define GL_DEPTH_RANGE 0x0B70 +#define GL_DEPTH_TEST 0x0B71 +#define GL_DEPTH_WRITEMASK 0x0B72 +#define GL_DEPTH_CLEAR_VALUE 0x0B73 +#define GL_DEPTH_FUNC 0x0B74 +#define GL_ACCUM_CLEAR_VALUE 0x0B80 +#define GL_STENCIL_TEST 0x0B90 +#define GL_STENCIL_CLEAR_VALUE 0x0B91 +#define GL_STENCIL_FUNC 0x0B92 +#define GL_STENCIL_VALUE_MASK 0x0B93 +#define GL_STENCIL_FAIL 0x0B94 +#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 +#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 +#define GL_STENCIL_REF 0x0B97 +#define GL_STENCIL_WRITEMASK 0x0B98 +#define GL_MATRIX_MODE 0x0BA0 +#define GL_NORMALIZE 0x0BA1 +#define GL_VIEWPORT 0x0BA2 +#define GL_MODELVIEW_STACK_DEPTH 0x0BA3 +#define GL_PROJECTION_STACK_DEPTH 0x0BA4 +#define GL_TEXTURE_STACK_DEPTH 0x0BA5 +#define GL_MODELVIEW_MATRIX 0x0BA6 +#define GL_PROJECTION_MATRIX 0x0BA7 +#define GL_TEXTURE_MATRIX 0x0BA8 +#define GL_ATTRIB_STACK_DEPTH 0x0BB0 +#define GL_CLIENT_ATTRIB_STACK_DEPTH 0x0BB1 +#define GL_ALPHA_TEST 0x0BC0 +#define GL_ALPHA_TEST_FUNC 0x0BC1 +#define GL_ALPHA_TEST_REF 0x0BC2 +#define GL_DITHER 0x0BD0 +#define GL_BLEND_DST 0x0BE0 +#define GL_BLEND_SRC 0x0BE1 +#define GL_BLEND 0x0BE2 +#define GL_LOGIC_OP_MODE 0x0BF0 +#define GL_INDEX_LOGIC_OP 0x0BF1 +#define GL_COLOR_LOGIC_OP 0x0BF2 +#define GL_AUX_BUFFERS 0x0C00 +#define GL_DRAW_BUFFER 0x0C01 +#define GL_READ_BUFFER 0x0C02 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_INDEX_CLEAR_VALUE 0x0C20 +#define GL_INDEX_WRITEMASK 0x0C21 +#define GL_COLOR_CLEAR_VALUE 0x0C22 +#define GL_COLOR_WRITEMASK 0x0C23 +#define GL_INDEX_MODE 0x0C30 +#define GL_RGBA_MODE 0x0C31 +#define GL_DOUBLEBUFFER 0x0C32 +#define GL_STEREO 0x0C33 +#define GL_RENDER_MODE 0x0C40 +#define GL_PERSPECTIVE_CORRECTION_HINT 0x0C50 +#define GL_POINT_SMOOTH_HINT 0x0C51 +#define GL_LINE_SMOOTH_HINT 0x0C52 +#define GL_POLYGON_SMOOTH_HINT 0x0C53 +#define GL_FOG_HINT 0x0C54 +#define GL_TEXTURE_GEN_S 0x0C60 +#define GL_TEXTURE_GEN_T 0x0C61 +#define GL_TEXTURE_GEN_R 0x0C62 +#define GL_TEXTURE_GEN_Q 0x0C63 +#define GL_PIXEL_MAP_I_TO_I 0x0C70 +#define GL_PIXEL_MAP_S_TO_S 0x0C71 +#define GL_PIXEL_MAP_I_TO_R 0x0C72 +#define GL_PIXEL_MAP_I_TO_G 0x0C73 +#define GL_PIXEL_MAP_I_TO_B 0x0C74 +#define GL_PIXEL_MAP_I_TO_A 0x0C75 +#define GL_PIXEL_MAP_R_TO_R 0x0C76 +#define GL_PIXEL_MAP_G_TO_G 0x0C77 +#define GL_PIXEL_MAP_B_TO_B 0x0C78 +#define GL_PIXEL_MAP_A_TO_A 0x0C79 +#define GL_PIXEL_MAP_I_TO_I_SIZE 0x0CB0 +#define GL_PIXEL_MAP_S_TO_S_SIZE 0x0CB1 +#define GL_PIXEL_MAP_I_TO_R_SIZE 0x0CB2 +#define GL_PIXEL_MAP_I_TO_G_SIZE 0x0CB3 +#define GL_PIXEL_MAP_I_TO_B_SIZE 0x0CB4 +#define GL_PIXEL_MAP_I_TO_A_SIZE 0x0CB5 +#define GL_PIXEL_MAP_R_TO_R_SIZE 0x0CB6 +#define GL_PIXEL_MAP_G_TO_G_SIZE 0x0CB7 +#define GL_PIXEL_MAP_B_TO_B_SIZE 0x0CB8 +#define GL_PIXEL_MAP_A_TO_A_SIZE 0x0CB9 +#define GL_UNPACK_SWAP_BYTES 0x0CF0 +#define GL_UNPACK_LSB_FIRST 0x0CF1 +#define GL_UNPACK_ROW_LENGTH 0x0CF2 +#define GL_UNPACK_SKIP_ROWS 0x0CF3 +#define GL_UNPACK_SKIP_PIXELS 0x0CF4 +#define GL_UNPACK_ALIGNMENT 0x0CF5 +#define GL_PACK_SWAP_BYTES 0x0D00 +#define GL_PACK_LSB_FIRST 0x0D01 +#define GL_PACK_ROW_LENGTH 0x0D02 +#define GL_PACK_SKIP_ROWS 0x0D03 +#define GL_PACK_SKIP_PIXELS 0x0D04 +#define GL_PACK_ALIGNMENT 0x0D05 +#define GL_MAP_COLOR 0x0D10 +#define GL_MAP_STENCIL 0x0D11 +#define GL_INDEX_SHIFT 0x0D12 +#define GL_INDEX_OFFSET 0x0D13 +#define GL_RED_SCALE 0x0D14 +#define GL_RED_BIAS 0x0D15 +#define GL_ZOOM_X 0x0D16 +#define GL_ZOOM_Y 0x0D17 +#define GL_GREEN_SCALE 0x0D18 +#define GL_GREEN_BIAS 0x0D19 +#define GL_BLUE_SCALE 0x0D1A +#define GL_BLUE_BIAS 0x0D1B +#define GL_ALPHA_SCALE 0x0D1C +#define GL_ALPHA_BIAS 0x0D1D +#define GL_DEPTH_SCALE 0x0D1E +#define GL_DEPTH_BIAS 0x0D1F +#define GL_MAX_EVAL_ORDER 0x0D30 +#define GL_MAX_LIGHTS 0x0D31 +#define GL_MAX_CLIP_PLANES 0x0D32 +#define GL_MAX_TEXTURE_SIZE 0x0D33 +#define GL_MAX_PIXEL_MAP_TABLE 0x0D34 +#define GL_MAX_ATTRIB_STACK_DEPTH 0x0D35 +#define GL_MAX_MODELVIEW_STACK_DEPTH 0x0D36 +#define GL_MAX_NAME_STACK_DEPTH 0x0D37 +#define GL_MAX_PROJECTION_STACK_DEPTH 0x0D38 +#define GL_MAX_TEXTURE_STACK_DEPTH 0x0D39 +#define GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GL_MAX_CLIENT_ATTRIB_STACK_DEPTH 0x0D3B +#define GL_SUBPIXEL_BITS 0x0D50 +#define GL_INDEX_BITS 0x0D51 +#define GL_RED_BITS 0x0D52 +#define GL_GREEN_BITS 0x0D53 +#define GL_BLUE_BITS 0x0D54 +#define GL_ALPHA_BITS 0x0D55 +#define GL_DEPTH_BITS 0x0D56 +#define GL_STENCIL_BITS 0x0D57 +#define GL_ACCUM_RED_BITS 0x0D58 +#define GL_ACCUM_GREEN_BITS 0x0D59 +#define GL_ACCUM_BLUE_BITS 0x0D5A +#define GL_ACCUM_ALPHA_BITS 0x0D5B +#define GL_NAME_STACK_DEPTH 0x0D70 +#define GL_AUTO_NORMAL 0x0D80 +#define GL_MAP1_COLOR_4 0x0D90 +#define GL_MAP1_INDEX 0x0D91 +#define GL_MAP1_NORMAL 0x0D92 +#define GL_MAP1_TEXTURE_COORD_1 0x0D93 +#define GL_MAP1_TEXTURE_COORD_2 0x0D94 +#define GL_MAP1_TEXTURE_COORD_3 0x0D95 +#define GL_MAP1_TEXTURE_COORD_4 0x0D96 +#define GL_MAP1_VERTEX_3 0x0D97 +#define GL_MAP1_VERTEX_4 0x0D98 +#define GL_MAP2_COLOR_4 0x0DB0 +#define GL_MAP2_INDEX 0x0DB1 +#define GL_MAP2_NORMAL 0x0DB2 +#define GL_MAP2_TEXTURE_COORD_1 0x0DB3 +#define GL_MAP2_TEXTURE_COORD_2 0x0DB4 +#define GL_MAP2_TEXTURE_COORD_3 0x0DB5 +#define GL_MAP2_TEXTURE_COORD_4 0x0DB6 +#define GL_MAP2_VERTEX_3 0x0DB7 +#define GL_MAP2_VERTEX_4 0x0DB8 +#define GL_MAP1_GRID_DOMAIN 0x0DD0 +#define GL_MAP1_GRID_SEGMENTS 0x0DD1 +#define GL_MAP2_GRID_DOMAIN 0x0DD2 +#define GL_MAP2_GRID_SEGMENTS 0x0DD3 +#define GL_TEXTURE_1D 0x0DE0 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_FEEDBACK_BUFFER_POINTER 0x0DF0 +#define GL_FEEDBACK_BUFFER_SIZE 0x0DF1 +#define GL_FEEDBACK_BUFFER_TYPE 0x0DF2 +#define GL_SELECTION_BUFFER_POINTER 0x0DF3 +#define GL_SELECTION_BUFFER_SIZE 0x0DF4 +/* GL_TEXTURE_BINDING_1D */ +/* GL_TEXTURE_BINDING_2D */ +/* GL_TEXTURE_BINDING_3D */ +/* GL_VERTEX_ARRAY */ +/* GL_NORMAL_ARRAY */ +/* GL_COLOR_ARRAY */ +/* GL_INDEX_ARRAY */ +/* GL_TEXTURE_COORD_ARRAY */ +/* GL_EDGE_FLAG_ARRAY */ +/* GL_VERTEX_ARRAY_SIZE */ +/* GL_VERTEX_ARRAY_TYPE */ +/* GL_VERTEX_ARRAY_STRIDE */ +/* GL_NORMAL_ARRAY_TYPE */ +/* GL_NORMAL_ARRAY_STRIDE */ +/* GL_COLOR_ARRAY_SIZE */ +/* GL_COLOR_ARRAY_TYPE */ +/* GL_COLOR_ARRAY_STRIDE */ +/* GL_INDEX_ARRAY_TYPE */ +/* GL_INDEX_ARRAY_STRIDE */ +/* GL_TEXTURE_COORD_ARRAY_SIZE */ +/* GL_TEXTURE_COORD_ARRAY_TYPE */ +/* GL_TEXTURE_COORD_ARRAY_STRIDE */ +/* GL_EDGE_FLAG_ARRAY_STRIDE */ +/* GL_POLYGON_OFFSET_FACTOR */ +/* GL_POLYGON_OFFSET_UNITS */ +/* GL_COLOR_TABLE */ +/* GL_POST_CONVOLUTION_COLOR_TABLE */ +/* GL_POST_COLOR_MATRIX_COLOR_TABLE */ +/* GL_CONVOLUTION_1D */ +/* GL_CONVOLUTION_2D */ +/* GL_SEPARABLE_2D */ +/* GL_POST_CONVOLUTION_RED_SCALE */ +/* GL_POST_CONVOLUTION_GREEN_SCALE */ +/* GL_POST_CONVOLUTION_BLUE_SCALE */ +/* GL_POST_CONVOLUTION_ALPHA_SCALE */ +/* GL_POST_CONVOLUTION_RED_BIAS */ +/* GL_POST_CONVOLUTION_GREEN_BIAS */ +/* GL_POST_CONVOLUTION_BLUE_BIAS */ +/* GL_POST_CONVOLUTION_ALPHA_BIAS */ +/* GL_COLOR_MATRIX */ +/* GL_COLOR_MATRIX_STACK_DEPTH */ +/* GL_MAX_COLOR_MATRIX_STACK_DEPTH */ +/* GL_POST_COLOR_MATRIX_RED_SCALE */ +/* GL_POST_COLOR_MATRIX_GREEN_SCALE */ +/* GL_POST_COLOR_MATRIX_BLUE_SCALE */ +/* GL_POST_COLOR_MATRIX_ALPHA_SCALE */ +/* GL_POST_COLOR_MATRIX_RED_BIAS */ +/* GL_POST_COLOR_MATRIX_GREEN_BIAS */ +/* GL_POST_COLOR_MATRIX_BLUE_BIAS */ +/* GL_POST_COLOR_MATRIX_ALPHA_BIAS */ +/* GL_HISTOGRAM */ +/* GL_MINMAX */ +/* GL_MAX_ELEMENTS_VERTICES */ +/* GL_MAX_ELEMENTS_INDICES */ +/* GL_RESCALE_NORMAL */ +/* GL_LIGHT_MODEL_COLOR_CONTROL */ +/* GL_PACK_SKIP_IMAGES */ +/* GL_PACK_IMAGE_HEIGHT */ +/* GL_UNPACK_SKIP_IMAGES */ +/* GL_UNPACK_IMAGE_HEIGHT */ +/* GL_TEXTURE_3D */ +/* GL_MAX_3D_TEXTURE_SIZE */ +/* GL_BLEND_COLOR */ +/* GL_BLEND_EQUATION */ + +/* GetTextureParameter */ +/* GL_TEXTURE_MAG_FILTER */ +/* GL_TEXTURE_MIN_FILTER */ +/* GL_TEXTURE_WRAP_S */ +/* GL_TEXTURE_WRAP_T */ +#define GL_TEXTURE_WIDTH 0x1000 +#define GL_TEXTURE_HEIGHT 0x1001 +#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 +#define GL_TEXTURE_BORDER_COLOR 0x1004 +#define GL_TEXTURE_BORDER 0x1005 +/* GL_TEXTURE_RED_SIZE */ +/* GL_TEXTURE_GREEN_SIZE */ +/* GL_TEXTURE_BLUE_SIZE */ +/* GL_TEXTURE_ALPHA_SIZE */ +/* GL_TEXTURE_LUMINANCE_SIZE */ +/* GL_TEXTURE_INTENSITY_SIZE */ +/* GL_TEXTURE_PRIORITY */ +/* GL_TEXTURE_RESIDENT */ +/* GL_TEXTURE_DEPTH */ +/* GL_TEXTURE_WRAP_R */ +/* GL_TEXTURE_MIN_LOD */ +/* GL_TEXTURE_MAX_LOD */ +/* GL_TEXTURE_BASE_LEVEL */ +/* GL_TEXTURE_MAX_LEVEL */ + +/* HintMode */ +#define GL_DONT_CARE 0x1100 +#define GL_FASTEST 0x1101 +#define GL_NICEST 0x1102 + +/* HintTarget */ +/* GL_PERSPECTIVE_CORRECTION_HINT */ +/* GL_POINT_SMOOTH_HINT */ +/* GL_LINE_SMOOTH_HINT */ +/* GL_POLYGON_SMOOTH_HINT */ +/* GL_FOG_HINT */ + +/* HistogramTarget */ +/* GL_HISTOGRAM */ +/* GL_PROXY_HISTOGRAM */ + +/* IndexPointerType */ +/* GL_SHORT */ +/* GL_INT */ +/* GL_FLOAT */ +/* GL_DOUBLE */ + +/* LightModelColorControl */ +/* GL_SINGLE_COLOR */ +/* GL_SEPARATE_SPECULAR_COLOR */ + +/* LightModelParameter */ +/* GL_LIGHT_MODEL_AMBIENT */ +/* GL_LIGHT_MODEL_LOCAL_VIEWER */ +/* GL_LIGHT_MODEL_TWO_SIDE */ +/* GL_LIGHT_MODEL_COLOR_CONTROL */ + +/* LightName */ +#define GL_LIGHT0 0x4000 +#define GL_LIGHT1 0x4001 +#define GL_LIGHT2 0x4002 +#define GL_LIGHT3 0x4003 +#define GL_LIGHT4 0x4004 +#define GL_LIGHT5 0x4005 +#define GL_LIGHT6 0x4006 +#define GL_LIGHT7 0x4007 + +/* LightParameter */ +#define GL_AMBIENT 0x1200 +#define GL_DIFFUSE 0x1201 +#define GL_SPECULAR 0x1202 +#define GL_POSITION 0x1203 +#define GL_SPOT_DIRECTION 0x1204 +#define GL_SPOT_EXPONENT 0x1205 +#define GL_SPOT_CUTOFF 0x1206 +#define GL_CONSTANT_ATTENUATION 0x1207 +#define GL_LINEAR_ATTENUATION 0x1208 +#define GL_QUADRATIC_ATTENUATION 0x1209 + +/* InterleavedArrays */ +/* GL_V2F */ +/* GL_V3F */ +/* GL_C4UB_V2F */ +/* GL_C4UB_V3F */ +/* GL_C3F_V3F */ +/* GL_N3F_V3F */ +/* GL_C4F_N3F_V3F */ +/* GL_T2F_V3F */ +/* GL_T4F_V4F */ +/* GL_T2F_C4UB_V3F */ +/* GL_T2F_C3F_V3F */ +/* GL_T2F_N3F_V3F */ +/* GL_T2F_C4F_N3F_V3F */ +/* GL_T4F_C4F_N3F_V4F */ + +/* ListMode */ +#define GL_COMPILE 0x1300 +#define GL_COMPILE_AND_EXECUTE 0x1301 + +/* ListNameType */ +/* GL_BYTE */ +/* GL_UNSIGNED_BYTE */ +/* GL_SHORT */ +/* GL_UNSIGNED_SHORT */ +/* GL_INT */ +/* GL_UNSIGNED_INT */ +/* GL_FLOAT */ +/* GL_2_BYTES */ +/* GL_3_BYTES */ +/* GL_4_BYTES */ + +/* LogicOp */ +#define GL_CLEAR 0x1500 +#define GL_AND 0x1501 +#define GL_AND_REVERSE 0x1502 +#define GL_COPY 0x1503 +#define GL_AND_INVERTED 0x1504 +#define GL_NOOP 0x1505 +#define GL_XOR 0x1506 +#define GL_OR 0x1507 +#define GL_NOR 0x1508 +#define GL_EQUIV 0x1509 +#define GL_INVERT 0x150A +#define GL_OR_REVERSE 0x150B +#define GL_COPY_INVERTED 0x150C +#define GL_OR_INVERTED 0x150D +#define GL_NAND 0x150E +#define GL_SET 0x150F + +/* MapTarget */ +/* GL_MAP1_COLOR_4 */ +/* GL_MAP1_INDEX */ +/* GL_MAP1_NORMAL */ +/* GL_MAP1_TEXTURE_COORD_1 */ +/* GL_MAP1_TEXTURE_COORD_2 */ +/* GL_MAP1_TEXTURE_COORD_3 */ +/* GL_MAP1_TEXTURE_COORD_4 */ +/* GL_MAP1_VERTEX_3 */ +/* GL_MAP1_VERTEX_4 */ +/* GL_MAP2_COLOR_4 */ +/* GL_MAP2_INDEX */ +/* GL_MAP2_NORMAL */ +/* GL_MAP2_TEXTURE_COORD_1 */ +/* GL_MAP2_TEXTURE_COORD_2 */ +/* GL_MAP2_TEXTURE_COORD_3 */ +/* GL_MAP2_TEXTURE_COORD_4 */ +/* GL_MAP2_VERTEX_3 */ +/* GL_MAP2_VERTEX_4 */ + +/* MaterialFace */ +/* GL_FRONT */ +/* GL_BACK */ +/* GL_FRONT_AND_BACK */ + +/* MaterialParameter */ +#define GL_EMISSION 0x1600 +#define GL_SHININESS 0x1601 +#define GL_AMBIENT_AND_DIFFUSE 0x1602 +#define GL_COLOR_INDEXES 0x1603 +/* GL_AMBIENT */ +/* GL_DIFFUSE */ +/* GL_SPECULAR */ + +/* MatrixMode */ +#define GL_MODELVIEW 0x1700 +#define GL_PROJECTION 0x1701 +#define GL_TEXTURE 0x1702 + +/* MeshMode1 */ +/* GL_POINT */ +/* GL_LINE */ + +/* MeshMode2 */ +/* GL_POINT */ +/* GL_LINE */ +/* GL_FILL */ + +/* MinmaxTarget */ +/* GL_MINMAX */ + +/* NormalPointerType */ +/* GL_BYTE */ +/* GL_SHORT */ +/* GL_INT */ +/* GL_FLOAT */ +/* GL_DOUBLE */ + +/* PixelCopyType */ +#define GL_COLOR 0x1800 +#define GL_DEPTH 0x1801 +#define GL_STENCIL 0x1802 + +/* PixelFormat */ +#define GL_COLOR_INDEX 0x1900 +#define GL_STENCIL_INDEX 0x1901 +#define GL_DEPTH_COMPONENT 0x1902 +#define GL_RED 0x1903 +#define GL_GREEN 0x1904 +#define GL_BLUE 0x1905 +#define GL_ALPHA 0x1906 +#define GL_RGB 0x1907 +#define GL_RGBA 0x1908 +#define GL_LUMINANCE 0x1909 +#define GL_LUMINANCE_ALPHA 0x190A +/* GL_ABGR */ + +/* PixelInternalFormat */ +/* GL_ALPHA4 */ +/* GL_ALPHA8 */ +/* GL_ALPHA12 */ +/* GL_ALPHA16 */ +/* GL_LUMINANCE4 */ +/* GL_LUMINANCE8 */ +/* GL_LUMINANCE12 */ +/* GL_LUMINANCE16 */ +/* GL_LUMINANCE4_ALPHA4 */ +/* GL_LUMINANCE6_ALPHA2 */ +/* GL_LUMINANCE8_ALPHA8 */ +/* GL_LUMINANCE12_ALPHA4 */ +/* GL_LUMINANCE12_ALPHA12 */ +/* GL_LUMINANCE16_ALPHA16 */ +/* GL_INTENSITY */ +/* GL_INTENSITY4 */ +/* GL_INTENSITY8 */ +/* GL_INTENSITY12 */ +/* GL_INTENSITY16 */ +/* GL_R3_G3_B2 */ +/* GL_RGB4 */ +/* GL_RGB5 */ +/* GL_RGB8 */ +/* GL_RGB10 */ +/* GL_RGB12 */ +/* GL_RGB16 */ +/* GL_RGBA2 */ +/* GL_RGBA4 */ +/* GL_RGB5_A1 */ +/* GL_RGBA8 */ +/* GL_RGB10_A2 */ +/* GL_RGBA12 */ +/* GL_RGBA16 */ + +/* PixelMap */ +/* GL_PIXEL_MAP_I_TO_I */ +/* GL_PIXEL_MAP_S_TO_S */ +/* GL_PIXEL_MAP_I_TO_R */ +/* GL_PIXEL_MAP_I_TO_G */ +/* GL_PIXEL_MAP_I_TO_B */ +/* GL_PIXEL_MAP_I_TO_A */ +/* GL_PIXEL_MAP_R_TO_R */ +/* GL_PIXEL_MAP_G_TO_G */ +/* GL_PIXEL_MAP_B_TO_B */ +/* GL_PIXEL_MAP_A_TO_A */ + +/* PixelStore */ +/* GL_UNPACK_SWAP_BYTES */ +/* GL_UNPACK_LSB_FIRST */ +/* GL_UNPACK_ROW_LENGTH */ +/* GL_UNPACK_SKIP_ROWS */ +/* GL_UNPACK_SKIP_PIXELS */ +/* GL_UNPACK_ALIGNMENT */ +/* GL_PACK_SWAP_BYTES */ +/* GL_PACK_LSB_FIRST */ +/* GL_PACK_ROW_LENGTH */ +/* GL_PACK_SKIP_ROWS */ +/* GL_PACK_SKIP_PIXELS */ +/* GL_PACK_ALIGNMENT */ +/* GL_PACK_SKIP_IMAGES */ +/* GL_PACK_IMAGE_HEIGHT */ +/* GL_UNPACK_SKIP_IMAGES */ +/* GL_UNPACK_IMAGE_HEIGHT */ + +/* PixelTransfer */ +/* GL_MAP_COLOR */ +/* GL_MAP_STENCIL */ +/* GL_INDEX_SHIFT */ +/* GL_INDEX_OFFSET */ +/* GL_RED_SCALE */ +/* GL_RED_BIAS */ +/* GL_GREEN_SCALE */ +/* GL_GREEN_BIAS */ +/* GL_BLUE_SCALE */ +/* GL_BLUE_BIAS */ +/* GL_ALPHA_SCALE */ +/* GL_ALPHA_BIAS */ +/* GL_DEPTH_SCALE */ +/* GL_DEPTH_BIAS */ +/* GL_POST_CONVOLUTION_RED_SCALE */ +/* GL_POST_CONVOLUTION_GREEN_SCALE */ +/* GL_POST_CONVOLUTION_BLUE_SCALE */ +/* GL_POST_CONVOLUTION_ALPHA_SCALE */ +/* GL_POST_CONVOLUTION_RED_BIAS */ +/* GL_POST_CONVOLUTION_GREEN_BIAS */ +/* GL_POST_CONVOLUTION_BLUE_BIAS */ +/* GL_POST_CONVOLUTION_ALPHA_BIAS */ +/* GL_POST_COLOR_MATRIX_RED_SCALE */ +/* GL_POST_COLOR_MATRIX_GREEN_SCALE */ +/* GL_POST_COLOR_MATRIX_BLUE_SCALE */ +/* GL_POST_COLOR_MATRIX_ALPHA_SCALE */ +/* GL_POST_COLOR_MATRIX_RED_BIAS */ +/* GL_POST_COLOR_MATRIX_GREEN_BIAS */ +/* GL_POST_COLOR_MATRIX_BLUE_BIAS */ +/* GL_POST_COLOR_MATRIX_ALPHA_BIAS */ + +/* PixelType */ +#define GL_BITMAP 0x1A00 +/* GL_BYTE */ +/* GL_UNSIGNED_BYTE */ +/* GL_SHORT */ +/* GL_UNSIGNED_SHORT */ +/* GL_INT */ +/* GL_UNSIGNED_INT */ +/* GL_FLOAT */ +/* GL_BGR */ +/* GL_BGRA */ +/* GL_UNSIGNED_BYTE_3_3_2 */ +/* GL_UNSIGNED_SHORT_4_4_4_4 */ +/* GL_UNSIGNED_SHORT_5_5_5_1 */ +/* GL_UNSIGNED_INT_8_8_8_8 */ +/* GL_UNSIGNED_INT_10_10_10_2 */ +/* GL_UNSIGNED_SHORT_5_6_5 */ +/* GL_UNSIGNED_BYTE_2_3_3_REV */ +/* GL_UNSIGNED_SHORT_5_6_5_REV */ +/* GL_UNSIGNED_SHORT_4_4_4_4_REV */ +/* GL_UNSIGNED_SHORT_1_5_5_5_REV */ +/* GL_UNSIGNED_INT_8_8_8_8_REV */ +/* GL_UNSIGNED_INT_2_10_10_10_REV */ + +/* PolygonMode */ +#define GL_POINT 0x1B00 +#define GL_LINE 0x1B01 +#define GL_FILL 0x1B02 + +/* ReadBufferMode */ +/* GL_FRONT_LEFT */ +/* GL_FRONT_RIGHT */ +/* GL_BACK_LEFT */ +/* GL_BACK_RIGHT */ +/* GL_FRONT */ +/* GL_BACK */ +/* GL_LEFT */ +/* GL_RIGHT */ +/* GL_AUX0 */ +/* GL_AUX1 */ +/* GL_AUX2 */ +/* GL_AUX3 */ + +/* RenderingMode */ +#define GL_RENDER 0x1C00 +#define GL_FEEDBACK 0x1C01 +#define GL_SELECT 0x1C02 + +/* SeparableTarget */ +/* GL_SEPARABLE_2D */ + +/* ShadingModel */ +#define GL_FLAT 0x1D00 +#define GL_SMOOTH 0x1D01 + +/* StencilFunction */ +/* GL_NEVER */ +/* GL_LESS */ +/* GL_EQUAL */ +/* GL_LEQUAL */ +/* GL_GREATER */ +/* GL_NOTEQUAL */ +/* GL_GEQUAL */ +/* GL_ALWAYS */ + +/* StencilOp */ +/* GL_ZERO */ +#define GL_KEEP 0x1E00 +#define GL_REPLACE 0x1E01 +#define GL_INCR 0x1E02 +#define GL_DECR 0x1E03 +/* GL_INVERT */ + +/* StringName */ +#define GL_VENDOR 0x1F00 +#define GL_RENDERER 0x1F01 +#define GL_VERSION 0x1F02 +#define GL_EXTENSIONS 0x1F03 + +/* TextureCoordName */ +#define GL_S 0x2000 +#define GL_T 0x2001 +#define GL_R 0x2002 +#define GL_Q 0x2003 + +/* TexCoordPointerType */ +/* GL_SHORT */ +/* GL_INT */ +/* GL_FLOAT */ +/* GL_DOUBLE */ + +/* TextureEnvMode */ +#define GL_MODULATE 0x2100 +#define GL_DECAL 0x2101 +/* GL_BLEND */ +/* GL_REPLACE */ + +/* TextureEnvParameter */ +#define GL_TEXTURE_ENV_MODE 0x2200 +#define GL_TEXTURE_ENV_COLOR 0x2201 + +/* TextureEnvTarget */ +#define GL_TEXTURE_ENV 0x2300 + +/* TextureGenMode */ +#define GL_EYE_LINEAR 0x2400 +#define GL_OBJECT_LINEAR 0x2401 +#define GL_SPHERE_MAP 0x2402 + +/* TextureGenParameter */ +#define GL_TEXTURE_GEN_MODE 0x2500 +#define GL_OBJECT_PLANE 0x2501 +#define GL_EYE_PLANE 0x2502 + +/* TextureMagFilter */ +#define GL_NEAREST 0x2600 +#define GL_LINEAR 0x2601 + +/* TextureMinFilter */ +/* GL_NEAREST */ +/* GL_LINEAR */ +#define GL_NEAREST_MIPMAP_NEAREST 0x2700 +#define GL_LINEAR_MIPMAP_NEAREST 0x2701 +#define GL_NEAREST_MIPMAP_LINEAR 0x2702 +#define GL_LINEAR_MIPMAP_LINEAR 0x2703 + +/* TextureParameterName */ +#define GL_TEXTURE_MAG_FILTER 0x2800 +#define GL_TEXTURE_MIN_FILTER 0x2801 +#define GL_TEXTURE_WRAP_S 0x2802 +#define GL_TEXTURE_WRAP_T 0x2803 +/* GL_TEXTURE_BORDER_COLOR */ +/* GL_TEXTURE_PRIORITY */ +/* GL_TEXTURE_WRAP_R */ +/* GL_TEXTURE_MIN_LOD */ +/* GL_TEXTURE_MAX_LOD */ +/* GL_TEXTURE_BASE_LEVEL */ +/* GL_TEXTURE_MAX_LEVEL */ + +/* TextureTarget */ +/* GL_TEXTURE_1D */ +/* GL_TEXTURE_2D */ +/* GL_PROXY_TEXTURE_1D */ +/* GL_PROXY_TEXTURE_2D */ +/* GL_TEXTURE_3D */ +/* GL_PROXY_TEXTURE_3D */ + +/* TextureWrapMode */ +#define GL_CLAMP 0x2900 +#define GL_REPEAT 0x2901 +/* GL_CLAMP_TO_EDGE */ + +/* VertexPointerType */ +/* GL_SHORT */ +/* GL_INT */ +/* GL_FLOAT */ +/* GL_DOUBLE */ + +/* ClientAttribMask */ +#define GL_CLIENT_PIXEL_STORE_BIT 0x00000001 +#define GL_CLIENT_VERTEX_ARRAY_BIT 0x00000002 +#define GL_CLIENT_ALL_ATTRIB_BITS 0xffffffff + +/* polygon_offset */ +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +#define GL_POLYGON_OFFSET_POINT 0x2A01 +#define GL_POLYGON_OFFSET_LINE 0x2A02 +#define GL_POLYGON_OFFSET_FILL 0x8037 + +/* texture */ +#define GL_ALPHA4 0x803B +#define GL_ALPHA8 0x803C +#define GL_ALPHA12 0x803D +#define GL_ALPHA16 0x803E +#define GL_LUMINANCE4 0x803F +#define GL_LUMINANCE8 0x8040 +#define GL_LUMINANCE12 0x8041 +#define GL_LUMINANCE16 0x8042 +#define GL_LUMINANCE4_ALPHA4 0x8043 +#define GL_LUMINANCE6_ALPHA2 0x8044 +#define GL_LUMINANCE8_ALPHA8 0x8045 +#define GL_LUMINANCE12_ALPHA4 0x8046 +#define GL_LUMINANCE12_ALPHA12 0x8047 +#define GL_LUMINANCE16_ALPHA16 0x8048 +#define GL_INTENSITY 0x8049 +#define GL_INTENSITY4 0x804A +#define GL_INTENSITY8 0x804B +#define GL_INTENSITY12 0x804C +#define GL_INTENSITY16 0x804D +#define GL_R3_G3_B2 0x2A10 +#define GL_RGB4 0x804F +#define GL_RGB5 0x8050 +#define GL_RGB8 0x8051 +#define GL_RGB10 0x8052 +#define GL_RGB12 0x8053 +#define GL_RGB16 0x8054 +#define GL_RGBA2 0x8055 +#define GL_RGBA4 0x8056 +#define GL_RGB5_A1 0x8057 +#define GL_RGBA8 0x8058 +#define GL_RGB10_A2 0x8059 +#define GL_RGBA12 0x805A +#define GL_RGBA16 0x805B +#define GL_TEXTURE_RED_SIZE 0x805C +#define GL_TEXTURE_GREEN_SIZE 0x805D +#define GL_TEXTURE_BLUE_SIZE 0x805E +#define GL_TEXTURE_ALPHA_SIZE 0x805F +#define GL_TEXTURE_LUMINANCE_SIZE 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE 0x8061 +#define GL_PROXY_TEXTURE_1D 0x8063 +#define GL_PROXY_TEXTURE_2D 0x8064 + +/* texture_object */ +#define GL_TEXTURE_PRIORITY 0x8066 +#define GL_TEXTURE_RESIDENT 0x8067 +#define GL_TEXTURE_BINDING_1D 0x8068 +#define GL_TEXTURE_BINDING_2D 0x8069 +#define GL_TEXTURE_BINDING_3D 0x806A + +/* vertex_array */ +#define GL_VERTEX_ARRAY 0x8074 +#define GL_NORMAL_ARRAY 0x8075 +#define GL_COLOR_ARRAY 0x8076 +#define GL_INDEX_ARRAY 0x8077 +#define GL_TEXTURE_COORD_ARRAY 0x8078 +#define GL_EDGE_FLAG_ARRAY 0x8079 +#define GL_VERTEX_ARRAY_SIZE 0x807A +#define GL_VERTEX_ARRAY_TYPE 0x807B +#define GL_VERTEX_ARRAY_STRIDE 0x807C +#define GL_NORMAL_ARRAY_TYPE 0x807E +#define GL_NORMAL_ARRAY_STRIDE 0x807F +#define GL_COLOR_ARRAY_SIZE 0x8081 +#define GL_COLOR_ARRAY_TYPE 0x8082 +#define GL_COLOR_ARRAY_STRIDE 0x8083 +#define GL_INDEX_ARRAY_TYPE 0x8085 +#define GL_INDEX_ARRAY_STRIDE 0x8086 +#define GL_TEXTURE_COORD_ARRAY_SIZE 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE 0x808A +#define GL_EDGE_FLAG_ARRAY_STRIDE 0x808C +#define GL_VERTEX_ARRAY_POINTER 0x808E +#define GL_NORMAL_ARRAY_POINTER 0x808F +#define GL_COLOR_ARRAY_POINTER 0x8090 +#define GL_INDEX_ARRAY_POINTER 0x8091 +#define GL_TEXTURE_COORD_ARRAY_POINTER 0x8092 +#define GL_EDGE_FLAG_ARRAY_POINTER 0x8093 +#define GL_V2F 0x2A20 +#define GL_V3F 0x2A21 +#define GL_C4UB_V2F 0x2A22 +#define GL_C4UB_V3F 0x2A23 +#define GL_C3F_V3F 0x2A24 +#define GL_N3F_V3F 0x2A25 +#define GL_C4F_N3F_V3F 0x2A26 +#define GL_T2F_V3F 0x2A27 +#define GL_T4F_V4F 0x2A28 +#define GL_T2F_C4UB_V3F 0x2A29 +#define GL_T2F_C3F_V3F 0x2A2A +#define GL_T2F_N3F_V3F 0x2A2B +#define GL_T2F_C4F_N3F_V3F 0x2A2C +#define GL_T4F_C4F_N3F_V4F 0x2A2D + +/* bgra */ +#define GL_BGR 0x80E0 +#define GL_BGRA 0x80E1 + +/* blend_color */ +#define GL_CONSTANT_COLOR 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GL_BLEND_COLOR 0x8005 + +/* blend_minmax */ +#define GL_FUNC_ADD 0x8006 +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +#define GL_BLEND_EQUATION 0x8009 + +/* blend_equation_separate */ +#define GL_BLEND_EQUATION_RGB 0x8009 +#define GL_BLEND_EQUATION_ALPHA 0x883D + +/* blend_subtract */ +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B + +/* color_matrix */ +#define GL_COLOR_MATRIX 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS 0x80BB + +/* color_table */ +#define GL_COLOR_TABLE 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE 0x80D2 +#define GL_PROXY_COLOR_TABLE 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE 0x80D5 +#define GL_COLOR_TABLE_SCALE 0x80D6 +#define GL_COLOR_TABLE_BIAS 0x80D7 +#define GL_COLOR_TABLE_FORMAT 0x80D8 +#define GL_COLOR_TABLE_WIDTH 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE 0x80DF + +/* convolution */ +#define GL_CONVOLUTION_1D 0x8010 +#define GL_CONVOLUTION_2D 0x8011 +#define GL_SEPARABLE_2D 0x8012 +#define GL_CONVOLUTION_BORDER_MODE 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS 0x8015 +#define GL_REDUCE 0x8016 +#define GL_CONVOLUTION_FORMAT 0x8017 +#define GL_CONVOLUTION_WIDTH 0x8018 +#define GL_CONVOLUTION_HEIGHT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS 0x8023 +#define GL_CONSTANT_BORDER 0x8151 +#define GL_REPLICATE_BORDER 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR 0x8154 + +/* draw_range_elements */ +#define GL_MAX_ELEMENTS_VERTICES 0x80E8 +#define GL_MAX_ELEMENTS_INDICES 0x80E9 + +/* histogram */ +#define GL_HISTOGRAM 0x8024 +#define GL_PROXY_HISTOGRAM 0x8025 +#define GL_HISTOGRAM_WIDTH 0x8026 +#define GL_HISTOGRAM_FORMAT 0x8027 +#define GL_HISTOGRAM_RED_SIZE 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE 0x802C +#define GL_HISTOGRAM_SINK 0x802D +#define GL_MINMAX 0x802E +#define GL_MINMAX_FORMAT 0x802F +#define GL_MINMAX_SINK 0x8030 +#define GL_TABLE_TOO_LARGE 0x8031 + +/* packed_pixels */ +#define GL_UNSIGNED_BYTE_3_3_2 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2 0x8036 +#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 +#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 + +/* rescale_normal */ +#define GL_RESCALE_NORMAL 0x803A + +/* separate_specular_color */ +#define GL_LIGHT_MODEL_COLOR_CONTROL 0x81F8 +#define GL_SINGLE_COLOR 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR 0x81FA + +/* texture3D */ +#define GL_PACK_SKIP_IMAGES 0x806B +#define GL_PACK_IMAGE_HEIGHT 0x806C +#define GL_UNPACK_SKIP_IMAGES 0x806D +#define GL_UNPACK_IMAGE_HEIGHT 0x806E +#define GL_TEXTURE_3D 0x806F +#define GL_PROXY_TEXTURE_3D 0x8070 +#define GL_TEXTURE_DEPTH 0x8071 +#define GL_TEXTURE_WRAP_R 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE 0x8073 + +/* texture_edge_clamp */ +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_CLAMP_TO_BORDER 0x812D + +/* texture_lod */ +#define GL_TEXTURE_MIN_LOD 0x813A +#define GL_TEXTURE_MAX_LOD 0x813B +#define GL_TEXTURE_BASE_LEVEL 0x813C +#define GL_TEXTURE_MAX_LEVEL 0x813D + +/* GetTarget1_2 */ +#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 +#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 +#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_ALIASED_POINT_SIZE_RANGE 0x846D +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E + +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_ACTIVE_TEXTURE 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE 0x84E1 +#define GL_MAX_TEXTURE_UNITS 0x84E2 + +#define GL_COMBINE 0x8570 +#define GL_COMBINE_RGB 0x8571 +#define GL_COMBINE_ALPHA 0x8572 +#define GL_RGB_SCALE 0x8573 +#define GL_ADD_SIGNED 0x8574 +#define GL_INTERPOLATE 0x8575 +#define GL_CONSTANT 0x8576 +#define GL_PRIMARY_COLOR 0x8577 +#define GL_PREVIOUS 0x8578 +#define GL_SUBTRACT 0x84E7 + +#define GL_SRC0_RGB 0x8580 +#define GL_SRC1_RGB 0x8581 +#define GL_SRC2_RGB 0x8582 +#define GL_SRC0_ALPHA 0x8588 +#define GL_SRC1_ALPHA 0x8589 +#define GL_SRC2_ALPHA 0x858A + +/* Obsolete */ +#define GL_SOURCE0_RGB 0x8580 +#define GL_SOURCE1_RGB 0x8581 +#define GL_SOURCE2_RGB 0x8582 +#define GL_SOURCE0_ALPHA 0x8588 +#define GL_SOURCE1_ALPHA 0x8589 +#define GL_SOURCE2_ALPHA 0x858A + +#define GL_OPERAND0_RGB 0x8590 +#define GL_OPERAND1_RGB 0x8591 +#define GL_OPERAND2_RGB 0x8592 +#define GL_OPERAND0_ALPHA 0x8598 +#define GL_OPERAND1_ALPHA 0x8599 +#define GL_OPERAND2_ALPHA 0x859A + +#define GL_DOT3_RGB 0x86AE +#define GL_DOT3_RGBA 0x86AF + +#define GL_TRANSPOSE_MODELVIEW_MATRIX 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX 0x84E6 + +#define GL_NORMAL_MAP 0x8511 +#define GL_REFLECTION_MAP 0x8512 +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C + +#define GL_COMPRESSED_ALPHA 0x84E9 +#define GL_COMPRESSED_LUMINANCE 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA 0x84EB +#define GL_COMPRESSED_INTENSITY 0x84EC +#define GL_COMPRESSED_RGB 0x84ED +#define GL_COMPRESSED_RGBA 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 +#define GL_TEXTURE_COMPRESSED 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 + +#define GL_MULTISAMPLE 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE 0x809F +#define GL_SAMPLE_COVERAGE 0x80A0 +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_MULTISAMPLE_BIT 0x20000000 + +#define GL_DEPTH_COMPONENT16 0x81A5 +#define GL_DEPTH_COMPONENT24 0x81A6 +#define GL_DEPTH_COMPONENT32 0x81A7 +#define GL_TEXTURE_DEPTH_SIZE 0x884A +#define GL_DEPTH_TEXTURE_MODE 0x884B + +#define GL_TEXTURE_COMPARE_MODE 0x884C +#define GL_TEXTURE_COMPARE_FUNC 0x884D +#define GL_COMPARE_R_TO_TEXTURE 0x884E + +/* occlusion_query */ +#define GL_QUERY_COUNTER_BITS 0x8864 +#define GL_CURRENT_QUERY 0x8865 +#define GL_QUERY_RESULT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE 0x8867 +#define GL_SAMPLES_PASSED 0x8914 + +#define GL_FOG_COORD_SRC 0x8450 +#define GL_FOG_COORD 0x8451 +#define GL_FRAGMENT_DEPTH 0x8452 +#define GL_CURRENT_FOG_COORD 0x8453 +#define GL_FOG_COORD_ARRAY_TYPE 0x8454 +#define GL_FOG_COORD_ARRAY_STRIDE 0x8455 +#define GL_FOG_COORD_ARRAY_POINTER 0x8456 +#define GL_FOG_COORD_ARRAY 0x8457 + +/* Obsolete */ +#define GL_FOG_COORDINATE_SOURCE 0x8450 +#define GL_FOG_COORDINATE 0x8451 +#define GL_CURRENT_FOG_COORDINATE 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER 0x8456 +#define GL_FOG_COORDINATE_ARRAY 0x8457 + +#define GL_COLOR_SUM 0x8458 +#define GL_CURRENT_SECONDARY_COLOR 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER 0x845D +#define GL_SECONDARY_COLOR_ARRAY 0x845E + +#define GL_POINT_SIZE_MIN 0x8126 +#define GL_POINT_SIZE_MAX 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 +#define GL_POINT_DISTANCE_ATTENUATION 0x8129 + +#define GL_BLEND_DST_RGB 0x80C8 +#define GL_BLEND_SRC_RGB 0x80C9 +#define GL_BLEND_DST_ALPHA 0x80CA +#define GL_BLEND_SRC_ALPHA 0x80CB + +#define GL_GENERATE_MIPMAP 0x8191 +#define GL_GENERATE_MIPMAP_HINT 0x8192 + +#define GL_INCR_WRAP 0x8507 +#define GL_DECR_WRAP 0x8508 + +#define GL_MIRRORED_REPEAT 0x8370 + +#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD +#define GL_TEXTURE_FILTER_CONTROL 0x8500 +#define GL_TEXTURE_LOD_BIAS 0x8501 + +/* vertex_buffer_object */ +#define GL_ARRAY_BUFFER 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GL_ARRAY_BUFFER_BINDING 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 +#define GL_VERTEX_ARRAY_BUFFER_BINDING 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING 0x889C +#define GL_FOG_COORD_ARRAY_BUFFER_BINDING 0x889D +#define GL_WEIGHT_ARRAY_BUFFER_BINDING 0x889E +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F +#define GL_STREAM_DRAW 0x88E0 +#define GL_STREAM_READ 0x88E1 +#define GL_STREAM_COPY 0x88E2 +#define GL_STATIC_DRAW 0x88E4 +#define GL_STATIC_READ 0x88E5 +#define GL_STATIC_COPY 0x88E6 +#define GL_DYNAMIC_DRAW 0x88E8 +#define GL_DYNAMIC_READ 0x88E9 +#define GL_DYNAMIC_COPY 0x88EA +#define GL_READ_ONLY 0x88B8 +#define GL_WRITE_ONLY 0x88B9 +#define GL_READ_WRITE 0x88BA +#define GL_BUFFER_SIZE 0x8764 +#define GL_BUFFER_USAGE 0x8765 +#define GL_BUFFER_ACCESS 0x88BB +#define GL_BUFFER_MAPPED 0x88BC +#define GL_BUFFER_MAP_POINTER 0x88BD +/* Obsolete */ +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING 0x889D + +/* OpenGL 2.0 */ +#define GL_CURRENT_PROGRAM 0x8B8D +#define GL_SHADER_TYPE 0x8B4F +#define GL_DELETE_STATUS 0x8B80 +#define GL_COMPILE_STATUS 0x8B81 +#define GL_LINK_STATUS 0x8B82 +#define GL_VALIDATE_STATUS 0x8B83 +#define GL_INFO_LOG_LENGTH 0x8B84 +#define GL_ATTACHED_SHADERS 0x8B85 +#define GL_ACTIVE_UNIFORMS 0x8B86 +#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 +#define GL_SHADER_SOURCE_LENGTH 0x8B88 +#define GL_FLOAT_VEC2 0x8B50 +#define GL_FLOAT_VEC3 0x8B51 +#define GL_FLOAT_VEC4 0x8B52 +#define GL_INT_VEC2 0x8B53 +#define GL_INT_VEC3 0x8B54 +#define GL_INT_VEC4 0x8B55 +#define GL_BOOL 0x8B56 +#define GL_BOOL_VEC2 0x8B57 +#define GL_BOOL_VEC3 0x8B58 +#define GL_BOOL_VEC4 0x8B59 +#define GL_FLOAT_MAT2 0x8B5A +#define GL_FLOAT_MAT3 0x8B5B +#define GL_FLOAT_MAT4 0x8B5C +#define GL_SAMPLER_1D 0x8B5D +#define GL_SAMPLER_2D 0x8B5E +#define GL_SAMPLER_3D 0x8B5F +#define GL_SAMPLER_CUBE 0x8B60 +#define GL_SAMPLER_1D_SHADOW 0x8B61 +#define GL_SAMPLER_2D_SHADOW 0x8B62 +#define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#define GL_VERTEX_SHADER 0x8B31 +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A +#define GL_MAX_VARYING_FLOATS 0x8B4B +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D +#define GL_ACTIVE_ATTRIBUTES 0x8B89 +#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A +#define GL_FRAGMENT_SHADER 0x8B30 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B +#define GL_MAX_VERTEX_ATTRIBS 0x8869 +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A +#define GL_CURRENT_VERTEX_ATTRIB 0x8626 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 +#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE 0x8643 +#define GL_MAX_TEXTURE_COORDS 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 +#define GL_MAX_DRAW_BUFFERS 0x8824 +#define GL_DRAW_BUFFER0 0x8825 +#define GL_DRAW_BUFFER1 0x8826 +#define GL_DRAW_BUFFER2 0x8827 +#define GL_DRAW_BUFFER3 0x8828 +#define GL_DRAW_BUFFER4 0x8829 +#define GL_DRAW_BUFFER5 0x882A +#define GL_DRAW_BUFFER6 0x882B +#define GL_DRAW_BUFFER7 0x882C +#define GL_DRAW_BUFFER8 0x882D +#define GL_DRAW_BUFFER9 0x882E +#define GL_DRAW_BUFFER10 0x882F +#define GL_DRAW_BUFFER11 0x8830 +#define GL_DRAW_BUFFER12 0x8831 +#define GL_DRAW_BUFFER13 0x8832 +#define GL_DRAW_BUFFER14 0x8833 +#define GL_DRAW_BUFFER15 0x8834 +#define GL_POINT_SPRITE 0x8861 +#define GL_COORD_REPLACE 0x8862 +#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 +#define GL_LOWER_LEFT 0x8CA1 +#define GL_UPPER_LEFT 0x8CA2 +#define GL_STENCIL_BACK_FUNC 0x8800 +#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 +#define GL_STENCIL_BACK_REF 0x8CA3 +#define GL_STENCIL_BACK_FAIL 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 +#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 + +/* OpenGL 2.1 */ +#define GL_CURRENT_RASTER_SECONDARY_COLOR 0x845F +#define GL_PIXEL_PACK_BUFFER 0x88EB +#define GL_PIXEL_UNPACK_BUFFER 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF +#define GL_FLOAT_MAT2x3 0x8B65 +#define GL_FLOAT_MAT2x4 0x8B66 +#define GL_FLOAT_MAT3x2 0x8B67 +#define GL_FLOAT_MAT3x4 0x8B68 +#define GL_FLOAT_MAT4x2 0x8B69 +#define GL_FLOAT_MAT4x3 0x8B6A +#define GL_SRGB 0x8C40 +#define GL_SRGB8 0x8C41 +#define GL_SRGB_ALPHA 0x8C42 +#define GL_SRGB8_ALPHA8 0x8C43 +#define GL_SLUMINANCE_ALPHA 0x8C44 +#define GL_SLUMINANCE8_ALPHA8 0x8C45 +#define GL_SLUMINANCE 0x8C46 +#define GL_SLUMINANCE8 0x8C47 +#define GL_COMPRESSED_SRGB 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 +#define GL_COMPRESSED_SLUMINANCE 0x8C4A +#define GL_COMPRESSED_SLUMINANCE_ALPHA 0x8C4B + +/*************************************************************/ + +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glAccumProcPtr) (GLenum op, GLfloat value); +typedef void (* glAlphaFuncProcPtr) (GLenum func, GLclampf ref); +typedef GLboolean (* glAreTexturesResidentProcPtr) (GLsizei n, const GLuint *textures, GLboolean *residences); +typedef void (* glArrayElementProcPtr) (GLint i); +typedef void (* glBeginProcPtr) (GLenum mode); +typedef void (* glBindTextureProcPtr) (GLenum target, GLuint texture); +typedef void (* glBitmapProcPtr) (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); +typedef void (* glBlendColorProcPtr) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +typedef void (* glBlendEquationProcPtr) (GLenum mode); +typedef void (* glBlendEquationSeparateProcPtr) (GLenum modeRGB, GLenum modeAlpha); +typedef void (* glBlendFuncProcPtr) (GLenum sfactor, GLenum dfactor); +typedef void (* glCallListProcPtr) (GLuint list); +typedef void (* glCallListsProcPtr) (GLsizei n, GLenum type, const GLvoid *lists); +typedef void (* glClearProcPtr) (GLbitfield mask); +typedef void (* glClearAccumProcPtr) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +typedef void (* glClearColorProcPtr) (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +typedef void (* glClearDepthProcPtr) (GLclampd depth); +typedef void (* glClearIndexProcPtr) (GLfloat c); +typedef void (* glClearStencilProcPtr) (GLint s); +typedef void (* glClipPlaneProcPtr) (GLenum plane, const GLdouble *equation); +typedef void (* glColor3bProcPtr) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (* glColor3bvProcPtr) (const GLbyte *v); +typedef void (* glColor3dProcPtr) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (* glColor3dvProcPtr) (const GLdouble *v); +typedef void (* glColor3fProcPtr) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (* glColor3fvProcPtr) (const GLfloat *v); +typedef void (* glColor3iProcPtr) (GLint red, GLint green, GLint blue); +typedef void (* glColor3ivProcPtr) (const GLint *v); +typedef void (* glColor3sProcPtr) (GLshort red, GLshort green, GLshort blue); +typedef void (* glColor3svProcPtr) (const GLshort *v); +typedef void (* glColor3ubProcPtr) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (* glColor3ubvProcPtr) (const GLubyte *v); +typedef void (* glColor3uiProcPtr) (GLuint red, GLuint green, GLuint blue); +typedef void (* glColor3uivProcPtr) (const GLuint *v); +typedef void (* glColor3usProcPtr) (GLushort red, GLushort green, GLushort blue); +typedef void (* glColor3usvProcPtr) (const GLushort *v); +typedef void (* glColor4bProcPtr) (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); +typedef void (* glColor4bvProcPtr) (const GLbyte *v); +typedef void (* glColor4dProcPtr) (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); +typedef void (* glColor4dvProcPtr) (const GLdouble *v); +typedef void (* glColor4fProcPtr) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +typedef void (* glColor4fvProcPtr) (const GLfloat *v); +typedef void (* glColor4iProcPtr) (GLint red, GLint green, GLint blue, GLint alpha); +typedef void (* glColor4ivProcPtr) (const GLint *v); +typedef void (* glColor4sProcPtr) (GLshort red, GLshort green, GLshort blue, GLshort alpha); +typedef void (* glColor4svProcPtr) (const GLshort *v); +typedef void (* glColor4ubProcPtr) (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); +typedef void (* glColor4ubvProcPtr) (const GLubyte *v); +typedef void (* glColor4uiProcPtr) (GLuint red, GLuint green, GLuint blue, GLuint alpha); +typedef void (* glColor4uivProcPtr) (const GLuint *v); +typedef void (* glColor4usProcPtr) (GLushort red, GLushort green, GLushort blue, GLushort alpha); +typedef void (* glColor4usvProcPtr) (const GLushort *v); +typedef void (* glColorMaskProcPtr) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +typedef void (* glColorMaterialProcPtr) (GLenum face, GLenum mode); +typedef void (* glColorPointerProcPtr) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glColorSubTableProcPtr) (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); +typedef void (* glColorTableProcPtr) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); +typedef void (* glColorTableParameterfvProcPtr) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (* glColorTableParameterivProcPtr) (GLenum target, GLenum pname, const GLint *params); +typedef void (* glConvolutionFilter1DProcPtr) (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); +typedef void (* glConvolutionFilter2DProcPtr) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); +typedef void (* glConvolutionParameterfProcPtr) (GLenum target, GLenum pname, GLfloat params); +typedef void (* glConvolutionParameterfvProcPtr) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (* glConvolutionParameteriProcPtr) (GLenum target, GLenum pname, GLint params); +typedef void (* glConvolutionParameterivProcPtr) (GLenum target, GLenum pname, const GLint *params); +typedef void (* glCopyColorSubTableProcPtr) (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +typedef void (* glCopyColorTableProcPtr) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (* glCopyConvolutionFilter1DProcPtr) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +typedef void (* glCopyConvolutionFilter2DProcPtr) (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (* glCopyPixelsProcPtr) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); +typedef void (* glCopyTexImage1DProcPtr) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (* glCopyTexImage2DProcPtr) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (* glCopyTexSubImage1DProcPtr) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (* glCopyTexSubImage2DProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (* glCopyTexSubImage3DProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (* glCullFaceProcPtr) (GLenum mode); +typedef void (* glDeleteListsProcPtr) (GLuint list, GLsizei range); +typedef void (* glDeleteTexturesProcPtr) (GLsizei n, const GLuint *textures); +typedef void (* glDepthFuncProcPtr) (GLenum func); +typedef void (* glDepthMaskProcPtr) (GLboolean flag); +typedef void (* glDepthRangeProcPtr) (GLclampd zNear, GLclampd zFar); +typedef void (* glDisableProcPtr) (GLenum cap); +typedef void (* glDisableClientStateProcPtr) (GLenum array); +typedef void (* glDrawArraysProcPtr) (GLenum mode, GLint first, GLsizei count); +typedef void (* glDrawBufferProcPtr) (GLenum mode); +typedef void (* glDrawElementsProcPtr) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); +typedef void (* glDrawPixelsProcPtr) (GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (* glDrawRangeElementsProcPtr) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +typedef void (* glEdgeFlagProcPtr) (GLboolean flag); +typedef void (* glEdgeFlagPointerProcPtr) (GLsizei stride, const GLvoid *pointer); +typedef void (* glEdgeFlagvProcPtr) (const GLboolean *flag); +typedef void (* glEnableProcPtr) (GLenum cap); +typedef void (* glEnableClientStateProcPtr) (GLenum array); +typedef void (* glEndProcPtr) (void); +typedef void (* glEndListProcPtr) (void); +typedef void (* glEvalCoord1dProcPtr) (GLdouble u); +typedef void (* glEvalCoord1dvProcPtr) (const GLdouble *u); +typedef void (* glEvalCoord1fProcPtr) (GLfloat u); +typedef void (* glEvalCoord1fvProcPtr) (const GLfloat *u); +typedef void (* glEvalCoord2dProcPtr) (GLdouble u, GLdouble v); +typedef void (* glEvalCoord2dvProcPtr) (const GLdouble *u); +typedef void (* glEvalCoord2fProcPtr) (GLfloat u, GLfloat v); +typedef void (* glEvalCoord2fvProcPtr) (const GLfloat *u); +typedef void (* glEvalMesh1ProcPtr) (GLenum mode, GLint i1, GLint i2); +typedef void (* glEvalMesh2ProcPtr) (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); +typedef void (* glEvalPoint1ProcPtr) (GLint i); +typedef void (* glEvalPoint2ProcPtr) (GLint i, GLint j); +typedef void (* glFeedbackBufferProcPtr) (GLsizei size, GLenum type, GLfloat *buffer); +typedef void (* glFinishProcPtr) (void); +typedef void (* glFlushProcPtr) (void); +typedef void (* glFogfProcPtr) (GLenum pname, GLfloat param); +typedef void (* glFogfvProcPtr) (GLenum pname, const GLfloat *params); +typedef void (* glFogiProcPtr) (GLenum pname, GLint param); +typedef void (* glFogivProcPtr) (GLenum pname, const GLint *params); +typedef void (* glFrontFaceProcPtr) (GLenum mode); +typedef void (* glFrustumProcPtr) (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +typedef GLuint (* glGenListsProcPtr) (GLsizei range); +typedef void (* glGenTexturesProcPtr) (GLsizei n, GLuint *textures); +typedef void (* glGetBooleanvProcPtr) (GLenum pname, GLboolean *params); +typedef void (* glGetClipPlaneProcPtr) (GLenum plane, GLdouble *equation); +typedef void (* glGetColorTableProcPtr) (GLenum target, GLenum format, GLenum type, GLvoid *table); +typedef void (* glGetColorTableParameterfvProcPtr) (GLenum target, GLenum pname, GLfloat *params); +typedef void (* glGetColorTableParameterivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetConvolutionFilterProcPtr) (GLenum target, GLenum format, GLenum type, GLvoid *image); +typedef void (* glGetConvolutionParameterfvProcPtr) (GLenum target, GLenum pname, GLfloat *params); +typedef void (* glGetConvolutionParameterivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetDoublevProcPtr) (GLenum pname, GLdouble *params); +typedef GLenum (* glGetErrorProcPtr) (void); +typedef void (* glGetFloatvProcPtr) (GLenum pname, GLfloat *params); +typedef void (* glGetHistogramProcPtr) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (* glGetHistogramParameterfvProcPtr) (GLenum target, GLenum pname, GLfloat *params); +typedef void (* glGetHistogramParameterivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetIntegervProcPtr) (GLenum pname, GLint *params); +typedef void (* glGetLightfvProcPtr) (GLenum light, GLenum pname, GLfloat *params); +typedef void (* glGetLightivProcPtr) (GLenum light, GLenum pname, GLint *params); +typedef void (* glGetMapdvProcPtr) (GLenum target, GLenum query, GLdouble *v); +typedef void (* glGetMapfvProcPtr) (GLenum target, GLenum query, GLfloat *v); +typedef void (* glGetMapivProcPtr) (GLenum target, GLenum query, GLint *v); +typedef void (* glGetMaterialfvProcPtr) (GLenum face, GLenum pname, GLfloat *params); +typedef void (* glGetMaterialivProcPtr) (GLenum face, GLenum pname, GLint *params); +typedef void (* glGetMinmaxProcPtr) (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +typedef void (* glGetMinmaxParameterfvProcPtr) (GLenum target, GLenum pname, GLfloat *params); +typedef void (* glGetMinmaxParameterivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetPixelMapfvProcPtr) (GLenum map, GLfloat *values); +typedef void (* glGetPixelMapuivProcPtr) (GLenum map, GLuint *values); +typedef void (* glGetPixelMapusvProcPtr) (GLenum map, GLushort *values); +typedef void (* glGetPointervProcPtr) (GLenum pname, GLvoid **params); +typedef void (* glGetPolygonStippleProcPtr) (GLubyte *mask); +typedef void (* glGetSeparableFilterProcPtr) (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); +typedef const GLubyte *(* glGetStringProcPtr) (GLenum name); +typedef void (* glGetTexEnvfvProcPtr) (GLenum target, GLenum pname, GLfloat *params); +typedef void (* glGetTexEnvivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetTexGendvProcPtr) (GLenum coord, GLenum pname, GLdouble *params); +typedef void (* glGetTexGenfvProcPtr) (GLenum coord, GLenum pname, GLfloat *params); +typedef void (* glGetTexGenivProcPtr) (GLenum coord, GLenum pname, GLint *params); +typedef void (* glGetTexImageProcPtr) (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); +typedef void (* glGetTexLevelParameterfvProcPtr) (GLenum target, GLint level, GLenum pname, GLfloat *params); +typedef void (* glGetTexLevelParameterivProcPtr) (GLenum target, GLint level, GLenum pname, GLint *params); +typedef void (* glGetTexParameterfvProcPtr) (GLenum target, GLenum pname, GLfloat *params); +typedef void (* glGetTexParameterivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glHintProcPtr) (GLenum target, GLenum mode); +typedef void (* glHistogramProcPtr) (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +typedef void (* glIndexMaskProcPtr) (GLuint mask); +typedef void (* glIndexPointerProcPtr) (GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glIndexdProcPtr) (GLdouble c); +typedef void (* glIndexdvProcPtr) (const GLdouble *c); +typedef void (* glIndexfProcPtr) (GLfloat c); +typedef void (* glIndexfvProcPtr) (const GLfloat *c); +typedef void (* glIndexiProcPtr) (GLint c); +typedef void (* glIndexivProcPtr) (const GLint *c); +typedef void (* glIndexsProcPtr) (GLshort c); +typedef void (* glIndexsvProcPtr) (const GLshort *c); +typedef void (* glIndexubProcPtr) (GLubyte c); +typedef void (* glIndexubvProcPtr) (const GLubyte *c); +typedef void (* glInitNamesProcPtr) (void); +typedef void (* glInterleavedArraysProcPtr) (GLenum format, GLsizei stride, const GLvoid *pointer); +typedef GLboolean (* glIsEnabledProcPtr) (GLenum cap); +typedef GLboolean (* glIsListProcPtr) (GLuint list); +typedef GLboolean (* glIsTextureProcPtr) (GLuint texture); +typedef void (* glLightModelfProcPtr) (GLenum pname, GLfloat param); +typedef void (* glLightModelfvProcPtr) (GLenum pname, const GLfloat *params); +typedef void (* glLightModeliProcPtr) (GLenum pname, GLint param); +typedef void (* glLightModelivProcPtr) (GLenum pname, const GLint *params); +typedef void (* glLightfProcPtr) (GLenum light, GLenum pname, GLfloat param); +typedef void (* glLightfvProcPtr) (GLenum light, GLenum pname, const GLfloat *params); +typedef void (* glLightiProcPtr) (GLenum light, GLenum pname, GLint param); +typedef void (* glLightivProcPtr) (GLenum light, GLenum pname, const GLint *params); +typedef void (* glLineStippleProcPtr) (GLint factor, GLushort pattern); +typedef void (* glLineWidthProcPtr) (GLfloat width); +typedef void (* glListBaseProcPtr) (GLuint base); +typedef void (* glLoadIdentityProcPtr) (void); +typedef void (* glLoadMatrixdProcPtr) (const GLdouble *m); +typedef void (* glLoadMatrixfProcPtr) (const GLfloat *m); +typedef void (* glLoadNameProcPtr) (GLuint name); +typedef void (* glLogicOpProcPtr) (GLenum opcode); +typedef void (* glMap1dProcPtr) (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +typedef void (* glMap1fProcPtr) (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +typedef void (* glMap2dProcPtr) (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +typedef void (* glMap2fProcPtr) (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +typedef void (* glMapGrid1dProcPtr) (GLint un, GLdouble u1, GLdouble u2); +typedef void (* glMapGrid1fProcPtr) (GLint un, GLfloat u1, GLfloat u2); +typedef void (* glMapGrid2dProcPtr) (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); +typedef void (* glMapGrid2fProcPtr) (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); +typedef void (* glMaterialfProcPtr) (GLenum face, GLenum pname, GLfloat param); +typedef void (* glMaterialfvProcPtr) (GLenum face, GLenum pname, const GLfloat *params); +typedef void (* glMaterialiProcPtr) (GLenum face, GLenum pname, GLint param); +typedef void (* glMaterialivProcPtr) (GLenum face, GLenum pname, const GLint *params); +typedef void (* glMatrixModeProcPtr) (GLenum mode); +typedef void (* glMinmaxProcPtr) (GLenum target, GLenum internalformat, GLboolean sink); +typedef void (* glMultMatrixdProcPtr) (const GLdouble *m); +typedef void (* glMultMatrixfProcPtr) (const GLfloat *m); +typedef void (* glNewListProcPtr) (GLuint list, GLenum mode); +typedef void (* glNormal3bProcPtr) (GLbyte nx, GLbyte ny, GLbyte nz); +typedef void (* glNormal3bvProcPtr) (const GLbyte *v); +typedef void (* glNormal3dProcPtr) (GLdouble nx, GLdouble ny, GLdouble nz); +typedef void (* glNormal3dvProcPtr) (const GLdouble *v); +typedef void (* glNormal3fProcPtr) (GLfloat nx, GLfloat ny, GLfloat nz); +typedef void (* glNormal3fvProcPtr) (const GLfloat *v); +typedef void (* glNormal3iProcPtr) (GLint nx, GLint ny, GLint nz); +typedef void (* glNormal3ivProcPtr) (const GLint *v); +typedef void (* glNormal3sProcPtr) (GLshort nx, GLshort ny, GLshort nz); +typedef void (* glNormal3svProcPtr) (const GLshort *v); +typedef void (* glNormalPointerProcPtr) (GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glOrthoProcPtr) (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +typedef void (* glPassThroughProcPtr) (GLfloat token); +typedef void (* glPixelMapfvProcPtr) (GLenum map, GLint mapsize, const GLfloat *values); +typedef void (* glPixelMapuivProcPtr) (GLenum map, GLint mapsize, const GLuint *values); +typedef void (* glPixelMapusvProcPtr) (GLenum map, GLint mapsize, const GLushort *values); +typedef void (* glPixelStorefProcPtr) (GLenum pname, GLfloat param); +typedef void (* glPixelStoreiProcPtr) (GLenum pname, GLint param); +typedef void (* glPixelTransferfProcPtr) (GLenum pname, GLfloat param); +typedef void (* glPixelTransferiProcPtr) (GLenum pname, GLint param); +typedef void (* glPixelZoomProcPtr) (GLfloat xfactor, GLfloat yfactor); +typedef void (* glPointSizeProcPtr) (GLfloat size); +typedef void (* glPolygonModeProcPtr) (GLenum face, GLenum mode); +typedef void (* glPolygonOffsetProcPtr) (GLfloat factor, GLfloat units); +typedef void (* glPolygonStippleProcPtr) (const GLubyte *mask); +typedef void (* glPopAttribProcPtr) (void); +typedef void (* glPopClientAttribProcPtr) (void); +typedef void (* glPopMatrixProcPtr) (void); +typedef void (* glPopNameProcPtr) (void); +typedef void (* glPrioritizeTexturesProcPtr) (GLsizei n, const GLuint *textures, const GLclampf *priorities); +typedef void (* glPushAttribProcPtr) (GLbitfield mask); +typedef void (* glPushClientAttribProcPtr) (GLbitfield mask); +typedef void (* glPushMatrixProcPtr) (void); +typedef void (* glPushNameProcPtr) (GLuint name); +typedef void (* glRasterPos2dProcPtr) (GLdouble x, GLdouble y); +typedef void (* glRasterPos2dvProcPtr) (const GLdouble *v); +typedef void (* glRasterPos2fProcPtr) (GLfloat x, GLfloat y); +typedef void (* glRasterPos2fvProcPtr) (const GLfloat *v); +typedef void (* glRasterPos2iProcPtr) (GLint x, GLint y); +typedef void (* glRasterPos2ivProcPtr) (const GLint *v); +typedef void (* glRasterPos2sProcPtr) (GLshort x, GLshort y); +typedef void (* glRasterPos2svProcPtr) (const GLshort *v); +typedef void (* glRasterPos3dProcPtr) (GLdouble x, GLdouble y, GLdouble z); +typedef void (* glRasterPos3dvProcPtr) (const GLdouble *v); +typedef void (* glRasterPos3fProcPtr) (GLfloat x, GLfloat y, GLfloat z); +typedef void (* glRasterPos3fvProcPtr) (const GLfloat *v); +typedef void (* glRasterPos3iProcPtr) (GLint x, GLint y, GLint z); +typedef void (* glRasterPos3ivProcPtr) (const GLint *v); +typedef void (* glRasterPos3sProcPtr) (GLshort x, GLshort y, GLshort z); +typedef void (* glRasterPos3svProcPtr) (const GLshort *v); +typedef void (* glRasterPos4dProcPtr) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glRasterPos4dvProcPtr) (const GLdouble *v); +typedef void (* glRasterPos4fProcPtr) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glRasterPos4fvProcPtr) (const GLfloat *v); +typedef void (* glRasterPos4iProcPtr) (GLint x, GLint y, GLint z, GLint w); +typedef void (* glRasterPos4ivProcPtr) (const GLint *v); +typedef void (* glRasterPos4sProcPtr) (GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (* glRasterPos4svProcPtr) (const GLshort *v); +typedef void (* glReadBufferProcPtr) (GLenum mode); +typedef void (* glReadPixelsProcPtr) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); +typedef void (* glRectdProcPtr) (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); +typedef void (* glRectdvProcPtr) (const GLdouble *v1, const GLdouble *v2); +typedef void (* glRectfProcPtr) (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); +typedef void (* glRectfvProcPtr) (const GLfloat *v1, const GLfloat *v2); +typedef void (* glRectiProcPtr) (GLint x1, GLint y1, GLint x2, GLint y2); +typedef void (* glRectivProcPtr) (const GLint *v1, const GLint *v2); +typedef void (* glRectsProcPtr) (GLshort x1, GLshort y1, GLshort x2, GLshort y2); +typedef void (* glRectsvProcPtr) (const GLshort *v1, const GLshort *v2); +typedef GLint (* glRenderModeProcPtr) (GLenum mode); +typedef void (* glResetHistogramProcPtr) (GLenum target); +typedef void (* glResetMinmaxProcPtr) (GLenum target); +typedef void (* glRotatedProcPtr) (GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +typedef void (* glRotatefProcPtr) (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +typedef void (* glScaledProcPtr) (GLdouble x, GLdouble y, GLdouble z); +typedef void (* glScalefProcPtr) (GLfloat x, GLfloat y, GLfloat z); +typedef void (* glScissorProcPtr) (GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (* glSelectBufferProcPtr) (GLsizei size, GLuint *buffer); +typedef void (* glSeparableFilter2DProcPtr) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); +typedef void (* glShadeModelProcPtr) (GLenum mode); +typedef void (* glStencilFuncProcPtr) (GLenum func, GLint ref, GLuint mask); +typedef void (* glStencilMaskProcPtr) (GLuint mask); +typedef void (* glStencilOpProcPtr) (GLenum fail, GLenum zfail, GLenum zpass); +typedef void (* glTexCoord1dProcPtr) (GLdouble s); +typedef void (* glTexCoord1dvProcPtr) (const GLdouble *v); +typedef void (* glTexCoord1fProcPtr) (GLfloat s); +typedef void (* glTexCoord1fvProcPtr) (const GLfloat *v); +typedef void (* glTexCoord1iProcPtr) (GLint s); +typedef void (* glTexCoord1ivProcPtr) (const GLint *v); +typedef void (* glTexCoord1sProcPtr) (GLshort s); +typedef void (* glTexCoord1svProcPtr) (const GLshort *v); +typedef void (* glTexCoord2dProcPtr) (GLdouble s, GLdouble t); +typedef void (* glTexCoord2dvProcPtr) (const GLdouble *v); +typedef void (* glTexCoord2fProcPtr) (GLfloat s, GLfloat t); +typedef void (* glTexCoord2fvProcPtr) (const GLfloat *v); +typedef void (* glTexCoord2iProcPtr) (GLint s, GLint t); +typedef void (* glTexCoord2ivProcPtr) (const GLint *v); +typedef void (* glTexCoord2sProcPtr) (GLshort s, GLshort t); +typedef void (* glTexCoord2svProcPtr) (const GLshort *v); +typedef void (* glTexCoord3dProcPtr) (GLdouble s, GLdouble t, GLdouble r); +typedef void (* glTexCoord3dvProcPtr) (const GLdouble *v); +typedef void (* glTexCoord3fProcPtr) (GLfloat s, GLfloat t, GLfloat r); +typedef void (* glTexCoord3fvProcPtr) (const GLfloat *v); +typedef void (* glTexCoord3iProcPtr) (GLint s, GLint t, GLint r); +typedef void (* glTexCoord3ivProcPtr) (const GLint *v); +typedef void (* glTexCoord3sProcPtr) (GLshort s, GLshort t, GLshort r); +typedef void (* glTexCoord3svProcPtr) (const GLshort *v); +typedef void (* glTexCoord4dProcPtr) (GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (* glTexCoord4dvProcPtr) (const GLdouble *v); +typedef void (* glTexCoord4fProcPtr) (GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (* glTexCoord4fvProcPtr) (const GLfloat *v); +typedef void (* glTexCoord4iProcPtr) (GLint s, GLint t, GLint r, GLint q); +typedef void (* glTexCoord4ivProcPtr) (const GLint *v); +typedef void (* glTexCoord4sProcPtr) (GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (* glTexCoord4svProcPtr) (const GLshort *v); +typedef void (* glTexCoordPointerProcPtr) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glTexEnvfProcPtr) (GLenum target, GLenum pname, GLfloat param); +typedef void (* glTexEnvfvProcPtr) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (* glTexEnviProcPtr) (GLenum target, GLenum pname, GLint param); +typedef void (* glTexEnvivProcPtr) (GLenum target, GLenum pname, const GLint *params); +typedef void (* glTexGendProcPtr) (GLenum coord, GLenum pname, GLdouble param); +typedef void (* glTexGendvProcPtr) (GLenum coord, GLenum pname, const GLdouble *params); +typedef void (* glTexGenfProcPtr) (GLenum coord, GLenum pname, GLfloat param); +typedef void (* glTexGenfvProcPtr) (GLenum coord, GLenum pname, const GLfloat *params); +typedef void (* glTexGeniProcPtr) (GLenum coord, GLenum pname, GLint param); +typedef void (* glTexGenivProcPtr) (GLenum coord, GLenum pname, const GLint *params); +typedef void (* glTexImage1DProcPtr) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (* glTexImage2DProcPtr) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (* glTexImage3DProcPtr) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (* glTexParameterfProcPtr) (GLenum target, GLenum pname, GLfloat param); +typedef void (* glTexParameterfvProcPtr) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (* glTexParameteriProcPtr) (GLenum target, GLenum pname, GLint param); +typedef void (* glTexParameterivProcPtr) (GLenum target, GLenum pname, const GLint *params); +typedef void (* glTexSubImage1DProcPtr) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (* glTexSubImage2DProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (* glTexSubImage3DProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (* glTranslatedProcPtr) (GLdouble x, GLdouble y, GLdouble z); +typedef void (* glTranslatefProcPtr) (GLfloat x, GLfloat y, GLfloat z); +typedef void (* glVertex2dProcPtr) (GLdouble x, GLdouble y); +typedef void (* glVertex2dvProcPtr) (const GLdouble *v); +typedef void (* glVertex2fProcPtr) (GLfloat x, GLfloat y); +typedef void (* glVertex2fvProcPtr) (const GLfloat *v); +typedef void (* glVertex2iProcPtr) (GLint x, GLint y); +typedef void (* glVertex2ivProcPtr) (const GLint *v); +typedef void (* glVertex2sProcPtr) (GLshort x, GLshort y); +typedef void (* glVertex2svProcPtr) (const GLshort *v); +typedef void (* glVertex3dProcPtr) (GLdouble x, GLdouble y, GLdouble z); +typedef void (* glVertex3dvProcPtr) (const GLdouble *v); +typedef void (* glVertex3fProcPtr) (GLfloat x, GLfloat y, GLfloat z); +typedef void (* glVertex3fvProcPtr) (const GLfloat *v); +typedef void (* glVertex3iProcPtr) (GLint x, GLint y, GLint z); +typedef void (* glVertex3ivProcPtr) (const GLint *v); +typedef void (* glVertex3sProcPtr) (GLshort x, GLshort y, GLshort z); +typedef void (* glVertex3svProcPtr) (const GLshort *v); +typedef void (* glVertex4dProcPtr) (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glVertex4dvProcPtr) (const GLdouble *v); +typedef void (* glVertex4fProcPtr) (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glVertex4fvProcPtr) (const GLfloat *v); +typedef void (* glVertex4iProcPtr) (GLint x, GLint y, GLint z, GLint w); +typedef void (* glVertex4ivProcPtr) (const GLint *v); +typedef void (* glVertex4sProcPtr) (GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (* glVertex4svProcPtr) (const GLshort *v); +typedef void (* glVertexPointerProcPtr) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glViewportProcPtr) (GLint x, GLint y, GLsizei width, GLsizei height); + +typedef void (* glSampleCoverageProcPtr) (GLclampf value, GLboolean invert); + +typedef void (* glLoadTransposeMatrixfProcPtr) (const GLfloat *m); +typedef void (* glLoadTransposeMatrixdProcPtr) (const GLdouble *m); +typedef void (* glMultTransposeMatrixfProcPtr) (const GLfloat *m); +typedef void (* glMultTransposeMatrixdProcPtr) (const GLdouble *m); + +typedef void (* glCompressedTexImage3DProcPtr) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexImage2DProcPtr) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexImage1DProcPtr) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexSubImage3DProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexSubImage2DProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexSubImage1DProcPtr) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (* glGetCompressedTexImageProcPtr) (GLenum target, GLint lod, GLvoid *img); + +typedef void (* glActiveTextureProcPtr) (GLenum texture); +typedef void (* glClientActiveTextureProcPtr) (GLenum texture); +typedef void (* glMultiTexCoord1dProcPtr) (GLenum target, GLdouble s); +typedef void (* glMultiTexCoord1dvProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord1fProcPtr) (GLenum target, GLfloat s); +typedef void (* glMultiTexCoord1fvProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord1iProcPtr) (GLenum target, GLint s); +typedef void (* glMultiTexCoord1ivProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord1sProcPtr) (GLenum target, GLshort s); +typedef void (* glMultiTexCoord1svProcPtr) (GLenum target, const GLshort *v); +typedef void (* glMultiTexCoord2dProcPtr) (GLenum target, GLdouble s, GLdouble t); +typedef void (* glMultiTexCoord2dvProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord2fProcPtr) (GLenum target, GLfloat s, GLfloat t); +typedef void (* glMultiTexCoord2fvProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord2iProcPtr) (GLenum target, GLint s, GLint t); +typedef void (* glMultiTexCoord2ivProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord2sProcPtr) (GLenum target, GLshort s, GLshort t); +typedef void (* glMultiTexCoord2svProcPtr) (GLenum target, const GLshort *v); +typedef void (* glMultiTexCoord3dProcPtr) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (* glMultiTexCoord3dvProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord3fProcPtr) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (* glMultiTexCoord3fvProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord3iProcPtr) (GLenum target, GLint s, GLint t, GLint r); +typedef void (* glMultiTexCoord3ivProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord3sProcPtr) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (* glMultiTexCoord3svProcPtr) (GLenum target, const GLshort *v); +typedef void (* glMultiTexCoord4dProcPtr) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (* glMultiTexCoord4dvProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord4fProcPtr) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (* glMultiTexCoord4fvProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord4iProcPtr) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (* glMultiTexCoord4ivProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord4sProcPtr) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (* glMultiTexCoord4svProcPtr) (GLenum target, const GLshort *v); + +typedef void (* glFogCoordfProcPtr) (GLfloat coord); +typedef void (* glFogCoordfvProcPtr) (const GLfloat *coord); +typedef void (* glFogCoorddProcPtr) (GLdouble coord); +typedef void (* glFogCoorddvProcPtr) (const GLdouble *coord); +typedef void (* glFogCoordPointerProcPtr) (GLenum type, GLsizei stride, const GLvoid *pointer); + +typedef void (* glSecondaryColor3bProcPtr) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (* glSecondaryColor3bvProcPtr) (const GLbyte *v); +typedef void (* glSecondaryColor3dProcPtr) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (* glSecondaryColor3dvProcPtr) (const GLdouble *v); +typedef void (* glSecondaryColor3fProcPtr) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (* glSecondaryColor3fvProcPtr) (const GLfloat *v); +typedef void (* glSecondaryColor3iProcPtr) (GLint red, GLint green, GLint blue); +typedef void (* glSecondaryColor3ivProcPtr) (const GLint *v); +typedef void (* glSecondaryColor3sProcPtr) (GLshort red, GLshort green, GLshort blue); +typedef void (* glSecondaryColor3svProcPtr) (const GLshort *v); +typedef void (* glSecondaryColor3ubProcPtr) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (* glSecondaryColor3ubvProcPtr) (const GLubyte *v); +typedef void (* glSecondaryColor3uiProcPtr) (GLuint red, GLuint green, GLuint blue); +typedef void (* glSecondaryColor3uivProcPtr) (const GLuint *v); +typedef void (* glSecondaryColor3usProcPtr) (GLushort red, GLushort green, GLushort blue); +typedef void (* glSecondaryColor3usvProcPtr) (const GLushort *v); +typedef void (* glSecondaryColorPointerProcPtr) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + +typedef void (* glPointParameterfProcPtr) (GLenum pname, GLfloat param); +typedef void (* glPointParameterfvProcPtr) (GLenum pname, const GLfloat *params); +typedef void (* glPointParameteriProcPtr) (GLenum pname, GLint param); +typedef void (* glPointParameterivProcPtr) (GLenum pname, const GLint *params); + +typedef void (* glBlendFuncSeparateProcPtr) (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); + +typedef void (* glMultiDrawArraysProcPtr) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +typedef void (* glMultiDrawElementsProcPtr) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount); + +typedef void (* glWindowPos2dProcPtr) (GLdouble x, GLdouble y); +typedef void (* glWindowPos2dvProcPtr) (const GLdouble *v); +typedef void (* glWindowPos2fProcPtr) (GLfloat x, GLfloat y); +typedef void (* glWindowPos2fvProcPtr) (const GLfloat *v); +typedef void (* glWindowPos2iProcPtr) (GLint x, GLint y); +typedef void (* glWindowPos2ivProcPtr) (const GLint *v); +typedef void (* glWindowPos2sProcPtr) (GLshort x, GLshort y); +typedef void (* glWindowPos2svProcPtr) (const GLshort *v); +typedef void (* glWindowPos3dProcPtr) (GLdouble x, GLdouble y, GLdouble z); +typedef void (* glWindowPos3dvProcPtr) (const GLdouble *v); +typedef void (* glWindowPos3fProcPtr) (GLfloat x, GLfloat y, GLfloat z); +typedef void (* glWindowPos3fvProcPtr) (const GLfloat *v); +typedef void (* glWindowPos3iProcPtr) (GLint x, GLint y, GLint z); +typedef void (* glWindowPos3ivProcPtr) (const GLint *v); +typedef void (* glWindowPos3sProcPtr) (GLshort x, GLshort y, GLshort z); +typedef void (* glWindowPos3svProcPtr) (const GLshort *v); + +typedef void (* glGenQueriesProcPtr) (GLsizei n, GLuint *ids); +typedef void (* glDeleteQueriesProcPtr) (GLsizei n, const GLuint *ids); +typedef GLboolean (* glIsQueryProcPtr) (GLuint id); +typedef void (* glBeginQueryProcPtr) (GLenum target, GLuint id); +typedef void (* glEndQueryProcPtr) (GLenum target); +typedef void (* glGetQueryivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetQueryObjectivProcPtr) (GLuint id, GLenum pname, GLint *params); +typedef void (* glGetQueryObjectuivProcPtr) (GLuint id, GLenum pname, GLuint *params); + +typedef void (* glBindBufferProcPtr) (GLenum target, GLuint buffer); +typedef void (* glDeleteBuffersProcPtr) (GLsizei n, const GLuint *buffers); +typedef void (* glGenBuffersProcPtr) (GLsizei n, GLuint *buffers); +typedef GLboolean (* glIsBufferProcPtr) (GLuint buffer); +typedef void (* glBufferDataProcPtr) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); +typedef void (* glBufferSubDataProcPtr) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); +typedef void (* glGetBufferSubDataProcPtr) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); +typedef GLvoid *(* glMapBufferProcPtr) (GLenum target, GLenum access); +typedef GLboolean (* glUnmapBufferProcPtr) (GLenum target); +typedef void (* glGetBufferParameterivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetBufferPointervProcPtr) (GLenum target, GLenum pname, GLvoid **params); + +typedef void (* glDrawBuffersProcPtr) (GLsizei n, const GLenum *bufs); +typedef void (* glVertexAttrib1dProcPtr) (GLuint index, GLdouble x); +typedef void (* glVertexAttrib1dvProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib1fProcPtr) (GLuint index, GLfloat x); +typedef void (* glVertexAttrib1fvProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib1sProcPtr) (GLuint index, GLshort x); +typedef void (* glVertexAttrib1svProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib2dProcPtr) (GLuint index, GLdouble x, GLdouble y); +typedef void (* glVertexAttrib2dvProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib2fProcPtr) (GLuint index, GLfloat x, GLfloat y); +typedef void (* glVertexAttrib2fvProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib2sProcPtr) (GLuint index, GLshort x, GLshort y); +typedef void (* glVertexAttrib2svProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib3dProcPtr) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (* glVertexAttrib3dvProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib3fProcPtr) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (* glVertexAttrib3fvProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib3sProcPtr) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (* glVertexAttrib3svProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib4NbvProcPtr) (GLuint index, const GLbyte *v); +typedef void (* glVertexAttrib4NivProcPtr) (GLuint index, const GLint *v); +typedef void (* glVertexAttrib4NsvProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib4NubProcPtr) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (* glVertexAttrib4NubvProcPtr) (GLuint index, const GLubyte *v); +typedef void (* glVertexAttrib4NuivProcPtr) (GLuint index, const GLuint *v); +typedef void (* glVertexAttrib4NusvProcPtr) (GLuint index, const GLushort *v); +typedef void (* glVertexAttrib4bvProcPtr) (GLuint index, const GLbyte *v); +typedef void (* glVertexAttrib4dProcPtr) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glVertexAttrib4dvProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib4fProcPtr) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glVertexAttrib4fvProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib4ivProcPtr) (GLuint index, const GLint *v); +typedef void (* glVertexAttrib4sProcPtr) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (* glVertexAttrib4svProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib4ubvProcPtr) (GLuint index, const GLubyte *v); +typedef void (* glVertexAttrib4uivProcPtr) (GLuint index, const GLuint *v); +typedef void (* glVertexAttrib4usvProcPtr) (GLuint index, const GLushort *v); +typedef void (* glVertexAttribPointerProcPtr) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +typedef void (* glEnableVertexAttribArrayProcPtr) (GLuint index); +typedef void (* glDisableVertexAttribArrayProcPtr) (GLuint index); +typedef void (* glGetVertexAttribdvProcPtr) (GLuint index, GLenum pname, GLdouble *params); +typedef void (* glGetVertexAttribfvProcPtr) (GLuint index, GLenum pname, GLfloat *params); +typedef void (* glGetVertexAttribivProcPtr) (GLuint index, GLenum pname, GLint *params); +typedef void (* glGetVertexAttribPointervProcPtr) (GLuint index, GLenum pname, GLvoid **pointer); +typedef void (* glDeleteShaderProcPtr) (GLuint shader); +typedef void (* glDetachShaderProcPtr) (GLuint program, GLuint shader); +typedef GLuint (* glCreateShaderProcPtr) (GLenum type); +typedef void (* glShaderSourceProcPtr) (GLuint shader, GLsizei count, const GLchar* const *string, const GLint *length); +typedef void (* glCompileShaderProcPtr) (GLuint shader); +typedef GLuint (* glCreateProgramProcPtr) (void); +typedef void (* glAttachShaderProcPtr) (GLuint program, GLuint shader); +typedef void (* glLinkProgramProcPtr) (GLuint program); +typedef void (* glUseProgramProcPtr) (GLuint program); +typedef void (* glDeleteProgramProcPtr) (GLuint program); +typedef void (* glValidateProgramProcPtr) (GLuint program); +typedef void (* glUniform1fProcPtr) (GLint location, GLfloat v0); +typedef void (* glUniform2fProcPtr) (GLint location, GLfloat v0, GLfloat v1); +typedef void (* glUniform3fProcPtr) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (* glUniform4fProcPtr) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (* glUniform1iProcPtr) (GLint location, GLint v0); +typedef void (* glUniform2iProcPtr) (GLint location, GLint v0, GLint v1); +typedef void (* glUniform3iProcPtr) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (* glUniform4iProcPtr) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (* glUniform1fvProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform2fvProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform3fvProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform4fvProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform1ivProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniform2ivProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniform3ivProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniform4ivProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniformMatrix2fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix3fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix4fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef GLboolean (* glIsShaderProcPtr) (GLuint shader); +typedef GLboolean (* glIsProgramProcPtr) (GLuint program); +typedef void (* glGetShaderivProcPtr) (GLuint shader, GLenum pname, GLint *params); +typedef void (* glGetProgramivProcPtr) (GLuint program, GLenum pname, GLint *params); +typedef void (* glGetAttachedShadersProcPtr) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +typedef void (* glGetShaderInfoLogProcPtr) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (* glGetProgramInfoLogProcPtr) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef GLint (* glGetUniformLocationProcPtr) (GLuint program, const GLchar *name); +typedef void (* glGetActiveUniformProcPtr) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef void (* glGetUniformfvProcPtr) (GLuint program, GLint location, GLfloat *params); +typedef void (* glGetUniformivProcPtr) (GLuint program, GLint location, GLint *params); +typedef void (* glGetShaderSourceProcPtr) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +typedef void (* glBindAttribLocationProcPtr) (GLuint program, GLuint index, const GLchar *name); +typedef void (* glGetActiveAttribProcPtr) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef GLint (* glGetAttribLocationProcPtr) (GLuint program, const GLchar *name); +typedef void (* glStencilFuncSeparateProcPtr) (GLenum face, GLenum func, GLint ref, GLuint mask); +typedef void (* glStencilOpSeparateProcPtr) (GLenum face, GLenum fail, GLenum zfail, GLenum zpass); +typedef void (* glStencilMaskSeparateProcPtr) (GLenum face, GLuint mask); + +typedef void (* glUniformMatrix2x3fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix3x2fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix2x4fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix4x2fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix3x4fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix4x3fvProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + +#else /* GL_GLEXT_FUNCTION_POINTERS */ + +extern void glAccum (GLenum op, GLfloat value); +extern void glAlphaFunc (GLenum func, GLclampf ref); +extern GLboolean glAreTexturesResident (GLsizei n, const GLuint *textures, GLboolean *residences); +extern void glArrayElement (GLint i); +extern void glBegin (GLenum mode); +extern void glBindTexture (GLenum target, GLuint texture); +extern void glBitmap (GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); +extern void glBlendColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +extern void glBlendEquation (GLenum mode); +extern void glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); +extern void glBlendFunc (GLenum sfactor, GLenum dfactor); +extern void glCallList (GLuint list); +extern void glCallLists (GLsizei n, GLenum type, const GLvoid *lists); +extern void glClear (GLbitfield mask); +extern void glClearAccum (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +extern void glClearColor (GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +extern void glClearDepth (GLclampd depth); +extern void glClearIndex (GLfloat c); +extern void glClearStencil (GLint s); +extern void glClipPlane (GLenum plane, const GLdouble *equation); +extern void glColor3b (GLbyte red, GLbyte green, GLbyte blue); +extern void glColor3bv (const GLbyte *v); +extern void glColor3d (GLdouble red, GLdouble green, GLdouble blue); +extern void glColor3dv (const GLdouble *v); +extern void glColor3f (GLfloat red, GLfloat green, GLfloat blue); +extern void glColor3fv (const GLfloat *v); +extern void glColor3i (GLint red, GLint green, GLint blue); +extern void glColor3iv (const GLint *v); +extern void glColor3s (GLshort red, GLshort green, GLshort blue); +extern void glColor3sv (const GLshort *v); +extern void glColor3ub (GLubyte red, GLubyte green, GLubyte blue); +extern void glColor3ubv (const GLubyte *v); +extern void glColor3ui (GLuint red, GLuint green, GLuint blue); +extern void glColor3uiv (const GLuint *v); +extern void glColor3us (GLushort red, GLushort green, GLushort blue); +extern void glColor3usv (const GLushort *v); +extern void glColor4b (GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); +extern void glColor4bv (const GLbyte *v); +extern void glColor4d (GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); +extern void glColor4dv (const GLdouble *v); +extern void glColor4f (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +extern void glColor4fv (const GLfloat *v); +extern void glColor4i (GLint red, GLint green, GLint blue, GLint alpha); +extern void glColor4iv (const GLint *v); +extern void glColor4s (GLshort red, GLshort green, GLshort blue, GLshort alpha); +extern void glColor4sv (const GLshort *v); +extern void glColor4ub (GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); +extern void glColor4ubv (const GLubyte *v); +extern void glColor4ui (GLuint red, GLuint green, GLuint blue, GLuint alpha); +extern void glColor4uiv (const GLuint *v); +extern void glColor4us (GLushort red, GLushort green, GLushort blue, GLushort alpha); +extern void glColor4usv (const GLushort *v); +extern void glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +extern void glColorMaterial (GLenum face, GLenum mode); +extern void glColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glColorSubTable (GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); +extern void glColorTable (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); +extern void glColorTableParameterfv (GLenum target, GLenum pname, const GLfloat *params); +extern void glColorTableParameteriv (GLenum target, GLenum pname, const GLint *params); +extern void glConvolutionFilter1D (GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); +extern void glConvolutionFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); +extern void glConvolutionParameterf (GLenum target, GLenum pname, GLfloat params); +extern void glConvolutionParameterfv (GLenum target, GLenum pname, const GLfloat *params); +extern void glConvolutionParameteri (GLenum target, GLenum pname, GLint params); +extern void glConvolutionParameteriv (GLenum target, GLenum pname, const GLint *params); +extern void glCopyColorSubTable (GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); +extern void glCopyColorTable (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +extern void glCopyConvolutionFilter1D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); +extern void glCopyConvolutionFilter2D (GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); +extern void glCopyPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); +extern void glCopyTexImage1D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +extern void glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +extern void glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +extern void glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +extern void glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +extern void glCullFace (GLenum mode); +extern void glDeleteLists (GLuint list, GLsizei range); +extern void glDeleteTextures (GLsizei n, const GLuint *textures); +extern void glDepthFunc (GLenum func); +extern void glDepthMask (GLboolean flag); +extern void glDepthRange (GLclampd zNear, GLclampd zFar); +extern void glDisable (GLenum cap); +extern void glDisableClientState (GLenum array); +extern void glDrawArrays (GLenum mode, GLint first, GLsizei count); +extern void glDrawBuffer (GLenum mode); +extern void glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); +extern void glDrawPixels (GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +extern void glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +extern void glEdgeFlag (GLboolean flag); +extern void glEdgeFlagPointer (GLsizei stride, const GLvoid *pointer); +extern void glEdgeFlagv (const GLboolean *flag); +extern void glEnable (GLenum cap); +extern void glEnableClientState (GLenum array); +extern void glEnd (void); +extern void glEndList (void); +extern void glEvalCoord1d (GLdouble u); +extern void glEvalCoord1dv (const GLdouble *u); +extern void glEvalCoord1f (GLfloat u); +extern void glEvalCoord1fv (const GLfloat *u); +extern void glEvalCoord2d (GLdouble u, GLdouble v); +extern void glEvalCoord2dv (const GLdouble *u); +extern void glEvalCoord2f (GLfloat u, GLfloat v); +extern void glEvalCoord2fv (const GLfloat *u); +extern void glEvalMesh1 (GLenum mode, GLint i1, GLint i2); +extern void glEvalMesh2 (GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); +extern void glEvalPoint1 (GLint i); +extern void glEvalPoint2 (GLint i, GLint j); +extern void glFeedbackBuffer (GLsizei size, GLenum type, GLfloat *buffer); +extern void glFinish (void); +extern void glFlush (void); +extern void glFogf (GLenum pname, GLfloat param); +extern void glFogfv (GLenum pname, const GLfloat *params); +extern void glFogi (GLenum pname, GLint param); +extern void glFogiv (GLenum pname, const GLint *params); +extern void glFrontFace (GLenum mode); +extern void glFrustum (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +extern GLuint glGenLists (GLsizei range); +extern void glGenTextures (GLsizei n, GLuint *textures); +extern void glGetBooleanv (GLenum pname, GLboolean *params); +extern void glGetClipPlane (GLenum plane, GLdouble *equation); +extern void glGetColorTable (GLenum target, GLenum format, GLenum type, GLvoid *table); +extern void glGetColorTableParameterfv (GLenum target, GLenum pname, GLfloat *params); +extern void glGetColorTableParameteriv (GLenum target, GLenum pname, GLint *params); +extern void glGetConvolutionFilter (GLenum target, GLenum format, GLenum type, GLvoid *image); +extern void glGetConvolutionParameterfv (GLenum target, GLenum pname, GLfloat *params); +extern void glGetConvolutionParameteriv (GLenum target, GLenum pname, GLint *params); +extern void glGetDoublev (GLenum pname, GLdouble *params); +extern GLenum glGetError (void); +extern void glGetFloatv (GLenum pname, GLfloat *params); +extern void glGetHistogram (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +extern void glGetHistogramParameterfv (GLenum target, GLenum pname, GLfloat *params); +extern void glGetHistogramParameteriv (GLenum target, GLenum pname, GLint *params); +extern void glGetIntegerv (GLenum pname, GLint *params); +extern void glGetLightfv (GLenum light, GLenum pname, GLfloat *params); +extern void glGetLightiv (GLenum light, GLenum pname, GLint *params); +extern void glGetMapdv (GLenum target, GLenum query, GLdouble *v); +extern void glGetMapfv (GLenum target, GLenum query, GLfloat *v); +extern void glGetMapiv (GLenum target, GLenum query, GLint *v); +extern void glGetMaterialfv (GLenum face, GLenum pname, GLfloat *params); +extern void glGetMaterialiv (GLenum face, GLenum pname, GLint *params); +extern void glGetMinmax (GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); +extern void glGetMinmaxParameterfv (GLenum target, GLenum pname, GLfloat *params); +extern void glGetMinmaxParameteriv (GLenum target, GLenum pname, GLint *params); +extern void glGetPixelMapfv (GLenum map, GLfloat *values); +extern void glGetPixelMapuiv (GLenum map, GLuint *values); +extern void glGetPixelMapusv (GLenum map, GLushort *values); +extern void glGetPointerv (GLenum pname, GLvoid **params); +extern void glGetPolygonStipple (GLubyte *mask); +extern void glGetSeparableFilter (GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); +extern const GLubyte *glGetString (GLenum name); +extern void glGetTexEnvfv (GLenum target, GLenum pname, GLfloat *params); +extern void glGetTexEnviv (GLenum target, GLenum pname, GLint *params); +extern void glGetTexGendv (GLenum coord, GLenum pname, GLdouble *params); +extern void glGetTexGenfv (GLenum coord, GLenum pname, GLfloat *params); +extern void glGetTexGeniv (GLenum coord, GLenum pname, GLint *params); +extern void glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); +extern void glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); +extern void glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); +extern void glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); +extern void glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); +extern void glHint (GLenum target, GLenum mode); +extern void glHistogram (GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); +extern void glIndexMask (GLuint mask); +extern void glIndexPointer (GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glIndexd (GLdouble c); +extern void glIndexdv (const GLdouble *c); +extern void glIndexf (GLfloat c); +extern void glIndexfv (const GLfloat *c); +extern void glIndexi (GLint c); +extern void glIndexiv (const GLint *c); +extern void glIndexs (GLshort c); +extern void glIndexsv (const GLshort *c); +extern void glIndexub (GLubyte c); +extern void glIndexubv (const GLubyte *c); +extern void glInitNames (void); +extern void glInterleavedArrays (GLenum format, GLsizei stride, const GLvoid *pointer); +extern GLboolean glIsEnabled (GLenum cap); +extern GLboolean glIsList (GLuint list); +extern GLboolean glIsTexture (GLuint texture); +extern void glLightModelf (GLenum pname, GLfloat param); +extern void glLightModelfv (GLenum pname, const GLfloat *params); +extern void glLightModeli (GLenum pname, GLint param); +extern void glLightModeliv (GLenum pname, const GLint *params); +extern void glLightf (GLenum light, GLenum pname, GLfloat param); +extern void glLightfv (GLenum light, GLenum pname, const GLfloat *params); +extern void glLighti (GLenum light, GLenum pname, GLint param); +extern void glLightiv (GLenum light, GLenum pname, const GLint *params); +extern void glLineStipple (GLint factor, GLushort pattern); +extern void glLineWidth (GLfloat width); +extern void glListBase (GLuint base); +extern void glLoadIdentity (void); +extern void glLoadMatrixd (const GLdouble *m); +extern void glLoadMatrixf (const GLfloat *m); +extern void glLoadName (GLuint name); +extern void glLogicOp (GLenum opcode); +extern void glMap1d (GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +extern void glMap1f (GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +extern void glMap2d (GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +extern void glMap2f (GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +extern void glMapGrid1d (GLint un, GLdouble u1, GLdouble u2); +extern void glMapGrid1f (GLint un, GLfloat u1, GLfloat u2); +extern void glMapGrid2d (GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); +extern void glMapGrid2f (GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); +extern void glMaterialf (GLenum face, GLenum pname, GLfloat param); +extern void glMaterialfv (GLenum face, GLenum pname, const GLfloat *params); +extern void glMateriali (GLenum face, GLenum pname, GLint param); +extern void glMaterialiv (GLenum face, GLenum pname, const GLint *params); +extern void glMatrixMode (GLenum mode); +extern void glMinmax (GLenum target, GLenum internalformat, GLboolean sink); +extern void glMultMatrixd (const GLdouble *m); +extern void glMultMatrixf (const GLfloat *m); +extern void glNewList (GLuint list, GLenum mode); +extern void glNormal3b (GLbyte nx, GLbyte ny, GLbyte nz); +extern void glNormal3bv (const GLbyte *v); +extern void glNormal3d (GLdouble nx, GLdouble ny, GLdouble nz); +extern void glNormal3dv (const GLdouble *v); +extern void glNormal3f (GLfloat nx, GLfloat ny, GLfloat nz); +extern void glNormal3fv (const GLfloat *v); +extern void glNormal3i (GLint nx, GLint ny, GLint nz); +extern void glNormal3iv (const GLint *v); +extern void glNormal3s (GLshort nx, GLshort ny, GLshort nz); +extern void glNormal3sv (const GLshort *v); +extern void glNormalPointer (GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glOrtho (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); +extern void glPassThrough (GLfloat token); +extern void glPixelMapfv (GLenum map, GLint mapsize, const GLfloat *values); +extern void glPixelMapuiv (GLenum map, GLint mapsize, const GLuint *values); +extern void glPixelMapusv (GLenum map, GLint mapsize, const GLushort *values); +extern void glPixelStoref (GLenum pname, GLfloat param); +extern void glPixelStorei (GLenum pname, GLint param); +extern void glPixelTransferf (GLenum pname, GLfloat param); +extern void glPixelTransferi (GLenum pname, GLint param); +extern void glPixelZoom (GLfloat xfactor, GLfloat yfactor); +extern void glPointSize (GLfloat size); +extern void glPolygonMode (GLenum face, GLenum mode); +extern void glPolygonOffset (GLfloat factor, GLfloat units); +extern void glPolygonStipple (const GLubyte *mask); +extern void glPopAttrib (void); +extern void glPopClientAttrib (void); +extern void glPopMatrix (void); +extern void glPopName (void); +extern void glPrioritizeTextures (GLsizei n, const GLuint *textures, const GLclampf *priorities); +extern void glPushAttrib (GLbitfield mask); +extern void glPushClientAttrib (GLbitfield mask); +extern void glPushMatrix (void); +extern void glPushName (GLuint name); +extern void glRasterPos2d (GLdouble x, GLdouble y); +extern void glRasterPos2dv (const GLdouble *v); +extern void glRasterPos2f (GLfloat x, GLfloat y); +extern void glRasterPos2fv (const GLfloat *v); +extern void glRasterPos2i (GLint x, GLint y); +extern void glRasterPos2iv (const GLint *v); +extern void glRasterPos2s (GLshort x, GLshort y); +extern void glRasterPos2sv (const GLshort *v); +extern void glRasterPos3d (GLdouble x, GLdouble y, GLdouble z); +extern void glRasterPos3dv (const GLdouble *v); +extern void glRasterPos3f (GLfloat x, GLfloat y, GLfloat z); +extern void glRasterPos3fv (const GLfloat *v); +extern void glRasterPos3i (GLint x, GLint y, GLint z); +extern void glRasterPos3iv (const GLint *v); +extern void glRasterPos3s (GLshort x, GLshort y, GLshort z); +extern void glRasterPos3sv (const GLshort *v); +extern void glRasterPos4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glRasterPos4dv (const GLdouble *v); +extern void glRasterPos4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glRasterPos4fv (const GLfloat *v); +extern void glRasterPos4i (GLint x, GLint y, GLint z, GLint w); +extern void glRasterPos4iv (const GLint *v); +extern void glRasterPos4s (GLshort x, GLshort y, GLshort z, GLshort w); +extern void glRasterPos4sv (const GLshort *v); +extern void glReadBuffer (GLenum mode); +extern void glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); +extern void glRectd (GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); +extern void glRectdv (const GLdouble *v1, const GLdouble *v2); +extern void glRectf (GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); +extern void glRectfv (const GLfloat *v1, const GLfloat *v2); +extern void glRecti (GLint x1, GLint y1, GLint x2, GLint y2); +extern void glRectiv (const GLint *v1, const GLint *v2); +extern void glRects (GLshort x1, GLshort y1, GLshort x2, GLshort y2); +extern void glRectsv (const GLshort *v1, const GLshort *v2); +extern GLint glRenderMode (GLenum mode); +extern void glResetHistogram (GLenum target); +extern void glResetMinmax (GLenum target); +extern void glRotated (GLdouble angle, GLdouble x, GLdouble y, GLdouble z); +extern void glRotatef (GLfloat angle, GLfloat x, GLfloat y, GLfloat z); +extern void glScaled (GLdouble x, GLdouble y, GLdouble z); +extern void glScalef (GLfloat x, GLfloat y, GLfloat z); +extern void glScissor (GLint x, GLint y, GLsizei width, GLsizei height); +extern void glSelectBuffer (GLsizei size, GLuint *buffer); +extern void glSeparableFilter2D (GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); +extern void glShadeModel (GLenum mode); +extern void glStencilFunc (GLenum func, GLint ref, GLuint mask); +extern void glStencilMask (GLuint mask); +extern void glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); +extern void glTexCoord1d (GLdouble s); +extern void glTexCoord1dv (const GLdouble *v); +extern void glTexCoord1f (GLfloat s); +extern void glTexCoord1fv (const GLfloat *v); +extern void glTexCoord1i (GLint s); +extern void glTexCoord1iv (const GLint *v); +extern void glTexCoord1s (GLshort s); +extern void glTexCoord1sv (const GLshort *v); +extern void glTexCoord2d (GLdouble s, GLdouble t); +extern void glTexCoord2dv (const GLdouble *v); +extern void glTexCoord2f (GLfloat s, GLfloat t); +extern void glTexCoord2fv (const GLfloat *v); +extern void glTexCoord2i (GLint s, GLint t); +extern void glTexCoord2iv (const GLint *v); +extern void glTexCoord2s (GLshort s, GLshort t); +extern void glTexCoord2sv (const GLshort *v); +extern void glTexCoord3d (GLdouble s, GLdouble t, GLdouble r); +extern void glTexCoord3dv (const GLdouble *v); +extern void glTexCoord3f (GLfloat s, GLfloat t, GLfloat r); +extern void glTexCoord3fv (const GLfloat *v); +extern void glTexCoord3i (GLint s, GLint t, GLint r); +extern void glTexCoord3iv (const GLint *v); +extern void glTexCoord3s (GLshort s, GLshort t, GLshort r); +extern void glTexCoord3sv (const GLshort *v); +extern void glTexCoord4d (GLdouble s, GLdouble t, GLdouble r, GLdouble q); +extern void glTexCoord4dv (const GLdouble *v); +extern void glTexCoord4f (GLfloat s, GLfloat t, GLfloat r, GLfloat q); +extern void glTexCoord4fv (const GLfloat *v); +extern void glTexCoord4i (GLint s, GLint t, GLint r, GLint q); +extern void glTexCoord4iv (const GLint *v); +extern void glTexCoord4s (GLshort s, GLshort t, GLshort r, GLshort q); +extern void glTexCoord4sv (const GLshort *v); +extern void glTexCoordPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glTexEnvf (GLenum target, GLenum pname, GLfloat param); +extern void glTexEnvfv (GLenum target, GLenum pname, const GLfloat *params); +extern void glTexEnvi (GLenum target, GLenum pname, GLint param); +extern void glTexEnviv (GLenum target, GLenum pname, const GLint *params); +extern void glTexGend (GLenum coord, GLenum pname, GLdouble param); +extern void glTexGendv (GLenum coord, GLenum pname, const GLdouble *params); +extern void glTexGenf (GLenum coord, GLenum pname, GLfloat param); +extern void glTexGenfv (GLenum coord, GLenum pname, const GLfloat *params); +extern void glTexGeni (GLenum coord, GLenum pname, GLint param); +extern void glTexGeniv (GLenum coord, GLenum pname, const GLint *params); +extern void glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +extern void glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +extern void glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +extern void glTexParameterf (GLenum target, GLenum pname, GLfloat param); +extern void glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); +extern void glTexParameteri (GLenum target, GLenum pname, GLint param); +extern void glTexParameteriv (GLenum target, GLenum pname, const GLint *params); +extern void glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); +extern void glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +extern void glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +extern void glTranslated (GLdouble x, GLdouble y, GLdouble z); +extern void glTranslatef (GLfloat x, GLfloat y, GLfloat z); +extern void glVertex2d (GLdouble x, GLdouble y); +extern void glVertex2dv (const GLdouble *v); +extern void glVertex2f (GLfloat x, GLfloat y); +extern void glVertex2fv (const GLfloat *v); +extern void glVertex2i (GLint x, GLint y); +extern void glVertex2iv (const GLint *v); +extern void glVertex2s (GLshort x, GLshort y); +extern void glVertex2sv (const GLshort *v); +extern void glVertex3d (GLdouble x, GLdouble y, GLdouble z); +extern void glVertex3dv (const GLdouble *v); +extern void glVertex3f (GLfloat x, GLfloat y, GLfloat z); +extern void glVertex3fv (const GLfloat *v); +extern void glVertex3i (GLint x, GLint y, GLint z); +extern void glVertex3iv (const GLint *v); +extern void glVertex3s (GLshort x, GLshort y, GLshort z); +extern void glVertex3sv (const GLshort *v); +extern void glVertex4d (GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glVertex4dv (const GLdouble *v); +extern void glVertex4f (GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glVertex4fv (const GLfloat *v); +extern void glVertex4i (GLint x, GLint y, GLint z, GLint w); +extern void glVertex4iv (const GLint *v); +extern void glVertex4s (GLshort x, GLshort y, GLshort z, GLshort w); +extern void glVertex4sv (const GLshort *v); +extern void glVertexPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glViewport (GLint x, GLint y, GLsizei width, GLsizei height); + +extern void glSampleCoverage (GLclampf value, GLboolean invert); + +extern void glLoadTransposeMatrixf (const GLfloat *m); +extern void glLoadTransposeMatrixd (const GLdouble *m); +extern void glMultTransposeMatrixf (const GLfloat *m); +extern void glMultTransposeMatrixd (const GLdouble *m); + +extern void glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexImage1D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +extern void glGetCompressedTexImage (GLenum target, GLint lod, GLvoid *img); + +extern void glActiveTexture (GLenum texture); +extern void glClientActiveTexture (GLenum texture); +extern void glMultiTexCoord1d (GLenum target, GLdouble s); +extern void glMultiTexCoord1dv (GLenum target, const GLdouble *v); +extern void glMultiTexCoord1f (GLenum target, GLfloat s); +extern void glMultiTexCoord1fv (GLenum target, const GLfloat *v); +extern void glMultiTexCoord1i (GLenum target, GLint s); +extern void glMultiTexCoord1iv (GLenum target, const GLint *v); +extern void glMultiTexCoord1s (GLenum target, GLshort s); +extern void glMultiTexCoord1sv (GLenum target, const GLshort *v); +extern void glMultiTexCoord2d (GLenum target, GLdouble s, GLdouble t); +extern void glMultiTexCoord2dv (GLenum target, const GLdouble *v); +extern void glMultiTexCoord2f (GLenum target, GLfloat s, GLfloat t); +extern void glMultiTexCoord2fv (GLenum target, const GLfloat *v); +extern void glMultiTexCoord2i (GLenum target, GLint s, GLint t); +extern void glMultiTexCoord2iv (GLenum target, const GLint *v); +extern void glMultiTexCoord2s (GLenum target, GLshort s, GLshort t); +extern void glMultiTexCoord2sv (GLenum target, const GLshort *v); +extern void glMultiTexCoord3d (GLenum target, GLdouble s, GLdouble t, GLdouble r); +extern void glMultiTexCoord3dv (GLenum target, const GLdouble *v); +extern void glMultiTexCoord3f (GLenum target, GLfloat s, GLfloat t, GLfloat r); +extern void glMultiTexCoord3fv (GLenum target, const GLfloat *v); +extern void glMultiTexCoord3i (GLenum target, GLint s, GLint t, GLint r); +extern void glMultiTexCoord3iv (GLenum target, const GLint *v); +extern void glMultiTexCoord3s (GLenum target, GLshort s, GLshort t, GLshort r); +extern void glMultiTexCoord3sv (GLenum target, const GLshort *v); +extern void glMultiTexCoord4d (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +extern void glMultiTexCoord4dv (GLenum target, const GLdouble *v); +extern void glMultiTexCoord4f (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +extern void glMultiTexCoord4fv (GLenum target, const GLfloat *v); +extern void glMultiTexCoord4i (GLenum target, GLint s, GLint t, GLint r, GLint q); +extern void glMultiTexCoord4iv (GLenum target, const GLint *v); +extern void glMultiTexCoord4s (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +extern void glMultiTexCoord4sv (GLenum target, const GLshort *v); + +extern void glFogCoordf (GLfloat coord); +extern void glFogCoordfv (const GLfloat *coord); +extern void glFogCoordd (GLdouble coord); +extern void glFogCoorddv (const GLdouble *coord); +extern void glFogCoordPointer (GLenum type, GLsizei stride, const GLvoid *pointer); + +extern void glSecondaryColor3b (GLbyte red, GLbyte green, GLbyte blue); +extern void glSecondaryColor3bv (const GLbyte *v); +extern void glSecondaryColor3d (GLdouble red, GLdouble green, GLdouble blue); +extern void glSecondaryColor3dv (const GLdouble *v); +extern void glSecondaryColor3f (GLfloat red, GLfloat green, GLfloat blue); +extern void glSecondaryColor3fv (const GLfloat *v); +extern void glSecondaryColor3i (GLint red, GLint green, GLint blue); +extern void glSecondaryColor3iv (const GLint *v); +extern void glSecondaryColor3s (GLshort red, GLshort green, GLshort blue); +extern void glSecondaryColor3sv (const GLshort *v); +extern void glSecondaryColor3ub (GLubyte red, GLubyte green, GLubyte blue); +extern void glSecondaryColor3ubv (const GLubyte *v); +extern void glSecondaryColor3ui (GLuint red, GLuint green, GLuint blue); +extern void glSecondaryColor3uiv (const GLuint *v); +extern void glSecondaryColor3us (GLushort red, GLushort green, GLushort blue); +extern void glSecondaryColor3usv (const GLushort *v); +extern void glSecondaryColorPointer (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + +extern void glPointParameterf (GLenum pname, GLfloat param); +extern void glPointParameterfv (GLenum pname, const GLfloat *params); +extern void glPointParameteri (GLenum pname, GLint param); +extern void glPointParameteriv (GLenum pname, const GLint *params); + +extern void glBlendFuncSeparate (GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); + +extern void glMultiDrawArrays (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +extern void glMultiDrawElements (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount); + +extern void glWindowPos2d (GLdouble x, GLdouble y); +extern void glWindowPos2dv (const GLdouble *v); +extern void glWindowPos2f (GLfloat x, GLfloat y); +extern void glWindowPos2fv (const GLfloat *v); +extern void glWindowPos2i (GLint x, GLint y); +extern void glWindowPos2iv (const GLint *v); +extern void glWindowPos2s (GLshort x, GLshort y); +extern void glWindowPos2sv (const GLshort *v); +extern void glWindowPos3d (GLdouble x, GLdouble y, GLdouble z); +extern void glWindowPos3dv (const GLdouble *v); +extern void glWindowPos3f (GLfloat x, GLfloat y, GLfloat z); +extern void glWindowPos3fv (const GLfloat *v); +extern void glWindowPos3i (GLint x, GLint y, GLint z); +extern void glWindowPos3iv (const GLint *v); +extern void glWindowPos3s (GLshort x, GLshort y, GLshort z); +extern void glWindowPos3sv (const GLshort *v); + +extern void glGenQueries (GLsizei n, GLuint *ids); +extern void glDeleteQueries (GLsizei n, const GLuint *ids); +extern GLboolean glIsQuery (GLuint id); +extern void glBeginQuery (GLenum target, GLuint id); +extern void glEndQuery (GLenum target); +extern void glGetQueryiv (GLenum target, GLenum pname, GLint *params); +extern void glGetQueryObjectiv (GLuint id, GLenum pname, GLint *params); +extern void glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); + +extern void glBindBuffer (GLenum target, GLuint buffer); +extern void glDeleteBuffers (GLsizei n, const GLuint *buffers); +extern void glGenBuffers (GLsizei n, GLuint *buffers); +extern GLboolean glIsBuffer (GLuint buffer); +extern void glBufferData (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); +extern void glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); +extern void glGetBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); +extern GLvoid *glMapBuffer (GLenum target, GLenum access); +extern GLboolean glUnmapBuffer (GLenum target); +extern void glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); +extern void glGetBufferPointerv (GLenum target, GLenum pname, GLvoid **params); + +extern void glDrawBuffers (GLsizei n, const GLenum *bufs); +extern void glVertexAttrib1d (GLuint index, GLdouble x); +extern void glVertexAttrib1dv (GLuint index, const GLdouble *v); +extern void glVertexAttrib1f (GLuint index, GLfloat x); +extern void glVertexAttrib1fv (GLuint index, const GLfloat *v); +extern void glVertexAttrib1s (GLuint index, GLshort x); +extern void glVertexAttrib1sv (GLuint index, const GLshort *v); +extern void glVertexAttrib2d (GLuint index, GLdouble x, GLdouble y); +extern void glVertexAttrib2dv (GLuint index, const GLdouble *v); +extern void glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); +extern void glVertexAttrib2fv (GLuint index, const GLfloat *v); +extern void glVertexAttrib2s (GLuint index, GLshort x, GLshort y); +extern void glVertexAttrib2sv (GLuint index, const GLshort *v); +extern void glVertexAttrib3d (GLuint index, GLdouble x, GLdouble y, GLdouble z); +extern void glVertexAttrib3dv (GLuint index, const GLdouble *v); +extern void glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); +extern void glVertexAttrib3fv (GLuint index, const GLfloat *v); +extern void glVertexAttrib3s (GLuint index, GLshort x, GLshort y, GLshort z); +extern void glVertexAttrib3sv (GLuint index, const GLshort *v); +extern void glVertexAttrib4Nbv (GLuint index, const GLbyte *v); +extern void glVertexAttrib4Niv (GLuint index, const GLint *v); +extern void glVertexAttrib4Nsv (GLuint index, const GLshort *v); +extern void glVertexAttrib4Nub (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +extern void glVertexAttrib4Nubv (GLuint index, const GLubyte *v); +extern void glVertexAttrib4Nuiv (GLuint index, const GLuint *v); +extern void glVertexAttrib4Nusv (GLuint index, const GLushort *v); +extern void glVertexAttrib4bv (GLuint index, const GLbyte *v); +extern void glVertexAttrib4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glVertexAttrib4dv (GLuint index, const GLdouble *v); +extern void glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glVertexAttrib4fv (GLuint index, const GLfloat *v); +extern void glVertexAttrib4iv (GLuint index, const GLint *v); +extern void glVertexAttrib4s (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +extern void glVertexAttrib4sv (GLuint index, const GLshort *v); +extern void glVertexAttrib4ubv (GLuint index, const GLubyte *v); +extern void glVertexAttrib4uiv (GLuint index, const GLuint *v); +extern void glVertexAttrib4usv (GLuint index, const GLushort *v); +extern void glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +extern void glEnableVertexAttribArray (GLuint index); +extern void glDisableVertexAttribArray (GLuint index); +extern void glGetVertexAttribdv (GLuint index, GLenum pname, GLdouble *params); +extern void glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); +extern void glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); +extern void glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid **pointer); +extern void glDeleteShader (GLuint shader); +extern void glDetachShader (GLuint program, GLuint shader); +extern GLuint glCreateShader (GLenum type); +extern void glShaderSource (GLuint shader, GLsizei count, const GLchar* const *string, const GLint *length); +extern void glCompileShader (GLuint shader); +extern GLuint glCreateProgram (void); +extern void glAttachShader (GLuint program, GLuint shader); +extern void glLinkProgram (GLuint program); +extern void glUseProgram (GLuint program); +extern void glDeleteProgram (GLuint program); +extern void glValidateProgram (GLuint program); +extern void glUniform1f (GLint location, GLfloat v0); +extern void glUniform2f (GLint location, GLfloat v0, GLfloat v1); +extern void glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +extern void glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +extern void glUniform1i (GLint location, GLint v0); +extern void glUniform2i (GLint location, GLint v0, GLint v1); +extern void glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); +extern void glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +extern void glUniform1fv (GLint location, GLsizei count, const GLfloat *value); +extern void glUniform2fv (GLint location, GLsizei count, const GLfloat *value); +extern void glUniform3fv (GLint location, GLsizei count, const GLfloat *value); +extern void glUniform4fv (GLint location, GLsizei count, const GLfloat *value); +extern void glUniform1iv (GLint location, GLsizei count, const GLint *value); +extern void glUniform2iv (GLint location, GLsizei count, const GLint *value); +extern void glUniform3iv (GLint location, GLsizei count, const GLint *value); +extern void glUniform4iv (GLint location, GLsizei count, const GLint *value); +extern void glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern GLboolean glIsShader (GLuint shader); +extern GLboolean glIsProgram (GLuint program); +extern void glGetShaderiv (GLuint shader, GLenum pname, GLint *params); +extern void glGetProgramiv (GLuint program, GLenum pname, GLint *params); +extern void glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +extern void glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +extern void glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +extern GLint glGetUniformLocation (GLuint program, const GLchar *name); +extern void glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +extern void glGetUniformfv (GLuint program, GLint location, GLfloat *params); +extern void glGetUniformiv (GLuint program, GLint location, GLint *params); +extern void glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +extern void glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); +extern void glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +extern GLint glGetAttribLocation (GLuint program, const GLchar *name); +extern void glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); +extern void glStencilOpSeparate (GLenum face, GLenum fail, GLenum zfail, GLenum zpass); +extern void glStencilMaskSeparate (GLenum face, GLuint mask); + +extern void glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + + +#endif /* GL_GLEXT_FUNCTION_POINTERS */ + +#ifdef __cplusplus +} +#endif + +#endif /* __gl_h_ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gl3.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gl3.h" new file mode 100644 index 0000000..b82689f --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gl3.h" @@ -0,0 +1,2913 @@ +#ifndef __gl3_h_ +#define __gl3_h_ + +/* Allow multiple GL version headers to be included when we're working + with modules. */ +#ifdef __has_feature +# if __has_feature(modules) +# ifndef GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED +# define GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED 1 +# endif +# endif +#endif + +#if defined __gl_h_ && !(defined GL_DO_NOT_WARN_IF_MULTI_GL_VERSION_HEADERS_INCLUDED) +#warning gl.h and gl3.h are both included. Compiler will not invoke errors if using removed OpenGL functionality. +#endif + +#ifdef _CGLMACRO_H +# ifndef __has_feature +# define __has_feature(X) 0 +# endif +# if !__has_feature(modules) +# error Can not include both gl3.h and CGLMacro.h simultaneously +# endif +#endif + +/* +** Copyright (c) 2007-2012 The Khronos Group Inc. +** +** Permission is hereby granted, free of charge, to any person obtaining a +** copy of this software and/or associated documentation files (the +** "Materials"), to deal in the Materials without restriction, including +** without limitation the rights to use, copy, modify, merge, publish, +** distribute, sublicense, and/or sell copies of the Materials, and to +** permit persons to whom the Materials are furnished to do so, subject to +** the following conditions: +** +** The above copyright notice and this permission notice shall be included +** in all copies or substantial portions of the Materials. +** +** THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +** MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +** CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +** TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +** MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. +*/ + +/* This is a draft release of gl3.h, a header for use with OpenGL 3.1, and + * 3.2 and later core profile implementations. The current version is + * available at http://www.opengl.org/registry/ . Please don't package + * gl3.h for release with other software until it's out of draft status. + * The structure of the file may change significantly, and the details + * will probably change slightly as we make sure exactly the right set + * of interfaces is included. + * + * gl3.h last updated on $Date: 2012-01-26 02:57:23 -0800 (Thu, 26 Jan 2012) $ + * + * RELEASE NOTES - 2012/01/26 + * + * gl3.h should be placed under a directory 'GL3' and included as + * ''. + * + * gl3.h is supposed to only include APIs in a OpenGL 3.1 (without + * GL_ARB_compatibility) or OpenGL 3.2 or later core profile + * implementation, as well as interfaces for newer ARB extensions which + * can be supported by the core profile. It does not, and never will + * include functionality removed from the core profile, such as + * fixed-function vertex and fragment processing. + * + * Implementations of OpenGL 3.1 supporting the optional + * GL_ARB_compatibility extension continue to provide that functionality, + * as do implementations of the OpenGL 3.2+ compatibility profiles, and + * source code requiring it should use the traditional and + * headers instead of . + * + * It is not possible to #include both and either of + * or in the same source file. + * + * We welcome feedback on gl3.h. Please register for the Khronos Bugzilla + * (www.khronos.org/bugzilla) and file issues there under product + * "OpenGL", category "Registry". Feedback on the opengl.org forums + * may not be responded to in a timely fashion. + */ + +/* Function declaration macros - to move into glplatform.h */ + +#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) +#define WIN32_LEAN_AND_MEAN 1 +#include +#endif + + +#if defined(__APPLE__) +#define GL3_PROTOTYPES +#endif + +#ifndef APIENTRY +#define APIENTRY +#endif +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * +#endif +#ifndef GLAPI +#define GLAPI extern +#endif + +/* Base GL types */ +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/*************************************************************/ + +#ifndef GL_VERSION_1_1 +/* AttribMask */ +#define GL_DEPTH_BUFFER_BIT 0x00000100 +#define GL_STENCIL_BUFFER_BIT 0x00000400 +#define GL_COLOR_BUFFER_BIT 0x00004000 +/* Boolean */ +#define GL_FALSE 0 +#define GL_TRUE 1 +/* BeginMode */ +#define GL_POINTS 0x0000 +#define GL_LINES 0x0001 +#define GL_LINE_LOOP 0x0002 +#define GL_LINE_STRIP 0x0003 +#define GL_TRIANGLES 0x0004 +#define GL_TRIANGLE_STRIP 0x0005 +#define GL_TRIANGLE_FAN 0x0006 +/* AlphaFunction */ +#define GL_NEVER 0x0200 +#define GL_LESS 0x0201 +#define GL_EQUAL 0x0202 +#define GL_LEQUAL 0x0203 +#define GL_GREATER 0x0204 +#define GL_NOTEQUAL 0x0205 +#define GL_GEQUAL 0x0206 +#define GL_ALWAYS 0x0207 +/* BlendingFactorDest */ +#define GL_ZERO 0 +#define GL_ONE 1 +#define GL_SRC_COLOR 0x0300 +#define GL_ONE_MINUS_SRC_COLOR 0x0301 +#define GL_SRC_ALPHA 0x0302 +#define GL_ONE_MINUS_SRC_ALPHA 0x0303 +#define GL_DST_ALPHA 0x0304 +#define GL_ONE_MINUS_DST_ALPHA 0x0305 +/* BlendingFactorSrc */ +#define GL_DST_COLOR 0x0306 +#define GL_ONE_MINUS_DST_COLOR 0x0307 +#define GL_SRC_ALPHA_SATURATE 0x0308 +/* DrawBufferMode */ +#define GL_NONE 0 +#define GL_FRONT_LEFT 0x0400 +#define GL_FRONT_RIGHT 0x0401 +#define GL_BACK_LEFT 0x0402 +#define GL_BACK_RIGHT 0x0403 +#define GL_FRONT 0x0404 +#define GL_BACK 0x0405 +#define GL_LEFT 0x0406 +#define GL_RIGHT 0x0407 +#define GL_FRONT_AND_BACK 0x0408 +/* ErrorCode */ +#define GL_NO_ERROR 0 +#define GL_INVALID_ENUM 0x0500 +#define GL_INVALID_VALUE 0x0501 +#define GL_INVALID_OPERATION 0x0502 +#define GL_OUT_OF_MEMORY 0x0505 +/* FrontFaceDirection */ +#define GL_CW 0x0900 +#define GL_CCW 0x0901 +/* GetPName */ +#define GL_POINT_SIZE 0x0B11 +#define GL_POINT_SIZE_RANGE 0x0B12 +#define GL_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_LINE_SMOOTH 0x0B20 +#define GL_LINE_WIDTH 0x0B21 +#define GL_LINE_WIDTH_RANGE 0x0B22 +#define GL_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_POLYGON_MODE 0x0B40 +#define GL_POLYGON_SMOOTH 0x0B41 +#define GL_CULL_FACE 0x0B44 +#define GL_CULL_FACE_MODE 0x0B45 +#define GL_FRONT_FACE 0x0B46 +#define GL_DEPTH_RANGE 0x0B70 +#define GL_DEPTH_TEST 0x0B71 +#define GL_DEPTH_WRITEMASK 0x0B72 +#define GL_DEPTH_CLEAR_VALUE 0x0B73 +#define GL_DEPTH_FUNC 0x0B74 +#define GL_STENCIL_TEST 0x0B90 +#define GL_STENCIL_CLEAR_VALUE 0x0B91 +#define GL_STENCIL_FUNC 0x0B92 +#define GL_STENCIL_VALUE_MASK 0x0B93 +#define GL_STENCIL_FAIL 0x0B94 +#define GL_STENCIL_PASS_DEPTH_FAIL 0x0B95 +#define GL_STENCIL_PASS_DEPTH_PASS 0x0B96 +#define GL_STENCIL_REF 0x0B97 +#define GL_STENCIL_WRITEMASK 0x0B98 +#define GL_VIEWPORT 0x0BA2 +#define GL_DITHER 0x0BD0 +#define GL_BLEND_DST 0x0BE0 +#define GL_BLEND_SRC 0x0BE1 +#define GL_BLEND 0x0BE2 +#define GL_LOGIC_OP_MODE 0x0BF0 +#define GL_COLOR_LOGIC_OP 0x0BF2 +#define GL_DRAW_BUFFER 0x0C01 +#define GL_READ_BUFFER 0x0C02 +#define GL_SCISSOR_BOX 0x0C10 +#define GL_SCISSOR_TEST 0x0C11 +#define GL_COLOR_CLEAR_VALUE 0x0C22 +#define GL_COLOR_WRITEMASK 0x0C23 +#define GL_DOUBLEBUFFER 0x0C32 +#define GL_STEREO 0x0C33 +#define GL_LINE_SMOOTH_HINT 0x0C52 +#define GL_POLYGON_SMOOTH_HINT 0x0C53 +#define GL_UNPACK_SWAP_BYTES 0x0CF0 +#define GL_UNPACK_LSB_FIRST 0x0CF1 +#define GL_UNPACK_ROW_LENGTH 0x0CF2 +#define GL_UNPACK_SKIP_ROWS 0x0CF3 +#define GL_UNPACK_SKIP_PIXELS 0x0CF4 +#define GL_UNPACK_ALIGNMENT 0x0CF5 +#define GL_PACK_SWAP_BYTES 0x0D00 +#define GL_PACK_LSB_FIRST 0x0D01 +#define GL_PACK_ROW_LENGTH 0x0D02 +#define GL_PACK_SKIP_ROWS 0x0D03 +#define GL_PACK_SKIP_PIXELS 0x0D04 +#define GL_PACK_ALIGNMENT 0x0D05 +#define GL_MAX_TEXTURE_SIZE 0x0D33 +#define GL_MAX_VIEWPORT_DIMS 0x0D3A +#define GL_SUBPIXEL_BITS 0x0D50 +#define GL_TEXTURE_1D 0x0DE0 +#define GL_TEXTURE_2D 0x0DE1 +#define GL_POLYGON_OFFSET_UNITS 0x2A00 +#define GL_POLYGON_OFFSET_POINT 0x2A01 +#define GL_POLYGON_OFFSET_LINE 0x2A02 +#define GL_POLYGON_OFFSET_FILL 0x8037 +#define GL_POLYGON_OFFSET_FACTOR 0x8038 +#define GL_TEXTURE_BINDING_1D 0x8068 +#define GL_TEXTURE_BINDING_2D 0x8069 +/* GetTextureParameter */ +#define GL_TEXTURE_WIDTH 0x1000 +#define GL_TEXTURE_HEIGHT 0x1001 +#define GL_TEXTURE_INTERNAL_FORMAT 0x1003 +#define GL_TEXTURE_BORDER_COLOR 0x1004 +#define GL_TEXTURE_RED_SIZE 0x805C +#define GL_TEXTURE_GREEN_SIZE 0x805D +#define GL_TEXTURE_BLUE_SIZE 0x805E +#define GL_TEXTURE_ALPHA_SIZE 0x805F +/* HintMode */ +#define GL_DONT_CARE 0x1100 +#define GL_FASTEST 0x1101 +#define GL_NICEST 0x1102 +/* DataType */ +#define GL_BYTE 0x1400 +#define GL_UNSIGNED_BYTE 0x1401 +#define GL_SHORT 0x1402 +#define GL_UNSIGNED_SHORT 0x1403 +#define GL_INT 0x1404 +#define GL_UNSIGNED_INT 0x1405 +#define GL_FLOAT 0x1406 +#define GL_DOUBLE 0x140A +/* LogicOp */ +#define GL_CLEAR 0x1500 +#define GL_AND 0x1501 +#define GL_AND_REVERSE 0x1502 +#define GL_COPY 0x1503 +#define GL_AND_INVERTED 0x1504 +#define GL_NOOP 0x1505 +#define GL_XOR 0x1506 +#define GL_OR 0x1507 +#define GL_NOR 0x1508 +#define GL_EQUIV 0x1509 +#define GL_INVERT 0x150A +#define GL_OR_REVERSE 0x150B +#define GL_COPY_INVERTED 0x150C +#define GL_OR_INVERTED 0x150D +#define GL_NAND 0x150E +#define GL_SET 0x150F +/* MatrixMode (for gl3.h, FBO attachment type) */ +#define GL_TEXTURE 0x1702 +/* PixelCopyType */ +#define GL_COLOR 0x1800 +#define GL_DEPTH 0x1801 +#define GL_STENCIL 0x1802 +/* PixelFormat */ +#define GL_STENCIL_INDEX 0x1901 +#define GL_DEPTH_COMPONENT 0x1902 +#define GL_RED 0x1903 +#define GL_GREEN 0x1904 +#define GL_BLUE 0x1905 +#define GL_ALPHA 0x1906 +#define GL_RGB 0x1907 +#define GL_RGBA 0x1908 +/* PolygonMode */ +#define GL_POINT 0x1B00 +#define GL_LINE 0x1B01 +#define GL_FILL 0x1B02 +/* StencilOp */ +#define GL_KEEP 0x1E00 +#define GL_REPLACE 0x1E01 +#define GL_INCR 0x1E02 +#define GL_DECR 0x1E03 +/* StringName */ +#define GL_VENDOR 0x1F00 +#define GL_RENDERER 0x1F01 +#define GL_VERSION 0x1F02 +#define GL_EXTENSIONS 0x1F03 +/* TextureMagFilter */ +#define GL_NEAREST 0x2600 +#define GL_LINEAR 0x2601 +/* TextureMinFilter */ +#define GL_NEAREST_MIPMAP_NEAREST 0x2700 +#define GL_LINEAR_MIPMAP_NEAREST 0x2701 +#define GL_NEAREST_MIPMAP_LINEAR 0x2702 +#define GL_LINEAR_MIPMAP_LINEAR 0x2703 +/* TextureParameterName */ +#define GL_TEXTURE_MAG_FILTER 0x2800 +#define GL_TEXTURE_MIN_FILTER 0x2801 +#define GL_TEXTURE_WRAP_S 0x2802 +#define GL_TEXTURE_WRAP_T 0x2803 +/* TextureTarget */ +#define GL_PROXY_TEXTURE_1D 0x8063 +#define GL_PROXY_TEXTURE_2D 0x8064 +/* TextureWrapMode */ +#define GL_REPEAT 0x2901 +/* PixelInternalFormat */ +#define GL_R3_G3_B2 0x2A10 +#define GL_RGB4 0x804F +#define GL_RGB5 0x8050 +#define GL_RGB8 0x8051 +#define GL_RGB10 0x8052 +#define GL_RGB12 0x8053 +#define GL_RGB16 0x8054 +#define GL_RGBA2 0x8055 +#define GL_RGBA4 0x8056 +#define GL_RGB5_A1 0x8057 +#define GL_RGBA8 0x8058 +#define GL_RGB10_A2 0x8059 +#define GL_RGBA12 0x805A +#define GL_RGBA16 0x805B +#endif + +#ifndef GL_VERSION_1_2 +#define GL_UNSIGNED_BYTE_3_3_2 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2 0x8036 +#define GL_TEXTURE_BINDING_3D 0x806A +#define GL_PACK_SKIP_IMAGES 0x806B +#define GL_PACK_IMAGE_HEIGHT 0x806C +#define GL_UNPACK_SKIP_IMAGES 0x806D +#define GL_UNPACK_IMAGE_HEIGHT 0x806E +#define GL_TEXTURE_3D 0x806F +#define GL_PROXY_TEXTURE_3D 0x8070 +#define GL_TEXTURE_DEPTH 0x8071 +#define GL_TEXTURE_WRAP_R 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE 0x8073 +#define GL_UNSIGNED_BYTE_2_3_3_REV 0x8362 +#define GL_UNSIGNED_SHORT_5_6_5 0x8363 +#define GL_UNSIGNED_SHORT_5_6_5_REV 0x8364 +#define GL_UNSIGNED_SHORT_4_4_4_4_REV 0x8365 +#define GL_UNSIGNED_SHORT_1_5_5_5_REV 0x8366 +#define GL_UNSIGNED_INT_8_8_8_8_REV 0x8367 +#define GL_UNSIGNED_INT_2_10_10_10_REV 0x8368 +#define GL_BGR 0x80E0 +#define GL_BGRA 0x80E1 +#define GL_MAX_ELEMENTS_VERTICES 0x80E8 +#define GL_MAX_ELEMENTS_INDICES 0x80E9 +#define GL_CLAMP_TO_EDGE 0x812F +#define GL_TEXTURE_MIN_LOD 0x813A +#define GL_TEXTURE_MAX_LOD 0x813B +#define GL_TEXTURE_BASE_LEVEL 0x813C +#define GL_TEXTURE_MAX_LEVEL 0x813D +#define GL_SMOOTH_POINT_SIZE_RANGE 0x0B12 +#define GL_SMOOTH_POINT_SIZE_GRANULARITY 0x0B13 +#define GL_SMOOTH_LINE_WIDTH_RANGE 0x0B22 +#define GL_SMOOTH_LINE_WIDTH_GRANULARITY 0x0B23 +#define GL_ALIASED_LINE_WIDTH_RANGE 0x846E +#endif + +#ifndef GL_ARB_imaging +#define GL_CONSTANT_COLOR 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR 0x8002 +#define GL_CONSTANT_ALPHA 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA 0x8004 +#define GL_BLEND_COLOR 0x8005 +#define GL_FUNC_ADD 0x8006 +#define GL_MIN 0x8007 +#define GL_MAX 0x8008 +#define GL_BLEND_EQUATION 0x8009 +#define GL_FUNC_SUBTRACT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT 0x800B +#endif + +#ifndef GL_VERSION_1_3 +#define GL_TEXTURE0 0x84C0 +#define GL_TEXTURE1 0x84C1 +#define GL_TEXTURE2 0x84C2 +#define GL_TEXTURE3 0x84C3 +#define GL_TEXTURE4 0x84C4 +#define GL_TEXTURE5 0x84C5 +#define GL_TEXTURE6 0x84C6 +#define GL_TEXTURE7 0x84C7 +#define GL_TEXTURE8 0x84C8 +#define GL_TEXTURE9 0x84C9 +#define GL_TEXTURE10 0x84CA +#define GL_TEXTURE11 0x84CB +#define GL_TEXTURE12 0x84CC +#define GL_TEXTURE13 0x84CD +#define GL_TEXTURE14 0x84CE +#define GL_TEXTURE15 0x84CF +#define GL_TEXTURE16 0x84D0 +#define GL_TEXTURE17 0x84D1 +#define GL_TEXTURE18 0x84D2 +#define GL_TEXTURE19 0x84D3 +#define GL_TEXTURE20 0x84D4 +#define GL_TEXTURE21 0x84D5 +#define GL_TEXTURE22 0x84D6 +#define GL_TEXTURE23 0x84D7 +#define GL_TEXTURE24 0x84D8 +#define GL_TEXTURE25 0x84D9 +#define GL_TEXTURE26 0x84DA +#define GL_TEXTURE27 0x84DB +#define GL_TEXTURE28 0x84DC +#define GL_TEXTURE29 0x84DD +#define GL_TEXTURE30 0x84DE +#define GL_TEXTURE31 0x84DF +#define GL_ACTIVE_TEXTURE 0x84E0 +#define GL_MULTISAMPLE 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE 0x809F +#define GL_SAMPLE_COVERAGE 0x80A0 +#define GL_SAMPLE_BUFFERS 0x80A8 +#define GL_SAMPLES 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT 0x80AB +#define GL_TEXTURE_CUBE_MAP 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE 0x851C +#define GL_COMPRESSED_RGB 0x84ED +#define GL_COMPRESSED_RGBA 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE 0x86A0 +#define GL_TEXTURE_COMPRESSED 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS 0x86A3 +#define GL_CLAMP_TO_BORDER 0x812D +#endif + +#ifndef GL_VERSION_1_4 +#define GL_BLEND_DST_RGB 0x80C8 +#define GL_BLEND_SRC_RGB 0x80C9 +#define GL_BLEND_DST_ALPHA 0x80CA +#define GL_BLEND_SRC_ALPHA 0x80CB +#define GL_POINT_FADE_THRESHOLD_SIZE 0x8128 +#define GL_DEPTH_COMPONENT16 0x81A5 +#define GL_DEPTH_COMPONENT24 0x81A6 +#define GL_DEPTH_COMPONENT32 0x81A7 +#define GL_MIRRORED_REPEAT 0x8370 +#define GL_MAX_TEXTURE_LOD_BIAS 0x84FD +#define GL_TEXTURE_LOD_BIAS 0x8501 +#define GL_INCR_WRAP 0x8507 +#define GL_DECR_WRAP 0x8508 +#define GL_TEXTURE_DEPTH_SIZE 0x884A +#define GL_TEXTURE_COMPARE_MODE 0x884C +#define GL_TEXTURE_COMPARE_FUNC 0x884D +#endif + +#ifndef GL_VERSION_1_5 +#define GL_BUFFER_SIZE 0x8764 +#define GL_BUFFER_USAGE 0x8765 +#define GL_QUERY_COUNTER_BITS 0x8864 +#define GL_CURRENT_QUERY 0x8865 +#define GL_QUERY_RESULT 0x8866 +#define GL_QUERY_RESULT_AVAILABLE 0x8867 +#define GL_ARRAY_BUFFER 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER 0x8893 +#define GL_ARRAY_BUFFER_BINDING 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING 0x8895 +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING 0x889F +#define GL_READ_ONLY 0x88B8 +#define GL_WRITE_ONLY 0x88B9 +#define GL_READ_WRITE 0x88BA +#define GL_BUFFER_ACCESS 0x88BB +#define GL_BUFFER_MAPPED 0x88BC +#define GL_BUFFER_MAP_POINTER 0x88BD +#define GL_STREAM_DRAW 0x88E0 +#define GL_STREAM_READ 0x88E1 +#define GL_STREAM_COPY 0x88E2 +#define GL_STATIC_DRAW 0x88E4 +#define GL_STATIC_READ 0x88E5 +#define GL_STATIC_COPY 0x88E6 +#define GL_DYNAMIC_DRAW 0x88E8 +#define GL_DYNAMIC_READ 0x88E9 +#define GL_DYNAMIC_COPY 0x88EA +#define GL_SAMPLES_PASSED 0x8914 +#endif + +#ifndef GL_VERSION_2_0 +#define GL_BLEND_EQUATION_RGB 0x8009 +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE 0x8625 +#define GL_CURRENT_VERTEX_ATTRIB 0x8626 +#define GL_VERTEX_PROGRAM_POINT_SIZE 0x8642 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER 0x8645 +#define GL_STENCIL_BACK_FUNC 0x8800 +#define GL_STENCIL_BACK_FAIL 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS 0x8803 +#define GL_MAX_DRAW_BUFFERS 0x8824 +#define GL_DRAW_BUFFER0 0x8825 +#define GL_DRAW_BUFFER1 0x8826 +#define GL_DRAW_BUFFER2 0x8827 +#define GL_DRAW_BUFFER3 0x8828 +#define GL_DRAW_BUFFER4 0x8829 +#define GL_DRAW_BUFFER5 0x882A +#define GL_DRAW_BUFFER6 0x882B +#define GL_DRAW_BUFFER7 0x882C +#define GL_DRAW_BUFFER8 0x882D +#define GL_DRAW_BUFFER9 0x882E +#define GL_DRAW_BUFFER10 0x882F +#define GL_DRAW_BUFFER11 0x8830 +#define GL_DRAW_BUFFER12 0x8831 +#define GL_DRAW_BUFFER13 0x8832 +#define GL_DRAW_BUFFER14 0x8833 +#define GL_DRAW_BUFFER15 0x8834 +#define GL_BLEND_EQUATION_ALPHA 0x883D +#define GL_MAX_VERTEX_ATTRIBS 0x8869 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED 0x886A +#define GL_MAX_TEXTURE_IMAGE_UNITS 0x8872 +#define GL_FRAGMENT_SHADER 0x8B30 +#define GL_VERTEX_SHADER 0x8B31 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS 0x8B49 +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS 0x8B4A +#define GL_MAX_VARYING_FLOATS 0x8B4B +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS 0x8B4C +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS 0x8B4D +#define GL_SHADER_TYPE 0x8B4F +#define GL_FLOAT_VEC2 0x8B50 +#define GL_FLOAT_VEC3 0x8B51 +#define GL_FLOAT_VEC4 0x8B52 +#define GL_INT_VEC2 0x8B53 +#define GL_INT_VEC3 0x8B54 +#define GL_INT_VEC4 0x8B55 +#define GL_BOOL 0x8B56 +#define GL_BOOL_VEC2 0x8B57 +#define GL_BOOL_VEC3 0x8B58 +#define GL_BOOL_VEC4 0x8B59 +#define GL_FLOAT_MAT2 0x8B5A +#define GL_FLOAT_MAT3 0x8B5B +#define GL_FLOAT_MAT4 0x8B5C +#define GL_SAMPLER_1D 0x8B5D +#define GL_SAMPLER_2D 0x8B5E +#define GL_SAMPLER_3D 0x8B5F +#define GL_SAMPLER_CUBE 0x8B60 +#define GL_SAMPLER_1D_SHADOW 0x8B61 +#define GL_SAMPLER_2D_SHADOW 0x8B62 +#define GL_DELETE_STATUS 0x8B80 +#define GL_COMPILE_STATUS 0x8B81 +#define GL_LINK_STATUS 0x8B82 +#define GL_VALIDATE_STATUS 0x8B83 +#define GL_INFO_LOG_LENGTH 0x8B84 +#define GL_ATTACHED_SHADERS 0x8B85 +#define GL_ACTIVE_UNIFORMS 0x8B86 +#define GL_ACTIVE_UNIFORM_MAX_LENGTH 0x8B87 +#define GL_SHADER_SOURCE_LENGTH 0x8B88 +#define GL_ACTIVE_ATTRIBUTES 0x8B89 +#define GL_ACTIVE_ATTRIBUTE_MAX_LENGTH 0x8B8A +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT 0x8B8B +#define GL_SHADING_LANGUAGE_VERSION 0x8B8C +#define GL_CURRENT_PROGRAM 0x8B8D +#define GL_POINT_SPRITE_COORD_ORIGIN 0x8CA0 +#define GL_LOWER_LEFT 0x8CA1 +#define GL_UPPER_LEFT 0x8CA2 +#define GL_STENCIL_BACK_REF 0x8CA3 +#define GL_STENCIL_BACK_VALUE_MASK 0x8CA4 +#define GL_STENCIL_BACK_WRITEMASK 0x8CA5 +#endif + +#ifndef GL_VERSION_2_1 +#define GL_PIXEL_PACK_BUFFER 0x88EB +#define GL_PIXEL_UNPACK_BUFFER 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING 0x88EF +#define GL_FLOAT_MAT2x3 0x8B65 +#define GL_FLOAT_MAT2x4 0x8B66 +#define GL_FLOAT_MAT3x2 0x8B67 +#define GL_FLOAT_MAT3x4 0x8B68 +#define GL_FLOAT_MAT4x2 0x8B69 +#define GL_FLOAT_MAT4x3 0x8B6A +#define GL_SRGB 0x8C40 +#define GL_SRGB8 0x8C41 +#define GL_SRGB_ALPHA 0x8C42 +#define GL_SRGB8_ALPHA8 0x8C43 +#define GL_COMPRESSED_SRGB 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA 0x8C49 +#endif + +#ifndef GL_VERSION_3_0 +#define GL_COMPARE_REF_TO_TEXTURE 0x884E +#define GL_CLIP_DISTANCE0 0x3000 +#define GL_CLIP_DISTANCE1 0x3001 +#define GL_CLIP_DISTANCE2 0x3002 +#define GL_CLIP_DISTANCE3 0x3003 +#define GL_CLIP_DISTANCE4 0x3004 +#define GL_CLIP_DISTANCE5 0x3005 +#define GL_CLIP_DISTANCE6 0x3006 +#define GL_CLIP_DISTANCE7 0x3007 +#define GL_MAX_CLIP_DISTANCES 0x0D32 +#define GL_MAJOR_VERSION 0x821B +#define GL_MINOR_VERSION 0x821C +#define GL_NUM_EXTENSIONS 0x821D +#define GL_CONTEXT_FLAGS 0x821E +#define GL_COMPRESSED_RED 0x8225 +#define GL_COMPRESSED_RG 0x8226 +#define GL_CONTEXT_FLAG_FORWARD_COMPATIBLE_BIT 0x0001 +#define GL_RGBA32F 0x8814 +#define GL_RGB32F 0x8815 +#define GL_RGBA16F 0x881A +#define GL_RGB16F 0x881B +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER 0x88FD +#define GL_MAX_ARRAY_TEXTURE_LAYERS 0x88FF +#define GL_MIN_PROGRAM_TEXEL_OFFSET 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET 0x8905 +#define GL_CLAMP_READ_COLOR 0x891C +#define GL_FIXED_ONLY 0x891D +#define GL_MAX_VARYING_COMPONENTS 0x8B4B +#define GL_TEXTURE_1D_ARRAY 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY 0x8C19 +#define GL_TEXTURE_2D_ARRAY 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY 0x8C1D +#define GL_R11F_G11F_B10F 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV 0x8C3B +#define GL_RGB9_E5 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV 0x8C3E +#define GL_TEXTURE_SHARED_SIZE 0x8C3F +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH 0x8C76 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE 0x8C7F +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_START 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE 0x8C85 +#define GL_PRIMITIVES_GENERATED 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN 0x8C88 +#define GL_RASTERIZER_DISCARD 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS 0x8C8B +#define GL_INTERLEAVED_ATTRIBS 0x8C8C +#define GL_SEPARATE_ATTRIBS 0x8C8D +#define GL_TRANSFORM_FEEDBACK_BUFFER 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING 0x8C8F +#define GL_RGBA32UI 0x8D70 +#define GL_RGB32UI 0x8D71 +#define GL_RGBA16UI 0x8D76 +#define GL_RGB16UI 0x8D77 +#define GL_RGBA8UI 0x8D7C +#define GL_RGB8UI 0x8D7D +#define GL_RGBA32I 0x8D82 +#define GL_RGB32I 0x8D83 +#define GL_RGBA16I 0x8D88 +#define GL_RGB16I 0x8D89 +#define GL_RGBA8I 0x8D8E +#define GL_RGB8I 0x8D8F +#define GL_RED_INTEGER 0x8D94 +#define GL_GREEN_INTEGER 0x8D95 +#define GL_BLUE_INTEGER 0x8D96 +#define GL_RGB_INTEGER 0x8D98 +#define GL_RGBA_INTEGER 0x8D99 +#define GL_BGR_INTEGER 0x8D9A +#define GL_BGRA_INTEGER 0x8D9B +#define GL_SAMPLER_1D_ARRAY 0x8DC0 +#define GL_SAMPLER_2D_ARRAY 0x8DC1 +#define GL_SAMPLER_1D_ARRAY_SHADOW 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW 0x8DC5 +#define GL_UNSIGNED_INT_VEC2 0x8DC6 +#define GL_UNSIGNED_INT_VEC3 0x8DC7 +#define GL_UNSIGNED_INT_VEC4 0x8DC8 +#define GL_INT_SAMPLER_1D 0x8DC9 +#define GL_INT_SAMPLER_2D 0x8DCA +#define GL_INT_SAMPLER_3D 0x8DCB +#define GL_INT_SAMPLER_CUBE 0x8DCC +#define GL_INT_SAMPLER_1D_ARRAY 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY 0x8DCF +#define GL_UNSIGNED_INT_SAMPLER_1D 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY 0x8DD7 +#define GL_QUERY_WAIT 0x8E13 +#define GL_QUERY_NO_WAIT 0x8E14 +#define GL_QUERY_BY_REGION_WAIT 0x8E15 +#define GL_QUERY_BY_REGION_NO_WAIT 0x8E16 +#define GL_BUFFER_ACCESS_FLAGS 0x911F +#define GL_BUFFER_MAP_LENGTH 0x9120 +#define GL_BUFFER_MAP_OFFSET 0x9121 +/* Reuse tokens from ARB_depth_buffer_float */ +/* reuse GL_DEPTH_COMPONENT32F */ +/* reuse GL_DEPTH32F_STENCIL8 */ +/* reuse GL_FLOAT_32_UNSIGNED_INT_24_8_REV */ +/* Reuse tokens from ARB_framebuffer_object */ +/* reuse GL_INVALID_FRAMEBUFFER_OPERATION */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE */ +/* reuse GL_FRAMEBUFFER_DEFAULT */ +/* reuse GL_FRAMEBUFFER_UNDEFINED */ +/* reuse GL_DEPTH_STENCIL_ATTACHMENT */ +/* reuse GL_MAX_RENDERBUFFER_SIZE */ +/* reuse GL_DEPTH_STENCIL */ +/* reuse GL_UNSIGNED_INT_24_8 */ +/* reuse GL_DEPTH24_STENCIL8 */ +/* reuse GL_TEXTURE_STENCIL_SIZE */ +/* reuse GL_TEXTURE_RED_TYPE */ +/* reuse GL_TEXTURE_GREEN_TYPE */ +/* reuse GL_TEXTURE_BLUE_TYPE */ +/* reuse GL_TEXTURE_ALPHA_TYPE */ +/* reuse GL_TEXTURE_DEPTH_TYPE */ +/* reuse GL_UNSIGNED_NORMALIZED */ +/* reuse GL_FRAMEBUFFER_BINDING */ +/* reuse GL_DRAW_FRAMEBUFFER_BINDING */ +/* reuse GL_RENDERBUFFER_BINDING */ +/* reuse GL_READ_FRAMEBUFFER */ +/* reuse GL_DRAW_FRAMEBUFFER */ +/* reuse GL_READ_FRAMEBUFFER_BINDING */ +/* reuse GL_RENDERBUFFER_SAMPLES */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ +/* reuse GL_FRAMEBUFFER_COMPLETE */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER */ +/* reuse GL_FRAMEBUFFER_UNSUPPORTED */ +/* reuse GL_MAX_COLOR_ATTACHMENTS */ +/* reuse GL_COLOR_ATTACHMENT0 */ +/* reuse GL_COLOR_ATTACHMENT1 */ +/* reuse GL_COLOR_ATTACHMENT2 */ +/* reuse GL_COLOR_ATTACHMENT3 */ +/* reuse GL_COLOR_ATTACHMENT4 */ +/* reuse GL_COLOR_ATTACHMENT5 */ +/* reuse GL_COLOR_ATTACHMENT6 */ +/* reuse GL_COLOR_ATTACHMENT7 */ +/* reuse GL_COLOR_ATTACHMENT8 */ +/* reuse GL_COLOR_ATTACHMENT9 */ +/* reuse GL_COLOR_ATTACHMENT10 */ +/* reuse GL_COLOR_ATTACHMENT11 */ +/* reuse GL_COLOR_ATTACHMENT12 */ +/* reuse GL_COLOR_ATTACHMENT13 */ +/* reuse GL_COLOR_ATTACHMENT14 */ +/* reuse GL_COLOR_ATTACHMENT15 */ +/* reuse GL_DEPTH_ATTACHMENT */ +/* reuse GL_STENCIL_ATTACHMENT */ +/* reuse GL_FRAMEBUFFER */ +/* reuse GL_RENDERBUFFER */ +/* reuse GL_RENDERBUFFER_WIDTH */ +/* reuse GL_RENDERBUFFER_HEIGHT */ +/* reuse GL_RENDERBUFFER_INTERNAL_FORMAT */ +/* reuse GL_STENCIL_INDEX1 */ +/* reuse GL_STENCIL_INDEX4 */ +/* reuse GL_STENCIL_INDEX8 */ +/* reuse GL_STENCIL_INDEX16 */ +/* reuse GL_RENDERBUFFER_RED_SIZE */ +/* reuse GL_RENDERBUFFER_GREEN_SIZE */ +/* reuse GL_RENDERBUFFER_BLUE_SIZE */ +/* reuse GL_RENDERBUFFER_ALPHA_SIZE */ +/* reuse GL_RENDERBUFFER_DEPTH_SIZE */ +/* reuse GL_RENDERBUFFER_STENCIL_SIZE */ +/* reuse GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE */ +/* reuse GL_MAX_SAMPLES */ +/* Reuse tokens from ARB_framebuffer_sRGB */ +/* reuse GL_FRAMEBUFFER_SRGB */ +/* Reuse tokens from ARB_half_float_vertex */ +/* reuse GL_HALF_FLOAT */ +/* Reuse tokens from ARB_map_buffer_range */ +/* reuse GL_MAP_READ_BIT */ +/* reuse GL_MAP_WRITE_BIT */ +/* reuse GL_MAP_INVALIDATE_RANGE_BIT */ +/* reuse GL_MAP_INVALIDATE_BUFFER_BIT */ +/* reuse GL_MAP_FLUSH_EXPLICIT_BIT */ +/* reuse GL_MAP_UNSYNCHRONIZED_BIT */ +/* Reuse tokens from ARB_texture_compression_rgtc */ +/* reuse GL_COMPRESSED_RED_RGTC1 */ +/* reuse GL_COMPRESSED_SIGNED_RED_RGTC1 */ +/* reuse GL_COMPRESSED_RG_RGTC2 */ +/* reuse GL_COMPRESSED_SIGNED_RG_RGTC2 */ +/* Reuse tokens from ARB_texture_rg */ +/* reuse GL_RG */ +/* reuse GL_RG_INTEGER */ +/* reuse GL_R8 */ +/* reuse GL_R16 */ +/* reuse GL_RG8 */ +/* reuse GL_RG16 */ +/* reuse GL_R16F */ +/* reuse GL_R32F */ +/* reuse GL_RG16F */ +/* reuse GL_RG32F */ +/* reuse GL_R8I */ +/* reuse GL_R8UI */ +/* reuse GL_R16I */ +/* reuse GL_R16UI */ +/* reuse GL_R32I */ +/* reuse GL_R32UI */ +/* reuse GL_RG8I */ +/* reuse GL_RG8UI */ +/* reuse GL_RG16I */ +/* reuse GL_RG16UI */ +/* reuse GL_RG32I */ +/* reuse GL_RG32UI */ +/* Reuse tokens from ARB_vertex_array_object */ +/* reuse GL_VERTEX_ARRAY_BINDING */ +#endif + +#ifndef GL_VERSION_3_1 +#define GL_SAMPLER_2D_RECT 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW 0x8B64 +#define GL_SAMPLER_BUFFER 0x8DC2 +#define GL_INT_SAMPLER_2D_RECT 0x8DCD +#define GL_INT_SAMPLER_BUFFER 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER 0x8DD8 +#define GL_TEXTURE_BUFFER 0x8C2A +#define GL_MAX_TEXTURE_BUFFER_SIZE 0x8C2B +#define GL_TEXTURE_BINDING_BUFFER 0x8C2C +#define GL_TEXTURE_BUFFER_DATA_STORE_BINDING 0x8C2D +#define GL_TEXTURE_RECTANGLE 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE 0x84F8 +#define GL_R8_SNORM 0x8F94 +#define GL_RG8_SNORM 0x8F95 +#define GL_RGB8_SNORM 0x8F96 +#define GL_RGBA8_SNORM 0x8F97 +#define GL_R16_SNORM 0x8F98 +#define GL_RG16_SNORM 0x8F99 +#define GL_RGB16_SNORM 0x8F9A +#define GL_RGBA16_SNORM 0x8F9B +#define GL_SIGNED_NORMALIZED 0x8F9C +#define GL_PRIMITIVE_RESTART 0x8F9D +#define GL_PRIMITIVE_RESTART_INDEX 0x8F9E +/* Reuse tokens from ARB_copy_buffer */ +/* reuse GL_COPY_READ_BUFFER */ +/* reuse GL_COPY_WRITE_BUFFER */ +/* Reuse tokens from ARB_draw_instanced (none) */ +/* Reuse tokens from ARB_uniform_buffer_object */ +/* reuse GL_UNIFORM_BUFFER */ +/* reuse GL_UNIFORM_BUFFER_BINDING */ +/* reuse GL_UNIFORM_BUFFER_START */ +/* reuse GL_UNIFORM_BUFFER_SIZE */ +/* reuse GL_MAX_VERTEX_UNIFORM_BLOCKS */ +/* reuse GL_MAX_FRAGMENT_UNIFORM_BLOCKS */ +/* reuse GL_MAX_COMBINED_UNIFORM_BLOCKS */ +/* reuse GL_MAX_UNIFORM_BUFFER_BINDINGS */ +/* reuse GL_MAX_UNIFORM_BLOCK_SIZE */ +/* reuse GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS */ +/* reuse GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS */ +/* reuse GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT */ +/* reuse GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH */ +/* reuse GL_ACTIVE_UNIFORM_BLOCKS */ +/* reuse GL_UNIFORM_TYPE */ +/* reuse GL_UNIFORM_SIZE */ +/* reuse GL_UNIFORM_NAME_LENGTH */ +/* reuse GL_UNIFORM_BLOCK_INDEX */ +/* reuse GL_UNIFORM_OFFSET */ +/* reuse GL_UNIFORM_ARRAY_STRIDE */ +/* reuse GL_UNIFORM_MATRIX_STRIDE */ +/* reuse GL_UNIFORM_IS_ROW_MAJOR */ +/* reuse GL_UNIFORM_BLOCK_BINDING */ +/* reuse GL_UNIFORM_BLOCK_DATA_SIZE */ +/* reuse GL_UNIFORM_BLOCK_NAME_LENGTH */ +/* reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS */ +/* reuse GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES */ +/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER */ +/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER */ +/* reuse GL_INVALID_INDEX */ +#endif + +#ifndef GL_VERSION_3_2 +#define GL_CONTEXT_CORE_PROFILE_BIT 0x00000001 +#define GL_CONTEXT_COMPATIBILITY_PROFILE_BIT 0x00000002 +#define GL_LINES_ADJACENCY 0x000A +#define GL_LINE_STRIP_ADJACENCY 0x000B +#define GL_TRIANGLES_ADJACENCY 0x000C +#define GL_TRIANGLE_STRIP_ADJACENCY 0x000D +#define GL_PROGRAM_POINT_SIZE 0x8642 +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS 0x8C29 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED 0x8DA7 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS 0x8DA8 +#define GL_GEOMETRY_SHADER 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT 0x8916 +#define GL_GEOMETRY_INPUT_TYPE 0x8917 +#define GL_GEOMETRY_OUTPUT_TYPE 0x8918 +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS 0x8DE1 +#define GL_MAX_VERTEX_OUTPUT_COMPONENTS 0x9122 +#define GL_MAX_GEOMETRY_INPUT_COMPONENTS 0x9123 +#define GL_MAX_GEOMETRY_OUTPUT_COMPONENTS 0x9124 +#define GL_MAX_FRAGMENT_INPUT_COMPONENTS 0x9125 +#define GL_CONTEXT_PROFILE_MASK 0x9126 +/* reuse GL_MAX_VARYING_COMPONENTS */ +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER */ +/* Reuse tokens from ARB_depth_clamp */ +/* reuse GL_DEPTH_CLAMP */ +/* Reuse tokens from ARB_draw_elements_base_vertex (none) */ +/* Reuse tokens from ARB_fragment_coord_conventions (none) */ +/* Reuse tokens from ARB_provoking_vertex */ +/* reuse GL_FIRST_VERTEX_CONVENTION */ +/* reuse GL_LAST_VERTEX_CONVENTION */ +/* reuse GL_PROVOKING_VERTEX */ +/* Reuse tokens from ARB_seamless_cube_map */ +/* reuse GL_TEXTURE_CUBE_MAP_SEAMLESS */ +/* Reuse tokens from ARB_sync */ +/* reuse GL_MAX_SERVER_WAIT_TIMEOUT */ +/* reuse GL_OBJECT_TYPE */ +/* reuse GL_SYNC_CONDITION */ +/* reuse GL_SYNC_STATUS */ +/* reuse GL_SYNC_FLAGS */ +/* reuse GL_SYNC_FENCE */ +/* reuse GL_SYNC_GPU_COMMANDS_COMPLETE */ +/* reuse GL_UNSIGNALED */ +/* reuse GL_SIGNALED */ +/* reuse GL_ALREADY_SIGNALED */ +/* reuse GL_TIMEOUT_EXPIRED */ +/* reuse GL_CONDITION_SATISFIED */ +/* reuse GL_WAIT_FAILED */ +/* reuse GL_TIMEOUT_IGNORED */ +/* reuse GL_SYNC_FLUSH_COMMANDS_BIT */ +/* reuse GL_TIMEOUT_IGNORED */ +/* Reuse tokens from ARB_texture_multisample */ +/* reuse GL_SAMPLE_POSITION */ +/* reuse GL_SAMPLE_MASK */ +/* reuse GL_SAMPLE_MASK_VALUE */ +/* reuse GL_MAX_SAMPLE_MASK_WORDS */ +/* reuse GL_TEXTURE_2D_MULTISAMPLE */ +/* reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE */ +/* reuse GL_TEXTURE_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE */ +/* reuse GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_TEXTURE_SAMPLES */ +/* reuse GL_TEXTURE_FIXED_SAMPLE_LOCATIONS */ +/* reuse GL_SAMPLER_2D_MULTISAMPLE */ +/* reuse GL_INT_SAMPLER_2D_MULTISAMPLE */ +/* reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE */ +/* reuse GL_SAMPLER_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY */ +/* reuse GL_MAX_COLOR_TEXTURE_SAMPLES */ +/* reuse GL_MAX_DEPTH_TEXTURE_SAMPLES */ +/* reuse GL_MAX_INTEGER_SAMPLES */ +/* Don't need to reuse tokens from ARB_vertex_array_bgra since they're already in 1.2 core */ +#endif + +#ifndef GL_VERSION_3_3 +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR 0x88FE +/* Reuse tokens from ARB_blend_func_extended */ +/* reuse GL_SRC1_COLOR */ +/* reuse GL_SRC1_ALPHA */ +/* reuse GL_ONE_MINUS_SRC1_COLOR */ +/* reuse GL_ONE_MINUS_SRC1_ALPHA */ +/* reuse GL_MAX_DUAL_SOURCE_DRAW_BUFFERS */ +/* Reuse tokens from ARB_explicit_attrib_location (none) */ +/* Reuse tokens from ARB_occlusion_query2 */ +/* reuse GL_ANY_SAMPLES_PASSED */ +/* Reuse tokens from ARB_sampler_objects */ +/* reuse GL_SAMPLER_BINDING */ +/* Reuse tokens from ARB_shader_bit_encoding (none) */ +/* Reuse tokens from ARB_texture_rgb10_a2ui */ +/* reuse GL_RGB10_A2UI */ +/* Reuse tokens from ARB_texture_swizzle */ +/* reuse GL_TEXTURE_SWIZZLE_R */ +/* reuse GL_TEXTURE_SWIZZLE_G */ +/* reuse GL_TEXTURE_SWIZZLE_B */ +/* reuse GL_TEXTURE_SWIZZLE_A */ +/* reuse GL_TEXTURE_SWIZZLE_RGBA */ +/* Reuse tokens from ARB_timer_query */ +/* reuse GL_TIME_ELAPSED */ +/* reuse GL_TIMESTAMP */ +/* Reuse tokens from ARB_vertex_type_2_10_10_10_rev */ +/* reuse GL_INT_2_10_10_10_REV */ +#endif + +#ifndef GL_VERSION_4_0 +#define GL_SAMPLE_SHADING 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE 0x8C37 +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET 0x8E5F +#define GL_TEXTURE_CUBE_MAP_ARRAY 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY 0x900A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY 0x900B +#define GL_SAMPLER_CUBE_MAP_ARRAY 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY 0x900F +/* Reuse tokens from ARB_texture_query_lod (none) */ +/* Reuse tokens from ARB_draw_indirect */ +/* reuse GL_DRAW_INDIRECT_BUFFER */ +/* reuse GL_DRAW_INDIRECT_BUFFER_BINDING */ +/* Reuse tokens from ARB_gpu_shader5 */ +/* reuse GL_GEOMETRY_SHADER_INVOCATIONS */ +/* reuse GL_MAX_GEOMETRY_SHADER_INVOCATIONS */ +/* reuse GL_MIN_FRAGMENT_INTERPOLATION_OFFSET */ +/* reuse GL_MAX_FRAGMENT_INTERPOLATION_OFFSET */ +/* reuse GL_FRAGMENT_INTERPOLATION_OFFSET_BITS */ +/* reuse GL_MAX_VERTEX_STREAMS */ +/* Reuse tokens from ARB_gpu_shader_fp64 */ +/* reuse GL_DOUBLE_VEC2 */ +/* reuse GL_DOUBLE_VEC3 */ +/* reuse GL_DOUBLE_VEC4 */ +/* reuse GL_DOUBLE_MAT2 */ +/* reuse GL_DOUBLE_MAT3 */ +/* reuse GL_DOUBLE_MAT4 */ +/* reuse GL_DOUBLE_MAT2x3 */ +/* reuse GL_DOUBLE_MAT2x4 */ +/* reuse GL_DOUBLE_MAT3x2 */ +/* reuse GL_DOUBLE_MAT3x4 */ +/* reuse GL_DOUBLE_MAT4x2 */ +/* reuse GL_DOUBLE_MAT4x3 */ +/* Reuse tokens from ARB_shader_subroutine */ +/* reuse GL_ACTIVE_SUBROUTINES */ +/* reuse GL_ACTIVE_SUBROUTINE_UNIFORMS */ +/* reuse GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS */ +/* reuse GL_ACTIVE_SUBROUTINE_MAX_LENGTH */ +/* reuse GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH */ +/* reuse GL_MAX_SUBROUTINES */ +/* reuse GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS */ +/* reuse GL_NUM_COMPATIBLE_SUBROUTINES */ +/* reuse GL_COMPATIBLE_SUBROUTINES */ +/* Reuse tokens from ARB_tessellation_shader */ +/* reuse GL_PATCHES */ +/* reuse GL_PATCH_VERTICES */ +/* reuse GL_PATCH_DEFAULT_INNER_LEVEL */ +/* reuse GL_PATCH_DEFAULT_OUTER_LEVEL */ +/* reuse GL_TESS_CONTROL_OUTPUT_VERTICES */ +/* reuse GL_TESS_GEN_MODE */ +/* reuse GL_TESS_GEN_SPACING */ +/* reuse GL_TESS_GEN_VERTEX_ORDER */ +/* reuse GL_TESS_GEN_POINT_MODE */ +/* reuse GL_ISOLINES */ +/* reuse GL_FRACTIONAL_ODD */ +/* reuse GL_FRACTIONAL_EVEN */ +/* reuse GL_MAX_PATCH_VERTICES */ +/* reuse GL_MAX_TESS_GEN_LEVEL */ +/* reuse GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS */ +/* reuse GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS */ +/* reuse GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS */ +/* reuse GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS */ +/* reuse GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS */ +/* reuse GL_MAX_TESS_PATCH_COMPONENTS */ +/* reuse GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS */ +/* reuse GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS */ +/* reuse GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS */ +/* reuse GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS */ +/* reuse GL_MAX_TESS_CONTROL_INPUT_COMPONENTS */ +/* reuse GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS */ +/* reuse GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS */ +/* reuse GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS */ +/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER */ +/* reuse GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER */ +/* reuse GL_TESS_EVALUATION_SHADER */ +/* reuse GL_TESS_CONTROL_SHADER */ +/* Reuse tokens from ARB_texture_buffer_object_rgb32 (none) */ +/* Reuse tokens from ARB_transform_feedback2 */ +/* reuse GL_TRANSFORM_FEEDBACK */ +/* reuse GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED */ +/* reuse GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE */ +/* reuse GL_TRANSFORM_FEEDBACK_BINDING */ +/* Reuse tokens from ARB_transform_feedback3 */ +/* reuse GL_MAX_TRANSFORM_FEEDBACK_BUFFERS */ +/* reuse GL_MAX_VERTEX_STREAMS */ +#endif + +#ifndef GL_VERSION_4_1 +/* Reuse tokens from ARB_ES2_compatibility */ +/* reuse GL_FIXED */ +/* reuse GL_IMPLEMENTATION_COLOR_READ_TYPE */ +/* reuse GL_IMPLEMENTATION_COLOR_READ_FORMAT */ +/* reuse GL_LOW_FLOAT */ +/* reuse GL_MEDIUM_FLOAT */ +/* reuse GL_HIGH_FLOAT */ +/* reuse GL_LOW_INT */ +/* reuse GL_MEDIUM_INT */ +/* reuse GL_HIGH_INT */ +/* reuse GL_SHADER_COMPILER */ +/* reuse GL_NUM_SHADER_BINARY_FORMATS */ +/* reuse GL_MAX_VERTEX_UNIFORM_VECTORS */ +/* reuse GL_MAX_VARYING_VECTORS */ +/* reuse GL_MAX_FRAGMENT_UNIFORM_VECTORS */ +/* reuse GL_RGB565 */ +/* Reuse tokens from ARB_get_program_binary */ +/* reuse GL_PROGRAM_BINARY_RETRIEVABLE_HINT */ +/* reuse GL_PROGRAM_BINARY_LENGTH */ +/* reuse GL_NUM_PROGRAM_BINARY_FORMATS */ +/* reuse GL_PROGRAM_BINARY_FORMATS */ +/* Reuse tokens from ARB_separate_shader_objects */ +/* reuse GL_VERTEX_SHADER_BIT */ +/* reuse GL_FRAGMENT_SHADER_BIT */ +/* reuse GL_GEOMETRY_SHADER_BIT */ +/* reuse GL_TESS_CONTROL_SHADER_BIT */ +/* reuse GL_TESS_EVALUATION_SHADER_BIT */ +/* reuse GL_ALL_SHADER_BITS */ +/* reuse GL_PROGRAM_SEPARABLE */ +/* reuse GL_ACTIVE_PROGRAM */ +/* reuse GL_PROGRAM_PIPELINE_BINDING */ +/* Reuse tokens from ARB_shader_precision (none) */ +/* Reuse tokens from ARB_vertex_attrib_64bit - all are in GL 3.0 and 4.0 already */ +/* Reuse tokens from ARB_viewport_array - some are in GL 1.1 and ARB_provoking_vertex already */ +/* reuse GL_MAX_VIEWPORTS */ +/* reuse GL_VIEWPORT_SUBPIXEL_BITS */ +/* reuse GL_VIEWPORT_BOUNDS_RANGE */ +/* reuse GL_LAYER_PROVOKING_VERTEX */ +/* reuse GL_VIEWPORT_INDEX_PROVOKING_VERTEX */ +/* reuse GL_UNDEFINED_VERTEX */ +#endif + +#ifndef GL_ARB_depth_buffer_float +#define GL_DEPTH_COMPONENT32F 0x8CAC +#define GL_DEPTH32F_STENCIL8 0x8CAD +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD +#endif + +#ifndef GL_ARB_framebuffer_object +#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 +#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 +#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 +#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 +#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 +#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 +#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 +#define GL_FRAMEBUFFER_DEFAULT 0x8218 +#define GL_FRAMEBUFFER_UNDEFINED 0x8219 +#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A +#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 +#define GL_DEPTH_STENCIL 0x84F9 +#define GL_UNSIGNED_INT_24_8 0x84FA +#define GL_DEPTH24_STENCIL8 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE 0x88F1 +#define GL_TEXTURE_RED_TYPE 0x8C10 +#define GL_TEXTURE_GREEN_TYPE 0x8C11 +#define GL_TEXTURE_BLUE_TYPE 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE 0x8C13 +#define GL_TEXTURE_DEPTH_TYPE 0x8C16 +#define GL_UNSIGNED_NORMALIZED 0x8C17 +#define GL_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_DRAW_FRAMEBUFFER_BINDING GL_FRAMEBUFFER_BINDING +#define GL_RENDERBUFFER_BINDING 0x8CA7 +#define GL_READ_FRAMEBUFFER 0x8CA8 +#define GL_DRAW_FRAMEBUFFER 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA +#define GL_RENDERBUFFER_SAMPLES 0x8CAB +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 +#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD +#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF +#define GL_COLOR_ATTACHMENT0 0x8CE0 +#define GL_COLOR_ATTACHMENT1 0x8CE1 +#define GL_COLOR_ATTACHMENT2 0x8CE2 +#define GL_COLOR_ATTACHMENT3 0x8CE3 +#define GL_COLOR_ATTACHMENT4 0x8CE4 +#define GL_COLOR_ATTACHMENT5 0x8CE5 +#define GL_COLOR_ATTACHMENT6 0x8CE6 +#define GL_COLOR_ATTACHMENT7 0x8CE7 +#define GL_COLOR_ATTACHMENT8 0x8CE8 +#define GL_COLOR_ATTACHMENT9 0x8CE9 +#define GL_COLOR_ATTACHMENT10 0x8CEA +#define GL_COLOR_ATTACHMENT11 0x8CEB +#define GL_COLOR_ATTACHMENT12 0x8CEC +#define GL_COLOR_ATTACHMENT13 0x8CED +#define GL_COLOR_ATTACHMENT14 0x8CEE +#define GL_COLOR_ATTACHMENT15 0x8CEF +#define GL_DEPTH_ATTACHMENT 0x8D00 +#define GL_STENCIL_ATTACHMENT 0x8D20 +#define GL_FRAMEBUFFER 0x8D40 +#define GL_RENDERBUFFER 0x8D41 +#define GL_RENDERBUFFER_WIDTH 0x8D42 +#define GL_RENDERBUFFER_HEIGHT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 +#define GL_STENCIL_INDEX1 0x8D46 +#define GL_STENCIL_INDEX4 0x8D47 +#define GL_STENCIL_INDEX8 0x8D48 +#define GL_STENCIL_INDEX16 0x8D49 +#define GL_RENDERBUFFER_RED_SIZE 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 +#define GL_MAX_SAMPLES 0x8D57 +#endif + +#ifndef GL_ARB_framebuffer_sRGB +#define GL_FRAMEBUFFER_SRGB 0x8DB9 +#endif + +#ifndef GL_ARB_half_float_vertex +#define GL_HALF_FLOAT 0x140B +#endif + +#ifndef GL_ARB_map_buffer_range +#define GL_MAP_READ_BIT 0x0001 +#define GL_MAP_WRITE_BIT 0x0002 +#define GL_MAP_INVALIDATE_RANGE_BIT 0x0004 +#define GL_MAP_INVALIDATE_BUFFER_BIT 0x0008 +#define GL_MAP_FLUSH_EXPLICIT_BIT 0x0010 +#define GL_MAP_UNSYNCHRONIZED_BIT 0x0020 +#endif + +#ifndef GL_ARB_texture_compression_rgtc +#define GL_COMPRESSED_RED_RGTC1 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC +#define GL_COMPRESSED_RG_RGTC2 0x8DBD +#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE +#endif + +#ifndef GL_ARB_texture_rg +#define GL_RG 0x8227 +#define GL_RG_INTEGER 0x8228 +#define GL_R8 0x8229 +#define GL_R16 0x822A +#define GL_RG8 0x822B +#define GL_RG16 0x822C +#define GL_R16F 0x822D +#define GL_R32F 0x822E +#define GL_RG16F 0x822F +#define GL_RG32F 0x8230 +#define GL_R8I 0x8231 +#define GL_R8UI 0x8232 +#define GL_R16I 0x8233 +#define GL_R16UI 0x8234 +#define GL_R32I 0x8235 +#define GL_R32UI 0x8236 +#define GL_RG8I 0x8237 +#define GL_RG8UI 0x8238 +#define GL_RG16I 0x8239 +#define GL_RG16UI 0x823A +#define GL_RG32I 0x823B +#define GL_RG32UI 0x823C +#endif + +#ifndef GL_ARB_vertex_array_object +#define GL_VERTEX_ARRAY_BINDING 0x85B5 +#endif + +#ifndef GL_ARB_uniform_buffer_object +#define GL_UNIFORM_BUFFER 0x8A11 +#define GL_UNIFORM_BUFFER_BINDING 0x8A28 +#define GL_UNIFORM_BUFFER_START 0x8A29 +#define GL_UNIFORM_BUFFER_SIZE 0x8A2A +#define GL_MAX_VERTEX_UNIFORM_BLOCKS 0x8A2B +#define GL_MAX_GEOMETRY_UNIFORM_BLOCKS 0x8A2C +#define GL_MAX_FRAGMENT_UNIFORM_BLOCKS 0x8A2D +#define GL_MAX_COMBINED_UNIFORM_BLOCKS 0x8A2E +#define GL_MAX_UNIFORM_BUFFER_BINDINGS 0x8A2F +#define GL_MAX_UNIFORM_BLOCK_SIZE 0x8A30 +#define GL_MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS 0x8A31 +#define GL_MAX_COMBINED_GEOMETRY_UNIFORM_COMPONENTS 0x8A32 +#define GL_MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS 0x8A33 +#define GL_UNIFORM_BUFFER_OFFSET_ALIGNMENT 0x8A34 +#define GL_ACTIVE_UNIFORM_BLOCK_MAX_NAME_LENGTH 0x8A35 +#define GL_ACTIVE_UNIFORM_BLOCKS 0x8A36 +#define GL_UNIFORM_TYPE 0x8A37 +#define GL_UNIFORM_SIZE 0x8A38 +#define GL_UNIFORM_NAME_LENGTH 0x8A39 +#define GL_UNIFORM_BLOCK_INDEX 0x8A3A +#define GL_UNIFORM_OFFSET 0x8A3B +#define GL_UNIFORM_ARRAY_STRIDE 0x8A3C +#define GL_UNIFORM_MATRIX_STRIDE 0x8A3D +#define GL_UNIFORM_IS_ROW_MAJOR 0x8A3E +#define GL_UNIFORM_BLOCK_BINDING 0x8A3F +#define GL_UNIFORM_BLOCK_DATA_SIZE 0x8A40 +#define GL_UNIFORM_BLOCK_NAME_LENGTH 0x8A41 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORMS 0x8A42 +#define GL_UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES 0x8A43 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER 0x8A44 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_GEOMETRY_SHADER 0x8A45 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER 0x8A46 +#define GL_INVALID_INDEX 0xFFFFFFFFu +#endif + +#ifndef GL_ARB_copy_buffer +#define GL_COPY_READ_BUFFER 0x8F36 +#define GL_COPY_WRITE_BUFFER 0x8F37 +#endif + +#ifndef GL_ARB_depth_clamp +#define GL_DEPTH_CLAMP 0x864F +#endif + +#ifndef GL_ARB_draw_elements_base_vertex +#endif + +#ifndef GL_ARB_fragment_coord_conventions +#endif + +#ifndef GL_ARB_provoking_vertex +#define GL_FIRST_VERTEX_CONVENTION 0x8E4D +#define GL_LAST_VERTEX_CONVENTION 0x8E4E +#define GL_PROVOKING_VERTEX 0x8E4F +#endif + +#ifndef GL_ARB_seamless_cube_map +#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F +#endif + +#ifndef GL_ARB_sync +#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 +#define GL_OBJECT_TYPE 0x9112 +#define GL_SYNC_CONDITION 0x9113 +#define GL_SYNC_STATUS 0x9114 +#define GL_SYNC_FLAGS 0x9115 +#define GL_SYNC_FENCE 0x9116 +#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 +#define GL_UNSIGNALED 0x9118 +#define GL_SIGNALED 0x9119 +#define GL_ALREADY_SIGNALED 0x911A +#define GL_TIMEOUT_EXPIRED 0x911B +#define GL_CONDITION_SATISFIED 0x911C +#define GL_WAIT_FAILED 0x911D +#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 +#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull +#endif + +#ifndef GL_ARB_texture_multisample +#define GL_SAMPLE_POSITION 0x8E50 +#define GL_SAMPLE_MASK 0x8E51 +#define GL_SAMPLE_MASK_VALUE 0x8E52 +#define GL_MAX_SAMPLE_MASK_WORDS 0x8E59 +#define GL_TEXTURE_2D_MULTISAMPLE 0x9100 +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE 0x9101 +#define GL_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9102 +#define GL_PROXY_TEXTURE_2D_MULTISAMPLE_ARRAY 0x9103 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE 0x9104 +#define GL_TEXTURE_BINDING_2D_MULTISAMPLE_ARRAY 0x9105 +#define GL_TEXTURE_SAMPLES 0x9106 +#define GL_TEXTURE_FIXED_SAMPLE_LOCATIONS 0x9107 +#define GL_SAMPLER_2D_MULTISAMPLE 0x9108 +#define GL_INT_SAMPLER_2D_MULTISAMPLE 0x9109 +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE 0x910A +#define GL_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910B +#define GL_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910C +#define GL_UNSIGNED_INT_SAMPLER_2D_MULTISAMPLE_ARRAY 0x910D +#define GL_MAX_COLOR_TEXTURE_SAMPLES 0x910E +#define GL_MAX_DEPTH_TEXTURE_SAMPLES 0x910F +#define GL_MAX_INTEGER_SAMPLES 0x9110 +#endif + +#ifndef GL_ARB_vertex_array_bgra +/* reuse GL_BGRA */ +#endif + +#ifndef GL_ARB_texture_query_lod +#endif + +#ifndef GL_ARB_blend_func_extended +#define GL_SRC1_COLOR 0x88F9 +#define GL_SRC1_ALPHA 0x8589 +#define GL_ONE_MINUS_SRC1_COLOR 0x88FA +#define GL_ONE_MINUS_SRC1_ALPHA 0x88FB +#define GL_MAX_DUAL_SOURCE_DRAW_BUFFERS 0x88FC +#endif + +#ifndef GL_ARB_explicit_attrib_location +#endif + +#ifndef GL_ARB_occlusion_query2 +#define GL_ANY_SAMPLES_PASSED 0x8C2F +#endif + +#ifndef GL_ARB_sampler_objects +#define GL_SAMPLER_BINDING 0x8919 +#endif + +#ifndef GL_ARB_shader_bit_encoding +#endif + +#ifndef GL_ARB_texture_rgb10_a2ui +#define GL_RGB10_A2UI 0x906F +#endif + +#ifndef GL_ARB_texture_swizzle +#define GL_TEXTURE_SWIZZLE_R 0x8E42 +#define GL_TEXTURE_SWIZZLE_G 0x8E43 +#define GL_TEXTURE_SWIZZLE_B 0x8E44 +#define GL_TEXTURE_SWIZZLE_A 0x8E45 +#define GL_TEXTURE_SWIZZLE_RGBA 0x8E46 +#endif + +#ifndef GL_ARB_timer_query +#define GL_TIME_ELAPSED 0x88BF +#define GL_TIMESTAMP 0x8E28 +#endif + +#ifndef GL_ARB_vertex_type_2_10_10_10_rev +/* reuse GL_UNSIGNED_INT_2_10_10_10_REV */ +#define GL_INT_2_10_10_10_REV 0x8D9F +#endif + +#ifndef GL_ARB_draw_indirect +#define GL_DRAW_INDIRECT_BUFFER 0x8F3F +#define GL_DRAW_INDIRECT_BUFFER_BINDING 0x8F43 +#endif + +#ifndef GL_ARB_gpu_shader5 +#define GL_GEOMETRY_SHADER_INVOCATIONS 0x887F +#define GL_MAX_GEOMETRY_SHADER_INVOCATIONS 0x8E5A +#define GL_MIN_FRAGMENT_INTERPOLATION_OFFSET 0x8E5B +#define GL_MAX_FRAGMENT_INTERPOLATION_OFFSET 0x8E5C +#define GL_FRAGMENT_INTERPOLATION_OFFSET_BITS 0x8E5D +/* reuse GL_MAX_VERTEX_STREAMS */ +#endif + +#ifndef GL_ARB_gpu_shader_fp64 +/* reuse GL_DOUBLE */ +#define GL_DOUBLE_VEC2 0x8FFC +#define GL_DOUBLE_VEC3 0x8FFD +#define GL_DOUBLE_VEC4 0x8FFE +#define GL_DOUBLE_MAT2 0x8F46 +#define GL_DOUBLE_MAT3 0x8F47 +#define GL_DOUBLE_MAT4 0x8F48 +#define GL_DOUBLE_MAT2x3 0x8F49 +#define GL_DOUBLE_MAT2x4 0x8F4A +#define GL_DOUBLE_MAT3x2 0x8F4B +#define GL_DOUBLE_MAT3x4 0x8F4C +#define GL_DOUBLE_MAT4x2 0x8F4D +#define GL_DOUBLE_MAT4x3 0x8F4E +#endif + +#ifndef GL_ARB_shader_subroutine +#define GL_ACTIVE_SUBROUTINES 0x8DE5 +#define GL_ACTIVE_SUBROUTINE_UNIFORMS 0x8DE6 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_LOCATIONS 0x8E47 +#define GL_ACTIVE_SUBROUTINE_MAX_LENGTH 0x8E48 +#define GL_ACTIVE_SUBROUTINE_UNIFORM_MAX_LENGTH 0x8E49 +#define GL_MAX_SUBROUTINES 0x8DE7 +#define GL_MAX_SUBROUTINE_UNIFORM_LOCATIONS 0x8DE8 +#define GL_NUM_COMPATIBLE_SUBROUTINES 0x8E4A +#define GL_COMPATIBLE_SUBROUTINES 0x8E4B +/* reuse GL_UNIFORM_SIZE */ +/* reuse GL_UNIFORM_NAME_LENGTH */ +#endif + +#ifndef GL_ARB_tessellation_shader +#define GL_PATCHES 0x000E +#define GL_PATCH_VERTICES 0x8E72 +#define GL_PATCH_DEFAULT_INNER_LEVEL 0x8E73 +#define GL_PATCH_DEFAULT_OUTER_LEVEL 0x8E74 +#define GL_TESS_CONTROL_OUTPUT_VERTICES 0x8E75 +#define GL_TESS_GEN_MODE 0x8E76 +#define GL_TESS_GEN_SPACING 0x8E77 +#define GL_TESS_GEN_VERTEX_ORDER 0x8E78 +#define GL_TESS_GEN_POINT_MODE 0x8E79 +/* reuse GL_TRIANGLES */ +#define GL_QUADS 0x0007 +#define GL_ISOLINES 0x8E7A +/* reuse GL_EQUAL */ +#define GL_FRACTIONAL_ODD 0x8E7B +#define GL_FRACTIONAL_EVEN 0x8E7C +/* reuse GL_CCW */ +/* reuse GL_CW */ +#define GL_MAX_PATCH_VERTICES 0x8E7D +#define GL_MAX_TESS_GEN_LEVEL 0x8E7E +#define GL_MAX_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E7F +#define GL_MAX_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E80 +#define GL_MAX_TESS_CONTROL_TEXTURE_IMAGE_UNITS 0x8E81 +#define GL_MAX_TESS_EVALUATION_TEXTURE_IMAGE_UNITS 0x8E82 +#define GL_MAX_TESS_CONTROL_OUTPUT_COMPONENTS 0x8E83 +#define GL_MAX_TESS_PATCH_COMPONENTS 0x8E84 +#define GL_MAX_TESS_CONTROL_TOTAL_OUTPUT_COMPONENTS 0x8E85 +#define GL_MAX_TESS_EVALUATION_OUTPUT_COMPONENTS 0x8E86 +#define GL_MAX_TESS_CONTROL_UNIFORM_BLOCKS 0x8E89 +#define GL_MAX_TESS_EVALUATION_UNIFORM_BLOCKS 0x8E8A +#define GL_MAX_TESS_CONTROL_INPUT_COMPONENTS 0x886C +#define GL_MAX_TESS_EVALUATION_INPUT_COMPONENTS 0x886D +#define GL_MAX_COMBINED_TESS_CONTROL_UNIFORM_COMPONENTS 0x8E1E +#define GL_MAX_COMBINED_TESS_EVALUATION_UNIFORM_COMPONENTS 0x8E1F +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_CONTROL_SHADER 0x84F0 +#define GL_UNIFORM_BLOCK_REFERENCED_BY_TESS_EVALUATION_SHADER 0x84F1 +#define GL_TESS_EVALUATION_SHADER 0x8E87 +#define GL_TESS_CONTROL_SHADER 0x8E88 +#endif + +#ifndef GL_ARB_texture_buffer_object_rgb32 +/* reuse GL_RGB32F */ +/* reuse GL_RGB32UI */ +/* reuse GL_RGB32I */ +#endif + +#ifndef GL_ARB_transform_feedback2 +#define GL_TRANSFORM_FEEDBACK 0x8E22 +#define GL_TRANSFORM_FEEDBACK_BUFFER_PAUSED 0x8E23 +#define GL_TRANSFORM_FEEDBACK_BUFFER_ACTIVE 0x8E24 +#define GL_TRANSFORM_FEEDBACK_BINDING 0x8E25 +#endif + +#ifndef GL_ARB_transform_feedback3 +#define GL_MAX_TRANSFORM_FEEDBACK_BUFFERS 0x8E70 +#define GL_MAX_VERTEX_STREAMS 0x8E71 +#endif + +#ifndef GL_ARB_ES2_compatibility +#define GL_FIXED 0x140C +#define GL_IMPLEMENTATION_COLOR_READ_TYPE 0x8B9A +#define GL_IMPLEMENTATION_COLOR_READ_FORMAT 0x8B9B +#define GL_LOW_FLOAT 0x8DF0 +#define GL_MEDIUM_FLOAT 0x8DF1 +#define GL_HIGH_FLOAT 0x8DF2 +#define GL_LOW_INT 0x8DF3 +#define GL_MEDIUM_INT 0x8DF4 +#define GL_HIGH_INT 0x8DF5 +#define GL_SHADER_COMPILER 0x8DFA +#define GL_SHADER_BINARY_FORMATS 0x8DF8 +#define GL_NUM_SHADER_BINARY_FORMATS 0x8DF9 +#define GL_MAX_VERTEX_UNIFORM_VECTORS 0x8DFB +#define GL_MAX_VARYING_VECTORS 0x8DFC +#define GL_MAX_FRAGMENT_UNIFORM_VECTORS 0x8DFD +#define GL_RGB565 0x8D62 +#endif + +#ifndef GL_ARB_get_program_binary +#define GL_PROGRAM_BINARY_RETRIEVABLE_HINT 0x8257 +#define GL_PROGRAM_BINARY_LENGTH 0x8741 +#define GL_NUM_PROGRAM_BINARY_FORMATS 0x87FE +#define GL_PROGRAM_BINARY_FORMATS 0x87FF +#endif + +#ifndef GL_ARB_separate_shader_objects +#define GL_VERTEX_SHADER_BIT 0x00000001 +#define GL_FRAGMENT_SHADER_BIT 0x00000002 +#define GL_GEOMETRY_SHADER_BIT 0x00000004 +#define GL_TESS_CONTROL_SHADER_BIT 0x00000008 +#define GL_TESS_EVALUATION_SHADER_BIT 0x00000010 +#define GL_ALL_SHADER_BITS 0xFFFFFFFF +#define GL_PROGRAM_SEPARABLE 0x8258 +#define GL_ACTIVE_PROGRAM 0x8259 +#define GL_PROGRAM_PIPELINE_BINDING 0x825A +#endif + +#ifndef GL_ARB_shader_precision +#endif + +#ifndef GL_ARB_vertex_attrib_64bit +/* reuse GL_DOUBLE */ +/* reuse GL_DOUBLE_VEC2 */ +/* reuse GL_DOUBLE_VEC3 */ +/* reuse GL_DOUBLE_VEC4 */ +/* reuse GL_DOUBLE_MAT2 */ +/* reuse GL_DOUBLE_MAT3 */ +/* reuse GL_DOUBLE_MAT4 */ +/* reuse GL_DOUBLE_MAT2x3 */ +/* reuse GL_DOUBLE_MAT2x4 */ +/* reuse GL_DOUBLE_MAT3x2 */ +/* reuse GL_DOUBLE_MAT3x4 */ +/* reuse GL_DOUBLE_MAT4x2 */ +/* reuse GL_DOUBLE_MAT4x3 */ +#endif + +#ifndef GL_ARB_viewport_array +/* reuse GL_SCISSOR_BOX */ +/* reuse GL_VIEWPORT */ +/* reuse GL_DEPTH_RANGE */ +/* reuse GL_SCISSOR_TEST */ +#define GL_MAX_VIEWPORTS 0x825B +#define GL_VIEWPORT_SUBPIXEL_BITS 0x825C +#define GL_VIEWPORT_BOUNDS_RANGE 0x825D +#define GL_LAYER_PROVOKING_VERTEX 0x825E +#define GL_VIEWPORT_INDEX_PROVOKING_VERTEX 0x825F +#define GL_UNDEFINED_VERTEX 0x8260 +/* reuse GL_FIRST_VERTEX_CONVENTION */ +/* reuse GL_LAST_VERTEX_CONVENTION */ +/* reuse GL_PROVOKING_VERTEX */ +#endif + + +/*************************************************************/ + +#ifndef GL_VERSION_1_0 +#define GL_VERSION_1_0 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glCullFace (GLenum mode); +GLAPI void APIENTRY glFrontFace (GLenum mode); +GLAPI void APIENTRY glHint (GLenum target, GLenum mode); +GLAPI void APIENTRY glLineWidth (GLfloat width); +GLAPI void APIENTRY glPointSize (GLfloat size); +GLAPI void APIENTRY glPolygonMode (GLenum face, GLenum mode); +GLAPI void APIENTRY glScissor (GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glTexParameterf (GLenum target, GLenum pname, GLfloat param); +GLAPI void APIENTRY glTexParameterfv (GLenum target, GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glTexParameteri (GLenum target, GLenum pname, GLint param); +GLAPI void APIENTRY glTexParameteriv (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glTexImage1D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void APIENTRY glTexImage2D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void APIENTRY glDrawBuffer (GLenum mode); +GLAPI void APIENTRY glClear (GLbitfield mask); +GLAPI void APIENTRY glClearColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI void APIENTRY glClearStencil (GLint s); +GLAPI void APIENTRY glClearDepth (GLclampd depth); +GLAPI void APIENTRY glStencilMask (GLuint mask); +GLAPI void APIENTRY glColorMask (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +GLAPI void APIENTRY glDepthMask (GLboolean flag); +GLAPI void APIENTRY glDisable (GLenum cap); +GLAPI void APIENTRY glEnable (GLenum cap); +GLAPI void APIENTRY glFinish (void); +GLAPI void APIENTRY glFlush (void); +GLAPI void APIENTRY glBlendFunc (GLenum sfactor, GLenum dfactor); +GLAPI void APIENTRY glLogicOp (GLenum opcode); +GLAPI void APIENTRY glStencilFunc (GLenum func, GLint ref, GLuint mask); +GLAPI void APIENTRY glStencilOp (GLenum fail, GLenum zfail, GLenum zpass); +GLAPI void APIENTRY glDepthFunc (GLenum func); +GLAPI void APIENTRY glPixelStoref (GLenum pname, GLfloat param); +GLAPI void APIENTRY glPixelStorei (GLenum pname, GLint param); +GLAPI void APIENTRY glReadBuffer (GLenum mode); +GLAPI void APIENTRY glReadPixels (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); +GLAPI void APIENTRY glGetBooleanv (GLenum pname, GLboolean *params); +GLAPI void APIENTRY glGetDoublev (GLenum pname, GLdouble *params); +GLAPI GLenum APIENTRY glGetError (void); +GLAPI void APIENTRY glGetFloatv (GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetIntegerv (GLenum pname, GLint *params); +GLAPI const GLubyte * APIENTRY glGetString (GLenum name); +GLAPI void APIENTRY glGetTexImage (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); +GLAPI void APIENTRY glGetTexParameterfv (GLenum target, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetTexParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetTexLevelParameterfv (GLenum target, GLint level, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetTexLevelParameteriv (GLenum target, GLint level, GLenum pname, GLint *params); +GLAPI GLboolean APIENTRY glIsEnabled (GLenum cap); +GLAPI void APIENTRY glDepthRange (GLclampd near, GLclampd far); +GLAPI void APIENTRY glViewport (GLint x, GLint y, GLsizei width, GLsizei height); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCULLFACEPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLFRONTFACEPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLHINTPROC) (GLenum target, GLenum mode); +typedef void (APIENTRYP PFNGLLINEWIDTHPROC) (GLfloat width); +typedef void (APIENTRYP PFNGLPOINTSIZEPROC) (GLfloat size); +typedef void (APIENTRYP PFNGLPOLYGONMODEPROC) (GLenum face, GLenum mode); +typedef void (APIENTRYP PFNGLSCISSORPROC) (GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLTEXPARAMETERFPROC) (GLenum target, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLTEXPARAMETERFVPROC) (GLenum target, GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLTEXPARAMETERIPROC) (GLenum target, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLTEXPARAMETERIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXIMAGE1DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXIMAGE2DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLDRAWBUFFERPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLCLEARPROC) (GLbitfield mask); +typedef void (APIENTRYP PFNGLCLEARCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +typedef void (APIENTRYP PFNGLCLEARSTENCILPROC) (GLint s); +typedef void (APIENTRYP PFNGLCLEARDEPTHPROC) (GLclampd depth); +typedef void (APIENTRYP PFNGLSTENCILMASKPROC) (GLuint mask); +typedef void (APIENTRYP PFNGLCOLORMASKPROC) (GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); +typedef void (APIENTRYP PFNGLDEPTHMASKPROC) (GLboolean flag); +typedef void (APIENTRYP PFNGLDISABLEPROC) (GLenum cap); +typedef void (APIENTRYP PFNGLENABLEPROC) (GLenum cap); +typedef void (APIENTRYP PFNGLFINISHPROC) (void); +typedef void (APIENTRYP PFNGLFLUSHPROC) (void); +typedef void (APIENTRYP PFNGLBLENDFUNCPROC) (GLenum sfactor, GLenum dfactor); +typedef void (APIENTRYP PFNGLLOGICOPPROC) (GLenum opcode); +typedef void (APIENTRYP PFNGLSTENCILFUNCPROC) (GLenum func, GLint ref, GLuint mask); +typedef void (APIENTRYP PFNGLSTENCILOPPROC) (GLenum fail, GLenum zfail, GLenum zpass); +typedef void (APIENTRYP PFNGLDEPTHFUNCPROC) (GLenum func); +typedef void (APIENTRYP PFNGLPIXELSTOREFPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPIXELSTOREIPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLREADBUFFERPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLREADPIXELSPROC) (GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); +typedef void (APIENTRYP PFNGLGETBOOLEANVPROC) (GLenum pname, GLboolean *params); +typedef void (APIENTRYP PFNGLGETDOUBLEVPROC) (GLenum pname, GLdouble *params); +typedef GLenum (APIENTRYP PFNGLGETERRORPROC) (void); +typedef void (APIENTRYP PFNGLGETFLOATVPROC) (GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETINTEGERVPROC) (GLenum pname, GLint *params); +typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGPROC) (GLenum name); +typedef void (APIENTRYP PFNGLGETTEXIMAGEPROC) (GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERFVPROC) (GLenum target, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERFVPROC) (GLenum target, GLint level, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETTEXLEVELPARAMETERIVPROC) (GLenum target, GLint level, GLenum pname, GLint *params); +typedef GLboolean (APIENTRYP PFNGLISENABLEDPROC) (GLenum cap); +typedef void (APIENTRYP PFNGLDEPTHRANGEPROC) (GLclampd near, GLclampd far); +typedef void (APIENTRYP PFNGLVIEWPORTPROC) (GLint x, GLint y, GLsizei width, GLsizei height); +#endif + +#ifndef GL_VERSION_1_1 +#define GL_VERSION_1_1 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glDrawArrays (GLenum mode, GLint first, GLsizei count); +GLAPI void APIENTRY glDrawElements (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); +GLAPI void APIENTRY glPolygonOffset (GLfloat factor, GLfloat units); +GLAPI void APIENTRY glCopyTexImage1D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +GLAPI void APIENTRY glCopyTexImage2D (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +GLAPI void APIENTRY glCopyTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +GLAPI void APIENTRY glCopyTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +GLAPI void APIENTRY glTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void APIENTRY glTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void APIENTRY glBindTexture (GLenum target, GLuint texture); +GLAPI void APIENTRY glDeleteTextures (GLsizei n, const GLuint *textures); +GLAPI void APIENTRY glGenTextures (GLsizei n, GLuint *textures); +GLAPI GLboolean APIENTRY glIsTexture (GLuint texture); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWARRAYSPROC) (GLenum mode, GLint first, GLsizei count); +typedef void (APIENTRYP PFNGLDRAWELEMENTSPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); +typedef void (APIENTRYP PFNGLPOLYGONOFFSETPROC) (GLfloat factor, GLfloat units); +typedef void (APIENTRYP PFNGLCOPYTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLBINDTEXTUREPROC) (GLenum target, GLuint texture); +typedef void (APIENTRYP PFNGLDELETETEXTURESPROC) (GLsizei n, const GLuint *textures); +typedef void (APIENTRYP PFNGLGENTEXTURESPROC) (GLsizei n, GLuint *textures); +typedef GLboolean (APIENTRYP PFNGLISTEXTUREPROC) (GLuint texture); +#endif + +#ifndef GL_VERSION_1_2 +#define GL_VERSION_1_2 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glBlendColor (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +GLAPI void APIENTRY glBlendEquation (GLenum mode); +GLAPI void APIENTRY glDrawRangeElements (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +GLAPI void APIENTRY glTexImage3D (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void APIENTRY glTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +GLAPI void APIENTRY glCopyTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDCOLORPROC) (GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); +typedef void (APIENTRYP PFNGLBLENDEQUATIONPROC) (GLenum mode); +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +typedef void (APIENTRYP PFNGLTEXIMAGE3DPROC) (GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); +typedef void (APIENTRYP PFNGLCOPYTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); +#endif + +#ifndef GL_VERSION_1_3 +#define GL_VERSION_1_3 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glActiveTexture (GLenum texture); +GLAPI void APIENTRY glSampleCoverage (GLclampf value, GLboolean invert); +GLAPI void APIENTRY glCompressedTexImage3D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +GLAPI void APIENTRY glCompressedTexImage2D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +GLAPI void APIENTRY glCompressedTexImage1D (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +GLAPI void APIENTRY glCompressedTexSubImage3D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +GLAPI void APIENTRY glCompressedTexSubImage2D (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +GLAPI void APIENTRY glCompressedTexSubImage1D (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +GLAPI void APIENTRY glGetCompressedTexImage (GLenum target, GLint level, GLvoid *img); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLACTIVETEXTUREPROC) (GLenum texture); +typedef void (APIENTRYP PFNGLSAMPLECOVERAGEPROC) (GLclampf value, GLboolean invert); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE3DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE2DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXIMAGE1DPROC) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE3DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE2DPROC) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLCOMPRESSEDTEXSUBIMAGE1DPROC) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (APIENTRYP PFNGLGETCOMPRESSEDTEXIMAGEPROC) (GLenum target, GLint level, GLvoid *img); +#endif + +#ifndef GL_VERSION_1_4 +#define GL_VERSION_1_4 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glBlendFuncSeparate (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +GLAPI void APIENTRY glMultiDrawArrays (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); +GLAPI void APIENTRY glMultiDrawElements (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei drawcount); +GLAPI void APIENTRY glPointParameterf (GLenum pname, GLfloat param); +GLAPI void APIENTRY glPointParameterfv (GLenum pname, const GLfloat *params); +GLAPI void APIENTRY glPointParameteri (GLenum pname, GLint param); +GLAPI void APIENTRY glPointParameteriv (GLenum pname, const GLint *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEPROC) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +typedef void (APIENTRYP PFNGLMULTIDRAWARRAYSPROC) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei drawcount); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFPROC) (GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERFVPROC) (GLenum pname, const GLfloat *params); +typedef void (APIENTRYP PFNGLPOINTPARAMETERIPROC) (GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLPOINTPARAMETERIVPROC) (GLenum pname, const GLint *params); +#endif + +#ifndef GL_VERSION_1_5 +#define GL_VERSION_1_5 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glGenQueries (GLsizei n, GLuint *ids); +GLAPI void APIENTRY glDeleteQueries (GLsizei n, const GLuint *ids); +GLAPI GLboolean APIENTRY glIsQuery (GLuint id); +GLAPI void APIENTRY glBeginQuery (GLenum target, GLuint id); +GLAPI void APIENTRY glEndQuery (GLenum target); +GLAPI void APIENTRY glGetQueryiv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetQueryObjectiv (GLuint id, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetQueryObjectuiv (GLuint id, GLenum pname, GLuint *params); +GLAPI void APIENTRY glBindBuffer (GLenum target, GLuint buffer); +GLAPI void APIENTRY glDeleteBuffers (GLsizei n, const GLuint *buffers); +GLAPI void APIENTRY glGenBuffers (GLsizei n, GLuint *buffers); +GLAPI GLboolean APIENTRY glIsBuffer (GLuint buffer); +GLAPI void APIENTRY glBufferData (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); +GLAPI void APIENTRY glBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); +GLAPI void APIENTRY glGetBufferSubData (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); +GLAPI GLvoid* APIENTRY glMapBuffer (GLenum target, GLenum access); +GLAPI GLboolean APIENTRY glUnmapBuffer (GLenum target); +GLAPI void APIENTRY glGetBufferParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetBufferPointerv (GLenum target, GLenum pname, GLvoid* *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGENQUERIESPROC) (GLsizei n, GLuint *ids); +typedef void (APIENTRYP PFNGLDELETEQUERIESPROC) (GLsizei n, const GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISQUERYPROC) (GLuint id); +typedef void (APIENTRYP PFNGLBEGINQUERYPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLENDQUERYPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETQUERYIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTIVPROC) (GLuint id, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUIVPROC) (GLuint id, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLBINDBUFFERPROC) (GLenum target, GLuint buffer); +typedef void (APIENTRYP PFNGLDELETEBUFFERSPROC) (GLsizei n, const GLuint *buffers); +typedef void (APIENTRYP PFNGLGENBUFFERSPROC) (GLsizei n, GLuint *buffers); +typedef GLboolean (APIENTRYP PFNGLISBUFFERPROC) (GLuint buffer); +typedef void (APIENTRYP PFNGLBUFFERDATAPROC) (GLenum target, GLsizeiptr size, const GLvoid *data, GLenum usage); +typedef void (APIENTRYP PFNGLBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, const GLvoid *data); +typedef void (APIENTRYP PFNGLGETBUFFERSUBDATAPROC) (GLenum target, GLintptr offset, GLsizeiptr size, GLvoid *data); +typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERPROC) (GLenum target, GLenum access); +typedef GLboolean (APIENTRYP PFNGLUNMAPBUFFERPROC) (GLenum target); +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETBUFFERPOINTERVPROC) (GLenum target, GLenum pname, GLvoid* *params); +#endif + +#ifndef GL_VERSION_2_0 +#define GL_VERSION_2_0 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glBlendEquationSeparate (GLenum modeRGB, GLenum modeAlpha); +GLAPI void APIENTRY glDrawBuffers (GLsizei n, const GLenum *bufs); +GLAPI void APIENTRY glStencilOpSeparate (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +GLAPI void APIENTRY glStencilFuncSeparate (GLenum face, GLenum func, GLint ref, GLuint mask); +GLAPI void APIENTRY glStencilMaskSeparate (GLenum face, GLuint mask); +GLAPI void APIENTRY glAttachShader (GLuint program, GLuint shader); +GLAPI void APIENTRY glBindAttribLocation (GLuint program, GLuint index, const GLchar *name); +GLAPI void APIENTRY glCompileShader (GLuint shader); +GLAPI GLuint APIENTRY glCreateProgram (void); +GLAPI GLuint APIENTRY glCreateShader (GLenum type); +GLAPI void APIENTRY glDeleteProgram (GLuint program); +GLAPI void APIENTRY glDeleteShader (GLuint shader); +GLAPI void APIENTRY glDetachShader (GLuint program, GLuint shader); +GLAPI void APIENTRY glDisableVertexAttribArray (GLuint index); +GLAPI void APIENTRY glEnableVertexAttribArray (GLuint index); +GLAPI void APIENTRY glGetActiveAttrib (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +GLAPI void APIENTRY glGetActiveUniform (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +GLAPI void APIENTRY glGetAttachedShaders (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +GLAPI GLint APIENTRY glGetAttribLocation (GLuint program, const GLchar *name); +GLAPI void APIENTRY glGetProgramiv (GLuint program, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetProgramInfoLog (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +GLAPI void APIENTRY glGetShaderiv (GLuint shader, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetShaderInfoLog (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +GLAPI void APIENTRY glGetShaderSource (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +GLAPI GLint APIENTRY glGetUniformLocation (GLuint program, const GLchar *name); +GLAPI void APIENTRY glGetUniformfv (GLuint program, GLint location, GLfloat *params); +GLAPI void APIENTRY glGetUniformiv (GLuint program, GLint location, GLint *params); +GLAPI void APIENTRY glGetVertexAttribdv (GLuint index, GLenum pname, GLdouble *params); +GLAPI void APIENTRY glGetVertexAttribfv (GLuint index, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetVertexAttribiv (GLuint index, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVertexAttribPointerv (GLuint index, GLenum pname, GLvoid* *pointer); +GLAPI GLboolean APIENTRY glIsProgram (GLuint program); +GLAPI GLboolean APIENTRY glIsShader (GLuint shader); +GLAPI void APIENTRY glLinkProgram (GLuint program); +GLAPI void APIENTRY glShaderSource (GLuint shader, GLsizei count, const GLchar* const *string, const GLint *length); +GLAPI void APIENTRY glUseProgram (GLuint program); +GLAPI void APIENTRY glUniform1f (GLint location, GLfloat v0); +GLAPI void APIENTRY glUniform2f (GLint location, GLfloat v0, GLfloat v1); +GLAPI void APIENTRY glUniform3f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +GLAPI void APIENTRY glUniform4f (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +GLAPI void APIENTRY glUniform1i (GLint location, GLint v0); +GLAPI void APIENTRY glUniform2i (GLint location, GLint v0, GLint v1); +GLAPI void APIENTRY glUniform3i (GLint location, GLint v0, GLint v1, GLint v2); +GLAPI void APIENTRY glUniform4i (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +GLAPI void APIENTRY glUniform1fv (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform2fv (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform3fv (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform4fv (GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glUniform1iv (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniform2iv (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniform3iv (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniform4iv (GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glUniformMatrix2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glValidateProgram (GLuint program); +GLAPI void APIENTRY glVertexAttrib1d (GLuint index, GLdouble x); +GLAPI void APIENTRY glVertexAttrib1dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib1f (GLuint index, GLfloat x); +GLAPI void APIENTRY glVertexAttrib1fv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib1s (GLuint index, GLshort x); +GLAPI void APIENTRY glVertexAttrib1sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib2d (GLuint index, GLdouble x, GLdouble y); +GLAPI void APIENTRY glVertexAttrib2dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib2f (GLuint index, GLfloat x, GLfloat y); +GLAPI void APIENTRY glVertexAttrib2fv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib2s (GLuint index, GLshort x, GLshort y); +GLAPI void APIENTRY glVertexAttrib2sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib3d (GLuint index, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glVertexAttrib3dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib3f (GLuint index, GLfloat x, GLfloat y, GLfloat z); +GLAPI void APIENTRY glVertexAttrib3fv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib3s (GLuint index, GLshort x, GLshort y, GLshort z); +GLAPI void APIENTRY glVertexAttrib3sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4Nbv (GLuint index, const GLbyte *v); +GLAPI void APIENTRY glVertexAttrib4Niv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttrib4Nsv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4Nub (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +GLAPI void APIENTRY glVertexAttrib4Nubv (GLuint index, const GLubyte *v); +GLAPI void APIENTRY glVertexAttrib4Nuiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttrib4Nusv (GLuint index, const GLushort *v); +GLAPI void APIENTRY glVertexAttrib4bv (GLuint index, const GLbyte *v); +GLAPI void APIENTRY glVertexAttrib4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glVertexAttrib4dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttrib4f (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +GLAPI void APIENTRY glVertexAttrib4fv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glVertexAttrib4iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttrib4s (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +GLAPI void APIENTRY glVertexAttrib4sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttrib4ubv (GLuint index, const GLubyte *v); +GLAPI void APIENTRY glVertexAttrib4uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttrib4usv (GLuint index, const GLushort *v); +GLAPI void APIENTRY glVertexAttribPointer (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEPROC) (GLenum modeRGB, GLenum modeAlpha); +typedef void (APIENTRYP PFNGLDRAWBUFFERSPROC) (GLsizei n, const GLenum *bufs); +typedef void (APIENTRYP PFNGLSTENCILOPSEPARATEPROC) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void (APIENTRYP PFNGLSTENCILFUNCSEPARATEPROC) (GLenum face, GLenum func, GLint ref, GLuint mask); +typedef void (APIENTRYP PFNGLSTENCILMASKSEPARATEPROC) (GLenum face, GLuint mask); +typedef void (APIENTRYP PFNGLATTACHSHADERPROC) (GLuint program, GLuint shader); +typedef void (APIENTRYP PFNGLBINDATTRIBLOCATIONPROC) (GLuint program, GLuint index, const GLchar *name); +typedef void (APIENTRYP PFNGLCOMPILESHADERPROC) (GLuint shader); +typedef GLuint (APIENTRYP PFNGLCREATEPROGRAMPROC) (void); +typedef GLuint (APIENTRYP PFNGLCREATESHADERPROC) (GLenum type); +typedef void (APIENTRYP PFNGLDELETEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLDELETESHADERPROC) (GLuint shader); +typedef void (APIENTRYP PFNGLDETACHSHADERPROC) (GLuint program, GLuint shader); +typedef void (APIENTRYP PFNGLDISABLEVERTEXATTRIBARRAYPROC) (GLuint index); +typedef void (APIENTRYP PFNGLENABLEVERTEXATTRIBARRAYPROC) (GLuint index); +typedef void (APIENTRYP PFNGLGETACTIVEATTRIBPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLint *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLGETATTACHEDSHADERSPROC) (GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); +typedef GLint (APIENTRYP PFNGLGETATTRIBLOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLGETPROGRAMIVPROC) (GLuint program, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMINFOLOGPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (APIENTRYP PFNGLGETSHADERIVPROC) (GLuint shader, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSHADERINFOLOGPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +typedef void (APIENTRYP PFNGLGETSHADERSOURCEPROC) (GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *source); +typedef GLint (APIENTRYP PFNGLGETUNIFORMLOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLGETUNIFORMFVPROC) (GLuint program, GLint location, GLfloat *params); +typedef void (APIENTRYP PFNGLGETUNIFORMIVPROC) (GLuint program, GLint location, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBDVPROC) (GLuint index, GLenum pname, GLdouble *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBFVPROC) (GLuint index, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIVPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBPOINTERVPROC) (GLuint index, GLenum pname, GLvoid* *pointer); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMPROC) (GLuint program); +typedef GLboolean (APIENTRYP PFNGLISSHADERPROC) (GLuint shader); +typedef void (APIENTRYP PFNGLLINKPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLSHADERSOURCEPROC) (GLuint shader, GLsizei count, const GLchar* const *string, const GLint *length); +typedef void (APIENTRYP PFNGLUSEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLUNIFORM1FPROC) (GLint location, GLfloat v0); +typedef void (APIENTRYP PFNGLUNIFORM2FPROC) (GLint location, GLfloat v0, GLfloat v1); +typedef void (APIENTRYP PFNGLUNIFORM3FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (APIENTRYP PFNGLUNIFORM4FPROC) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (APIENTRYP PFNGLUNIFORM1IPROC) (GLint location, GLint v0); +typedef void (APIENTRYP PFNGLUNIFORM2IPROC) (GLint location, GLint v0, GLint v1); +typedef void (APIENTRYP PFNGLUNIFORM3IPROC) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (APIENTRYP PFNGLUNIFORM4IPROC) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (APIENTRYP PFNGLUNIFORM1FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM2FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM3FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM4FVPROC) (GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORM1IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM2IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM3IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORM4IVPROC) (GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPROC) (GLuint program); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FPROC) (GLuint index, GLfloat x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SPROC) (GLuint index, GLshort x); +typedef void (APIENTRYP PFNGLVERTEXATTRIB1SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FPROC) (GLuint index, GLfloat x, GLfloat y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SPROC) (GLuint index, GLshort x, GLshort y); +typedef void (APIENTRYP PFNGLVERTEXATTRIB2SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SPROC) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (APIENTRYP PFNGLVERTEXATTRIB3SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NBVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NIVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NSVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBPROC) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4NUSVPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4BVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4FVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SPROC) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIB4USVPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBPOINTERPROC) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +#endif + +#ifndef GL_VERSION_2_1 +#define GL_VERSION_2_1 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glUniformMatrix2x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix3x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix2x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix4x2fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix3x4fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glUniformMatrix4x3fv (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3FVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +#endif + +#ifndef GL_VERSION_3_0 +#define GL_VERSION_3_0 1 +/* OpenGL 3.0 also reuses entry points from these extensions: */ +/* ARB_framebuffer_object */ +/* ARB_map_buffer_range */ +/* ARB_vertex_array_object */ +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glColorMaski (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +GLAPI void APIENTRY glGetBooleani_v (GLenum target, GLuint index, GLboolean *data); +GLAPI void APIENTRY glGetIntegeri_v (GLenum target, GLuint index, GLint *data); +GLAPI void APIENTRY glEnablei (GLenum target, GLuint index); +GLAPI void APIENTRY glDisablei (GLenum target, GLuint index); +GLAPI GLboolean APIENTRY glIsEnabledi (GLenum target, GLuint index); +GLAPI void APIENTRY glBeginTransformFeedback (GLenum primitiveMode); +GLAPI void APIENTRY glEndTransformFeedback (void); +GLAPI void APIENTRY glBindBufferRange (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +GLAPI void APIENTRY glBindBufferBase (GLenum target, GLuint index, GLuint buffer); +GLAPI void APIENTRY glTransformFeedbackVaryings (GLuint program, GLsizei count, const GLchar* const *varyings, GLenum bufferMode); +GLAPI void APIENTRY glGetTransformFeedbackVarying (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +GLAPI void APIENTRY glClampColor (GLenum target, GLenum clamp); +GLAPI void APIENTRY glBeginConditionalRender (GLuint id, GLenum mode); +GLAPI void APIENTRY glEndConditionalRender (void); +GLAPI void APIENTRY glVertexAttribIPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +GLAPI void APIENTRY glGetVertexAttribIiv (GLuint index, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetVertexAttribIuiv (GLuint index, GLenum pname, GLuint *params); +GLAPI void APIENTRY glVertexAttribI1i (GLuint index, GLint x); +GLAPI void APIENTRY glVertexAttribI2i (GLuint index, GLint x, GLint y); +GLAPI void APIENTRY glVertexAttribI3i (GLuint index, GLint x, GLint y, GLint z); +GLAPI void APIENTRY glVertexAttribI4i (GLuint index, GLint x, GLint y, GLint z, GLint w); +GLAPI void APIENTRY glVertexAttribI1ui (GLuint index, GLuint x); +GLAPI void APIENTRY glVertexAttribI2ui (GLuint index, GLuint x, GLuint y); +GLAPI void APIENTRY glVertexAttribI3ui (GLuint index, GLuint x, GLuint y, GLuint z); +GLAPI void APIENTRY glVertexAttribI4ui (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +GLAPI void APIENTRY glVertexAttribI1iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI2iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI3iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI4iv (GLuint index, const GLint *v); +GLAPI void APIENTRY glVertexAttribI1uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI2uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI3uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI4uiv (GLuint index, const GLuint *v); +GLAPI void APIENTRY glVertexAttribI4bv (GLuint index, const GLbyte *v); +GLAPI void APIENTRY glVertexAttribI4sv (GLuint index, const GLshort *v); +GLAPI void APIENTRY glVertexAttribI4ubv (GLuint index, const GLubyte *v); +GLAPI void APIENTRY glVertexAttribI4usv (GLuint index, const GLushort *v); +GLAPI void APIENTRY glGetUniformuiv (GLuint program, GLint location, GLuint *params); +GLAPI void APIENTRY glBindFragDataLocation (GLuint program, GLuint color, const GLchar *name); +GLAPI GLint APIENTRY glGetFragDataLocation (GLuint program, const GLchar *name); +GLAPI void APIENTRY glUniform1ui (GLint location, GLuint v0); +GLAPI void APIENTRY glUniform2ui (GLint location, GLuint v0, GLuint v1); +GLAPI void APIENTRY glUniform3ui (GLint location, GLuint v0, GLuint v1, GLuint v2); +GLAPI void APIENTRY glUniform4ui (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +GLAPI void APIENTRY glUniform1uiv (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glUniform2uiv (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glUniform3uiv (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glUniform4uiv (GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glTexParameterIiv (GLenum target, GLenum pname, const GLint *params); +GLAPI void APIENTRY glTexParameterIuiv (GLenum target, GLenum pname, const GLuint *params); +GLAPI void APIENTRY glGetTexParameterIiv (GLenum target, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetTexParameterIuiv (GLenum target, GLenum pname, GLuint *params); +GLAPI void APIENTRY glClearBufferiv (GLenum buffer, GLint drawbuffer, const GLint *value); +GLAPI void APIENTRY glClearBufferuiv (GLenum buffer, GLint drawbuffer, const GLuint *value); +GLAPI void APIENTRY glClearBufferfv (GLenum buffer, GLint drawbuffer, const GLfloat *value); +GLAPI void APIENTRY glClearBufferfi (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +GLAPI const GLubyte * APIENTRY glGetStringi (GLenum name, GLuint index); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOLORMASKIPROC) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void (APIENTRYP PFNGLGETBOOLEANI_VPROC) (GLenum target, GLuint index, GLboolean *data); +typedef void (APIENTRYP PFNGLGETINTEGERI_VPROC) (GLenum target, GLuint index, GLint *data); +typedef void (APIENTRYP PFNGLENABLEIPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLDISABLEIPROC) (GLenum target, GLuint index); +typedef GLboolean (APIENTRYP PFNGLISENABLEDIPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLBEGINTRANSFORMFEEDBACKPROC) (GLenum primitiveMode); +typedef void (APIENTRYP PFNGLENDTRANSFORMFEEDBACKPROC) (void); +typedef void (APIENTRYP PFNGLBINDBUFFERRANGEPROC) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (APIENTRYP PFNGLBINDBUFFERBASEPROC) (GLenum target, GLuint index, GLuint buffer); +typedef void (APIENTRYP PFNGLTRANSFORMFEEDBACKVARYINGSPROC) (GLuint program, GLsizei count, const GLchar* const *varyings, GLenum bufferMode); +typedef void (APIENTRYP PFNGLGETTRANSFORMFEEDBACKVARYINGPROC) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +typedef void (APIENTRYP PFNGLCLAMPCOLORPROC) (GLenum target, GLenum clamp); +typedef void (APIENTRYP PFNGLBEGINCONDITIONALRENDERPROC) (GLuint id, GLenum mode); +typedef void (APIENTRYP PFNGLENDCONDITIONALRENDERPROC) (void); +typedef void (APIENTRYP PFNGLVERTEXATTRIBIPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIIVPROC) (GLuint index, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBIUIVPROC) (GLuint index, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IPROC) (GLuint index, GLint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IPROC) (GLuint index, GLint x, GLint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IPROC) (GLuint index, GLint x, GLint y, GLint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IPROC) (GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIPROC) (GLuint index, GLuint x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIPROC) (GLuint index, GLuint x, GLuint y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIPROC) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4IVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI1UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI2UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI3UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UIVPROC) (GLuint index, const GLuint *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4BVPROC) (GLuint index, const GLbyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4SVPROC) (GLuint index, const GLshort *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4UBVPROC) (GLuint index, const GLubyte *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBI4USVPROC) (GLuint index, const GLushort *v); +typedef void (APIENTRYP PFNGLGETUNIFORMUIVPROC) (GLuint program, GLint location, GLuint *params); +typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONPROC) (GLuint program, GLuint color, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETFRAGDATALOCATIONPROC) (GLuint program, const GLchar *name); +typedef void (APIENTRYP PFNGLUNIFORM1UIPROC) (GLint location, GLuint v0); +typedef void (APIENTRYP PFNGLUNIFORM2UIPROC) (GLint location, GLuint v0, GLuint v1); +typedef void (APIENTRYP PFNGLUNIFORM3UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (APIENTRYP PFNGLUNIFORM4UIPROC) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (APIENTRYP PFNGLUNIFORM1UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM2UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM3UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLUNIFORM4UIVPROC) (GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, const GLint *params); +typedef void (APIENTRYP PFNGLTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, const GLuint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERIUIVPROC) (GLenum target, GLenum pname, GLuint *params); +typedef void (APIENTRYP PFNGLCLEARBUFFERIVPROC) (GLenum buffer, GLint drawbuffer, const GLint *value); +typedef void (APIENTRYP PFNGLCLEARBUFFERUIVPROC) (GLenum buffer, GLint drawbuffer, const GLuint *value); +typedef void (APIENTRYP PFNGLCLEARBUFFERFVPROC) (GLenum buffer, GLint drawbuffer, const GLfloat *value); +typedef void (APIENTRYP PFNGLCLEARBUFFERFIPROC) (GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); +typedef const GLubyte * (APIENTRYP PFNGLGETSTRINGIPROC) (GLenum name, GLuint index); +#endif + +#ifndef GL_VERSION_3_1 +#define GL_VERSION_3_1 1 +/* OpenGL 3.1 also reuses entry points from these extensions: */ +/* ARB_copy_buffer */ +/* ARB_uniform_buffer_object */ +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glDrawArraysInstanced (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); +GLAPI void APIENTRY glDrawElementsInstanced (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instancecount); +GLAPI void APIENTRY glTexBuffer (GLenum target, GLenum internalformat, GLuint buffer); +GLAPI void APIENTRY glPrimitiveRestartIndex (GLuint index); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWARRAYSINSTANCEDPROC) (GLenum mode, GLint first, GLsizei count, GLsizei instancecount); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instancecount); +typedef void (APIENTRYP PFNGLTEXBUFFERPROC) (GLenum target, GLenum internalformat, GLuint buffer); +typedef void (APIENTRYP PFNGLPRIMITIVERESTARTINDEXPROC) (GLuint index); +#endif + +#ifndef GL_VERSION_3_2 +#define GL_VERSION_3_2 1 +/* OpenGL 3.2 also reuses entry points from these extensions: */ +/* ARB_draw_elements_base_vertex */ +/* ARB_provoking_vertex */ +/* ARB_sync */ +/* ARB_texture_multisample */ +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glGetInteger64i_v (GLenum target, GLuint index, GLint64 *data); +GLAPI void APIENTRY glGetBufferParameteri64v (GLenum target, GLenum pname, GLint64 *params); +GLAPI void APIENTRY glFramebufferTexture (GLenum target, GLenum attachment, GLuint texture, GLint level); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETINTEGER64I_VPROC) (GLenum target, GLuint index, GLint64 *data); +typedef void (APIENTRYP PFNGLGETBUFFERPARAMETERI64VPROC) (GLenum target, GLenum pname, GLint64 *params); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTUREPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level); +#endif + +#ifndef GL_VERSION_3_3 +#define GL_VERSION_3_3 1 +/* OpenGL 3.3 also reuses entry points from these extensions: */ +/* ARB_blend_func_extended */ +/* ARB_sampler_objects */ +/* ARB_explicit_attrib_location, but it has none */ +/* ARB_occlusion_query2 (no entry points) */ +/* ARB_shader_bit_encoding (no entry points) */ +/* ARB_texture_rgb10_a2ui (no entry points) */ +/* ARB_texture_swizzle (no entry points) */ +/* ARB_timer_query */ +/* ARB_vertex_type_2_10_10_10_rev */ +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glVertexAttribDivisor (GLuint index, GLuint divisor); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORPROC) (GLuint index, GLuint divisor); +#endif + +#ifndef GL_VERSION_4_0 +#define GL_VERSION_4_0 1 +/* OpenGL 4.0 also reuses entry points from these extensions: */ +/* ARB_texture_query_lod (no entry points) */ +/* ARB_draw_indirect */ +/* ARB_gpu_shader5 (no entry points) */ +/* ARB_gpu_shader_fp64 */ +/* ARB_shader_subroutine */ +/* ARB_tessellation_shader */ +/* ARB_texture_buffer_object_rgb32 (no entry points) */ +/* ARB_texture_cube_map_array (no entry points) */ +/* ARB_texture_gather (no entry points) */ +/* ARB_transform_feedback2 */ +/* ARB_transform_feedback3 */ +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glMinSampleShading (GLfloat value); +GLAPI void APIENTRY glBlendEquationi (GLuint buf, GLenum mode); +GLAPI void APIENTRY glBlendEquationSeparatei (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +GLAPI void APIENTRY glBlendFunci (GLuint buf, GLenum src, GLenum dst); +GLAPI void APIENTRY glBlendFuncSeparatei (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLMINSAMPLESHADINGPROC) (GLfloat value); +typedef void (APIENTRYP PFNGLBLENDEQUATIONIPROC) (GLuint buf, GLenum mode); +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (APIENTRYP PFNGLBLENDFUNCIPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +#endif + +#ifndef GL_VERSION_4_1 +#define GL_VERSION_4_1 1 +/* OpenGL 4.1 reuses entry points from these extensions: */ +/* ARB_ES2_compatibility */ +/* ARB_get_program_binary */ +/* ARB_separate_shader_objects */ +/* ARB_shader_precision (no entry points) */ +/* ARB_vertex_attrib_64bit */ +/* ARB_viewport_array */ +#endif + +#ifndef GL_ARB_depth_buffer_float +#define GL_ARB_depth_buffer_float 1 +#endif + +#ifndef GL_ARB_framebuffer_object +#define GL_ARB_framebuffer_object 1 +#ifdef GL3_PROTOTYPES +GLAPI GLboolean APIENTRY glIsRenderbuffer (GLuint renderbuffer); +GLAPI void APIENTRY glBindRenderbuffer (GLenum target, GLuint renderbuffer); +GLAPI void APIENTRY glDeleteRenderbuffers (GLsizei n, const GLuint *renderbuffers); +GLAPI void APIENTRY glGenRenderbuffers (GLsizei n, GLuint *renderbuffers); +GLAPI void APIENTRY glRenderbufferStorage (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glGetRenderbufferParameteriv (GLenum target, GLenum pname, GLint *params); +GLAPI GLboolean APIENTRY glIsFramebuffer (GLuint framebuffer); +GLAPI void APIENTRY glBindFramebuffer (GLenum target, GLuint framebuffer); +GLAPI void APIENTRY glDeleteFramebuffers (GLsizei n, const GLuint *framebuffers); +GLAPI void APIENTRY glGenFramebuffers (GLsizei n, GLuint *framebuffers); +GLAPI GLenum APIENTRY glCheckFramebufferStatus (GLenum target); +GLAPI void APIENTRY glFramebufferTexture1D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GLAPI void APIENTRY glFramebufferTexture2D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +GLAPI void APIENTRY glFramebufferTexture3D (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +GLAPI void APIENTRY glFramebufferRenderbuffer (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +GLAPI void APIENTRY glGetFramebufferAttachmentParameteriv (GLenum target, GLenum attachment, GLenum pname, GLint *params); +GLAPI void APIENTRY glGenerateMipmap (GLenum target); +GLAPI void APIENTRY glBlitFramebuffer (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +GLAPI void APIENTRY glRenderbufferStorageMultisample (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glFramebufferTextureLayer (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +#endif /* GL3_PROTOTYPES */ +typedef GLboolean (APIENTRYP PFNGLISRENDERBUFFERPROC) (GLuint renderbuffer); +typedef void (APIENTRYP PFNGLBINDRENDERBUFFERPROC) (GLenum target, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLDELETERENDERBUFFERSPROC) (GLsizei n, const GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLGENRENDERBUFFERSPROC) (GLsizei n, GLuint *renderbuffers); +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEPROC) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLGETRENDERBUFFERPARAMETERIVPROC) (GLenum target, GLenum pname, GLint *params); +typedef GLboolean (APIENTRYP PFNGLISFRAMEBUFFERPROC) (GLuint framebuffer); +typedef void (APIENTRYP PFNGLBINDFRAMEBUFFERPROC) (GLenum target, GLuint framebuffer); +typedef void (APIENTRYP PFNGLDELETEFRAMEBUFFERSPROC) (GLsizei n, const GLuint *framebuffers); +typedef void (APIENTRYP PFNGLGENFRAMEBUFFERSPROC) (GLsizei n, GLuint *framebuffers); +typedef GLenum (APIENTRYP PFNGLCHECKFRAMEBUFFERSTATUSPROC) (GLenum target); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE1DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE2DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURE3DPROC) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (APIENTRYP PFNGLFRAMEBUFFERRENDERBUFFERPROC) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (APIENTRYP PFNGLGETFRAMEBUFFERATTACHMENTPARAMETERIVPROC) (GLenum target, GLenum attachment, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGENERATEMIPMAPPROC) (GLenum target); +typedef void (APIENTRYP PFNGLBLITFRAMEBUFFERPROC) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef void (APIENTRYP PFNGLRENDERBUFFERSTORAGEMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLFRAMEBUFFERTEXTURELAYERPROC) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +#endif + +#ifndef GL_ARB_framebuffer_sRGB +#define GL_ARB_framebuffer_sRGB 1 +#endif + +#ifndef GL_ARB_half_float_vertex +#define GL_ARB_half_float_vertex 1 +#endif + +#ifndef GL_ARB_map_buffer_range +#define GL_ARB_map_buffer_range 1 +#ifdef GL3_PROTOTYPES +GLAPI GLvoid* APIENTRY glMapBufferRange (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +GLAPI void APIENTRY glFlushMappedBufferRange (GLenum target, GLintptr offset, GLsizeiptr length); +#endif /* GL3_PROTOTYPES */ +typedef GLvoid* (APIENTRYP PFNGLMAPBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length, GLbitfield access); +typedef void (APIENTRYP PFNGLFLUSHMAPPEDBUFFERRANGEPROC) (GLenum target, GLintptr offset, GLsizeiptr length); +#endif + +#ifndef GL_ARB_texture_compression_rgtc +#define GL_ARB_texture_compression_rgtc 1 +#endif + +#ifndef GL_ARB_texture_rg +#define GL_ARB_texture_rg 1 +#endif + +#ifndef GL_ARB_vertex_array_object +#define GL_ARB_vertex_array_object 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glBindVertexArray (GLuint array); +GLAPI void APIENTRY glDeleteVertexArrays (GLsizei n, const GLuint *arrays); +GLAPI void APIENTRY glGenVertexArrays (GLsizei n, GLuint *arrays); +GLAPI GLboolean APIENTRY glIsVertexArray (GLuint array); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBINDVERTEXARRAYPROC) (GLuint array); +typedef void (APIENTRYP PFNGLDELETEVERTEXARRAYSPROC) (GLsizei n, const GLuint *arrays); +typedef void (APIENTRYP PFNGLGENVERTEXARRAYSPROC) (GLsizei n, GLuint *arrays); +typedef GLboolean (APIENTRYP PFNGLISVERTEXARRAYPROC) (GLuint array); +#endif + +#ifndef GL_ARB_uniform_buffer_object +#define GL_ARB_uniform_buffer_object 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glGetUniformIndices (GLuint program, GLsizei uniformCount, const GLchar* const *uniformNames, GLuint *uniformIndices); +GLAPI void APIENTRY glGetActiveUniformsiv (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetActiveUniformName (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); +GLAPI GLuint APIENTRY glGetUniformBlockIndex (GLuint program, const GLchar *uniformBlockName); +GLAPI void APIENTRY glGetActiveUniformBlockiv (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetActiveUniformBlockName (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); +GLAPI void APIENTRY glUniformBlockBinding (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETUNIFORMINDICESPROC) (GLuint program, GLsizei uniformCount, const GLchar* const *uniformNames, GLuint *uniformIndices); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMSIVPROC) (GLuint program, GLsizei uniformCount, const GLuint *uniformIndices, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMNAMEPROC) (GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformName); +typedef GLuint (APIENTRYP PFNGLGETUNIFORMBLOCKINDEXPROC) (GLuint program, const GLchar *uniformBlockName); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKIVPROC) (GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETACTIVEUNIFORMBLOCKNAMEPROC) (GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei *length, GLchar *uniformBlockName); +typedef void (APIENTRYP PFNGLUNIFORMBLOCKBINDINGPROC) (GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); +#endif + +#ifndef GL_ARB_copy_buffer +#define GL_ARB_copy_buffer 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glCopyBufferSubData (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLCOPYBUFFERSUBDATAPROC) (GLenum readTarget, GLenum writeTarget, GLintptr readOffset, GLintptr writeOffset, GLsizeiptr size); +#endif + +#ifndef GL_ARB_depth_clamp +#define GL_ARB_depth_clamp 1 +#endif + +#ifndef GL_ARB_draw_elements_base_vertex +#define GL_ARB_draw_elements_base_vertex 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glDrawElementsBaseVertex (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); +GLAPI void APIENTRY glDrawRangeElementsBaseVertex (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); +GLAPI void APIENTRY glDrawElementsInstancedBaseVertex (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instancecount, GLint basevertex); +GLAPI void APIENTRY glMultiDrawElementsBaseVertex (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei drawcount, const GLint *basevertex); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); +typedef void (APIENTRYP PFNGLDRAWRANGEELEMENTSBASEVERTEXPROC) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint basevertex); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINSTANCEDBASEVERTEXPROC) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instancecount, GLint basevertex); +typedef void (APIENTRYP PFNGLMULTIDRAWELEMENTSBASEVERTEXPROC) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei drawcount, const GLint *basevertex); +#endif + +#ifndef GL_ARB_fragment_coord_conventions +#define GL_ARB_fragment_coord_conventions 1 +#endif + +#ifndef GL_ARB_provoking_vertex +#define GL_ARB_provoking_vertex 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glProvokingVertex (GLenum mode); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPROVOKINGVERTEXPROC) (GLenum mode); +#endif + +#ifndef GL_ARB_seamless_cube_map +#define GL_ARB_seamless_cube_map 1 +#endif + +#ifndef GL_ARB_sync +#define GL_ARB_sync 1 +#ifdef GL3_PROTOTYPES +GLAPI GLsync APIENTRY glFenceSync (GLenum condition, GLbitfield flags); +GLAPI GLboolean APIENTRY glIsSync (GLsync sync); +GLAPI void APIENTRY glDeleteSync (GLsync sync); +GLAPI GLenum APIENTRY glClientWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); +GLAPI void APIENTRY glWaitSync (GLsync sync, GLbitfield flags, GLuint64 timeout); +GLAPI void APIENTRY glGetInteger64v (GLenum pname, GLint64 *params); +GLAPI void APIENTRY glGetSynciv (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +#endif /* GL3_PROTOTYPES */ +typedef GLsync (APIENTRYP PFNGLFENCESYNCPROC) (GLenum condition, GLbitfield flags); +typedef GLboolean (APIENTRYP PFNGLISSYNCPROC) (GLsync sync); +typedef void (APIENTRYP PFNGLDELETESYNCPROC) (GLsync sync); +typedef GLenum (APIENTRYP PFNGLCLIENTWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (APIENTRYP PFNGLWAITSYNCPROC) (GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (APIENTRYP PFNGLGETINTEGER64VPROC) (GLenum pname, GLint64 *params); +typedef void (APIENTRYP PFNGLGETSYNCIVPROC) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +#endif + +#ifndef GL_ARB_texture_multisample +#define GL_ARB_texture_multisample 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glTexImage2DMultisample (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +GLAPI void APIENTRY glTexImage3DMultisample (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +GLAPI void APIENTRY glGetMultisamplefv (GLenum pname, GLuint index, GLfloat *val); +GLAPI void APIENTRY glSampleMaski (GLuint index, GLbitfield mask); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXIMAGE2DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); +typedef void (APIENTRYP PFNGLTEXIMAGE3DMULTISAMPLEPROC) (GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); +typedef void (APIENTRYP PFNGLGETMULTISAMPLEFVPROC) (GLenum pname, GLuint index, GLfloat *val); +typedef void (APIENTRYP PFNGLSAMPLEMASKIPROC) (GLuint index, GLbitfield mask); +#endif + +#ifndef GL_ARB_vertex_array_bgra +#define GL_ARB_vertex_array_bgra 1 +#endif + +#ifndef GL_ARB_texture_query_lod +#define GL_ARB_texture_query_lod 1 +#endif + +#ifndef GL_ARB_blend_func_extended +#define GL_ARB_blend_func_extended 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glBindFragDataLocationIndexed (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); +GLAPI GLint APIENTRY glGetFragDataIndex (GLuint program, const GLchar *name); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBINDFRAGDATALOCATIONINDEXEDPROC) (GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); +typedef GLint (APIENTRYP PFNGLGETFRAGDATAINDEXPROC) (GLuint program, const GLchar *name); +#endif + +#ifndef GL_ARB_explicit_attrib_location +#define GL_ARB_explicit_attrib_location 1 +#endif + +#ifndef GL_ARB_occlusion_query2 +#define GL_ARB_occlusion_query2 1 +#endif + +#ifndef GL_ARB_sampler_objects +#define GL_ARB_sampler_objects 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glGenSamplers (GLsizei count, GLuint *samplers); +GLAPI void APIENTRY glDeleteSamplers (GLsizei count, const GLuint *samplers); +GLAPI GLboolean APIENTRY glIsSampler (GLuint sampler); +GLAPI void APIENTRY glBindSampler (GLuint unit, GLuint sampler); +GLAPI void APIENTRY glSamplerParameteri (GLuint sampler, GLenum pname, GLint param); +GLAPI void APIENTRY glSamplerParameteriv (GLuint sampler, GLenum pname, const GLint *param); +GLAPI void APIENTRY glSamplerParameterf (GLuint sampler, GLenum pname, GLfloat param); +GLAPI void APIENTRY glSamplerParameterfv (GLuint sampler, GLenum pname, const GLfloat *param); +GLAPI void APIENTRY glSamplerParameterIiv (GLuint sampler, GLenum pname, const GLint *param); +GLAPI void APIENTRY glSamplerParameterIuiv (GLuint sampler, GLenum pname, const GLuint *param); +GLAPI void APIENTRY glGetSamplerParameteriv (GLuint sampler, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetSamplerParameterIiv (GLuint sampler, GLenum pname, GLint *params); +GLAPI void APIENTRY glGetSamplerParameterfv (GLuint sampler, GLenum pname, GLfloat *params); +GLAPI void APIENTRY glGetSamplerParameterIuiv (GLuint sampler, GLenum pname, GLuint *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGENSAMPLERSPROC) (GLsizei count, GLuint *samplers); +typedef void (APIENTRYP PFNGLDELETESAMPLERSPROC) (GLsizei count, const GLuint *samplers); +typedef GLboolean (APIENTRYP PFNGLISSAMPLERPROC) (GLuint sampler); +typedef void (APIENTRYP PFNGLBINDSAMPLERPROC) (GLuint unit, GLuint sampler); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIPROC) (GLuint sampler, GLenum pname, GLint param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, const GLint *param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFPROC) (GLuint sampler, GLenum pname, GLfloat param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, const GLfloat *param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, const GLint *param); +typedef void (APIENTRYP PFNGLSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, const GLuint *param); +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIVPROC) (GLuint sampler, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIIVPROC) (GLuint sampler, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERFVPROC) (GLuint sampler, GLenum pname, GLfloat *params); +typedef void (APIENTRYP PFNGLGETSAMPLERPARAMETERIUIVPROC) (GLuint sampler, GLenum pname, GLuint *params); +#endif + +#ifndef GL_ARB_shader_bit_encoding +#define GL_ARB_shader_bit_encoding 1 +#endif + +#ifndef GL_ARB_texture_rgb10_a2ui +#define GL_ARB_texture_rgb10_a2ui 1 +#endif + +#ifndef GL_ARB_texture_swizzle +#define GL_ARB_texture_swizzle 1 +#endif + +#ifndef GL_ARB_timer_query +#define GL_ARB_timer_query 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glQueryCounter (GLuint id, GLenum target); +GLAPI void APIENTRY glGetQueryObjecti64v (GLuint id, GLenum pname, GLint64 *params); +GLAPI void APIENTRY glGetQueryObjectui64v (GLuint id, GLenum pname, GLuint64 *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLQUERYCOUNTERPROC) (GLuint id, GLenum target); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTI64VPROC) (GLuint id, GLenum pname, GLint64 *params); +typedef void (APIENTRYP PFNGLGETQUERYOBJECTUI64VPROC) (GLuint id, GLenum pname, GLuint64 *params); +#endif + +#ifndef GL_ARB_vertex_type_2_10_10_10_rev +#define GL_ARB_vertex_type_2_10_10_10_rev 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glVertexAttribP1ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI void APIENTRY glVertexAttribP1uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI void APIENTRY glVertexAttribP2ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI void APIENTRY glVertexAttribP2uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI void APIENTRY glVertexAttribP3ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI void APIENTRY glVertexAttribP3uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +GLAPI void APIENTRY glVertexAttribP4ui (GLuint index, GLenum type, GLboolean normalized, GLuint value); +GLAPI void APIENTRY glVertexAttribP4uiv (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP1UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP2UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP3UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIPROC) (GLuint index, GLenum type, GLboolean normalized, GLuint value); +typedef void (APIENTRYP PFNGLVERTEXATTRIBP4UIVPROC) (GLuint index, GLenum type, GLboolean normalized, const GLuint *value); +#endif + +#ifndef GL_ARB_draw_indirect +#define GL_ARB_draw_indirect 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glDrawArraysIndirect (GLenum mode, const GLvoid *indirect); +GLAPI void APIENTRY glDrawElementsIndirect (GLenum mode, GLenum type, const GLvoid *indirect); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWARRAYSINDIRECTPROC) (GLenum mode, const GLvoid *indirect); +typedef void (APIENTRYP PFNGLDRAWELEMENTSINDIRECTPROC) (GLenum mode, GLenum type, const GLvoid *indirect); +#endif + +#ifndef GL_ARB_gpu_shader5 +#define GL_ARB_gpu_shader5 1 +#endif + +#ifndef GL_ARB_gpu_shader_fp64 +#define GL_ARB_gpu_shader_fp64 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glUniform1d (GLint location, GLdouble x); +GLAPI void APIENTRY glUniform2d (GLint location, GLdouble x, GLdouble y); +GLAPI void APIENTRY glUniform3d (GLint location, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glUniform4d (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glUniform1dv (GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glUniform2dv (GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glUniform3dv (GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glUniform4dv (GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix2x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix2x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix3x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix3x4dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix4x2dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glUniformMatrix4x3dv (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glGetUniformdv (GLuint program, GLint location, GLdouble *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLUNIFORM1DPROC) (GLint location, GLdouble x); +typedef void (APIENTRYP PFNGLUNIFORM2DPROC) (GLint location, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLUNIFORM3DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLUNIFORM4DPROC) (GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLUNIFORM1DVPROC) (GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORM2DVPROC) (GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORM3DVPROC) (GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORM4DVPROC) (GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX2X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX3X4DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X2DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLUNIFORMMATRIX4X3DVPROC) (GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLGETUNIFORMDVPROC) (GLuint program, GLint location, GLdouble *params); +#endif + +#ifndef GL_ARB_shader_subroutine +#define GL_ARB_shader_subroutine 1 +#ifdef GL3_PROTOTYPES +GLAPI GLint APIENTRY glGetSubroutineUniformLocation (GLuint program, GLenum shadertype, const GLchar *name); +GLAPI GLuint APIENTRY glGetSubroutineIndex (GLuint program, GLenum shadertype, const GLchar *name); +GLAPI void APIENTRY glGetActiveSubroutineUniformiv (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); +GLAPI void APIENTRY glGetActiveSubroutineUniformName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); +GLAPI void APIENTRY glGetActiveSubroutineName (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); +GLAPI void APIENTRY glUniformSubroutinesuiv (GLenum shadertype, GLsizei count, const GLuint *indices); +GLAPI void APIENTRY glGetUniformSubroutineuiv (GLenum shadertype, GLint location, GLuint *params); +GLAPI void APIENTRY glGetProgramStageiv (GLuint program, GLenum shadertype, GLenum pname, GLint *values); +#endif /* GL3_PROTOTYPES */ +typedef GLint (APIENTRYP PFNGLGETSUBROUTINEUNIFORMLOCATIONPROC) (GLuint program, GLenum shadertype, const GLchar *name); +typedef GLuint (APIENTRYP PFNGLGETSUBROUTINEINDEXPROC) (GLuint program, GLenum shadertype, const GLchar *name); +typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMIVPROC) (GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); +typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINEUNIFORMNAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); +typedef void (APIENTRYP PFNGLGETACTIVESUBROUTINENAMEPROC) (GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); +typedef void (APIENTRYP PFNGLUNIFORMSUBROUTINESUIVPROC) (GLenum shadertype, GLsizei count, const GLuint *indices); +typedef void (APIENTRYP PFNGLGETUNIFORMSUBROUTINEUIVPROC) (GLenum shadertype, GLint location, GLuint *params); +typedef void (APIENTRYP PFNGLGETPROGRAMSTAGEIVPROC) (GLuint program, GLenum shadertype, GLenum pname, GLint *values); +#endif + +#ifndef GL_ARB_tessellation_shader +#define GL_ARB_tessellation_shader 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glPatchParameteri (GLenum pname, GLint value); +GLAPI void APIENTRY glPatchParameterfv (GLenum pname, const GLfloat *values); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLPATCHPARAMETERIPROC) (GLenum pname, GLint value); +typedef void (APIENTRYP PFNGLPATCHPARAMETERFVPROC) (GLenum pname, const GLfloat *values); +#endif + +#ifndef GL_ARB_texture_buffer_object_rgb32 +#define GL_ARB_texture_buffer_object_rgb32 1 +#endif + +#ifndef GL_ARB_transform_feedback2 +#define GL_ARB_transform_feedback2 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glBindTransformFeedback (GLenum target, GLuint id); +GLAPI void APIENTRY glDeleteTransformFeedbacks (GLsizei n, const GLuint *ids); +GLAPI void APIENTRY glGenTransformFeedbacks (GLsizei n, GLuint *ids); +GLAPI GLboolean APIENTRY glIsTransformFeedback (GLuint id); +GLAPI void APIENTRY glPauseTransformFeedback (void); +GLAPI void APIENTRY glResumeTransformFeedback (void); +GLAPI void APIENTRY glDrawTransformFeedback (GLenum mode, GLuint id); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBINDTRANSFORMFEEDBACKPROC) (GLenum target, GLuint id); +typedef void (APIENTRYP PFNGLDELETETRANSFORMFEEDBACKSPROC) (GLsizei n, const GLuint *ids); +typedef void (APIENTRYP PFNGLGENTRANSFORMFEEDBACKSPROC) (GLsizei n, GLuint *ids); +typedef GLboolean (APIENTRYP PFNGLISTRANSFORMFEEDBACKPROC) (GLuint id); +typedef void (APIENTRYP PFNGLPAUSETRANSFORMFEEDBACKPROC) (void); +typedef void (APIENTRYP PFNGLRESUMETRANSFORMFEEDBACKPROC) (void); +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKPROC) (GLenum mode, GLuint id); +#endif + +#ifndef GL_ARB_transform_feedback3 +#define GL_ARB_transform_feedback3 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glDrawTransformFeedbackStream (GLenum mode, GLuint id, GLuint stream); +GLAPI void APIENTRY glBeginQueryIndexed (GLenum target, GLuint index, GLuint id); +GLAPI void APIENTRY glEndQueryIndexed (GLenum target, GLuint index); +GLAPI void APIENTRY glGetQueryIndexediv (GLenum target, GLuint index, GLenum pname, GLint *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDRAWTRANSFORMFEEDBACKSTREAMPROC) (GLenum mode, GLuint id, GLuint stream); +typedef void (APIENTRYP PFNGLBEGINQUERYINDEXEDPROC) (GLenum target, GLuint index, GLuint id); +typedef void (APIENTRYP PFNGLENDQUERYINDEXEDPROC) (GLenum target, GLuint index); +typedef void (APIENTRYP PFNGLGETQUERYINDEXEDIVPROC) (GLenum target, GLuint index, GLenum pname, GLint *params); +#endif + +#ifndef GL_ARB_ES2_compatibility +#define GL_ARB_ES2_compatibility 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glReleaseShaderCompiler (void); +GLAPI void APIENTRY glShaderBinary (GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length); +GLAPI void APIENTRY glGetShaderPrecisionFormat (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); +GLAPI void APIENTRY glDepthRangef (GLclampf n, GLclampf f); +GLAPI void APIENTRY glClearDepthf (GLclampf d); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLRELEASESHADERCOMPILERPROC) (void); +typedef void (APIENTRYP PFNGLSHADERBINARYPROC) (GLsizei count, const GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLsizei length); +typedef void (APIENTRYP PFNGLGETSHADERPRECISIONFORMATPROC) (GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); +typedef void (APIENTRYP PFNGLDEPTHRANGEFPROC) (GLclampf n, GLclampf f); +typedef void (APIENTRYP PFNGLCLEARDEPTHFPROC) (GLclampf d); +#endif + +#ifndef GL_ARB_get_program_binary +#define GL_ARB_get_program_binary 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glGetProgramBinary (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); +GLAPI void APIENTRY glProgramBinary (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length); +GLAPI void APIENTRY glProgramParameteri (GLuint program, GLenum pname, GLint value); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETPROGRAMBINARYPROC) (GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); +typedef void (APIENTRYP PFNGLPROGRAMBINARYPROC) (GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length); +typedef void (APIENTRYP PFNGLPROGRAMPARAMETERIPROC) (GLuint program, GLenum pname, GLint value); +#endif + +#ifndef GL_ARB_separate_shader_objects +#define GL_ARB_separate_shader_objects 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glUseProgramStages (GLuint pipeline, GLbitfield stages, GLuint program); +GLAPI void APIENTRY glActiveShaderProgram (GLuint pipeline, GLuint program); +GLAPI GLuint APIENTRY glCreateShaderProgramv (GLenum type, GLsizei count, const GLchar* const *strings); +GLAPI void APIENTRY glBindProgramPipeline (GLuint pipeline); +GLAPI void APIENTRY glDeleteProgramPipelines (GLsizei n, const GLuint *pipelines); +GLAPI void APIENTRY glGenProgramPipelines (GLsizei n, GLuint *pipelines); +GLAPI GLboolean APIENTRY glIsProgramPipeline (GLuint pipeline); +GLAPI void APIENTRY glGetProgramPipelineiv (GLuint pipeline, GLenum pname, GLint *params); +GLAPI void APIENTRY glProgramUniform1i (GLuint program, GLint location, GLint v0); +GLAPI void APIENTRY glProgramUniform1iv (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform1f (GLuint program, GLint location, GLfloat v0); +GLAPI void APIENTRY glProgramUniform1fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform1d (GLuint program, GLint location, GLdouble v0); +GLAPI void APIENTRY glProgramUniform1dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform1ui (GLuint program, GLint location, GLuint v0); +GLAPI void APIENTRY glProgramUniform1uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniform2i (GLuint program, GLint location, GLint v0, GLint v1); +GLAPI void APIENTRY glProgramUniform2iv (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform2f (GLuint program, GLint location, GLfloat v0, GLfloat v1); +GLAPI void APIENTRY glProgramUniform2fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform2d (GLuint program, GLint location, GLdouble v0, GLdouble v1); +GLAPI void APIENTRY glProgramUniform2dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform2ui (GLuint program, GLint location, GLuint v0, GLuint v1); +GLAPI void APIENTRY glProgramUniform2uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniform3i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +GLAPI void APIENTRY glProgramUniform3iv (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform3f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +GLAPI void APIENTRY glProgramUniform3fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform3d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); +GLAPI void APIENTRY glProgramUniform3dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform3ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +GLAPI void APIENTRY glProgramUniform3uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniform4i (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +GLAPI void APIENTRY glProgramUniform4iv (GLuint program, GLint location, GLsizei count, const GLint *value); +GLAPI void APIENTRY glProgramUniform4f (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +GLAPI void APIENTRY glProgramUniform4fv (GLuint program, GLint location, GLsizei count, const GLfloat *value); +GLAPI void APIENTRY glProgramUniform4d (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); +GLAPI void APIENTRY glProgramUniform4dv (GLuint program, GLint location, GLsizei count, const GLdouble *value); +GLAPI void APIENTRY glProgramUniform4ui (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +GLAPI void APIENTRY glProgramUniform4uiv (GLuint program, GLint location, GLsizei count, const GLuint *value); +GLAPI void APIENTRY glProgramUniformMatrix2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix2x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix3x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix2x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix4x2fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix3x4fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix4x3fv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +GLAPI void APIENTRY glProgramUniformMatrix2x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix3x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix2x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix4x2dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix3x4dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glProgramUniformMatrix4x3dv (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +GLAPI void APIENTRY glValidateProgramPipeline (GLuint pipeline); +GLAPI void APIENTRY glGetProgramPipelineInfoLog (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLUSEPROGRAMSTAGESPROC) (GLuint pipeline, GLbitfield stages, GLuint program); +typedef void (APIENTRYP PFNGLACTIVESHADERPROGRAMPROC) (GLuint pipeline, GLuint program); +typedef GLuint (APIENTRYP PFNGLCREATESHADERPROGRAMVPROC) (GLenum type, GLsizei count, const GLchar* const *strings); +typedef void (APIENTRYP PFNGLBINDPROGRAMPIPELINEPROC) (GLuint pipeline); +typedef void (APIENTRYP PFNGLDELETEPROGRAMPIPELINESPROC) (GLsizei n, const GLuint *pipelines); +typedef void (APIENTRYP PFNGLGENPROGRAMPIPELINESPROC) (GLsizei n, GLuint *pipelines); +typedef GLboolean (APIENTRYP PFNGLISPROGRAMPIPELINEPROC) (GLuint pipeline); +typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEIVPROC) (GLuint pipeline, GLenum pname, GLint *params); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IPROC) (GLuint program, GLint location, GLint v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FPROC) (GLuint program, GLint location, GLfloat v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DPROC) (GLuint program, GLint location, GLdouble v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIPROC) (GLuint program, GLint location, GLuint v0); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM1UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IPROC) (GLuint program, GLint location, GLint v0, GLint v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM2UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM3UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IPROC) (GLuint program, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4IVPROC) (GLuint program, GLint location, GLsizei count, const GLint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FPROC) (GLuint program, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4FVPROC) (GLuint program, GLint location, GLsizei count, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DPROC) (GLuint program, GLint location, GLdouble v0, GLdouble v1, GLdouble v2, GLdouble v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4DVPROC) (GLuint program, GLint location, GLsizei count, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIPROC) (GLuint program, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORM4UIVPROC) (GLuint program, GLint location, GLsizei count, const GLuint *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3FVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX2X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X2DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX3X4DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLPROGRAMUNIFORMMATRIX4X3DVPROC) (GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); +typedef void (APIENTRYP PFNGLVALIDATEPROGRAMPIPELINEPROC) (GLuint pipeline); +typedef void (APIENTRYP PFNGLGETPROGRAMPIPELINEINFOLOGPROC) (GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); +#endif + +#ifndef GL_ARB_shader_precision +#define GL_ARB_shader_precision 1 +#endif + +#ifndef GL_ARB_vertex_attrib_64bit +#define GL_ARB_vertex_attrib_64bit 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glVertexAttribL1d (GLuint index, GLdouble x); +GLAPI void APIENTRY glVertexAttribL2d (GLuint index, GLdouble x, GLdouble y); +GLAPI void APIENTRY glVertexAttribL3d (GLuint index, GLdouble x, GLdouble y, GLdouble z); +GLAPI void APIENTRY glVertexAttribL4d (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +GLAPI void APIENTRY glVertexAttribL1dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribL2dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribL3dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribL4dv (GLuint index, const GLdouble *v); +GLAPI void APIENTRY glVertexAttribLPointer (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +GLAPI void APIENTRY glGetVertexAttribLdv (GLuint index, GLenum pname, GLdouble *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DPROC) (GLuint index, GLdouble x); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DPROC) (GLuint index, GLdouble x, GLdouble y); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DPROC) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL1DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL2DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL3DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBL4DVPROC) (GLuint index, const GLdouble *v); +typedef void (APIENTRYP PFNGLVERTEXATTRIBLPOINTERPROC) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLGETVERTEXATTRIBLDVPROC) (GLuint index, GLenum pname, GLdouble *params); +#endif + +#ifndef GL_ARB_viewport_array +#define GL_ARB_viewport_array 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glViewportArrayv (GLuint first, GLsizei count, const GLfloat *v); +GLAPI void APIENTRY glViewportIndexedf (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +GLAPI void APIENTRY glViewportIndexedfv (GLuint index, const GLfloat *v); +GLAPI void APIENTRY glScissorArrayv (GLuint first, GLsizei count, const GLint *v); +GLAPI void APIENTRY glScissorIndexed (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +GLAPI void APIENTRY glScissorIndexedv (GLuint index, const GLint *v); +GLAPI void APIENTRY glDepthRangeArrayv (GLuint first, GLsizei count, const GLclampd *v); +GLAPI void APIENTRY glDepthRangeIndexed (GLuint index, GLclampd n, GLclampd f); +GLAPI void APIENTRY glGetFloati_v (GLenum target, GLuint index, GLfloat *data); +GLAPI void APIENTRY glGetDoublei_v (GLenum target, GLuint index, GLdouble *data); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVIEWPORTARRAYVPROC) (GLuint first, GLsizei count, const GLfloat *v); +typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFPROC) (GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); +typedef void (APIENTRYP PFNGLVIEWPORTINDEXEDFVPROC) (GLuint index, const GLfloat *v); +typedef void (APIENTRYP PFNGLSCISSORARRAYVPROC) (GLuint first, GLsizei count, const GLint *v); +typedef void (APIENTRYP PFNGLSCISSORINDEXEDPROC) (GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLSCISSORINDEXEDVPROC) (GLuint index, const GLint *v); +typedef void (APIENTRYP PFNGLDEPTHRANGEARRAYVPROC) (GLuint first, GLsizei count, const GLclampd *v); +typedef void (APIENTRYP PFNGLDEPTHRANGEINDEXEDPROC) (GLuint index, GLclampd n, GLclampd f); +typedef void (APIENTRYP PFNGLGETFLOATI_VPROC) (GLenum target, GLuint index, GLfloat *data); +typedef void (APIENTRYP PFNGLGETDOUBLEI_VPROC) (GLenum target, GLuint index, GLdouble *data); +#endif + + +#ifdef __cplusplus +} +#endif + +#endif diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gl3ext.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gl3ext.h" new file mode 100644 index 0000000..2c82000 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gl3ext.h" @@ -0,0 +1,363 @@ +/* + Copyright: (c) 2010-2013 Apple Inc. All rights reserved. +*/ + +#ifndef __gl3ext_h_ +#define __gl3ext_h_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#if defined(_WIN32) && !defined(APIENTRY) && !defined(__CYGWIN__) && !defined(__SCITECH_SNAP__) +#define WIN32_LEAN_AND_MEAN 1 +#include +#endif + +#if defined(__APPLE__) +#define GL3_PROTOTYPES +#endif + +#ifndef APIENTRY +#define APIENTRY +#endif +#ifndef APIENTRYP +#define APIENTRYP APIENTRY * +#endif +#ifndef GLAPI +#define GLAPI extern +#endif + +/****** Enums ************************************************/ + +#ifndef GL_ARB_instanced_arrays +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE +#endif + +#ifndef GL_ARB_internalformat_query +#define GL_NUM_SAMPLE_COUNTS 0x9380 +#endif + +#ifndef GL_ARB_sample_shading +#define GL_SAMPLE_SHADING_ARB 0x8C36 +#define GL_MIN_SAMPLE_SHADING_VALUE_ARB 0x8C37 +#endif + +#ifndef GL_ARB_shading_language_include +#define GL_SHADER_INCLUDE_ARB 0x8DAE +#define GL_NAMED_STRING_LENGTH_ARB 0x8DE9 +#define GL_NAMED_STRING_TYPE_ARB 0x8DEA +#endif + +#ifndef GL_ARB_texture_cube_map_array +#define GL_TEXTURE_CUBE_MAP_ARRAY_ARB 0x9009 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARRAY_ARB 0x900A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARRAY_ARB 0x900B +#define GL_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900C +#define GL_SAMPLER_CUBE_MAP_ARRAY_SHADOW_ARB 0x900D +#define GL_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900E +#define GL_UNSIGNED_INT_SAMPLER_CUBE_MAP_ARRAY_ARB 0x900F +#endif + +#ifndef GL_ARB_texture_gather +#define GL_MIN_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5E +#define GL_MAX_PROGRAM_TEXTURE_GATHER_OFFSET_ARB 0x8E5F +#define GL_MAX_PROGRAM_TEXTURE_GATHER_COMPONENTS_ARB 0x8F9F +#endif + +#ifndef GL_ARB_texture_storage +#define GL_TEXTURE_IMMUTABLE_FORMAT 0x912F +#endif + +#ifndef GL_EXT_debug_label +/* reuse GL_TEXTURE */ +/* reuse GL_FRAMEBUFFER */ +/* reuse GL_RENDERBUFFER */ +/* reuse GL_TRANSFORM_FEEDBACK */ +#define GL_BUFFER_OBJECT_EXT 0x9151 +#define GL_SHADER_OBJECT_EXT 0x8B48 +#define GL_PROGRAM_OBJECT_EXT 0x8B40 +#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 +#define GL_QUERY_OBJECT_EXT 0x9153 +#define GL_PROGRAM_PIPELINE_OBJECT_EXT 0x8A4F +#define GL_SYNC_OBJECT_APPLE 0x8A53 +#define GL_SAMPLER 0x82E6 +#endif + +#ifndef GL_EXT_depth_bounds_test +#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 +#define GL_DEPTH_BOUNDS_EXT 0x8891 +#endif + +#ifndef GL_EXT_framebuffer_multisample_blit_scaled +#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA +#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB +#endif + +#ifndef GL_EXT_texture_compression_s3tc +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 +#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F +#endif + +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF +#endif + +#ifndef GL_EXT_texture_mirror_clamp +#define GL_MIRROR_CLAMP_EXT 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 +#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 +#endif + +#ifndef GL_EXT_texture_sRGB_decode +#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 +#define GL_DECODE_EXT 0x8A49 +#define GL_SKIP_DECODE_EXT 0x8A4A +#endif + +#ifndef GL_APPLE_client_storage +#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 +#endif + +#ifndef GL_APPLE_object_purgeable +#define GL_RELEASED_APPLE 0x8A19 +#define GL_VOLATILE_APPLE 0x8A1A +#define GL_RETAINED_APPLE 0x8A1B +#define GL_UNDEFINED_APPLE 0x8A1C +#define GL_PURGEABLE_APPLE 0x8A1D +#endif + +#ifndef GL_APPLE_rgb_422 +#define GL_RGB_422_APPLE 0x8A1F +#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB +#define GL_RGB_RAW_422_APPLE 0x8A51 +#endif + +#ifndef GL_APPLE_row_bytes +#define GL_PACK_ROW_BYTES_APPLE 0x8A15 +#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16 +#define GL_PACK_IMAGE_BYTES_APPLE 0x8A17 +#define GL_UNPACK_IMAGE_BYTES_APPLE 0x8A18 +#endif + +#ifndef GL_APPLE_texture_range +#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 +#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 +#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC +#define GL_TEXTURE_MINIMIZE_STORAGE_APPLE 0x85B6 +#define GL_STORAGE_PRIVATE_APPLE 0x85BD +#define GL_STORAGE_CACHED_APPLE 0x85BE +#define GL_STORAGE_SHARED_APPLE 0x85BF +#endif + +#ifndef GL_ATI_texture_mirror_once +#define GL_MIRROR_CLAMP_ATI 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 +#endif + +/****** Functions Prototypes *********************************/ + +#ifndef GL_ARB_draw_buffers_blend +#define GL_ARB_draw_buffers_blend 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glBlendEquationiARB (GLuint buf, GLenum mode); +GLAPI void APIENTRY glBlendEquationSeparateiARB (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +GLAPI void APIENTRY glBlendFunciARB (GLuint buf, GLenum src, GLenum dst); +GLAPI void APIENTRY glBlendFuncSeparateiARB (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLBLENDEQUATIONIARBPROC) (GLuint buf, GLenum mode); +typedef void (APIENTRYP PFNGLBLENDEQUATIONSEPARATEIARBPROC) (GLuint buf, GLenum modeRGB, GLenum modeAlpha); +typedef void (APIENTRYP PFNGLBLENDFUNCIARBPROC) (GLuint buf, GLenum src, GLenum dst); +typedef void (APIENTRYP PFNGLBLENDFUNCSEPARATEIARBPROC) (GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); +#endif + +#ifndef GL_ARB_instanced_arrays +#define GL_ARB_instanced_arrays 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glVertexAttribDivisorARB (GLuint index, GLuint divisor); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLVERTEXATTRIBDIVISORARBPROC) (GLuint index, GLuint divisor); +#endif + +#ifndef GL_ARB_internalformat_query +#define GL_ARB_internalformat_query 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glGetInternalformativ (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLGETINTERNALFORMATIVPROC) (GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint *params); +#endif + +#ifndef GL_ARB_sample_shading +#define GL_ARB_sample_shading 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glMinSampleShadingARB (GLclampf value); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLMINSAMPLESHADINGARBPROC) (GLclampf value); +#endif + +#ifndef GL_ARB_shading_language_include +#define GL_ARB_shading_language_include 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glNamedStringARB (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); +GLAPI void APIENTRY glDeleteNamedStringARB (GLint namelen, const GLchar *name); +GLAPI void APIENTRY glCompileShaderIncludeARB (GLuint shader, GLsizei count, const GLchar* const *path, const GLint *length); +GLAPI GLboolean APIENTRY glIsNamedStringARB (GLint namelen, const GLchar *name); +GLAPI void APIENTRY glGetNamedStringARB (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); +GLAPI void APIENTRY glGetNamedStringivARB (GLint namelen, const GLchar *name, GLenum pname, GLint *params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLNAMEDSTRINGARBPROC) (GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); +typedef void (APIENTRYP PFNGLDELETENAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name); +typedef void (APIENTRYP PFNGLCOMPILESHADERINCLUDEARBPROC) (GLuint shader, GLsizei count, const GLchar* const *path, const GLint *length); +typedef GLboolean (APIENTRYP PFNGLISNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name); +typedef void (APIENTRYP PFNGLGETNAMEDSTRINGARBPROC) (GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); +typedef void (APIENTRYP PFNGLGETNAMEDSTRINGIVARBPROC) (GLint namelen, const GLchar *name, GLenum pname, GLint *params); +#endif + +#ifndef GL_ARB_texture_cube_map_array +#define GL_ARB_texture_cube_map_array 1 +#endif + +#ifndef GL_ARB_texture_gather +#define GL_ARB_texture_gather 1 +#endif + +#ifndef GL_ARB_texture_storage +#define GL_ARB_texture_storage 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glTexStorage1D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +GLAPI void APIENTRY glTexStorage2D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +GLAPI void APIENTRY glTexStorage3D (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXSTORAGE1DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); +typedef void (APIENTRYP PFNGLTEXSTORAGE2DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (APIENTRYP PFNGLTEXSTORAGE3DPROC) (GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); +#endif + +#ifndef GL_EXT_debug_label +#define GL_EXT_debug_label 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glLabelObjectEXT (GLenum type, GLuint object, GLsizei length, const GLchar *label); +GLAPI void APIENTRY glGetObjectLabelEXT (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLLABELOBJECTEXTPROC) (GLenum type, GLuint object, GLsizei length, const GLchar *label); +typedef void (APIENTRYP PFNGLGETOBJECTLABELEXTPROC) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#endif + +#ifndef GL_EXT_debug_marker +#define GL_EXT_debug_marker 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glInsertEventMarkerEXT (GLsizei length, const char *marker); +GLAPI void APIENTRY glPushGroupMarkerEXT (GLsizei length, const char *marker); +GLAPI void APIENTRY glPopGroupMarkerEXT (void); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLINSERTEVENTMARKEREXTPROC) (GLsizei length, const char *marker); +typedef void (APIENTRYP PFNGLPUSHGROUPMARKEREXTPROC) (GLsizei length, const char *marker); +typedef void (APIENTRYP PFNGLPOPGROUPMARKEREXTPROC) (void); +#endif + +#ifndef GL_EXT_depth_bounds_test +#define GL_EXT_depth_bounds_test 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glDepthBoundsEXT (GLclampd zmin, GLclampd zmax); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLDEPTHBOUNDSEXTPROC) (GLclampd zmin, GLclampd zmax); +#endif + +#ifndef GL_EXT_framebuffer_multisample_blit_scaled +#define GL_EXT_framebuffer_multisample_blit_scaled 1 +#endif + +#ifndef GL_EXT_texture_compression_s3tc +#define GL_EXT_texture_compression_s3tc 1 +#endif + +#ifndef GL_EXT_texture_filter_anisotropic +#define GL_EXT_texture_filter_anisotropic 1 +#endif + +#ifndef GL_EXT_texture_mirror_clamp +#define GL_EXT_texture_mirror_clamp 1 +#endif + +#ifndef GL_EXT_texture_sRGB_decode +#define GL_EXT_texture_sRGB_decode 1 +#endif + +#ifndef GL_APPLE_client_storage +#define GL_APPLE_client_storage 1 +#endif + +#ifndef GL_APPLE_container_object_shareable +#define GL_APPLE_container_object_shareable 1 +#endif + +#ifndef GL_APPLE_flush_render +#define GL_APPLE_flush_render 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glFlushRenderAPPLE (void); +GLAPI void APIENTRY glFinishRenderAPPLE (void); +GLAPI void APIENTRY glSwapAPPLE (void); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLFLUSHRENDERAPPLEPROC) (void); +typedef void (APIENTRYP PFNGLFINISHRENDERAPPLEPROC) (void); +typedef void (APIENTRYP PFNGLSWAPAPPLEPROC) (void); +#endif + +#ifndef GL_APPLE_object_purgeable +#define GL_APPLE_object_purgeable 1 +#ifdef GL3_PROTOTYPES +GLAPI GLenum APIENTRY glObjectPurgeableAPPLE (GLenum objectType, GLuint name, GLenum option); +GLAPI GLenum APIENTRY glObjectUnpurgeableAPPLE (GLenum objectType, GLuint name, GLenum option); +GLAPI void APIENTRY glGetObjectParameterivAPPLE (GLenum objectType, GLuint name, GLenum pname, GLint *params); +#endif /* GL3_PROTOTYPES */ +typedef GLenum (APIENTRYP PFNGLOBJECTPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); +typedef GLenum (APIENTRYP PFNGLOBJECTUNPURGEABLEAPPLEPROC) (GLenum objectType, GLuint name, GLenum option); +typedef void (APIENTRYP PFNGLGETOBJECTPARAMETERIVAPPLEPROC) (GLenum objectType, GLuint name, GLenum pname, GLint *params); +#endif + +#ifndef GL_APPLE_rgb_422 +#define GL_APPLE_rgb_422 1 +#endif + +#ifndef GL_APPLE_row_bytes +#define GL_APPLE_row_bytes 1 +#endif + +#ifndef GL_APPLE_texture_range +#define GL_APPLE_texture_range 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glTextureRangeAPPLE (GLenum target, GLsizei length, const GLvoid *pointer); +GLAPI void APIENTRY glGetTexParameterPointervAPPLE (GLenum target, GLenum pname, GLvoid **params); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXTURERANGEAPPLEPROC) (GLenum target, GLsizei length, const GLvoid *pointer); +typedef void (APIENTRYP PFNGLGETTEXPARAMETERPOINTERVAPPLEPROC) (GLenum target, GLenum pname, GLvoid **params); +#endif + +#ifndef GL_ATI_texture_mirror_once +#define GL_ATI_texture_mirror_once 1 +#endif + +#ifndef GL_NV_texture_barrier +#define GL_NV_texture_barrier 1 +#ifdef GL3_PROTOTYPES +GLAPI void APIENTRY glTextureBarrierNV (void); +#endif /* GL3_PROTOTYPES */ +typedef void (APIENTRYP PFNGLTEXTUREBARRIERNVPROC) (void); +#endif + +#ifdef __cplusplus +} +#endif + +#endif + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/glext.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/glext.h" new file mode 100644 index 0000000..dbd8d97 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/glext.h" @@ -0,0 +1,3730 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef __glext_h_ +#define __glext_h_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** License Applicability. Except to the extent portions of this file are +** made subject to an alternative license as permitted in the SGI Free +** Software License B, Version 1.1 (the "License"), the contents of this +** file are subject only to the provisions of the License. You may not use +** this file except in compliance with the License. You may obtain a copy +** of the License at Silicon Graphics, Inc., attn: Legal Services, 1600 +** Amphitheatre Parkway, Mountain View, CA 94043-1351, or at: +** +** http://oss.sgi.com/projects/FreeB +** +** Note that, as provided in the License, the Software is distributed on an +** "AS IS" basis, with ALL EXPRESS AND IMPLIED WARRANTIES AND CONDITIONS +** DISCLAIMED, INCLUDING, WITHOUT LIMITATION, ANY IMPLIED WARRANTIES AND +** CONDITIONS OF MERCHANTABILITY, SATISFACTORY QUALITY, FITNESS FOR A +** PARTICULAR PURPOSE, AND NON-INFRINGEMENT. +** +** Original Code. The Original Code is: OpenGL Sample Implementation, +** Version 1.2.1, released January 26, 2000, developed by Silicon Graphics, +** Inc. The Original Code is Copyright (c) 1991-2000 Silicon Graphics, Inc. +** Copyright in any portions created by third parties is as indicated +** elsewhere herein. All Rights Reserved. +** +** Additional Notice Provisions: This software was created using the +** OpenGL(R) version 1.2.1 Sample Implementation published by SGI, but has +** not been independently verified as being compliant with the OpenGL(R) +** version 1.2.1 Specification. +*/ + +/* switches to providing function pointers */ +/* #define GL_GLEXT_FUNCTION_POINTERS 1 */ + +#define GL_ARB_color_buffer_float 1 +#define GL_ARB_depth_buffer_float 1 +#define GL_ARB_depth_clamp 1 +#define GL_ARB_depth_texture 1 +#define GL_ARB_draw_buffers 1 +#define GL_ARB_draw_elements_base_vertex 1 +#define GL_ARB_draw_instanced 1 +#define GL_ARB_fragment_program 1 +#define GL_ARB_fragment_program_shadow 1 +#define GL_ARB_fragment_shader 1 +#define GL_ARB_framebuffer_object 1 +#define GL_ARB_framebuffer_sRGB 1 +#define GL_ARB_half_float_pixel 1 +#define GL_ARB_half_float_vertex 1 +#define GL_ARB_imaging 1 +#define GL_ARB_instanced_arrays 1 +#define GL_ARB_multisample 1 +#define GL_ARB_multitexture 1 +#define GL_ARB_occlusion_query 1 +#define GL_ARB_pixel_buffer_object 1 +#define GL_ARB_point_parameters 1 +#define GL_ARB_point_sprite 1 +#define GL_ARB_provoking_vertex 1 +#define GL_ARB_seamless_cube_map 1 +#define GL_ARB_shader_objects 1 +#define GL_ARB_shader_texture_lod 1 +#define GL_ARB_shading_language_100 1 +#define GL_ARB_shadow 1 +#define GL_ARB_shadow_ambient 1 +#define GL_ARB_sync 1 +#define GL_ARB_texture_border_clamp 1 +#define GL_ARB_texture_compression 1 +#define GL_ARB_texture_compression_rgtc 1 +#define GL_ARB_texture_cube_map 1 +#define GL_ARB_texture_env_add 1 +#define GL_ARB_texture_env_combine 1 +#define GL_ARB_texture_env_crossbar 1 +#define GL_ARB_texture_env_dot3 1 +#define GL_ARB_texture_float 1 +#define GL_ARB_texture_mirrored_repeat 1 +#define GL_ARB_texture_non_power_of_two 1 +#define GL_ARB_texture_rectangle 1 +#define GL_ARB_texture_rg 1 +#define GL_ARB_transpose_matrix 1 +#define GL_ARB_vertex_array_bgra 1 +#define GL_ARB_vertex_blend 1 +#define GL_ARB_vertex_buffer_object 1 +#define GL_ARB_vertex_program 1 +#define GL_ARB_vertex_shader 1 +#define GL_ARB_window_pos 1 +#define GL_EXT_abgr 1 +#define GL_EXT_bgra 1 +#define GL_EXT_bindable_uniform 1 +#define GL_EXT_blend_color 1 +#define GL_EXT_blend_equation_separate 1 +#define GL_EXT_blend_func_separate 1 +#define GL_EXT_blend_minmax 1 +#define GL_EXT_blend_subtract 1 +#define GL_EXT_clip_volume_hint 1 +#define GL_EXT_debug_label 1 +#define GL_EXT_debug_marker 1 +#define GL_EXT_depth_bounds_test 1 +#define GL_EXT_draw_buffers2 1 +#define GL_EXT_draw_range_elements 1 +#define GL_EXT_fog_coord 1 +#define GL_EXT_framebuffer_blit 1 +#define GL_EXT_framebuffer_multisample 1 +#define GL_EXT_framebuffer_multisample_blit_scaled 1 +#define GL_EXT_framebuffer_object 1 +#define GL_EXT_framebuffer_sRGB 1 +#define GL_EXT_geometry_shader4 1 +#define GL_EXT_gpu_program_parameters 1 +#define GL_EXT_gpu_shader4 1 +#define GL_EXT_multi_draw_arrays 1 +#define GL_EXT_packed_depth_stencil 1 +#define GL_EXT_packed_float 1 +#define GL_EXT_provoking_vertex 1 +#define GL_EXT_rescale_normal 1 +#define GL_EXT_secondary_color 1 +#define GL_EXT_separate_specular_color 1 +#define GL_EXT_shadow_funcs 1 +#define GL_EXT_stencil_two_side 1 +#define GL_EXT_stencil_wrap 1 +#define GL_EXT_texture_array 1 +#define GL_EXT_texture_compression_dxt1 1 +#define GL_EXT_texture_compression_s3tc 1 +#define GL_EXT_texture_env_add 1 +#define GL_EXT_texture_filter_anisotropic 1 +#define GL_EXT_texture_integer 1 +#define GL_EXT_texture_lod_bias 1 +#define GL_EXT_texture_mirror_clamp 1 +#define GL_EXT_texture_rectangle 1 +#define GL_EXT_texture_shared_exponent 1 +#define GL_EXT_texture_sRGB 1 +#define GL_EXT_texture_sRGB_decode 1 +#define GL_EXT_timer_query 1 +#define GL_EXT_transform_feedback 1 +#define GL_EXT_vertex_array_bgra 1 +#define GL_APPLE_aux_depth_stencil 1 +#define GL_APPLE_client_storage 1 +#define GL_APPLE_element_array 1 +#define GL_APPLE_fence 1 +#define GL_APPLE_float_pixels 1 +#define GL_APPLE_flush_buffer_range 1 +#define GL_APPLE_flush_render 1 +#define GL_APPLE_object_purgeable 1 +#define GL_APPLE_packed_pixels 1 +#define GL_APPLE_pixel_buffer 1 +#define GL_APPLE_rgb_422 1 +#define GL_APPLE_row_bytes 1 +#define GL_APPLE_specular_vector 1 +#define GL_APPLE_texture_range 1 +#define GL_APPLE_transform_hint 1 +#define GL_APPLE_vertex_array_object 1 +#define GL_APPLE_vertex_array_range 1 +#define GL_APPLE_vertex_point_size 1 +#define GL_APPLE_vertex_program_evaluators 1 +#define GL_APPLE_ycbcr_422 1 +#define GL_ATI_blend_equation_separate 1 +#define GL_ATI_blend_weighted_minmax 1 +#define GL_ATI_separate_stencil 1 +#define GL_ATI_texture_compression_3dc 1 +#define GL_ATI_texture_env_combine3 1 +#define GL_ATI_texture_float 1 +#define GL_ATI_texture_mirror_once 1 +#define GL_IBM_rasterpos_clip 1 +#define GL_NV_blend_square 1 +#define GL_NV_conditional_render 1 +#define GL_NV_depth_clamp 1 +#define GL_NV_fog_distance 1 +#define GL_NV_fragment_program_option 1 +#define GL_NV_fragment_program2 1 +#define GL_NV_light_max_exponent 1 +#define GL_NV_multisample_filter_hint 1 +#define GL_NV_point_sprite 1 +#define GL_NV_texgen_reflection 1 +#define GL_NV_texture_barrier 1 +#define GL_NV_vertex_program2_option 1 +#define GL_NV_vertex_program3 1 +#define GL_SGI_color_matrix 1 +#define GL_SGIS_generate_mipmap 1 +#define GL_SGIS_texture_edge_clamp 1 +#define GL_SGIS_texture_lod 1 + +#ifdef GL_GLEXT_WUNDEF_SUPPORT +#define GL_EXT_color_subtable 0 +#define GL_EXT_compiled_vertex_array 0 +#define GL_EXT_convolution 0 +#define GL_EXT_copy_texture 0 +#define GL_EXT_histogram 0 +#define GL_EXT_packed_pixels 0 +#define GL_EXT_paletted_texture 0 +#define GL_EXT_polygon_offset 0 +#define GL_EXT_shared_texture_palette 0 +#define GL_EXT_subtexture 0 +#define GL_EXT_texture 0 +#define GL_EXT_texture_cube_map 0 +#define GL_EXT_texture_env_combine 0 +#define GL_EXT_texture_object 0 +#define GL_EXT_texture3D 0 +#define GL_EXT_vertex_array 0 +#define GL_ATI_array_rev_comps_in_4_bytes 0 +#define GL_ATI_pn_triangles 0 +#define GL_ATI_point_cull_mode 0 +#define GL_ATI_text_fragment_shader 0 +#define GL_ATIX_pn_triangles 0 +#define GL_HP_convolution_border_modes 0 +#define GL_NV_register_combiners 0 +#define GL_NV_register_combiners2 0 +#define GL_NV_texture_shader 0 +#define GL_NV_texture_shader2 0 +#define GL_NV_texture_shader3 0 +#define GL_NV_vertex_array_range 0 +#define GL_NV_vertex_array_range2 0 +#define GL_NV_vertex_program 0 +#define GL_SGI_color_table 0 +#define GL_SGIS_point_parameters 0 +#define GL_SGIS_texture_border_clamp 0 +#define GL_SGIX_depth_texture 0 +#endif + +/*************************************************************/ + +#ifndef __gltypes_h_ +#if GL_ARB_half_float_pixel +typedef unsigned short GLhalfARB; +#endif + +#if GL_ARB_half_float_vertex +typedef unsigned short GLhalf; +#endif + +#if GL_ARB_shader_objects +typedef char GLcharARB; +typedef void *GLhandleARB; +#endif + +#if GL_ARB_sync +typedef int64_t GLint64; +typedef uint64_t GLuint64; +typedef struct __GLsync *GLsync; +#endif + +#if GL_ARB_vertex_buffer_object +typedef long GLintptrARB; +typedef long GLsizeiptrARB; +#endif + +#if GL_EXT_timer_query +typedef int64_t GLint64EXT; +typedef uint64_t GLuint64EXT; +#endif +#endif + +/*************************************************************/ +#define GL_GLEXT_VERSION 8 + +#if GL_ARB_color_buffer_float +#define GL_RGBA_FLOAT_MODE_ARB 0x8820 +#define GL_CLAMP_VERTEX_COLOR_ARB 0x891A +#define GL_CLAMP_FRAGMENT_COLOR_ARB 0x891B +#define GL_CLAMP_READ_COLOR_ARB 0x891C +#define GL_FIXED_ONLY_ARB 0x891D +#endif + +#if GL_ARB_depth_buffer_float +#define GL_DEPTH_COMPONENT32F 0x8CAC +#define GL_DEPTH32F_STENCIL8 0x8CAD +#define GL_FLOAT_32_UNSIGNED_INT_24_8_REV 0x8DAD +#endif + +#if GL_ARB_depth_clamp +#define GL_DEPTH_CLAMP 0x864F +#endif + +#if GL_ARB_depth_texture +#define GL_DEPTH_COMPONENT16_ARB 0x81A5 +#define GL_DEPTH_COMPONENT24_ARB 0x81A6 +#define GL_DEPTH_COMPONENT32_ARB 0x81A7 +#define GL_TEXTURE_DEPTH_SIZE_ARB 0x884A +#define GL_DEPTH_TEXTURE_MODE_ARB 0x884B +#endif + +#if GL_ARB_draw_buffers +#define GL_MAX_DRAW_BUFFERS_ARB 0x8824 +#define GL_DRAW_BUFFER0_ARB 0x8825 +#define GL_DRAW_BUFFER1_ARB 0x8826 +#define GL_DRAW_BUFFER2_ARB 0x8827 +#define GL_DRAW_BUFFER3_ARB 0x8828 +#define GL_DRAW_BUFFER4_ARB 0x8829 +#define GL_DRAW_BUFFER5_ARB 0x882A +#define GL_DRAW_BUFFER6_ARB 0x882B +#define GL_DRAW_BUFFER7_ARB 0x882C +#define GL_DRAW_BUFFER8_ARB 0x882D +#define GL_DRAW_BUFFER9_ARB 0x882E +#define GL_DRAW_BUFFER10_ARB 0x882F +#define GL_DRAW_BUFFER11_ARB 0x8830 +#define GL_DRAW_BUFFER12_ARB 0x8831 +#define GL_DRAW_BUFFER13_ARB 0x8832 +#define GL_DRAW_BUFFER14_ARB 0x8833 +#define GL_DRAW_BUFFER15_ARB 0x8834 +#endif + +#if GL_ARB_fragment_program +#define GL_FRAGMENT_PROGRAM_ARB 0x8804 +#define GL_PROGRAM_ALU_INSTRUCTIONS_ARB 0x8805 +#define GL_PROGRAM_TEX_INSTRUCTIONS_ARB 0x8806 +#define GL_PROGRAM_TEX_INDIRECTIONS_ARB 0x8807 +#define GL_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x8808 +#define GL_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x8809 +#define GL_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x880A +#define GL_MAX_PROGRAM_ALU_INSTRUCTIONS_ARB 0x880B +#define GL_MAX_PROGRAM_TEX_INSTRUCTIONS_ARB 0x880C +#define GL_MAX_PROGRAM_TEX_INDIRECTIONS_ARB 0x880D +#define GL_MAX_PROGRAM_NATIVE_ALU_INSTRUCTIONS_ARB 0x880E +#define GL_MAX_PROGRAM_NATIVE_TEX_INSTRUCTIONS_ARB 0x880F +#define GL_MAX_PROGRAM_NATIVE_TEX_INDIRECTIONS_ARB 0x8810 +#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 +#endif + +#if GL_ARB_fragment_shader +#define GL_FRAGMENT_SHADER_ARB 0x8B30 +#define GL_MAX_FRAGMENT_UNIFORM_COMPONENTS_ARB 0x8B49 +#define GL_FRAGMENT_SHADER_DERIVATIVE_HINT_ARB 0x8B8B +#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 +#endif + +#if GL_ARB_framebuffer_object +#define GL_INVALID_FRAMEBUFFER_OPERATION 0x0506 +#define GL_FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING 0x8210 +#define GL_FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE 0x8211 +#define GL_FRAMEBUFFER_ATTACHMENT_RED_SIZE 0x8212 +#define GL_FRAMEBUFFER_ATTACHMENT_GREEN_SIZE 0x8213 +#define GL_FRAMEBUFFER_ATTACHMENT_BLUE_SIZE 0x8214 +#define GL_FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE 0x8215 +#define GL_FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE 0x8216 +#define GL_FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE 0x8217 +#define GL_FRAMEBUFFER_DEFAULT 0x8218 +#define GL_FRAMEBUFFER_UNDEFINED 0x8219 +#define GL_DEPTH_STENCIL_ATTACHMENT 0x821A +#define GL_MAX_RENDERBUFFER_SIZE 0x84E8 +#define GL_DEPTH_STENCIL 0x84F9 +#define GL_UNSIGNED_INT_24_8 0x84FA +#define GL_DEPTH24_STENCIL8 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE 0x88F1 +#define GL_TEXTURE_RED_TYPE 0x8C10 +#define GL_TEXTURE_GREEN_TYPE 0x8C11 +#define GL_TEXTURE_BLUE_TYPE 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE 0x8C13 +#define GL_TEXTURE_DEPTH_TYPE 0x8C16 +#define GL_UNSIGNED_NORMALIZED 0x8C17 +#define GL_FRAMEBUFFER_BINDING 0x8CA6 +#define GL_DRAW_FRAMEBUFFER_BINDING GL_FRAMEBUFFER_BINDING +#define GL_RENDERBUFFER_BINDING 0x8CA7 +#define GL_READ_FRAMEBUFFER 0x8CA8 +#define GL_DRAW_FRAMEBUFFER 0x8CA9 +#define GL_READ_FRAMEBUFFER_BINDING 0x8CAA +#define GL_RENDERBUFFER_SAMPLES 0x8CAB +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER 0x8CD4 +#define GL_FRAMEBUFFER_COMPLETE 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED 0x8CDD +#define GL_MAX_COLOR_ATTACHMENTS 0x8CDF +#define GL_COLOR_ATTACHMENT0 0x8CE0 +#define GL_COLOR_ATTACHMENT1 0x8CE1 +#define GL_COLOR_ATTACHMENT2 0x8CE2 +#define GL_COLOR_ATTACHMENT3 0x8CE3 +#define GL_COLOR_ATTACHMENT4 0x8CE4 +#define GL_COLOR_ATTACHMENT5 0x8CE5 +#define GL_COLOR_ATTACHMENT6 0x8CE6 +#define GL_COLOR_ATTACHMENT7 0x8CE7 +#define GL_COLOR_ATTACHMENT8 0x8CE8 +#define GL_COLOR_ATTACHMENT9 0x8CE9 +#define GL_COLOR_ATTACHMENT10 0x8CEA +#define GL_COLOR_ATTACHMENT11 0x8CEB +#define GL_COLOR_ATTACHMENT12 0x8CEC +#define GL_COLOR_ATTACHMENT13 0x8CED +#define GL_COLOR_ATTACHMENT14 0x8CEE +#define GL_COLOR_ATTACHMENT15 0x8CEF +#define GL_DEPTH_ATTACHMENT 0x8D00 +#define GL_STENCIL_ATTACHMENT 0x8D20 +#define GL_FRAMEBUFFER 0x8D40 +#define GL_RENDERBUFFER 0x8D41 +#define GL_RENDERBUFFER_WIDTH 0x8D42 +#define GL_RENDERBUFFER_HEIGHT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT 0x8D44 +#define GL_STENCIL_INDEX1 0x8D46 +#define GL_STENCIL_INDEX4 0x8D47 +#define GL_STENCIL_INDEX8 0x8D48 +#define GL_STENCIL_INDEX16 0x8D49 +#define GL_RENDERBUFFER_RED_SIZE 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE 0x8D55 +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE 0x8D56 +#define GL_MAX_SAMPLES 0x8D57 +#endif + +#if GL_ARB_framebuffer_sRGB +#define GL_FRAMEBUFFER_SRGB 0x8DB9 +#endif + +#if GL_ARB_half_float_pixel +#define GL_HALF_FLOAT_ARB 0x140B +#endif + +#if GL_ARB_half_float_vertex +#define GL_HALF_FLOAT 0x140B +#endif + +#if GL_ARB_instanced_arrays +#define GL_VERTEX_ATTRIB_ARRAY_DIVISOR_ARB 0x88FE +#endif + +#if GL_ARB_multisample +#define GL_MULTISAMPLE_ARB 0x809D +#define GL_SAMPLE_ALPHA_TO_COVERAGE_ARB 0x809E +#define GL_SAMPLE_ALPHA_TO_ONE_ARB 0x809F +#define GL_SAMPLE_COVERAGE_ARB 0x80A0 +#define GL_SAMPLE_BUFFERS_ARB 0x80A8 +#define GL_SAMPLES_ARB 0x80A9 +#define GL_SAMPLE_COVERAGE_VALUE_ARB 0x80AA +#define GL_SAMPLE_COVERAGE_INVERT_ARB 0x80AB +#define GL_MULTISAMPLE_BIT_ARB 0x20000000 +#endif + +#if GL_ARB_multitexture +#define GL_TEXTURE0_ARB 0x84C0 +#define GL_TEXTURE1_ARB 0x84C1 +#define GL_TEXTURE2_ARB 0x84C2 +#define GL_TEXTURE3_ARB 0x84C3 +#define GL_TEXTURE4_ARB 0x84C4 +#define GL_TEXTURE5_ARB 0x84C5 +#define GL_TEXTURE6_ARB 0x84C6 +#define GL_TEXTURE7_ARB 0x84C7 +#define GL_TEXTURE8_ARB 0x84C8 +#define GL_TEXTURE9_ARB 0x84C9 +#define GL_TEXTURE10_ARB 0x84CA +#define GL_TEXTURE11_ARB 0x84CB +#define GL_TEXTURE12_ARB 0x84CC +#define GL_TEXTURE13_ARB 0x84CD +#define GL_TEXTURE14_ARB 0x84CE +#define GL_TEXTURE15_ARB 0x84CF +#define GL_TEXTURE16_ARB 0x84D0 +#define GL_TEXTURE17_ARB 0x84D1 +#define GL_TEXTURE18_ARB 0x84D2 +#define GL_TEXTURE19_ARB 0x84D3 +#define GL_TEXTURE20_ARB 0x84D4 +#define GL_TEXTURE21_ARB 0x84D5 +#define GL_TEXTURE22_ARB 0x84D6 +#define GL_TEXTURE23_ARB 0x84D7 +#define GL_TEXTURE24_ARB 0x84D8 +#define GL_TEXTURE25_ARB 0x84D9 +#define GL_TEXTURE26_ARB 0x84DA +#define GL_TEXTURE27_ARB 0x84DB +#define GL_TEXTURE28_ARB 0x84DC +#define GL_TEXTURE29_ARB 0x84DD +#define GL_TEXTURE30_ARB 0x84DE +#define GL_TEXTURE31_ARB 0x84DF +#define GL_ACTIVE_TEXTURE_ARB 0x84E0 +#define GL_CLIENT_ACTIVE_TEXTURE_ARB 0x84E1 +#define GL_MAX_TEXTURE_UNITS_ARB 0x84E2 +#endif + +#if GL_ARB_occlusion_query +#define GL_SAMPLES_PASSED_ARB 0x8914 +#define GL_QUERY_COUNTER_BITS_ARB 0x8864 +#define GL_CURRENT_QUERY_ARB 0x8865 +#define GL_QUERY_RESULT_ARB 0x8866 +#define GL_QUERY_RESULT_AVAILABLE_ARB 0x8867 +#endif + +#if GL_ARB_pixel_buffer_object +#define GL_PIXEL_PACK_BUFFER_ARB 0x88EB +#define GL_PIXEL_UNPACK_BUFFER_ARB 0x88EC +#define GL_PIXEL_PACK_BUFFER_BINDING_ARB 0x88ED +#define GL_PIXEL_UNPACK_BUFFER_BINDING_ARB 0x88EF +#endif + +#if GL_ARB_point_parameters +#define GL_POINT_SIZE_MIN_ARB 0x8126 +#define GL_POINT_SIZE_MAX_ARB 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_ARB 0x8128 +#define GL_POINT_DISTANCE_ATTENUATION_ARB 0x8129 +#endif + +#if GL_ARB_point_sprite +#define GL_POINT_SPRITE_ARB 0x8861 +#define GL_COORD_REPLACE_ARB 0x8862 +#endif + +#if GL_ARB_provoking_vertex +#define GL_FIRST_VERTEX_CONVENTION 0x8E4D +#define GL_LAST_VERTEX_CONVENTION 0x8E4E +#define GL_PROVOKING_VERTEX 0x8E4F +#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION 0x8E4C +#endif + +#if GL_ARB_seamless_cube_map +#define GL_TEXTURE_CUBE_MAP_SEAMLESS 0x884F +#endif + +#if GL_ARB_shader_objects +#define GL_PROGRAM_OBJECT_ARB 0x8B40 +#define GL_OBJECT_TYPE_ARB 0x8B4E +#define GL_OBJECT_SUBTYPE_ARB 0x8B4F +#define GL_OBJECT_DELETE_STATUS_ARB 0x8B80 +#define GL_OBJECT_COMPILE_STATUS_ARB 0x8B81 +#define GL_OBJECT_LINK_STATUS_ARB 0x8B82 +#define GL_OBJECT_VALIDATE_STATUS_ARB 0x8B83 +#define GL_OBJECT_INFO_LOG_LENGTH_ARB 0x8B84 +#define GL_OBJECT_ATTACHED_OBJECTS_ARB 0x8B85 +#define GL_OBJECT_ACTIVE_UNIFORMS_ARB 0x8B86 +#define GL_OBJECT_ACTIVE_UNIFORM_MAX_LENGTH_ARB 0x8B87 +#define GL_OBJECT_SHADER_SOURCE_LENGTH_ARB 0x8B88 +#define GL_SHADER_OBJECT_ARB 0x8B48 +#define GL_FLOAT_VEC2_ARB 0x8B50 +#define GL_FLOAT_VEC3_ARB 0x8B51 +#define GL_FLOAT_VEC4_ARB 0x8B52 +#define GL_INT_VEC2_ARB 0x8B53 +#define GL_INT_VEC3_ARB 0x8B54 +#define GL_INT_VEC4_ARB 0x8B55 +#define GL_BOOL_ARB 0x8B56 +#define GL_BOOL_VEC2_ARB 0x8B57 +#define GL_BOOL_VEC3_ARB 0x8B58 +#define GL_BOOL_VEC4_ARB 0x8B59 +#define GL_FLOAT_MAT2_ARB 0x8B5A +#define GL_FLOAT_MAT3_ARB 0x8B5B +#define GL_FLOAT_MAT4_ARB 0x8B5C +#define GL_SAMPLER_1D_ARB 0x8B5D +#define GL_SAMPLER_2D_ARB 0x8B5E +#define GL_SAMPLER_3D_ARB 0x8B5F +#define GL_SAMPLER_CUBE_ARB 0x8B60 +#define GL_SAMPLER_1D_SHADOW_ARB 0x8B61 +#define GL_SAMPLER_2D_SHADOW_ARB 0x8B62 +#define GL_SAMPLER_2D_RECT_ARB 0x8B63 +#define GL_SAMPLER_2D_RECT_SHADOW_ARB 0x8B64 +#endif + +#if GL_ARB_shading_language_100 +#define GL_SHADING_LANGUAGE_VERSION_ARB 0x8B8C +#endif + +#if GL_ARB_shadow +#define GL_TEXTURE_COMPARE_MODE_ARB 0x884C +#define GL_TEXTURE_COMPARE_FUNC_ARB 0x884D +#define GL_COMPARE_R_TO_TEXTURE_ARB 0x884E +#endif + +#if GL_ARB_shadow_ambient +#define GL_TEXTURE_COMPARE_FAIL_VALUE_ARB 0x80BF +#endif + +#if GL_ARB_sync +#define GL_MAX_SERVER_WAIT_TIMEOUT 0x9111 +#define GL_OBJECT_TYPE 0x9112 +#define GL_SYNC_CONDITION 0x9113 +#define GL_SYNC_STATUS 0x9114 +#define GL_SYNC_FLAGS 0x9115 +#define GL_SYNC_FENCE 0x9116 +#define GL_SYNC_GPU_COMMANDS_COMPLETE 0x9117 +#define GL_UNSIGNALED 0x9118 +#define GL_SIGNALED 0x9119 +#define GL_ALREADY_SIGNALED 0x911A +#define GL_TIMEOUT_EXPIRED 0x911B +#define GL_CONDITION_SATISFIED 0x911C +#define GL_WAIT_FAILED 0x911D +#define GL_SYNC_FLUSH_COMMANDS_BIT 0x00000001 +#define GL_TIMEOUT_IGNORED 0xFFFFFFFFFFFFFFFFull +#endif + +#if GL_ARB_texture_border_clamp +#define GL_CLAMP_TO_BORDER_ARB 0x812D +#endif + +#if GL_ARB_texture_compression +#define GL_COMPRESSED_ALPHA_ARB 0x84E9 +#define GL_COMPRESSED_LUMINANCE_ARB 0x84EA +#define GL_COMPRESSED_LUMINANCE_ALPHA_ARB 0x84EB +#define GL_COMPRESSED_INTENSITY_ARB 0x84EC +#define GL_COMPRESSED_RGB_ARB 0x84ED +#define GL_COMPRESSED_RGBA_ARB 0x84EE +#define GL_TEXTURE_COMPRESSION_HINT_ARB 0x84EF +#define GL_TEXTURE_COMPRESSED_IMAGE_SIZE_ARB 0x86A0 +#define GL_TEXTURE_COMPRESSED_ARB 0x86A1 +#define GL_NUM_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A2 +#define GL_COMPRESSED_TEXTURE_FORMATS_ARB 0x86A3 +#endif + +#if GL_ARB_texture_compression_rgtc +#define GL_COMPRESSED_RED_RGTC1 0x8DBB +#define GL_COMPRESSED_SIGNED_RED_RGTC1 0x8DBC +#define GL_COMPRESSED_RG_RGTC2 0x8DBD +#define GL_COMPRESSED_SIGNED_RG_RGTC2 0x8DBE +#endif + +#if GL_ARB_texture_cube_map +#define GL_NORMAL_MAP_ARB 0x8511 +#define GL_REFLECTION_MAP_ARB 0x8512 +#define GL_TEXTURE_CUBE_MAP_ARB 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_ARB 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_ARB 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_ARB 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_ARB 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_ARB 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_ARB 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_ARB 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_ARB 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_ARB 0x851C +#endif + +#if GL_ARB_texture_env_combine +#define GL_COMBINE_ARB 0x8570 +#define GL_COMBINE_RGB_ARB 0x8571 +#define GL_COMBINE_ALPHA_ARB 0x8572 +#define GL_RGB_SCALE_ARB 0x8573 +#define GL_ADD_SIGNED_ARB 0x8574 +#define GL_INTERPOLATE_ARB 0x8575 +#define GL_CONSTANT_ARB 0x8576 +#define GL_PRIMARY_COLOR_ARB 0x8577 +#define GL_PREVIOUS_ARB 0x8578 +#define GL_SUBTRACT_ARB 0x84E7 +#define GL_SOURCE0_RGB_ARB 0x8580 +#define GL_SOURCE1_RGB_ARB 0x8581 +#define GL_SOURCE2_RGB_ARB 0x8582 +#define GL_SOURCE0_ALPHA_ARB 0x8588 +#define GL_SOURCE1_ALPHA_ARB 0x8589 +#define GL_SOURCE2_ALPHA_ARB 0x858A +#define GL_OPERAND0_RGB_ARB 0x8590 +#define GL_OPERAND1_RGB_ARB 0x8591 +#define GL_OPERAND2_RGB_ARB 0x8592 +#define GL_OPERAND0_ALPHA_ARB 0x8598 +#define GL_OPERAND1_ALPHA_ARB 0x8599 +#define GL_OPERAND2_ALPHA_ARB 0x859A +#endif + +#if GL_ARB_texture_env_dot3 +#define GL_DOT3_RGB_ARB 0x86AE +#define GL_DOT3_RGBA_ARB 0x86AF +#endif + +#if GL_ARB_texture_float +#define GL_TEXTURE_RED_TYPE_ARB 0x8C10 +#define GL_TEXTURE_GREEN_TYPE_ARB 0x8C11 +#define GL_TEXTURE_BLUE_TYPE_ARB 0x8C12 +#define GL_TEXTURE_ALPHA_TYPE_ARB 0x8C13 +#define GL_TEXTURE_LUMINANCE_TYPE_ARB 0x8C14 +#define GL_TEXTURE_INTENSITY_TYPE_ARB 0x8C15 +#define GL_TEXTURE_DEPTH_TYPE_ARB 0x8C16 +#define GL_UNSIGNED_NORMALIZED_ARB 0x8C17 +#define GL_RGBA32F_ARB 0x8814 +#define GL_RGB32F_ARB 0x8815 +#define GL_ALPHA32F_ARB 0x8816 +#define GL_INTENSITY32F_ARB 0x8817 +#define GL_LUMINANCE32F_ARB 0x8818 +#define GL_LUMINANCE_ALPHA32F_ARB 0x8819 +#define GL_RGBA16F_ARB 0x881A +#define GL_RGB16F_ARB 0x881B +#define GL_ALPHA16F_ARB 0x881C +#define GL_INTENSITY16F_ARB 0x881D +#define GL_LUMINANCE16F_ARB 0x881E +#define GL_LUMINANCE_ALPHA16F_ARB 0x881F +#endif + +#if GL_ARB_texture_mirrored_repeat +#define GL_MIRRORED_REPEAT_ARB 0x8370 +#endif + +#if GL_ARB_texture_rectangle +#define GL_TEXTURE_RECTANGLE_ARB 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_ARB 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_ARB 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_ARB 0x84F8 +#endif + +#if GL_ARB_texture_rg +#define GL_COMPRESSED_RED 0x8225 +#define GL_COMPRESSED_RG 0x8226 +#define GL_RG 0x8227 +#define GL_RG_INTEGER 0x8228 +#define GL_R8 0x8229 +#define GL_R16 0x822A +#define GL_RG8 0x822B +#define GL_RG16 0x822C +#define GL_R16F 0x822D +#define GL_R32F 0x822E +#define GL_RG16F 0x822F +#define GL_RG32F 0x8230 +#define GL_R8I 0x8231 +#define GL_R8UI 0x8232 +#define GL_R16I 0x8233 +#define GL_R16UI 0x8234 +#define GL_R32I 0x8235 +#define GL_R32UI 0x8236 +#define GL_RG8I 0x8237 +#define GL_RG8UI 0x8238 +#define GL_RG16I 0x8239 +#define GL_RG16UI 0x823A +#define GL_RG32I 0x823B +#define GL_RG32UI 0x823C +#endif + +#if GL_ARB_transpose_matrix +#define GL_TRANSPOSE_MODELVIEW_MATRIX_ARB 0x84E3 +#define GL_TRANSPOSE_PROJECTION_MATRIX_ARB 0x84E4 +#define GL_TRANSPOSE_TEXTURE_MATRIX_ARB 0x84E5 +#define GL_TRANSPOSE_COLOR_MATRIX_ARB 0x84E6 +#endif + +#if GL_ARB_vertex_blend +#define GL_MAX_VERTEX_UNITS_ARB 0x86A4 +#define GL_ACTIVE_VERTEX_UNITS_ARB 0x86A5 +#define GL_WEIGHT_SUM_UNITY_ARB 0x86A6 +#define GL_VERTEX_BLEND_ARB 0x86A7 +#define GL_CURRENT_WEIGHT_ARB 0x86A8 +#define GL_WEIGHT_ARRAY_TYPE_ARB 0x86A9 +#define GL_WEIGHT_ARRAY_STRIDE_ARB 0x86AA +#define GL_WEIGHT_ARRAY_SIZE_ARB 0x86AB +#define GL_WEIGHT_ARRAY_POINTER_ARB 0x86AC +#define GL_WEIGHT_ARRAY_ARB 0x86AD +#define GL_MODELVIEW0_ARB 0x1700 +#define GL_MODELVIEW1_ARB 0x850A +#define GL_MODELVIEW2_ARB 0x8722 +#define GL_MODELVIEW3_ARB 0x8723 +#define GL_MODELVIEW4_ARB 0x8724 +#define GL_MODELVIEW5_ARB 0x8725 +#define GL_MODELVIEW6_ARB 0x8726 +#define GL_MODELVIEW7_ARB 0x8727 +#define GL_MODELVIEW8_ARB 0x8728 +#define GL_MODELVIEW9_ARB 0x8729 +#define GL_MODELVIEW10_ARB 0x872A +#define GL_MODELVIEW11_ARB 0x872B +#define GL_MODELVIEW12_ARB 0x872C +#define GL_MODELVIEW13_ARB 0x872D +#define GL_MODELVIEW14_ARB 0x872E +#define GL_MODELVIEW15_ARB 0x872F +#define GL_MODELVIEW16_ARB 0x8730 +#define GL_MODELVIEW17_ARB 0x8731 +#define GL_MODELVIEW18_ARB 0x8732 +#define GL_MODELVIEW19_ARB 0x8733 +#define GL_MODELVIEW20_ARB 0x8734 +#define GL_MODELVIEW21_ARB 0x8735 +#define GL_MODELVIEW22_ARB 0x8736 +#define GL_MODELVIEW23_ARB 0x8737 +#define GL_MODELVIEW24_ARB 0x8738 +#define GL_MODELVIEW25_ARB 0x8739 +#define GL_MODELVIEW26_ARB 0x873A +#define GL_MODELVIEW27_ARB 0x873B +#define GL_MODELVIEW28_ARB 0x873C +#define GL_MODELVIEW29_ARB 0x873D +#define GL_MODELVIEW30_ARB 0x873E +#define GL_MODELVIEW31_ARB 0x873F +#endif + +#if GL_ARB_vertex_buffer_object +#define GL_ARRAY_BUFFER_ARB 0x8892 +#define GL_ELEMENT_ARRAY_BUFFER_ARB 0x8893 +#define GL_ARRAY_BUFFER_BINDING_ARB 0x8894 +#define GL_ELEMENT_ARRAY_BUFFER_BINDING_ARB 0x8895 +#define GL_VERTEX_ARRAY_BUFFER_BINDING_ARB 0x8896 +#define GL_NORMAL_ARRAY_BUFFER_BINDING_ARB 0x8897 +#define GL_COLOR_ARRAY_BUFFER_BINDING_ARB 0x8898 +#define GL_INDEX_ARRAY_BUFFER_BINDING_ARB 0x8899 +#define GL_TEXTURE_COORD_ARRAY_BUFFER_BINDING_ARB 0x889A +#define GL_EDGE_FLAG_ARRAY_BUFFER_BINDING_ARB 0x889B +#define GL_SECONDARY_COLOR_ARRAY_BUFFER_BINDING_ARB 0x889C +#define GL_FOG_COORD_ARRAY_BUFFER_BINDING_ARB 0x889D +#define GL_WEIGHT_ARRAY_BUFFER_BINDING_ARB 0x889E +#define GL_VERTEX_ATTRIB_ARRAY_BUFFER_BINDING_ARB 0x889F +#define GL_STREAM_DRAW_ARB 0x88E0 +#define GL_STREAM_READ_ARB 0x88E1 +#define GL_STREAM_COPY_ARB 0x88E2 +#define GL_STATIC_DRAW_ARB 0x88E4 +#define GL_STATIC_READ_ARB 0x88E5 +#define GL_STATIC_COPY_ARB 0x88E6 +#define GL_DYNAMIC_DRAW_ARB 0x88E8 +#define GL_DYNAMIC_READ_ARB 0x88E9 +#define GL_DYNAMIC_COPY_ARB 0x88EA +#define GL_READ_ONLY_ARB 0x88B8 +#define GL_WRITE_ONLY_ARB 0x88B9 +#define GL_READ_WRITE_ARB 0x88BA +#define GL_BUFFER_SIZE_ARB 0x8764 +#define GL_BUFFER_USAGE_ARB 0x8765 +#define GL_BUFFER_ACCESS_ARB 0x88BB +#define GL_BUFFER_MAPPED_ARB 0x88BC +#define GL_BUFFER_MAP_POINTER_ARB 0x88BD +/* Obsolete */ +#define GL_FOG_COORDINATE_ARRAY_BUFFER_BINDING_ARB 0x889D +#endif + +#if GL_ARB_vertex_program +#define GL_VERTEX_PROGRAM_ARB 0x8620 +#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 +#define GL_PROGRAM_FORMAT_ASCII_ARB 0x8875 +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A +#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 +#define GL_PROGRAM_LENGTH_ARB 0x8627 +#define GL_PROGRAM_FORMAT_ARB 0x8876 +#define GL_PROGRAM_NAME_ARB 0x8677 +#define GL_PROGRAM_BINDING_ARB 0x8677 +#define GL_PROGRAM_INSTRUCTIONS_ARB 0x88A0 +#define GL_MAX_PROGRAM_INSTRUCTIONS_ARB 0x88A1 +#define GL_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A2 +#define GL_MAX_PROGRAM_NATIVE_INSTRUCTIONS_ARB 0x88A3 +#define GL_PROGRAM_TEMPORARIES_ARB 0x88A4 +#define GL_MAX_PROGRAM_TEMPORARIES_ARB 0x88A5 +#define GL_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A6 +#define GL_MAX_PROGRAM_NATIVE_TEMPORARIES_ARB 0x88A7 +#define GL_PROGRAM_PARAMETERS_ARB 0x88A8 +#define GL_MAX_PROGRAM_PARAMETERS_ARB 0x88A9 +#define GL_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AA +#define GL_MAX_PROGRAM_NATIVE_PARAMETERS_ARB 0x88AB +#define GL_PROGRAM_ATTRIBS_ARB 0x88AC +#define GL_MAX_PROGRAM_ATTRIBS_ARB 0x88AD +#define GL_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AE +#define GL_MAX_PROGRAM_NATIVE_ATTRIBS_ARB 0x88AF +#define GL_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B0 +#define GL_MAX_PROGRAM_ADDRESS_REGISTERS_ARB 0x88B1 +#define GL_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B2 +#define GL_MAX_PROGRAM_NATIVE_ADDRESS_REGISTERS_ARB 0x88B3 +#define GL_MAX_PROGRAM_LOCAL_PARAMETERS_ARB 0x88B4 +#define GL_MAX_PROGRAM_ENV_PARAMETERS_ARB 0x88B5 +#define GL_PROGRAM_UNDER_NATIVE_LIMITS_ARB 0x88B6 +#define GL_PROGRAM_STRING_ARB 0x8628 +#define GL_PROGRAM_ERROR_POSITION_ARB 0x864B +#define GL_CURRENT_MATRIX_ARB 0x8641 +#define GL_TRANSPOSE_CURRENT_MATRIX_ARB 0x88B7 +#define GL_CURRENT_MATRIX_STACK_DEPTH_ARB 0x8640 +#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 +#define GL_MAX_PROGRAM_MATRICES_ARB 0x862F +#define GL_MAX_PROGRAM_MATRIX_STACK_DEPTH_ARB 0x862E +#define GL_PROGRAM_ERROR_STRING_ARB 0x8874 +#define GL_MATRIX0_ARB 0x88C0 +#define GL_MATRIX1_ARB 0x88C1 +#define GL_MATRIX2_ARB 0x88C2 +#define GL_MATRIX3_ARB 0x88C3 +#define GL_MATRIX4_ARB 0x88C4 +#define GL_MATRIX5_ARB 0x88C5 +#define GL_MATRIX6_ARB 0x88C6 +#define GL_MATRIX7_ARB 0x88C7 +#define GL_MATRIX8_ARB 0x88C8 +#define GL_MATRIX9_ARB 0x88C9 +#define GL_MATRIX10_ARB 0x88CA +#define GL_MATRIX11_ARB 0x88CB +#define GL_MATRIX12_ARB 0x88CC +#define GL_MATRIX13_ARB 0x88CD +#define GL_MATRIX14_ARB 0x88CE +#define GL_MATRIX15_ARB 0x88CF +#define GL_MATRIX16_ARB 0x88D0 +#define GL_MATRIX17_ARB 0x88D1 +#define GL_MATRIX18_ARB 0x88D2 +#define GL_MATRIX19_ARB 0x88D3 +#define GL_MATRIX20_ARB 0x88D4 +#define GL_MATRIX21_ARB 0x88D5 +#define GL_MATRIX22_ARB 0x88D6 +#define GL_MATRIX23_ARB 0x88D7 +#define GL_MATRIX24_ARB 0x88D8 +#define GL_MATRIX25_ARB 0x88D9 +#define GL_MATRIX26_ARB 0x88DA +#define GL_MATRIX27_ARB 0x88DB +#define GL_MATRIX28_ARB 0x88DC +#define GL_MATRIX29_ARB 0x88DD +#define GL_MATRIX30_ARB 0x88DE +#define GL_MATRIX31_ARB 0x88DF +#define GL_COLOR_SUM_ARB 0x8458 +#endif + +#if GL_ARB_vertex_shader +#define GL_VERTEX_SHADER_ARB 0x8B31 +#define GL_MAX_VERTEX_UNIFORM_COMPONENTS_ARB 0x8B4A +#define GL_MAX_TEXTURE_COORDS_ARB 0x8871 +#define GL_MAX_TEXTURE_IMAGE_UNITS_ARB 0x8872 +#define GL_MAX_VARYING_FLOATS_ARB 0x8B4B +#define GL_MAX_VERTEX_ATTRIBS_ARB 0x8869 +#define GL_MAX_COMBINED_TEXTURE_IMAGE_UNITS_ARB 0x8B4D +#define GL_VERTEX_PROGRAM_POINT_SIZE_ARB 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_ARB 0x8643 +#define GL_OBJECT_ACTIVE_ATTRIBUTES_ARB 0x8B89 +#define GL_OBJECT_ACTIVE_ATTRIBUTE_MAX_LENGTH_ARB 0x8B8A +#define GL_VERTEX_ATTRIB_ARRAY_ENABLED_ARB 0x8622 +#define GL_VERTEX_ATTRIB_ARRAY_SIZE_ARB 0x8623 +#define GL_VERTEX_ATTRIB_ARRAY_STRIDE_ARB 0x8624 +#define GL_VERTEX_ATTRIB_ARRAY_TYPE_ARB 0x8625 +#define GL_VERTEX_ATTRIB_ARRAY_NORMALIZED_ARB 0x886A +#define GL_CURRENT_VERTEX_ATTRIB_ARB 0x8626 +#define GL_VERTEX_ATTRIB_ARRAY_POINTER_ARB 0x8645 +#endif + +#if GL_ARB_vertex_shader || GL_NV_vertex_program3 +#define GL_MAX_VERTEX_TEXTURE_IMAGE_UNITS_ARB 0x8B4C +#endif + +#if GL_EXT_abgr +#define GL_ABGR_EXT 0x8000 +#endif + +#if GL_EXT_bgra +#define GL_BGR_EXT 0x80E0 +#define GL_BGRA_EXT 0x80E1 +#endif + +#if GL_EXT_bindable_uniform +#define GL_MAX_VERTEX_BINDABLE_UNIFORMS_EXT 0x8DE2 +#define GL_MAX_FRAGMENT_BINDABLE_UNIFORMS_EXT 0x8DE3 +#define GL_MAX_GEOMETRY_BINDABLE_UNIFORMS_EXT 0x8DE4 +#define GL_MAX_BINDABLE_UNIFORM_SIZE_EXT 0x8DED +#define GL_UNIFORM_BUFFER_BINDING_EXT 0x8DEF +#define GL_UNIFORM_BUFFER_EXT 0x8DEE +#endif + +#if GL_EXT_blend_color +#define GL_CONSTANT_COLOR_EXT 0x8001 +#define GL_ONE_MINUS_CONSTANT_COLOR_EXT 0x8002 +#define GL_CONSTANT_ALPHA_EXT 0x8003 +#define GL_ONE_MINUS_CONSTANT_ALPHA_EXT 0x8004 +#define GL_BLEND_COLOR_EXT 0x8005 +#endif + +#if GL_EXT_blend_equation_separate +#define GL_BLEND_EQUATION_RGB_EXT 0x8009 +#define GL_BLEND_EQUATION_ALPHA_EXT 0x883D +#endif + +#if GL_EXT_blend_func_separate +#define GL_BLEND_DST_RGB_EXT 0x80C8 +#define GL_BLEND_SRC_RGB_EXT 0x80C9 +#define GL_BLEND_DST_ALPHA_EXT 0x80CA +#define GL_BLEND_SRC_ALPHA_EXT 0x80CB +#endif + +#if GL_EXT_blend_minmax +#define GL_FUNC_ADD_EXT 0x8006 +#define GL_MIN_EXT 0x8007 +#define GL_MAX_EXT 0x8008 +#define GL_BLEND_EQUATION_EXT 0x8009 +#endif + +#if GL_EXT_blend_subtract +#define GL_FUNC_SUBTRACT_EXT 0x800A +#define GL_FUNC_REVERSE_SUBTRACT_EXT 0x800B +#endif + +#if GL_EXT_clip_volume_hint +#define GL_CLIP_VOLUME_CLIPPING_HINT_EXT 0x80F0 +#endif + +#if GL_EXT_compiled_vertex_array +#define GL_ARRAY_ELEMENT_LOCK_FIRST_EXT 0x81A8 +#define GL_ARRAY_ELEMENT_LOCK_COUNT_EXT 0x81A9 +#endif + +#if GL_EXT_convolution +#define GL_CONVOLUTION_1D_EXT 0x8010 +#define GL_CONVOLUTION_2D_EXT 0x8011 +#define GL_SEPARABLE_2D_EXT 0x8012 +#define GL_CONVOLUTION_BORDER_MODE_EXT 0x8013 +#define GL_CONVOLUTION_FILTER_SCALE_EXT 0x8014 +#define GL_CONVOLUTION_FILTER_BIAS_EXT 0x8015 +#define GL_REDUCE_EXT 0x8016 +#define GL_CONVOLUTION_FORMAT_EXT 0x8017 +#define GL_CONVOLUTION_WIDTH_EXT 0x8018 +#define GL_CONVOLUTION_HEIGHT_EXT 0x8019 +#define GL_MAX_CONVOLUTION_WIDTH_EXT 0x801A +#define GL_MAX_CONVOLUTION_HEIGHT_EXT 0x801B +#define GL_POST_CONVOLUTION_RED_SCALE_EXT 0x801C +#define GL_POST_CONVOLUTION_GREEN_SCALE_EXT 0x801D +#define GL_POST_CONVOLUTION_BLUE_SCALE_EXT 0x801E +#define GL_POST_CONVOLUTION_ALPHA_SCALE_EXT 0x801F +#define GL_POST_CONVOLUTION_RED_BIAS_EXT 0x8020 +#define GL_POST_CONVOLUTION_GREEN_BIAS_EXT 0x8021 +#define GL_POST_CONVOLUTION_BLUE_BIAS_EXT 0x8022 +#define GL_POST_CONVOLUTION_ALPHA_BIAS_EXT 0x8023 +#endif + +#if GL_EXT_debug_label +#define GL_BUFFER_OBJECT_EXT 0x9151 +#define GL_SHADER_OBJECT_EXT 0x8B48 +#define GL_PROGRAM_OBJECT_EXT 0x8B40 +#define GL_QUERY_OBJECT_EXT 0x9153 +#define GL_VERTEX_ARRAY_OBJECT_EXT 0x9154 +#define GL_SAMPLER 0x82E6 +#define GL_SYNC_OBJECT_APPLE 0x8A53 +#endif + +#if GL_EXT_depth_bounds_test +#define GL_DEPTH_BOUNDS_TEST_EXT 0x8890 +#define GL_DEPTH_BOUNDS_EXT 0x8891 +#endif + +#if GL_EXT_draw_range_elements +#define GL_MAX_ELEMENTS_VERTICES_EXT 0x80E8 +#define GL_MAX_ELEMENTS_INDICES_EXT 0x80E9 +#endif + +#if GL_EXT_fog_coord +#define GL_FOG_COORDINATE_SOURCE_EXT 0x8450 +#define GL_FOG_COORDINATE_EXT 0x8451 +#define GL_FRAGMENT_DEPTH_EXT 0x8452 +#define GL_CURRENT_FOG_COORDINATE_EXT 0x8453 +#define GL_FOG_COORDINATE_ARRAY_TYPE_EXT 0x8454 +#define GL_FOG_COORDINATE_ARRAY_STRIDE_EXT 0x8455 +#define GL_FOG_COORDINATE_ARRAY_POINTER_EXT 0x8456 +#define GL_FOG_COORDINATE_ARRAY_EXT 0x8457 +#endif + +#if GL_EXT_framebuffer_blit +#define GL_READ_FRAMEBUFFER_EXT 0x8CA8 +#define GL_DRAW_FRAMEBUFFER_EXT 0x8CA9 +#define GL_DRAW_FRAMEBUFFER_BINDING_EXT 0x8CA6 +#define GL_READ_FRAMEBUFFER_BINDING_EXT 0x8CAA +#endif + +#if GL_EXT_framebuffer_multisample +#define GL_RENDERBUFFER_SAMPLES_EXT 0x8CAB +#define GL_FRAMEBUFFER_INCOMPLETE_MULTISAMPLE_EXT 0x8D56 +#define GL_MAX_SAMPLES_EXT 0x8D57 +#endif + +#if GL_EXT_framebuffer_multisample_blit_scaled +#define GL_SCALED_RESOLVE_FASTEST_EXT 0x90BA +#define GL_SCALED_RESOLVE_NICEST_EXT 0x90BB +#endif + +#if GL_EXT_framebuffer_object +#define GL_FRAMEBUFFER_EXT 0x8D40 +#define GL_RENDERBUFFER_EXT 0x8D41 +#define GL_STENCIL_INDEX1_EXT 0x8D46 +#define GL_STENCIL_INDEX4_EXT 0x8D47 +#define GL_STENCIL_INDEX8_EXT 0x8D48 +#define GL_STENCIL_INDEX16_EXT 0x8D49 +#define GL_RENDERBUFFER_WIDTH_EXT 0x8D42 +#define GL_RENDERBUFFER_HEIGHT_EXT 0x8D43 +#define GL_RENDERBUFFER_INTERNAL_FORMAT_EXT 0x8D44 +#define GL_RENDERBUFFER_RED_SIZE_EXT 0x8D50 +#define GL_RENDERBUFFER_GREEN_SIZE_EXT 0x8D51 +#define GL_RENDERBUFFER_BLUE_SIZE_EXT 0x8D52 +#define GL_RENDERBUFFER_ALPHA_SIZE_EXT 0x8D53 +#define GL_RENDERBUFFER_DEPTH_SIZE_EXT 0x8D54 +#define GL_RENDERBUFFER_STENCIL_SIZE_EXT 0x8D55 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE_EXT 0x8CD0 +#define GL_FRAMEBUFFER_ATTACHMENT_OBJECT_NAME_EXT 0x8CD1 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL_EXT 0x8CD2 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE_EXT 0x8CD3 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_3D_ZOFFSET_EXT 0x8CD4 +#define GL_COLOR_ATTACHMENT0_EXT 0x8CE0 +#define GL_COLOR_ATTACHMENT1_EXT 0x8CE1 +#define GL_COLOR_ATTACHMENT2_EXT 0x8CE2 +#define GL_COLOR_ATTACHMENT3_EXT 0x8CE3 +#define GL_COLOR_ATTACHMENT4_EXT 0x8CE4 +#define GL_COLOR_ATTACHMENT5_EXT 0x8CE5 +#define GL_COLOR_ATTACHMENT6_EXT 0x8CE6 +#define GL_COLOR_ATTACHMENT7_EXT 0x8CE7 +#define GL_COLOR_ATTACHMENT8_EXT 0x8CE8 +#define GL_COLOR_ATTACHMENT9_EXT 0x8CE9 +#define GL_COLOR_ATTACHMENT10_EXT 0x8CEA +#define GL_COLOR_ATTACHMENT11_EXT 0x8CEB +#define GL_COLOR_ATTACHMENT12_EXT 0x8CEC +#define GL_COLOR_ATTACHMENT13_EXT 0x8CED +#define GL_COLOR_ATTACHMENT14_EXT 0x8CEE +#define GL_COLOR_ATTACHMENT15_EXT 0x8CEF +#define GL_DEPTH_ATTACHMENT_EXT 0x8D00 +#define GL_STENCIL_ATTACHMENT_EXT 0x8D20 +#define GL_FRAMEBUFFER_COMPLETE_EXT 0x8CD5 +#define GL_FRAMEBUFFER_INCOMPLETE_ATTACHMENT_EXT 0x8CD6 +#define GL_FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT_EXT 0x8CD7 +#define GL_FRAMEBUFFER_INCOMPLETE_DIMENSIONS_EXT 0x8CD9 +#define GL_FRAMEBUFFER_INCOMPLETE_FORMATS_EXT 0x8CDA +#define GL_FRAMEBUFFER_INCOMPLETE_DRAW_BUFFER_EXT 0x8CDB +#define GL_FRAMEBUFFER_INCOMPLETE_READ_BUFFER_EXT 0x8CDC +#define GL_FRAMEBUFFER_UNSUPPORTED_EXT 0x8CDD +#define GL_FRAMEBUFFER_BINDING_EXT 0x8CA6 +#define GL_RENDERBUFFER_BINDING_EXT 0x8CA7 +#define GL_MAX_COLOR_ATTACHMENTS_EXT 0x8CDF +#define GL_MAX_RENDERBUFFER_SIZE_EXT 0x84E8 +#define GL_INVALID_FRAMEBUFFER_OPERATION_EXT 0x0506 +#endif + +#if GL_EXT_framebuffer_sRGB +#define GL_FRAMEBUFFER_SRGB_EXT 0x8DB9 +#define GL_FRAMEBUFFER_SRGB_CAPABLE_EXT 0x8DBA +#endif + +#if GL_EXT_geometry_shader4 +#define GL_GEOMETRY_SHADER_EXT 0x8DD9 +#define GL_GEOMETRY_VERTICES_OUT_EXT 0x8DDA +#define GL_GEOMETRY_INPUT_TYPE_EXT 0x8DDB +#define GL_GEOMETRY_OUTPUT_TYPE_EXT 0x8DDC +#define GL_MAX_GEOMETRY_TEXTURE_IMAGE_UNITS_EXT 0x8C29 +#define GL_MAX_GEOMETRY_VARYING_COMPONENTS_EXT 0x8DDD +#define GL_MAX_VERTEX_VARYING_COMPONENTS_EXT 0x8DDE +#define GL_MAX_VARYING_COMPONENTS_EXT 0x8B4B +#define GL_MAX_GEOMETRY_UNIFORM_COMPONENTS_EXT 0x8DDF +#define GL_MAX_GEOMETRY_OUTPUT_VERTICES_EXT 0x8DE0 +#define GL_MAX_GEOMETRY_TOTAL_OUTPUT_COMPONENTS_EXT 0x8DE1 +#define GL_LINES_ADJACENCY_EXT 0xA +#define GL_LINE_STRIP_ADJACENCY_EXT 0xB +#define GL_TRIANGLES_ADJACENCY_EXT 0xC +#define GL_TRIANGLE_STRIP_ADJACENCY_EXT 0xD +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_TARGETS_EXT 0x8DA8 +#define GL_FRAMEBUFFER_INCOMPLETE_LAYER_COUNT_EXT 0x8DA9 +#define GL_FRAMEBUFFER_ATTACHMENT_LAYERED_EXT 0x8DA7 +#define GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT 0x8CD4 +#define GL_PROGRAM_POINT_SIZE_EXT 0x8642 +#endif + +#if GL_EXT_gpu_shader4 +#define GL_VERTEX_ATTRIB_ARRAY_INTEGER_EXT 0x88FD +#define GL_SAMPLER_1D_ARRAY_EXT 0x8DC0 +#define GL_SAMPLER_2D_ARRAY_EXT 0x8DC1 +#define GL_SAMPLER_BUFFER_EXT 0x8DC2 +#define GL_SAMPLER_1D_ARRAY_SHADOW_EXT 0x8DC3 +#define GL_SAMPLER_2D_ARRAY_SHADOW_EXT 0x8DC4 +#define GL_SAMPLER_CUBE_SHADOW_EXT 0x8DC5 +#define GL_UNSIGNED_INT_VEC2_EXT 0x8DC6 +#define GL_UNSIGNED_INT_VEC3_EXT 0x8DC7 +#define GL_UNSIGNED_INT_VEC4_EXT 0x8DC8 +#define GL_INT_SAMPLER_1D_EXT 0x8DC9 +#define GL_INT_SAMPLER_2D_EXT 0x8DCA +#define GL_INT_SAMPLER_3D_EXT 0x8DCB +#define GL_INT_SAMPLER_CUBE_EXT 0x8DCC +#define GL_INT_SAMPLER_2D_RECT_EXT 0x8DCD +#define GL_INT_SAMPLER_1D_ARRAY_EXT 0x8DCE +#define GL_INT_SAMPLER_2D_ARRAY_EXT 0x8DCF +#define GL_INT_SAMPLER_BUFFER_EXT 0x8DD0 +#define GL_UNSIGNED_INT_SAMPLER_1D_EXT 0x8DD1 +#define GL_UNSIGNED_INT_SAMPLER_2D_EXT 0x8DD2 +#define GL_UNSIGNED_INT_SAMPLER_3D_EXT 0x8DD3 +#define GL_UNSIGNED_INT_SAMPLER_CUBE_EXT 0x8DD4 +#define GL_UNSIGNED_INT_SAMPLER_2D_RECT_EXT 0x8DD5 +#define GL_UNSIGNED_INT_SAMPLER_1D_ARRAY_EXT 0x8DD6 +#define GL_UNSIGNED_INT_SAMPLER_2D_ARRAY_EXT 0x8DD7 +#define GL_UNSIGNED_INT_SAMPLER_BUFFER_EXT 0x8DD8 +#define GL_MIN_PROGRAM_TEXEL_OFFSET_EXT 0x8904 +#define GL_MAX_PROGRAM_TEXEL_OFFSET_EXT 0x8905 +#endif + +#if GL_EXT_histogram +#define GL_HISTOGRAM_EXT 0x8024 +#define GL_PROXY_HISTOGRAM_EXT 0x8025 +#define GL_HISTOGRAM_WIDTH_EXT 0x8026 +#define GL_HISTOGRAM_FORMAT_EXT 0x8027 +#define GL_HISTOGRAM_RED_SIZE_EXT 0x8028 +#define GL_HISTOGRAM_GREEN_SIZE_EXT 0x8029 +#define GL_HISTOGRAM_BLUE_SIZE_EXT 0x802A +#define GL_HISTOGRAM_ALPHA_SIZE_EXT 0x802B +#define GL_HISTOGRAM_LUMINANCE_SIZE_EXT 0x802C +#define GL_HISTOGRAM_SINK_EXT 0x802D +#define GL_MINMAX_EXT 0x802E +#define GL_MINMAX_FORMAT_EXT 0x802F +#define GL_MINMAX_SINK_EXT 0x8030 +#define GL_TABLE_TOO_LARGE_EXT 0x8031 +#endif + +#if GL_EXT_packed_depth_stencil +#define GL_DEPTH_STENCIL_EXT 0x84F9 +#define GL_UNSIGNED_INT_24_8_EXT 0x84FA +#define GL_DEPTH24_STENCIL8_EXT 0x88F0 +#define GL_TEXTURE_STENCIL_SIZE_EXT 0x88F1 +#endif + +#if GL_EXT_packed_float +#define GL_R11F_G11F_B10F_EXT 0x8C3A +#define GL_UNSIGNED_INT_10F_11F_11F_REV_EXT 0x8C3B +#define GL_RGBA_SIGNED_COMPONENTS_EXT 0x8C3C +#endif + +#if GL_EXT_packed_pixels +#define GL_UNSIGNED_BYTE_3_3_2_EXT 0x8032 +#define GL_UNSIGNED_SHORT_4_4_4_4_EXT 0x8033 +#define GL_UNSIGNED_SHORT_5_5_5_1_EXT 0x8034 +#define GL_UNSIGNED_INT_8_8_8_8_EXT 0x8035 +#define GL_UNSIGNED_INT_10_10_10_2_EXT 0x8036 +#endif + +#if GL_EXT_paletted_texture +#define GL_COLOR_INDEX1_EXT 0x80E2 +#define GL_COLOR_INDEX2_EXT 0x80E3 +#define GL_COLOR_INDEX4_EXT 0x80E4 +#define GL_COLOR_INDEX8_EXT 0x80E5 +#define GL_COLOR_INDEX12_EXT 0x80E6 +#define GL_COLOR_INDEX16_EXT 0x80E7 +#define GL_TEXTURE_INDEX_SIZE_EXT 0x80ED +#endif + +#if GL_EXT_polygon_offset +#define GL_POLYGON_OFFSET_EXT 0x8037 +#define GL_POLYGON_OFFSET_FACTOR_EXT 0x8038 +#define GL_POLYGON_OFFSET_BIAS_EXT 0x8039 +#endif + +#if GL_EXT_provoking_vertex +#define GL_FIRST_VERTEX_CONVENTION_EXT 0x8E4D +#define GL_LAST_VERTEX_CONVENTION_EXT 0x8E4E +#define GL_PROVOKING_VERTEX_EXT 0x8E4F +#define GL_QUADS_FOLLOW_PROVOKING_VERTEX_CONVENTION_EXT 0x8E4C +#endif + +#if GL_EXT_rescale_normal +#define GL_RESCALE_NORMAL_EXT 0x803A +#endif + +#if GL_EXT_secondary_color +#define GL_COLOR_SUM_EXT 0x8458 +#define GL_CURRENT_SECONDARY_COLOR_EXT 0x8459 +#define GL_SECONDARY_COLOR_ARRAY_SIZE_EXT 0x845A +#define GL_SECONDARY_COLOR_ARRAY_TYPE_EXT 0x845B +#define GL_SECONDARY_COLOR_ARRAY_STRIDE_EXT 0x845C +#define GL_SECONDARY_COLOR_ARRAY_POINTER_EXT 0x845D +#define GL_SECONDARY_COLOR_ARRAY_EXT 0x845E +#endif + +#if GL_EXT_separate_specular_color +#define GL_LIGHT_MODEL_COLOR_CONTROL_EXT 0x81F8 +#define GL_SINGLE_COLOR_EXT 0x81F9 +#define GL_SEPARATE_SPECULAR_COLOR_EXT 0x81FA +#endif + +#if GL_EXT_shared_texture_palette +#define GL_SHARED_TEXTURE_PALETTE_EXT 0x81FB +#endif + +#if GL_EXT_stencil_two_side +#define GL_STENCIL_TEST_TWO_SIDE_EXT 0x8910 +#define GL_ACTIVE_STENCIL_FACE_EXT 0x8911 +#endif + +#if GL_EXT_stencil_wrap +#define GL_INCR_WRAP_EXT 0x8507 +#define GL_DECR_WRAP_EXT 0x8508 +#endif + +#if GL_EXT_texture +#define GL_ALPHA4_EXT 0x803B +#define GL_ALPHA8_EXT 0x803C +#define GL_ALPHA12_EXT 0x803D +#define GL_ALPHA16_EXT 0x803E +#define GL_LUMINANCE4_EXT 0x803F +#define GL_LUMINANCE8_EXT 0x8040 +#define GL_LUMINANCE12_EXT 0x8041 +#define GL_LUMINANCE16_EXT 0x8042 +#define GL_LUMINANCE4_ALPHA4_EXT 0x8043 +#define GL_LUMINANCE6_ALPHA2_EXT 0x8044 +#define GL_LUMINANCE8_ALPHA8_EXT 0x8045 +#define GL_LUMINANCE12_ALPHA4_EXT 0x8046 +#define GL_LUMINANCE12_ALPHA12_EXT 0x8047 +#define GL_LUMINANCE16_ALPHA16_EXT 0x8048 +#define GL_INTENSITY_EXT 0x8049 +#define GL_INTENSITY4_EXT 0x804A +#define GL_INTENSITY8_EXT 0x804B +#define GL_INTENSITY12_EXT 0x804C +#define GL_INTENSITY16_EXT 0x804D +#define GL_RGB2_EXT 0x804E +#define GL_RGB4_EXT 0x804F +#define GL_RGB5_EXT 0x8050 +#define GL_RGB8_EXT 0x8051 +#define GL_RGB10_EXT 0x8052 +#define GL_RGB12_EXT 0x8053 +#define GL_RGB16_EXT 0x8054 +#define GL_RGBA2_EXT 0x8055 +#define GL_RGBA4_EXT 0x8056 +#define GL_RGB5_A1_EXT 0x8057 +#define GL_RGBA8_EXT 0x8058 +#define GL_RGB10_A2_EXT 0x8059 +#define GL_RGBA12_EXT 0x805A +#define GL_RGBA16_EXT 0x805B +#define GL_TEXTURE_RED_SIZE_EXT 0x805C +#define GL_TEXTURE_GREEN_SIZE_EXT 0x805D +#define GL_TEXTURE_BLUE_SIZE_EXT 0x805E +#define GL_TEXTURE_ALPHA_SIZE_EXT 0x805F +#define GL_TEXTURE_LUMINANCE_SIZE_EXT 0x8060 +#define GL_TEXTURE_INTENSITY_SIZE_EXT 0x8061 +#define GL_REPLACE_EXT 0x8062 +#define GL_PROXY_TEXTURE_1D_EXT 0x8063 +#define GL_PROXY_TEXTURE_2D_EXT 0x8064 +#define GL_TEXTURE_TOO_LARGE_EXT 0x8065 +#endif + +#if GL_EXT_texture3D +#define GL_PACK_SKIP_IMAGES_EXT 0x806B +#define GL_PACK_IMAGE_HEIGHT_EXT 0x806C +#define GL_UNPACK_SKIP_IMAGES_EXT 0x806D +#define GL_UNPACK_IMAGE_HEIGHT_EXT 0x806E +#define GL_TEXTURE_3D_EXT 0x806F +#define GL_PROXY_TEXTURE_3D_EXT 0x8070 +#define GL_TEXTURE_DEPTH_EXT 0x8071 +#define GL_TEXTURE_WRAP_R_EXT 0x8072 +#define GL_MAX_3D_TEXTURE_SIZE_EXT 0x8073 +#endif + +#if GL_EXT_texture_array +#define GL_TEXTURE_1D_ARRAY_EXT 0x8C18 +#define GL_PROXY_TEXTURE_1D_ARRAY_EXT 0x8C19 +#define GL_TEXTURE_2D_ARRAY_EXT 0x8C1A +#define GL_PROXY_TEXTURE_2D_ARRAY_EXT 0x8C1B +#define GL_TEXTURE_BINDING_1D_ARRAY_EXT 0x8C1C +#define GL_TEXTURE_BINDING_2D_ARRAY_EXT 0x8C1D +#define GL_MAX_ARRAY_TEXTURE_LAYERS_EXT 0x88FF +#define GL_COMPARE_REF_DEPTH_TO_TEXTURE_EXT 0x884E +/* reuse GL_FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER_EXT */ +/* reuse GL_SAMPLER_1D_ARRAY_EXT */ +/* reuse GL_SAMPLER_2D_ARRAY_EXT */ +/* reuse GL_SAMPLER_1D_ARRAY_SHADOW_EXT */ +/* reuse GL_SAMPLER_2D_ARRAY_SHADOW_EXT */ +#endif + +#if GL_EXT_texture_compression_s3tc +#define GL_COMPRESSED_RGB_S3TC_DXT1_EXT 0x83F0 +#define GL_COMPRESSED_RGBA_S3TC_DXT1_EXT 0x83F1 +#define GL_COMPRESSED_RGBA_S3TC_DXT3_EXT 0x83F2 +#define GL_COMPRESSED_RGBA_S3TC_DXT5_EXT 0x83F3 +#endif + +#if GL_EXT_texture_cube_map +#define GL_NORMAL_MAP_EXT 0x8511 +#define GL_REFLECTION_MAP_EXT 0x8512 +#define GL_TEXTURE_CUBE_MAP_EXT 0x8513 +#define GL_TEXTURE_BINDING_CUBE_MAP_EXT 0x8514 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_X_EXT 0x8515 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_X_EXT 0x8516 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Y_EXT 0x8517 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Y_EXT 0x8518 +#define GL_TEXTURE_CUBE_MAP_POSITIVE_Z_EXT 0x8519 +#define GL_TEXTURE_CUBE_MAP_NEGATIVE_Z_EXT 0x851A +#define GL_PROXY_TEXTURE_CUBE_MAP_EXT 0x851B +#define GL_MAX_CUBE_MAP_TEXTURE_SIZE_EXT 0x851C +#endif + +#if GL_EXT_texture_env_combine +#define GL_COMBINE_EXT 0x8570 +#define GL_COMBINE_RGB_EXT 0x8571 +#define GL_COMBINE_ALPHA_EXT 0x8572 +#define GL_RGB_SCALE_EXT 0x8573 +#define GL_ADD_SIGNED_EXT 0x8574 +#define GL_INTERPOLATE_EXT 0x8575 +#define GL_CONSTANT_EXT 0x8576 +#define GL_PRIMARY_COLOR_EXT 0x8577 +#define GL_PREVIOUS_EXT 0x8578 +#define GL_SOURCE0_RGB_EXT 0x8580 +#define GL_SOURCE1_RGB_EXT 0x8581 +#define GL_SOURCE2_RGB_EXT 0x8582 +#define GL_SOURCE0_ALPHA_EXT 0x8588 +#define GL_SOURCE1_ALPHA_EXT 0x8589 +#define GL_SOURCE2_ALPHA_EXT 0x858A +#define GL_OPERAND0_RGB_EXT 0x8590 +#define GL_OPERAND1_RGB_EXT 0x8591 +#define GL_OPERAND2_RGB_EXT 0x8592 +#define GL_OPERAND0_ALPHA_EXT 0x8598 +#define GL_OPERAND1_ALPHA_EXT 0x8599 +#define GL_OPERAND2_ALPHA_EXT 0x859A +#endif + +#if GL_EXT_texture_filter_anisotropic +#define GL_TEXTURE_MAX_ANISOTROPY_EXT 0x84FE +#define GL_MAX_TEXTURE_MAX_ANISOTROPY_EXT 0x84FF +#endif + +#if GL_EXT_texture_integer +#define GL_RGBA_INTEGER_MODE_EXT 0x8D9E +#define GL_RGBA32UI_EXT 0x8D70 +#define GL_RGB32UI_EXT 0x8D71 +#define GL_ALPHA32UI_EXT 0x8D72 +#define GL_INTENSITY32UI_EXT 0x8D73 +#define GL_LUMINANCE32UI_EXT 0x8D74 +#define GL_LUMINANCE_ALPHA32UI_EXT 0x8D75 +#define GL_RGBA16UI_EXT 0x8D76 +#define GL_RGB16UI_EXT 0x8D77 +#define GL_ALPHA16UI_EXT 0x8D78 +#define GL_INTENSITY16UI_EXT 0x8D79 +#define GL_LUMINANCE16UI_EXT 0x8D7A +#define GL_LUMINANCE_ALPHA16UI_EXT 0x8D7B +#define GL_RGBA8UI_EXT 0x8D7C +#define GL_RGB8UI_EXT 0x8D7D +#define GL_ALPHA8UI_EXT 0x8D7E +#define GL_INTENSITY8UI_EXT 0x8D7F +#define GL_LUMINANCE8UI_EXT 0x8D80 +#define GL_LUMINANCE_ALPHA8UI_EXT 0x8D81 +#define GL_RGBA32I_EXT 0x8D82 +#define GL_RGB32I_EXT 0x8D83 +#define GL_ALPHA32I_EXT 0x8D84 +#define GL_INTENSITY32I_EXT 0x8D85 +#define GL_LUMINANCE32I_EXT 0x8D86 +#define GL_LUMINANCE_ALPHA32I_EXT 0x8D87 +#define GL_RGBA16I_EXT 0x8D88 +#define GL_RGB16I_EXT 0x8D89 +#define GL_ALPHA16I_EXT 0x8D8A +#define GL_INTENSITY16I_EXT 0x8D8B +#define GL_LUMINANCE16I_EXT 0x8D8C +#define GL_LUMINANCE_ALPHA16I_EXT 0x8D8D +#define GL_RGBA8I_EXT 0x8D8E +#define GL_RGB8I_EXT 0x8D8F +#define GL_ALPHA8I_EXT 0x8D90 +#define GL_INTENSITY8I_EXT 0x8D91 +#define GL_LUMINANCE8I_EXT 0x8D92 +#define GL_LUMINANCE_ALPHA8I_EXT 0x8D93 +#define GL_RED_INTEGER_EXT 0x8D94 +#define GL_GREEN_INTEGER_EXT 0x8D95 +#define GL_BLUE_INTEGER_EXT 0x8D96 +#define GL_ALPHA_INTEGER_EXT 0x8D97 +#define GL_RGB_INTEGER_EXT 0x8D98 +#define GL_RGBA_INTEGER_EXT 0x8D99 +#define GL_BGR_INTEGER_EXT 0x8D9A +#define GL_BGRA_INTEGER_EXT 0x8D9B +#define GL_LUMINANCE_INTEGER_EXT 0x8D9C +#define GL_LUMINANCE_ALPHA_INTEGER_EXT 0x8D9D +#endif + +#if GL_EXT_texture_lod_bias +#define GL_MAX_TEXTURE_LOD_BIAS_EXT 0x84FD +#define GL_TEXTURE_FILTER_CONTROL_EXT 0x8500 +#define GL_TEXTURE_LOD_BIAS_EXT 0x8501 +#endif + +#if GL_EXT_texture_mirror_clamp +#define GL_MIRROR_CLAMP_EXT 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_EXT 0x8743 +#define GL_MIRROR_CLAMP_TO_BORDER_EXT 0x8912 +#endif + +#if GL_EXT_texture_object +#define GL_TEXTURE_PRIORITY_EXT 0x8066 +#define GL_TEXTURE_RESIDENT_EXT 0x8067 +#define GL_TEXTURE_1D_BINDING_EXT 0x8068 +#define GL_TEXTURE_2D_BINDING_EXT 0x8069 +#define GL_TEXTURE_3D_BINDING_EXT 0x806A +#endif + +#if GL_EXT_texture_rectangle +#define GL_TEXTURE_RECTANGLE_EXT 0x84F5 +#define GL_TEXTURE_BINDING_RECTANGLE_EXT 0x84F6 +#define GL_PROXY_TEXTURE_RECTANGLE_EXT 0x84F7 +#define GL_MAX_RECTANGLE_TEXTURE_SIZE_EXT 0x84F8 +#endif + +#if GL_EXT_texture_shared_exponent +#define GL_RGB9_E5_EXT 0x8C3D +#define GL_UNSIGNED_INT_5_9_9_9_REV_EXT 0x8C3E +#define GL_TEXTURE_SHARED_SIZE_EXT 0x8C3F +#endif + +#if GL_EXT_texture_sRGB +#define GL_SRGB_EXT 0x8C40 +#define GL_SRGB8_EXT 0x8C41 +#define GL_SRGB_ALPHA_EXT 0x8C42 +#define GL_SRGB8_ALPHA8_EXT 0x8C43 +#define GL_SLUMINANCE_ALPHA_EXT 0x8C44 +#define GL_SLUMINANCE8_ALPHA8_EXT 0x8C45 +#define GL_SLUMINANCE_EXT 0x8C46 +#define GL_SLUMINANCE8_EXT 0x8C47 +#define GL_COMPRESSED_SRGB_EXT 0x8C48 +#define GL_COMPRESSED_SRGB_ALPHA_EXT 0x8C49 +#define GL_COMPRESSED_SLUMINANCE_EXT 0x8C4A +#define GL_COMPRESSED_SLUMINANCE_ALPHA_EXT 0x8C4B +#define GL_COMPRESSED_SRGB_S3TC_DXT1_EXT 0x8C4C +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT 0x8C4D +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT 0x8C4E +#define GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT 0x8C4F +#endif + +#if GL_EXT_texture_sRGB_decode +#define GL_TEXTURE_SRGB_DECODE_EXT 0x8A48 +#define GL_DECODE_EXT 0x8A49 +#define GL_SKIP_DECODE_EXT 0x8A4A +#endif + +#if GL_EXT_timer_query +#define GL_TIME_ELAPSED_EXT 0x88BF +#endif + +#if GL_EXT_transform_feedback +#define GL_TRANSFORM_FEEDBACK_BUFFER_EXT 0x8C8E +#define GL_TRANSFORM_FEEDBACK_BUFFER_START_EXT 0x8C84 +#define GL_TRANSFORM_FEEDBACK_BUFFER_SIZE_EXT 0x8C85 +#define GL_TRANSFORM_FEEDBACK_BUFFER_BINDING_EXT 0x8C8F +#define GL_INTERLEAVED_ATTRIBS_EXT 0x8C8C +#define GL_SEPARATE_ATTRIBS_EXT 0x8C8D +#define GL_PRIMITIVES_GENERATED_EXT 0x8C87 +#define GL_TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN_EXT 0x8C88 +#define GL_RASTERIZER_DISCARD_EXT 0x8C89 +#define GL_MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS_EXT 0x8C8A +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS_EXT 0x8C8B +#define GL_MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS_EXT 0x8C80 +#define GL_TRANSFORM_FEEDBACK_VARYINGS_EXT 0x8C83 +#define GL_TRANSFORM_FEEDBACK_BUFFER_MODE_EXT 0x8C7F +#define GL_TRANSFORM_FEEDBACK_VARYING_MAX_LENGTH_EXT 0x8C76 +#endif + +#if GL_EXT_vertex_array +#define GL_VERTEX_ARRAY_EXT 0x8074 +#define GL_NORMAL_ARRAY_EXT 0x8075 +#define GL_COLOR_ARRAY_EXT 0x8076 +#define GL_INDEX_ARRAY_EXT 0x8077 +#define GL_TEXTURE_COORD_ARRAY_EXT 0x8078 +#define GL_EDGE_FLAG_ARRAY_EXT 0x8079 +#define GL_VERTEX_ARRAY_SIZE_EXT 0x807A +#define GL_VERTEX_ARRAY_TYPE_EXT 0x807B +#define GL_VERTEX_ARRAY_STRIDE_EXT 0x807C +#define GL_VERTEX_ARRAY_COUNT_EXT 0x807D +#define GL_NORMAL_ARRAY_TYPE_EXT 0x807E +#define GL_NORMAL_ARRAY_STRIDE_EXT 0x807F +#define GL_NORMAL_ARRAY_COUNT_EXT 0x8080 +#define GL_COLOR_ARRAY_SIZE_EXT 0x8081 +#define GL_COLOR_ARRAY_TYPE_EXT 0x8082 +#define GL_COLOR_ARRAY_STRIDE_EXT 0x8083 +#define GL_COLOR_ARRAY_COUNT_EXT 0x8084 +#define GL_INDEX_ARRAY_TYPE_EXT 0x8085 +#define GL_INDEX_ARRAY_STRIDE_EXT 0x8086 +#define GL_INDEX_ARRAY_COUNT_EXT 0x8087 +#define GL_TEXTURE_COORD_ARRAY_SIZE_EXT 0x8088 +#define GL_TEXTURE_COORD_ARRAY_TYPE_EXT 0x8089 +#define GL_TEXTURE_COORD_ARRAY_STRIDE_EXT 0x808A +#define GL_TEXTURE_COORD_ARRAY_COUNT_EXT 0x808B +#define GL_EDGE_FLAG_ARRAY_STRIDE_EXT 0x808C +#define GL_EDGE_FLAG_ARRAY_COUNT_EXT 0x808D +#define GL_VERTEX_ARRAY_POINTER_EXT 0x808E +#define GL_NORMAL_ARRAY_POINTER_EXT 0x808F +#define GL_COLOR_ARRAY_POINTER_EXT 0x8090 +#define GL_INDEX_ARRAY_POINTER_EXT 0x8091 +#define GL_TEXTURE_COORD_ARRAY_POINTER_EXT 0x8092 +#define GL_EDGE_FLAG_ARRAY_POINTER_EXT 0x8093 +#endif + +#if GL_APPLE_aux_depth_stencil +#define GL_AUX_DEPTH_STENCIL_APPLE 0x8A14 +#endif + +#if GL_APPLE_client_storage +#define GL_UNPACK_CLIENT_STORAGE_APPLE 0x85B2 +#endif + +#if GL_APPLE_element_array +#define GL_ELEMENT_ARRAY_APPLE 0x8A0C +#define GL_ELEMENT_ARRAY_TYPE_APPLE 0x8A0D +#define GL_ELEMENT_ARRAY_POINTER_APPLE 0x8A0E +#endif + +#if GL_APPLE_fence +#define GL_DRAW_PIXELS_APPLE 0x8A0A +#define GL_FENCE_APPLE 0x8A0B +#define GL_BUFFER_OBJECT_APPLE 0x85B3 +#endif + +#if GL_APPLE_float_pixels +#define GL_HALF_APPLE 0x140B +#define GL_COLOR_FLOAT_APPLE 0x8A0F +#define GL_RGBA_FLOAT32_APPLE 0x8814 +#define GL_RGB_FLOAT32_APPLE 0x8815 +#define GL_ALPHA_FLOAT32_APPLE 0x8816 +#define GL_INTENSITY_FLOAT32_APPLE 0x8817 +#define GL_LUMINANCE_FLOAT32_APPLE 0x8818 +#define GL_LUMINANCE_ALPHA_FLOAT32_APPLE 0x8819 +#define GL_RGBA_FLOAT16_APPLE 0x881A +#define GL_RGB_FLOAT16_APPLE 0x881B +#define GL_ALPHA_FLOAT16_APPLE 0x881C +#define GL_INTENSITY_FLOAT16_APPLE 0x881D +#define GL_LUMINANCE_FLOAT16_APPLE 0x881E +#define GL_LUMINANCE_ALPHA_FLOAT16_APPLE 0x881F +#endif + +#if GL_APPLE_flush_buffer_range +#define GL_BUFFER_SERIALIZED_MODIFY_APPLE 0x8A12 +#define GL_BUFFER_FLUSHING_UNMAP_APPLE 0x8A13 +#endif + +#if GL_APPLE_object_purgeable +#define GL_RELEASED_APPLE 0x8A19 +#define GL_VOLATILE_APPLE 0x8A1A +#define GL_RETAINED_APPLE 0x8A1B +#define GL_UNDEFINED_APPLE 0x8A1C +#define GL_PURGEABLE_APPLE 0x8A1D +#endif + +#if GL_APPLE_pixel_buffer +#define GL_MIN_PBUFFER_VIEWPORT_DIMS_APPLE 0x8A10 +#endif + +#if GL_APPLE_rgb_422 +#define GL_RGB_422_APPLE 0x8A1F +#endif + +#if GL_APPLE_row_bytes +#define GL_PACK_ROW_BYTES_APPLE 0x8A15 +#define GL_UNPACK_ROW_BYTES_APPLE 0x8A16 +#define GL_PACK_IMAGE_BYTES_APPLE 0x8A17 +#define GL_UNPACK_IMAGE_BYTES_APPLE 0x8A18 +#endif + +#if GL_APPLE_specular_vector +#define GL_LIGHT_MODEL_SPECULAR_VECTOR_APPLE 0x85B0 +#endif + +#if GL_APPLE_texture_range +#define GL_TEXTURE_RANGE_LENGTH_APPLE 0x85B7 +#define GL_TEXTURE_RANGE_POINTER_APPLE 0x85B8 +#define GL_TEXTURE_STORAGE_HINT_APPLE 0x85BC +#define GL_TEXTURE_MINIMIZE_STORAGE_APPLE 0x85B6 +#define GL_STORAGE_PRIVATE_APPLE 0x85BD +#define GL_STORAGE_CACHED_APPLE 0x85BE +#define GL_STORAGE_SHARED_APPLE 0x85BF +#endif + +#if GL_APPLE_transform_hint +#define GL_TRANSFORM_HINT_APPLE 0x85B1 +#endif + +#if GL_APPLE_vertex_array_object +#define GL_VERTEX_ARRAY_BINDING_APPLE 0x85B5 +#endif + +#if GL_APPLE_vertex_array_range +#define GL_VERTEX_ARRAY_RANGE_APPLE 0x851D +#define GL_VERTEX_ARRAY_RANGE_LENGTH_APPLE 0x851E +#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_APPLE 0x8520 +#define GL_VERTEX_ARRAY_RANGE_POINTER_APPLE 0x8521 +#define GL_VERTEX_ARRAY_STORAGE_HINT_APPLE 0x851F +#define GL_STORAGE_CLIENT_APPLE 0x85B4 +#define GL_STORAGE_PRIVATE_APPLE 0x85BD +#define GL_STORAGE_CACHED_APPLE 0x85BE +#define GL_STORAGE_SHARED_APPLE 0x85BF +#endif + +#if GL_APPLE_vertex_point_size +#define GL_VERTEX_POINT_SIZE_APPLE 0x8A26 +#define GL_CURRENT_POINT_SIZE_APPLE 0x8A27 +#define GL_POINT_SIZE_ARRAY_APPLE 0x8B9C +#define GL_POINT_SIZE_ARRAY_TYPE_APPLE 0x898A +#define GL_POINT_SIZE_ARRAY_STRIDE_APPLE 0x898B +#define GL_POINT_SIZE_ARRAY_POINTER_APPLE 0x898C +#define GL_POINT_SIZE_ARRAY_BUFFER_BINDING_APPLE 0x8B9F +#endif + +#if GL_APPLE_vertex_program_evaluators +#define GL_VERTEX_ATTRIB_MAP1_APPLE 0x8A00 +#define GL_VERTEX_ATTRIB_MAP2_APPLE 0x8A01 +#define GL_VERTEX_ATTRIB_MAP1_SIZE_APPLE 0x8A02 +#define GL_VERTEX_ATTRIB_MAP1_COEFF_APPLE 0x8A03 +#define GL_VERTEX_ATTRIB_MAP1_ORDER_APPLE 0x8A04 +#define GL_VERTEX_ATTRIB_MAP1_DOMAIN_APPLE 0x8A05 +#define GL_VERTEX_ATTRIB_MAP2_SIZE_APPLE 0x8A06 +#define GL_VERTEX_ATTRIB_MAP2_COEFF_APPLE 0x8A07 +#define GL_VERTEX_ATTRIB_MAP2_ORDER_APPLE 0x8A08 +#define GL_VERTEX_ATTRIB_MAP2_DOMAIN_APPLE 0x8A09 +#endif + +#if GL_APPLE_ycbcr_422 +#define GL_YCBCR_422_APPLE 0x85B9 +#endif + +#if GL_APPLE_ycbcr_422 || GL_APPLE_rgb_422 +#define GL_UNSIGNED_SHORT_8_8_APPLE 0x85BA +#define GL_UNSIGNED_SHORT_8_8_REV_APPLE 0x85BB +#endif + +#if GL_ATI_array_rev_comps_in_4_bytes +#define GL_ARRAY_REV_COMPS_IN_4_BYTES_ATI 0x897C +#endif + +#if GL_ATI_blend_equation_separate +#define GL_ALPHA_BLEND_EQUATION_ATI 0x883D +#endif + +#if GL_ATI_blend_weighted_minmax +#define GL_MIN_WEIGHTED_ATI 0x877D +#define GL_MAX_WEIGHTED_ATI 0x877E +#endif + +#if GL_ATI_pn_triangles +#define GL_PN_TRIANGLES_ATI 0x6090 +#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x6091 +#define GL_PN_TRIANGLES_POINT_MODE_ATI 0x6092 +#define GL_PN_TRIANGLES_NORMAL_MODE_ATI 0x6093 +#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATI 0x6094 +#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATI 0x6095 +#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATI 0x6096 +#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATI 0x6097 +#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATI 0x6098 +#endif + +#if GL_ATI_point_cull_mode +#define GL_POINT_CULL_MODE_ATI 0x60B3 +#define GL_POINT_CULL_CENTER_ATI 0x60B4 +#define GL_POINT_CULL_CLIP_ATI 0x60B5 +#endif + +#if GL_ATI_separate_stencil +#define GL_STENCIL_BACK_FUNC_ATI 0x8800 +#define GL_STENCIL_BACK_FAIL_ATI 0x8801 +#define GL_STENCIL_BACK_PASS_DEPTH_FAIL_ATI 0x8802 +#define GL_STENCIL_BACK_PASS_DEPTH_PASS_ATI 0x8803 +#endif + +#if GL_ATI_text_fragment_shader +#define GL_TEXT_FRAGMENT_SHADER_ATI 0x8200 +#endif + +#if GL_ATI_texture_compression_3dc +#define GL_COMPRESSED_LUMINANCE_ALPHA_3DC_ATI 0x8837 +#endif + +#if GL_ATI_texture_env_combine3 +#define GL_MODULATE_ADD_ATI 0x8744 +#define GL_MODULATE_SIGNED_ADD_ATI 0x8745 +#define GL_MODULATE_SUBTRACT_ATI 0x8746 +#endif + +#if GL_ATI_texture_float +#define GL_RGBA_FLOAT32_ATI 0x8814 +#define GL_RGB_FLOAT32_ATI 0x8815 +#define GL_ALPHA_FLOAT32_ATI 0x8816 +#define GL_INTENSITY_FLOAT32_ATI 0x8817 +#define GL_LUMINANCE_FLOAT32_ATI 0x8818 +#define GL_LUMINANCE_ALPHA_FLOAT32_ATI 0x8819 +#define GL_RGBA_FLOAT16_ATI 0x881A +#define GL_RGB_FLOAT16_ATI 0x881B +#define GL_ALPHA_FLOAT16_ATI 0x881C +#define GL_INTENSITY_FLOAT16_ATI 0x881D +#define GL_LUMINANCE_FLOAT16_ATI 0x881E +#define GL_LUMINANCE_ALPHA_FLOAT16_ATI 0x881F +#endif + +#if GL_ATI_texture_mirror_once +#define GL_MIRROR_CLAMP_ATI 0x8742 +#define GL_MIRROR_CLAMP_TO_EDGE_ATI 0x8743 +#endif + +#if GL_ATIX_pn_triangles +#define GL_PN_TRIANGLES_ATIX 0x6090 +#define GL_MAX_PN_TRIANGLES_TESSELATION_LEVEL_ATIX 0x6091 +#define GL_PN_TRIANGLES_POINT_MODE_ATIX 0x6092 +#define GL_PN_TRIANGLES_NORMAL_MODE_ATIX 0x6093 +#define GL_PN_TRIANGLES_TESSELATION_LEVEL_ATIX 0x6094 +#define GL_PN_TRIANGLES_POINT_MODE_LINEAR_ATIX 0x6095 +#define GL_PN_TRIANGLES_POINT_MODE_CUBIC_ATIX 0x6096 +#define GL_PN_TRIANGLES_NORMAL_MODE_LINEAR_ATIX 0x6097 +#define GL_PN_TRIANGLES_NORMAL_MODE_QUADRATIC_ATIX 0x6098 +#endif + +#if GL_HP_convolution_border_modes +#define GL_IGNORE_BORDER_HP 0x8150 +#define GL_CONSTANT_BORDER_HP 0x8151 +#define GL_REPLICATE_BORDER_HP 0x8153 +#define GL_CONVOLUTION_BORDER_COLOR_HP 0x8154 +#endif + +#if GL_IBM_rasterpos_clip +#define GL_RASTER_POSITION_UNCLIPPED_IBM 0x19262 +#endif + +#if GL_NV_conditional_render +#define GL_QUERY_WAIT_NV 0x8E13 +#define GL_QUERY_NO_WAIT_NV 0x8E14 +#define GL_QUERY_BY_REGION_WAIT_NV 0x8E15 +#define GL_QUERY_BY_REGION_NO_WAIT_NV 0x8E16 +#endif + +#if GL_NV_depth_clamp +#define GL_DEPTH_CLAMP_NV 0x864F +#endif + +#if GL_NV_fog_distance +#define GL_FOG_DISTANCE_MODE_NV 0x855A +#define GL_EYE_RADIAL_NV 0x855B +#define GL_EYE_PLANE_ABSOLUTE_NV 0x855C +/* reuse GL_EYE_PLANE */ +#endif + +#if GL_NV_fragment_program2 +#define GL_MAX_PROGRAM_IF_DEPTH_NV 0x88F6 +#define GL_MAX_PROGRAM_LOOP_DEPTH_NV 0x88F7 +#define GL_MAX_PROGRAM_LOOP_COUNT_NV 0x88F8 +#endif + +#if GL_NV_fragment_program2 || GL_NV_vertex_program2_option +#define GL_MAX_PROGRAM_EXEC_INSTRUCTIONS_NV 0x88F4 +#define GL_MAX_PROGRAM_CALL_DEPTH_NV 0x88F5 +#endif + +#if GL_NV_light_max_exponent +#define GL_MAX_SHININESS_NV 0x8504 +#define GL_MAX_SPOT_EXPONENT_NV 0x8505 +#endif + +#if GL_NV_multisample_filter_hint +#define GL_MULTISAMPLE_FILTER_HINT_NV 0x8534 +#endif + +#if GL_NV_point_sprite +#define GL_POINT_SPRITE_NV 0x8861 +#define GL_COORD_REPLACE_NV 0x8862 +#define GL_POINT_SPRITE_R_MODE_NV 0x8863 +#endif + +#if GL_NV_register_combiners +#define GL_REGISTER_COMBINERS_NV 0x8522 +#define GL_VARIABLE_A_NV 0x8523 +#define GL_VARIABLE_B_NV 0x8524 +#define GL_VARIABLE_C_NV 0x8525 +#define GL_VARIABLE_D_NV 0x8526 +#define GL_VARIABLE_E_NV 0x8527 +#define GL_VARIABLE_F_NV 0x8528 +#define GL_VARIABLE_G_NV 0x8529 +#define GL_CONSTANT_COLOR0_NV 0x852A +#define GL_CONSTANT_COLOR1_NV 0x852B +#define GL_PRIMARY_COLOR_NV 0x852C +#define GL_SECONDARY_COLOR_NV 0x852D +#define GL_SPARE0_NV 0x852E +#define GL_SPARE1_NV 0x852F +#define GL_DISCARD_NV 0x8530 +#define GL_E_TIMES_F_NV 0x8531 +#define GL_SPARE0_PLUS_SECONDARY_COLOR_NV 0x8532 +#define GL_UNSIGNED_IDENTITY_NV 0x8536 +#define GL_UNSIGNED_INVERT_NV 0x8537 +#define GL_EXPAND_NORMAL_NV 0x8538 +#define GL_EXPAND_NEGATE_NV 0x8539 +#define GL_HALF_BIAS_NORMAL_NV 0x853A +#define GL_HALF_BIAS_NEGATE_NV 0x853B +#define GL_SIGNED_IDENTITY_NV 0x853C +#define GL_SIGNED_NEGATE_NV 0x853D +#define GL_SCALE_BY_TWO_NV 0x853E +#define GL_SCALE_BY_FOUR_NV 0x853F +#define GL_SCALE_BY_ONE_HALF_NV 0x8540 +#define GL_BIAS_BY_NEGATIVE_ONE_HALF_NV 0x8541 +#define GL_COMBINER_INPUT_NV 0x8542 +#define GL_COMBINER_MAPPING_NV 0x8543 +#define GL_COMBINER_COMPONENT_USAGE_NV 0x8544 +#define GL_COMBINER_AB_DOT_PRODUCT_NV 0x8545 +#define GL_COMBINER_CD_DOT_PRODUCT_NV 0x8546 +#define GL_COMBINER_MUX_SUM_NV 0x8547 +#define GL_COMBINER_SCALE_NV 0x8548 +#define GL_COMBINER_BIAS_NV 0x8549 +#define GL_COMBINER_AB_OUTPUT_NV 0x854A +#define GL_COMBINER_CD_OUTPUT_NV 0x854B +#define GL_COMBINER_SUM_OUTPUT_NV 0x854C +#define GL_MAX_GENERAL_COMBINERS_NV 0x854D +#define GL_NUM_GENERAL_COMBINERS_NV 0x854E +#define GL_COLOR_SUM_CLAMP_NV 0x854F +#define GL_COMBINER0_NV 0x8550 +#define GL_COMBINER1_NV 0x8551 +#define GL_COMBINER2_NV 0x8552 +#define GL_COMBINER3_NV 0x8553 +#define GL_COMBINER4_NV 0x8554 +#define GL_COMBINER5_NV 0x8555 +#define GL_COMBINER6_NV 0x8556 +#define GL_COMBINER7_NV 0x8557 +/* reuse GL_TEXTURE0_ARB */ +/* reuse GL_TEXTURE1_ARB */ +/* reuse GL_ZERO */ +/* reuse GL_NONE */ +/* reuse GL_FOG */ +#endif + +#if GL_NV_register_combiners2 +#define GL_PER_STAGE_CONSTANTS_NV 0x8535 +#endif + +#if GL_NV_texgen_reflection +#define GL_NORMAL_MAP_NV 0x8511 +#define GL_REFLECTION_MAP_NV 0x8512 +#endif + +#if GL_NV_texture_shader +#define GL_RGBA_UNSIGNED_DOT_PRODUCT_MAPPING_NV 0x86D9 +#define GL_UNSIGNED_INT_S8_S8_8_8_NV 0x86DA +#define GL_UNSIGNED_INT_8_8_S8_S8_REV_NV 0x86DB +#define GL_DSDT_MAG_INTENSITY_NV 0x86DC +#define GL_TEXTURE_SHADER_NV 0x86DE +#define GL_SHADER_OPERATION_NV 0x86DF +#define GL_CULL_MODES_NV 0x86E0 +#define GL_OFFSET_TEXTURE_MATRIX_NV 0x86E1 +#define GL_OFFSET_TEXTURE_SCALE_NV 0x86E2 +#define GL_OFFSET_TEXTURE_BIAS_NV 0x86E3 +#define GL_OFFSET_TEXTURE_2D_MATRIX_NV GL_OFFSET_TEXTURE_MATRIX_NV +#define GL_OFFSET_TEXTURE_2D_SCALE_NV GL_OFFSET_TEXTURE_SCALE_NV +#define GL_OFFSET_TEXTURE_2D_BIAS_NV GL_OFFSET_TEXTURE_BIAS_NV +#define GL_PREVIOUS_TEXTURE_INPUT_NV 0x86E4 +#define GL_CONST_EYE_NV 0x86E5 +#define GL_SHADER_CONSISTENT_NV 0x86DD +#define GL_PASS_THROUGH_NV 0x86E6 +#define GL_CULL_FRAGMENT_NV 0x86E7 +#define GL_OFFSET_TEXTURE_2D_NV 0x86E8 +#define GL_OFFSET_TEXTURE_RECTANGLE_NV 0x864C +#define GL_OFFSET_TEXTURE_RECTANGLE_SCALE_NV 0x864D +#define GL_DEPENDENT_AR_TEXTURE_2D_NV 0x86E9 +#define GL_DEPENDENT_GB_TEXTURE_2D_NV 0x86EA +#define GL_DOT_PRODUCT_NV 0x86EC +#define GL_DOT_PRODUCT_DEPTH_REPLACE_NV 0x86ED +#define GL_DOT_PRODUCT_TEXTURE_2D_NV 0x86EE +#define GL_DOT_PRODUCT_TEXTURE_RECTANGLE_NV 0x864E +#define GL_DOT_PRODUCT_TEXTURE_CUBE_MAP_NV 0x86F0 +#define GL_DOT_PRODUCT_DIFFUSE_CUBE_MAP_NV 0x86F1 +#define GL_DOT_PRODUCT_REFLECT_CUBE_MAP_NV 0x86F2 +#define GL_DOT_PRODUCT_CONST_EYE_REFLECT_CUBE_MAP_NV 0x86F3 +#define GL_HILO_NV 0x86F4 +#define GL_DSDT_NV 0x86F5 +#define GL_DSDT_MAG_NV 0x86F6 +#define GL_DSDT_MAG_VIB_NV 0x86F7 +#define GL_HILO16_NV 0x86F8 +#define GL_SIGNED_HILO_NV 0x86F9 +#define GL_SIGNED_HILO16_NV 0x86FA +#define GL_SIGNED_RGBA_NV 0x86FB +#define GL_SIGNED_RGBA8_NV 0x86FC +#define GL_SIGNED_RGB_NV 0x86FE +#define GL_SIGNED_RGB8_NV 0x86FF +#define GL_SIGNED_LUMINANCE_NV 0x8701 +#define GL_SIGNED_LUMINANCE8_NV 0x8702 +#define GL_SIGNED_LUMINANCE_ALPHA_NV 0x8703 +#define GL_SIGNED_LUMINANCE8_ALPHA8_NV 0x8704 +#define GL_SIGNED_ALPHA_NV 0x8705 +#define GL_SIGNED_ALPHA8_NV 0x8706 +#define GL_SIGNED_INTENSITY_NV 0x8707 +#define GL_SIGNED_INTENSITY8_NV 0x8708 +#define GL_DSDT8_NV 0x8709 +#define GL_DSDT8_MAG8_NV 0x870A +#define GL_DSDT8_MAG8_INTENSITY8_NV 0x870B +#define GL_SIGNED_RGB_UNSIGNED_ALPHA_NV 0x870C +#define GL_SIGNED_RGB8_UNSIGNED_ALPHA8_NV 0x870D +#define GL_HI_SCALE_NV 0x870E +#define GL_LO_SCALE_NV 0x870F +#define GL_DS_SCALE_NV 0x8710 +#define GL_DT_SCALE_NV 0x8711 +#define GL_MAGNITUDE_SCALE_NV 0x8712 +#define GL_VIBRANCE_SCALE_NV 0x8713 +#define GL_HI_BIAS_NV 0x8714 +#define GL_LO_BIAS_NV 0x8715 +#define GL_DS_BIAS_NV 0x8716 +#define GL_DT_BIAS_NV 0x8717 +#define GL_MAGNITUDE_BIAS_NV 0x8718 +#define GL_VIBRANCE_BIAS_NV 0x8719 +#define GL_TEXTURE_BORDER_VALUES_NV 0x871A +#define GL_TEXTURE_HI_SIZE_NV 0x871B +#define GL_TEXTURE_LO_SIZE_NV 0x871C +#define GL_TEXTURE_DS_SIZE_NV 0x871D +#define GL_TEXTURE_DT_SIZE_NV 0x871E +#define GL_TEXTURE_MAG_SIZE_NV 0x871F +#endif + +#if GL_NV_texture_shader2 +#define GL_DOT_PRODUCT_TEXTURE_3D_NV 0x86EF +#endif + +#if GL_NV_texture_shader3 +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_NV 0x8850 +#define GL_OFFSET_PROJECTIVE_TEXTURE_2D_SCALE_NV 0x8851 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8852 +#define GL_OFFSET_PROJECTIVE_TEXTURE_RECTANGLE_SCALE_NV 0x8853 +#define GL_OFFSET_HILO_TEXTURE_2D_NV 0x8854 +#define GL_OFFSET_HILO_TEXTURE_RECTANGLE_NV 0x8855 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_2D_NV 0x8856 +#define GL_OFFSET_HILO_PROJECTIVE_TEXTURE_RECTANGLE_NV 0x8857 +#define GL_DEPENDENT_HILO_TEXTURE_2D_NV 0x8858 +#define GL_DEPENDENT_RGB_TEXTURE_3D_NV 0x8859 +#define GL_DEPENDENT_RGB_TEXTURE_CUBE_MAP_NV 0x885A +#define GL_DOT_PRODUCT_PASS_THROUGH_NV 0x885B +#define GL_DOT_PRODUCT_TEXTURE_1D_NV 0x885C +#define GL_DOT_PRODUCT_AFFINE_DEPTH_REPLACE_NV 0x885D +#define GL_HILO8_NV 0x885E +#define GL_SIGNED_HILO8_NV 0x885F +#define GL_FORCE_BLUE_TO_ONE_NV 0x8860 +#endif + +#if GL_NV_vertex_array_range +#define GL_VERTEX_ARRAY_RANGE_NV 0x851D +#define GL_VERTEX_ARRAY_RANGE_LENGTH_NV 0x851E +#define GL_VERTEX_ARRAY_RANGE_VALID_NV 0x851F +#define GL_MAX_VERTEX_ARRAY_RANGE_ELEMENT_NV 0x8520 +#define GL_VERTEX_ARRAY_RANGE_POINTER_NV 0x8521 +#endif + +#if GL_NV_vertex_array_range2 +#define GL_VERTEX_ARRAY_RANGE_WITHOUT_FLUSH_NV 0x8533 +#endif + +#if GL_NV_vertex_program +#define GL_VERTEX_PROGRAM_NV 0x8620 +#define GL_VERTEX_STATE_PROGRAM_NV 0x8621 +#define GL_ATTRIB_ARRAY_SIZE_NV 0x8623 +#define GL_ATTRIB_ARRAY_STRIDE_NV 0x8624 +#define GL_ATTRIB_ARRAY_TYPE_NV 0x8625 +#define GL_CURRENT_ATTRIB_NV 0x8626 +#define GL_PROGRAM_LENGTH_NV 0x8627 +#define GL_PROGRAM_STRING_NV 0x8628 +#define GL_MODELVIEW_PROJECTION_NV 0x8629 +#define GL_IDENTITY_NV 0x862A +#define GL_INVERSE_NV 0x862B +#define GL_TRANSPOSE_NV 0x862C +#define GL_INVERSE_TRANSPOSE_NV 0x862D +#define GL_MAX_TRACK_MATRIX_STACK_DEPTH_NV 0x862E +#define GL_MAX_TRACK_MATRICES_NV 0x862F +#define GL_MATRIX0_NV 0x8630 +#define GL_MATRIX1_NV 0x8631 +#define GL_MATRIX2_NV 0x8632 +#define GL_MATRIX3_NV 0x8633 +#define GL_MATRIX4_NV 0x8634 +#define GL_MATRIX5_NV 0x8635 +#define GL_MATRIX6_NV 0x8636 +#define GL_MATRIX7_NV 0x8637 +#define GL_CURRENT_MATRIX_STACK_DEPTH_NV 0x8640 +#define GL_CURRENT_MATRIX_NV 0x8641 +#define GL_VERTEX_PROGRAM_POINT_SIZE_NV 0x8642 +#define GL_VERTEX_PROGRAM_TWO_SIDE_NV 0x8643 +#define GL_PROGRAM_PARAMETER_NV 0x8644 +#define GL_ATTRIB_ARRAY_POINTER_NV 0x8645 +#define GL_PROGRAM_TARGET_NV 0x8646 +#define GL_PROGRAM_RESIDENT_NV 0x8647 +#define GL_TRACK_MATRIX_NV 0x8648 +#define GL_TRACK_MATRIX_TRANSFORM_NV 0x8649 +#define GL_VERTEX_PROGRAM_BINDING_NV 0x864A +#define GL_PROGRAM_ERROR_POSITION_NV 0x864B +#define GL_VERTEX_ATTRIB_ARRAY0_NV 0x8650 +#define GL_VERTEX_ATTRIB_ARRAY1_NV 0x8651 +#define GL_VERTEX_ATTRIB_ARRAY2_NV 0x8652 +#define GL_VERTEX_ATTRIB_ARRAY3_NV 0x8653 +#define GL_VERTEX_ATTRIB_ARRAY4_NV 0x8654 +#define GL_VERTEX_ATTRIB_ARRAY5_NV 0x8655 +#define GL_VERTEX_ATTRIB_ARRAY6_NV 0x8656 +#define GL_VERTEX_ATTRIB_ARRAY7_NV 0x8657 +#define GL_VERTEX_ATTRIB_ARRAY8_NV 0x8658 +#define GL_VERTEX_ATTRIB_ARRAY9_NV 0x8659 +#define GL_VERTEX_ATTRIB_ARRAY10_NV 0x865A +#define GL_VERTEX_ATTRIB_ARRAY11_NV 0x865B +#define GL_VERTEX_ATTRIB_ARRAY12_NV 0x865C +#define GL_VERTEX_ATTRIB_ARRAY13_NV 0x865D +#define GL_VERTEX_ATTRIB_ARRAY14_NV 0x865E +#define GL_VERTEX_ATTRIB_ARRAY15_NV 0x865F +#define GL_MAP1_VERTEX_ATTRIB0_4_NV 0x8660 +#define GL_MAP1_VERTEX_ATTRIB1_4_NV 0x8661 +#define GL_MAP1_VERTEX_ATTRIB2_4_NV 0x8662 +#define GL_MAP1_VERTEX_ATTRIB3_4_NV 0x8663 +#define GL_MAP1_VERTEX_ATTRIB4_4_NV 0x8664 +#define GL_MAP1_VERTEX_ATTRIB5_4_NV 0x8665 +#define GL_MAP1_VERTEX_ATTRIB6_4_NV 0x8666 +#define GL_MAP1_VERTEX_ATTRIB7_4_NV 0x8667 +#define GL_MAP1_VERTEX_ATTRIB8_4_NV 0x8668 +#define GL_MAP1_VERTEX_ATTRIB9_4_NV 0x8669 +#define GL_MAP1_VERTEX_ATTRIB10_4_NV 0x866A +#define GL_MAP1_VERTEX_ATTRIB11_4_NV 0x866B +#define GL_MAP1_VERTEX_ATTRIB12_4_NV 0x866C +#define GL_MAP1_VERTEX_ATTRIB13_4_NV 0x866D +#define GL_MAP1_VERTEX_ATTRIB14_4_NV 0x866E +#define GL_MAP1_VERTEX_ATTRIB15_4_NV 0x866F +#define GL_MAP2_VERTEX_ATTRIB0_4_NV 0x8670 +#define GL_MAP2_VERTEX_ATTRIB1_4_NV 0x8671 +#define GL_MAP2_VERTEX_ATTRIB2_4_NV 0x8672 +#define GL_MAP2_VERTEX_ATTRIB3_4_NV 0x8673 +#define GL_MAP2_VERTEX_ATTRIB4_4_NV 0x8674 +#define GL_MAP2_VERTEX_ATTRIB5_4_NV 0x8675 +#define GL_MAP2_VERTEX_ATTRIB6_4_NV 0x8676 +#define GL_MAP2_VERTEX_ATTRIB7_4_NV 0x8677 +#define GL_MAP2_VERTEX_ATTRIB8_4_NV 0x8678 +#define GL_MAP2_VERTEX_ATTRIB9_4_NV 0x8679 +#define GL_MAP2_VERTEX_ATTRIB10_4_NV 0x867A +#define GL_MAP2_VERTEX_ATTRIB11_4_NV 0x867B +#define GL_MAP2_VERTEX_ATTRIB12_4_NV 0x867C +#define GL_MAP2_VERTEX_ATTRIB13_4_NV 0x867D +#define GL_MAP2_VERTEX_ATTRIB14_4_NV 0x867E +#define GL_MAP2_VERTEX_ATTRIB15_4_NV 0x867F +#endif + +#if GL_SGI_color_matrix +#define GL_COLOR_MATRIX_SGI 0x80B1 +#define GL_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B2 +#define GL_MAX_COLOR_MATRIX_STACK_DEPTH_SGI 0x80B3 +#define GL_POST_COLOR_MATRIX_RED_SCALE_SGI 0x80B4 +#define GL_POST_COLOR_MATRIX_GREEN_SCALE_SGI 0x80B5 +#define GL_POST_COLOR_MATRIX_BLUE_SCALE_SGI 0x80B6 +#define GL_POST_COLOR_MATRIX_ALPHA_SCALE_SGI 0x80B7 +#define GL_POST_COLOR_MATRIX_RED_BIAS_SGI 0x80B8 +#define GL_POST_COLOR_MATRIX_GREEN_BIAS_SGI 0x80B9 +#define GL_POST_COLOR_MATRIX_BLUE_BIAS_SGI 0x80BA +#define GL_POST_COLOR_MATRIX_ALPHA_BIAS_SGI 0x80BB +#endif + +#if GL_SGI_color_table +#define GL_COLOR_TABLE_SGI 0x80D0 +#define GL_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D1 +#define GL_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D2 +#define GL_PROXY_COLOR_TABLE_SGI 0x80D3 +#define GL_PROXY_POST_CONVOLUTION_COLOR_TABLE_SGI 0x80D4 +#define GL_PROXY_POST_COLOR_MATRIX_COLOR_TABLE_SGI 0x80D5 +#define GL_COLOR_TABLE_SCALE_SGI 0x80D6 +#define GL_COLOR_TABLE_BIAS_SGI 0x80D7 +#define GL_COLOR_TABLE_FORMAT_SGI 0x80D8 +#define GL_COLOR_TABLE_WIDTH_SGI 0x80D9 +#define GL_COLOR_TABLE_RED_SIZE_SGI 0x80DA +#define GL_COLOR_TABLE_GREEN_SIZE_SGI 0x80DB +#define GL_COLOR_TABLE_BLUE_SIZE_SGI 0x80DC +#define GL_COLOR_TABLE_ALPHA_SIZE_SGI 0x80DD +#define GL_COLOR_TABLE_LUMINANCE_SIZE_SGI 0x80DE +#define GL_COLOR_TABLE_INTENSITY_SIZE_SGI 0x80DF +#endif + +#if GL_SGIS_generate_mipmap +#define GL_GENERATE_MIPMAP_SGIS 0x8191 +#define GL_GENERATE_MIPMAP_HINT_SGIS 0x8192 +#endif + +#if GL_SGIS_point_parameters +#define GL_POINT_SIZE_MIN_SGIS 0x8126 +#define GL_POINT_SIZE_MAX_SGIS 0x8127 +#define GL_POINT_FADE_THRESHOLD_SIZE_SGIS 0x8128 +#define GL_DISTANCE_ATTENUATION_SGIS 0x8129 +#endif + +#if GL_SGIS_texture_edge_clamp +#define GL_CLAMP_TO_EDGE_SGIS 0x812F +#endif + +#if GL_SGIS_texture_border_clamp +#define GL_CLAMP_TO_BORDER_SGIS 0x812D +#endif + +#if GL_SGIS_texture_lod +#define GL_TEXTURE_MIN_LOD_SGIS 0x813A +#define GL_TEXTURE_MAX_LOD_SGIS 0x813B +#define GL_TEXTURE_BASE_LEVEL_SGIS 0x813C +#define GL_TEXTURE_MAX_LEVEL_SGIS 0x813D +#endif + +#if GL_SGIX_depth_texture +#define GL_DEPTH_COMPONENT16_SGIX 0x81A5 +#define GL_DEPTH_COMPONENT24_SGIX 0x81A6 +#define GL_DEPTH_COMPONENT32_SGIX 0x81A7 +#endif + +/*************************************************************/ + +#if GL_ARB_color_buffer_float +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glClampColorARBProcPtr) (GLenum target, GLenum clamp); +#else +extern void glClampColorARB(GLenum target, GLenum clamp); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_draw_buffers +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glDrawBuffersARBProcPtr) (GLsizei n, const GLenum *bufs); +#else +extern void glDrawBuffersARB(GLsizei n, const GLenum *bufs); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_draw_elements_base_vertex +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glDrawElementsBaseVertexProcPtr) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint base_vertex); +typedef void (* glDrawRangeElementsBaseVertexProcPtr) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint base_vertex); +typedef void (* glDrawElementsInstancedBaseVertexProcPtr) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint base_vertex); +typedef void (* glMultiDrawElementsBaseVertexProcPtr) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount, const GLint *base_vertex); +#else +extern void glDrawElementsBaseVertex(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint base_vertex); +extern void glDrawRangeElementsBaseVertex(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint base_vertex); +extern void glDrawElementsInstancedBaseVertex(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount, GLint base_vertex); +extern void glMultiDrawElementsBaseVertex(GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount, const GLint *base_vertex); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_draw_instanced +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glDrawArraysInstancedARBProcPtr) (GLenum mode, GLint first, GLsizei count, GLsizei primcount); +typedef void (* glDrawElementsInstancedARBProcPtr) (GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); +#else +extern void glDrawArraysInstancedARB(GLenum mode, GLint first, GLsizei count, GLsizei primcount); +extern void glDrawElementsInstancedARB(GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei primcount); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_framebuffer_object +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef GLboolean (* glIsRenderbufferProcPtr) (GLuint renderbuffer); +typedef void (* glBindRenderbufferProcPtr) (GLenum target, GLuint renderbuffer); +typedef void (* glDeleteRenderbuffersProcPtr) (GLsizei n, const GLuint *renderbuffers); +typedef void (* glGenRenderbuffersProcPtr) (GLsizei n, GLuint *renderbuffers); +typedef void (* glRenderbufferStorageProcPtr) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (* glGetRenderbufferParameterivProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef GLboolean (* glIsFramebufferProcPtr) (GLuint framebuffer); +typedef void (* glBindFramebufferProcPtr) (GLenum target, GLuint framebuffer); +typedef void (* glDeleteFramebuffersProcPtr) (GLsizei n, const GLuint *framebuffers); +typedef void (* glGenFramebuffersProcPtr) (GLsizei n, GLuint *framebuffers); +typedef GLenum (* glCheckFramebufferStatusProcPtr) (GLenum target); +typedef void (* glFramebufferTexture1DProcPtr) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (* glFramebufferTexture2DProcPtr) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (* glFramebufferTexture3DProcPtr) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (* glFramebufferRenderbufferProcPtr) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (* glGetFramebufferAttachmentParameterivProcPtr) (GLenum target, GLenum attachment, GLenum pname, GLint *params); +typedef void (* glGenerateMipmapProcPtr) (GLenum target); +typedef void (* glBlitFramebufferProcPtr) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +typedef void (* glRenderbufferStorageMultisampleProcPtr) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (* glFramebufferTextureLayerProcPtr) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +#else +extern GLboolean glIsRenderbuffer(GLuint renderbuffer); +extern void glBindRenderbuffer(GLenum target, GLuint renderbuffer); +extern void glDeleteRenderbuffers(GLsizei n, const GLuint *renderbuffers); +extern void glGenRenderbuffers(GLsizei n, GLuint *renderbuffers); +extern void glRenderbufferStorage(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +extern void glGetRenderbufferParameteriv(GLenum target, GLenum pname, GLint *params); +extern GLboolean glIsFramebuffer(GLuint framebuffer); +extern void glBindFramebuffer(GLenum target, GLuint framebuffer); +extern void glDeleteFramebuffers(GLsizei n, const GLuint *framebuffers); +extern void glGenFramebuffers(GLsizei n, GLuint *framebuffers); +extern GLenum glCheckFramebufferStatus(GLenum target); +extern void glFramebufferTexture1D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +extern void glFramebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +extern void glFramebufferTexture3D(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +extern void glFramebufferRenderbuffer(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +extern void glGetFramebufferAttachmentParameteriv(GLenum target, GLenum attachment, GLenum pname, GLint *params); +extern void glGenerateMipmap(GLenum target); +extern void glBlitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +extern void glRenderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +extern void glFramebufferTextureLayer(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_instanced_arrays +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glVertexAttribDivisorARBProcPtr) (GLuint index, GLuint divisor); +#else +extern void glVertexAttribDivisorARB(GLuint index, GLuint divisor); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_multisample +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glSampleCoverageARBProcPtr) (GLclampf value, GLboolean invert); +#else +extern void glSampleCoverageARB(GLclampf value, GLboolean invert); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_multitexture +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glActiveTextureARBProcPtr) (GLenum texture); +typedef void (* glClientActiveTextureARBProcPtr) (GLenum texture); +typedef void (* glMultiTexCoord1dARBProcPtr) (GLenum target, GLdouble s); +typedef void (* glMultiTexCoord1dvARBProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord1fARBProcPtr) (GLenum target, GLfloat s); +typedef void (* glMultiTexCoord1fvARBProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord1iARBProcPtr) (GLenum target, GLint s); +typedef void (* glMultiTexCoord1ivARBProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord1sARBProcPtr) (GLenum target, GLshort s); +typedef void (* glMultiTexCoord1svARBProcPtr) (GLenum target, const GLshort *v); +typedef void (* glMultiTexCoord2dARBProcPtr) (GLenum target, GLdouble s, GLdouble t); +typedef void (* glMultiTexCoord2dvARBProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord2fARBProcPtr) (GLenum target, GLfloat s, GLfloat t); +typedef void (* glMultiTexCoord2fvARBProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord2iARBProcPtr) (GLenum target, GLint s, GLint t); +typedef void (* glMultiTexCoord2ivARBProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord2sARBProcPtr) (GLenum target, GLshort s, GLshort t); +typedef void (* glMultiTexCoord2svARBProcPtr) (GLenum target, const GLshort *v); +typedef void (* glMultiTexCoord3dARBProcPtr) (GLenum target, GLdouble s, GLdouble t, GLdouble r); +typedef void (* glMultiTexCoord3dvARBProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord3fARBProcPtr) (GLenum target, GLfloat s, GLfloat t, GLfloat r); +typedef void (* glMultiTexCoord3fvARBProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord3iARBProcPtr) (GLenum target, GLint s, GLint t, GLint r); +typedef void (* glMultiTexCoord3ivARBProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord3sARBProcPtr) (GLenum target, GLshort s, GLshort t, GLshort r); +typedef void (* glMultiTexCoord3svARBProcPtr) (GLenum target, const GLshort *v); +typedef void (* glMultiTexCoord4dARBProcPtr) (GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +typedef void (* glMultiTexCoord4dvARBProcPtr) (GLenum target, const GLdouble *v); +typedef void (* glMultiTexCoord4fARBProcPtr) (GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +typedef void (* glMultiTexCoord4fvARBProcPtr) (GLenum target, const GLfloat *v); +typedef void (* glMultiTexCoord4iARBProcPtr) (GLenum target, GLint s, GLint t, GLint r, GLint q); +typedef void (* glMultiTexCoord4ivARBProcPtr) (GLenum target, const GLint *v); +typedef void (* glMultiTexCoord4sARBProcPtr) (GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +typedef void (* glMultiTexCoord4svARBProcPtr) (GLenum target, const GLshort *v); +#else +extern void glActiveTextureARB(GLenum texture); +extern void glClientActiveTextureARB(GLenum texture); +extern void glMultiTexCoord1dARB(GLenum target, GLdouble s); +extern void glMultiTexCoord1dvARB(GLenum target, const GLdouble *v); +extern void glMultiTexCoord1fARB(GLenum target, GLfloat s); +extern void glMultiTexCoord1fvARB(GLenum target, const GLfloat *v); +extern void glMultiTexCoord1iARB(GLenum target, GLint s); +extern void glMultiTexCoord1ivARB(GLenum target, const GLint *v); +extern void glMultiTexCoord1sARB(GLenum target, GLshort s); +extern void glMultiTexCoord1svARB(GLenum target, const GLshort *v); +extern void glMultiTexCoord2dARB(GLenum target, GLdouble s, GLdouble t); +extern void glMultiTexCoord2dvARB(GLenum target, const GLdouble *v); +extern void glMultiTexCoord2fARB(GLenum target, GLfloat s, GLfloat t); +extern void glMultiTexCoord2fvARB(GLenum target, const GLfloat *v); +extern void glMultiTexCoord2iARB(GLenum target, GLint s, GLint t); +extern void glMultiTexCoord2ivARB(GLenum target, const GLint *v); +extern void glMultiTexCoord2sARB(GLenum target, GLshort s, GLshort t); +extern void glMultiTexCoord2svARB(GLenum target, const GLshort *v); +extern void glMultiTexCoord3dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r); +extern void glMultiTexCoord3dvARB(GLenum target, const GLdouble *v); +extern void glMultiTexCoord3fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r); +extern void glMultiTexCoord3fvARB(GLenum target, const GLfloat *v); +extern void glMultiTexCoord3iARB(GLenum target, GLint s, GLint t, GLint r); +extern void glMultiTexCoord3ivARB(GLenum target, const GLint *v); +extern void glMultiTexCoord3sARB(GLenum target, GLshort s, GLshort t, GLshort r); +extern void glMultiTexCoord3svARB(GLenum target, const GLshort *v); +extern void glMultiTexCoord4dARB(GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); +extern void glMultiTexCoord4dvARB(GLenum target, const GLdouble *v); +extern void glMultiTexCoord4fARB(GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); +extern void glMultiTexCoord4fvARB(GLenum target, const GLfloat *v); +extern void glMultiTexCoord4iARB(GLenum target, GLint s, GLint t, GLint r, GLint q); +extern void glMultiTexCoord4ivARB(GLenum target, const GLint *v); +extern void glMultiTexCoord4sARB(GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); +extern void glMultiTexCoord4svARB(GLenum target, const GLshort *v); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_occlusion_query +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glGenQueriesARBProcPtr) (GLsizei n, GLuint *ids); +typedef void (* glDeleteQueriesARBProcPtr) (GLsizei n, const GLuint *ids); +typedef GLboolean (* glIsQueryARBProcPtr) (GLuint id); +typedef void (* glBeginQueryARBProcPtr) (GLenum target, GLuint id); +typedef void (* glEndQueryARBProcPtr) (GLenum target); +typedef void (* glGetQueryivARBProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetQueryObjectivARBProcPtr) (GLuint id, GLenum pname, GLint *params); +typedef void (* glGetQueryObjectuivARBProcPtr) (GLuint id, GLenum pname, GLuint *params); +#else +extern void glGenQueriesARB(GLsizei n, GLuint *ids); +extern void glDeleteQueriesARB(GLsizei n, const GLuint *ids); +extern GLboolean glIsQueryARB(GLuint id); +extern void glBeginQueryARB(GLenum target, GLuint id); +extern void glEndQueryARB(GLenum target); +extern void glGetQueryivARB(GLenum target, GLenum pname, GLint *params); +extern void glGetQueryObjectivARB(GLuint id, GLenum pname, GLint *params); +extern void glGetQueryObjectuivARB(GLuint id, GLenum pname, GLuint *params); +#endif +#endif + +#if GL_ARB_point_parameters +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glPointParameterfARBProcPtr) (GLenum pname, GLfloat param); +typedef void (* glPointParameterfvARBProcPtr) (GLenum pname, const GLfloat *params); +#else +extern void glPointParameterfARB(GLenum pname, GLfloat param); +extern void glPointParameterfvARB(GLenum pname, const GLfloat *params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_provoking_vertex +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glProvokingVertexProcPtr) (GLenum mode); +#else +extern void glProvokingVertex(GLenum mode); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_shader_objects +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glDeleteObjectARBProcPtr) (GLhandleARB obj); +typedef GLhandleARB (* glGetHandleARBProcPtr) (GLenum pname); +typedef void (* glDetachObjectARBProcPtr) (GLhandleARB containerObj, GLhandleARB attachedObj); +typedef GLhandleARB (* glCreateShaderObjectARBProcPtr) (GLenum shaderType); +typedef void (* glShaderSourceARBProcPtr) (GLhandleARB shaderObj, GLsizei count, const GLcharARB* const *string, const GLint *length); +typedef void (* glCompileShaderARBProcPtr) (GLhandleARB shaderObj); +typedef GLhandleARB (* glCreateProgramObjectARBProcPtr) (void); +typedef void (* glAttachObjectARBProcPtr) (GLhandleARB containerObj, GLhandleARB obj); +typedef void (* glLinkProgramARBProcPtr) (GLhandleARB programObj); +typedef void (* glUseProgramObjectARBProcPtr) (GLhandleARB programObj); +typedef void (* glValidateProgramARBProcPtr) (GLhandleARB programObj); +typedef void (* glUniform1fARBProcPtr) (GLint location, GLfloat v0); +typedef void (* glUniform2fARBProcPtr) (GLint location, GLfloat v0, GLfloat v1); +typedef void (* glUniform3fARBProcPtr) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +typedef void (* glUniform4fARBProcPtr) (GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +typedef void (* glUniform1iARBProcPtr) (GLint location, GLint v0); +typedef void (* glUniform2iARBProcPtr) (GLint location, GLint v0, GLint v1); +typedef void (* glUniform3iARBProcPtr) (GLint location, GLint v0, GLint v1, GLint v2); +typedef void (* glUniform4iARBProcPtr) (GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +typedef void (* glUniform1fvARBProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform2fvARBProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform3fvARBProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform4fvARBProcPtr) (GLint location, GLsizei count, const GLfloat *value); +typedef void (* glUniform1ivARBProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniform2ivARBProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniform3ivARBProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniform4ivARBProcPtr) (GLint location, GLsizei count, const GLint *value); +typedef void (* glUniformMatrix2fvARBProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix3fvARBProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glUniformMatrix4fvARBProcPtr) (GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +typedef void (* glGetObjectParameterfvARBProcPtr) (GLhandleARB obj, GLenum pname, GLfloat *params); +typedef void (* glGetObjectParameterivARBProcPtr) (GLhandleARB obj, GLenum pname, GLint *params); +typedef void (* glGetInfoLogARBProcPtr) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); +typedef void (* glGetAttachedObjectsARBProcPtr) (GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); +typedef GLint (* glGetUniformLocationARBProcPtr) (GLhandleARB programObj, const GLcharARB *name); +typedef void (* glGetActiveUniformARBProcPtr) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +typedef void (* glGetUniformfvARBProcPtr) (GLhandleARB programObj, GLint location, GLfloat *params); +typedef void (* glGetUniformivARBProcPtr) (GLhandleARB programObj, GLint location, GLint *params); +typedef void (* glGetShaderSourceARBProcPtr) (GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); +#else +extern void glDeleteObjectARB(GLhandleARB obj); +extern GLhandleARB glGetHandleARB(GLenum pname); +extern void glDetachObjectARB(GLhandleARB containerObj, GLhandleARB attachedObj); +extern GLhandleARB glCreateShaderObjectARB(GLenum shaderType); +extern void glShaderSourceARB(GLhandleARB shaderObj, GLsizei count, const GLcharARB* const *string, const GLint *length); +extern void glCompileShaderARB(GLhandleARB shaderObj); +extern GLhandleARB glCreateProgramObjectARB(void); +extern void glAttachObjectARB(GLhandleARB containerObj, GLhandleARB obj); +extern void glLinkProgramARB(GLhandleARB programObj); +extern void glUseProgramObjectARB(GLhandleARB programObj); +extern void glValidateProgramARB(GLhandleARB programObj); +extern void glUniform1fARB(GLint location, GLfloat v0); +extern void glUniform2fARB(GLint location, GLfloat v0, GLfloat v1); +extern void glUniform3fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2); +extern void glUniform4fARB(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); +extern void glUniform1iARB(GLint location, GLint v0); +extern void glUniform2iARB(GLint location, GLint v0, GLint v1); +extern void glUniform3iARB(GLint location, GLint v0, GLint v1, GLint v2); +extern void glUniform4iARB(GLint location, GLint v0, GLint v1, GLint v2, GLint v3); +extern void glUniform1fvARB(GLint location, GLsizei count, const GLfloat *value); +extern void glUniform2fvARB(GLint location, GLsizei count, const GLfloat *value); +extern void glUniform3fvARB(GLint location, GLsizei count, const GLfloat *value); +extern void glUniform4fvARB(GLint location, GLsizei count, const GLfloat *value); +extern void glUniform1ivARB(GLint location, GLsizei count, const GLint *value); +extern void glUniform2ivARB(GLint location, GLsizei count, const GLint *value); +extern void glUniform3ivARB(GLint location, GLsizei count, const GLint *value); +extern void glUniform4ivARB(GLint location, GLsizei count, const GLint *value); +extern void glUniformMatrix2fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix3fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glUniformMatrix4fvARB(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); +extern void glGetObjectParameterfvARB(GLhandleARB obj, GLenum pname, GLfloat *params); +extern void glGetObjectParameterivARB(GLhandleARB obj, GLenum pname, GLint *params); +extern void glGetInfoLogARB(GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); +extern void glGetAttachedObjectsARB(GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); +extern GLint glGetUniformLocationARB(GLhandleARB programObj, const GLcharARB *name); +extern void glGetActiveUniformARB(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +extern void glGetUniformfvARB(GLhandleARB programObj, GLint location, GLfloat *params); +extern void glGetUniformivARB(GLhandleARB programObj, GLint location, GLint *params); +extern void glGetShaderSourceARB(GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_sync +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef GLsync (* glFenceSyncProcPtr) (GLenum condition, GLbitfield flags); +typedef GLboolean (* glIsSyncProcPtr) (GLsync sync); +typedef void (* glDeleteSyncProcPtr) (GLsync sync); +typedef GLenum (* glClientWaitSyncProcPtr) (GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (* glWaitSyncProcPtr)(GLsync sync, GLbitfield flags, GLuint64 timeout); +typedef void (* glGetInteger64vProcPtr) (GLenum pname, GLint64 *params); +typedef void (* glGetSyncivProcPtr) (GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +#else +extern GLsync glFenceSync(GLenum condition, GLbitfield flags); +extern GLboolean glIsSync(GLsync sync); +extern void glDeleteSync(GLsync sync); +extern GLenum glClientWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout); +extern void glWaitSync(GLsync sync, GLbitfield flags, GLuint64 timeout); +extern void glGetInteger64v(GLenum pname, GLint64 *params); +extern void glGetSynciv(GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_texture_compression +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glCompressedTexImage3DARBProcPtr) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexImage2DARBProcPtr) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexImage1DARBProcPtr) (GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexSubImage3DARBProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexSubImage2DARBProcPtr) (GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (* glCompressedTexSubImage1DARBProcPtr) (GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +typedef void (* glGetCompressedTexImageARBProcPtr) (GLenum target, GLint level, GLvoid *data); +#else +extern void glCompressedTexImage3DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexImage2DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexImage1DARB(GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexSubImage3DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexSubImage2DARB(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); +extern void glCompressedTexSubImage1DARB(GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); +extern void glGetCompressedTexImageARB(GLenum target, GLint level, GLvoid *data); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_transpose_matrix +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glLoadTransposeMatrixfARBProcPtr) (const GLfloat *m); +typedef void (* glLoadTransposeMatrixdARBProcPtr) (const GLdouble *m); +typedef void (* glMultTransposeMatrixfARBProcPtr) (const GLfloat *m); +typedef void (* glMultTransposeMatrixdARBProcPtr) (const GLdouble *m); +#else +extern void glLoadTransposeMatrixfARB(const GLfloat *m); +extern void glLoadTransposeMatrixdARB(const GLdouble *m); +extern void glMultTransposeMatrixfARB(const GLfloat *m); +extern void glMultTransposeMatrixdARB(const GLdouble *m); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_vertex_blend +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glWeightbvARBProcPtr) (GLint size, const GLbyte *weights); +typedef void (* glWeightsvARBProcPtr) (GLint size, const GLshort *weights); +typedef void (* glWeightivARBProcPtr) (GLint size, const GLint *weights); +typedef void (* glWeightfvARBProcPtr) (GLint size, const GLfloat *weights); +typedef void (* glWeightdvARBProcPtr) (GLint size, const GLdouble *weights); +typedef void (* glWeightubvARBProcPtr) (GLint size, const GLubyte *weights); +typedef void (* glWeightusvARBProcPtr) (GLint size, const GLushort *weights); +typedef void (* glWeightuivARBProcPtr) (GLint size, const GLuint *weights); +typedef void (* glWeightPointerARBProcPtr) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glVertexBlendARBProcPtr) (GLint count); +#else +extern void glWeightbvARB(GLint size, const GLbyte *weights); +extern void glWeightsvARB(GLint size, const GLshort *weights); +extern void glWeightivARB(GLint size, const GLint *weights); +extern void glWeightfvARB(GLint size, const GLfloat *weights); +extern void glWeightdvARB(GLint size, const GLdouble *weights); +extern void glWeightubvARB(GLint size, const GLubyte *weights); +extern void glWeightusvARB(GLint size, const GLushort *weights); +extern void glWeightuivARB(GLint size, const GLuint *weights); +extern void glWeightPointerARB(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glVertexBlendARB(GLint count); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_vertex_buffer_object +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBindBufferARBProcPtr) (GLenum target, GLuint buffer); +typedef void (* glDeleteBuffersARBProcPtr) (GLsizei n, const GLuint *buffers); +typedef void (* glGenBuffersARBProcPtr) (GLsizei n, GLuint *buffers); +typedef GLboolean (* glIsBufferARBProcPtr) (GLuint buffer); +typedef void (* glBufferDataARBProcPtr) (GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); +typedef void (* glBufferSubDataARBProcPtr) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); +typedef void (* glGetBufferSubDataARBProcPtr) (GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data); +typedef GLvoid *(* glMapBufferARBProcPtr) (GLenum target, GLenum access); +typedef GLboolean (* glUnmapBufferARBProcPtr) (GLenum target); +typedef void (* glGetBufferParameterivARBProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef void (* glGetBufferPointervARBProcPtr) (GLenum target, GLenum pname, GLvoid **params); +#else +extern void glBindBufferARB(GLenum target, GLuint buffer); +extern void glDeleteBuffersARB(GLsizei n, const GLuint *buffers); +extern void glGenBuffersARB(GLsizei n, GLuint *buffers); +extern GLboolean glIsBufferARB(GLuint buffer); +extern void glBufferDataARB(GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); +extern void glBufferSubDataARB(GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); +extern void glGetBufferSubDataARB(GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data); +extern GLvoid *glMapBufferARB(GLenum target, GLenum access); +extern GLboolean glUnmapBufferARB(GLenum target); +extern void glGetBufferParameterivARB(GLenum target, GLenum pname, GLint *params); +extern void glGetBufferPointervARB(GLenum target, GLenum pname, GLvoid **params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_vertex_program +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBindProgramARBProcPtr) (GLenum target, GLuint program); +typedef void (* glDeleteProgramsARBProcPtr) (GLsizei n, const GLuint *programs); +typedef void (* glGenProgramsARBProcPtr) (GLsizei n, GLuint *programs); +typedef GLboolean (* glIsProgramARBProcPtr) (GLuint program); +typedef void (* glProgramEnvParameter4dARBProcPtr) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glProgramEnvParameter4dvARBProcPtr) (GLenum target, GLuint index, const GLdouble *params); +typedef void (* glProgramEnvParameter4fARBProcPtr) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glProgramEnvParameter4fvARBProcPtr) (GLenum target, GLuint index, const GLfloat *params); +typedef void (* glProgramLocalParameter4dARBProcPtr) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glProgramLocalParameter4dvARBProcPtr) (GLenum target, GLuint index, const GLdouble *params); +typedef void (* glProgramLocalParameter4fARBProcPtr) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glProgramLocalParameter4fvARBProcPtr) (GLenum target, GLuint index, const GLfloat *params); +#if GL_EXT_gpu_program_parameters +typedef void (* glProgramEnvParameters4fvEXTProcPtr) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); +typedef void (* glProgramLocalParameters4fvEXTProcPtr) (GLenum target, GLuint index, GLsizei count, const GLfloat *params); +#endif +typedef void (* glGetProgramEnvParameterdvARBProcPtr) (GLenum target, GLuint index, GLdouble *params); +typedef void (* glGetProgramEnvParameterfvARBProcPtr) (GLenum target, GLuint index, GLfloat *params); +typedef void (* glGetProgramLocalParameterdvARBProcPtr) (GLenum target, GLuint index, GLdouble *params); +typedef void (* glGetProgramLocalParameterfvARBProcPtr) (GLenum target, GLuint index, GLfloat *params); +typedef void (* glProgramStringARBProcPtr) (GLenum target, GLenum format, GLsizei len, const GLvoid *string); +typedef void (* glGetProgramStringARBProcPtr) (GLenum target, GLenum pname, GLvoid *string); +typedef void (* glGetProgramivARBProcPtr) (GLenum target, GLenum pname, GLint *params); +#else +extern void glBindProgramARB(GLenum target, GLuint program); +extern void glDeleteProgramsARB(GLsizei n, const GLuint *programs); +extern void glGenProgramsARB(GLsizei n, GLuint *programs); +extern GLboolean glIsProgramARB(GLuint program); +extern void glProgramEnvParameter4dARB(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glProgramEnvParameter4dvARB(GLenum target, GLuint index, const GLdouble *params); +extern void glProgramEnvParameter4fARB(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glProgramEnvParameter4fvARB(GLenum target, GLuint index, const GLfloat *params); +extern void glProgramLocalParameter4dARB(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glProgramLocalParameter4dvARB(GLenum target, GLuint index, const GLdouble *params); +extern void glProgramLocalParameter4fARB(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glProgramLocalParameter4fvARB(GLenum target, GLuint index, const GLfloat *params); +extern void glGetProgramEnvParameterdvARB(GLenum target, GLuint index, GLdouble *params); +extern void glGetProgramEnvParameterfvARB(GLenum target, GLuint index, GLfloat *params); +#if GL_EXT_gpu_program_parameters +extern void glProgramEnvParameters4fvEXT(GLenum target, GLuint index, GLsizei count, const GLfloat *params); +extern void glProgramLocalParameters4fvEXT(GLenum target, GLuint index, GLsizei count, const GLfloat *params); +#endif +extern void glGetProgramLocalParameterdvARB(GLenum target, GLuint index, GLdouble *params); +extern void glGetProgramLocalParameterfvARB(GLenum target, GLuint index, GLfloat *params); +extern void glProgramStringARB(GLenum target, GLenum format, GLsizei len, const GLvoid *string); +extern void glGetProgramStringARB(GLenum target, GLenum pname, GLvoid *string); +extern void glGetProgramivARB(GLenum target, GLenum pname, GLint *params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_vertex_shader +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBindAttribLocationARBProcPtr) (GLhandleARB programObj, GLuint index, const GLcharARB *name); +typedef void (* glGetActiveAttribARBProcPtr) (GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +typedef GLint (* glGetAttribLocationARBProcPtr) (GLhandleARB programObj, const GLcharARB *name); +#else +extern void glBindAttribLocationARB(GLhandleARB programObj, GLuint index, const GLcharARB *name); +extern void glGetActiveAttribARB(GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); +extern GLint glGetAttribLocationARB(GLhandleARB programObj, const GLcharARB *name); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_vertex_shader || GL_ARB_vertex_program +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glVertexAttrib1dARBProcPtr) (GLuint index, GLdouble x); +typedef void (* glVertexAttrib1dvARBProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib1fARBProcPtr) (GLuint index, GLfloat x); +typedef void (* glVertexAttrib1fvARBProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib1sARBProcPtr) (GLuint index, GLshort x); +typedef void (* glVertexAttrib1svARBProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib2dARBProcPtr) (GLuint index, GLdouble x, GLdouble y); +typedef void (* glVertexAttrib2dvARBProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib2fARBProcPtr) (GLuint index, GLfloat x, GLfloat y); +typedef void (* glVertexAttrib2fvARBProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib2sARBProcPtr) (GLuint index, GLshort x, GLshort y); +typedef void (* glVertexAttrib2svARBProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib3dARBProcPtr) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (* glVertexAttrib3dvARBProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib3fARBProcPtr) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (* glVertexAttrib3fvARBProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib3sARBProcPtr) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (* glVertexAttrib3svARBProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib4NbvARBProcPtr) (GLuint index, const GLbyte *v); +typedef void (* glVertexAttrib4NivARBProcPtr) (GLuint index, const GLint *v); +typedef void (* glVertexAttrib4NsvARBProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib4NubARBProcPtr) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (* glVertexAttrib4NubvARBProcPtr) (GLuint index, const GLubyte *v); +typedef void (* glVertexAttrib4NuivARBProcPtr) (GLuint index, const GLuint *v); +typedef void (* glVertexAttrib4NusvARBProcPtr) (GLuint index, const GLushort *v); +typedef void (* glVertexAttrib4bvARBProcPtr) (GLuint index, const GLbyte *v); +typedef void (* glVertexAttrib4dARBProcPtr) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glVertexAttrib4dvARBProcPtr) (GLuint index, const GLdouble *v); +typedef void (* glVertexAttrib4fARBProcPtr) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glVertexAttrib4fvARBProcPtr) (GLuint index, const GLfloat *v); +typedef void (* glVertexAttrib4ivARBProcPtr) (GLuint index, const GLint *v); +typedef void (* glVertexAttrib4sARBProcPtr) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (* glVertexAttrib4svARBProcPtr) (GLuint index, const GLshort *v); +typedef void (* glVertexAttrib4ubvARBProcPtr) (GLuint index, const GLubyte *v); +typedef void (* glVertexAttrib4uivARBProcPtr) (GLuint index, const GLuint *v); +typedef void (* glVertexAttrib4usvARBProcPtr) (GLuint index, const GLushort *v); +typedef void (* glVertexAttribPointerARBProcPtr) (GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +typedef void (* glDisableVertexAttribArrayARBProcPtr) (GLuint index); +typedef void (* glEnableVertexAttribArrayARBProcPtr) (GLuint index); +typedef void (* glGetVertexAttribPointervARBProcPtr) (GLuint index, GLenum pname, GLvoid **pointer); +typedef void (* glGetVertexAttribdvARBProcPtr) (GLuint index, GLenum pname, GLdouble *params); +typedef void (* glGetVertexAttribfvARBProcPtr) (GLuint index, GLenum pname, GLfloat *params); +typedef void (* glGetVertexAttribivARBProcPtr) (GLuint index, GLenum pname, GLint *params); +#else +extern void glVertexAttrib1dARB(GLuint index, GLdouble x); +extern void glVertexAttrib1dvARB(GLuint index, const GLdouble *v); +extern void glVertexAttrib1fARB(GLuint index, GLfloat x); +extern void glVertexAttrib1fvARB(GLuint index, const GLfloat *v); +extern void glVertexAttrib1sARB(GLuint index, GLshort x); +extern void glVertexAttrib1svARB(GLuint index, const GLshort *v); +extern void glVertexAttrib2dARB(GLuint index, GLdouble x, GLdouble y); +extern void glVertexAttrib2dvARB(GLuint index, const GLdouble *v); +extern void glVertexAttrib2fARB(GLuint index, GLfloat x, GLfloat y); +extern void glVertexAttrib2fvARB(GLuint index, const GLfloat *v); +extern void glVertexAttrib2sARB(GLuint index, GLshort x, GLshort y); +extern void glVertexAttrib2svARB(GLuint index, const GLshort *v); +extern void glVertexAttrib3dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z); +extern void glVertexAttrib3dvARB(GLuint index, const GLdouble *v); +extern void glVertexAttrib3fARB(GLuint index, GLfloat x, GLfloat y, GLfloat z); +extern void glVertexAttrib3fvARB(GLuint index, const GLfloat *v); +extern void glVertexAttrib3sARB(GLuint index, GLshort x, GLshort y, GLshort z); +extern void glVertexAttrib3svARB(GLuint index, const GLshort *v); +extern void glVertexAttrib4NbvARB(GLuint index, const GLbyte *v); +extern void glVertexAttrib4NivARB(GLuint index, const GLint *v); +extern void glVertexAttrib4NsvARB(GLuint index, const GLshort *v); +extern void glVertexAttrib4NubARB(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +extern void glVertexAttrib4NubvARB(GLuint index, const GLubyte *v); +extern void glVertexAttrib4NuivARB(GLuint index, const GLuint *v); +extern void glVertexAttrib4NusvARB(GLuint index, const GLushort *v); +extern void glVertexAttrib4bvARB(GLuint index, const GLbyte *v); +extern void glVertexAttrib4dARB(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glVertexAttrib4dvARB(GLuint index, const GLdouble *v); +extern void glVertexAttrib4fARB(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glVertexAttrib4fvARB(GLuint index, const GLfloat *v); +extern void glVertexAttrib4ivARB(GLuint index, const GLint *v); +extern void glVertexAttrib4sARB(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +extern void glVertexAttrib4svARB(GLuint index, const GLshort *v); +extern void glVertexAttrib4ubvARB(GLuint index, const GLubyte *v); +extern void glVertexAttrib4uivARB(GLuint index, const GLuint *v); +extern void glVertexAttrib4usvARB(GLuint index, const GLushort *v); +extern void glVertexAttribPointerARB(GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); +extern void glDisableVertexAttribArrayARB(GLuint index); +extern void glEnableVertexAttribArrayARB(GLuint index); +extern void glGetVertexAttribPointervARB(GLuint index, GLenum pname, GLvoid **pointer); +extern void glGetVertexAttribdvARB(GLuint index, GLenum pname, GLdouble *params); +extern void glGetVertexAttribfvARB(GLuint index, GLenum pname, GLfloat *params); +extern void glGetVertexAttribivARB(GLuint index, GLenum pname, GLint *params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ARB_window_pos +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glWindowPos2dARBProcPtr) (GLdouble x, GLdouble y); +typedef void (* glWindowPos2dvARBProcPtr) (const GLdouble *p); +typedef void (* glWindowPos2fARBProcPtr) (GLfloat x, GLfloat y); +typedef void (* glWindowPos2fvARBProcPtr) (const GLfloat *p); +typedef void (* glWindowPos2iARBProcPtr) (GLint x, GLint y); +typedef void (* glWindowPos2ivARBProcPtr) (const GLint *p); +typedef void (* glWindowPos2sARBProcPtr) (GLshort x, GLshort y); +typedef void (* glWindowPos2svARBProcPtr) (const GLshort *p); +typedef void (* glWindowPos3dARBProcPtr) (GLdouble x, GLdouble y, GLdouble z); +typedef void (* glWindowPos3dvARBProcPtr) (const GLdouble *p); +typedef void (* glWindowPos3fARBProcPtr) (GLfloat x, GLfloat y, GLfloat z); +typedef void (* glWindowPos3fvARBProcPtr) (const GLfloat *p); +typedef void (* glWindowPos3iARBProcPtr) (GLint x, GLint y, GLint z); +typedef void (* glWindowPos3ivARBProcPtr) (const GLint *p); +typedef void (* glWindowPos3sARBProcPtr) (GLshort x, GLshort y, GLshort z); +typedef void (* glWindowPos3svARBProcPtr) (const GLshort *p); +#else +extern void glWindowPos2dARB(GLdouble x, GLdouble y); +extern void glWindowPos2dvARB(const GLdouble *p); +extern void glWindowPos2fARB(GLfloat x, GLfloat y); +extern void glWindowPos2fvARB(const GLfloat *p); +extern void glWindowPos2iARB(GLint x, GLint y); +extern void glWindowPos2ivARB(const GLint *p); +extern void glWindowPos2sARB(GLshort x, GLshort y); +extern void glWindowPos2svARB(const GLshort *p); +extern void glWindowPos3dARB(GLdouble x, GLdouble y, GLdouble z); +extern void glWindowPos3dvARB(const GLdouble *p); +extern void glWindowPos3fARB(GLfloat x, GLfloat y, GLfloat z); +extern void glWindowPos3fvARB(const GLfloat *p); +extern void glWindowPos3iARB(GLint x, GLint y, GLint z); +extern void glWindowPos3ivARB(const GLint *p); +extern void glWindowPos3sARB(GLshort x, GLshort y, GLshort z); +extern void glWindowPos3svARB(const GLshort *p); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_bindable_uniform +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (*glUniformBufferEXTProcPtr) (GLuint program, GLint location, GLuint buffer); +typedef GLint (*glGetUniformBufferSizeEXTProcPtr) (GLuint program, GLint location); +typedef GLintptr (*glGetUniformOffsetEXTProcPtr) (GLuint program, GLint location); +#else +extern void glUniformBufferEXT(GLuint program, GLint location, GLuint buffer); +extern GLint glGetUniformBufferSizeEXT(GLuint program, GLint location); +extern GLintptr glGetUniformOffsetEXT(GLuint program, GLint location); +#endif +#endif /* GL_EXT_bindable_uniform */ + +#if GL_EXT_blend_color +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBlendColorEXTProcPtr) (GLclampf red, GLclampf blue, GLclampf green, GLclampf alpha); +#else +extern void glBlendColorEXT(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_blend_equation_separate +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBlendEquationSeparateEXTProcPtr) (GLenum modeRGB, GLenum modeAlpha); +#else +extern void glBlendEquationSeparateEXT(GLenum modeRGB, GLenum modeAlpha); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_blend_func_separate +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBlendFuncSeparateEXTProcPtr) (GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#else +extern void glBlendFuncSeparateEXT(GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_blend_minmax +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBlendEquationEXTProcPtr) (GLenum mode); +#else +extern void glBlendEquationEXT(GLenum mode); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_color_subtable +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glColorSubTableEXTProcPtr) (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +typedef void (* glCopyColorSubTableEXTProcPtr) (GLenum, GLsizei, GLint, GLint, GLsizei); +#else +extern void glColorSubTableEXT(GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +extern void glCopyColorSubTableEXT(GLenum, GLsizei, GLint, GLint, GLsizei); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_compiled_vertex_array +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glLockArraysEXTProcPtr) (GLint first, GLsizei count); +typedef void (* glUnlockArraysEXTProcPtr) (void); +#else +extern void glLockArraysEXT(GLint first, GLsizei count); +extern void glUnlockArraysEXT(void); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_convolution +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glConvolutionFilter1DEXTProcPtr) (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +typedef void (* glConvolutionFilter2DEXTProcPtr) (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +typedef void (* glConvolutionParameterfEXTProcPtr) (GLenum, GLenum, GLfloat); +typedef void (* glConvolutionParameterfvEXTProcPtr) (GLenum, GLenum, const GLfloat *); +typedef void (* glConvolutionParameteriEXTProcPtr) (GLenum, GLenum, GLint); +typedef void (* glConvolutionParameterivEXTProcPtr) (GLenum, GLenum, const GLint *); +typedef void (* glCopyConvolutionFilter1DEXTProcPtr) (GLenum, GLenum, GLint, GLint, GLsizei); +typedef void (* glCopyConvolutionFilter2DEXTProcPtr) (GLenum, GLenum, GLint, GLint, GLsizei, GLsizei); +typedef void (* glGetConvolutionFilterEXTProcPtr) (GLenum, GLenum, GLenum, GLvoid *); +typedef void (* glGetConvolutionParameterfvEXTProcPtr) (GLenum, GLenum, GLfloat *); +typedef void (* glGetConvolutionParameterivEXTProcPtr) (GLenum, GLenum, GLint *); +typedef void (* glGetSeparableFilterEXTProcPtr) (GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *); +typedef void (* glSeparableFilter2DEXTProcPtr) (GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *); +#else +extern void glConvolutionFilter1DEXT(GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +extern void glConvolutionFilter2DEXT(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +extern void glConvolutionParameterfEXT(GLenum, GLenum, GLfloat); +extern void glConvolutionParameterfvEXT(GLenum, GLenum, const GLfloat *); +extern void glConvolutionParameteriEXT(GLenum, GLenum, GLint); +extern void glConvolutionParameterivEXT(GLenum, GLenum, const GLint *); +extern void glCopyConvolutionFilter1DEXT(GLenum, GLenum, GLint, GLint, GLsizei); +extern void glCopyConvolutionFilter2DEXT(GLenum, GLenum, GLint, GLint, GLsizei, GLsizei); +extern void glGetConvolutionFilterEXT(GLenum, GLenum, GLenum, GLvoid *); +extern void glGetConvolutionParameterfvEXT(GLenum, GLenum, GLfloat *); +extern void glGetConvolutionParameterivEXT(GLenum, GLenum, GLint *); +extern void glGetSeparableFilterEXT(GLenum, GLenum, GLenum, GLvoid *, GLvoid *, GLvoid *); +extern void glSeparableFilter2DEXT(GLenum, GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *, const GLvoid *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_copy_texture +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glCopyTexImage1DEXTProcPtr) (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint); +typedef void (* glCopyTexImage2DEXTProcPtr) (GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint); +typedef void (* glCopyTexSubImage1DEXTProcPtr) (GLenum, GLint, GLint, GLint, GLint, GLsizei); +typedef void (* glCopyTexSubImage2DEXTProcPtr) (GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +typedef void (* glCopyTexSubImage3DEXTProcPtr) (GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +#else +extern void glCopyTexImage1DEXT(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLint); +extern void glCopyTexImage2DEXT(GLenum, GLint, GLenum, GLint, GLint, GLsizei, GLsizei, GLint); +extern void glCopyTexSubImage1DEXT(GLenum, GLint, GLint, GLint, GLint, GLsizei); +extern void glCopyTexSubImage2DEXT(GLenum, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +extern void glCopyTexSubImage3DEXT(GLenum, GLint, GLint, GLint, GLint, GLint, GLint, GLsizei, GLsizei); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_debug_label +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glLabelObjectEXTProcPtr) (GLenum type, GLuint object, GLsizei length, const GLchar *label); +typedef void (* glGetObjectLabelEXTProcPtr) (GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#else +extern void glLabelObjectEXT(GLenum type, GLuint object, GLsizei length, const GLchar *label); +extern void glGetObjectLabelEXT(GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_debug_marker +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glInsertEventMarkerEXTProcPtr) (GLsizei length, const char *marker); +typedef void (* glPushGroupMarkerEXTProcPtr) (GLsizei length, const char *marker); +typedef void (* glPopGroupMarkerEXTProcPtr) (void); +#else +extern void glInsertEventMarkerEXT(GLsizei length, const char *marker); +extern void glPushGroupMarkerEXT(GLsizei length, const char *marker); +extern void glPopGroupMarkerEXT(void); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_depth_bounds_test +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glDepthBoundsEXTProcPtr) (GLclampd zmin, GLclampd zmax); +#else +extern void glDepthBoundsEXT(GLclampd zmin, GLclampd zmax); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_draw_buffers2 +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glColorMaskIndexedEXTProcPtr) (GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +typedef void (* glEnableIndexedEXTProcPtr) (GLenum target, GLuint index); +typedef void (* glDisableIndexedEXTProcPtr) (GLenum target, GLuint index); +typedef GLboolean (* glIsEnabledIndexedEXTProcPtr) (GLenum target, GLuint index); +#else +extern void glColorMaskIndexedEXT(GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); +extern void glEnableIndexedEXT(GLenum target, GLuint index); +extern void glDisableIndexedEXT(GLenum target, GLuint index); +extern GLboolean glIsEnabledIndexedEXT(GLenum target, GLuint index); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_draw_range_elements +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glDrawRangeElementsEXTProcPtr) (GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +#else +extern void glDrawRangeElementsEXT(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_fog_coord +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glFogCoordfEXTProcPtr) (GLfloat coord); +typedef void (* glFogCoordfvEXTProcPtr) (const GLfloat *coord); +typedef void (* glFogCoorddEXTProcPtr) (GLdouble coord); +typedef void (* glFogCoorddvEXTProcPtr) (const GLdouble *coord); +typedef void (* glFogCoordPointerEXTProcPtr) (GLenum type, GLsizei stride, const GLvoid *pointer); +#else +extern void glFogCoordfEXT(GLfloat coord); +extern void glFogCoordfvEXT(const GLfloat *coord); +extern void glFogCoorddEXT(GLdouble coord); +extern void glFogCoorddvEXT(const GLdouble *coord); +extern void glFogCoordPointerEXT(GLenum type, GLsizei stride, const GLvoid *pointer); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_framebuffer_blit +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBlitFramebufferEXTProcPtr) (GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#else +extern void glBlitFramebufferEXT(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_framebuffer_multisample +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glRenderbufferStorageMultisampleEXTProcPtr) (GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#else +extern void glRenderbufferStorageMultisampleEXT(GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_framebuffer_object +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef GLboolean (* glIsRenderbufferEXTProcPtr) (GLuint renderbuffer); +typedef void (* glBindRenderbufferEXTProcPtr) (GLenum target, GLuint renderbuffer); +typedef void (* glDeleteRenderbuffersEXTProcPtr) (GLsizei n, const GLuint *renderbuffers); +typedef void (* glGenRenderbuffersEXTProcPtr) (GLsizei n, GLuint *renderbuffers); +typedef void (* glRenderbufferStorageEXTProcPtr) (GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +typedef void (* glGetRenderbufferParameterivEXTProcPtr) (GLenum target, GLenum pname, GLint *params); +typedef GLboolean (* glIsFramebufferEXTProcPtr) (GLuint framebuffer); +typedef void (* glBindFramebufferEXTProcPtr) (GLenum target, GLuint framebuffer); +typedef void (* glDeleteFramebuffersEXTProcPtr) (GLsizei n, const GLuint *framebuffers); +typedef void (* glGenFramebuffersEXTProcPtr) (GLsizei n, GLuint *framebuffers); +typedef GLenum (* glCheckFramebufferStatusEXTProcPtr) (GLenum target); +typedef void (* glFramebufferTexture1DEXTProcPtr) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (* glFramebufferTexture2DEXTProcPtr) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +typedef void (* glFramebufferTexture3DEXTProcPtr) (GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +typedef void (* glFramebufferRenderbufferEXTProcPtr) (GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +typedef void (* glGetFramebufferAttachmentParameterivEXTProcPtr) (GLenum target, GLenum attachment, GLenum pname, GLint *params); +typedef void (* glGenerateMipmapEXTProcPtr) (GLenum target); +#else +extern GLboolean glIsRenderbufferEXT(GLuint renderbuffer); +extern void glBindRenderbufferEXT(GLenum target, GLuint renderbuffer); +extern void glDeleteRenderbuffersEXT(GLsizei n, const GLuint *renderbuffers); +extern void glGenRenderbuffersEXT(GLsizei n, GLuint *renderbuffers); +extern void glRenderbufferStorageEXT(GLenum target, GLenum internalformat, GLsizei width, GLsizei height); +extern void glGetRenderbufferParameterivEXT(GLenum target, GLenum pname, GLint *params); +extern GLboolean glIsFramebufferEXT(GLuint framebuffer); +extern void glBindFramebufferEXT(GLenum target, GLuint framebuffer); +extern void glDeleteFramebuffersEXT(GLsizei n, const GLuint *framebuffers); +extern void glGenFramebuffersEXT(GLsizei n, GLuint *framebuffers); +extern GLenum glCheckFramebufferStatusEXT(GLenum target); +extern void glFramebufferTexture1DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +extern void glFramebufferTexture2DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); +extern void glFramebufferTexture3DEXT(GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); +extern void glFramebufferRenderbufferEXT(GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); +extern void glGetFramebufferAttachmentParameterivEXT(GLenum target, GLenum attachment, GLenum pname, GLint *params); +extern void glGenerateMipmapEXT(GLenum target); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_geometry_shader4 +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glProgramParameteriEXTProcPtr) (GLuint program, GLenum pname, GLint value); +typedef void (* glFramebufferTextureEXTProcPtr) (GLenum target, GLenum attachment, GLuint texture, GLint level); +typedef void (* glFramebufferTextureFaceEXTProcPtr) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +#else +extern void glProgramParameteriEXT(GLuint program, GLenum pname, GLint value); +extern void glFramebufferTextureEXT(GLenum target, GLenum attachment, GLuint texture, GLint level); +extern void glFramebufferTextureFaceEXT(GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_geometry_shader4 || GL_EXT_texture_array +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glFramebufferTextureLayerEXTProcPtr) (GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +#else +extern void glFramebufferTextureLayerEXT(GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); +#endif +#endif + +#if GL_EXT_gpu_shader4 +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (*glVertexAttribI1iEXTProcPtr) (GLuint index, GLint x); +typedef void (*glVertexAttribI2iEXTProcPtr) (GLuint index, GLint x, GLint y); +typedef void (*glVertexAttribI3iEXTProcPtr) (GLuint index, GLint x, GLint y, GLint z); +typedef void (*glVertexAttribI4iEXTProcPtr) (GLuint index, GLint x, GLint y, GLint z, GLint w); +typedef void (*glVertexAttribI1uiEXTProcPtr) (GLuint index, GLuint x); +typedef void (*glVertexAttribI2uiEXTProcPtr) (GLuint index, GLuint x, GLuint y); +typedef void (*glVertexAttribI3uiEXTProcPtr) (GLuint index, GLuint x, GLuint y, GLuint z); +typedef void (*glVertexAttribI4uiEXTProcPtr) (GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +typedef void (*glVertexAttribI1ivEXTProcPtr) (GLuint index, const GLint *v); +typedef void (*glVertexAttribI2ivEXTProcPtr) (GLuint index, const GLint *v); +typedef void (*glVertexAttribI3ivEXTProcPtr) (GLuint index, const GLint *v); +typedef void (*glVertexAttribI4ivEXTProcPtr) (GLuint index, const GLint *v); +typedef void (*glVertexAttribI1uivEXTProcPtr) (GLuint index, const GLuint *v); +typedef void (*glVertexAttribI2uivEXTProcPtr) (GLuint index, const GLuint *v); +typedef void (*glVertexAttribI3uivEXTProcPtr) (GLuint index, const GLuint *v); +typedef void (*glVertexAttribI4uivEXTProcPtr) (GLuint index, const GLuint *v); +typedef void (*glVertexAttribI4bvEXTProcPtr) (GLuint index, const GLbyte *v); +typedef void (*glVertexAttribI4svEXTProcPtr) (GLuint index, const GLshort *v); +typedef void (*glVertexAttribI4ubvEXTProcPtr) (GLuint index, const GLubyte *v); +typedef void (*glVertexAttribI4usvEXTProcPtr) (GLuint index, const GLushort *v); +typedef void (*glVertexAttribIPointerEXTProcPtr) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (*glGetVertexAttribIivEXTProcPtr) (GLuint index, GLenum pname, GLint *params); +typedef void (*glGetVertexAttribIuivEXTProcPtr) (GLuint index, GLenum pname, GLuint *params); +typedef void (*glUniform1uiEXTProcPtr) (GLint location, GLuint v0); +typedef void (*glUniform2uiEXTProcPtr) (GLint location, GLuint v0, GLuint v1); +typedef void (*glUniform3uiEXTProcPtr) (GLint location, GLuint v0, GLuint v1, GLuint v2); +typedef void (*glUniform4uiEXTProcPtr) (GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +typedef void (*glUniform1uivEXTProcPtr) (GLint location, GLsizei count, const GLuint *value); +typedef void (*glUniform2uivEXTProcPtr) (GLint location, GLsizei count, const GLuint *value); +typedef void (*glUniform3uivEXTProcPtr) (GLint location, GLsizei count, const GLuint *value); +typedef void (*glUniform4uivEXTProcPtr) (GLint location, GLsizei count, const GLuint *value); +typedef void (*glGetUniformuivEXTProcPtr) (GLuint program, GLint location, GLuint *params); +typedef void (*glBindFragDataLocationEXTProcPtr) (GLuint program, GLuint colorNumber, const GLchar *name); +typedef GLint (*glGetFragDataLocationEXTProcPtr) (GLuint program, const GLchar *name); +#else +extern void glVertexAttribI1iEXT(GLuint index, GLint x); +extern void glVertexAttribI2iEXT(GLuint index, GLint x, GLint y); +extern void glVertexAttribI3iEXT(GLuint index, GLint x, GLint y, GLint z); +extern void glVertexAttribI4iEXT(GLuint index, GLint x, GLint y, GLint z, GLint w); +extern void glVertexAttribI1uiEXT(GLuint index, GLuint x); +extern void glVertexAttribI2uiEXT(GLuint index, GLuint x, GLuint y); +extern void glVertexAttribI3uiEXT(GLuint index, GLuint x, GLuint y, GLuint z); +extern void glVertexAttribI4uiEXT(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); +extern void glVertexAttribI1ivEXT(GLuint index, const GLint *v); +extern void glVertexAttribI2ivEXT(GLuint index, const GLint *v); +extern void glVertexAttribI3ivEXT(GLuint index, const GLint *v); +extern void glVertexAttribI4ivEXT(GLuint index, const GLint *v); +extern void glVertexAttribI1uivEXT(GLuint index, const GLuint *v); +extern void glVertexAttribI2uivEXT(GLuint index, const GLuint *v); +extern void glVertexAttribI3uivEXT(GLuint index, const GLuint *v); +extern void glVertexAttribI4uivEXT(GLuint index, const GLuint *v); +extern void glVertexAttribI4bvEXT(GLuint index, const GLbyte *v); +extern void glVertexAttribI4svEXT(GLuint index, const GLshort *v); +extern void glVertexAttribI4ubvEXT(GLuint index, const GLubyte *v); +extern void glVertexAttribI4usvEXT(GLuint index, const GLushort *v); +extern void glVertexAttribIPointerEXT(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glGetVertexAttribIivEXT(GLuint index, GLenum pname, GLint *params); +extern void glGetVertexAttribIuivEXT(GLuint index, GLenum pname, GLuint *params); +extern void glUniform1uiEXT(GLint location, GLuint v0); +extern void glUniform2uiEXT(GLint location, GLuint v0, GLuint v1); +extern void glUniform3uiEXT(GLint location, GLuint v0, GLuint v1, GLuint v2); +extern void glUniform4uiEXT(GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); +extern void glUniform1uivEXT(GLint location, GLsizei count, const GLuint *value); +extern void glUniform2uivEXT(GLint location, GLsizei count, const GLuint *value); +extern void glUniform3uivEXT(GLint location, GLsizei count, const GLuint *value); +extern void glUniform4uivEXT(GLint location, GLsizei count, const GLuint *value); +extern void glGetUniformuivEXT(GLuint program, GLint location, GLuint *params); +extern void glBindFragDataLocationEXT(GLuint program, GLuint colorNumber, const GLchar *name); +extern GLint glGetFragDataLocationEXT(GLuint program, const GLchar *name); +#endif +#endif /* GL_EXT_gpu_shader4 */ + +#if GL_EXT_histogram +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glGetHistogramEXTProcPtr) (GLenum, GLboolean, GLenum, GLenum, GLvoid *); +typedef void (* glGetHistogramParameterfvEXTProcPtr) (GLenum, GLenum, GLfloat *); +typedef void (* glGetHistogramParameterivEXTProcPtr) (GLenum, GLenum, GLint *); +typedef void (* glGetMinmaxEXTProcPtr) (GLenum, GLboolean, GLenum, GLenum, GLvoid *); +typedef void (* glGetMinmaxParameterfvEXTProcPtr) (GLenum, GLenum, GLfloat *); +typedef void (* glGetMinmaxParameterivEXTProcPtr) (GLenum, GLenum, GLint *); +typedef void (* glHistogramEXTProcPtr) (GLenum, GLsizei, GLenum, GLboolean); +typedef void (* glMinmaxEXTProcPtr) (GLenum, GLenum, GLboolean); +typedef void (* glResetHistogramEXTProcPtr) (GLenum); +typedef void (* glResetMinmaxEXTProcPtr) (GLenum); +#else +extern void glGetHistogramEXT(GLenum, GLboolean, GLenum, GLenum, GLvoid *); +extern void glGetHistogramParameterfvEXT(GLenum, GLenum, GLfloat *); +extern void glGetHistogramParameterivEXT(GLenum, GLenum, GLint *); +extern void glGetMinmaxEXT(GLenum, GLboolean, GLenum, GLenum, GLvoid *); +extern void glGetMinmaxParameterfvEXT(GLenum, GLenum, GLfloat *); +extern void glGetMinmaxParameterivEXT(GLenum, GLenum, GLint *); +extern void glHistogramEXT(GLenum, GLsizei, GLenum, GLboolean); +extern void glMinmaxEXT(GLenum, GLenum, GLboolean); +extern void glResetHistogramEXT(GLenum); +extern void glResetMinmaxEXT(GLenum); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_multi_draw_arrays +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glMultiDrawArraysEXTProcPtr) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +typedef void (* glMultiDrawElementsEXTProcPtr) (GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount); +#else +extern void glMultiDrawArraysEXT(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +extern void glMultiDrawElementsEXT(GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei primcount); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_paletted_texture +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glColorTableEXTProcPtr) (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +typedef void (* glColorSubTableEXTProcPtr) (GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +typedef void (* glGetColorTableEXTProcPtr) (GLenum, GLenum, GLenum, GLvoid *); +typedef void (* glGetColorTableParameterivEXTProcPtr) (GLenum, GLenum, GLint *); +typedef void (* glGetColorTableParameterfvEXTProcPtr) (GLenum, GLenum, GLfloat *); +#else +extern void glColorTableEXT(GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +extern void glColorSubTableEXT(GLenum, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +extern void glGetColorTableEXT(GLenum, GLenum, GLenum, GLvoid *); +extern void glGetColorTableParameterivEXT(GLenum, GLenum, GLint *); +extern void glGetColorTableParameterfvEXT(GLenum, GLenum, GLfloat *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_polygon_offset +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glPolygonOffsetEXTProcPtr) (GLfloat factor, GLfloat bias); +#else +extern void glPolygonOffsetEXT(GLfloat factor, GLfloat bias); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_provoking_vertex +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glProvokingVertexEXTProcPtr) (GLenum mode); +#else +extern void glProvokingVertexEXT(GLenum mode); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_secondary_color +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glSecondaryColor3bEXTProcPtr) (GLbyte red, GLbyte green, GLbyte blue); +typedef void (* glSecondaryColor3bvEXTProcPtr) (const GLbyte *v); +typedef void (* glSecondaryColor3dEXTProcPtr) (GLdouble red, GLdouble green, GLdouble blue); +typedef void (* glSecondaryColor3dvEXTProcPtr) (const GLdouble *v); +typedef void (* glSecondaryColor3fEXTProcPtr) (GLfloat red, GLfloat green, GLfloat blue); +typedef void (* glSecondaryColor3fvEXTProcPtr) (const GLfloat *v); +typedef void (* glSecondaryColor3iEXTProcPtr) (GLint red, GLint green, GLint blue); +typedef void (* glSecondaryColor3ivEXTProcPtr) (const GLint *v); +typedef void (* glSecondaryColor3sEXTProcPtr) (GLshort red, GLshort green, GLshort blue); +typedef void (* glSecondaryColor3svEXTProcPtr) (const GLshort *v); +typedef void (* glSecondaryColor3ubEXTProcPtr) (GLubyte red, GLubyte green, GLubyte blue); +typedef void (* glSecondaryColor3ubvEXTProcPtr) (const GLubyte *v); +typedef void (* glSecondaryColor3uiEXTProcPtr) (GLuint red, GLuint green, GLuint blue); +typedef void (* glSecondaryColor3uivEXTProcPtr) (const GLuint *v); +typedef void (* glSecondaryColor3usEXTProcPtr) (GLushort red, GLushort green, GLushort blue); +typedef void (* glSecondaryColor3usvEXTProcPtr) (const GLushort *v); +typedef void (* glSecondaryColorPointerEXTProcPtr) (GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +#else +extern void glSecondaryColor3bEXT(GLbyte red, GLbyte green, GLbyte blue); +extern void glSecondaryColor3bvEXT(const GLbyte *v); +extern void glSecondaryColor3dEXT(GLdouble red, GLdouble green, GLdouble blue); +extern void glSecondaryColor3dvEXT(const GLdouble *v); +extern void glSecondaryColor3fEXT(GLfloat red, GLfloat green, GLfloat blue); +extern void glSecondaryColor3fvEXT(const GLfloat *v); +extern void glSecondaryColor3iEXT(GLint red, GLint green, GLint blue); +extern void glSecondaryColor3ivEXT(const GLint *v); +extern void glSecondaryColor3sEXT(GLshort red, GLshort green, GLshort blue); +extern void glSecondaryColor3svEXT(const GLshort *v); +extern void glSecondaryColor3ubEXT(GLubyte red, GLubyte green, GLubyte blue); +extern void glSecondaryColor3ubvEXT(const GLubyte *v); +extern void glSecondaryColor3uiEXT(GLuint red, GLuint green, GLuint blue); +extern void glSecondaryColor3uivEXT(const GLuint *v); +extern void glSecondaryColor3usEXT(GLushort red, GLushort green, GLushort blue); +extern void glSecondaryColor3usvEXT(const GLushort *v); +extern void glSecondaryColorPointerEXT(GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_stencil_two_side +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glActiveStencilFaceEXTProcPtr) (GLenum face); +#else +extern void glActiveStencilFaceEXT(GLenum face); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_subtexture +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glTexSubImage1DEXTProcPtr) (GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *); +typedef void (* glTexSubImage2DEXTProcPtr) (GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#else +extern void glTexSubImage1DEXT(GLenum, GLint, GLint, GLsizei, GLenum, GLenum, const GLvoid *); +extern void glTexSubImage2DEXT(GLenum, GLint, GLint, GLint, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_texture3D +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glTexImage3DEXTProcPtr) (GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +typedef void (* glTexSubImage3DEXTProcPtr) (GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#else +extern void glTexImage3DEXT(GLenum, GLint, GLenum, GLsizei, GLsizei, GLsizei, GLint, GLenum, GLenum, const GLvoid *); +extern void glTexSubImage3DEXT(GLenum, GLint, GLint, GLint, GLint, GLsizei, GLsizei, GLsizei, GLenum, GLenum, const GLvoid *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_texture_integer +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (*glClearColorIiEXTProcPtr) ( GLint r, GLint g, GLint b, GLint a ); +typedef void (*glClearColorIuiEXTProcPtr) ( GLuint r, GLuint g, GLuint b, GLuint a ); +typedef void (*glTexParameterIivEXTProcPtr)( GLenum target, GLenum pname, GLint *params ); +typedef void (*glTexParameterIuivEXTProcPtr)( GLenum target, GLenum pname, GLuint *params ); +typedef void (*glGetTexParameterIivEXTProcPtr) ( GLenum target, GLenum pname, GLint *params); +typedef void (*glGetTexParameterIuivEXTProcPtr) ( GLenum target, GLenum pname, GLuint *params); +#else +extern void glClearColorIiEXT( GLint r, GLint g, GLint b, GLint a ); +extern void glClearColorIuiEXT( GLuint r, GLuint g, GLuint b, GLuint a ); +extern void glTexParameterIivEXT( GLenum target, GLenum pname, GLint *params ); +extern void glTexParameterIuivEXT( GLenum target, GLenum pname, GLuint *params ); +extern void glGetTexParameterIivEXT( GLenum target, GLenum pname, GLint *params); +extern void glGetTexParameterIuivEXT( GLenum target, GLenum pname, GLuint *params); +#endif +#endif /* GL_EXT_texture_integer */ + +#if GL_EXT_texture_object +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef GLboolean (* glAreTexturesResidentEXTProcPtr) (GLsizei, const GLuint *, GLboolean *); +typedef void (* glBindTextureEXTProcPtr) (GLenum, GLuint); +typedef void (* glDeleteTexturesEXTProcPtr) (GLsizei, const GLuint *); +typedef void (* glGenTexturesEXTProcPtr) (GLsizei, GLuint *); +typedef GLboolean (* glIsTextureEXTProcPtr) (GLuint); +typedef void (* glPrioritizeTexturesEXTProcPtr) (GLsizei, const GLuint *, const GLclampf *); +#else +extern GLboolean glAreTexturesResidentEXT(GLsizei, const GLuint *, GLboolean *); +extern void glBindTextureEXT(GLenum, GLuint); +extern void glDeleteTexturesEXT(GLsizei, const GLuint *); +extern void glGenTexturesEXT(GLsizei, GLuint *); +extern GLboolean glIsTextureEXT(GLuint); +extern void glPrioritizeTexturesEXT(GLsizei, const GLuint *, const GLclampf *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_timer_query +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glGetQueryObjecti64vEXTProcPtr)(GLuint id, GLenum pname, GLint64EXT *params); +typedef void (* glGetQueryObjectui64vEXTProcPtr)(GLuint id, GLenum pname, GLuint64EXT *params); +#else +extern void glGetQueryObjecti64vEXT(GLuint id, GLenum pname, GLint64EXT *params); +extern void glGetQueryObjectui64vEXT(GLuint id, GLenum pname, GLuint64EXT *params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_EXT_transform_feedback +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBindBufferRangeEXTProcPtr) (GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +typedef void (* glBindBufferOffsetEXTProcPtr) (GLenum target, GLuint index, GLuint buffer, GLintptr offset); +typedef void (* glBindBufferBaseEXTProcPtr) (GLenum target, GLuint index, GLuint buffer); +typedef void (* glBeginTransformFeedbackEXTProcPtr) (GLenum primitiveMode); +typedef void (* glEndTransformFeedbackEXTProcPtr) (void); +typedef void (* glTransformFeedbackVaryingsEXTProcPtr) (GLuint program, GLsizei count, const GLchar* const *varyings, GLenum bufferMode); +typedef void (* glGetTransformFeedbackVaryingEXTProcPtr) (GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +#else +extern void glBindBufferRangeEXT(GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); +extern void glBindBufferOffsetEXT(GLenum target, GLuint index, GLuint buffer, GLintptr offset); +extern void glBindBufferBaseEXT(GLenum target, GLuint index, GLuint buffer); +extern void glBeginTransformFeedbackEXT(GLenum primitiveMode); +extern void glEndTransformFeedbackEXT(void); +extern void glTransformFeedbackVaryingsEXT(GLuint program, GLsizei count, const GLchar* const *varyings, GLenum bufferMode); +extern void glGetTransformFeedbackVaryingEXT(GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); +#endif +#endif /* GL_EXT_transform_feedback */ + +#if GL_EXT_transform_feedback || GL_EXT_draw_buffers2 +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glGetIntegerIndexedvEXTProcPtr) (GLenum param, GLint index, GLint *values); +typedef void (* glGetBooleanIndexedvEXTProcPtr) (GLenum param, GLint index, GLboolean *values); +#else +extern void glGetIntegerIndexedvEXT(GLenum param, GLuint index, GLint *values); +extern void glGetBooleanIndexedvEXT(GLenum param, GLuint index, GLboolean *values); +#endif +#endif /* GL_EXT_transform_feedback || GL_EXT_draw_buffers2 */ + +#if GL_EXT_vertex_array +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glArrayElementEXTProcPtr) (GLint); +typedef void (* glColorPointerEXTProcPtr) (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +typedef void (* glDrawArraysEXTProcPtr) (GLenum, GLint, GLsizei); +typedef void (* glEdgeFlagPointerEXTProcPtr) (GLsizei, GLsizei, const GLvoid *); +typedef void (* glGetPointervEXTProcPtr) (GLenum, GLvoid **); +typedef void (* glIndexPointerEXTProcPtr) (GLenum, GLsizei, GLsizei, const GLvoid *); +typedef void (* glNormalPointerEXTProcPtr) (GLenum, GLsizei, GLsizei, const GLvoid *); +typedef void (* glTexCoordPointerEXTProcPtr) (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +typedef void (* glVertexPointerEXTProcPtr) (GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +#else +extern void glArrayElementEXT(GLint); +extern void glColorPointerEXT(GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +extern void glDrawArraysEXT(GLenum, GLint, GLsizei); +extern void glEdgeFlagPointerEXT(GLsizei, GLsizei, const GLvoid *); +extern void glGetPointervEXT(GLenum, GLvoid **); +extern void glIndexPointerEXT(GLenum, GLsizei, GLsizei, const GLvoid *); +extern void glNormalPointerEXT(GLenum, GLsizei, GLsizei, const GLvoid *); +extern void glTexCoordPointerEXT(GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +extern void glVertexPointerEXT(GLint, GLenum, GLsizei, GLsizei, const GLvoid *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_element_array +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glElementPointerAPPLEProcPtr) (GLenum type, const GLvoid *pointer); +typedef void (* glDrawElementArrayAPPLEProcPtr) (GLenum mode, GLint first, GLsizei count); +typedef void (* glDrawRangeElementArrayAPPLEProcPtr) (GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); +typedef void (* glMultiDrawElementArrayAPPLEProcPtr) (GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +typedef void (* glMultiDrawRangeElementArrayAPPLEProcPtr) (GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); +#else +extern void glElementPointerAPPLE(GLenum type, const GLvoid *pointer); +extern void glDrawElementArrayAPPLE(GLenum mode, GLint first, GLsizei count); +extern void glDrawRangeElementArrayAPPLE(GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); +extern void glMultiDrawElementArrayAPPLE(GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); +extern void glMultiDrawRangeElementArrayAPPLE(GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_fence +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glGenFencesAPPLEProcPtr) (GLsizei n, GLuint *fences); +typedef void (* glDeleteFencesAPPLEProcPtr) (GLsizei n, const GLuint *fences); +typedef void (* glSetFenceAPPLEProcPtr) (GLuint fence); +typedef GLboolean (* glIsFenceAPPLEProcPtr) (GLuint fence); +typedef GLboolean (* glTestFenceAPPLEProcPtr) (GLuint fence); +typedef void (* glFinishFenceAPPLEProcPtr) (GLuint fence); +typedef GLboolean (* glTestObjectAPPLEProcPtr) (GLenum object, GLuint name); +typedef void (* glFinishObjectAPPLEProcPtr) (GLenum object, GLuint name); +#else +extern void glGenFencesAPPLE(GLsizei n, GLuint *fences); +extern void glDeleteFencesAPPLE(GLsizei n, const GLuint *fences); +extern void glSetFenceAPPLE(GLuint fence); +extern GLboolean glIsFenceAPPLE(GLuint fence); +extern GLboolean glTestFenceAPPLE(GLuint fence); +extern void glFinishFenceAPPLE(GLuint fence); +extern GLboolean glTestObjectAPPLE(GLenum object, GLuint name); +extern void glFinishObjectAPPLE(GLenum object, GLuint name); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_flush_buffer_range +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBufferParameteriAPPLEProcPtr) (GLenum target, GLenum pname, GLint param); +typedef void (* glFlushMappedBufferRangeAPPLEProcPtr) (GLenum target, GLintptr offset, GLsizeiptr size); +#else +extern void glBufferParameteriAPPLE(GLenum target, GLenum pname, GLint param); +extern void glFlushMappedBufferRangeAPPLE(GLenum target, GLintptr offset, GLsizeiptr size); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_flush_render +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glFlushRenderAPPLEProcPtr) (void); +typedef void (* glFinishRenderAPPLEProcPtr) (void); +typedef void (* glSwapAPPLEProcPtr) (void); +#else +extern void glFlushRenderAPPLE(void); +extern void glFinishRenderAPPLE(void); +extern void glSwapAPPLE(void); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_object_purgeable +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef GLenum (* glObjectPurgeableAPPLEProcPtr) (GLenum objectType, GLuint name, GLenum option); +typedef GLenum (* glObjectUnpurgeableAPPLEProcPtr) (GLenum objectType, GLuint name, GLenum option); +typedef void (* glGetObjectParameterivAPPLEProcPtr) (GLenum objectType, GLuint name, GLenum pname, GLint *params); +#else +extern GLenum glObjectPurgeableAPPLE(GLenum objectType, GLuint name, GLenum option); +extern GLenum glObjectUnpurgeableAPPLE(GLenum objectType, GLuint name, GLenum option); +extern void glGetObjectParameterivAPPLE(GLenum objectType, GLuint name, GLenum pname, GLint *params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_texture_range +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glTextureRangeAPPLEProcPtr) (GLenum target, GLsizei length, const GLvoid *pointer); +typedef void (* glGetTexParameterPointervAPPLEProcPtr) (GLenum target, GLenum pname, GLvoid **params); +#else +extern void glTextureRangeAPPLE(GLenum target, GLsizei length, const GLvoid *pointer); +extern void glGetTexParameterPointervAPPLE(GLenum target, GLenum pname, GLvoid **params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_vertex_array_object +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBindVertexArrayAPPLEProcPtr) (GLuint id); +typedef void (* glDeleteVertexArraysAPPLEProcPtr) (GLsizei n, const GLuint *ids); +typedef void (* glGenVertexArraysAPPLEProcPtr) (GLsizei n, GLuint *ids); +typedef GLboolean (* glIsVertexArrayAPPLEProcPtr) (GLuint id); +#else +extern void glBindVertexArrayAPPLE(GLuint id); +extern void glDeleteVertexArraysAPPLE(GLsizei n, const GLuint *ids); +extern void glGenVertexArraysAPPLE(GLsizei n, GLuint *ids); +extern GLboolean glIsVertexArrayAPPLE(GLuint id); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_vertex_array_range +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glVertexArrayRangeAPPLEProcPtr) (GLsizei length, const GLvoid *pointer); +typedef void (* glFlushVertexArrayRangeAPPLEProcPtr) (GLsizei length, const GLvoid *pointer); +typedef void (* glVertexArrayParameteriAPPLEProcPtr) (GLenum pname, GLint param); +#else +extern void glVertexArrayRangeAPPLE(GLsizei length, const GLvoid *pointer); +extern void glFlushVertexArrayRangeAPPLE(GLsizei length, const GLvoid *pointer); +extern void glVertexArrayParameteriAPPLE(GLenum pname, GLint param); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_APPLE_vertex_point_size +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glPointSizePointerAPPLEProcPtr) (GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glVertexPointSizefAPPLEProcPtr) (GLfloat size); +#else +extern void glPointSizePointerAPPLE(GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glVertexPointSizefAPPLE(GLfloat size); +#endif +#endif + +#if GL_APPLE_vertex_program_evaluators +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glEnableVertexAttribAPPLEProcPtr) (GLuint index, GLenum pname); +typedef void (* glDisableVertexAttribAPPLEProcPtr) (GLuint index, GLenum pname); +typedef GLboolean (* glIsVertexAttribEnabledAPPLEProcPtr) (GLuint index, GLenum pname); +typedef void (* glMapVertexAttrib1dAPPLEProcPtr) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +typedef void (* glMapVertexAttrib1fAPPLEProcPtr) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +typedef void (* glMapVertexAttrib2dAPPLEProcPtr) (GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +typedef void (* glMapVertexAttrib2fAPPLEProcPtr) (GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +#else +extern void glEnableVertexAttribAPPLE(GLuint index, GLenum pname); +extern void glDisableVertexAttribAPPLE(GLuint index, GLenum pname); +extern GLboolean glIsVertexAttribEnabledAPPLE(GLuint index, GLenum pname); +extern void glMapVertexAttrib1dAPPLE(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); +extern void glMapVertexAttrib1fAPPLE(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); +extern void glMapVertexAttrib2dAPPLE(GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); +extern void glMapVertexAttrib2fAPPLE(GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ATI_blend_equation_separate +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBlendEquationSeparateATIProcPtr) (GLenum equationRGB, GLenum equationAlpha); +#else +extern void glBlendEquationSeparateATI(GLenum equationRGB, GLenum equationAlpha); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ATI_pn_triangles +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glPNTrianglesiATIProcPtr) (GLenum pname, GLint param); +typedef void (* glPNTrianglesfATIProcPtr) (GLenum pname, GLfloat param); +#else +extern void glPNTrianglesiATI(GLenum pname, GLint param); +extern void glPNTrianglesfATI(GLenum pname, GLfloat param); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ATI_separate_stencil +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glStencilOpSeparateATIProcPtr) (GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +typedef void (* glStencilFuncSeparateATIProcPtr) (GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +#else +extern void glStencilOpSeparateATI(GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); +extern void glStencilFuncSeparateATI(GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_ATIX_pn_triangles +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glPNTrianglesiATIXProcPtr) (GLenum pname, GLint param); +typedef void (* glPNTrianglesfATIXProcPtr) (GLenum pname, GLfloat param); +#else +extern void glPNTrianglesiATIX(GLenum pname, GLint param); +extern void glPNTrianglesfATIX(GLenum pname, GLfloat param); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_NV_conditional_render +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBeginConditionalRenderNVProcPtr) (GLuint id, GLenum mode); +typedef void (* glEndConditionalRenderNVProcPtr) (void); +#else +extern void glBeginConditionalRenderNV(GLuint id, GLenum mode); +extern void glEndConditionalRenderNV(void); +#endif +#endif + +#if GL_NV_point_sprite +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glPointParameteriNVProcPtr) (GLenum pname, GLint param); +typedef void (* glPointParameterivNVProcPtr) (GLenum pname, const GLint *params); +#else +extern void glPointParameteriNV(GLenum pname, GLint param); +extern void glPointParameterivNV(GLenum pname, const GLint *params); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_NV_register_combiners +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glCombinerParameterfvNVProcPtr) (GLenum, const GLfloat *); +typedef void (* glCombinerParameterfNVProcPtr) (GLenum, GLfloat); +typedef void (* glCombinerParameterivNVProcPtr) (GLenum, const GLint *); +typedef void (* glCombinerParameteriNVProcPtr) (GLenum, GLint); +typedef void (* glCombinerInputNVProcPtr) (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum); +typedef void (* glCombinerOutputNVProcPtr) (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLboolean, GLboolean, GLboolean); +typedef void (* glFinalCombinerInputNVProcPtr) (GLenum, GLenum, GLenum, GLenum); +typedef void (* glGetCombinerInputParameterfvNVProcPtr) (GLenum, GLenum, GLenum, GLenum, GLfloat *); +typedef void (* glGetCombinerInputParameterivNVProcPtr) (GLenum, GLenum, GLenum, GLenum, GLint *); +typedef void (* glGetCombinerOutputParameterfvNVProcPtr) (GLenum, GLenum, GLenum, GLfloat *); +typedef void (* glGetCombinerOutputParameterivNVProcPtr) (GLenum, GLenum, GLenum, GLint *); +typedef void (* glGetFinalCombinerInputParameterfvNVProcPtr) (GLenum, GLenum, GLfloat *); +typedef void (* glGetFinalCombinerInputParameterivNVProcPtr) (GLenum, GLenum, GLint *); +#else +extern void glCombinerParameterfvNV (GLenum, const GLfloat *); +extern void glCombinerParameterfNV (GLenum, GLfloat); +extern void glCombinerParameterivNV (GLenum, const GLint *); +extern void glCombinerParameteriNV (GLenum, GLint); +extern void glCombinerInputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum); +extern void glCombinerOutputNV (GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLenum, GLboolean, GLboolean, GLboolean); +extern void glFinalCombinerInputNV (GLenum, GLenum, GLenum, GLenum); +extern void glGetCombinerInputParameterfvNV (GLenum, GLenum, GLenum, GLenum, GLfloat *); +extern void glGetCombinerInputParameterivNV (GLenum, GLenum, GLenum, GLenum, GLint *); +extern void glGetCombinerOutputParameterfvNV (GLenum, GLenum, GLenum, GLfloat *); +extern void glGetCombinerOutputParameterivNV (GLenum, GLenum, GLenum, GLint *); +extern void glGetFinalCombinerInputParameterfvNV (GLenum, GLenum, GLfloat *); +extern void glGetFinalCombinerInputParameterivNV (GLenum, GLenum, GLint *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_NV_register_combiners2 +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glCombinerStageParameterfvNVProcPtr) (GLenum, GLenum, const GLfloat *); +typedef void (* glGetCombinerStageParameterfvNVProcPtr) (GLenum, GLenum, GLfloat *); +#else +extern void glCombinerStageParameterfvNV (GLenum, GLenum, const GLfloat *); +extern void glGetCombinerStageParameterfvNV (GLenum, GLenum, GLfloat *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_NV_texture_barrier +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glTextureBarrierNVProcPtr) (void); +#else +extern void glTextureBarrierNV (void); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_NV_vertex_array_range +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glFlushVertexArrayRangeNVProcPtr) (void); +typedef void (* glVertexArrayRangeNVProcPtr) (GLsizei, const GLvoid *); +#else +extern void glFlushVertexArrayRangeNV (void); +extern void glVertexArrayRangeNV (GLsizei, const GLvoid *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_NV_vertex_program +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glBindProgramNVProcPtr) (GLenum target, GLuint id); +typedef void (* glDeleteProgramsNVProcPtr) (GLsizei n, const GLuint *ids); +typedef void (* glExecuteProgramNVProcPtr) (GLenum target, GLuint id, const GLfloat *params); +typedef void (* glGenProgramsNVProcPtr) (GLsizei n, GLuint *ids); +typedef GLboolean (* glAreProgramsResidentNVProcPtr) (GLsizei n, const GLuint *ids, GLboolean *residences); +typedef void (* glRequestResidentProgramsNVProcPtr) (GLsizei n, GLuint *ids); +typedef void (* glGetProgramParameterfvNVProcPtr) (GLenum target, GLuint index, GLenum pname, GLfloat *params); +typedef void (* glGetProgramParameterdvNVProcPtr) (GLenum target, GLuint index, GLenum pname, GLdouble *params); +typedef void (* glGetProgramivNVProcPtr) (GLuint id, GLenum pname, GLint *params); +typedef void (* glGetProgramStringNVProcPtr) (GLuint id, GLenum pname, GLubyte *program); +typedef void (* glGetTrackMatrixivNVProcPtr) (GLenum target, GLuint address, GLenum pname, GLint *params); +typedef void (* glGetVertexAttribdvNVProcPtr) (GLuint index, GLenum pname, GLdouble *params); +typedef void (* glGetVertexAttribfvNVProcPtr) (GLuint index, GLenum pname, GLfloat *params); +typedef void (* glGetVertexAttribivNVProcPtr) (GLuint index, GLenum pname, GLint *params); +typedef void (* glGetVertexAttribPointervNVProcPtr) (GLuint index, GLenum pname, GLvoid **pointer); +typedef GLboolean (* glIsProgramNVProcPtr) (GLuint id); +typedef void (* glLoadProgramNVProcPtr) (GLenum target, GLuint id, GLsizei len, const GLubyte *program); +typedef void (* glProgramParameter4fNVProcPtr) (GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glProgramParameter4dNVProcPtr) (GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glProgramParameter4dvNVProcPtr) (GLenum target, GLuint index, const GLdouble *params); +typedef void (* glProgramParameter4fvNVProcPtr) (GLenum target, GLuint index, const GLfloat *params); +typedef void (* glProgramParameters4dvNVProcPtr) (GLenum target, GLuint index, GLuint num, const GLdouble *params); +typedef void (* glProgramParameters4fvNVProcPtr) (GLenum target, GLuint index, GLuint num, const GLfloat *params); +typedef void (* glTrackMatrixNVProcPtr) (GLenum target, GLuint address, GLenum matrix, GLenum transform); +typedef void (* glVertexAttribPointerNVProcPtr) (GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +typedef void (* glVertexAttrib1sNVProcPtr) (GLuint index, GLshort x); +typedef void (* glVertexAttrib1fNVProcPtr) (GLuint index, GLfloat x); +typedef void (* glVertexAttrib1dNVProcPtr) (GLuint index, GLdouble x); +typedef void (* glVertexAttrib2sNVProcPtr) (GLuint index, GLshort x, GLshort y); +typedef void (* glVertexAttrib2fNVProcPtr) (GLuint index, GLfloat x, GLfloat y); +typedef void (* glVertexAttrib2dNVProcPtr) (GLuint index, GLdouble x, GLdouble y); +typedef void (* glVertexAttrib3sNVProcPtr) (GLuint index, GLshort x, GLshort y, GLshort z); +typedef void (* glVertexAttrib3fNVProcPtr) (GLuint index, GLfloat x, GLfloat y, GLfloat z); +typedef void (* glVertexAttrib3dNVProcPtr) (GLuint index, GLdouble x, GLdouble y, GLdouble z); +typedef void (* glVertexAttrib4sNVProcPtr) (GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +typedef void (* glVertexAttrib4fNVProcPtr) (GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +typedef void (* glVertexAttrib4dNVProcPtr) (GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +typedef void (* glVertexAttrib4ubNVProcPtr) (GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +typedef void (* glVertexAttrib1svNVProcPtr) (GLuint index, GLshort *v); +typedef void (* glVertexAttrib1fvNVProcPtr) (GLuint index, GLfloat *v); +typedef void (* glVertexAttrib1dvNVProcPtr) (GLuint index, GLdouble *v); +typedef void (* glVertexAttrib2svNVProcPtr) (GLuint index, GLshort *v); +typedef void (* glVertexAttrib2fvNVProcPtr) (GLuint index, GLfloat *v); +typedef void (* glVertexAttrib2dvNVProcPtr) (GLuint index, GLdouble *v); +typedef void (* glVertexAttrib3svNVProcPtr) (GLuint index, GLshort *v); +typedef void (* glVertexAttrib3fvNVProcPtr) (GLuint index, GLfloat *v); +typedef void (* glVertexAttrib3dvNVProcPtr) (GLuint index, GLdouble *v); +typedef void (* glVertexAttrib4svNVProcPtr) (GLuint index, GLshort *v); +typedef void (* glVertexAttrib4fvNVProcPtr) (GLuint index, GLfloat *v); +typedef void (* glVertexAttrib4dvNVProcPtr) (GLuint index, GLdouble *v); +typedef void (* glVertexAttrib4ubvNVProcPtr) (GLuint index, GLubyte *v); +typedef void (* glVertexAttribs1svNVProcPtr) (GLuint index, GLsizei n, GLshort *v); +typedef void (* glVertexAttribs1fvNVProcPtr) (GLuint index, GLsizei n, GLfloat *v); +typedef void (* glVertexAttribs1dvNVProcPtr) (GLuint index, GLsizei n, GLdouble *v); +typedef void (* glVertexAttribs2svNVProcPtr) (GLuint index, GLsizei n, GLshort *v); +typedef void (* glVertexAttribs2fvNVProcPtr) (GLuint index, GLsizei n, GLfloat *v); +typedef void (* glVertexAttribs2dvNVProcPtr) (GLuint index, GLsizei n, GLdouble *v); +typedef void (* glVertexAttribs3svNVProcPtr) (GLuint index, GLsizei n, GLshort *v); +typedef void (* glVertexAttribs3fvNVProcPtr) (GLuint index, GLsizei n, GLfloat *v); +typedef void (* glVertexAttribs3dvNVProcPtr) (GLuint index, GLsizei n, GLdouble *v); +typedef void (* glVertexAttribs4svNVProcPtr) (GLuint index, GLsizei n, GLshort *v); +typedef void (* glVertexAttribs4fvNVProcPtr) (GLuint index, GLsizei n, GLfloat *v); +typedef void (* glVertexAttribs4dvNVProcPtr) (GLuint index, GLsizei n, GLdouble *v); +typedef void (* glVertexAttribs4ubvNVProcPtr) (GLuint index, GLsizei n, GLubyte *v); +#else +extern void glBindProgramNV(GLenum target, GLuint id); +extern void glDeleteProgramsNV(GLsizei n, const GLuint *ids); +extern void glExecuteProgramNV(GLenum target, GLuint id, const GLfloat *params); +extern void glGenProgramsNV(GLsizei n, GLuint *ids); +extern GLboolean glAreProgramsResidentNV(GLsizei n, const GLuint *ids, GLboolean *residences); +extern void glRequestResidentProgramsNV(GLsizei n, GLuint *ids); +extern void glGetProgramParameterfvNV(GLenum target, GLuint index, GLenum pname, GLfloat *params); +extern void glGetProgramParameterdvNV(GLenum target, GLuint index, GLenum pname, GLdouble *params); +extern void glGetProgramivNV(GLuint id, GLenum pname, GLint *params); +extern void glGetProgramStringNV(GLuint id, GLenum pname, GLubyte *program); +extern void glGetTrackMatrixivNV(GLenum target, GLuint address, GLenum pname, GLint *params); +extern void glGetVertexAttribdvNV(GLuint index, GLenum pname, GLdouble *params); +extern void glGetVertexAttribfvNV(GLuint index, GLenum pname, GLfloat *params); +extern void glGetVertexAttribivNV(GLuint index, GLenum pname, GLint *params); +extern void glGetVertexAttribPointervNV(GLuint index, GLenum pname, GLvoid **pointer); +extern GLboolean glIsProgramNV(GLuint id); +extern void glLoadProgramNV(GLenum target, GLuint id, GLsizei len, const GLubyte *program); +extern void glProgramParameter4fNV(GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glProgramParameter4dNV(GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glProgramParameter4dvNV(GLenum target, GLuint index, const GLdouble *params); +extern void glProgramParameter4fvNV(GLenum target, GLuint index, const GLfloat *params); +extern void glProgramParameters4dvNV(GLenum target, GLuint index, GLuint num, const GLdouble *params); +extern void glProgramParameters4fvNV(GLenum target, GLuint index, GLuint num, const GLfloat *params); +extern void glTrackMatrixNV(GLenum target, GLuint address, GLenum matrix, GLenum transform); +extern void glVertexAttribPointerNV(GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); +extern void glVertexAttrib1sNV(GLuint index, GLshort x); +extern void glVertexAttrib1fNV(GLuint index, GLfloat x); +extern void glVertexAttrib1dNV(GLuint index, GLdouble x); +extern void glVertexAttrib2sNV(GLuint index, GLshort x, GLshort y); +extern void glVertexAttrib2fNV(GLuint index, GLfloat x, GLfloat y); +extern void glVertexAttrib2dNV(GLuint index, GLdouble x, GLdouble y); +extern void glVertexAttrib3sNV(GLuint index, GLshort x, GLshort y, GLshort z); +extern void glVertexAttrib3fNV(GLuint index, GLfloat x, GLfloat y, GLfloat z); +extern void glVertexAttrib3dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z); +extern void glVertexAttrib4sNV(GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); +extern void glVertexAttrib4fNV(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); +extern void glVertexAttrib4dNV(GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); +extern void glVertexAttrib4ubNV(GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); +extern void glVertexAttrib1svNV(GLuint index, GLshort *v); +extern void glVertexAttrib1fvNV(GLuint index, GLfloat *v); +extern void glVertexAttrib1dvNV(GLuint index, GLdouble *v); +extern void glVertexAttrib2svNV(GLuint index, GLshort *v); +extern void glVertexAttrib2fvNV(GLuint index, GLfloat *v); +extern void glVertexAttrib2dvNV(GLuint index, GLdouble *v); +extern void glVertexAttrib3svNV(GLuint index, GLshort *v); +extern void glVertexAttrib3fvNV(GLuint index, GLfloat *v); +extern void glVertexAttrib3dvNV(GLuint index, GLdouble *v); +extern void glVertexAttrib4svNV(GLuint index, GLshort *v); +extern void glVertexAttrib4fvNV(GLuint index, GLfloat *v); +extern void glVertexAttrib4dvNV(GLuint index, GLdouble *v); +extern void glVertexAttrib4ubvNV(GLuint index, GLubyte *v); +extern void glVertexAttribs1svNV(GLuint index, GLsizei n, GLshort *v); +extern void glVertexAttribs1fvNV(GLuint index, GLsizei n, GLfloat *v); +extern void glVertexAttribs1dvNV(GLuint index, GLsizei n, GLdouble *v); +extern void glVertexAttribs2svNV(GLuint index, GLsizei n, GLshort *v); +extern void glVertexAttribs2fvNV(GLuint index, GLsizei n, GLfloat *v); +extern void glVertexAttribs2dvNV(GLuint index, GLsizei n, GLdouble *v); +extern void glVertexAttribs3svNV(GLuint index, GLsizei n, GLshort *v); +extern void glVertexAttribs3fvNV(GLuint index, GLsizei n, GLfloat *v); +extern void glVertexAttribs3dvNV(GLuint index, GLsizei n, GLdouble *v); +extern void glVertexAttribs4svNV(GLuint index, GLsizei n, GLshort *v); +extern void glVertexAttribs4fvNV(GLuint index, GLsizei n, GLfloat *v); +extern void glVertexAttribs4dvNV(GLuint index, GLsizei n, GLdouble *v); +extern void glVertexAttribs4ubvNV(GLuint index, GLsizei n, GLubyte *v); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#if GL_SGI_color_table +#ifdef GL_GLEXT_FUNCTION_POINTERS +typedef void (* glColorTableSGIProcPtr) (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +typedef void (* glColorTableParameterfvSGIProcPtr) (GLenum, GLenum, const GLfloat *); +typedef void (* glColorTableParameterivSGIProcPtr) (GLenum, GLenum, const GLint *); +typedef void (* glCopyColorTableSGIProcPtr) (GLenum, GLenum, GLint, GLint, GLsizei); +typedef void (* glGetColorTableSGIProcPtr) (GLenum, GLenum, GLenum, GLvoid *); +typedef void (* glGetColorTableParameterfvSGIProcPtr) (GLenum, GLenum, GLfloat *); +typedef void (* glGetColorTableParameterivSGIProcPtr) (GLenum, GLenum, GLint *); +#else +extern void glColorTableSGI (GLenum, GLenum, GLsizei, GLenum, GLenum, const GLvoid *); +extern void glColorTableParameterfvSGI (GLenum, GLenum, const GLfloat *); +extern void glColorTableParameterivSGI (GLenum, GLenum, const GLint *); +extern void glCopyColorTableSGI (GLenum, GLenum, GLint, GLint, GLsizei); +extern void glGetColorTableSGI (GLenum, GLenum, GLenum, GLvoid *); +extern void glGetColorTableParameterfvSGI (GLenum, GLenum, GLfloat *); +extern void glGetColorTableParameterivSGI (GLenum, GLenum, GLint *); +#endif /* GL_GLEXT_FUNCTION_POINTERS */ +#endif + +#ifdef __cplusplus +} +#endif + +#endif diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gliContext.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gliContext.h" new file mode 100644 index 0000000..363bbd1 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gliContext.h" @@ -0,0 +1,25 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _GLICONTEXT_H +#define _GLICONTEXT_H + +#ifdef __cplusplus +extern "C" { +#endif + + +/* +** GL context data type +*/ +typedef struct __GLIContextRec *GLIContext; +typedef struct __GLISharedRec *GLIShared; + + +#ifdef __cplusplus +} +#endif + +#endif /* _GLICONTEXT_H */ + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gliDispatch.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gliDispatch.h" new file mode 100644 index 0000000..2e216e2 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gliDispatch.h" @@ -0,0 +1,1108 @@ +/* + Copyright: (c) 1999-2013 Apple Inc. All rights reserved. +*/ + +#ifndef _GLIDISPATCH_H +#define _GLIDISPATCH_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/* +** GL function dispatch table type +*/ +typedef struct __GLIFunctionDispatchRec +{ + void (*accum)(GLIContext ctx, GLenum op, GLfloat value); + void (*alpha_func)(GLIContext ctx, GLenum func, GLclampf ref); + GLboolean (*are_textures_resident)(GLIContext ctx, GLsizei n, const GLuint *textures, GLboolean *residences); + void (*array_element)(GLIContext ctx, GLint i); + void (*begin)(GLIContext ctx, GLenum mode); + void (*bind_texture)(GLIContext ctx, GLenum target, GLuint texture); + void (*bitmap)(GLIContext ctx, GLsizei width, GLsizei height, GLfloat xorig, GLfloat yorig, GLfloat xmove, GLfloat ymove, const GLubyte *bitmap); + void (*blend_func)(GLIContext ctx, GLenum sfactor, GLenum dfactor); + void (*call_list)(GLIContext ctx, GLuint list); + void (*call_lists)(GLIContext ctx, GLsizei n, GLenum type, const GLvoid *lists); + void (*clear)(GLIContext ctx, GLbitfield mask); + void (*clear_accum)(GLIContext ctx, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); + void (*clear_color)(GLIContext ctx, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); + void (*clear_depth)(GLIContext ctx, GLclampd depth); + void (*clear_index)(GLIContext ctx, GLfloat c); + void (*clear_stencil)(GLIContext ctx, GLint s); + void (*clip_plane)(GLIContext ctx, GLenum plane, const GLdouble *equation); + void (*color3b)(GLIContext ctx, GLbyte red, GLbyte green, GLbyte blue); + void (*color3bv)(GLIContext ctx, const GLbyte *v); + void (*color3d)(GLIContext ctx, GLdouble red, GLdouble green, GLdouble blue); + void (*color3dv)(GLIContext ctx, const GLdouble *v); + void (*color3f)(GLIContext ctx, GLfloat red, GLfloat green, GLfloat blue); + void (*color3fv)(GLIContext ctx, const GLfloat *v); + void (*color3i)(GLIContext ctx, GLint red, GLint green, GLint blue); + void (*color3iv)(GLIContext ctx, const GLint *v); + void (*color3s)(GLIContext ctx, GLshort red, GLshort green, GLshort blue); + void (*color3sv)(GLIContext ctx, const GLshort *v); + void (*color3ub)(GLIContext ctx, GLubyte red, GLubyte green, GLubyte blue); + void (*color3ubv)(GLIContext ctx, const GLubyte *v); + void (*color3ui)(GLIContext ctx, GLuint red, GLuint green, GLuint blue); + void (*color3uiv)(GLIContext ctx, const GLuint *v); + void (*color3us)(GLIContext ctx, GLushort red, GLushort green, GLushort blue); + void (*color3usv)(GLIContext ctx, const GLushort *v); + void (*color4b)(GLIContext ctx, GLbyte red, GLbyte green, GLbyte blue, GLbyte alpha); + void (*color4bv)(GLIContext ctx, const GLbyte *v); + void (*color4d)(GLIContext ctx, GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha); + void (*color4dv)(GLIContext ctx, const GLdouble *v); + void (*color4f)(GLIContext ctx, GLfloat red, GLfloat green, GLfloat blue, GLfloat alpha); + void (*color4fv)(GLIContext ctx, const GLfloat *v); + void (*color4i)(GLIContext ctx, GLint red, GLint green, GLint blue, GLint alpha); + void (*color4iv)(GLIContext ctx, const GLint *v); + void (*color4s)(GLIContext ctx, GLshort red, GLshort green, GLshort blue, GLshort alpha); + void (*color4sv)(GLIContext ctx, const GLshort *v); + void (*color4ub)(GLIContext ctx, GLubyte red, GLubyte green, GLubyte blue, GLubyte alpha); + void (*color4ubv)(GLIContext ctx, const GLubyte *v); + void (*color4ui)(GLIContext ctx, GLuint red, GLuint green, GLuint blue, GLuint alpha); + void (*color4uiv)(GLIContext ctx, const GLuint *v); + void (*color4us)(GLIContext ctx, GLushort red, GLushort green, GLushort blue, GLushort alpha); + void (*color4usv)(GLIContext ctx, const GLushort *v); + void (*color_mask)(GLIContext ctx, GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha); + void (*color_material)(GLIContext ctx, GLenum face, GLenum mode); + void (*color_pointer)(GLIContext ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*copy_pixels)(GLIContext ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum type); + void (*copy_tex_image1D)(GLIContext ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLint border); + void (*copy_tex_image2D)(GLIContext ctx, GLenum target, GLint level, GLenum internalFormat, GLint x, GLint y, GLsizei width, GLsizei height, GLint border); + void (*copy_tex_sub_image1D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint x, GLint y, GLsizei width); + void (*copy_tex_sub_image2D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint x, GLint y, GLsizei width, GLsizei height); + void (*cull_face)(GLIContext ctx, GLenum mode); + void (*delete_lists)(GLIContext ctx, GLuint list, GLsizei range); + void (*delete_textures)(GLIContext ctx, GLsizei n, const GLuint *textures); + void (*depth_func)(GLIContext ctx, GLenum func); + void (*depth_mask)(GLIContext ctx, GLboolean flag); + void (*depth_range)(GLIContext ctx, GLclampd zNear, GLclampd zFar); + void (*disable)(GLIContext ctx, GLenum cap); + void (*disable_client_state)(GLIContext ctx, GLenum array); + void (*draw_arrays)(GLIContext ctx, GLenum mode, GLint first, GLsizei count); + void (*draw_buffer)(GLIContext ctx, GLenum mode); + void (*draw_elements)(GLIContext ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices); + void (*draw_pixels)(GLIContext ctx, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); + void (*edge_flag)(GLIContext ctx, GLboolean flag); + void (*edge_flag_pointer)(GLIContext ctx, GLsizei stride, const GLvoid *pointer); + void (*edge_flagv)(GLIContext ctx, const GLboolean *flag); + void (*enable)(GLIContext ctx, GLenum cap); + void (*enable_client_state)(GLIContext ctx, GLenum array); + void (*end)(GLIContext ctx); + void (*end_list)(GLIContext ctx); + void (*eval_coord1d)(GLIContext ctx, GLdouble u); + void (*eval_coord1dv)(GLIContext ctx, const GLdouble *u); + void (*eval_coord1f)(GLIContext ctx, GLfloat u); + void (*eval_coord1fv)(GLIContext ctx, const GLfloat *u); + void (*eval_coord2d)(GLIContext ctx, GLdouble u, GLdouble v); + void (*eval_coord2dv)(GLIContext ctx, const GLdouble *u); + void (*eval_coord2f)(GLIContext ctx, GLfloat u, GLfloat v); + void (*eval_coord2fv)(GLIContext ctx, const GLfloat *u); + void (*eval_mesh1)(GLIContext ctx, GLenum mode, GLint i1, GLint i2); + void (*eval_mesh2)(GLIContext ctx, GLenum mode, GLint i1, GLint i2, GLint j1, GLint j2); + void (*eval_point1)(GLIContext ctx, GLint i); + void (*eval_point2)(GLIContext ctx, GLint i, GLint j); + void (*feedback_buffer)(GLIContext ctx, GLsizei size, GLenum type, GLfloat *buffer); + void (*finish)(GLIContext ctx); + void (*flush)(GLIContext ctx); + void (*fogf)(GLIContext ctx, GLenum pname, GLfloat param); + void (*fogfv)(GLIContext ctx, GLenum pname, const GLfloat *params); + void (*fogi)(GLIContext ctx, GLenum pname, GLint param); + void (*fogiv)(GLIContext ctx, GLenum pname, const GLint *params); + void (*front_face)(GLIContext ctx, GLenum mode); + void (*frustum)(GLIContext ctx, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); + GLuint (*gen_lists)(GLIContext ctx, GLsizei range); + void (*gen_textures)(GLIContext ctx, GLsizei n, GLuint *textures); + void (*get_booleanv)(GLIContext ctx, GLenum pname, GLboolean *params); + void (*get_clip_plane)(GLIContext ctx, GLenum plane, GLdouble *equation); + void (*get_doublev)(GLIContext ctx, GLenum pname, GLdouble *params); + GLenum (*get_error)(GLIContext ctx); + void (*get_floatv)(GLIContext ctx, GLenum pname, GLfloat *params); + void (*get_integerv)(GLIContext ctx, GLenum pname, GLint *params); + void (*get_lightfv)(GLIContext ctx, GLenum light, GLenum pname, GLfloat *params); + void (*get_lightiv)(GLIContext ctx, GLenum light, GLenum pname, GLint *params); + void (*get_mapdv)(GLIContext ctx, GLenum target, GLenum query, GLdouble *v); + void (*get_mapfv)(GLIContext ctx, GLenum target, GLenum query, GLfloat *v); + void (*get_mapiv)(GLIContext ctx, GLenum target, GLenum query, GLint *v); + void (*get_materialfv)(GLIContext ctx, GLenum face, GLenum pname, GLfloat *params); + void (*get_materialiv)(GLIContext ctx, GLenum face, GLenum pname, GLint *params); + void (*get_pixel_mapfv)(GLIContext ctx, GLenum map, GLfloat *values); + void (*get_pixel_mapuiv)(GLIContext ctx, GLenum map, GLuint *values); + void (*get_pixel_mapusv)(GLIContext ctx, GLenum map, GLushort *values); + void (*get_pointerv)(GLIContext ctx, GLenum pname, GLvoid **params); + void (*get_polygon_stipple)(GLIContext ctx, GLubyte *mask); + const GLubyte* (*get_string)(GLIContext ctx, GLenum name); + void (*get_tex_envfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat *params); + void (*get_tex_enviv)(GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*get_tex_gendv)(GLIContext ctx, GLenum coord, GLenum pname, GLdouble *params); + void (*get_tex_genfv)(GLIContext ctx, GLenum coord, GLenum pname, GLfloat *params); + void (*get_tex_geniv)(GLIContext ctx, GLenum coord, GLenum pname, GLint *params); + void (*get_tex_image)(GLIContext ctx, GLenum target, GLint level, GLenum format, GLenum type, GLvoid *pixels); + void (*get_tex_level_parameterfv)(GLIContext ctx, GLenum target, GLint level, GLenum pname, GLfloat *params); + void (*get_tex_level_parameteriv)(GLIContext ctx, GLenum target, GLint level, GLenum pname, GLint *params); + void (*get_tex_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat *params); + void (*get_tex_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*hint)(GLIContext ctx, GLenum target, GLenum mode); + void (*index_mask)(GLIContext ctx, GLuint mask); + void (*index_pointer)(GLIContext ctx, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*indexd)(GLIContext ctx, GLdouble c); + void (*indexdv)(GLIContext ctx, const GLdouble *c); + void (*indexf)(GLIContext ctx, GLfloat c); + void (*indexfv)(GLIContext ctx, const GLfloat *c); + void (*indexi)(GLIContext ctx, GLint c); + void (*indexiv)(GLIContext ctx, const GLint *c); + void (*indexs)(GLIContext ctx, GLshort c); + void (*indexsv)(GLIContext ctx, const GLshort *c); + void (*indexub)(GLIContext ctx, GLubyte c); + void (*indexubv)(GLIContext ctx, const GLubyte *c); + void (*init_names)(GLIContext ctx); + void (*interleaved_arrays)(GLIContext ctx, GLenum format, GLsizei stride, const GLvoid *pointer); + GLboolean (*is_enabled)(GLIContext ctx, GLenum cap); + GLboolean (*is_list)(GLIContext ctx, GLuint list); + GLboolean (*is_texture)(GLIContext ctx, GLuint texture); + void (*light_modelf)(GLIContext ctx, GLenum pname, GLfloat param); + void (*light_modelfv)(GLIContext ctx, GLenum pname, const GLfloat *params); + void (*light_modeli)(GLIContext ctx, GLenum pname, GLint param); + void (*light_modeliv)(GLIContext ctx, GLenum pname, const GLint *params); + void (*lightf)(GLIContext ctx, GLenum light, GLenum pname, GLfloat param); + void (*lightfv)(GLIContext ctx, GLenum light, GLenum pname, const GLfloat *params); + void (*lighti)(GLIContext ctx, GLenum light, GLenum pname, GLint param); + void (*lightiv)(GLIContext ctx, GLenum light, GLenum pname, const GLint *params); + void (*line_stipple)(GLIContext ctx, GLint factor, GLushort pattern); + void (*line_width)(GLIContext ctx, GLfloat width); + void (*list_base)(GLIContext ctx, GLuint base); + void (*load_identity)(GLIContext ctx); + void (*load_matrixd)(GLIContext ctx, const GLdouble *m); + void (*load_matrixf)(GLIContext ctx, const GLfloat *m); + void (*load_name)(GLIContext ctx, GLuint name); + void (*logic_op)(GLIContext ctx, GLenum opcode); + void (*map1d)(GLIContext ctx, GLenum target, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); + void (*map1f)(GLIContext ctx, GLenum target, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); + void (*map2d)(GLIContext ctx, GLenum target, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); + void (*map2f)(GLIContext ctx, GLenum target, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); + void (*map_grid1d)(GLIContext ctx, GLint un, GLdouble u1, GLdouble u2); + void (*map_grid1f)(GLIContext ctx, GLint un, GLfloat u1, GLfloat u2); + void (*map_grid2d)(GLIContext ctx, GLint un, GLdouble u1, GLdouble u2, GLint vn, GLdouble v1, GLdouble v2); + void (*map_grid2f)(GLIContext ctx, GLint un, GLfloat u1, GLfloat u2, GLint vn, GLfloat v1, GLfloat v2); + void (*materialf)(GLIContext ctx, GLenum face, GLenum pname, GLfloat param); + void (*materialfv)(GLIContext ctx, GLenum face, GLenum pname, const GLfloat *params); + void (*materiali)(GLIContext ctx, GLenum face, GLenum pname, GLint param); + void (*materialiv)(GLIContext ctx, GLenum face, GLenum pname, const GLint *params); + void (*matrix_mode)(GLIContext ctx, GLenum mode); + void (*mult_matrixd)(GLIContext ctx, const GLdouble *m); + void (*mult_matrixf)(GLIContext ctx, const GLfloat *m); + void (*new_list)(GLIContext ctx, GLuint list, GLenum mode); + void (*normal3b)(GLIContext ctx, GLbyte nx, GLbyte ny, GLbyte nz); + void (*normal3bv)(GLIContext ctx, const GLbyte *v); + void (*normal3d)(GLIContext ctx, GLdouble nx, GLdouble ny, GLdouble nz); + void (*normal3dv)(GLIContext ctx, const GLdouble *v); + void (*normal3f)(GLIContext ctx, GLfloat nx, GLfloat ny, GLfloat nz); + void (*normal3fv)(GLIContext ctx, const GLfloat *v); + void (*normal3i)(GLIContext ctx, GLint nx, GLint ny, GLint nz); + void (*normal3iv)(GLIContext ctx, const GLint *v); + void (*normal3s)(GLIContext ctx, GLshort nx, GLshort ny, GLshort nz); + void (*normal3sv)(GLIContext ctx, const GLshort *v); + void (*normal_pointer)(GLIContext ctx, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*ortho)(GLIContext ctx, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top, GLdouble zNear, GLdouble zFar); + void (*pass_through)(GLIContext ctx, GLfloat token); + void (*pixel_mapfv)(GLIContext ctx, GLenum map, GLsizei mapsize, const GLfloat *values); + void (*pixel_mapuiv)(GLIContext ctx, GLenum map, GLsizei mapsize, const GLuint *values); + void (*pixel_mapusv)(GLIContext ctx, GLenum map, GLsizei mapsize, const GLushort *values); + void (*pixel_storef)(GLIContext ctx, GLenum pname, GLfloat param); + void (*pixel_storei)(GLIContext ctx, GLenum pname, GLint param); + void (*pixel_transferf)(GLIContext ctx, GLenum pname, GLfloat param); + void (*pixel_transferi)(GLIContext ctx, GLenum pname, GLint param); + void (*pixel_zoom)(GLIContext ctx, GLfloat xfactor, GLfloat yfactor); + void (*point_size)(GLIContext ctx, GLfloat size); + void (*polygon_mode)(GLIContext ctx, GLenum face, GLenum mode); + void (*polygon_offset)(GLIContext ctx, GLfloat factor, GLfloat units); + void (*polygon_stipple)(GLIContext ctx, const GLubyte *mask); + void (*pop_attrib)(GLIContext ctx); + void (*pop_client_attrib)(GLIContext ctx); + void (*pop_matrix)(GLIContext ctx); + void (*pop_name)(GLIContext ctx); + void (*prioritize_textures)(GLIContext ctx, GLsizei n, const GLuint *textures, const GLclampf *priorities); + void (*push_attrib)(GLIContext ctx, GLbitfield mask); + void (*push_client_attrib)(GLIContext ctx, GLbitfield mask); + void (*push_matrix)(GLIContext ctx); + void (*push_name)(GLIContext ctx, GLuint name); + void (*raster_pos2d)(GLIContext ctx, GLdouble x, GLdouble y); + void (*raster_pos2dv)(GLIContext ctx, const GLdouble *v); + void (*raster_pos2f)(GLIContext ctx, GLfloat x, GLfloat y); + void (*raster_pos2fv)(GLIContext ctx, const GLfloat *v); + void (*raster_pos2i)(GLIContext ctx, GLint x, GLint y); + void (*raster_pos2iv)(GLIContext ctx, const GLint *v); + void (*raster_pos2s)(GLIContext ctx, GLshort x, GLshort y); + void (*raster_pos2sv)(GLIContext ctx, const GLshort *v); + void (*raster_pos3d)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z); + void (*raster_pos3dv)(GLIContext ctx, const GLdouble *v); + void (*raster_pos3f)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z); + void (*raster_pos3fv)(GLIContext ctx, const GLfloat *v); + void (*raster_pos3i)(GLIContext ctx, GLint x, GLint y, GLint z); + void (*raster_pos3iv)(GLIContext ctx, const GLint *v); + void (*raster_pos3s)(GLIContext ctx, GLshort x, GLshort y, GLshort z); + void (*raster_pos3sv)(GLIContext ctx, const GLshort *v); + void (*raster_pos4d)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*raster_pos4dv)(GLIContext ctx, const GLdouble *v); + void (*raster_pos4f)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z, GLfloat w); + void (*raster_pos4fv)(GLIContext ctx, const GLfloat *v); + void (*raster_pos4i)(GLIContext ctx, GLint x, GLint y, GLint z, GLint w); + void (*raster_pos4iv)(GLIContext ctx, const GLint *v); + void (*raster_pos4s)(GLIContext ctx, GLshort x, GLshort y, GLshort z, GLshort w); + void (*raster_pos4sv)(GLIContext ctx, const GLshort *v); + void (*read_buffer)(GLIContext ctx, GLenum mode); + void (*read_pixels)(GLIContext ctx, GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type, GLvoid *pixels); + void (*rectd)(GLIContext ctx, GLdouble x1, GLdouble y1, GLdouble x2, GLdouble y2); + void (*rectdv)(GLIContext ctx, const GLdouble *v1, const GLdouble *v2); + void (*rectf)(GLIContext ctx, GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2); + void (*rectfv)(GLIContext ctx, const GLfloat *v1, const GLfloat *v2); + void (*recti)(GLIContext ctx, GLint x1, GLint y1, GLint x2, GLint y2); + void (*rectiv)(GLIContext ctx, const GLint *v1, const GLint *v2); + void (*rects)(GLIContext ctx, GLshort x1, GLshort y1, GLshort x2, GLshort y2); + void (*rectsv)(GLIContext ctx, const GLshort *v1, const GLshort *v2); + GLint (*render_mode)(GLIContext ctx, GLenum mode); + void (*rotated)(GLIContext ctx, GLdouble angle, GLdouble x, GLdouble y, GLdouble z); + void (*rotatef)(GLIContext ctx, GLfloat angle, GLfloat x, GLfloat y, GLfloat z); + void (*scaled)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z); + void (*scalef)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z); + void (*scissor)(GLIContext ctx, GLint x, GLint y, GLsizei width, GLsizei height); + void (*select_buffer)(GLIContext ctx, GLsizei size, GLuint *buffer); + void (*shade_model)(GLIContext ctx, GLenum mode); + void (*stencil_func)(GLIContext ctx, GLenum func, GLint ref, GLuint mask); + void (*stencil_mask)(GLIContext ctx, GLuint mask); + void (*stencil_op)(GLIContext ctx, GLenum fail, GLenum zfail, GLenum zpass); + void (*tex_coord1d)(GLIContext ctx, GLdouble s); + void (*tex_coord1dv)(GLIContext ctx, const GLdouble *v); + void (*tex_coord1f)(GLIContext ctx, GLfloat s); + void (*tex_coord1fv)(GLIContext ctx, const GLfloat *v); + void (*tex_coord1i)(GLIContext ctx, GLint s); + void (*tex_coord1iv)(GLIContext ctx, const GLint *v); + void (*tex_coord1s)(GLIContext ctx, GLshort s); + void (*tex_coord1sv)(GLIContext ctx, const GLshort *v); + void (*tex_coord2d)(GLIContext ctx, GLdouble s, GLdouble t); + void (*tex_coord2dv)(GLIContext ctx, const GLdouble *v); + void (*tex_coord2f)(GLIContext ctx, GLfloat s, GLfloat t); + void (*tex_coord2fv)(GLIContext ctx, const GLfloat *v); + void (*tex_coord2i)(GLIContext ctx, GLint s, GLint t); + void (*tex_coord2iv)(GLIContext ctx, const GLint *v); + void (*tex_coord2s)(GLIContext ctx, GLshort s, GLshort t); + void (*tex_coord2sv)(GLIContext ctx, const GLshort *v); + void (*tex_coord3d)(GLIContext ctx, GLdouble s, GLdouble t, GLdouble r); + void (*tex_coord3dv)(GLIContext ctx, const GLdouble *v); + void (*tex_coord3f)(GLIContext ctx, GLfloat s, GLfloat t, GLfloat r); + void (*tex_coord3fv)(GLIContext ctx, const GLfloat *v); + void (*tex_coord3i)(GLIContext ctx, GLint s, GLint t, GLint r); + void (*tex_coord3iv)(GLIContext ctx, const GLint *v); + void (*tex_coord3s)(GLIContext ctx, GLshort s, GLshort t, GLshort r); + void (*tex_coord3sv)(GLIContext ctx, const GLshort *v); + void (*tex_coord4d)(GLIContext ctx, GLdouble s, GLdouble t, GLdouble r, GLdouble q); + void (*tex_coord4dv)(GLIContext ctx, const GLdouble *v); + void (*tex_coord4f)(GLIContext ctx, GLfloat s, GLfloat t, GLfloat r, GLfloat q); + void (*tex_coord4fv)(GLIContext ctx, const GLfloat *v); + void (*tex_coord4i)(GLIContext ctx, GLint s, GLint t, GLint r, GLint q); + void (*tex_coord4iv)(GLIContext ctx, const GLint *v); + void (*tex_coord4s)(GLIContext ctx, GLshort s, GLshort t, GLshort r, GLshort q); + void (*tex_coord4sv)(GLIContext ctx, const GLshort *v); + void (*tex_coord_pointer)(GLIContext ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*tex_envf)(GLIContext ctx, GLenum target, GLenum pname, GLfloat param); + void (*tex_envfv)(GLIContext ctx, GLenum target, GLenum pname, const GLfloat *params); + void (*tex_envi)(GLIContext ctx, GLenum target, GLenum pname, GLint param); + void (*tex_enviv)(GLIContext ctx, GLenum target, GLenum pname, const GLint *params); + void (*tex_gend)(GLIContext ctx, GLenum coord, GLenum pname, GLdouble param); + void (*tex_gendv)(GLIContext ctx, GLenum coord, GLenum pname, const GLdouble *params); + void (*tex_genf)(GLIContext ctx, GLenum coord, GLenum pname, GLfloat param); + void (*tex_genfv)(GLIContext ctx, GLenum coord, GLenum pname, const GLfloat *params); + void (*tex_geni)(GLIContext ctx, GLenum coord, GLenum pname, GLint param); + void (*tex_geniv)(GLIContext ctx, GLenum coord, GLenum pname, const GLint *params); + void (*tex_image1D)(GLIContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLenum format, GLenum type, const GLvoid *pixels); + void (*tex_image2D)(GLIContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLenum format, GLenum type, const GLvoid *pixels); + void (*tex_parameterf)(GLIContext ctx, GLenum target, GLenum pname, GLfloat param); + void (*tex_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, const GLfloat *params); + void (*tex_parameteri)(GLIContext ctx, GLenum target, GLenum pname, GLint param); + void (*tex_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, const GLint *params); + void (*tex_sub_image1D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLenum type, const GLvoid *pixels); + void (*tex_sub_image2D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *pixels); + void (*translated)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z); + void (*translatef)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z); + void (*vertex2d)(GLIContext ctx, GLdouble x, GLdouble y); + void (*vertex2dv)(GLIContext ctx, const GLdouble *v); + void (*vertex2f)(GLIContext ctx, GLfloat x, GLfloat y); + void (*vertex2fv)(GLIContext ctx, const GLfloat *v); + void (*vertex2i)(GLIContext ctx, GLint x, GLint y); + void (*vertex2iv)(GLIContext ctx, const GLint *v); + void (*vertex2s)(GLIContext ctx, GLshort x, GLshort y); + void (*vertex2sv)(GLIContext ctx, const GLshort *v); + void (*vertex3d)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z); + void (*vertex3dv)(GLIContext ctx, const GLdouble *v); + void (*vertex3f)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z); + void (*vertex3fv)(GLIContext ctx, const GLfloat *v); + void (*vertex3i)(GLIContext ctx, GLint x, GLint y, GLint z); + void (*vertex3iv)(GLIContext ctx, const GLint *v); + void (*vertex3s)(GLIContext ctx, GLshort x, GLshort y, GLshort z); + void (*vertex3sv)(GLIContext ctx, const GLshort *v); + void (*vertex4d)(GLIContext ctx, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*vertex4dv)(GLIContext ctx, const GLdouble *v); + void (*vertex4f)(GLIContext ctx, GLfloat x, GLfloat y, GLfloat z, GLfloat w); + void (*vertex4fv)(GLIContext ctx, const GLfloat *v); + void (*vertex4i)(GLIContext ctx, GLint x, GLint y, GLint z, GLint w); + void (*vertex4iv)(GLIContext ctx, const GLint *v); + void (*vertex4s)(GLIContext ctx, GLshort x, GLshort y, GLshort z, GLshort w); + void (*vertex4sv)(GLIContext ctx, const GLshort *v); + void (*vertex_pointer)(GLIContext ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*viewport)(GLIContext ctx, GLint x, GLint y, GLsizei width, GLsizei height); + void (*blend_func_separate)(GLIContext ctx, GLenum sfactorRGB, GLenum dfactorRGB, GLenum sfactorAlpha, GLenum dfactorAlpha); + void (*blend_color)(GLIContext ctx, GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha); + void (*blend_equation)(GLIContext ctx, GLenum mode); + void (*lock_arrays_EXT)(GLIContext ctx, GLint first, GLsizei count); + void (*unlock_arrays_EXT)(GLIContext ctx); + void (*client_active_texture)(GLIContext ctx, GLenum target); + void (*active_texture)(GLIContext ctx, GLenum target); + void (*multi_tex_coord1d)(GLIContext ctx, GLenum target, GLdouble s); + void (*multi_tex_coord1dv)(GLIContext ctx, GLenum target, const GLdouble *v); + void (*multi_tex_coord1f)(GLIContext ctx, GLenum target, GLfloat s); + void (*multi_tex_coord1fv)(GLIContext ctx, GLenum target, const GLfloat *v); + void (*multi_tex_coord1i)(GLIContext ctx, GLenum target, GLint s); + void (*multi_tex_coord1iv)(GLIContext ctx, GLenum target, const GLint *v); + void (*multi_tex_coord1s)(GLIContext ctx, GLenum target, GLshort s); + void (*multi_tex_coord1sv)(GLIContext ctx, GLenum target, const GLshort *v); + void (*multi_tex_coord2d)(GLIContext ctx, GLenum target, GLdouble s, GLdouble t); + void (*multi_tex_coord2dv)(GLIContext ctx, GLenum target, const GLdouble *v); + void (*multi_tex_coord2f)(GLIContext ctx, GLenum target, GLfloat s, GLfloat t); + void (*multi_tex_coord2fv)(GLIContext ctx, GLenum target, const GLfloat *v); + void (*multi_tex_coord2i)(GLIContext ctx, GLenum target, GLint s, GLint t); + void (*multi_tex_coord2iv)(GLIContext ctx, GLenum target, const GLint *v); + void (*multi_tex_coord2s)(GLIContext ctx, GLenum target, GLshort s, GLshort t); + void (*multi_tex_coord2sv)(GLIContext ctx, GLenum target, const GLshort *v); + void (*multi_tex_coord3d)(GLIContext ctx, GLenum target, GLdouble s, GLdouble t, GLdouble r); + void (*multi_tex_coord3dv)(GLIContext ctx, GLenum target, const GLdouble *v); + void (*multi_tex_coord3f)(GLIContext ctx, GLenum target, GLfloat s, GLfloat t, GLfloat r); + void (*multi_tex_coord3fv)(GLIContext ctx, GLenum target, const GLfloat *v); + void (*multi_tex_coord3i)(GLIContext ctx, GLenum target, GLint s, GLint t, GLint r); + void (*multi_tex_coord3iv)(GLIContext ctx, GLenum target, const GLint *v); + void (*multi_tex_coord3s)(GLIContext ctx, GLenum target, GLshort s, GLshort t, GLshort r); + void (*multi_tex_coord3sv)(GLIContext ctx, GLenum target, const GLshort *v); + void (*multi_tex_coord4d)(GLIContext ctx, GLenum target, GLdouble s, GLdouble t, GLdouble r, GLdouble q); + void (*multi_tex_coord4dv)(GLIContext ctx, GLenum target, const GLdouble *v); + void (*multi_tex_coord4f)(GLIContext ctx, GLenum target, GLfloat s, GLfloat t, GLfloat r, GLfloat q); + void (*multi_tex_coord4fv)(GLIContext ctx, GLenum target, const GLfloat *v); + void (*multi_tex_coord4i)(GLIContext ctx, GLenum target, GLint s, GLint t, GLint r, GLint q); + void (*multi_tex_coord4iv)(GLIContext ctx, GLenum target, const GLint *v); + void (*multi_tex_coord4s)(GLIContext ctx, GLenum target, GLshort s, GLshort t, GLshort r, GLshort q); + void (*multi_tex_coord4sv)(GLIContext ctx, GLenum target, const GLshort *v); + void (*load_transpose_matrixd)(GLIContext ctx, const GLdouble *m); + void (*load_transpose_matrixf)(GLIContext ctx, const GLfloat *m); + void (*mult_transpose_matrixd)(GLIContext ctx, const GLdouble *m); + void (*mult_transpose_matrixf)(GLIContext ctx, const GLfloat *m); + void (*compressed_tex_image3D)(GLIContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, const GLvoid *data); + void (*compressed_tex_image2D)(GLIContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLsizei height, GLint border, GLsizei imageSize, const GLvoid *data); + void (*compressed_tex_image1D)(GLIContext ctx, GLenum target, GLint level, GLenum internalformat, GLsizei width, GLint border, GLsizei imageSize, const GLvoid *data); + void (*compressed_tex_sub_image3D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLsizei imageSize, const GLvoid *data); + void (*compressed_tex_sub_image2D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, const GLvoid *data); + void (*compressed_tex_sub_image1D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLsizei width, GLenum format, GLsizei imageSize, const GLvoid *data); + void (*get_compressed_tex_image)(GLIContext ctx, GLenum target, GLint level, GLvoid *img); + void (*secondary_color3b)(GLIContext ctx, GLbyte red, GLbyte green, GLbyte blue); + void (*secondary_color3bv)(GLIContext ctx, const GLbyte *v); + void (*secondary_color3d)(GLIContext ctx, GLdouble red, GLdouble green, GLdouble blue); + void (*secondary_color3dv)(GLIContext ctx, const GLdouble *v); + void (*secondary_color3f)(GLIContext ctx, GLfloat red, GLfloat green, GLfloat blue); + void (*secondary_color3fv)(GLIContext ctx, const GLfloat *v); + void (*secondary_color3i)(GLIContext ctx, GLint red, GLint green, GLint blue); + void (*secondary_color3iv)(GLIContext ctx, const GLint *v); + void (*secondary_color3s)(GLIContext ctx, GLshort red, GLshort green, GLshort blue); + void (*secondary_color3sv)(GLIContext ctx, const GLshort *v); + void (*secondary_color3ub)(GLIContext ctx, GLubyte red, GLubyte green, GLubyte blue); + void (*secondary_color3ubv)(GLIContext ctx, const GLubyte *v); + void (*secondary_color3ui)(GLIContext ctx, GLuint red, GLuint green, GLuint blue); + void (*secondary_color3uiv)(GLIContext ctx, const GLuint *v); + void (*secondary_color3us)(GLIContext ctx, GLushort red, GLushort green, GLushort blue); + void (*secondary_color3usv)(GLIContext ctx, const GLushort *v); + void (*secondary_color_pointer)(GLIContext ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*vertex_array_range_EXT)(GLIContext ctx, GLsizei count, const GLvoid *pointer); + void (*flush_vertex_array_range_EXT)(GLIContext ctx, GLsizei count, const GLvoid *pointer); + void (*draw_range_elements)(GLIContext ctx, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices); + void (*color_table)(GLIContext ctx, GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *table); + void (*color_table_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, const GLfloat *params); + void (*color_table_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, const GLint *params); + void (*copy_color_table)(GLIContext ctx, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); + void (*get_color_table)(GLIContext ctx, GLenum target, GLenum format, GLenum type, GLvoid *table); + void (*get_color_table_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat *params); + void (*get_color_table_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*color_sub_table)(GLIContext ctx, GLenum target, GLsizei start, GLsizei count, GLenum format, GLenum type, const GLvoid *data); + void (*copy_color_sub_table)(GLIContext ctx, GLenum target, GLsizei start, GLint x, GLint y, GLsizei width); + void (*convolution_filter1D)(GLIContext ctx, GLenum target, GLenum internalformat, GLsizei width, GLenum format, GLenum type, const GLvoid *image); + void (*convolution_filter2D)(GLIContext ctx, GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *image); + void (*convolution_parameterf)(GLIContext ctx, GLenum target, GLenum pname, GLfloat params); + void (*convolution_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, const GLfloat *params); + void (*convolution_parameteri)(GLIContext ctx, GLenum target, GLenum pname, GLint params); + void (*convolution_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, const GLint *params); + void (*copy_convolution_filter1D)(GLIContext ctx, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width); + void (*copy_convolution_filter2D)(GLIContext ctx, GLenum target, GLenum internalformat, GLint x, GLint y, GLsizei width, GLsizei height); + void (*get_convolution_filter)(GLIContext ctx, GLenum target, GLenum format, GLenum type, GLvoid *image); + void (*get_convolution_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat *params); + void (*get_convolution_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*get_separable_filter)(GLIContext ctx, GLenum target, GLenum format, GLenum type, GLvoid *row, GLvoid *column, GLvoid *span); + void (*separable_filter2D)(GLIContext ctx, GLenum target, GLenum internalformat, GLsizei width, GLsizei height, GLenum format, GLenum type, const GLvoid *row, const GLvoid *column); + void (*get_histogram)(GLIContext ctx, GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); + void (*get_histogram_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat *params); + void (*get_histogram_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*get_minmax)(GLIContext ctx, GLenum target, GLboolean reset, GLenum format, GLenum type, GLvoid *values); + void (*get_minmax_parameterfv)(GLIContext ctx, GLenum target, GLenum pname, GLfloat *params); + void (*get_minmax_parameteriv)(GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*histogram)(GLIContext ctx, GLenum target, GLsizei width, GLenum internalformat, GLboolean sink); + void (*minmax)(GLIContext ctx, GLenum target, GLenum internalformat, GLboolean sink); + void (*reset_histogram)(GLIContext ctx, GLenum target); + void (*reset_minmax)(GLIContext ctx, GLenum target); + void (*tex_image3D)(GLIContext ctx, GLenum target, GLint level, GLenum internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLint border, GLenum format, GLenum type, const GLvoid *pixels); + void (*tex_sub_image3D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const GLvoid *pixels); + void (*copy_tex_sub_image3D)(GLIContext ctx, GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset, GLint x, GLint y, GLsizei width, GLsizei height); + void (*get_uniform_indices) (GLIContext ctx, GLuint program, GLsizei uniformCount, const GLchar* const *uniformNames, GLuint* uniformIndices); + void (*get_active_uniformsiv) (GLIContext ctx, GLuint program, GLsizei uniformCount, const GLuint* uniformIndices, GLenum pname, GLint* params); + void (*get_active_uniform_name) (GLIContext ctx, GLuint program, GLuint uniformIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformName); + GLuint (*get_uniform_block_index) (GLIContext ctx, GLuint program, const GLchar* uniformBlockName); + void (*get_active_uniform_blockiv) (GLIContext ctx, GLuint program, GLuint uniformBlockIndex, GLenum pname, GLint* params); + void (*get_active_uniform_block_name) (GLIContext ctx, GLuint program, GLuint uniformBlockIndex, GLsizei bufSize, GLsizei* length, GLchar* uniformBlockName); + void (*uniform_block_binding) (GLIContext ctx, GLuint program, GLuint uniformBlockIndex, GLuint uniformBlockBinding); + void (*get_combiner_input_parameterfv_NV)(GLIContext ctx, GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLfloat *params); + void (*get_combiner_input_parameteriv_NV)(GLIContext ctx, GLenum stage, GLenum portion, GLenum variable, GLenum pname, GLint *params); + void (*get_combiner_output_parameterfv_NV)(GLIContext ctx, GLenum stage, GLenum portion, GLenum pname, GLfloat *params); + void (*get_combiner_output_parameteriv_NV)(GLIContext ctx, GLenum stage, GLenum portion, GLenum pname, GLint *params); + void (*get_final_combiner_input_parameterfv_NV)(GLIContext ctx, GLenum variable, GLenum pname, GLfloat *params); + void (*get_final_combiner_input_parameteriv_NV)(GLIContext ctx, GLenum variable, GLenum pname, GLint *params); + void (*combiner_stage_parameterfv_NV)(GLIContext ctx, GLenum stage, GLenum pname, const GLfloat *params); + void (*get_combiner_stage_parameterfv_NV)(GLIContext ctx, GLenum stage, GLenum pname, GLfloat *params); + void (*texture_range_APPLE)(GLIContext ctx, GLenum target, GLsizei length, const GLvoid *pointer); + void (*get_tex_parameter_pointerv_APPLE)(GLIContext ctx, GLenum target, GLenum pname, GLvoid **params); + void (*blend_equation_separate_EXT)(GLIContext ctx, GLenum equationRGB, GLenum equationAlpha); + void (*sample_coverage)(GLIContext ctx, GLclampf value, GLboolean invert); + void (*sample_pass)(GLIContext ctx, GLenum mode); + void (*pn_trianglesi_ATI)(GLIContext ctx, GLenum pname, GLint param); + void (*pn_trianglesf_ATI)(GLIContext ctx, GLenum pname, GLfloat param); + void (*gen_fences_APPLE)(GLIContext ctx, GLsizei n, GLuint *fences); + void (*delete_fences_APPLE)(GLIContext ctx, GLsizei n, const GLuint *fences); + void (*set_fence_APPLE)(GLIContext ctx, GLuint fence); + GLboolean (*is_fence_APPLE)(GLIContext ctx, GLuint fence); + GLboolean (*test_fence_APPLE)(GLIContext ctx, GLuint fence); + void (*finish_fence_APPLE)(GLIContext ctx, GLuint fence); + GLboolean (*test_object_APPLE)(GLIContext ctx, GLenum object, GLuint name); + void (*finish_object_APPLE)(GLIContext ctx, GLenum object, GLuint name); + void (*bind_program_ARB)(GLIContext ctx, GLenum target, GLuint program); + void (*delete_programs_ARB)(GLIContext ctx, GLsizei n, const GLuint *programs); + void (*gen_programs_ARB)(GLIContext ctx, GLsizei n, GLuint *programs); + GLboolean (*is_program_ARB)(GLIContext ctx, GLuint program); + void (*vertex_attrib1s_ARB)(GLIContext ctx, GLuint index, GLshort x); + void (*vertex_attrib1f_ARB)(GLIContext ctx, GLuint index, GLfloat x); + void (*vertex_attrib1d_ARB)(GLIContext ctx, GLuint index, GLdouble x); + void (*vertex_attrib2s_ARB)(GLIContext ctx, GLuint index, GLshort x, GLshort y); + void (*vertex_attrib2f_ARB)(GLIContext ctx, GLuint index, GLfloat x, GLfloat y); + void (*vertex_attrib2d_ARB)(GLIContext ctx, GLuint index, GLdouble x, GLdouble y); + void (*vertex_attrib3s_ARB)(GLIContext ctx, GLuint index, GLshort x, GLshort y, GLshort z); + void (*vertex_attrib3f_ARB)(GLIContext ctx, GLuint index, GLfloat x, GLfloat y, GLfloat z); + void (*vertex_attrib3d_ARB)(GLIContext ctx, GLuint index, GLdouble x, GLdouble y, GLdouble z); + void (*vertex_attrib4s_ARB)(GLIContext ctx, GLuint index, GLshort x, GLshort y, GLshort z, GLshort w); + void (*vertex_attrib4f_ARB)(GLIContext ctx, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); + void (*vertex_attrib4d_ARB)(GLIContext ctx, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*vertex_attrib4Nub_ARB)(GLIContext ctx, GLuint index, GLubyte x, GLubyte y, GLubyte z, GLubyte w); + void (*vertex_attrib1sv_ARB)(GLIContext ctx, GLuint index, const GLshort *v); + void (*vertex_attrib1fv_ARB)(GLIContext ctx, GLuint index, const GLfloat *v); + void (*vertex_attrib1dv_ARB)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attrib2sv_ARB)(GLIContext ctx, GLuint index, const GLshort *v); + void (*vertex_attrib2fv_ARB)(GLIContext ctx, GLuint index, const GLfloat *v); + void (*vertex_attrib2dv_ARB)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attrib3sv_ARB)(GLIContext ctx, GLuint index, const GLshort *v); + void (*vertex_attrib3fv_ARB)(GLIContext ctx, GLuint index, const GLfloat *v); + void (*vertex_attrib3dv_ARB)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attrib4bv_ARB)(GLIContext ctx, GLuint index, const GLbyte *v); + void (*vertex_attrib4sv_ARB)(GLIContext ctx, GLuint index, const GLshort *v); + void (*vertex_attrib4iv_ARB)(GLIContext ctx, GLuint index, const GLint *v); + void (*vertex_attrib4ubv_ARB)(GLIContext ctx, GLuint index, const GLubyte *v); + void (*vertex_attrib4usv_ARB)(GLIContext ctx, GLuint index, const GLushort *v); + void (*vertex_attrib4uiv_ARB)(GLIContext ctx, GLuint index, const GLuint *v); + void (*vertex_attrib4fv_ARB)(GLIContext ctx, GLuint index, const GLfloat *v); + void (*vertex_attrib4dv_ARB)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attrib4Nbv_ARB)(GLIContext ctx, GLuint index, const GLbyte *v); + void (*vertex_attrib4Nsv_ARB)(GLIContext ctx, GLuint index, const GLshort *v); + void (*vertex_attrib4Niv_ARB)(GLIContext ctx, GLuint index, const GLint *v); + void (*vertex_attrib4Nubv_ARB)(GLIContext ctx, GLuint index, const GLubyte *v); + void (*vertex_attrib4Nusv_ARB)(GLIContext ctx, GLuint index, const GLushort *v); + void (*vertex_attrib4Nuiv_ARB)(GLIContext ctx, GLuint index, const GLuint *v); + void (*vertex_attrib_pointer_ARB)(GLIContext ctx, GLuint index, GLint size, GLenum type, GLboolean normalized, GLsizei stride, const GLvoid *pointer); + void (*enable_vertex_attrib_array_ARB)(GLIContext ctx, GLuint index); + void (*disable_vertex_attrib_array_ARB)(GLIContext ctx, GLuint index); + void (*get_vertex_attribdv_ARB)(GLIContext ctx, GLuint index, GLenum pname, GLdouble *params); + void (*get_vertex_attribfv_ARB)(GLIContext ctx, GLuint index, GLenum pname, GLfloat *params); + void (*get_vertex_attribiv_ARB)(GLIContext ctx, GLuint index, GLenum pname, GLint *params); + void (*get_vertex_attrib_pointerv_ARB)(GLIContext ctx, GLuint index, GLenum pname, GLvoid **pointer); + void (*program_env_parameter4d_ARB)(GLIContext ctx, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*program_env_parameter4dv_ARB)(GLIContext ctx, GLenum target, GLuint index, const GLdouble *params); + void (*program_env_parameter4f_ARB)(GLIContext ctx, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); + void (*program_env_parameter4fv_ARB)(GLIContext ctx, GLenum target, GLuint index, const GLfloat *params); + void (*program_local_parameter4d_ARB)(GLIContext ctx, GLenum target, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*program_local_parameter4dv_ARB)(GLIContext ctx, GLenum target, GLuint index, const GLdouble *params); + void (*program_local_parameter4f_ARB)(GLIContext ctx, GLenum target, GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w); + void (*program_local_parameter4fv_ARB)(GLIContext ctx, GLenum target, GLuint index, const GLfloat *params); + void (*get_program_env_parameterdv_ARB)(GLIContext ctx, GLenum target, GLuint index, GLdouble *params); + void (*get_program_env_parameterfv_ARB)(GLIContext ctx, GLenum target, GLuint index, GLfloat *params); + void (*get_program_local_parameterdv_ARB)(GLIContext ctx, GLenum target, GLuint index, GLdouble *params); + void (*get_program_local_parameterfv_ARB)(GLIContext ctx, GLenum target, GLuint index, GLfloat *params); + void (*program_string_ARB)(GLIContext ctx, GLenum target, GLenum format, GLsizei len, const GLvoid* string); + void (*get_program_string_ARB)(GLIContext ctx, GLenum target, GLenum pname, GLvoid *string); + void (*get_programiv_ARB)(GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*enable_vertex_attrib_ARB)(GLIContext ctx, GLuint index, GLenum pname); + void (*disable_vertex_attrib_ARB)(GLIContext ctx, GLuint index, GLenum pname); + GLboolean (*is_vertex_attrib_enabled_ARB)(GLIContext ctx, GLuint index, GLenum pname); + void (*map_vertex_attrib1d_ARB)(GLIContext ctx, GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint stride, GLint order, const GLdouble *points); + void (*map_vertex_attrib1f_ARB)(GLIContext ctx, GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint stride, GLint order, const GLfloat *points); + void (*map_vertex_attrib2d_ARB)(GLIContext ctx, GLuint index, GLuint size, GLdouble u1, GLdouble u2, GLint ustride, GLint uorder, GLdouble v1, GLdouble v2, GLint vstride, GLint vorder, const GLdouble *points); + void (*map_vertex_attrib2f_ARB)(GLIContext ctx, GLuint index, GLuint size, GLfloat u1, GLfloat u2, GLint ustride, GLint uorder, GLfloat v1, GLfloat v2, GLint vstride, GLint vorder, const GLfloat *points); + void (*point_parameterf)(GLIContext ctx, GLenum pname, GLfloat param); + void (*point_parameterfv)(GLIContext ctx, GLenum pname, const GLfloat *params); + void (*point_parameteri)(GLIContext ctx, GLenum pname, GLint param); + void (*point_parameteriv)(GLIContext ctx, GLenum pname, const GLint *params); + void (*fog_coordf)(GLIContext ctx, GLfloat coord); + void (*fog_coordfv)(GLIContext ctx, const GLfloat *coord); + void (*fog_coordd)(GLIContext ctx, GLdouble coord); + void (*fog_coorddv)(GLIContext ctx, const GLdouble *coord); + void (*fog_coord_pointer)(GLIContext ctx, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*vertex_array_parameteri_EXT)(GLIContext ctx, GLenum pname, GLint param); + void (*bind_vertex_array_EXT)(GLIContext ctx, GLuint id); + void (*delete_vertex_arrays_EXT)(GLIContext ctx, GLsizei n, const GLuint *ids); + void (*gen_vertex_arrays_EXT)(GLIContext ctx, GLsizei n, GLuint *ids); + GLboolean (*is_vertex_array_EXT)(GLIContext ctx, GLuint id); + void (*element_pointer_APPLE)(GLIContext ctx, GLenum type, const GLvoid *pointer); + void (*draw_element_array_APPLE)(GLIContext ctx, GLenum mode, GLint first, GLsizei count); + void (*draw_range_element_array_APPLE)(GLIContext ctx, GLenum mode, GLuint start, GLuint end, GLint first, GLsizei count); + void (*weightbv_ARB)(GLIContext ctx, GLint size, const GLbyte *weights); + void (*weightsv_ARB)(GLIContext ctx, GLint size, const GLshort *weights); + void (*weightiv_ARB)(GLIContext ctx, GLint size, const GLint *weights); + void (*weightfv_ARB)(GLIContext ctx, GLint size, const GLfloat *weights); + void (*weightdv_ARB)(GLIContext ctx, GLint size, const GLdouble *weights); + void (*weightubv_ARB)(GLIContext ctx, GLint size, const GLubyte *weights); + void (*weightusv_ARB)(GLIContext ctx, GLint size, const GLushort *weights); + void (*weightuiv_ARB)(GLIContext ctx, GLint size, const GLuint *weights); + void (*weight_pointer_ARB)(GLIContext ctx, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*vertex_blend_ARB)(GLIContext ctx, GLint count); + void (*multi_draw_arrays)(GLIContext ctx, GLenum mode, const GLint *first, const GLsizei *count, GLsizei drawcount); + void (*multi_draw_elements)(GLIContext ctx, GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei drawcount); + void (*window_pos2d) (GLIContext ctx, GLdouble x, GLdouble y); + void (*window_pos2dv) (GLIContext ctx, const GLdouble *v); + void (*window_pos2f) (GLIContext ctx, GLfloat x, GLfloat y); + void (*window_pos2fv) (GLIContext ctx, const GLfloat *v); + void (*window_pos2i) (GLIContext ctx, GLint x, GLint y); + void (*window_pos2iv) (GLIContext ctx, const GLint *v); + void (*window_pos2s) (GLIContext ctx, GLshort x, GLshort y); + void (*window_pos2sv) (GLIContext ctx, const GLshort *v); + void (*window_pos3d) (GLIContext ctx, GLdouble x, GLdouble y, GLdouble z); + void (*window_pos3dv) (GLIContext ctx, const GLdouble *v); + void (*window_pos3f) (GLIContext ctx, GLfloat x, GLfloat y, GLfloat z); + void (*window_pos3fv) (GLIContext ctx, const GLfloat *v); + void (*window_pos3i) (GLIContext ctx, GLint x, GLint y, GLint z); + void (*window_pos3iv) (GLIContext ctx, const GLint *v); + void (*window_pos3s) (GLIContext ctx, GLshort x, GLshort y, GLshort z); + void (*window_pos3sv) (GLIContext ctx, const GLshort *v); + void (*active_stencil_face_EXT) (GLIContext ctx, GLenum face); + void (*stencil_op_separate_ATI) (GLIContext ctx, GLenum face, GLenum sfail, GLenum dpfail, GLenum dppass); + void (*stencil_func_separate_ATI) (GLIContext ctx, GLenum frontfunc, GLenum backfunc, GLint ref, GLuint mask); + void (*flush_render_APPLE) (GLIContext ctx); + void (*finish_render_APPLE) (GLIContext ctx); + void (*swap_APPLE)(GLIContext ctx); + void (*delete_object_ARB) (GLIContext ctx, GLhandleARB obj); + GLhandleARB (*get_handle_ARB) (GLIContext ctx, GLenum pname); + void (*detach_object_ARB) (GLIContext ctx, GLhandleARB containerObj, GLhandleARB attachedObj); + GLhandleARB (*create_shader_object_ARB) (GLIContext ctx, GLenum shaderType); + void (*shader_source_ARB) (GLIContext ctx, GLhandleARB shaderObj, GLsizei count, const GLcharARB* const *string, const GLint *length); + void (*compile_shader_ARB) (GLIContext ctx, GLhandleARB shaderObj); + GLhandleARB (*create_program_object_ARB) (GLIContext ctx); + void (*attach_object_ARB) (GLIContext ctx, GLhandleARB containerObj, GLhandleARB obj); + void (*link_program_ARB) (GLIContext ctx, GLhandleARB programObj); + void (*use_program_object_ARB) (GLIContext ctx, GLhandleARB programObj); + void (*validate_program_ARB) (GLIContext ctx, GLhandleARB programObj); + void (*uniform1f_ARB) (GLIContext ctx, GLint location, GLfloat v0); + void (*uniform2f_ARB) (GLIContext ctx, GLint location, GLfloat v0, GLfloat v1); + void (*uniform3f_ARB) (GLIContext ctx, GLint location, GLfloat v0, GLfloat v1, GLfloat v2); + void (*uniform4f_ARB) (GLIContext ctx, GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3); + void (*uniform1i_ARB) (GLIContext ctx, GLint location, GLint v0); + void (*uniform2i_ARB) (GLIContext ctx, GLint location, GLint v0, GLint v1); + void (*uniform3i_ARB) (GLIContext ctx, GLint location, GLint v0, GLint v1, GLint v2); + void (*uniform4i_ARB) (GLIContext ctx, GLint location, GLint v0, GLint v1, GLint v2, GLint v3); + void (*uniform1fv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLfloat *value); + void (*uniform2fv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLfloat *value); + void (*uniform3fv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLfloat *value); + void (*uniform4fv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLfloat *value); + void (*uniform1iv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLint *value); + void (*uniform2iv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLint *value); + void (*uniform3iv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLint *value); + void (*uniform4iv_ARB) (GLIContext ctx, GLint location, GLsizei count, const GLint *value); + void (*uniform_matrix2fv_ARB) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*uniform_matrix3fv_ARB) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*uniform_matrix4fv_ARB) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*get_object_parameterfv_ARB) (GLIContext ctx, GLhandleARB obj, GLenum pname, GLfloat *params); + void (*get_object_parameteriv_ARB) (GLIContext ctx, GLhandleARB obj, GLenum pname, GLint *params); + void (*get_info_log_ARB) (GLIContext ctx, GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *infoLog); + void (*get_attached_objects_ARB) (GLIContext ctx, GLhandleARB containerObj, GLsizei maxCount, GLsizei *count, GLhandleARB *obj); + GLint (*get_uniform_location_ARB) (GLIContext ctx, GLhandleARB programObj, const GLcharARB *name); + void (*get_active_uniform_ARB) (GLIContext ctx, GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); + void (*get_uniformfv_ARB) (GLIContext ctx, GLhandleARB programObj, GLint location, GLfloat *params); + void (*get_uniformiv_ARB) (GLIContext ctx, GLhandleARB programObj, GLint location, GLint *params); + void (*get_shader_source_ARB) (GLIContext ctx, GLhandleARB obj, GLsizei maxLength, GLsizei *length, GLcharARB *source); + void (*bind_attrib_location_ARB) (GLIContext ctx, GLhandleARB programObj, GLuint index, const GLcharARB *name); + void (*get_active_attrib_ARB) (GLIContext ctx, GLhandleARB programObj, GLuint index, GLsizei maxLength, GLsizei *length, GLint *size, GLenum *type, GLcharARB *name); + GLint (*get_attrib_location_ARB) (GLIContext ctx, GLhandleARB programObj, const GLcharARB *name); + void (*clamp_color_ARB) (GLIContext ctx, GLenum target, GLenum clamp); + void (*gen_queries) (GLIContext ctx, GLsizei n, GLuint *ids); + void (*delete_queries) (GLIContext ctx, GLsizei n, const GLuint *ids); + GLboolean (*is_query) (GLIContext ctx, GLuint id); + void (*begin_query) (GLIContext ctx, GLenum target, GLuint id); + void (*end_query) (GLIContext ctx, GLenum target); + void (*get_queryiv) (GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*get_query_objectiv) (GLIContext ctx, GLuint id, GLenum pname, GLint *params); + void (*get_query_objectuiv) (GLIContext ctx, GLuint id, GLenum pname, GLuint *params); + void (*bind_buffer) (GLIContext ctx, GLenum target, GLuint buffer); + void (*delete_buffers) (GLIContext ctx, GLsizei n, const GLuint *buffers); + void (*gen_buffers) (GLIContext ctx, GLsizei n, GLuint *buffers); + GLboolean (*is_buffer) (GLIContext ctx, GLuint buffer); + void (*buffer_data) (GLIContext ctx, GLenum target, GLsizeiptrARB size, const GLvoid *data, GLenum usage); + void (*buffer_sub_data) (GLIContext ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, const GLvoid *data); + void (*get_buffer_sub_data) (GLIContext ctx, GLenum target, GLintptrARB offset, GLsizeiptrARB size, GLvoid *data); + GLvoid *(*map_buffer) (GLIContext ctx, GLenum target, GLenum access); + GLboolean (*unmap_buffer) (GLIContext ctx, GLenum target); + void (*get_buffer_parameteriv) (GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*get_buffer_pointerv) (GLIContext ctx, GLenum target, GLenum pname, GLvoid **params); + void (*depth_bounds_EXT) (GLIContext ctx, GLclampd zmin, GLclampd zmax); + void (*draw_buffers_ARB) (GLIContext ctx, GLsizei n, const GLenum *bufs); + + GLboolean (*is_shader) (GLIContext ctx, GLuint shader); + GLboolean (*is_program) (GLIContext ctx, GLuint program); + void (*get_shaderiv) (GLIContext ctx, GLuint shader, GLenum pname, GLint *params); + void (*get_programiv) (GLIContext ctx, GLuint program, GLenum pname, GLint *params); + void (*get_shader_info_log) (GLIContext ctx, GLuint shader, GLsizei bufSize, GLsizei *length, GLchar *infoLog); + void (*get_program_info_log) (GLIContext ctx, GLuint program, GLsizei bufSize, GLsizei *length, GLchar *infoLog); + + void (*stencil_func_separate) (GLIContext ctx, GLenum face, GLenum func, GLint ref, GLuint mask); + void (*stencil_mask_separate) (GLIContext ctx, GLenum face, GLuint mask); + + void (*multi_draw_element_array_APPLE)(GLIContext ctx, GLenum mode, const GLint *first, const GLsizei *count, GLsizei primcount); + void (*multi_draw_range_element_array_APPLE)(GLIContext ctx, GLenum mode, GLuint start, GLuint end, const GLint *first, const GLsizei *count, GLsizei primcount); + + /* EXT_framebuffer_object */ + GLboolean (*is_renderbuffer_EXT) (GLIContext ctx, GLuint renderbuffer); + void (*bind_renderbuffer_EXT) (GLIContext ctx, GLenum target, GLuint renderbuffer); + void (*delete_renderbuffers_EXT) (GLIContext ctx, GLsizei n, const GLuint *renderbuffers); + void (*gen_renderbuffers_EXT) (GLIContext ctx, GLsizei n, GLuint *renderbuffers); + void (*renderbuffer_storage_EXT) (GLIContext ctx, GLenum target, GLenum internalformat, GLsizei width, GLsizei height); + void (*get_renderbuffer_parameteriv_EXT) (GLIContext ctx, GLenum target, GLenum pname, GLint *params); + GLboolean (*is_framebuffer_EXT) (GLIContext ctx, GLuint framebuffer); + void (*bind_framebuffer_EXT) (GLIContext ctx, GLenum target, GLuint framebuffer); + void (*delete_framebuffers_EXT) (GLIContext ctx, GLsizei n, const GLuint *framebuffers); + void (*gen_framebuffers_EXT) (GLIContext ctx, GLsizei n, GLuint *framebuffers); + GLenum (*check_framebuffer_status_EXT) (GLIContext ctx, GLenum target); + void (*framebuffer_texture1D_EXT) (GLIContext ctx, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); + void (*framebuffer_texture2D_EXT) (GLIContext ctx, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level); + void (*framebuffer_texture3D_EXT) (GLIContext ctx, GLenum target, GLenum attachment, GLenum textarget, GLuint texture, GLint level, GLint zoffset); + void (*framebuffer_renderbuffer_EXT) (GLIContext ctx, GLenum target, GLenum attachment, GLenum renderbuffertarget, GLuint renderbuffer); + void (*get_framebuffer_attachment_parameteriv_EXT) (GLIContext ctx, GLenum target, GLenum attachment, GLenum pname, GLint *params); + void (*generate_mipmap_EXT) (GLIContext ctx, GLenum target); + + void (*buffer_parameteri_APPLE) (GLIContext ctx, GLenum target, GLenum pname, GLint param); + void (*flush_mapped_buffer_range_APPLE) (GLIContext ctx, GLenum target, GLintptr offset, GLsizeiptr size); + + void (*program_env_parameters4fv_EXT)(GLIContext ctx, GLenum target, GLuint index, GLsizei count, const GLfloat *params); + void (*program_local_parameters4fv_EXT)(GLIContext ctx, GLenum target, GLuint index, GLsizei count, const GLfloat *params); + + GLenum (*object_purgeable_APPLE)(GLIContext ctx, GLenum objectType, GLuint name, GLenum option); + GLenum (*object_unpurgeable_APPLE)(GLIContext ctx, GLenum objectType, GLuint name, GLenum option); + void (*get_object_parameteriv_APPLE) (GLIContext ctx, GLenum objectType, GLuint name, GLenum pname, GLint* params); + + /* EXT_geometry_shader4 */ + void (*program_parameteri_EXT)(GLIContext ctx, GLuint program_name, GLenum pname, GLint value); + void (*framebuffer_texture_EXT)(GLIContext ctx, GLenum target, GLenum attachment, GLuint texture, GLint level); + void (*framebuffer_texture_layer_EXT)(GLIContext ctx, GLenum target, GLenum attachment, GLuint texture, GLint level, GLint layer); + void (*framebuffer_texture_face_EXT)(GLIContext ctx, GLenum target, GLenum attachment, GLuint texture, GLint level, GLenum face); + + /* EXT_transform_feedback */ + void (*bind_buffer_range_EXT)(GLIContext ctx, GLenum target, GLuint index, GLuint buffer, GLintptr offset, GLsizeiptr size); + void (*bind_buffer_offset_EXT)(GLIContext ctx, GLenum target, GLuint index, GLuint buffer, GLintptr offset); + void (*bind_buffer_base_EXT)(GLIContext ctx, GLenum target, GLuint index, GLuint buffer); + void (*begin_transform_feedback_EXT)(GLIContext ctx, GLenum primitiveMode); + void (*end_transform_feedback_EXT)(GLIContext ctx); + void (*transform_feedback_varyings_EXT)(GLIContext ctx, GLuint program, GLsizei count, const GLchar* const *varyings, GLenum bufferMode); + void (*get_transform_feedback_varying_EXT)(GLIContext ctx, GLuint program, GLuint index, GLsizei bufSize, GLsizei *length, GLsizei *size, GLenum *type, GLchar *name); + void (*get_integer_indexedv_EXT)(GLIContext ctx, GLenum param, GLuint index, GLint *values); + void (*get_boolean_indexedv_EXT)(GLIContext ctx, GLenum param, GLuint index, GLboolean *values); + + /* EXT_bindable_uniform */ + void (*uniform_buffer_EXT)(GLIContext ctx, GLuint program, GLint location, GLuint buffer); + GLint (*get_uniform_buffer_size_EXT)(GLIContext ctx, GLuint program, GLint location); + GLintptr (*get_uniform_buffer_offset_EXT)(GLIContext ctx, GLuint program, GLint location); + + /* EXT_texture_integer */ + void (*clear_colorIi_EXT) (GLIContext ctx, GLint r, GLint g, GLint b, GLint a ); + void (*clear_colorIui_EXT) (GLIContext ctx, GLuint r, GLuint g, GLuint b, GLuint a ); + void (*tex_parameterIiv_EXT)(GLIContext ctx, GLenum target, GLenum pname, GLint *params ); + void (*tex_parameterIuiv_EXT)(GLIContext ctx, GLenum target, GLenum pname, GLuint *params ); + void (*get_tex_parameterIiv_EXT) (GLIContext ctx, GLenum target, GLenum pname, GLint *params); + void (*get_tex_parameterIuiv_EXT) (GLIContext ctx, GLenum target, GLenum pname, GLuint *params); + + /* EXT_gpu_shader4 */ + void (*vertex_attribI1i_EXT)(GLIContext ctx, GLuint index, GLint x); + void (*vertex_attribI2i_EXT)(GLIContext ctx, GLuint index, GLint x, GLint y); + void (*vertex_attribI3i_EXT)(GLIContext ctx, GLuint index, GLint x, GLint y, GLint z); + void (*vertex_attribI4i_EXT)(GLIContext ctx, GLuint index, GLint x, GLint y, GLint z, GLint w); + void (*vertex_attribI1ui_EXT)(GLIContext ctx, GLuint index, GLuint x); + void (*vertex_attribI2ui_EXT)(GLIContext ctx, GLuint index, GLuint x, GLuint y); + void (*vertex_attribI3ui_EXT)(GLIContext ctx, GLuint index, GLuint x, GLuint y, GLuint z); + void (*vertex_attribI4ui_EXT)(GLIContext ctx, GLuint index, GLuint x, GLuint y, GLuint z, GLuint w); + void (*vertex_attribI1iv_EXT)(GLIContext ctx, GLuint index, const GLint *v); + void (*vertex_attribI2iv_EXT)(GLIContext ctx, GLuint index, const GLint *v); + void (*vertex_attribI3iv_EXT)(GLIContext ctx, GLuint index, const GLint *v); + void (*vertex_attribI4iv_EXT)(GLIContext ctx, GLuint index, const GLint *v); + void (*vertex_attribI1uiv_EXT)(GLIContext ctx, GLuint index, const GLuint *v); + void (*vertex_attribI2uiv_EXT)(GLIContext ctx, GLuint index, const GLuint *v); + void (*vertex_attribI3uiv_EXT)(GLIContext ctx, GLuint index, const GLuint *v); + void (*vertex_attribI4uiv_EXT)(GLIContext ctx, GLuint index, const GLuint *v); + void (*vertex_attribI4bv_EXT)(GLIContext ctx, GLuint index, const GLbyte *v); + void (*vertex_attribI4sv_EXT)(GLIContext ctx, GLuint index, const GLshort *v); + void (*vertex_attribI4ubv_EXT)(GLIContext ctx, GLuint index, const GLubyte *v); + void (*vertex_attribI4usv_EXT)(GLIContext ctx, GLuint index, const GLushort *v); + void (*vertex_attribI_pointer_EXT)(GLIContext ctx, GLuint index, GLint size, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*get_vertex_attribIiv_EXT)(GLIContext ctx, GLuint index, GLenum pname, GLint *params); + void (*get_vertex_attribIuiv_EXT)(GLIContext ctx, GLuint index, GLenum pname, GLuint *params); + void (*uniform1ui_EXT)(GLIContext ctx, GLint location, GLuint v0); + void (*uniform2ui_EXT)(GLIContext ctx, GLint location, GLuint v0, GLuint v1); + void (*uniform3ui_EXT)(GLIContext ctx, GLint location, GLuint v0, GLuint v1, GLuint v2); + void (*uniform4ui_EXT)(GLIContext ctx, GLint location, GLuint v0, GLuint v1, GLuint v2, GLuint v3); + void (*uniform1uiv_EXT)(GLIContext ctx, GLint location, GLsizei count, const GLuint *value); + void (*uniform2uiv_EXT)(GLIContext ctx, GLint location, GLsizei count, const GLuint *value); + void (*uniform3uiv_EXT)(GLIContext ctx, GLint location, GLsizei count, const GLuint *value); + void (*uniform4uiv_EXT)(GLIContext ctx, GLint location, GLsizei count, const GLuint *value); + void (*get_uniformuiv_EXT)(GLIContext ctx, GLuint program, GLint location, GLuint *params); + void (*bind_frag_data_location_EXT)(GLIContext ctx, GLuint program, GLuint colorNumber, const GLchar *name); + GLint (*get_frag_data_location_EXT)(GLIContext ctx, GLuint program, const GLchar *name); + + /* EXT_draw_buffers2 */ + void (*color_mask_indexed_EXT) (GLIContext ctx, GLuint index, GLboolean r, GLboolean g, GLboolean b, GLboolean a); + void (*enable_indexed_EXT) (GLIContext ctx, GLenum target, GLuint index); + void (*disable_indexed_EXT) (GLIContext ctx, GLenum target, GLuint index); + GLboolean (*is_enabled_indexed_EXT) (GLIContext ctx, GLenum target, GLuint index); + + /* OpenGL 2.1 */ + void (*uniform_matrix2x3fv) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*uniform_matrix3x2fv) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*uniform_matrix2x4fv) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*uniform_matrix4x2fv) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*uniform_matrix3x4fv) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*uniform_matrix4x3fv) (GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + + /* EXT_framebuffer_blit and EXT_framebuffer_multisample */ + void (*blit_framebuffer_EXT) (GLIContext ctx, GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0, GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter); + void (*renderbuffer_storage_multisample_EXT) (GLIContext ctx, GLenum target, GLsizei samples, GLenum internalformat, GLsizei width, GLsizei height); + + /* NV_conditional_render */ + void (*begin_conditional_render_NV)(GLIContext ctx, GLuint id, GLenum mode); + void (*end_conditional_render_NV)(GLIContext ctx); + + void (*get_attached_shaders) (GLIContext ctx, GLuint program, GLsizei maxCount, GLsizei *count, GLuint *shaders); + + /* EXT_provoking_vertex */ + void (*provoking_vertex_EXT) (GLIContext ctx, GLenum mode); + + /* ARB_instanced_arrays */ + void (*vertex_attrib_divisor) (GLIContext ctx, GLuint index, GLuint divisor); + /* ARB_instanced_arrays and ARB_draw_instanced */ + void (*draw_arrays_instanced)(GLIContext ctx, GLenum mode, GLint first, GLsizei count, GLsizei instancecount); + void (*draw_elements_instanced)(GLIContext ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instancecount); + + /* ARB_draw_elements_base_vertex */ + void (*draw_elements_base_vertex)(GLIContext ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLint base_vertex); + void (*draw_range_elements_base_vertex)(GLIContext ctx, GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, const GLvoid *indices, GLint base_vertex); + void (*draw_elements_instanced_base_vertex)(GLIContext ctx, GLenum mode, GLsizei count, GLenum type, const GLvoid *indices, GLsizei instancecount, GLint base_vertex); + void (*multi_draw_elements_base_vertex)(GLIContext ctx, GLenum mode, const GLsizei *count, GLenum type, const GLvoid* const *indices, GLsizei drawcount, const GLint *base_vertex); + + /* ARB_vertex_array_object / OES_vertex_array_object */ + void (*bind_vertex_array_ARB)(GLIContext ctx, GLuint array); + void (*delete_vertex_arrays_ARB)(GLIContext ctx, GLsizei n, const GLuint *arrays); + void (*gen_vertex_arrays_ARB)(GLIContext ctx, GLsizei n, GLuint *arrays); + GLboolean (*is_vertex_array_ARB)(GLIContext ctx, GLuint array); + + /* APPLE_vertex_point_size */ + void (*point_size_pointer) (GLIContext ctx, GLenum type, GLsizei stride, const GLvoid *pointer); + void (*vertex_point_sizef_APPLE) (GLIContext ctx, GLfloat size); + + /* OpenGL 3.0 */ + void (*clear_bufferiv)(GLIContext ctx, GLenum buffer, GLint drawbuffer, const GLint *value); + void (*clear_bufferuiv)(GLIContext ctx, GLenum buffer, GLint drawbuffer, const GLuint *value); + void (*clear_bufferfv)(GLIContext ctx, GLenum buffer, GLint drawbuffer, const GLfloat *value); + void (*clear_bufferfi)(GLIContext ctx, GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil); + const GLubyte* (*get_stringi)(GLIContext ctx, GLenum name, GLuint index); + + /* ARB_sync */ + GLsync (*fence_sync) (GLIContext ctx, GLenum condition, GLbitfield flags); + GLboolean (*is_sync) (GLIContext ctx, GLsync sync); + void (*delete_sync) (GLIContext ctx, GLsync sync); + GLenum (*client_wait_sync) (GLIContext ctx, GLsync sync, GLbitfield flags, GLuint64 timeout); + void (*wait_sync) (GLIContext ctx, GLsync sync, GLbitfield flags, GLuint64 timeout); + void (*get_integer64v_sync) (GLIContext ctx, GLenum pname, GLint64 *params); + void (*get_synciv) (GLIContext ctx, GLsync sync, GLenum pname, GLsizei bufSize, GLsizei *length, GLint *values); + + /* ARB_texture_multisample */ + void (*tex_image2D_multisample)(GLIContext ctx, GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLboolean fixedsamplelocations); + void (*tex_image3D_multisample)(GLIContext ctx, GLenum target, GLsizei samples, GLint internalformat, GLsizei width, GLsizei height, GLsizei depth, GLboolean fixedsamplelocations); + void (*get_multisamplefv)(GLIContext ctx, GLenum pname, GLuint index, GLfloat *val); + void (*sample_maski)(GLIContext ctx, GLuint index, GLbitfield mask); + + /* ARB_texture_buffer_object */ + void (*tex_buffer)(GLIContext ctx, GLenum target, GLenum internalformat, GLuint buffer); + + /* ARB_copy_buffer */ + void (*copy_buffer_sub_data)(GLIContext ctx, GLenum readtarget, GLenum writetarget, GLintptr readoffset, GLintptr writeoffset, GLsizeiptr size); + + /* NV_primitive_restart */ + void (*primitive_restart_index)(GLIContext ctx, GLuint index); + + /* EXT_timer_query */ + void (*get_query_objecti64v) (GLIContext ctx, GLuint id, GLenum pname, GLint64EXT *params); + void (*get_query_objectui64v) (GLIContext ctx, GLuint id, GLenum pname, GLuint64EXT *params); + + /* ARB_map_buffer_range */ + GLvoid *(*map_buffer_range) (GLIContext ctx, GLenum target, GLintptr offset, GLsizeiptr length, GLenum access); + void (*flush_mapped_buffer_range) (GLIContext ctx, GLenum target, GLintptr offset, GLsizeiptr length); + + /* ARB_timer_query */ + void (*query_counter) (GLIContext ctx, GLuint id, GLenum target); + void (*get_integer64i_v) (GLIContext ctx, GLenum target, GLuint index, GLint64 *data); + void (*get_buffer_parameteri64v)(GLIContext ctx, GLenum target, GLenum pname, GLint64 *params); + + /* ARB_sampler_object */ + void (*gen_samplers) (GLIContext ctx, GLsizei count, GLuint *samplers); + void (*delete_samplers) (GLIContext ctx, GLsizei count, const GLuint *samplers); + GLboolean (*is_sampler) (GLIContext ctx, GLuint sampler); + void (*bind_sampler) (GLIContext ctx, GLuint unit, GLuint sampler); + void (*sampler_parameteri) (GLIContext ctx, GLuint sampler, GLenum pname, GLint param); + void (*sampler_parameteriv) (GLIContext ctx, GLuint sampler, GLenum pname, const GLint *param); + void (*sampler_parameterf) (GLIContext ctx, GLuint sampler, GLenum pname, GLfloat param); + void (*sampler_parameterfv) (GLIContext ctx, GLuint sampler, GLenum pname, const GLfloat *param); + void (*sampler_parameterIiv) (GLIContext ctx, GLuint sampler, GLenum pname, const GLint *param); + void (*sampler_parameterIuiv) (GLIContext ctx, GLuint sampler, GLenum pname, const GLuint *param); + void (*get_sampler_parameteriv) (GLIContext ctx, GLuint sampler, GLenum pname, GLint *params); + void (*get_sampler_parameterfv) (GLIContext ctx, GLuint sampler, GLenum pname, GLfloat *params); + void (*get_sampler_parameterIiv) (GLIContext ctx, GLuint sampler, GLenum pname, GLint *params); + void (*get_sampler_parameterIuiv) (GLIContext ctx, GLuint sampler, GLenum pname, GLuint *params); + + /* EXT_debug_label */ + void (*label_object_EXT)(GLIContext ctx, GLenum type, GLuint object, GLsizei length, const GLchar *label); + void (*get_object_label_EXT)(GLIContext ctx, GLenum type, GLuint object, GLsizei bufSize, GLsizei *length, GLchar *label); + + /* EXT_debug_marker */ + void (*insert_event_marker_EXT)(GLIContext ctx, GLsizei length, const GLchar *marker); + void (*push_group_marker_EXT)(GLIContext ctx, GLsizei length, const GLchar *marker); + void (*pop_group_marker_EXT)(GLIContext ctx); + + /* ARB_separate_shader_objects */ + void (*use_program_stages)(GLIContext ctx, GLuint pipeline, GLbitfield stages, GLuint program); + void (*active_shader_program)(GLIContext ctx, GLuint pipeline, GLuint program); + GLuint (*create_shader_programv)(GLIContext ctx, GLenum type, GLsizei count, const GLchar* const *strings); + void (*bind_program_pipeline)(GLIContext ctx, GLuint pipeline); + void (*delete_program_pipelines)(GLIContext ctx, GLsizei n, const GLuint *pipelines); + void (*gen_program_pipelines)(GLIContext ctx, GLsizei n, GLuint *pipelines); + GLboolean (*is_program_pipeline)(GLIContext ctx, GLuint pipeline); + void (*get_program_pipelineiv)(GLIContext ctx, GLuint pipeline, GLenum pname, GLint *params); + void (*validate_program_pipeline)(GLIContext ctx, GLuint pipeline); + void (*get_program_pipeline_info_log)(GLIContext ctx, GLuint pipeline, GLsizei bufSize, GLsizei *length, GLchar *infoLog); + void (*program_uniform1i)(GLIContext ctx, GLuint program, GLint location, GLint x); + void (*program_uniform2i)(GLIContext ctx, GLuint program, GLint location, GLint x, GLint y); + void (*program_uniform3i)(GLIContext ctx, GLuint program, GLint location, GLint x, GLint y, GLint z); + void (*program_uniform4i)(GLIContext ctx, GLuint program, GLint location, GLint x, GLint y, GLint z, GLint w); + void (*program_uniform1f)(GLIContext ctx, GLuint program, GLint location, GLfloat x); + void (*program_uniform2f)(GLIContext ctx, GLuint program, GLint location, GLfloat x, GLfloat y); + void (*program_uniform3f)(GLIContext ctx, GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z); + void (*program_uniform4f)(GLIContext ctx, GLuint program, GLint location, GLfloat x, GLfloat y, GLfloat z, GLfloat w); + void (*program_uniform1iv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); + void (*program_uniform2iv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); + void (*program_uniform3iv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); + void (*program_uniform4iv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLint *value); + void (*program_uniform1fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); + void (*program_uniform2fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); + void (*program_uniform3fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); + void (*program_uniform4fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLfloat *value); + void (*program_uniform_matrix2fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform_matrix3fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform_matrix4fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform1ui)(GLIContext ctx, GLuint program, GLint location, GLuint x); + void (*program_uniform2ui)(GLIContext ctx, GLuint program, GLint location, GLuint x, GLuint y); + void (*program_uniform3ui)(GLIContext ctx, GLuint program, GLint location, GLuint x, GLuint y, GLuint z); + void (*program_uniform4ui)(GLIContext ctx, GLuint program, GLint location, GLuint x, GLuint y, GLuint z, GLuint w); + void (*program_uniform1uiv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); + void (*program_uniform2uiv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); + void (*program_uniform3uiv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); + void (*program_uniform4uiv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLuint *value); + void (*program_uniform_matrix2x3fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform_matrix3x2fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform_matrix2x4fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform_matrix4x2fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform_matrix3x4fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + void (*program_uniform_matrix4x3fv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLfloat *value); + + /* ARB_blend_func_extended */ + void (*bind_frag_data_location_indexed) (GLIContext ctx, GLuint program, GLuint colorNumber, GLuint index, const GLchar *name); + GLint (*get_frag_data_index) (GLIContext ctx, GLuint program, const GLchar *name); + + /* ARB_draw_buffers_blend */ + void (*blend_func_i) (GLIContext ctx, GLuint buf, GLenum src, GLenum dst); + void (*blend_func_separate_i) (GLIContext ctx, GLuint buf, GLenum srcRGB, GLenum dstRGB, GLenum srcAlpha, GLenum dstAlpha); + void (*blend_equation_i) (GLIContext ctx, GLuint buf, GLenum mode); + void (*blend_equation_separate_i) (GLIContext ctx, GLuint buf, GLenum modeRGB, GLenum modeAlpha); + + /* ARB_shading_language_include */ + void (*named_string_ARB) (GLIContext ctx, GLenum type, GLint namelen, const GLchar *name, GLint stringlen, const GLchar *string); + void (*delete_named_string_ARB) (GLIContext ctx, GLint namelen, const GLchar *name); + void (*compile_shader_include_ARB) (GLIContext ctx, GLuint shader, GLsizei count, const GLchar* const *path, const GLint *length); + GLboolean (*is_named_string_ARB) (GLIContext ctx, GLint namelen, const GLchar *name); + void (*get_named_string_ARB) (GLIContext ctx, GLint namelen, const GLchar *name, GLsizei bufSize, GLint *stringlen, GLchar *string); + void (*get_named_string_iv_ARB) (GLIContext ctx, GLint namelen, const GLchar *name, GLenum pname, GLint *params); + + /* ARB_ES2_compatibility */ + void (*release_shader_compiler)(GLIContext ctx); + void (*shader_binary)(GLIContext ctx, GLint n, GLuint *shaders, GLenum binaryformat, const GLvoid *binary, GLint length); + void (*get_shader_precision_format)(GLIContext ctx, GLenum shadertype, GLenum precisiontype, GLint *range, GLint *precision); + void (*depth_rangef) (GLIContext ctx, GLclampf zNear, GLclampf zFar); + void (*clear_depthf) (GLIContext ctx, GLclampf depth); + + /* ARB_vertex_type_2_10_10_10_rev */ + void (*vertex_attribP1ui) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, GLuint value); + void (*vertex_attribP2ui) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, GLuint value); + void (*vertex_attribP3ui) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, GLuint value); + void (*vertex_attribP4ui) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, GLuint value); + void (*vertex_attribP1uiv) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, const GLuint *value); + void (*vertex_attribP2uiv) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, const GLuint *value); + void (*vertex_attribP3uiv) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, const GLuint *value); + void (*vertex_attribP4uiv) (GLIContext ctx, GLuint index, GLenum type, GLboolean normalized, const GLuint *value); + + /* ARB_get_program_binary */ + void (*get_program_binary) (GLIContext ctx, GLuint program, GLsizei bufSize, GLsizei *length, GLenum *binaryFormat, GLvoid *binary); + void (*program_binary) (GLIContext ctx, GLuint program, GLenum binaryFormat, const GLvoid *binary, GLsizei length); + + /* ARB_sample_shading */ + void (*min_sample_shading) (GLIContext ctx, GLclampf value); + + /* ARB_viewport_array */ + void (*viewport_arrayv) (GLIContext ctx, GLuint first, GLsizei count, const GLfloat * v); + void (*viewport_indexedf) (GLIContext ctx, GLuint index, GLfloat x, GLfloat y, GLfloat w, GLfloat h); + void (*viewport_indexedfv) (GLIContext ctx, GLuint index, const GLfloat * v); + void (*scissor_arrayv) (GLIContext ctx, GLuint first, GLsizei count, const GLint * v); + void (*scissor_indexed) (GLIContext ctx, GLuint index, GLint left, GLint bottom, GLsizei width, GLsizei height); + void (*scissor_indexedv) (GLIContext ctx, GLuint index, const GLint * v); + void (*depth_range_arrayv) (GLIContext ctx, GLuint first, GLsizei count, const GLclampd * v); + void (*depth_range_indexed) (GLIContext ctx, GLuint index, GLclampd n, GLclampd f); + void (*get_floati_v) (GLIContext ctx, GLenum target, GLuint index, GLfloat *data); + void (*get_doublei_v) (GLIContext ctx, GLenum target, GLuint index, GLdouble *data); + + /* ARB_draw_indirect */ + void (*draw_arrays_indirect) (GLIContext ctx, GLenum mode, const GLvoid *indirect); + void (*draw_elements_indirect) (GLIContext ctx, GLenum mode, GLenum type, const GLvoid *indirect); + + /* ARB_tessellation_shader */ + void (*patch_parameteri) (GLIContext ctx, GLenum pname, GLint value); + void (*patch_parameterfv) (GLIContext ctx, GLenum pname, const GLfloat* values); + + /* ARB_transform_feedback2 */ + void (*bind_transform_feedback) (GLIContext ctx, GLenum target, GLuint name); + void (*gen_transform_feedbacks) (GLIContext ctx, GLsizei n, GLuint* ids); + void (*delete_transform_feedbacks) (GLIContext ctx, GLsizei n, const GLuint* ids); + void (*pause_transform_feedback) (GLIContext ctx); + void (*resume_transform_feedback) (GLIContext ctx); + GLboolean (*is_transform_feedback) (GLIContext ctx, GLuint name); + void (*draw_transform_feedback) (GLIContext ctx, GLenum mode, GLuint name); + + /* ARB_transform_feedback3 */ + void (*begin_query_indexed) (GLIContext ctx, GLenum target, GLuint index, GLuint id); + void (*end_query_indexed) (GLIContext ctx, GLenum target, GLuint index); + void (*get_query_indexediv) (GLIContext ctx, GLenum target, GLuint index, GLenum pname, GLint *params); + void (*draw_transform_feedback_stream) (GLIContext ctx, GLenum mode, GLuint name, GLuint stream); + + /* ARB_separate_shader_objects && ARB_gpu_shader_fp64 */ + void (*program_uniform1d)(GLIContext ctx, GLuint program, GLint location, GLdouble x); + void (*program_uniform2d)(GLIContext ctx, GLuint program, GLint location, GLdouble x, GLdouble y); + void (*program_uniform3d)(GLIContext ctx, GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z); + void (*program_uniform4d)(GLIContext ctx, GLuint program, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*program_uniform1dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLdouble *value); + void (*program_uniform2dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLdouble *value); + void (*program_uniform3dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLdouble *value); + void (*program_uniform4dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, const GLdouble *value); + void (*program_uniform_matrix2dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix3dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix4dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix2x3dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix3x2dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix2x4dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix4x2dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix3x4dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*program_uniform_matrix4x3dv)(GLIContext ctx, GLuint program, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + + /* ARB_gpu_shader_fp64 */ + void (*uniform1d)(GLIContext ctx, GLint location, GLdouble x); + void (*uniform2d)(GLIContext ctx, GLint location, GLdouble x, GLdouble y); + void (*uniform3d)(GLIContext ctx, GLint location, GLdouble x, GLdouble y, GLdouble z); + void (*uniform4d)(GLIContext ctx, GLint location, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*uniform1dv)(GLIContext ctx, GLint location, GLsizei count, const GLdouble *value); + void (*uniform2dv)(GLIContext ctx, GLint location, GLsizei count, const GLdouble *value); + void (*uniform3dv)(GLIContext ctx, GLint location, GLsizei count, const GLdouble *value); + void (*uniform4dv)(GLIContext ctx, GLint location, GLsizei count, const GLdouble *value); + void (*uniform_matrix2dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix3dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix4dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix2x3dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix3x2dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix2x4dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix4x2dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix3x4dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*uniform_matrix4x3dv)(GLIContext ctx, GLint location, GLsizei count, GLboolean transpose, const GLdouble *value); + void (*get_uniformdv)(GLIContext ctx, GLuint program_obj, GLint location, GLdouble *params); + + /* ARB_vertex_attrib_64bit */ + void (*vertex_attribl1d)(GLIContext ctx, GLuint index, GLdouble x); + void (*vertex_attribl2d)(GLIContext ctx, GLuint index, GLdouble x, GLdouble y); + void (*vertex_attribl3d)(GLIContext ctx, GLuint index, GLdouble x, GLdouble y, GLdouble z); + void (*vertex_attribl4d)(GLIContext ctx, GLuint index, GLdouble x, GLdouble y, GLdouble z, GLdouble w); + void (*vertex_attribl1dv)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attribl2dv)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attribl3dv)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attribl4dv)(GLIContext ctx, GLuint index, const GLdouble *v); + void (*vertex_attrib_lpointer)(GLIContext ctx, GLuint index, GLint size, GLenum type, GLsizei stride, const void *pointer); + void (*get_vertex_attrib_ldv)(GLIContext ctx, GLuint index, GLenum pname, GLdouble *params); + + /* ARB_shader_subroutine */ + GLint (*get_subroutine_uniform_location)(GLIContext ctx, GLuint program, GLenum shadertype, const GLchar *name); + GLuint (*get_subroutine_index)(GLIContext ctx, GLuint program, GLenum shadertype, const GLchar *name); + void (*get_active_subroutine_uniformiv)(GLIContext ctx, GLuint program, GLenum shadertype, GLuint index, GLenum pname, GLint *values); + void (*get_active_subroutine_uniform_name)(GLIContext ctx, GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); + void (*get_active_subroutine_name)(GLIContext ctx, GLuint program, GLenum shadertype, GLuint index, GLsizei bufsize, GLsizei *length, GLchar *name); + void (*uniform_subroutinesuiv)(GLIContext ctx, GLenum shadertype, GLsizei count, const GLuint *indices); + void (*get_uniform_subroutineuiv)(GLIContext ctx, GLenum shadertype, GLint location, GLuint *params); + void (*get_program_stageiv)(GLIContext ctx, GLuint program, GLenum shadertype, GLenum pname, GLint *values); + + + /* ARB_internalformat_query */ + void (*get_internal_formativ) (GLIContext ctx, GLenum target, GLenum internalformat, GLenum pname, GLsizei bufSize, GLint* params); + + /* ARB_texture_storage */ + void (*tex_storage1D) (GLIContext ctx, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width); + void (*tex_storage2D) (GLIContext ctx, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height); + void (*tex_storage3D) (GLIContext ctx, GLenum target, GLsizei levels, GLenum internalformat, GLsizei width, GLsizei height, GLsizei depth); + + /* GL_APPLE_label_process */ + void (*label_object_with_responsible_process_APPLE) (GLIContext ctx, GLenum type, GLuint name, GLint pid); + + /* GL_NV_texture_barrier */ + void (*texture_barrier_NV) (GLIContext ctx); + +} GLIFunctionDispatch; + + +#ifdef __cplusplus +} +#endif + +#endif /* _GLIDISPATCH_H */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gltypes.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gltypes.h" new file mode 100644 index 0000000..bba4bef --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gltypes.h" @@ -0,0 +1,59 @@ +/* + Copyright: (c) 2010-2012 Apple Inc. All rights reserved. +*/ +#ifndef __gltypes_h_ +#define __gltypes_h_ + +#include + +typedef uint32_t GLbitfield; +typedef uint8_t GLboolean; +typedef int8_t GLbyte; +typedef float GLclampf; +typedef uint32_t GLenum; +typedef float GLfloat; +typedef int32_t GLint; +typedef int16_t GLshort; +typedef int32_t GLsizei; +typedef uint8_t GLubyte; +typedef uint32_t GLuint; +typedef uint16_t GLushort; +typedef void GLvoid; + +#if !defined(GL_VERSION_2_0) +typedef char GLchar; +#endif +#if !defined(GL_ARB_shader_objects) +typedef char GLcharARB; +typedef void *GLhandleARB; +#endif +typedef double GLdouble; +typedef double GLclampd; +#if !defined(ARB_ES2_compatibility) && !defined(GL_VERSION_4_1) +typedef int32_t GLfixed; +#endif +#if !defined(GL_ARB_half_float_vertex) && !defined(GL_VERSION_3_0) +typedef uint16_t GLhalf; +#endif +#if !defined(GL_ARB_half_float_pixel) +typedef uint16_t GLhalfARB; +#endif +#if !defined(GL_ARB_sync) && !defined(GL_VERSION_3_2) +typedef int64_t GLint64; +typedef struct __GLsync *GLsync; +typedef uint64_t GLuint64; +#endif +#if !defined(GL_EXT_timer_query) +typedef int64_t GLint64EXT; +typedef uint64_t GLuint64EXT; +#endif +#if !defined(GL_VERSION_1_5) +typedef intptr_t GLintptr; +typedef intptr_t GLsizeiptr; +#endif +#if !defined(GL_ARB_vertex_buffer_object) +typedef intptr_t GLintptrARB; +typedef intptr_t GLsizeiptrARB; +#endif + +#endif diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/glu.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/glu.h" new file mode 100644 index 0000000..12597a6 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/glu.h" @@ -0,0 +1,304 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef __glu_h__ +#define __glu_h__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + + +/*************************************************************/ + +/* Extensions */ +#define GLU_EXT_object_space_tess 1 +#define GLU_EXT_nurbs_tessellator 1 + +/* Boolean */ +#define GLU_FALSE 0 +#define GLU_TRUE 1 + +/* Version */ +#define GLU_VERSION_1_1 1 +#define GLU_VERSION_1_2 1 +#define GLU_VERSION_1_3 1 + +/* StringName */ +#define GLU_VERSION 100800 +#define GLU_EXTENSIONS 100801 + +/* ErrorCode */ +#define GLU_INVALID_ENUM 100900 +#define GLU_INVALID_VALUE 100901 +#define GLU_OUT_OF_MEMORY 100902 +#define GLU_INCOMPATIBLE_GL_VERSION 100903 +#define GLU_INVALID_OPERATION 100904 + + +/* NurbsDisplay */ +/* GLU_FILL */ +#define GLU_OUTLINE_POLYGON 100240 +#define GLU_OUTLINE_PATCH 100241 + +/* NurbsCallback */ +#define GLU_NURBS_ERROR 100103 +#define GLU_ERROR 100103 +#define GLU_NURBS_BEGIN 100164 +#define GLU_NURBS_BEGIN_EXT 100164 +#define GLU_NURBS_VERTEX 100165 +#define GLU_NURBS_VERTEX_EXT 100165 +#define GLU_NURBS_NORMAL 100166 +#define GLU_NURBS_NORMAL_EXT 100166 +#define GLU_NURBS_COLOR 100167 +#define GLU_NURBS_COLOR_EXT 100167 +#define GLU_NURBS_TEXTURE_COORD 100168 +#define GLU_NURBS_TEX_COORD_EXT 100168 +#define GLU_NURBS_END 100169 +#define GLU_NURBS_END_EXT 100169 +#define GLU_NURBS_BEGIN_DATA 100170 +#define GLU_NURBS_BEGIN_DATA_EXT 100170 +#define GLU_NURBS_VERTEX_DATA 100171 +#define GLU_NURBS_VERTEX_DATA_EXT 100171 +#define GLU_NURBS_NORMAL_DATA 100172 +#define GLU_NURBS_NORMAL_DATA_EXT 100172 +#define GLU_NURBS_COLOR_DATA 100173 +#define GLU_NURBS_COLOR_DATA_EXT 100173 +#define GLU_NURBS_TEXTURE_COORD_DATA 100174 +#define GLU_NURBS_TEX_COORD_DATA_EXT 100174 +#define GLU_NURBS_END_DATA 100175 +#define GLU_NURBS_END_DATA_EXT 100175 + +/* NurbsError */ +#define GLU_NURBS_ERROR1 100251 /* spline order un-supported */ +#define GLU_NURBS_ERROR2 100252 /* too few knots */ +#define GLU_NURBS_ERROR3 100253 /* valid knot range is empty */ +#define GLU_NURBS_ERROR4 100254 /* decreasing knot sequence */ +#define GLU_NURBS_ERROR5 100255 /* knot multiplicity > spline order */ +#define GLU_NURBS_ERROR6 100256 /* endcurve() must follow bgncurve() */ +#define GLU_NURBS_ERROR7 100257 /* bgncurve() must precede endcurve() */ +#define GLU_NURBS_ERROR8 100258 /* ctrlarray or knot vector is NULL */ +#define GLU_NURBS_ERROR9 100259 /* can't draw pwlcurves */ +#define GLU_NURBS_ERROR10 100260 /* missing gluNurbsCurve() */ +#define GLU_NURBS_ERROR11 100261 /* missing gluNurbsSurface() */ +#define GLU_NURBS_ERROR12 100262 /* endtrim() must precede endsurface() */ +#define GLU_NURBS_ERROR13 100263 /* bgnsurface() must precede endsurface() */ +#define GLU_NURBS_ERROR14 100264 /* curve of improper type passed as trim curve */ +#define GLU_NURBS_ERROR15 100265 /* bgnsurface() must precede bgntrim() */ +#define GLU_NURBS_ERROR16 100266 /* endtrim() must follow bgntrim() */ +#define GLU_NURBS_ERROR17 100267 /* bgntrim() must precede endtrim()*/ +#define GLU_NURBS_ERROR18 100268 /* invalid or missing trim curve*/ +#define GLU_NURBS_ERROR19 100269 /* bgntrim() must precede pwlcurve() */ +#define GLU_NURBS_ERROR20 100270 /* pwlcurve referenced twice*/ +#define GLU_NURBS_ERROR21 100271 /* pwlcurve and nurbscurve mixed */ +#define GLU_NURBS_ERROR22 100272 /* improper usage of trim data type */ +#define GLU_NURBS_ERROR23 100273 /* nurbscurve referenced twice */ +#define GLU_NURBS_ERROR24 100274 /* nurbscurve and pwlcurve mixed */ +#define GLU_NURBS_ERROR25 100275 /* nurbssurface referenced twice */ +#define GLU_NURBS_ERROR26 100276 /* invalid property */ +#define GLU_NURBS_ERROR27 100277 /* endsurface() must follow bgnsurface() */ +#define GLU_NURBS_ERROR28 100278 /* intersecting or misoriented trim curves */ +#define GLU_NURBS_ERROR29 100279 /* intersecting trim curves */ +#define GLU_NURBS_ERROR30 100280 /* UNUSED */ +#define GLU_NURBS_ERROR31 100281 /* unconnected trim curves */ +#define GLU_NURBS_ERROR32 100282 /* unknown knot error */ +#define GLU_NURBS_ERROR33 100283 /* negative vertex count encountered */ +#define GLU_NURBS_ERROR34 100284 /* negative byte-stride */ +#define GLU_NURBS_ERROR35 100285 /* unknown type descriptor */ +#define GLU_NURBS_ERROR36 100286 /* null control point reference */ +#define GLU_NURBS_ERROR37 100287 /* duplicate point on pwlcurve */ + +/* NurbsProperty */ +#define GLU_AUTO_LOAD_MATRIX 100200 +#define GLU_CULLING 100201 +#define GLU_SAMPLING_TOLERANCE 100203 +#define GLU_DISPLAY_MODE 100204 +#define GLU_PARAMETRIC_TOLERANCE 100202 +#define GLU_SAMPLING_METHOD 100205 +#define GLU_U_STEP 100206 +#define GLU_V_STEP 100207 +#define GLU_NURBS_MODE 100160 +#define GLU_NURBS_MODE_EXT 100160 +#define GLU_NURBS_TESSELLATOR 100161 +#define GLU_NURBS_TESSELLATOR_EXT 100161 +#define GLU_NURBS_RENDERER 100162 +#define GLU_NURBS_RENDERER_EXT 100162 + +/* NurbsSampling */ +#define GLU_OBJECT_PARAMETRIC_ERROR 100208 +#define GLU_OBJECT_PARAMETRIC_ERROR_EXT 100208 +#define GLU_OBJECT_PATH_LENGTH 100209 +#define GLU_OBJECT_PATH_LENGTH_EXT 100209 +#define GLU_PATH_LENGTH 100215 +#define GLU_PARAMETRIC_ERROR 100216 +#define GLU_DOMAIN_DISTANCE 100217 + +/* NurbsTrim */ +#define GLU_MAP1_TRIM_2 100210 +#define GLU_MAP1_TRIM_3 100211 + +/* QuadricDrawStyle */ +#define GLU_POINT 100010 +#define GLU_LINE 100011 +#define GLU_FILL 100012 +#define GLU_SILHOUETTE 100013 + +/* QuadricCallback */ +/* GLU_ERROR */ + +/* QuadricNormal */ +#define GLU_SMOOTH 100000 +#define GLU_FLAT 100001 +#define GLU_NONE 100002 + +/* QuadricOrientation */ +#define GLU_OUTSIDE 100020 +#define GLU_INSIDE 100021 + +/* TessCallback */ +#define GLU_TESS_BEGIN 100100 +#define GLU_BEGIN 100100 +#define GLU_TESS_VERTEX 100101 +#define GLU_VERTEX 100101 +#define GLU_TESS_END 100102 +#define GLU_END 100102 +#define GLU_TESS_ERROR 100103 +#define GLU_TESS_EDGE_FLAG 100104 +#define GLU_EDGE_FLAG 100104 +#define GLU_TESS_COMBINE 100105 +#define GLU_TESS_BEGIN_DATA 100106 +#define GLU_TESS_VERTEX_DATA 100107 +#define GLU_TESS_END_DATA 100108 +#define GLU_TESS_ERROR_DATA 100109 +#define GLU_TESS_EDGE_FLAG_DATA 100110 +#define GLU_TESS_COMBINE_DATA 100111 + +/* TessContour */ +#define GLU_CW 100120 +#define GLU_CCW 100121 +#define GLU_INTERIOR 100122 +#define GLU_EXTERIOR 100123 +#define GLU_UNKNOWN 100124 + +/* TessProperty */ +#define GLU_TESS_WINDING_RULE 100140 +#define GLU_TESS_BOUNDARY_ONLY 100141 +#define GLU_TESS_TOLERANCE 100142 + +/* TessError */ +#define GLU_TESS_ERROR1 100151 +#define GLU_TESS_ERROR2 100152 +#define GLU_TESS_ERROR3 100153 +#define GLU_TESS_ERROR4 100154 +#define GLU_TESS_ERROR5 100155 +#define GLU_TESS_ERROR6 100156 +#define GLU_TESS_ERROR7 100157 +#define GLU_TESS_ERROR8 100158 +#define GLU_TESS_MISSING_BEGIN_POLYGON 100151 +#define GLU_TESS_MISSING_BEGIN_CONTOUR 100152 +#define GLU_TESS_MISSING_END_POLYGON 100153 +#define GLU_TESS_MISSING_END_CONTOUR 100154 +#define GLU_TESS_COORD_TOO_LARGE 100155 +#define GLU_TESS_NEED_COMBINE_CALLBACK 100156 + +/* TessWinding */ +#define GLU_TESS_WINDING_ODD 100130 +#define GLU_TESS_WINDING_NONZERO 100131 +#define GLU_TESS_WINDING_POSITIVE 100132 +#define GLU_TESS_WINDING_NEGATIVE 100133 +#define GLU_TESS_WINDING_ABS_GEQ_TWO 100134 + +/*************************************************************/ + + +#ifdef __cplusplus +class GLUnurbs; +class GLUquadric; +class GLUtesselator; + +typedef class GLUnurbs GLUnurbsObj OPENGL_DEPRECATED(10_0, 10_9); +typedef class GLUquadric GLUquadricObj OPENGL_DEPRECATED(10_0, 10_9); +typedef class GLUtesselator GLUtesselatorObj OPENGL_DEPRECATED(10_0, 10_9); +typedef class GLUtesselator GLUtriangulatorObj OPENGL_DEPRECATED(10_0, 10_9); +#else +typedef struct GLUnurbs GLUnurbs OPENGL_DEPRECATED(10_0, 10_9); +typedef struct GLUquadric GLUquadric OPENGL_DEPRECATED(10_0, 10_9); +typedef struct GLUtesselator GLUtesselator OPENGL_DEPRECATED(10_0, 10_9); + +typedef struct GLUnurbs GLUnurbsObj OPENGL_DEPRECATED(10_0, 10_9); +typedef struct GLUquadric GLUquadricObj OPENGL_DEPRECATED(10_0, 10_9); +typedef struct GLUtesselator GLUtesselatorObj OPENGL_DEPRECATED(10_0, 10_9); +typedef struct GLUtesselator GLUtriangulatorObj OPENGL_DEPRECATED(10_0, 10_9); +#endif + +#define GLU_TESS_MAX_COORD 1.0e150 + +extern void gluBeginCurve (GLUnurbs* nurb) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluBeginPolygon (GLUtesselator* tess) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluBeginSurface (GLUnurbs* nurb) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluBeginTrim (GLUnurbs* nurb) OPENGL_DEPRECATED(10_0, 10_9); +extern GLint gluBuild1DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data) OPENGL_DEPRECATED_MSG(10_2, 10_9, "Use glGenerateMipmap"); +extern GLint gluBuild1DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void *data) OPENGL_DEPRECATED_MSG(10_0, 10_9, "Use glGenerateMipmap"); +extern GLint gluBuild2DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data) OPENGL_DEPRECATED_MSG(10_2, 10_9, "Use glGenerateMipmap"); +extern GLint gluBuild2DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *data) OPENGL_DEPRECATED_MSG(10_0, 10_9, "Use glGenerateMipmap"); +extern GLint gluBuild3DMipmapLevels (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data) OPENGL_DEPRECATED_MSG(10_2, 10_9, "Use glGenerateMipmap"); +extern GLint gluBuild3DMipmaps (GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data) OPENGL_DEPRECATED_MSG(10_2, 10_9, "Use glGenerateMipmap"); +extern GLboolean gluCheckExtension (const GLubyte *extName, const GLubyte *extString) OPENGL_DEPRECATED(10_2, 10_9); +extern void gluCylinder (GLUquadric* quad, GLdouble base, GLdouble top, GLdouble height, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluDeleteNurbsRenderer (GLUnurbs* nurb) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluDeleteQuadric (GLUquadric* quad) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluDeleteTess (GLUtesselator* tess) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluEndCurve (GLUnurbs* nurb) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluEndPolygon (GLUtesselator* tess) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluEndSurface (GLUnurbs* nurb) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluEndTrim (GLUnurbs* nurb) OPENGL_DEPRECATED(10_0, 10_9); +extern const GLubyte * gluErrorString (GLenum error) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluGetNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat* data) OPENGL_DEPRECATED(10_0, 10_9); +extern const GLubyte * gluGetString (GLenum name) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluGetTessProperty (GLUtesselator* tess, GLenum which, GLdouble* data) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluLoadSamplingMatrices (GLUnurbs* nurb, const GLfloat *model, const GLfloat *perspective, const GLint *view) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluLookAt (GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, GLdouble centerX, GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble upZ) OPENGL_DEPRECATED_MSG(10_0, 10_9, "Use GLKMatrix4MakeLookAt"); +extern GLUnurbs* gluNewNurbsRenderer (void) OPENGL_DEPRECATED(10_0, 10_9); +extern GLUquadric* gluNewQuadric (void) OPENGL_DEPRECATED(10_0, 10_9); +extern GLUtesselator* gluNewTess (void) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluNextContour (GLUtesselator* tess, GLenum type) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluNurbsCallback (GLUnurbs* nurb, GLenum which, GLvoid (*CallBackFunc)()) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluNurbsCallbackData (GLUnurbs* nurb, GLvoid* userData) OPENGL_DEPRECATED(10_2, 10_9); +extern void gluNurbsCallbackDataEXT (GLUnurbs* nurb, GLvoid* userData) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluNurbsCurve (GLUnurbs* nurb, GLint knotCount, GLfloat *knots, GLint stride, GLfloat *control, GLint order, GLenum type) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluNurbsProperty (GLUnurbs* nurb, GLenum property, GLfloat value) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluNurbsSurface (GLUnurbs* nurb, GLint sKnotCount, GLfloat* sKnots, GLint tKnotCount, GLfloat* tKnots, GLint sStride, GLint tStride, GLfloat* control, GLint sOrder, GLint tOrder, GLenum type) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluOrtho2D (GLdouble left, GLdouble right, GLdouble bottom, GLdouble top) OPENGL_DEPRECATED_MSG(10_0, 10_9, "Use GLKMatrix4MakeOrtho"); +extern void gluPartialDisk (GLUquadric* quad, GLdouble inner, GLdouble outer, GLint slices, GLint loops, GLdouble start, GLdouble sweep) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluPerspective (GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar) OPENGL_DEPRECATED_MSG(10_0, 10_9, "Use GLKMatrix4MakePerspective"); +extern void gluPickMatrix (GLdouble x, GLdouble y, GLdouble delX, GLdouble delY, GLint *viewport) OPENGL_DEPRECATED(10_0, 10_9); +extern GLint gluProject (GLdouble objX, GLdouble objY, GLdouble objZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* winX, GLdouble* winY, GLdouble* winZ) OPENGL_DEPRECATED_MSG(10_0, 10_9, "Use GLKMathProject"); +extern void gluPwlCurve (GLUnurbs* nurb, GLint count, GLfloat* data, GLint stride, GLenum type) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluQuadricCallback (GLUquadric* quad, GLenum which, GLvoid (*CallBackFunc)()) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluQuadricDrawStyle (GLUquadric* quad, GLenum draw) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluQuadricNormals (GLUquadric* quad, GLenum normal) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluQuadricOrientation (GLUquadric* quad, GLenum orientation) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluQuadricTexture (GLUquadric* quad, GLboolean texture) OPENGL_DEPRECATED(10_0, 10_9); +extern GLint gluScaleImage (GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void *dataIn, GLsizei wOut, GLsizei hOut, GLenum typeOut, GLvoid* dataOut) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluSphere (GLUquadric* quad, GLdouble radius, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessBeginContour (GLUtesselator* tess) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessBeginPolygon (GLUtesselator* tess, GLvoid* data) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessCallback (GLUtesselator* tess, GLenum which, GLvoid (*CallBackFunc)()) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessEndContour (GLUtesselator* tess) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessEndPolygon (GLUtesselator* tess) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessNormal (GLUtesselator* tess, GLdouble valueX, GLdouble valueY, GLdouble valueZ) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessProperty (GLUtesselator* tess, GLenum which, GLdouble data) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluTessVertex (GLUtesselator* tess, GLdouble *location, GLvoid* data) OPENGL_DEPRECATED(10_0, 10_9); +extern GLint gluUnProject (GLdouble winX, GLdouble winY, GLdouble winZ, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble* objX, GLdouble* objY, GLdouble* objZ) OPENGL_DEPRECATED_MSG(10_0, 10_9, "Use GLKMathUnproject"); +extern GLint gluUnProject4 (GLdouble winX, GLdouble winY, GLdouble winZ, GLdouble clipW, const GLdouble *model, const GLdouble *proj, const GLint *view, GLdouble nearPlane, GLdouble farPlane, GLdouble* objX, GLdouble* objY, GLdouble* objZ, GLdouble* objW) OPENGL_DEPRECATED_MSG(10_2, 10_9, "Use GLKMathUnproject"); + +#ifdef __cplusplus +} +#endif + +#endif /* __glu_h__ */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gluContext.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gluContext.h" new file mode 100644 index 0000000..fee55f9 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gluContext.h" @@ -0,0 +1,51 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _GLUCONTEXT_H +#define _GLUCONTEXT_H + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +/* +** GLU Context routines +*/ +extern GLint gluBuild1DMipmapsCTX( struct _CGLContextObject *ctx, + GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, const void *data) OPENGL_DEPRECATED(10_0, 10_9); +extern GLint gluBuild2DMipmapsCTX( struct _CGLContextObject *ctx, + GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, const void *data) OPENGL_DEPRECATED(10_0, 10_9); +extern GLint gluBuild3DMipmapsCTX( struct _CGLContextObject *ctx, + GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, const void *data) OPENGL_DEPRECATED(10_2, 10_9); +extern GLint gluBuild1DMipmapLevelsCTX ( struct _CGLContextObject *ctx, + GLenum target, GLint internalFormat, GLsizei width, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data) OPENGL_DEPRECATED(10_2, 10_9); +extern GLint gluBuild2DMipmapLevelsCTX ( struct _CGLContextObject *ctx, + GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data) OPENGL_DEPRECATED(10_2, 10_9); +extern GLint gluBuild3DMipmapLevelsCTX ( struct _CGLContextObject *ctx, + GLenum target, GLint internalFormat, GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type, GLint level, GLint base, GLint max, const void *data) OPENGL_DEPRECATED(10_2, 10_9); + +extern void gluLookAtCTX( struct _CGLContextObject *ctx, GLdouble eyeX, GLdouble eyeY, GLdouble eyeZ, + GLdouble centerX, GLdouble centerY, GLdouble centerZ, GLdouble upX, GLdouble upY, GLdouble upZ) OPENGL_DEPRECATED(10_0, 10_9); +extern GLUnurbs* gluNewNurbsRendererCTX(struct _CGLContextObject *ctx) OPENGL_DEPRECATED(10_0, 10_9); +extern GLUquadric* gluNewQuadricCTX( struct _CGLContextObject *ctx) OPENGL_DEPRECATED(10_0, 10_9); +extern GLUtesselator* gluNewTessCTX( struct _CGLContextObject *ctx) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluOrtho2DCTX( struct _CGLContextObject *ctx, GLdouble left, GLdouble right, GLdouble bottom, GLdouble top) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluPerspectiveCTX( struct _CGLContextObject *ctx, GLdouble fovy, GLdouble aspect, GLdouble zNear, GLdouble zFar) OPENGL_DEPRECATED(10_0, 10_9); +extern void gluPickMatrixCTX( struct _CGLContextObject *ctx, GLdouble x, GLdouble y, GLdouble delX, GLdouble delY, GLint *viewport) OPENGL_DEPRECATED(10_0, 10_9); +extern GLint gluScaleImageCTX( struct _CGLContextObject *ctx, GLenum format, GLsizei wIn, GLsizei hIn, GLenum typeIn, const void *dataIn, + GLsizei wOut, GLsizei hOut, GLenum typeOut, void* dataOut) OPENGL_DEPRECATED(10_0, 10_9); + +extern void gluCylinderCTX( struct _CGLContextObject *ctx, GLUquadric *qobj, GLdouble baseRadiusd, GLdouble topRadiusd, GLdouble heightd, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_9, 10_9); +extern void gluDiskCTX( struct _CGLContextObject *ctx, GLUquadric *qobj, GLdouble innerRadiusd, GLdouble outerRadiusd, GLint slices, GLint loops) OPENGL_DEPRECATED(10_9, 10_9); +extern void gluPartialDiskCTX( struct _CGLContextObject *ctx, GLUquadric *qobj, GLdouble innerRadiusd, GLdouble outerRadiusd, GLint slices, GLint loops, GLdouble startAngled, GLdouble sweepAngled) OPENGL_DEPRECATED(10_9, 10_9); +extern void gluSphereCTX( struct _CGLContextObject *ctx, GLUquadric *qobj, GLdouble radiusd, GLint slices, GLint stacks) OPENGL_DEPRECATED(10_9, 10_9); + +#ifdef __cplusplus +} +#endif + +#endif /* _GLUCONTEXT_H */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gluMacro.h" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gluMacro.h" new file mode 100644 index 0000000..f0167ec --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Headers/gluMacro.h" @@ -0,0 +1,64 @@ +/* + Copyright: (c) 1999-2012 Apple Inc. All rights reserved. +*/ + +#ifndef _GLUMACRO_H +#define _GLUMACRO_H + +#include +#include + +/********************* GLU Macros *********************/ + +#define gluBuild1DMipmaps(target, internalFormat, width, format, type, data) \ + gluBuild1DMipmapsCTX(cgl_ctx, target, internalFormat, width, format, type, data) + +#define gluBuild2DMipmaps(target, internalFormat, width, height, format, type, data) \ + gluBuild2DMipmapsCTX(cgl_ctx, target, internalFormat, width, height, format, type, data) + +#define gluBuild3DMipmaps(target, internalFormat, width, height, depth, format, type, data) \ + gluBuild3DMipmapsCTX(cgl_ctx, target, internalFormat, width, height, depth, format, type, data) + +#define gluBuild1DMipmapLevels(target, internalFormat, width, format, type, level, base, max, data) \ + gluBuild1DMipmapLevelsCTX(cgl_ctx, target, internalFormat, width, format, type, level, base, max, data) + +#define gluBuild2DMipmapLevels(target, internalFormat, width, height, format, type, level, base, max, data) \ + gluBuild2DMipmapLevelsCTX(cgl_ctx, target, internalFormat, width, height, format, type, level, base, max, data) + +#define gluBuild3DMipmapLevels(target, internalFormat, width, height, depth, format, type, level, base, max, data) \ + gluBuild3DMipmapLevelsCTX(cgl_ctx, target, internalFormat, width, height, depth, format, type, level, base, max, data) + +#define gluLookAt(eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ) \ + gluLookAtCTX(cgl_ctx, eyeX, eyeY, eyeZ, centerX, centerY, centerZ, upX, upY, upZ) + +#define gluNewNurbsRenderer() \ + gluNewNurbsRendererCTX(cgl_ctx) + +#define gluNewQuadric() \ + gluNewQuadricCTX(cgl_ctx) + +#define gluOrtho2D(left, right, bottom, top) \ + gluOrtho2DCTX(cgl_ctx, left, right, bottom, top) + +#define gluPerspective(fovy, aspect, znear, zfar) \ + gluPerspectiveCTX(cgl_ctx, fovy, aspect, znear, zfar) + +#define gluPickMatrix(x, y, delx, dely, viewport) \ + gluPickMatrixCTX(cgl_ctx, x, y, delx, dely, viewport) + +#define gluScaleImage(format, wIn, hIn, typeIn, dataIn, wOut, hOut, typeOut, dataOut) \ + gluScaleImageCTX(cgl_ctx, format, wIn, hIn, typeIn, dataIn, wOut, hOut, typeOut, dataOut) + +#define gluCylinder(qobj, baseRadiusd, topRadiusd, heightd, slices, stacks) \ + gluCylinderCTX(cgl_ctx, qobj, baseRadiusd, topRadiusd, heightd, slices, stacks) + +#define gluDisk(qobj, innerRadiusd, outerRadiusd, slices, loops) \ + gluDiskCTX(cgl_ctx, qobj, innerRadiusd, outerRadiusd, slices, loops) + +#define gluPartialDisk(qobj, innerRadiusd, outerRadiusd, slices, loops, startAngled, sweepAngled) \ + gluPartialDiskCTX(cgl_ctx, qobj, innerRadiusd, outerRadiusd, slices, loops, startAngled, sweepAngled) + +#define gluSphere(qobj, radiusd, slices, stacks) \ + gluSphereCTX(cgl_ctx, qobj, radiusd, slices, stacks) + +#endif /* _GLUMACRO_H */ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/3600/CVMCompiler" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/3600/CVMCompiler" new file mode 100755 index 0000000..b91eb5d Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/3600/CVMCompiler" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/3600/libCoreVMClient.mono.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/3600/libCoreVMClient.mono.dylib" new file mode 100755 index 0000000..976bf57 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/3600/libCoreVMClient.mono.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/CVMCompiler" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/CVMCompiler" new file mode 100755 index 0000000..1de5af1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/CVMCompiler" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/CVMServer" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/CVMServer" new file mode 100755 index 0000000..4825139 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/CVMServer" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/DumpGPURestart" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/DumpGPURestart" new file mode 100755 index 0000000..e4b9cae Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/DumpGPURestart" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/Legacy/CVMCompiler" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/Legacy/CVMCompiler" new file mode 100755 index 0000000..c69e16f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/Legacy/CVMCompiler" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/Legacy/libCoreVMClient.mono.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/Legacy/libCoreVMClient.mono.dylib" new file mode 100755 index 0000000..e13198f Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/Legacy/libCoreVMClient.mono.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/Legacy/libLLVMContainer.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/Legacy/libLLVMContainer.dylib" new file mode 100755 index 0000000..46a1aaa Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/Legacy/libLLVMContainer.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/ReportGPURestart" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/ReportGPURestart" new file mode 100755 index 0000000..abda50a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/ReportGPURestart" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libCVMSPluginSupport.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libCVMSPluginSupport.dylib" new file mode 100755 index 0000000..cd82d77 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libCVMSPluginSupport.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libCoreFSCache.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libCoreFSCache.dylib" new file mode 100755 index 0000000..910f1a8 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libCoreFSCache.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libCoreVMClient.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libCoreVMClient.dylib" new file mode 100755 index 0000000..87447d7 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libCoreVMClient.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libGFXShared.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libGFXShared.dylib" new file mode 100755 index 0000000..eb282f1 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libGFXShared.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libGL.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libGL.dylib" new file mode 100755 index 0000000..b896f46 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libGL.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libGLImage.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libGLImage.dylib" new file mode 100755 index 0000000..106336e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libGLImage.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libGLProgrammability.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libGLProgrammability.dylib" new file mode 100755 index 0000000..221ec74 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libGLProgrammability.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libGLU.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libGLU.dylib" new file mode 100755 index 0000000..c152503 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libGLU.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libGLVMPlugin.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libGLVMPlugin.dylib" new file mode 100755 index 0000000..bf5e3e4 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libGLVMPlugin.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libLLVMContainer.dylib" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libLLVMContainer.dylib" new file mode 100755 index 0000000..146e42e Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Libraries/libLLVMContainer.dylib" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/OpenGL" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/OpenGL" new file mode 100755 index 0000000..e400164 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/OpenGL" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/BridgeSupport/OpenGL.bridgesupport" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/BridgeSupport/OpenGL.bridgesupport" new file mode 100644 index 0000000..9331c5f --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/BridgeSupport/OpenGL.bridgesupport" @@ -0,0 +1,9581 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/CVMSPlugin.exp" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/CVMSPlugin.exp" new file mode 100644 index 0000000..a36f9ac --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/CVMSPlugin.exp" @@ -0,0 +1 @@ +_cvmsModularBuilder diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/CVMSPluginAll.exp" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/CVMSPluginAll.exp" new file mode 100644 index 0000000..850c081 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/CVMSPluginAll.exp" @@ -0,0 +1,4 @@ +_cvmsModularBuilder +_cvmsPluginInit +_cvmsPluginTerm +_cvmsPluginBuild diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/CVMSPluginNoExec.exp" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/CVMSPluginNoExec.exp" new file mode 100644 index 0000000..522c024 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/CVMSPluginNoExec.exp" @@ -0,0 +1,4 @@ +_cvmsPluginInit +_cvmsPluginTerm +_cvmsPluginBuild + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/GLByteCodes.i386.bc" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/GLByteCodes.i386.bc" new file mode 100644 index 0000000..6e7b92a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/GLByteCodes.i386.bc" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/GLByteCodes.x86_64.bc" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/GLByteCodes.x86_64.bc" new file mode 100644 index 0000000..b0180b3 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/GLByteCodes.x86_64.bc" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/GLEngine.bundle/GLEngine" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/GLEngine.bundle/GLEngine" new file mode 100755 index 0000000..4bf8b3a Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/GLEngine.bundle/GLEngine" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/GLRendererFloat.bundle/GLRendererFloat" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/GLRendererFloat.bundle/GLRendererFloat" new file mode 100755 index 0000000..57f7a4b Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/GLRendererFloat.bundle/GLRendererFloat" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/Info.plist" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/Info.plist" new file mode 100644 index 0000000..3d1d143 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/Info.plist" @@ -0,0 +1,26 @@ + + + + + CFBundleDevelopmentRegion + English + CFBundleExecutable + OpenGL + CFBundleGetInfoString + OpenGL 12.0.34.11.0 + CFBundleIdentifier + com.apple.opengl + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + OpenGL + CFBundlePackageType + FMWK + CFBundleShortVersionString + 12.0.34 + CFBundleSignature + ???? + CFBundleVersion + 12.0.34 + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/cvmsConfig.plist" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/cvmsConfig.plist" new file mode 100644 index 0000000..1cace56 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/cvmsConfig.plist" @@ -0,0 +1,83 @@ + + + + + OpenGL + + bytecode + // TODO remove dead-code + plugin + /System/Library/Frameworks/OpenGL.framework/Libraries/libGLVMPlugin.dylib + options + 20 + cache_size + 0 + + OpenCLCPU + + bytecode + // TODO remove dead-code + plugin + /System/Library/Frameworks/OpenCL.framework/Libraries/libCLVMCPUPlugin.dylib + options + 272 + cache_size + 1048576 + + OpenCLPTX + + bytecode + // TODO remove dead-code + plugin + /System/Library/Frameworks/OpenCL.framework/Libraries/libCLVMPTXPlugin.dylib + options + 272 + cache_size + 0 + + OpenCLPTXSM1X + + bytecode + // TODO remove dead-codeSM1X + plugin + /System/Library/Frameworks/OpenCL.framework/Libraries/libCLVMPTXSM1XPlugin.dylib + options + 272 + cache_size + 0 + + OpenCLAMDil + + bytecode + // TODO remove dead-code + plugin + /System/Library/Frameworks/OpenCL.framework/Libraries/libCLVMAMDilPlugin.dylib + options + 272 + cache_size + 0 + + OpenCLAMDil_r700 + + bytecode + // TODO remove dead-code + plugin + /System/Library/Frameworks/OpenCL.framework/Libraries/libCLVMAMDil_r700Plugin.dylib + options + 272 + cache_size + 0 + + OpenCLIGIL + + bytecode + // TODO remove dead-code + plugin + /System/Library/Frameworks/OpenCL.framework/Libraries/libCLVMIGILPlugin.dylib + options + 272 + cache_size + 0 + + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/version.plist" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/version.plist" new file mode 100644 index 0000000..7eb7c0c --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/Resources/version.plist" @@ -0,0 +1,16 @@ + + + + + BuildVersion + 139 + CFBundleShortVersionString + 12.0.34 + CFBundleVersion + 12.0.34 + ProjectName + OpenGL + SourceVersion + 12000034011000 + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/_CodeSignature/CodeResources" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/_CodeSignature/CodeResources" new file mode 100644 index 0000000..0296645 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/Versions/Current/_CodeSignature/CodeResources" @@ -0,0 +1,271 @@ + + + + + files + + Resources/BridgeSupport/OpenGL.bridgesupport + + RBhC4TseVnJBlxkyjMyGKOcThNg= + + Resources/CVMSPlugin.exp + + GQWCkaiXSRJMj/HNhYP2We4nmAY= + + Resources/CVMSPluginAll.exp + + sahisN+JrbOBOxisn2BohvSPTho= + + Resources/CVMSPluginNoExec.exp + + w271dKQgXInDt5pgOkcaKI8fRkA= + + Resources/GLByteCodes.i386.bc + + VTEcgQIlhXF3p4K8uwGD/f8Eq2g= + + Resources/GLByteCodes.x86_64.bc + + bS1uw12dyAKlUzHKf7HwH1KyQUc= + + Resources/GLEngine.bundle/GLEngine + + oDd494+gI5wc4TeOPbLxuHL9GtY= + + Resources/GLRendererFloat.bundle/GLRendererFloat + + tQx582UpCnJNbuvW809DraHQuew= + + Resources/Info.plist + + zP6eZFmSbjnqOefA2csTEpp0luU= + + Resources/cvmsConfig.plist + + pAm6BIY4yOMWUKDcCduekQUJLvQ= + + Resources/version.plist + + 4s0jT8sl2bej/d8KcjZLJBSlfa0= + + + files2 + + Libraries/3600/CVMCompiler + + cEt31PPM3i9QFm3rpdX4Yd8B5Ec= + + Libraries/3600/libCoreVMClient.mono.dylib + + l4KHJHeLclv5HXtsDOb+83mfgpE= + + Libraries/CVMCompiler + + InafVuj2Gcwg/X1sPGre6Q5IhKU= + + Libraries/CVMServer + + L3LiyrSzcIp8kpz4sYx/Zfxm+Wk= + + Libraries/DumpGPURestart + + 0kiZT4jiwvrxSiMnYmzNG2SMeTA= + + Libraries/Legacy/CVMCompiler + + wHhkpaVBSbXfAi2Dyr4eZBFHrH0= + + Libraries/Legacy/libCoreVMClient.mono.dylib + + o/mlrz+sbDILKHwmE95ilHfqTMo= + + Libraries/Legacy/libLLVMContainer.dylib + + Aj1uby+XB55Jsb60dzoz6LZWT6M= + + Libraries/ReportGPURestart + + qTN3mCX7AhVG+Sg4YFg/kAv3xoo= + + Libraries/libCVMSPluginSupport.dylib + + I9HlEbnCLnJjhuTLZduqMoi0yJY= + + Libraries/libCoreFSCache.dylib + + rwMF3EkPoBgH8D4cct83a4h15uo= + + Libraries/libCoreVMClient.dylib + + 8zuJaTWTA57uz6Wqs2Ec0rHWkCs= + + Libraries/libGFXShared.dylib + + v0f3rV8Jq9naXCJIPILjkM7hvNg= + + Libraries/libGL.dylib + + VuZDTKY9BSYVjDdvvNYJCYDfef8= + + Libraries/libGLImage.dylib + + d6U5lyDEE45VXZO3FrIivBtrXmM= + + Libraries/libGLProgrammability.dylib + + eMf5Fje/Kw4UVe8US9WAaPVEdrk= + + Libraries/libGLU.dylib + + maWf6oRJ7SFlLE4eyZ/hhUFV0CU= + + Libraries/libGLVMPlugin.dylib + + vFEVrMBQ/yEbSJC9dsD4MHmkCmI= + + Libraries/libLLVMContainer.dylib + + nIRKPH96OFptAlwaGbOsCcfCm+s= + + Resources/BridgeSupport/OpenGL.bridgesupport + + RBhC4TseVnJBlxkyjMyGKOcThNg= + + Resources/CVMSPlugin.exp + + GQWCkaiXSRJMj/HNhYP2We4nmAY= + + Resources/CVMSPluginAll.exp + + sahisN+JrbOBOxisn2BohvSPTho= + + Resources/CVMSPluginNoExec.exp + + w271dKQgXInDt5pgOkcaKI8fRkA= + + Resources/GLByteCodes.i386.bc + + VTEcgQIlhXF3p4K8uwGD/f8Eq2g= + + Resources/GLByteCodes.x86_64.bc + + bS1uw12dyAKlUzHKf7HwH1KyQUc= + + Resources/GLEngine.bundle/GLEngine + + oDd494+gI5wc4TeOPbLxuHL9GtY= + + Resources/GLRendererFloat.bundle/GLRendererFloat + + tQx582UpCnJNbuvW809DraHQuew= + + Resources/Info.plist + + zP6eZFmSbjnqOefA2csTEpp0luU= + + Resources/cvmsConfig.plist + + pAm6BIY4yOMWUKDcCduekQUJLvQ= + + Resources/version.plist + + 4s0jT8sl2bej/d8KcjZLJBSlfa0= + + + rules + + ^Resources/ + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^version.plist$ + + + rules2 + + .*\.dSYM($|/) + + weight + 11 + + ^(.*/)?\.DS_Store$ + + omit + + weight + 2000 + + ^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/ + + nested + + weight + 10 + + ^.* + + ^Info\.plist$ + + omit + + weight + 20 + + ^PkgInfo$ + + omit + + weight + 20 + + ^Resources/ + + weight + 20 + + ^Resources/.*\.lproj/ + + optional + + weight + 1000 + + ^Resources/.*\.lproj/locversion.plist$ + + omit + + weight + 1100 + + ^[^/]+$ + + nested + + weight + 10 + + ^embedded\.provisionprofile$ + + weight + 20 + + ^version\.plist$ + + weight + 20 + + + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/module.map" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/module.map" new file mode 100644 index 0000000..32b975e --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/OpenGL.framework/module.map" @@ -0,0 +1,70 @@ +framework module OpenGL [extern_c] { + umbrella header "OpenGL.h" + + module CGLRenderers { + header "CGLRenderers.h" + export * + } + + module CGLDevice { + header "CGLDevice.h" + export * + } + + export * + module * { + export * + } + + module GLTypes { + header "gltypes.h" + export * + } + + explicit module GL3 { + header "gl3.h" + export GLTypes + export * + + explicit module Ext { + header "gl3ext.h" + export * + } + } + + explicit module IOSurface { + header "CGLIOSurface.h" + export * + } + + explicit module GL { + header "gl.h" + export GLTypes + export * + + explicit module Ext { + header "glext.h" + export * + } + + explicit module GLU { + header "glu.h" + export * + + explicit module Macro { + header "gluMacro.h" + header "gluContext.h" + export * + } + } + + explicit module Macro { + header "CGLMacro.h" + header "CGLContext.h" + header "gliContext.h" + header "gliDispatch.h" + export * + } + } +} + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/YCOpenGLHomeWork02.xcodeproj/project.pbxproj" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/YCOpenGLHomeWork02.xcodeproj/project.pbxproj" new file mode 100644 index 0000000..7b52c2b --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/YCOpenGLHomeWork02.xcodeproj/project.pbxproj" @@ -0,0 +1,260 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + F00FF7511C4F615D00B0B739 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = F00FF7501C4F615D00B0B739 /* main.cpp */; }; + F00FF7591C4F619800B0B739 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F00FF7571C4F619800B0B739 /* GLUT.framework */; }; + F00FF75A1C4F619800B0B739 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F00FF7581C4F619800B0B739 /* OpenGL.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXCopyFilesBuildPhase section */ + F00FF74B1C4F615D00B0B739 /* CopyFiles */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = /usr/share/man/man1/; + dstSubfolderSpec = 0; + files = ( + ); + runOnlyForDeploymentPostprocessing = 1; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + F00FF74D1C4F615D00B0B739 /* YCOpenGLHomeWork02 */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = YCOpenGLHomeWork02; sourceTree = BUILT_PRODUCTS_DIR; }; + F00FF7501C4F615D00B0B739 /* main.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = main.cpp; sourceTree = ""; }; + F00FF7571C4F619800B0B739 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = GLUT.framework; sourceTree = ""; }; + F00FF7581C4F619800B0B739 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = OpenGL.framework; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + F00FF74A1C4F615D00B0B739 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + F00FF7591C4F619800B0B739 /* GLUT.framework in Frameworks */, + F00FF75A1C4F619800B0B739 /* OpenGL.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + F00FF7441C4F615D00B0B739 = { + isa = PBXGroup; + children = ( + F00FF7571C4F619800B0B739 /* GLUT.framework */, + F00FF7581C4F619800B0B739 /* OpenGL.framework */, + F00FF74F1C4F615D00B0B739 /* YCOpenGLHomeWork02 */, + F00FF74E1C4F615D00B0B739 /* Products */, + ); + sourceTree = ""; + }; + F00FF74E1C4F615D00B0B739 /* Products */ = { + isa = PBXGroup; + children = ( + F00FF74D1C4F615D00B0B739 /* YCOpenGLHomeWork02 */, + ); + name = Products; + sourceTree = ""; + }; + F00FF74F1C4F615D00B0B739 /* YCOpenGLHomeWork02 */ = { + isa = PBXGroup; + children = ( + F00FF7501C4F615D00B0B739 /* main.cpp */, + ); + path = YCOpenGLHomeWork02; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + F00FF74C1C4F615D00B0B739 /* YCOpenGLHomeWork02 */ = { + isa = PBXNativeTarget; + buildConfigurationList = F00FF7541C4F615D00B0B739 /* Build configuration list for PBXNativeTarget "YCOpenGLHomeWork02" */; + buildPhases = ( + F00FF7491C4F615D00B0B739 /* Sources */, + F00FF74A1C4F615D00B0B739 /* Frameworks */, + F00FF74B1C4F615D00B0B739 /* CopyFiles */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = YCOpenGLHomeWork02; + productName = YCOpenGLHomeWork02; + productReference = F00FF74D1C4F615D00B0B739 /* YCOpenGLHomeWork02 */; + productType = "com.apple.product-type.tool"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + F00FF7451C4F615D00B0B739 /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0710; + ORGANIZATIONNAME = "YC-MacBookPro"; + TargetAttributes = { + F00FF74C1C4F615D00B0B739 = { + CreatedOnToolsVersion = 7.1; + }; + }; + }; + buildConfigurationList = F00FF7481C4F615D00B0B739 /* Build configuration list for PBXProject "YCOpenGLHomeWork02" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = F00FF7441C4F615D00B0B739; + productRefGroup = F00FF74E1C4F615D00B0B739 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + F00FF74C1C4F615D00B0B739 /* YCOpenGLHomeWork02 */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXSourcesBuildPhase section */ + F00FF7491C4F615D00B0B739 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F00FF7511C4F615D00B0B739 /* main.cpp in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + F00FF7521C4F615D00B0B739 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + }; + name = Debug; + }; + F00FF7531C4F615D00B0B739 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "-"; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 10.11; + MTL_ENABLE_DEBUG_INFO = NO; + SDKROOT = macosx; + }; + name = Release; + }; + F00FF7551C4F615D00B0B739 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Debug; + }; + F00FF7561C4F615D00B0B739 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + FRAMEWORK_SEARCH_PATHS = ( + "$(inherited)", + "$(PROJECT_DIR)", + ); + PRODUCT_NAME = "$(TARGET_NAME)"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + F00FF7481C4F615D00B0B739 /* Build configuration list for PBXProject "YCOpenGLHomeWork02" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F00FF7521C4F615D00B0B739 /* Debug */, + F00FF7531C4F615D00B0B739 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + F00FF7541C4F615D00B0B739 /* Build configuration list for PBXNativeTarget "YCOpenGLHomeWork02" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + F00FF7551C4F615D00B0B739 /* Debug */, + F00FF7561C4F615D00B0B739 /* Release */, + ); + defaultConfigurationIsVisible = 0; + }; +/* End XCConfigurationList section */ + }; + rootObject = F00FF7451C4F615D00B0B739 /* Project object */; +} diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/YCOpenGLHomeWork02.xcodeproj/project.xcworkspace/contents.xcworkspacedata" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/YCOpenGLHomeWork02.xcodeproj/project.xcworkspace/contents.xcworkspacedata" new file mode 100644 index 0000000..d1279a1 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/YCOpenGLHomeWork02.xcodeproj/project.xcworkspace/contents.xcworkspacedata" @@ -0,0 +1,7 @@ + + + + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/YCOpenGLHomeWork02.xcodeproj/project.xcworkspace/xcuserdata/YCFile.xcuserdatad/UserInterfaceState.xcuserstate" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/YCOpenGLHomeWork02.xcodeproj/project.xcworkspace/xcuserdata/YCFile.xcuserdatad/UserInterfaceState.xcuserstate" new file mode 100644 index 0000000..d640e73 Binary files /dev/null and "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/YCOpenGLHomeWork02.xcodeproj/project.xcworkspace/xcuserdata/YCFile.xcuserdatad/UserInterfaceState.xcuserstate" differ diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/YCOpenGLHomeWork02.xcodeproj/xcuserdata/YCFile.xcuserdatad/xcschemes/YCOpenGLHomeWork02.xcscheme" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/YCOpenGLHomeWork02.xcodeproj/xcuserdata/YCFile.xcuserdatad/xcschemes/YCOpenGLHomeWork02.xcscheme" new file mode 100644 index 0000000..258e0b5 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/YCOpenGLHomeWork02.xcodeproj/xcuserdata/YCFile.xcuserdatad/xcschemes/YCOpenGLHomeWork02.xcscheme" @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/YCOpenGLHomeWork02.xcodeproj/xcuserdata/YCFile.xcuserdatad/xcschemes/xcschememanagement.plist" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/YCOpenGLHomeWork02.xcodeproj/xcuserdata/YCFile.xcuserdatad/xcschemes/xcschememanagement.plist" new file mode 100644 index 0000000..27b9fe7 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/YCOpenGLHomeWork02.xcodeproj/xcuserdata/YCFile.xcuserdatad/xcschemes/xcschememanagement.plist" @@ -0,0 +1,22 @@ + + + + + SchemeUserState + + YCOpenGLHomeWork02.xcscheme + + orderHint + 0 + + + SuppressBuildableAutocreation + + F00FF74C1C4F615D00B0B739 + + primary + + + + + diff --git "a/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/YCOpenGLHomeWork02/main.cpp" "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/YCOpenGLHomeWork02/main.cpp" new file mode 100644 index 0000000..c905381 --- /dev/null +++ "b/21551186\346\235\250\350\266\205/YCOpenGLHomeWork02/YCOpenGLHomeWork02/main.cpp" @@ -0,0 +1,290 @@ +// +// main.cpp +// YCOpenGLHomeWork01 +// +// Created by YC-MacBookPro on 15/12/16. +// Copyright © 2015年 YC-MacBookPro. All rights reserved. +// + +#include +#include +#include +#include +#include +using namespace std; + +void myAxis() +{ + //绘制X轴 + glColor3f(1.0f, 0.0f, 0.0f); + glBegin(GL_LINES); + { + glVertex3f( 0.0f, 0.0f, 0.0f); + glVertex3f( 50.0f, 0.0f, 0.0f); + //绘制坐标轴的箭头 + glVertex3f( 50.0f, 0.0f, 0.0f); + glVertex3f( 49.0f, 1.0f, 0.0f); + glVertex3f( 50.0f, 0.0f, 0.0f); + glVertex3f( 49.0f,-1.0f, 0.0f); + } + glEnd(); + + //绘制Y轴 + glColor3f(0.0f, 1.0f, 0.0f); + glBegin(GL_LINES); + { + glVertex3f( 0.0f, 0.0f, 0.0f); + glVertex3f( 0.0f, 50.0f, 0.0f); + glVertex3f( 0.0f, 50.0f, 0.0f); + glVertex3f( 1.0f, 49.0f, 0.0f); + glVertex3f( 0.0f, 50.0f, 0.0f); + glVertex3f( -1.0f, 49.0f, 0.0f); + } + glEnd(); + + //绘制Z轴 + glColor3f(0.0f, 0.0f, 1.0f); + glBegin( GL_LINES ); + { + glVertex3f( 0.0f, 0.0f, 0.0f ); + glVertex3f( 0.0f, 0.0f, 50.0f ); + glVertex3f( 0.0f, 0.0f, 50.0f ); + glVertex3f( 0.0f, 1.0f, 49.0f ); + glVertex3f( 0.0f, 0.0f, 50.0f ); + glVertex3f( 0.0f, -1.0f, 49.0f); + } + glEnd(); +} + +//x轴和y轴位置 +static GLfloat X_Axis = 0.0f; +static GLfloat Y_Axis = 0.0f; + +//绘制棋盘纹理 +#define checkImageWidth 64 +#define checkImageHeight 64 +GLubyte checkImage[checkImageHeight][checkImageWidth][3]; +GLuint texName; + +void makeImage() +{ + int i, j, c; + for (i = 0; i < checkImageHeight; i++) { + for (j = 0; j < checkImageWidth; j++) { + c = (((i&0x8)==0)^((j&0x8)==0))*255; + checkImage[i][j][0] = (GLubyte) c; + checkImage[i][j][1] = (GLubyte) c; + checkImage[i][j][2] = (GLubyte) c; + } + } +} + +//绘制条形纹理 +#define stripeImageWidth 32 +GLubyte stripeImage[4*stripeImageWidth]; + +void makeStripeImage(void) +{ + int j; + + for (j = 0; j < stripeImageWidth; j++) { + stripeImage[4*j] = (GLubyte) ((j<=4) ? 255 : 0); + stripeImage[4*j+1] = (GLubyte) ((j>4) ? 255 : 0); + stripeImage[4*j+2] = (GLubyte) 0; + stripeImage[4*j+3] = (GLubyte) 255; + } +} + +//测试函数 在关闭深度测试的时候才能看到 +void newDisplay() +{ + glClear(GL_COLOR_BUFFER_BIT); + glRasterPos2i(0, 0); + glDrawPixels(checkImageWidth, checkImageHeight, GL_RGB, GL_UNSIGNED_BYTE, checkImage); + glutSwapBuffers(); +} + +//创建棋盘纹理 +void myCreateCheckTex() +{ + //二维纹理 棋盘 + makeImage(); + glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + + glGenTextures(1, &texName); + glBindTexture(GL_TEXTURE_2D, texName); + + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + //创建纹理 + glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, checkImageWidth, checkImageHeight, 0, GL_RGBA, GL_UNSIGNED_BYTE, checkImage); + glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + + glEnable(GL_TEXTURE_GEN_S); + glEnable(GL_TEXTURE_GEN_T); + glEnable(GL_TEXTURE_2D); + + //一维纹理 条 + // makeStripeImage(); + // glPixelStorei(GL_UNPACK_ALIGNMENT, 1); + // + //#ifdef GL_VERSION_1_1 + // glGenTextures(1, &texName); + // glBindTexture(GL_TEXTURE_1D, texName); + //#endif + // glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_WRAP_S, GL_REPEAT); + // glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); + // glTexParameteri(GL_TEXTURE_1D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); + //#ifdef GL_VERSION_1_1 + // glTexImage1D(GL_TEXTURE_1D, 0, GL_RGBA, stripeImageWidth, 0, + // GL_RGBA, GL_UNSIGNED_BYTE, stripeImage); + //#else + // glTexImage1D(GL_TEXTURE_1D, 0, 4, stripeImageWidth, 0, + // GL_RGBA, GL_UNSIGNED_BYTE, stripeImage); + //#endif + // + // glTexEnvf(GL_TEXTURE_ENV, GL_TEXTURE_ENV_MODE, GL_REPLACE); + // + // glEnable(GL_TEXTURE_GEN_S); + // glEnable(GL_TEXTURE_1D); +} + +//绘制太阳地球月亮的函数 +void myDisplay() +{ + //清除缓冲区(颜色缓冲区、深度缓冲区、模板缓冲区),填充的颜色由glClearColor()指定 + glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT | GL_STENCIL_BUFFER_BIT); + + //开始渲染 + glPushMatrix(); + + //使用键盘控制X轴、Y轴旋转 + glRotatef(X_Axis, 1.0f, 0.0f, 0.0f); + glRotatef(Y_Axis, 0.0f, 1.0f, 0.0f); + //绘制坐标系 + myAxis(); + + glDisable(GL_LIGHTING); + + //绘制太阳 + glEnable(GL_TEXTURE_2D); + glColor3f(0.9f, 0.1f, 0.1f);//设置太阳颜色 + glBindTexture(GL_TEXTURE_2D, texName); + glutSolidSphere(10.0f, 30, 30);//后面两个参数越大,绘制的球体越“圆” + glDisable(GL_TEXTURE_2D); + + //太阳光源 环境光 + glEnable(GL_LIGHTING); + //设置光源位置 + GLfloat lightPos[] = {0, 0, 0}; + glLightfv( GL_LIGHT0, GL_POSITION, lightPos ); + //设置光源颜色 + GLfloat yellowAmbientLight[] = {1.0, 1.0, 0.0, 1};//光源的颜色 + glLightfv(GL_LIGHT0, GL_AMBIENT, yellowAmbientLight); + glEnable(GL_LIGHT0); + + + //绘制地球 + static GLfloat alpha = 0.0f; + const GLfloat radius = 20.f; + glRotatef(alpha, 0, 0, 1); + glTranslatef(radius, radius, 0); + glColor3f(0.2f, 0.2f, 0.9f); + glutSolidSphere(4.0f, 30, 30); + + //地球光源 漫反射光 + glLightfv(GL_LIGHT1, GL_POSITION, lightPos); + GLfloat whiteDiffuseLight[] = {1.0, 0.0, 0.0}; + glLightfv(GL_LIGHT1, GL_DIFFUSE, whiteDiffuseLight); + glEnable(GL_LIGHT1); + + + + //绘制“月亮” + glColor3f(1.0f, 1.0f, 0.0f); + glRotatef(alpha/30.0*360.0 - alpha/360.0*360.0, 0.0f, 0.0f, -1.0f); + glTranslatef(radius/2, 0.0f, 0.0f); + glutSolidSphere(1.5f, 40, 40); + + //月球镜面反射光 + glLightfv(GL_LIGHT2, GL_POSITION, lightPos); + GLfloat graySpecularLight[] = {0.0, 1.0, 0.0}; + glLightfv(GL_LIGHT2, GL_DIFFUSE, graySpecularLight); + glEnable(GL_LIGHT2); + + + //开始旋转 + alpha += 0.3f; + if (alpha >= 360) + { + alpha -= 360; + } + //显示所绘制图像 + glPopMatrix(); + + //使用双缓存,避免刷新时闪烁 + glutSwapBuffers(); +} + +void myReshape(GLsizei w, GLsizei h) +{ + //如果h为0的情况,w为0的情况呢 + if(!h) + { + h = 1; + } + //视口映射 把绘图坐标映射到窗口坐标、从逻辑笛卡尔坐标映射到物理屏幕像素坐标 + //视口就是窗口内部用于绘制裁剪区域的客户区域 + //从左下角开始,如果刚好和main函数中WindowSize相同大小,则显示图像刚好,否则有裁剪或者包裹 + glViewport(0, 0, w, h); + + //重置投影矩阵 + glMatrixMode(GL_PROJECTION); + //将之前矩阵变换导致变化过的栈顶矩阵重新归位,置为单位矩阵!等于是之前的矩阵变换带来的影响到此为止了! + glLoadIdentity(); + + //正投影(也叫平行投影)设置 + GLfloat Ortho_Parm = 40.0f;//这个参数与绘制的球的半径有关,一般比半径大一些,把球体包裹在里面 + if (w <= h) + { + glOrtho(-Ortho_Parm, Ortho_Parm, -Ortho_Parm*h/w, Ortho_Parm*h/w, -Ortho_Parm, Ortho_Parm); + } + else + { + glOrtho(-Ortho_Parm*w/h, Ortho_Parm*w/h, -Ortho_Parm, Ortho_Parm, -Ortho_Parm, Ortho_Parm); + } + //重置模型视图矩阵 + glMatrixMode(GL_MODELVIEW); + glLoadIdentity(); + //设置外部观察角度 + gluLookAt(1.0, 1.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); +} + +//初始化界面 +void myInit(void) +{ + //RGB颜色空间 + glClearColor(1.0, 1.0, 1.0, 0.0); + glShadeModel(GL_SMOOTH); + glEnable(GL_DEPTH_TEST);//打开深度测试 + myCreateCheckTex(); +} + +int main(int argc, char * argv[]) { + glutInit(&argc, argv); + glutInitDisplayMode (GLUT_DOUBLE | GLUT_RGB | GLUT_DEPTH); + glutInitWindowSize(800,600); + glutInitWindowPosition (400,200); + glutCreateWindow("绘制太阳系"); + + glutDisplayFunc(myDisplay); + glutIdleFunc (myDisplay); + + glutReshapeFunc(myReshape); + myInit(); + glutMainLoop(); + + return 0; +}