NAME
PDL::Graphics::OpenGL::Perl::OpenGL - v0.01_03 Perl OpenGL (POGL) module for PDL to display 3D data using OpenGL, FreeGLUT/GLUT, and GLX
SYNOPSIS
use PDL::Graphics::OpenGL::Perl::OpenGL; # exports most of the old functionality of OpenGL 0.4
use PDL::Graphics::OpenGL::Perl::OpenGL qw(:old); # Same thing
use PDL::Graphics::OpenGL::Perl::OpenGL qw(:glfunctions :glconstants); # exports functions and
# constants for using OpenGL, without exporting GLU, GLUT,
# or GLX stuff.
use PDL::Graphics::OpenGL::Perl::OpenGL qw(:all); # exports all new functionality, without the OpenGL
# 0.4 compatibility functions
See also: POGL Objects
* PDL::Graphics::OpenGL::Perl::OpenGL::Array - optimized data arrays via C pointers
* PDL::Graphics::OpenGL::Perl::OpenGL::Image - direct C pointer acces to ImageMagick image cache
* PDL::Graphics::OpenGL::Perl::OpenGL::Shader - abstracted shader interface: ARB, GLSL and Cg
DOCUMENTATION
Documentation, tips, sample source, benchmarks and binary distributions available at http://graphcomp.com/opengl
PREREQUISITES
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 PDL::Graphics::OpenGL::Perl::OpenGL::Image, use v1.03 or newer.
DESCRIPTION
Naming convention:
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 PDL::Graphics::OpenGL::Perl::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.
GLUT functions
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
GLU functions
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
OpenGL functions
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 functions
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
Old functions
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
"Perl" GL access shortcuts
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.
Compatibility with OpenGL 0.4:
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 PDL::Graphics::OpenGL::Perl::OpenGL;
. If you request specific packages (such as use PDL::Graphics::OpenGL::Perl::OpenGL qw(glfunctions glconstants glutfunctions);
), you'll get 0.5 specific support.
EXPORTS
The following tags can be used to selectively import symbols into the main namespace.
- :all
-
Exports all symbols (constants and functions).
- :functions
-
Exports all functions.
- :constants
-
Exports all constants.
- :glfunctions
-
Exports all gl* functions.
- :glconstants
-
Exports all symbols needed for the gl* functions.
- :glufunctions
-
Exports all glu* functions.
- :gluconstants
-
Exports all symbols needed for the glu* functions.
- :glutfunctions
-
Exports all glut* functions.
- :glutconstants
-
Exports all symbols needed for the glut* functions.
- :glxfunctions
-
Exports all glx* functions.
- :glxconstants
-
Exports all symbols needed for the glx* functions.
- :old
-
Exports all old functions and constants.
- :oldfunctions
-
Exports all old functions.
- :oldconstants
-
Exports all symbols needed for the old functions.
AUTHORS
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.
DISTRIBUTIONS
POGL Developer's Site: http://graphcomp.com/opengl
SOURCE
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
WINDOWS BINARIES
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