OpenGL - v0.57 Perl OpenGL (POGL) module to display 3D data using OpenGL, FreeGLUT/GLUT, and GLX
use OpenGL; # exports most of the old functionality of OpenGL 0.4 use OpenGL qw(:old); # Same thing use OpenGL qw(:glfunctions :glconstants); # exports functions and # constants for using OpenGL, without exporting GLU, GLUT, # or GLX stuff. use OpenGL qw(:all); # exports all new functionality, without the OpenGL # 0.4 compatibility functions See also: POGL Objects * OpenGL::Array - optimized data arrays via C pointers * OpenGL::Image - direct C pointer acces to ImageMagick image cache * OpenGL::Shader - abstracted shader interface: ARB, GLSL and Cg
Documentation, tips, sample source, benchmarks and binary distributions available at http://graphcomp.com/opengl
This module assumes that libGL.so, libGLU.so and libglut.so (opengl32.dll and glu32.dll on Windows) are properly installed on your system.
If used with OpenGL::Image, use v1.03 or newer.
Virtually all of the OpenGL 1.0, and 1.1 functions are available, and most of 1.2. In general, the calling sequence is identical in Perl as in C.
Most functions that have no pointer arguments are called identically in Perl as in C, and the same name is used.
Functions that use array arguments and have been changed in "the obvious way" -- to take a variable number of arguments and/or to return an array -- have the the same names as their C counterparts, but with a _p suffix.
All functions that take pointers are available with their original calling syntax and a _c suffix. These are most useful when combined with the OpenGL::Array module, which lets you allocate C arrays from Perl.
A third variant, _s, exists for most pointer functions, and takes a string argument for each pointer. The underlying OpenGL function will be passed a pointer to that string.
glutAddMenuEntry glutAddSubMenu glutAttachMenu glutBitmapCharacter glutBitmapWidth glutButtonBoxFunc glutChangeToMenuEntry glutChangeToSubMenu glutCopyColormap glutCreateMenu glutCreateSubWindow glutCreateWindow glutDestroyMenu glutDestroyWindow glutDetachMenu glutDeviceGet glutDialsFunc glutDisplayFunc glutEntryFunc glutEstablishOverlay glutExtensionSupported glutFullScreen glutGet glutGetColor glutGetMenu glutGetModifiers glutGetWindow glutHideOverlay glutHideWindow glutIconifyWindow glutIdleFunc glutInit glutInitDisplayMode glutInitWindowPosition glutInitWindowSize glutKeyboardFunc glutKeyboardUpFunc glutLayerGet glutMainLoop glutMenuStateFunc glutMenuStatusFunc glutMotionFunc glutMouseFunc glutOverlayDisplayFunc glutPassiveMotionFunc glutPopWindow glutPositionWindow glutPostOverlayRedisplay glutPostRedisplay glutPushWindow glutRemoveMenuItem glutRemoveOverlay glutReshapeFunc glutReshapeWindow glutSetColor glutSetCursor glutSetIconTitle glutSetMenu glutSetWindow glutSetWindowTitle glutShowOverlay glutShowWindow glutSolidCone glutSolidCube glutSolidDodecahedron glutSolidIcosahedron glutSolidOctahedron glutSolidSphere glutSolidTeapot glutSolidTetrahedron glutSolidTorus glutSpaceballButtonFunc glutSpaceballMotionFunc glutSpaceballRotateFunc glutSpecialFunc glutSpecialUpFunc glutStrokeCharacter glutStrokeWidth glutSwapBuffers glutTabletButtonFunc glutTabletMotionFunc glutTimerFunc glutUseLayer glutVisibilityFunc glutWindowStatusFunc glutWireCone glutWireCube glutWireDodecahedron glutWireIcosahedron glutWireOctahedron glutWireSphere glutWireTeapot glutWireTetrahedron glutWireTorus glutSetOption glutGameModeString glutEnterGameMode glutLeaveGameMode glutGameModeGet glutCloseFunc glutLeaveMainLoop glutIgnoreKeyRepeat glutSetKeyRepeat glutForceJoystickFunc
gluBeginCurve gluBeginPolygon gluBeginSurface gluBeginTrim gluBuild1DMipmaps_c gluBuild1DMipmaps_s gluBuild2DMipmaps_c gluBuild2DMipmaps_s gluCylinder gluDeleteNurbsRenderer gluDeleteQuadric gluDeleteTess gluDisk gluEndCurve gluEndPolygon gluEndSurface gluEndTrim gluErrorString gluGetNurbsProperty_p gluGetString gluGetTessProperty_p gluLoadSamplingMatrices_p gluLookAt gluNewNurbsRenderer gluNewQuadric gluNewTess gluNextContour gluNurbsCurve_c gluNurbsSurface_c gluOrtho2D gluPartialDisk gluPerspective gluPickMatrix_p gluProject_p gluPwlCurve_c gluQuadricDrawStyle gluQuadricNormals gluQuadricOrientation gluQuadricTexture gluScaleImage_s gluSphere gluTessBeginCountour gluTessBeginPolygon gluTessCallback gluTessEndContour gluTessEndPolygon gluTessNormal gluTessProperty gluTessVertex gluUnProject_p
glAccum glAlphaFunc glAreTexturesResident_s glAreTexturesResident_c glAreTexturesResident_p glArrayElement glBegin glEnd glBindTexture glBitmap_s glBitmap_c glBitmap_p glBlendFunc glCallList glCallLists_s glCallLists_c glCallLists_p glClear glClearAccum glClearColor glClearDepth glClearIndex glClearStencil glClipPlane_p glClipPlane_s glClipPlane_c glColorMask glColorMaterial glColorPointer_c glCopyPixels glCopyTexImage1D glCopyTexImage2D glCopyTexSubImage1D glCopyTexSubImage2D glCopyTexSubImage3D glCullFace glDeleteLists glDeleteTextures_s glDeleteTextures_c glDeleteTextures_p glDepthFunc glDepthMask glDepthRange glDrawArrays glDrawBuffer glDrawBuffers_s glDrawBuffers_c glDrawBuffers_p glDrawBuffersARB_s glDrawBuffersARB_c glDrawBuffersARB_p glDrawElements_s glDrawElements_c glDrawElements_p glDrawPixels_s glDrawPixels_c glDrawPixels_p glDrawRangeElements_s glDrawRangeElements_c glDrawRangeElements_p glEdgeFlag glEdgeFlagPointer_c glEnable glDisable glEnableClientState glDisableClientState glEvalCoord1d glEvalCoord1f glEvalCoord2d glEvalCoord2f glEvalMesh1 glEvalMesh2 glEvalPoint1 glEvalPoint2 glFeedbackBuffer_c glFinish glFlush glFogf glFogi glFogfv_p glFogiv_p glFogfv_s glFogiv_s glFogfv_c glFogiv_c glFrontFace glFrustum glGenLists glGenTextures_s glGenTextures_c glGenTextures_p glGetDoublev_s glGetDoublev_c glGetBooleanv_s glGetBooleanv_c glGetIntegerv_s glGetIntegerv_c glGetFloatv_s glGetFloatv_c glGetDoublev_p glGetBooleanv_p glGetIntegerv_p glGetFloatv_p glGetClipPlane_p glGetClipPlane_s glGetClipPlane_c glGetError glGetLightfv_p glGetLightiv_p glGetLightfv_c glGetLightiv_c glGetLightfv_s glGetLightiv_s glGetMapfv_p glGetMapdv_p glGetMapiv_p glGetMapiv_c glGetMapfv_c glGetMapdv_c glGetMapdv_s glGetMapfv_s glGetMapiv_s glGetMaterialfv_p glGetMaterialiv_p glGetMaterialfv_c glGetMaterialiv_c glGetMaterialfv_s glGetMaterialiv_s glGetPixelMapfv_p glGetPixelMapuiv_p glGetPixelMapusv_p glGetPixelMapfv_c glGetPixelMapuiv_c glGetPixelMapusv_c glGetPixelMapfv_s glGetPixelMapuiv_s glGetPixelMapusv_s glGetPolygonStipple_s glGetPolygonStipple_c glGetPolygonStipple_p glGetPointerv_c glGetPointerv_s glGetPointerv_p glGetString glGetTexEnvfv_p glGetTexEnviv_p glGetTexEnvfv_c glGetTexEnviv_c glGetTexEnvfv_s glGetTexEnviv_s glGetTexGenfv_p glGetTexGendv_p glGetTexGeniv_p glGetTexGenfv_c glGetTexGendv_c glGetTexGeniv_c glGetTexGendv_s glGetTexGenfv_s glGetTexGeniv_s glGetTexImage_s glGetTexImage_c glGetTexImage_p glGetTexLevelParameterfv_p glGetTexLevelParameteriv_p glGetTexLevelParameterfv_s glGetTexLevelParameteriv_s glGetTexLevelParameterfv_c glGetTexLevelParameteriv_c glGetTexParameterfv_p glGetTexParameteriv_p glGetTexParameterfv_s glGetTexParameteriv_s glGetTexParameterfv_c glGetTexParameteriv_c glHint glIndexd glIndexi glIndexMask glIndexPointer_c glInitNames glInterleavedArrays_c glIsEnabled glIsList glIsTexture glLightf glLighti glLightfv_p glLightiv_p glLightfv_c glLightiv_c glLightfv_s glLightiv_s glLightModelf glLightModeli glLightModelfv_p glLightModeliv_p glLightModeliv_c glLightModelfv_c glLightModeliv_s glLightModelfv_s glLineStipple glLineWidth glListBase glLoadIdentity glLoadMatrixd_p glLoadMatrixf_p glLoadMatrixf_c glLoadMatrixd_c glLoadMatrixf_s glLoadMatrixd_s glLoadName glLogicOp glMap1d_p glMap1f_p glMap1d_c glMap1f_c glMap1d_s glMap1f_s glMap2d_p glMap2f_p glMap2d_c glMap2f_c glMap2d_s glMap2f_s glMapGrid1d glMapGrid1f glMapGrid2d glMapGrid2f glMaterialf glMateriali glMaterialfv_p glMaterialiv_p glMaterialfv_s glMaterialiv_s glMaterialfv_c glMaterialiv_c glMatrixMode glMultMatrixd_p glMultMatrixf_p glNewList glEndList glNormalPointer_c glOrtho glPassThrough glPixelMapfv_p glPixelMapuiv_p glPixelMapusv_p glPixelMapfv_c glPixelMapuiv_c glPixelMapusv_c glPixelMapfv_s glPixelMapuiv_s glPixelMapusv_s glPixelStoref glPixelStorei glPixelTransferf glPixelTransferi glPixelZoom glPointSize glPolygonMode glPolygonOffset glPolygonStipple_s glPolygonStipple_c glPolygonStipple_p glPrioritizeTextures_s glPrioritizeTextures_c glPrioritizeTextures_p glPushAttrib glPopAttrib glPushClientAttrib glPopClientAttrib glPushMatrix glPopMatrix glPushName glPopName glReadBuffer glReadPixels_s glReadPixels_c glReadPixels_p glRecti glRects glRectd glRectf glRectsv_c glRectiv_c glRectfv_c glRectdv_c glRectdv_s glRectfv_s glRectiv_s glRectsv_s glRenderMode glRotated glRotatef glScaled glScalef glScissor glSelectBuffer_c glShadeModel glStencilFunc glStencilMask glStencilOp glTexCoordPointer_c glTexEnvf glTexEnvi glTexEnvfv_p glTexEnviv_p glTexEnvfv_s glTexEnviv_s glTexGend glTexGenf glTexGeni glTexGendv_p glTexGenfv_p glTexGeniv_p glTexGendv_s glTexGenfv_s glTexGeniv_s glTexGendv_c glTexGenfv_c glTexGeniv_c glTexImage1D_s glTexImage1D_c glTexImage1D_p glTexImage2D_s glTexImage2D_c glTexImage2D_p glTexImage3D_s glTexImage3D_c glTexImage3D_p glTexImage3DEXT_c glTexImage3DEXT_s glTexImage3DEXT_p glTexParameterf glTexParameteri glTexParameterfv_p glTexParameteriv_p glTexParameterfv_s glTexParameteriv_s glTexParameterfv_c glTexParameteriv_c glTexSubImage1D_c glTexSubImage1D_s glTexSubImage1D_p glTexSubImage2D_s glTexSubImage2D_c glTexSubImage2D_p glTexSubImage3D_s glTexSubImage3D_c glTexSubImage3D_p glTexSubImage1DEXT_c glTexSubImage1DEXT_s glTexSubImage1DEXT_p glTexSubImage2DEXT_c glTexSubImage2DEXT_s glTexSubImage2DEXT_p glTranslated glTranslatef glVertexPointer_c glVertexPointer_s glVertexPointer_p glViewport glVertex2d glVertex2dv_p glVertex2dv_s glVertex2dv_c glVertex2f glVertex2fv_p glVertex2fv_s glVertex2fv_c glVertex2i glVertex2iv_p glVertex2iv_s glVertex2iv_c glVertex2s glVertex2sv_p glVertex2sv_s glVertex2sv_c glVertex3d glVertex3dv_p glVertex3dv_s glVertex3dv_c glVertex3f glVertex3fv_p glVertex3fv_s glVertex3fv_c glVertex3i glVertex3iv_p glVertex3iv_s glVertex3iv_c glVertex3s glVertex3sv_p glVertex3sv_s glVertex3sv_c glVertex4d glVertex4dv_p glVertex4dv_s glVertex4dv_c glVertex4f glVertex4fv_p glVertex4fv_s glVertex4fv_c glVertex4i glVertex4iv_p glVertex4iv_s glVertex4iv_c glVertex4s glVertex4sv_p glVertex4sv_s glVertex4sv_c glNormal3b glNormal3bv_p glNormal3bv_s glNormal3bv_c glNormal3d glNormal3dv_p glNormal3dv_s glNormal3dv_c glNormal3f glNormal3fv_p glNormal3fv_s glNormal3fv_c glNormal3i glNormal3iv_p glNormal3iv_s glNormal3iv_c glNormal3s glNormal3sv_p glNormal3sv_s glNormal3sv_c glColor3b glColor3bv_p glColor3bv_s glColor3bv_c glColor3d glColor3dv_p glColor3dv_s glColor3dv_c glColor3f glColor3fv_p glColor3fv_s glColor3fv_c glColor3i glColor3iv_p glColor3iv_s glColor3iv_c glColor3s glColor3sv_p glColor3sv_s glColor3sv_c glColor3ub glColor3ubv_p glColor3ubv_s glColor3ubv_c glColor3ui glColor3uiv_p glColor3uiv_s glColor3uiv_c glColor3us glColor3usv_p glColor3usv_s glColor3usv_c glColor4b glColor4bv_p glColor4bv_s glColor4bv_c glColor4d glColor4dv_p glColor4dv_s glColor4dv_c glColor4f glColor4fv_p glColor4fv_s glColor4fv_c glColor4i glColor4iv_p glColor4iv_s glColor4iv_c glColor4s glColor4sv_p glColor4sv_s glColor4sv_c glColor4ub glColor4ubv_p glColor4ubv_s glColor4ubv_c glColor4ui glColor4uiv_p glColor4uiv_s glColor4uiv_c glColor4us glColor4usv_p glColor4usv_s glColor4usv_c glTexCoord1d glTexCoord1dv_p glTexCoord1dv_s glTexCoord1dv_c glTexCoord1f glTexCoord1fv_p glTexCoord1fv_s glTexCoord1fv_c glTexCoord1i glTexCoord1iv_p glTexCoord1iv_s glTexCoord1iv_c glTexCoord1s glTexCoord1sv_p glTexCoord1sv_s glTexCoord1sv_c glTexCoord2d glTexCoord2dv_p glTexCoord2dv_s glTexCoord2dv_c glTexCoord2f glTexCoord2fv_p glTexCoord2fv_s glTexCoord2fv_c glTexCoord2i glTexCoord2iv_p glTexCoord2iv_s glTexCoord2iv_c glTexCoord2s glTexCoord2sv_p glTexCoord2sv_s glTexCoord2sv_c glTexCoord3d glTexCoord3dv_p glTexCoord3dv_s glTexCoord3dv_c glTexCoord3f glTexCoord3fv_p glTexCoord3fv_s glTexCoord3fv_c glTexCoord3i glTexCoord3iv_p glTexCoord3iv_s glTexCoord3iv_c glTexCoord3s glTexCoord3sv_p glTexCoord3sv_s glTexCoord3sv_c glTexCoord4d glTexCoord4dv_p glTexCoord4dv_s glTexCoord4dv_c glTexCoord4f glTexCoord4fv_p glTexCoord4fv_s glTexCoord4fv_c glTexCoord4i glTexCoord4iv_p glTexCoord4iv_s glTexCoord4iv_c glTexCoord4s glTexCoord4sv_p glTexCoord4sv_s glTexCoord4sv_c glRasterPos2d glRasterPos2dv_p glRasterPos2dv_s glRasterPos2dv_c glRasterPos2f glRasterPos2fv_p glRasterPos2fv_s glRasterPos2fv_c glRasterPos2i glRasterPos2iv_p glRasterPos2iv_s glRasterPos2iv_c glRasterPos2s glRasterPos2sv_p glRasterPos2sv_s glRasterPos2sv_c glRasterPos3d glRasterPos3dv_p glRasterPos3dv_s glRasterPos3dv_c glRasterPos3f glRasterPos3fv_p glRasterPos3fv_s glRasterPos3fv_c glRasterPos3i glRasterPos3iv_p glRasterPos3iv_s glRasterPos3iv_c glRasterPos3s glRasterPos3sv_p glRasterPos3sv_s glRasterPos3sv_c glRasterPos4d glRasterPos4dv_p glRasterPos4dv_s glRasterPos4dv_c glRasterPos4f glRasterPos4fv_p glRasterPos4fv_s glRasterPos4fv_c glRasterPos4i glRasterPos4iv_p glRasterPos4iv_s glRasterPos4iv_c glRasterPos4s glRasterPos4sv_p glRasterPos4sv_s glRasterPos4sv_c glPolygonOffsetEXT glIsTextureEXT glPrioritizeTexturesEXT_p glBindTextureEXT glDeleteTexturesEXT_p glGenTexturesEXT_p glAreTexturesResidentEXT_p glCopyTexImage1DEXT glCopyTexImage2DEXT glCopyTexSubImage1DEXT glCopyTexSubImage2DEXT glCopyTexSubImage3DEXT glBlendEquationEXT glBlendColorEXT glArrayElementEXT glDrawArraysEXT glVertexPointerEXT_c glVertexPointerEXT_s glVertexPointerEXT_p glNormalPointerEXT_c glNormalPointerEXT_s glNormalPointerEXT_p glColorPointerEXT_c glColorPointerEXT_s glColorPointerEXT_p glIndexPointerEXT_c glIndexPointerEXT_s glIndexPointerEXT_p glTexCoordPointerEXT_c glTexCoordPointerEXT_s glTexCoordPointerEXT_p glEdgeFlagPointerEXT_c glEdgeFlagPointerEXT_s glEdgeFlagPointerEXT_p glWindowPos2iMESA glWindowPos2dMESA glWindowPos3iMESA glWindowPos3dMESA glWindowPos4iMESA glWindowPos4dMESA glResizeBuffersMESA glIsRenderbufferEXT glBindRenderbufferEXT glDeleteRenderbuffersEXT_c glDeleteRenderbuffersEXT_s glDeleteRenderbuffersEXT_p glGenRenderbuffersEXT_c glGenRenderbuffersEXT_s glGenRenderbuffersEXT_p glRenderbufferStorageEXT glGetRenderbufferParameterivEXT_c glGetRenderbufferParameterivEXT_s glIsFramebufferEXT glBindFramebufferEXT glDeleteFramebuffersEXT_c glDeleteFramebuffersEXT_s glDeleteFramebuffersEXT_p glGenFramebuffersEXT_c glGenFramebuffersEXT_s glGenFramebuffersEXT_p glCheckFramebufferStatusEXT glFramebufferTexture1DEXT glFramebufferTexture2DEXT glFramebufferTexture3DEXT glFramebufferRenderbufferEXT glGetFramebufferAttachmentParameterivEXT_c glGetFramebufferAttachmentParameterivEXT_s glGenerateMipmapEXT glVertexAttrib1dARB glVertexAttrib1dvARB_c glVertexAttrib1dvARB_s glVertexAttrib1dvARB_p glVertexAttrib1fARB glVertexAttrib1fvARB_c glVertexAttrib1fvARB_s glVertexAttrib1fvARB_p glVertexAttrib1sARB glVertexAttrib1svARB_c glVertexAttrib1svARB_s glVertexAttrib1svARB_p glVertexAttrib2dARB glVertexAttrib2dvARB_c glVertexAttrib2dvARB_s glVertexAttrib2dvARB_p glVertexAttrib2fARB glVertexAttrib2fvARB_c glVertexAttrib2fvARB_s glVertexAttrib2fvARB_p glVertexAttrib2sARB glVertexAttrib2svARB_c glVertexAttrib2svARB_s glVertexAttrib2svARB_p glVertexAttrib3dARB glVertexAttrib3dvARB_c glVertexAttrib3dvARB_s glVertexAttrib3dvARB_p glVertexAttrib3fARB glVertexAttrib3fvARB_c glVertexAttrib3fvARB_s glVertexAttrib3fvARB_p glVertexAttrib3sARB glVertexAttrib3svARB_c glVertexAttrib3svARB_s glVertexAttrib3svARB_p glVertexAttrib4NbvARB_c glVertexAttrib4NbvARB_s glVertexAttrib4NbvARB_p glVertexAttrib4NivARB_c glVertexAttrib4NivARB_s glVertexAttrib4NivARB_p glVertexAttrib4NsvARB_c glVertexAttrib4NsvARB_s glVertexAttrib4NsvARB_p glVertexAttrib4NubARB glVertexAttrib4NubvARB_c glVertexAttrib4NubvARB_s glVertexAttrib4NubvARB_p glVertexAttrib4NuivARB_c glVertexAttrib4NuivARB_s glVertexAttrib4NuivARB_p glVertexAttrib4NusvARB_c glVertexAttrib4NusvARB_s glVertexAttrib4NusvARB_p glVertexAttrib4bvARB_c glVertexAttrib4bvARB_s glVertexAttrib4bvARB_p glVertexAttrib4dARB glVertexAttrib4dvARB_c glVertexAttrib4dvARB_s glVertexAttrib4dvARB_p glVertexAttrib4fARB glVertexAttrib4fvARB_c glVertexAttrib4fvARB_s glVertexAttrib4fvARB_p glVertexAttrib4ivARB_s glVertexAttrib4ivARB_c glVertexAttrib4ivARB_p glVertexAttrib4sARB glVertexAttrib4svARB_c glVertexAttrib4svARB_s glVertexAttrib4svARB_p glVertexAttrib4ubvARB_c glVertexAttrib4ubvARB_s glVertexAttrib4ubvARB_p glVertexAttrib4uivARB_c glVertexAttrib4uivARB_s glVertexAttrib4uivARB_p glVertexAttrib4usvARB_c glVertexAttrib4usvARB_s glVertexAttrib4usvARB_p glVertexAttribPointerARB_c glEnableVertexAttribArrayARB glDisableVertexAttribArrayARB glProgramStringARB_c glProgramStringARB_s glProgramStringARB_p glBindProgramARB glDeleteProgramsARB_c glDeleteProgramsARB_s glDeleteProgramsARB_p glGenProgramsARB_c glGenProgramsARB_s glGenProgramsARB_p glProgramEnvParameter4dARB glProgramEnvParameter4dvARB_c glProgramEnvParameter4dvARB_s glProgramEnvParameter4dvARB_p glProgramEnvParameter4fARB glProgramEnvParameter4fvARB_c glProgramEnvParameter4fvARB_s glProgramEnvParameter4fvARB_p glProgramLocalParameter4dARB glProgramLocalParameter4dvARB_c glProgramLocalParameter4dvARB_s glProgramLocalParameter4dvARB_p glProgramLocalParameter4fARB glProgramLocalParameter4fvARB_c glProgramLocalParameter4fvARB_s glProgramLocalParameter4fvARB_p glGetProgramEnvParameterdvARB_c glGetProgramEnvParameterdvARB_s glGetProgramEnvParameterdvARB_p glGetProgramEnvParameterfvARB_c glGetProgramEnvParameterfvARB_s glGetProgramEnvParameterfvARB_p glGetProgramLocalParameterdvARB_c glGetProgramLocalParameterdvARB_s glGetProgramLocalParameterdvARB_p glGetProgramLocalParameterfvARB_c glGetProgramLocalParameterfvARB_s glGetProgramLocalParameterfvARB_p glGetProgramivARB_c glGetProgramivARB_s glGetProgramivARB_p glGetProgramStringARB_c glGetProgramStringARB_s glGetProgramStringARB_p glGetVertexAttribdvARB_c glGetVertexAttribdvARB_s glGetVertexAttribdvARB_p glGetVertexAttribfvARB_c glGetVertexAttribfvARB_s glGetVertexAttribfvARB_p glGetVertexAttribivARB_c glGetVertexAttribivARB_s glGetVertexAttribivARB_p glGetVertexAttribPointervARB_c glIsProgramARB glBindBufferARB glDeleteBuffersARB_c glDeleteBuffersARB_s glDeleteBuffersARB_p glGenBuffersARB_c glGenBuffersARB_s glGenBuffersARB_p glIsBufferARB glBufferDataARB_c glBufferDataARB_s glBufferDataARB_p glBufferSubDataARB_c glBufferSubDataARB_s glBufferSubDataARB_p glGetBufferSubDataARB_c glGetBufferSubDataARB_s glGetBufferSubDataARB_p glMapBufferARB_c glMapBufferARB_p glUnmapBufferARB glGetBufferParameterivARB_c glGetBufferParameterivARB_s glGetBufferParameterivARB_p glGetBufferPointervARB_c glGetBufferPointervARB_s glGetBufferPointervARB_p glActiveTextureARB glClientActiveTextureARB glMultiTexCoord1dARB glMultiTexCoord1dvARB_c glMultiTexCoord1dvARB_c glMultiTexCoord1dvARB_c glMultiTexCoord1fARB glMultiTexCoord1fvARB_c glMultiTexCoord1fvARB_c glMultiTexCoord1fvARB_c glMultiTexCoord1iARB glMultiTexCoord1ivARB_c glMultiTexCoord1ivARB_c glMultiTexCoord1ivARB_c glMultiTexCoord1sARB glMultiTexCoord1svARB_c glMultiTexCoord1svARB_c glMultiTexCoord1svARB_c glMultiTexCoord2dARB glMultiTexCoord2dvARB_c glMultiTexCoord2dvARB_c glMultiTexCoord2dvARB_c glMultiTexCoord2fARB glMultiTexCoord2fvARB_c glMultiTexCoord2fvARB_c glMultiTexCoord2fvARB_c glMultiTexCoord2iARB glMultiTexCoord2ivARB_c glMultiTexCoord2ivARB_c glMultiTexCoord2ivARB_c glMultiTexCoord2sARB glMultiTexCoord2svARB_c glMultiTexCoord2svARB_c glMultiTexCoord2svARB_c glMultiTexCoord3dARB glMultiTexCoord3dvARB_c glMultiTexCoord3dvARB_c glMultiTexCoord3dvARB_c glMultiTexCoord3fARB glMultiTexCoord3fvARB_c glMultiTexCoord3fvARB_c glMultiTexCoord3fvARB_c glMultiTexCoord3iARB glMultiTexCoord3ivARB_c glMultiTexCoord3ivARB_c glMultiTexCoord3ivARB_c glMultiTexCoord3sARB glMultiTexCoord3svARB_c glMultiTexCoord3svARB_c glMultiTexCoord3svARB_c glMultiTexCoord4dARB glMultiTexCoord4dvARB_c glMultiTexCoord4dvARB_c glMultiTexCoord4dvARB_c glMultiTexCoord4fARB glMultiTexCoord4fvARB_c glMultiTexCoord4fvARB_c glMultiTexCoord4fvARB_c glMultiTexCoord4iARB glMultiTexCoord4ivARB_c glMultiTexCoord4ivARB_c glMultiTexCoord4ivARB_c glMultiTexCoord4sARB glMultiTexCoord4svARB_c glMultiTexCoord4svARB_c glMultiTexCoord4svARB_c glDeleteObjectARB glGetGLhandleARB glDetachObjectARB glCreateShaderObjectARB glShaderSourceARB_c glShaderSourceARB_p glCompileShaderARB glCreateProgramObjectARB glAttachObjectARB glLinkProgramARB glUseProgramObjectARB glValidateProgramARB glUniform1fARB glUniform2fARB glUniform3fARB glUniform4fARB glUniform1iARB glUniform2iARB glUniform3iARB glUniform4iARB glUniform1fvARB_c glUniform1fvARB_s glUniform1fvARB_p glUniform2fvARB_c glUniform2fvARB_s glUniform2fvARB_p glUniform3fvARB_c glUniform3fvARB_s glUniform3fvARB_p glUniform4fvARB_c glUniform4fvARB_s glUniform4fvARB_p glUniform1ivARB_c glUniform1ivARB_s glUniform1ivARB_p glUniform2ivARB_c glUniform2ivARB_s glUniform2ivARB_p glUniform3ivARB_c glUniform3ivARB_s glUniform3ivARB_p glUniform4ivARB_c glUniform4ivARB_s glUniform4ivARB_p glUniformMatrix2fvARB_c glUniformMatrix2fvARB_s glUniformMatrix2fvARB_p glUniformMatrix3fvARB_c glUniformMatrix3fvARB_s glUniformMatrix3fvARB_p glUniformMatrix4fvARB_c glUniformMatrix4fvARB_s glUniformMatrix4fvARB_p glGetObjectParameterfvARB_c glGetObjectParameterfvARB_s glGetObjectParameterfvARB_p glGetObjectParameterivARB_c glGetObjectParameterivARB_s glGetObjectParameterivARB_p glGetInfoLogARB_c glGetInfoLogARB_p glGetAttachedObjectsARB_c glGetAttachedObjectsARB_s glGetAttachedObjectsARB_p glGetUniformLocationARB_c glGetUniformLocationARB_p glGetActiveUniformARB_c glGetActiveUniformARB_s glGetActiveUniformARB_p glGetUniformfvARB_c glGetUniformfvARB_p glGetUniformivARB_c glGetUniformivARB_p glGetShaderSourceARB_c glGetShaderSourceARB_p glBindAttribLocationARB glGetActiveAttribARB_c glGetActiveAttribARB_s glGetActiveAttribARB_p glGetAttribLocationARB_c glGetAttribLocationARB_p glPointParameterfARB glPointParameterfvARB_c glPointParameterfvARB_s glPointParameterfvARB_p glSampleCoverageARB glClampColorARB glpHasGLUT glpCheckExtension glpFullScreen glpRestoreScreen
GLX is only supported to the degree that Stan's original module supported it. Without an entire X binding it is of limited use, and I recommend using glut instead.
XPending glXSwapBuffers glpXNextEvent glpXQueryPointer glpcOpenWindow
AlreadyGrabbed AnyModifier AsyncBoth AsyncKeyboard AsyncPointer Button1 Button1Mask Button1MotionMask Button2 Button2Mask Button2MotionMask Button3 Button3Mask Button3MotionMask Button4 Button4Mask Button4MotionMask Button5 Button5Mask Button5MotionMask ButtonMotionMask ButtonPress ButtonPressMask ButtonRelease ButtonReleaseMask CirculateNotify CirculateRequest ClientMessage ColormapChangeMask ColormapInstalled ColormapNotify ColormapUninstalled ConfigureNotify ConfigureRequest ControlMapIndex ControlMask CreateNotify DestroyNotify DirectColor EnterNotify EnterWindowMask Expose ExposureMask FamilyChaos FamilyDECnet FamilyInternet FocusChangeMask FocusIn FocusOut GrabFrozen GrabInvalidTime GrabModeAsync GrabModeSync GrabNotViewable GrabSuccess GraphicsExpose GravityNotify GrayScale KeyPress KeyPressMask KeyRelease KeyReleaseMask KeymapNotify KeymapStateMask LASTEvent LeaveNotify LeaveWindowMask LockMapIndex LockMask MapNotify MapRequest MappingNotify Mod1MapIndex Mod1Mask Mod2MapIndex Mod2Mask Mod3MapIndex Mod3Mask Mod4MapIndex Mod4Mask Mod5MapIndex Mod5Mask MotionNotify NoEventMask NoExpose NotifyAncestor NotifyDetailNone NotifyGrab NotifyHint NotifyInferior NotifyNonlinear NotifyNonlinearVirtual NotifyNormal NotifyPointer NotifyPointerRoot NotifyUngrab NotifyVirtual NotifyWhileGrabbed OwnerGrabButtonMask PlaceOnBottom PlaceOnTop PointerMotionHintMask PointerMotionMask PropertyChangeMask PropertyDelete PropertyNewValue PropertyNotify PseudoColor ReparentNotify ReplayKeyboard ReplayPointer ResizeRedirectMask ResizeRequest SelectionClear SelectionNotify SelectionRequest ShiftMapIndex ShiftMask StaticColor StaticGray StructureNotifyMask SubstructureNotifyMask SubstructureRedirectMask SyncBoth SyncKeyboard SyncPointer TrueColor UnmapNotify VisibilityChangeMask VisibilityFullyObscured VisibilityNotify VisibilityPartiallyObscured VisibilityUnobscured XPending X_PROTOCOL X_PROTOCOL_REVISION glAccum glAlphaFunc glBegin glBitmap glBlendColorEXT glBlendEquationEXT glBlendFunc glCallList glCallLists glClear glClearAccum glClearColor glClearDepth glClearIndex glClearStencil glClipPlane glColor3b glColor3bv glColor3d glColor3dv glColor3f glColor3fv glColor3i glColor3iv glColor3s glColor3sv glColor3ub glColor3ubv glColor3ui glColor3uiv glColor3us glColor3usv glColor4b glColor4bv glColor4d glColor4dv glColor4f glColor4fv glColor4i glColor4iv glColor4s glColor4sv glColor4ub glColor4ubv glColor4ui glColor4uiv glColor4us glColor4usv glColorMask glColorMaterial glConvolutionFilter1DEXT glConvolutionFilter2DEXT glConvolutionParameterfEXT glConvolutionParameterfvEXT glConvolutionParameteriEXT glConvolutionParameterivEXT glCopyConvolutionFilter1DEXT glCopyConvolutionFilter2DEXT glCopyPixels glCullFace glDeleteLists glDepthFunc glDepthMask glDepthRange glDetailTexFuncSGIS glDisable glDrawBuffer glDrawPixels glEdgeFlag glEdgeFlagv glEnable glEnd glEndList glEvalCoord1d glEvalCoord1dv glEvalCoord1f glEvalCoord1fv glEvalCoord2d glEvalCoord2dv glEvalCoord2f glEvalCoord2fv glEvalMesh1 glEvalMesh2 glEvalPoint1 glEvalPoint2 glFeedbackBuffer glFinish glFlush glFogf glFogfv glFogi glFogiv glFrontFace glFrustum glGenLists glGetBooleanv glGetClipPlane glGetConvolutionFilterEXT glGetConvolutionParameterfvEXT glGetConvolutionParameterivEXT glGetDetailTexFuncSGIS glGetDoublev glGetError glGetFloatv glGetHistogramEXT glGetHistogramParameterfvEXT glGetHistogramParameterivEXT glGetIntegerv glGetLightfv glGetLightiv glGetMapdv glGetMapfv glGetMapiv glGetMaterialfv glGetMaterialiv glGetMinmaxEXT glGetMinmaxParameterfvEXT glGetMinmaxParameterivEXT glGetPixelMapfv glGetPixelMapuiv glGetPixelMapusv glGetPolygonStipple glGetSeparableFilterEXT glGetSharpenTexFuncSGIS glGetTexEnvfv glGetTexEnviv glGetTexGendv glGetTexGenfv glGetTexGeniv glGetTexImage glGetTexLevelParameterfv glGetTexLevelParameteriv glGetTexParameterfv glGetTexParameteriv glHint glHistogramEXT glIndexMask glIndexd glIndexdv glIndexf glIndexfv glIndexi glIndexiv glIndexs glIndexsv glInitNames glIsEnabled glIsList glLightModelf glLightModelfv glLightModeli glLightModeliv glLightf glLightfv glLighti glLightiv glLineStipple glLineWidth glListBase glLoadIdentity glLoadMatrixd glLoadMatrixf glLoadName glLogicOp glMap1d glMap1f glMap2d glMap2f glMapGrid1d glMapGrid1f glMapGrid2d glMapGrid2f glMaterialf glMaterialfv glMateriali glMaterialiv glMatrixMode glMinmaxEXT glMultMatrixd glMultMatrixf glNewList glNormal3b glNormal3bv glNormal3d glNormal3dv glNormal3f glNormal3fv glNormal3i glNormal3iv glNormal3s glNormal3sv glOrtho glPassThrough glPixelMapfv glPixelMapuiv glPixelMapusv glPixelStoref glPixelStorei glPixelTransferf glPixelTransferi glPixelZoom glPointSize glPolygonMode glPolygonOffsetEXT glPolygonStipple glPopAttrib glPopMatrix glPopName glPushAttrib glPushMatrix glPushName glRasterPos2d glRasterPos2dv glRasterPos2f glRasterPos2fv glRasterPos2i glRasterPos2iv glRasterPos2s glRasterPos2sv glRasterPos3d glRasterPos3dv glRasterPos3f glRasterPos3fv glRasterPos3i glRasterPos3iv glRasterPos3s glRasterPos3sv glRasterPos4d glRasterPos4dv glRasterPos4f glRasterPos4fv glRasterPos4i glRasterPos4iv glRasterPos4s glRasterPos4sv glReadBuffer glReadPixels glRectd glRectdv glRectf glRectfv glRecti glRectiv glRects glRectsv glRenderMode glResetHistogramEXT glResetMinmaxEXT glRotated glRotatef glSampleMaskSGIS glSamplePatternSGIS glScaled glScalef glScissor glSelectBuffer glSeparableFilter2DEXT glShadeModel glSharpenTexFuncSGIS glStencilFunc glStencilMask glStencilOp glTagSampleBufferSGIX glTexCoord1d glTexCoord1dv glTexCoord1f glTexCoord1fv glTexCoord1i glTexCoord1iv glTexCoord1s glTexCoord1sv glTexCoord2d glTexCoord2dv glTexCoord2f glTexCoord2fv glTexCoord2i glTexCoord2iv glTexCoord2s glTexCoord2sv glTexCoord3d glTexCoord3dv glTexCoord3f glTexCoord3fv glTexCoord3i glTexCoord3iv glTexCoord3s glTexCoord3sv glTexCoord4d glTexCoord4dv glTexCoord4f glTexCoord4fv glTexCoord4i glTexCoord4iv glTexCoord4s glTexCoord4sv glTexEnvf glTexEnvfv glTexEnvi glTexEnviv glTexGend glTexGendv glTexGenf glTexGenfv glTexGeni glTexGeniv glTexImage1D glTexImage2D glTexImage3DEXT glTexParameterf glTexParameterfv glTexParameteri glTexParameteriv glTexSubImage1DEXT glTexSubImage2DEXT glTexSubImage3DEXT glTranslated glTranslatef glVertex2d glVertex2dv glVertex2f glVertex2fv glVertex2i glVertex2iv glVertex2s glVertex2sv glVertex3d glVertex3dv glVertex3f glVertex3fv glVertex3i glVertex3iv glVertex3s glVertex3sv glVertex4d glVertex4dv glVertex4f glVertex4fv glVertex4i glVertex4iv glVertex4s glVertex4sv glViewport glXSwapBuffers gluLookAt gluOrtho2D gluPerspective
glpClipPlane glpDisplay glpFlush glpGetClipPlane glpFullScreen glpLoadMatrixd glpLoadMatrixf glpMainLoop glpMoveResizeWindow glpMoveWindow glpMultMatrixd glpMultMatrixf glpOpenWindow glpReadTex glpResizeWindow glpRestoreScreen glpSolidSphere glpXNextEvent glpXQueryPointer
glpOpenWindow() provides a shortcut to glpcOpenWindow(). Both these functions have a special (mis)feature to handle cases when one does not need double buffering: if no GLX_DOUBLEBUFFER is specified, and creation of a "visual" fails, the creation is retried with GLX_DOUBLEBUFFER specified (to make it easier to support implementation which do not have SINGLEBUFFER visuals - which is typical on Suns).
Since "finishing drawing" with and without GLX_DOUBLEBUFFER should be done in different ways, a convenience function glpFlush() is provided; it operates the same as glFlush() if no enable-GLX_DOUBLEBUFFER hack was need, otherwise it acts as glFlush() followed by glXSwapBuffers(). This function should be used only in the case no GLX_DOUBLEBUFFER attribute was given to glpOpenWindow().
Additionally, in absense of GLUT, glpSolidSphere() is aliased to glutSolidSphere(), to make writing simple portable backward-compatible scripts easier.
The OpenGL 0.4 library, written by Stan Melax, contains more support for some SGI specific functions then 0.5, so you may wish to stay with 0.4 on an SGI system. For other machines, 0.5 should greatly improve compatibility (compiling where 0.4 wouldn't have).
Code-level compatibility with OpenGL 0.4 is available if you refer to OpenGL simply via use OpenGL;. If you request specific packages (such as use OpenGL qw(glfunctions glconstants glutfunctions);), you'll get 0.5 specific support.
use OpenGL;
use OpenGL qw(glfunctions glconstants glutfunctions);
The following tags can be used to selectively import symbols into the main namespace.
Exports all symbols (constants and functions).
Exports all functions.
Exports all constants.
Exports all gl* functions.
Exports all symbols needed for the gl* functions.
Exports all glu* functions.
Exports all symbols needed for the glu* functions.
Exports all glut* functions.
Exports all symbols needed for the glut* functions.
Exports all glx* functions.
Exports all symbols needed for the glx* functions.
Exports all old functions and constants.
Exports all old functions.
Exports all symbols needed for the old functions.
Primary CPAN OpenGL Owner/Maintainer: Bob "grafman" Free - http://graphcomp.com/opengl
Original Author: Stan Melax
Primary author of 0.50: Kenneth Albanowski; derived from Stan's OpenGL 0.4, with pinches of Cass Everitt's OpenGL work.
Copyright (c) 1998,1999 Kenneth Albanowski. All rights reserved.
Copyright (c) 2000 Ilya Zakharevich. All rights reserved.
Windows port: Jean-Louis Morel - http://www.bribes.org/perl/wopengl.html
Primary author of 0.55+: Bob Free; added support for 52 OpenGL extensions, including FBO, VBO and Vertex/Fragment Programs.
Copyright (c) 2007 Bob Free. All rights reserved.
MacOSX port: Sherm Pendley
FreeBSD support: Nomura-san
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
POGL Developer's Site: http://graphcomp.com/opengl
CPAN: cpan.org
SVN: svn checkout svn://graphcomp.org/cpan/OpenGL OpenGL
TARBALL: http://graphcomp.com/opengl/OpenGL-0.56.tar.gz
ZIP: http://graphcomp.com/opengl/OpenGL-0.56.zip
PPM 5.6.x: ppm install http://graphcomp.com/opengl/ppm56/OpenGL.ppd
PPM 5.8.x: ppm install http://graphcomp.com/opengl/ppm58/OpenGL.ppd
To install OpenGL, copy and paste the appropriate command in to your terminal.
cpanm
cpanm OpenGL
CPAN shell
perl -MCPAN -e shell install OpenGL
For more information on module installation, please visit the detailed CPAN module installation guide.