00001 
00002 
00003 
00004 
00005 #include <dlfcn.h>
00006 
00007 #include <GL/gl.h>
00008 #include "util.h"
00009 
00010 #pragma init (init_object_module)
00011 
00012 pointer glpkg;
00013 
00014 extern pointer sysmod;
00015 
00016 #if BUG_dl
00017 static void *xlib_handle;
00018 #endif
00019 
00020 pointer defoglforeign(ctx,xentry)
00021 register context *ctx;
00022 char *xentry;
00023 { pointer fc, xsym;
00024   eusinteger_t entry; int i, len;
00025   char lname[100];
00026   len=strlen(xentry);
00027   for (i=0; i<len; i++) lname[i]=toupper(xentry[i]);
00028   lname[i]=0;
00029 #if Cygwin 
00030   eusinteger_t dlhandle;
00031   dlhandle=(eusinteger_t)dlopen("cygGL-1.dll", RTLD_LAZY);
00032   entry=(eusinteger_t)dlsym((eusinteger_t)dlhandle, xentry);
00033   if ( !entry ) {
00034     dlhandle=(eusinteger_t)dlopen("cygGLU-1.dll", RTLD_LAZY);
00035     entry=(eusinteger_t)dlsym(dlhandle, xentry);}
00036   if ( !entry ) {
00037     dlhandle=(eusinteger_t)dlopen(0, RTLD_LAZY);
00038     entry=(eusinteger_t)dlsym(dlhandle, xentry);}
00039 #elif Darwin
00040   eusinteger_t dlhandle;
00041   dlhandle=(eusinteger_t)dlopen(0, RTLD_LAZY);
00042   entry=(eusinteger_t)dlsym(dlhandle, xentry);
00043 #else
00044 #if (WORD_SIZE == 64)
00045   entry=(eusinteger_t)dlsym((void *)((eusinteger_t)(sysmod->c.ldmod.handle) & ~3L), xentry);
00046 #else
00047   entry=(eusinteger_t)dlsym((void *)((eusinteger_t)(sysmod->c.ldmod.handle) & ~3), xentry);
00048 #endif
00049 #endif
00050   if (!entry) {
00051     fprintf(stderr, "defoglforeign: dlsym() failed for %s\n", xentry);
00052   }
00053   xsym=intern(ctx,lname, len, glpkg);
00054   fc=makeobject(C_FCODE);
00055   xsym->c.sym.spefunc=fc;
00056   fc->c.fcode.codevec=makeint(0);
00057   fc->c.fcode.quotevec=makeint(0);
00058   fc->c.fcode.subrtype=SUBR_FUNCTION;
00059   fc->c.fcode.paramtypes=NIL;
00060   fc->c.fcode.resulttype=K_INTEGER;
00061   fc->c.fcode.entry=makeint(entry>>2);
00062   fc->c.fcode.entry2=makeint(entry);    
00063   
00064   export(xsym,glpkg); 
00065   return(xsym);}
00066   
00067 pointer oglforeign(ctx,n,argv)
00068 register context *ctx;
00069 int n;
00070 pointer argv[];
00071 {
00072   glpkg=     makepkg(ctx,makestring("GL",2),NIL,rawcons(ctx,lisppkg,NIL));
00073 
00074   defoglforeign(ctx,"glAccum");
00075   defoglforeign(ctx,"glAlphaFunc");
00076   defoglforeign(ctx,"glBegin");
00077   defoglforeign(ctx,"glBitmap");
00078   defoglforeign(ctx,"glBlendFunc");
00079   defoglforeign(ctx,"glCallList");
00080   defoglforeign(ctx,"glCallLists");
00081   defoglforeign(ctx,"glClear");
00082   defoglforeign(ctx,"glClearAccum");
00083   defoglforeign(ctx,"glClearColor");
00084   defoglforeign(ctx,"glClearDepth");
00085   defoglforeign(ctx,"glClearIndex");
00086   defoglforeign(ctx,"glClearStencil");
00087   defoglforeign(ctx,"glClipPlane");
00088   defoglforeign(ctx,"glColor3b");
00089   defoglforeign(ctx,"glColor3bv");
00090   defoglforeign(ctx,"glColor3d");
00091   defoglforeign(ctx,"glColor3dv");
00092   defoglforeign(ctx,"glColor3f");
00093   defoglforeign(ctx,"glColor3fv");
00094   defoglforeign(ctx,"glColor3i");
00095   defoglforeign(ctx,"glColor3iv");
00096   defoglforeign(ctx,"glColor3s");
00097   defoglforeign(ctx,"glColor3sv");
00098   defoglforeign(ctx,"glColor3ub");
00099   defoglforeign(ctx,"glColor3ubv");
00100   defoglforeign(ctx,"glColor3ui");
00101   defoglforeign(ctx,"glColor3uiv");
00102   defoglforeign(ctx,"glColor3us");
00103   defoglforeign(ctx,"glColor3usv");
00104   defoglforeign(ctx,"glColor4b");
00105   defoglforeign(ctx,"glColor4bv");
00106   defoglforeign(ctx,"glColor4d");
00107   defoglforeign(ctx,"glColor4dv");
00108   defoglforeign(ctx,"glColor4f");
00109   defoglforeign(ctx,"glColor4fv");
00110   defoglforeign(ctx,"glColor4i");
00111   defoglforeign(ctx,"glColor4iv");
00112   defoglforeign(ctx,"glColor4s");
00113   defoglforeign(ctx,"glColor4sv");
00114   defoglforeign(ctx,"glColor4ub");
00115   defoglforeign(ctx,"glColor4ubv");
00116   defoglforeign(ctx,"glColor4ui");
00117   defoglforeign(ctx,"glColor4uiv");
00118   defoglforeign(ctx,"glColor4us");
00119   defoglforeign(ctx,"glColor4usv");
00120   defoglforeign(ctx,"glColorMask");
00121   defoglforeign(ctx,"glColorMaterial");
00122   defoglforeign(ctx,"glCopyPixels");
00123   defoglforeign(ctx,"glCullFace");
00124   defoglforeign(ctx,"glDeleteLists");
00125   defoglforeign(ctx,"glDepthFunc");
00126   defoglforeign(ctx,"glDepthMask");
00127   defoglforeign(ctx,"glDepthRange");
00128   defoglforeign(ctx,"glDisable");
00129   defoglforeign(ctx,"glDrawBuffer");
00130   defoglforeign(ctx,"glDrawPixels");
00131   defoglforeign(ctx,"glEdgeFlag");
00132   defoglforeign(ctx,"glEdgeFlagv");
00133   defoglforeign(ctx,"glEnable");
00134   defoglforeign(ctx,"glEnd");
00135   defoglforeign(ctx,"glEndList");
00136   defoglforeign(ctx,"glEvalCoord1d");
00137   defoglforeign(ctx,"glEvalCoord1dv");
00138   defoglforeign(ctx,"glEvalCoord1f");
00139   defoglforeign(ctx,"glEvalCoord1fv");
00140   defoglforeign(ctx,"glEvalCoord2d");
00141   defoglforeign(ctx,"glEvalCoord2dv");
00142   defoglforeign(ctx,"glEvalCoord2f");
00143   defoglforeign(ctx,"glEvalCoord2fv");
00144   defoglforeign(ctx,"glEvalMesh1");
00145   defoglforeign(ctx,"glEvalMesh2");
00146   defoglforeign(ctx,"glEvalPoint1");
00147   defoglforeign(ctx,"glEvalPoint2");
00148   defoglforeign(ctx,"glFeedbackBuffer");
00149   defoglforeign(ctx,"glFinish");
00150   defoglforeign(ctx,"glFlush");
00151   defoglforeign(ctx,"glFogf");
00152   defoglforeign(ctx,"glFogfv");
00153   defoglforeign(ctx,"glFogi");
00154   defoglforeign(ctx,"glFogiv");
00155   defoglforeign(ctx,"glFrontFace");
00156   defoglforeign(ctx,"glFrustum");
00157   defoglforeign(ctx,"glGenLists");
00158   defoglforeign(ctx,"glGetBooleanv");
00159   defoglforeign(ctx,"glGetClipPlane");
00160   defoglforeign(ctx,"glGetDoublev");
00161   defoglforeign(ctx,"glGetError");
00162   defoglforeign(ctx,"glGetFloatv");
00163   defoglforeign(ctx,"glGetIntegerv");
00164   defoglforeign(ctx,"glGetLightfv");
00165   defoglforeign(ctx,"glGetLightiv");
00166   defoglforeign(ctx,"glGetMapdv");
00167   defoglforeign(ctx,"glGetMapfv");
00168   defoglforeign(ctx,"glGetMapiv");
00169   defoglforeign(ctx,"glGetMaterialfv");
00170   defoglforeign(ctx,"glGetMaterialiv");
00171   defoglforeign(ctx,"glGetPixelMapfv");
00172   defoglforeign(ctx,"glGetPixelMapuiv");
00173   defoglforeign(ctx,"glGetPixelMapusv");
00174   defoglforeign(ctx,"glGetPolygonStipple");
00175   defoglforeign(ctx,"glGetString");
00176   defoglforeign(ctx,"glGetTexEnvfv");
00177   defoglforeign(ctx,"glGetTexEnviv");
00178   defoglforeign(ctx,"glGetTexGendv");
00179   defoglforeign(ctx,"glGetTexGenfv");
00180   defoglforeign(ctx,"glGetTexGeniv");
00181   defoglforeign(ctx,"glGetTexImage");
00182   defoglforeign(ctx,"glGetTexLevelParameterfv");
00183   defoglforeign(ctx,"glGetTexLevelParameteriv");
00184   defoglforeign(ctx,"glGetTexParameterfv");
00185   defoglforeign(ctx,"glGetTexParameteriv");
00186   defoglforeign(ctx,"glHint");
00187   defoglforeign(ctx,"glIndexMask");
00188   defoglforeign(ctx,"glIndexd");
00189   defoglforeign(ctx,"glIndexdv");
00190   defoglforeign(ctx,"glIndexf");
00191   defoglforeign(ctx,"glIndexfv");
00192   defoglforeign(ctx,"glIndexi");
00193   defoglforeign(ctx,"glIndexiv");
00194   defoglforeign(ctx,"glIndexs");
00195   defoglforeign(ctx,"glIndexsv");
00196   defoglforeign(ctx,"glInitNames");
00197   defoglforeign(ctx,"glIsEnabled");
00198   defoglforeign(ctx,"glIsList");
00199   defoglforeign(ctx,"glLightModelf");
00200   defoglforeign(ctx,"glLightModelfv");
00201   defoglforeign(ctx,"glLightModeli");
00202   defoglforeign(ctx,"glLightModeliv");
00203   defoglforeign(ctx,"glLightf");
00204   defoglforeign(ctx,"glLightfv");
00205   defoglforeign(ctx,"glLighti");
00206   defoglforeign(ctx,"glLightiv");
00207   defoglforeign(ctx,"glLineStipple");
00208   defoglforeign(ctx,"glLineWidth");
00209   defoglforeign(ctx,"glListBase");
00210   defoglforeign(ctx,"glLoadIdentity");
00211   defoglforeign(ctx,"glLoadMatrixd");
00212   defoglforeign(ctx,"glLoadMatrixf");
00213   defoglforeign(ctx,"glLoadName");
00214   defoglforeign(ctx,"glLogicOp");
00215   defoglforeign(ctx,"glMap1d");
00216   defoglforeign(ctx,"glMap1f");
00217   defoglforeign(ctx,"glMap2d");
00218   defoglforeign(ctx,"glMap2f");
00219   defoglforeign(ctx,"glMapGrid1d");
00220   defoglforeign(ctx,"glMapGrid1f");
00221   defoglforeign(ctx,"glMapGrid2d");
00222   defoglforeign(ctx,"glMapGrid2f");
00223   defoglforeign(ctx,"glMaterialf");
00224   defoglforeign(ctx,"glMaterialfv");
00225   defoglforeign(ctx,"glMateriali");
00226   defoglforeign(ctx,"glMaterialiv");
00227   defoglforeign(ctx,"glMatrixMode");
00228   defoglforeign(ctx,"glMultMatrixd");
00229   defoglforeign(ctx,"glMultMatrixf");
00230   defoglforeign(ctx,"glNewList");
00231   defoglforeign(ctx,"glNormal3b");
00232   defoglforeign(ctx,"glNormal3bv");
00233   defoglforeign(ctx,"glNormal3d");
00234   defoglforeign(ctx,"glNormal3dv");
00235   defoglforeign(ctx,"glNormal3f");
00236   defoglforeign(ctx,"glNormal3fv");
00237   defoglforeign(ctx,"glNormal3i");
00238   defoglforeign(ctx,"glNormal3iv");
00239   defoglforeign(ctx,"glNormal3s");
00240   defoglforeign(ctx,"glNormal3sv");
00241   defoglforeign(ctx,"glOrtho");
00242   defoglforeign(ctx,"glPassThrough");
00243   defoglforeign(ctx,"glPixelMapfv");
00244   defoglforeign(ctx,"glPixelMapuiv");
00245   defoglforeign(ctx,"glPixelMapusv");
00246   defoglforeign(ctx,"glPixelStoref");
00247   defoglforeign(ctx,"glPixelStorei");
00248   defoglforeign(ctx,"glPixelTransferf");
00249   defoglforeign(ctx,"glPixelTransferi");
00250   defoglforeign(ctx,"glPixelZoom");
00251   defoglforeign(ctx,"glPointSize");
00252   defoglforeign(ctx,"glPolygonMode");
00253   defoglforeign(ctx,"glPolygonStipple");
00254   defoglforeign(ctx,"glPopAttrib");
00255   defoglforeign(ctx,"glPopMatrix");
00256   defoglforeign(ctx,"glPopName");
00257   defoglforeign(ctx,"glPushAttrib");
00258   defoglforeign(ctx,"glPushMatrix");
00259   defoglforeign(ctx,"glPushName");
00260   defoglforeign(ctx,"glRasterPos2d");
00261   defoglforeign(ctx,"glRasterPos2dv");
00262   defoglforeign(ctx,"glRasterPos2f");
00263   defoglforeign(ctx,"glRasterPos2fv");
00264   defoglforeign(ctx,"glRasterPos2i");
00265   defoglforeign(ctx,"glRasterPos2iv");
00266   defoglforeign(ctx,"glRasterPos2s");
00267   defoglforeign(ctx,"glRasterPos2sv");
00268   defoglforeign(ctx,"glRasterPos3d");
00269   defoglforeign(ctx,"glRasterPos3dv");
00270   defoglforeign(ctx,"glRasterPos3f");
00271   defoglforeign(ctx,"glRasterPos3fv");
00272   defoglforeign(ctx,"glRasterPos3i");
00273   defoglforeign(ctx,"glRasterPos3iv");
00274   defoglforeign(ctx,"glRasterPos3s");
00275   defoglforeign(ctx,"glRasterPos3sv");
00276   defoglforeign(ctx,"glRasterPos4d");
00277   defoglforeign(ctx,"glRasterPos4dv");
00278   defoglforeign(ctx,"glRasterPos4f");
00279   defoglforeign(ctx,"glRasterPos4fv");
00280   defoglforeign(ctx,"glRasterPos4i");
00281   defoglforeign(ctx,"glRasterPos4iv");
00282   defoglforeign(ctx,"glRasterPos4s");
00283   defoglforeign(ctx,"glRasterPos4sv");
00284   defoglforeign(ctx,"glReadBuffer");
00285   defoglforeign(ctx,"glReadPixels");
00286   defoglforeign(ctx,"glRectd");
00287   defoglforeign(ctx,"glRectdv");
00288   defoglforeign(ctx,"glRectf");
00289   defoglforeign(ctx,"glRectfv");
00290   defoglforeign(ctx,"glRecti");
00291   defoglforeign(ctx,"glRectiv");
00292   defoglforeign(ctx,"glRects");
00293   defoglforeign(ctx,"glRectsv");
00294   defoglforeign(ctx,"glRenderMode");
00295   defoglforeign(ctx,"glRotated");
00296   defoglforeign(ctx,"glRotatef");
00297   defoglforeign(ctx,"glScaled");
00298   defoglforeign(ctx,"glScalef");
00299   defoglforeign(ctx,"glScissor");
00300   defoglforeign(ctx,"glSelectBuffer");
00301   defoglforeign(ctx,"glShadeModel");
00302   defoglforeign(ctx,"glStencilFunc");
00303   defoglforeign(ctx,"glStencilMask");
00304   defoglforeign(ctx,"glStencilOp");
00305   defoglforeign(ctx,"glTexCoord1d");
00306   defoglforeign(ctx,"glTexCoord1dv");
00307   defoglforeign(ctx,"glTexCoord1f");
00308   defoglforeign(ctx,"glTexCoord1fv");
00309   defoglforeign(ctx,"glTexCoord1i");
00310   defoglforeign(ctx,"glTexCoord1iv");
00311   defoglforeign(ctx,"glTexCoord1s");
00312   defoglforeign(ctx,"glTexCoord1sv");
00313   defoglforeign(ctx,"glTexCoord2d");
00314   defoglforeign(ctx,"glTexCoord2dv");
00315   defoglforeign(ctx,"glTexCoord2f");
00316   defoglforeign(ctx,"glTexCoord2fv");
00317   defoglforeign(ctx,"glTexCoord2i");
00318   defoglforeign(ctx,"glTexCoord2iv");
00319   defoglforeign(ctx,"glTexCoord2s");
00320   defoglforeign(ctx,"glTexCoord2sv");
00321   defoglforeign(ctx,"glTexCoord3d");
00322   defoglforeign(ctx,"glTexCoord3dv");
00323   defoglforeign(ctx,"glTexCoord3f");
00324   defoglforeign(ctx,"glTexCoord3fv");
00325   defoglforeign(ctx,"glTexCoord3i");
00326   defoglforeign(ctx,"glTexCoord3iv");
00327   defoglforeign(ctx,"glTexCoord3s");
00328   defoglforeign(ctx,"glTexCoord3sv");
00329   defoglforeign(ctx,"glTexCoord4d");
00330   defoglforeign(ctx,"glTexCoord4dv");
00331   defoglforeign(ctx,"glTexCoord4f");
00332   defoglforeign(ctx,"glTexCoord4fv");
00333   defoglforeign(ctx,"glTexCoord4i");
00334   defoglforeign(ctx,"glTexCoord4iv");
00335   defoglforeign(ctx,"glTexCoord4s");
00336   defoglforeign(ctx,"glTexCoord4sv");
00337   defoglforeign(ctx,"glTexEnvf");
00338   defoglforeign(ctx,"glTexEnvfv");
00339   defoglforeign(ctx,"glTexEnvi");
00340   defoglforeign(ctx,"glTexEnviv");
00341   defoglforeign(ctx,"glTexGend");
00342   defoglforeign(ctx,"glTexGendv");
00343   defoglforeign(ctx,"glTexGenf");
00344   defoglforeign(ctx,"glTexGenfv");
00345   defoglforeign(ctx,"glTexGeni");
00346   defoglforeign(ctx,"glTexGeniv");
00347   defoglforeign(ctx,"glTexImage1D");
00348   defoglforeign(ctx,"glTexImage2D");
00349   defoglforeign(ctx,"glTexParameterf");
00350   defoglforeign(ctx,"glTexParameterfv");
00351   defoglforeign(ctx,"glTexParameteri");
00352   defoglforeign(ctx,"glTexParameteriv");
00353   defoglforeign(ctx,"glTranslated");
00354   defoglforeign(ctx,"glTranslatef");
00355   defoglforeign(ctx,"glVertex2d");
00356   defoglforeign(ctx,"glVertex2dv");
00357   defoglforeign(ctx,"glVertex2f");
00358   defoglforeign(ctx,"glVertex2fv");
00359   defoglforeign(ctx,"glVertex2i");
00360   defoglforeign(ctx,"glVertex2iv");
00361   defoglforeign(ctx,"glVertex2s");
00362   defoglforeign(ctx,"glVertex2sv");
00363   defoglforeign(ctx,"glVertex3d");
00364   defoglforeign(ctx,"glVertex3dv");
00365   defoglforeign(ctx,"glVertex3f");
00366   defoglforeign(ctx,"glVertex3fv");
00367   defoglforeign(ctx,"glVertex3i");
00368   defoglforeign(ctx,"glVertex3iv");
00369   defoglforeign(ctx,"glVertex3s");
00370   defoglforeign(ctx,"glVertex3sv");
00371   defoglforeign(ctx,"glVertex4d");
00372   defoglforeign(ctx,"glVertex4dv");
00373   defoglforeign(ctx,"glVertex4f");
00374   defoglforeign(ctx,"glVertex4fv");
00375   defoglforeign(ctx,"glVertex4i");
00376   defoglforeign(ctx,"glVertex4iv");
00377   defoglforeign(ctx,"glVertex4s");
00378   defoglforeign(ctx,"glVertex4sv");
00379   defoglforeign(ctx,"glViewport");
00380   defoglforeign(ctx,"gluErrorString");
00381   defoglforeign(ctx,"gluOrtho2D");
00382   defoglforeign(ctx,"gluPerspective");
00383   defoglforeign(ctx,"gluPickMatrix");
00384   defoglforeign(ctx,"gluLookAt");
00385   defoglforeign(ctx,"gluProject");
00386   defoglforeign(ctx,"gluUnProject");
00387   defoglforeign(ctx,"gluScaleImage");
00388   defoglforeign(ctx,"gluBuild1DMipmaps");
00389   defoglforeign(ctx,"gluBuild2DMipmaps");
00390   defoglforeign(ctx,"gluNewQuadric");
00391   defoglforeign(ctx,"gluDeleteQuadric");
00392   defoglforeign(ctx,"gluQuadricNormals");
00393   defoglforeign(ctx,"gluQuadricTexture");
00394   defoglforeign(ctx,"gluQuadricOrientation");
00395   defoglforeign(ctx,"gluQuadricDrawStyle");
00396   defoglforeign(ctx,"gluCylinder");
00397   defoglforeign(ctx,"gluDisk");
00398   defoglforeign(ctx,"gluPartialDisk");
00399   defoglforeign(ctx,"gluSphere");
00400   defoglforeign(ctx,"gluQuadricCallback");
00401   defoglforeign(ctx,"gluNewTess");
00402   defoglforeign(ctx,"gluTessCallback");
00403   defoglforeign(ctx,"gluDeleteTess");
00404   defoglforeign(ctx,"gluBeginPolygon");
00405   defoglforeign(ctx,"gluEndPolygon");
00406   defoglforeign(ctx,"gluNextContour");
00407   defoglforeign(ctx,"gluTessVertex");
00408   defoglforeign(ctx,"gluNewNurbsRenderer");
00409   defoglforeign(ctx,"gluDeleteNurbsRenderer");
00410   defoglforeign(ctx,"gluBeginSurface");
00411   defoglforeign(ctx,"gluBeginCurve");
00412   defoglforeign(ctx,"gluEndCurve");
00413   defoglforeign(ctx,"gluEndSurface");
00414   defoglforeign(ctx,"gluBeginTrim");
00415   defoglforeign(ctx,"gluEndTrim");
00416   defoglforeign(ctx,"gluPwlCurve");
00417   defoglforeign(ctx,"gluNurbsCurve");
00418   defoglforeign(ctx,"gluNurbsSurface");
00419   defoglforeign(ctx,"gluLoadSamplingMatrices");
00420   defoglforeign(ctx,"gluNurbsProperty");
00421   defoglforeign(ctx,"gluGetNurbsProperty");
00422   defoglforeign(ctx,"gluNurbsCallback");
00423   defoglforeign(ctx,"glXChooseVisual");
00424   defoglforeign(ctx,"glXCopyContext");
00425   defoglforeign(ctx,"glXCreateContext");
00426   defoglforeign(ctx,"glXCreateGLXPixmap");
00427   defoglforeign(ctx,"glXDestroyContext");
00428   defoglforeign(ctx,"glXDestroyGLXPixmap");
00429   defoglforeign(ctx,"glXGetConfig");
00430   defoglforeign(ctx,"glXGetCurrentContext");
00431   defoglforeign(ctx,"glXGetCurrentDrawable");
00432   defoglforeign(ctx,"glXIsDirect");
00433   defoglforeign(ctx,"glXMakeCurrent");
00434   defoglforeign(ctx,"glXQueryExtension");
00435   defoglforeign(ctx,"glXQueryVersion");
00436   defoglforeign(ctx,"glXSwapBuffers");
00437   defoglforeign(ctx,"glXUseXFont");
00438   defoglforeign(ctx,"glXWaitGL");
00439   defoglforeign(ctx,"glXWaitX");
00440 #if !Cygwin && !Linux 
00441   
00442   defoglforeign(ctx,"tkInitDisplayMode");
00443   
00444   
00445   defoglforeign(ctx,"tkInitPosition");
00446   defoglforeign(ctx,"tkInitWindow");
00447   defoglforeign(ctx,"tkCloseWindow");
00448   defoglforeign(ctx,"tkQuit");
00449   defoglforeign(ctx,"tkSetWindowLevel");
00450   defoglforeign(ctx,"tkSwapBuffers");
00451   defoglforeign(ctx,"tkExec");
00452   defoglforeign(ctx,"tkExposeFunc");
00453   defoglforeign(ctx,"tkReshapeFunc");
00454   defoglforeign(ctx,"tkDisplayFunc");
00455   defoglforeign(ctx,"tkKeyDownFunc");
00456   defoglforeign(ctx,"tkMouseDownFunc");
00457   defoglforeign(ctx,"tkMouseUpFunc");
00458   defoglforeign(ctx,"tkMouseMoveFunc");
00459   defoglforeign(ctx,"tkIdleFunc");
00460   defoglforeign(ctx,"tkGetColorMapSize");
00461   defoglforeign(ctx,"tkGetMouseLoc");
00462   defoglforeign(ctx,"tkGetSystem");
00463   
00464   
00465   
00466   
00467   defoglforeign(ctx,"tkSetOneColor");
00468   defoglforeign(ctx,"tkSetFogRamp");
00469   defoglforeign(ctx,"tkSetGreyRamp");
00470   defoglforeign(ctx,"tkSetRGBMap");
00471   defoglforeign(ctx,"tkSetOverlayMap");
00472   defoglforeign(ctx,"tkNewCursor");
00473   defoglforeign(ctx,"tkSetCursor");
00474   defoglforeign(ctx,"tkRGBImageLoad");
00475   defoglforeign(ctx,"tkCreateStrokeFont");
00476   defoglforeign(ctx,"tkCreateOutlineFont");
00477   defoglforeign(ctx,"tkCreateFilledFont");
00478   defoglforeign(ctx,"tkCreateBitmapFont");
00479   defoglforeign(ctx,"tkDrawStr");
00480   defoglforeign(ctx,"tkWireSphere");
00481   defoglforeign(ctx,"tkSolidSphere");
00482   defoglforeign(ctx,"tkWireCube");
00483   defoglforeign(ctx,"tkSolidCube");
00484   defoglforeign(ctx,"tkWireBox");
00485   defoglforeign(ctx,"tkSolidBox");
00486   defoglforeign(ctx,"tkWireTorus");
00487   defoglforeign(ctx,"tkSolidTorus");
00488   defoglforeign(ctx,"tkWireCylinder");
00489   defoglforeign(ctx,"tkSolidCylinder");
00490   defoglforeign(ctx,"tkWireCone");
00491   defoglforeign(ctx,"tkSolidCone");
00492 #endif
00493 
00494 #ifdef IRIX
00495   
00496   
00497 #endif
00498 
00499 
00500 
00501 
00502 
00503 
00504 
00505 #ifdef IRIX
00506   
00507 #endif
00508 
00509 
00510 
00511 
00512 
00513 
00514 
00515 
00516 #ifdef IRIX
00517   
00518   
00519   
00520   
00521 #endif
00522 
00523 
00524 
00525 
00526 
00527 
00528 
00529 
00530 
00531 
00532 
00533 
00534 
00535 
00536 
00537 
00538 
00539 
00540 
00541 
00542 
00543 
00544 
00545 
00546 
00547 
00548 
00549 
00550 
00551   defoglforeign(ctx,"glClearColorfv");
00552   defoglforeign(ctx,"glOrtho6f");
00553   defoglforeign(ctx,"glOrthofv");
00554   defoglforeign(ctx,"glRotatefv");
00555   defoglforeign(ctx,"glTranslatefv");
00556 
00557   defoglforeign(ctx,"glClipPlanef");
00558 
00559 
00560 
00561 
00562 
00563   defoglforeign(ctx,"gluPerspectivefv");
00564   defoglforeign(ctx,"gluLookAtfv");
00565   defoglforeign(ctx,"gluTessCallbackl");
00566 
00567 
00568 
00569   defoglforeign(ctx,"glClearAccumfv");
00570   defoglforeign(ctx,"glAccumfv");
00571   defoglforeign(ctx,"gluDiskfv");
00572   defoglforeign(ctx,"gluPartialDiskfv");
00573 
00574   defoglforeign(ctx,"glScalefv");
00575   defoglforeign(ctx,"gluNurbsPropertyfv");
00576   defoglforeign(ctx,"glMapGrid2fv");
00577   defoglforeign(ctx,"glBitmapfv");
00578   defoglforeign(ctx,"glMap1fv");
00579   defoglforeign(ctx,"glMap2fv");
00580 
00581   defoglforeign(ctx,"glFrustumfv");
00582   defoglforeign(ctx,"gluOrtho2Dfv");
00583   defoglforeign(ctx,"glPointSizefv");
00584   defoglforeign(ctx,"glClearIndexfv");
00585   defoglforeign(ctx,"alloctessinfo");
00586   defoglforeign(ctx,"tess_vertex_cb");
00587   defoglforeign(ctx,"glDepthRangefv");
00588 #if (WORD_SIZE == 64)
00589   defoglforeign(ctx,"glPointSized");
00590   defoglforeign(ctx,"glLineWidthd");
00591   defoglforeign(ctx,"gluNurbsPropertyd");
00592 #endif
00593   
00594   defoglforeign(ctx,"gluTessBeginContour");
00595   defoglforeign(ctx,"gluTessEndContour");
00596   defoglforeign(ctx,"gluTessBeginPolygon");
00597   defoglforeign(ctx,"gluTessEndPolygon");
00598 
00599 #if GL_EXT_texture_object && !Darwin
00600   defoglforeign(ctx,"glGenTexturesEXT");
00601   defoglforeign(ctx,"glBindTextureEXT");
00602 #else
00603   defoglforeign(ctx,"glGenTextures");
00604   defoglforeign(ctx,"glBindTexture");
00605 #endif
00606 #if 0 
00607   defoglforeign(ctx,"glPolygonOffsetEXT");
00608   defoglforeign(ctx,"glPolygonOffsetEXTfv");
00609 #endif
00610 
00611   return(argv[0]);}
00612 
00613 static void init_object_module()
00614   { add_module_initializer("oglforeign", oglforeign);}