NAME
OpenGL - Graphics display using OpenGL
SYNOPSIS
use OpenGL qw(:all); # exports all new functionality, without# the OpenGL-0.4 compatibility functionsuse OpenGL qw(:glfunctions :glconstants); # exports functions and# constants for using OpenGL, without exporting# GLU, GLUT, or GLX stuff.use OpenGL qw(:old); # Exports much old functionality of OpenGL 0.4use OpenGL; # DEPRECATED! Same as above. DEPRECATED!See also: POGL Objects* OpenGL::Array - optimized data arrays via C pointers* OpenGL::Image - direct C pointer access to ImageMagick image cache* OpenGL::Shader - abstracted shader interface: ARB, GLSL and Cg
PREREQUISITES
This module assumes that you have OpenGL, GLU, and some flavor of GLUT properly installed on your system. These will be names like libGL.so, libGLU.so and libglut.so for unixen, opengl32.dll and glu32.dll for MS Windows.
If used with OpenGL::Image, use v1.03 or higher.
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 Perl 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 or a reference to a Perl string containing packed data. The underlying OpenGL function will be passed a pointer to that data.
GLUT functions
done_glutInitglutAddMenuEntryglutAddSubMenuglutAttachMenuglutBitmapCharacterglutBitmapHeightglutBitmapLengthglutBitmapStringglutBitmapWidthglutButtonBoxFuncglutChangeToMenuEntryglutChangeToSubMenuglutCloseFuncglutCopyColormapglutCreateMenuglutCreateSubWindowglutCreateWindowglutDestroyMenuglutDestroyWindowglutDetachMenuglutDeviceGetglutDialsFuncglutDisplayFuncglutEnterGameModeglutEntryFuncglutEstablishOverlayglutExtensionSupportedglutForceJoystickFuncglutFullScreenglutGameModeGetglutGameModeStringglutGetglutGetColorglutGetMenuglutGetModifiersglutGetWindowglutHideOverlayglutHideWindowglutIconifyWindowglutIdleFuncglutIgnoreKeyRepeatglutInitglutInitDisplayModeglutInitDisplayStringglutInitWindowPositionglutInitWindowSizeglutKeyboardFuncglutKeyboardUpFuncglutLayerGetglutLeaveGameModeglutLeaveMainLoopglutMainLoopglutMainLoopEventglutMenuDestroyFuncglutMenuStateFuncglutMenuStatusFuncglutMotionFuncglutMouseFuncglutMouseWheelFuncglutOverlayDisplayFuncglutPassiveMotionFuncglutPopWindowglutPositionWindowglutPostOverlayRedisplayglutPostRedisplayglutPostWindowOverlayRedisplayglutPostWindowRedisplayglutPushWindowglutRemoveMenuItemglutRemoveOverlayglutReportErrorsglutReshapeFuncglutReshapeWindowglutSetColorglutSetCursorglutSetIconTitleglutSetKeyRepeatglutSetMenuglutSetOptionglutSetWindowglutSetWindowTitleglutShowOverlayglutShowWindowglutSolidConeglutSolidCubeglutSolidCylinderglutSolidDodecahedronglutSolidIcosahedronglutSolidOctahedronglutSolidRhombicDodecahedronglutSolidSphereglutSolidTeapotglutSolidTetrahedronglutSolidTorusglutSpaceballButtonFuncglutSpaceballMotionFuncglutSpaceballRotateFuncglutSpecialFuncglutSpecialUpFuncglutStrokeCharacterglutStrokeHeightglutStrokeLengthglutStrokeStringglutStrokeWidthglutSwapBuffersglutTabletButtonFuncglutTabletMotionFuncglutTimerFuncglutUseLayerglutVisibilityFuncglutWarpPointerglutWindowStatusFuncglutWireConeglutWireCubeglutWireCylinderglutWireDodecahedronglutWireIcosahedronglutWireOctahedronglutWireRhombicDodecahedronglutWireSphereglutWireTeapotglutWireTetrahedronglutWireTorus
GLU functions
gluBeginCurvegluBeginPolygongluBeginSurfacegluBeginTrimgluBuild1DMipmaps_cgluBuild1DMipmaps_sgluBuild2DMipmaps_cgluBuild2DMipmaps_sgluCylindergluDeleteNurbsRenderergluDeleteQuadricgluDeleteTessgluDiskgluEndCurvegluEndPolygongluEndSurfacegluEndTrimgluErrorStringgluGetNurbsProperty_pgluGetStringgluGetTessProperty_pgluLoadSamplingMatrices_pgluLookAtgluNewNurbsRenderergluNewQuadricgluNewTessgluNextContourgluNurbsCurve_cgluNurbsSurface_cgluOrtho2DgluPartialDiskgluPerspectivegluPickMatrix_pgluProject_pgluPwlCurve_cgluQuadricDrawStylegluQuadricNormalsgluQuadricOrientationgluQuadricTexturegluScaleImage_sgluSpheregluTessBeginCountourgluTessBeginPolygongluTessCallbackgluTessEndContourgluTessEndPolygongluTessNormalgluTessPropertygluTessVertexgluUnProject_p
OpenGL functions
glAccumglActiveTextureARBglAlphaFuncglAreTexturesResidentEXT_pglAreTexturesResident_cglAreTexturesResident_pglAreTexturesResident_sglArrayElementglArrayElementEXTglAttachObjectARBglBeginglBindAttribLocationARBglBindBufferARBglBindFramebufferEXTglBindProgramARBglBindRenderbufferEXTglBindTextureglBindTextureEXTglBitmap_cglBitmap_pglBitmap_sglBlendColorEXTglBlendEquationEXTglBlendFuncglBufferDataARB_cglBufferDataARB_pglBufferDataARB_sglBufferSubDataARB_cglBufferSubDataARB_pglBufferSubDataARB_sglCallListglCallLists_cglCallLists_pglCallLists_sglCheckFramebufferStatusEXTglClampColorARBglClearglClearAccumglClearColorglClearDepthglClearIndexglClearStencilglClientActiveTextureARBglClipPlane_cglClipPlane_pglClipPlane_sglColor3bglColor3bv_cglColor3bv_pglColor3bv_sglColor3dglColor3dv_cglColor3dv_pglColor3dv_sglColor3fglColor3fv_cglColor3fv_pglColor3fv_sglColor3iglColor3iv_cglColor3iv_pglColor3iv_sglColor3sglColor3sv_cglColor3sv_pglColor3sv_sglColor3ubglColor3ubv_cglColor3ubv_pglColor3ubv_sglColor3uiglColor3uiv_cglColor3uiv_pglColor3uiv_sglColor3usglColor3usv_cglColor3usv_pglColor3usv_sglColor4bglColor4bv_cglColor4bv_pglColor4bv_sglColor4dglColor4dv_cglColor4dv_pglColor4dv_sglColor4fglColor4fv_cglColor4fv_pglColor4fv_sglColor4iglColor4iv_cglColor4iv_pglColor4iv_sglColor4sglColor4sv_cglColor4sv_pglColor4sv_sglColor4ubglColor4ubv_cglColor4ubv_pglColor4ubv_sglColor4uiglColor4uiv_cglColor4uiv_pglColor4uiv_sglColor4usglColor4usv_cglColor4usv_pglColor4usv_sglColorMaskglColorMaterialglColorPointerEXT_cglColorPointerEXT_pglColorPointerEXT_sglColorPointer_cglColorPointer_pglColorPointer_sglCompileShaderARBglCopyPixelsglCopyTexImage1DglCopyTexImage1DEXTglCopyTexImage2DglCopyTexImage2DEXTglCopyTexSubImage1DglCopyTexSubImage1DEXTglCopyTexSubImage2DglCopyTexSubImage2DEXTglCopyTexSubImage3DglCopyTexSubImage3DEXTglCreateProgramObjectARBglCreateShaderObjectARBglCullFaceglDeleteBuffersARB_cglDeleteBuffersARB_pglDeleteBuffersARB_sglDeleteFramebuffersEXT_cglDeleteFramebuffersEXT_pglDeleteFramebuffersEXT_sglDeleteListsglDeleteObjectARBglDeleteProgramsARB_cglDeleteProgramsARB_pglDeleteProgramsARB_sglDeleteRenderbuffersEXT_cglDeleteRenderbuffersEXT_pglDeleteRenderbuffersEXT_sglDeleteTexturesEXT_pglDeleteTextures_cglDeleteTextures_pglDeleteTextures_sglDepthFuncglDepthMaskglDepthRangeglDetachObjectARBglDisableglDisableClientStateglDisableVertexAttribArrayARBglDrawArraysglDrawArraysEXTglDrawBufferglDrawBuffersARB_cglDrawBuffersARB_pglDrawBuffersARB_sglDrawBuffers_cglDrawBuffers_pglDrawBuffers_sglDrawElements_cglDrawElements_pglDrawElements_sglDrawPixels_cglDrawPixels_pglDrawPixels_sglDrawRangeElements_cglDrawRangeElements_pglDrawRangeElements_sglEdgeFlagglEdgeFlagPointerEXT_cglEdgeFlagPointerEXT_pglEdgeFlagPointerEXT_sglEdgeFlagPointer_cglEdgeFlagPointer_pglEdgeFlagPointer_sglEnableglEnableClientStateglEnableVertexAttribArrayARBglEndglEndListglEvalCoord1dglEvalCoord1fglEvalCoord2dglEvalCoord2fglEvalMesh1glEvalMesh2glEvalPoint1glEvalPoint2glFeedbackBuffer_cglFeedbackBuffer_p -- not yet implementedglFeedbackBuffer_s -- not yet implementedglFinishglFlushglFogfglFogfv_cglFogfv_pglFogfv_sglFogiglFogiv_cglFogiv_pglFogiv_sglFramebufferRenderbufferEXTglFramebufferTexture1DEXTglFramebufferTexture2DEXTglFramebufferTexture3DEXTglFrontFaceglFrustumglGenBuffersARB_cglGenBuffersARB_pglGenBuffersARB_sglGenFramebuffersEXT_cglGenFramebuffersEXT_pglGenFramebuffersEXT_sglGenListsglGenProgramsARB_cglGenProgramsARB_pglGenProgramsARB_sglGenRenderbuffersEXT_cglGenRenderbuffersEXT_pglGenRenderbuffersEXT_sglGenTexturesEXT_pglGenTextures_cglGenTextures_pglGenTextures_sglGenerateMipmapEXTglGetActiveAttribARB_cglGetActiveAttribARB_pglGetActiveAttribARB_sglGetActiveUniformARB_cglGetActiveUniformARB_pglGetActiveUniformARB_sglGetAttachedObjectsARB_cglGetAttachedObjectsARB_pglGetAttachedObjectsARB_sglGetAttribLocationARB_cglGetAttribLocationARB_pglGetBooleanv_cglGetBooleanv_pglGetBooleanv_sglGetBufferParameterivARB_cglGetBufferParameterivARB_pglGetBufferParameterivARB_sglGetBufferPointervARB_cglGetBufferPointervARB_pglGetBufferPointervARB_sglGetBufferSubDataARB_cglGetBufferSubDataARB_pglGetBufferSubDataARB_sglGetClipPlane_cglGetClipPlane_pglGetClipPlane_sglGetDoublev_cglGetDoublev_pglGetDoublev_sglGetErrorglGetFloatv_cglGetFloatv_pglGetFloatv_sglGetFramebufferAttachmentParameterivEXT_cglGetFramebufferAttachmentParameterivEXT_sglGetGLhandleARBglGetInfoLogARB_cglGetInfoLogARB_pglGetIntegerv_cglGetIntegerv_pglGetIntegerv_sglGetLightfv_cglGetLightfv_pglGetLightfv_sglGetLightiv_cglGetLightiv_pglGetLightiv_sglGetMapdv_cglGetMapdv_pglGetMapdv_sglGetMapfv_cglGetMapfv_pglGetMapfv_sglGetMapiv_cglGetMapiv_pglGetMapiv_sglGetMaterialfv_cglGetMaterialfv_pglGetMaterialfv_sglGetMaterialiv_cglGetMaterialiv_pglGetMaterialiv_sglGetObjectParameterfvARB_cglGetObjectParameterfvARB_pglGetObjectParameterfvARB_sglGetObjectParameterivARB_cglGetObjectParameterivARB_pglGetObjectParameterivARB_sglGetPixelMapfv_cglGetPixelMapfv_pglGetPixelMapfv_sglGetPixelMapuiv_cglGetPixelMapuiv_pglGetPixelMapuiv_sglGetPixelMapusv_cglGetPixelMapusv_pglGetPixelMapusv_sglGetPointerv_cglGetPointerv_pglGetPointerv_sglGetPolygonStipple_cglGetPolygonStipple_pglGetPolygonStipple_sglGetProgramEnvParameterdvARB_cglGetProgramEnvParameterdvARB_pglGetProgramEnvParameterdvARB_sglGetProgramEnvParameterfvARB_cglGetProgramEnvParameterfvARB_pglGetProgramEnvParameterfvARB_sglGetProgramLocalParameterdvARB_cglGetProgramLocalParameterdvARB_pglGetProgramLocalParameterdvARB_sglGetProgramLocalParameterfvARB_cglGetProgramLocalParameterfvARB_pglGetProgramLocalParameterfvARB_sglGetProgramStringARB_cglGetProgramStringARB_pglGetProgramStringARB_sglGetProgramivARB_cglGetProgramivARB_pglGetProgramivARB_sglGetRenderbufferParameterivEXT_cglGetRenderbufferParameterivEXT_sglGetShaderSourceARB_cglGetShaderSourceARB_pglGetStringglGetTexEnvfv_cglGetTexEnvfv_pglGetTexEnvfv_sglGetTexEnviv_cglGetTexEnviv_pglGetTexEnviv_sglGetTexGendv_cglGetTexGendv_pglGetTexGendv_sglGetTexGenfv_cglGetTexGenfv_pglGetTexGenfv_sglGetTexGeniv_cglGetTexGeniv_pglGetTexGeniv_sglGetTexImage_cglGetTexImage_pglGetTexImage_sglGetTexLevelParameterfv_cglGetTexLevelParameterfv_pglGetTexLevelParameterfv_sglGetTexLevelParameteriv_cglGetTexLevelParameteriv_pglGetTexLevelParameteriv_sglGetTexParameterfv_cglGetTexParameterfv_pglGetTexParameterfv_sglGetTexParameteriv_cglGetTexParameteriv_pglGetTexParameteriv_sglGetUniformLocationARB_cglGetUniformLocationARB_pglGetUniformfvARB_cglGetUniformfvARB_pglGetUniformivARB_cglGetUniformivARB_pglGetVertexAttribPointervARB_cglGetVertexAttribdvARB_cglGetVertexAttribdvARB_pglGetVertexAttribdvARB_sglGetVertexAttribfvARB_cglGetVertexAttribfvARB_pglGetVertexAttribfvARB_sglGetVertexAttribivARB_cglGetVertexAttribivARB_pglGetVertexAttribivARB_sglHintglIndexMaskglIndexPointerEXT_cglIndexPointerEXT_pglIndexPointerEXT_sglIndexPointer_cglIndexdglIndexiglInitNamesglInterleavedArrays_cglIsBufferARBglIsEnabledglIsFramebufferEXTglIsListglIsProgramARBglIsRenderbufferEXTglIsTextureglIsTextureEXTglLightModelfglLightModelfv_cglLightModelfv_pglLightModelfv_sglLightModeliglLightModeliv_cglLightModeliv_pglLightModeliv_sglLightfglLightfv_cglLightfv_pglLightfv_sglLightiglLightiv_cglLightiv_pglLightiv_sglLineStippleglLineWidthglLinkProgramARBglListBaseglLoadIdentityglLoadMatrixd_cglLoadMatrixd_pglLoadMatrixd_sglLoadMatrixf_cglLoadMatrixf_pglLoadMatrixf_sglLoadNameglLogicOpglMap1d_cglMap1d_pglMap1d_sglMap1f_cglMap1f_pglMap1f_sglMap2d_cglMap2d_pglMap2d_sglMap2f_cglMap2f_pglMap2f_sglMapBufferARB_cglMapBufferARB_pglMapGrid1dglMapGrid1fglMapGrid2dglMapGrid2fglMaterialfglMaterialfv_cglMaterialfv_pglMaterialfv_sglMaterialiglMaterialiv_cglMaterialiv_pglMaterialiv_sglMatrixModeglMultMatrixd_pglMultMatrixf_pglMultiTexCoord1dARBglMultiTexCoord1dvARB_cglMultiTexCoord1dvARB_cglMultiTexCoord1dvARB_cglMultiTexCoord1fARBglMultiTexCoord1fvARB_cglMultiTexCoord1fvARB_cglMultiTexCoord1fvARB_cglMultiTexCoord1iARBglMultiTexCoord1ivARB_cglMultiTexCoord1ivARB_cglMultiTexCoord1ivARB_cglMultiTexCoord1sARBglMultiTexCoord1svARB_cglMultiTexCoord1svARB_cglMultiTexCoord1svARB_cglMultiTexCoord2dARBglMultiTexCoord2dvARB_cglMultiTexCoord2dvARB_cglMultiTexCoord2dvARB_cglMultiTexCoord2fARBglMultiTexCoord2fvARB_cglMultiTexCoord2fvARB_cglMultiTexCoord2fvARB_cglMultiTexCoord2iARBglMultiTexCoord2ivARB_cglMultiTexCoord2ivARB_cglMultiTexCoord2ivARB_cglMultiTexCoord2sARBglMultiTexCoord2svARB_cglMultiTexCoord2svARB_cglMultiTexCoord2svARB_cglMultiTexCoord3dARBglMultiTexCoord3dvARB_cglMultiTexCoord3dvARB_cglMultiTexCoord3dvARB_cglMultiTexCoord3fARBglMultiTexCoord3fvARB_cglMultiTexCoord3fvARB_cglMultiTexCoord3fvARB_cglMultiTexCoord3iARBglMultiTexCoord3ivARB_cglMultiTexCoord3ivARB_cglMultiTexCoord3ivARB_cglMultiTexCoord3sARBglMultiTexCoord3svARB_cglMultiTexCoord3svARB_cglMultiTexCoord3svARB_cglMultiTexCoord4dARBglMultiTexCoord4dvARB_cglMultiTexCoord4dvARB_cglMultiTexCoord4dvARB_cglMultiTexCoord4fARBglMultiTexCoord4fvARB_cglMultiTexCoord4fvARB_cglMultiTexCoord4fvARB_cglMultiTexCoord4iARBglMultiTexCoord4ivARB_cglMultiTexCoord4ivARB_cglMultiTexCoord4ivARB_cglMultiTexCoord4sARBglMultiTexCoord4svARB_cglMultiTexCoord4svARB_cglMultiTexCoord4svARB_cglNewListglNormal3bglNormal3bv_cglNormal3bv_pglNormal3bv_sglNormal3dglNormal3dv_cglNormal3dv_pglNormal3dv_sglNormal3fglNormal3fv_cglNormal3fv_pglNormal3fv_sglNormal3iglNormal3iv_cglNormal3iv_pglNormal3iv_sglNormal3sglNormal3sv_cglNormal3sv_pglNormal3sv_sglNormalPointerEXT_cglNormalPointerEXT_pglNormalPointerEXT_sglNormalPointer_cglOrthoglPassThroughglPixelMapfv_cglPixelMapfv_pglPixelMapfv_sglPixelMapuiv_cglPixelMapuiv_pglPixelMapuiv_sglPixelMapusv_cglPixelMapusv_pglPixelMapusv_sglPixelStorefglPixelStoreiglPixelTransferfglPixelTransferiglPixelZoomglPointParameterfARBglPointParameterfvARB_cglPointParameterfvARB_pglPointParameterfvARB_sglPointSizeglPolygonModeglPolygonOffsetglPolygonOffsetEXTglPolygonStipple_cglPolygonStipple_pglPolygonStipple_sglPopAttribglPopClientAttribglPopMatrixglPopNameglPrioritizeTexturesEXT_pglPrioritizeTextures_cglPrioritizeTextures_pglPrioritizeTextures_sglProgramEnvParameter4dARBglProgramEnvParameter4dvARB_cglProgramEnvParameter4dvARB_pglProgramEnvParameter4dvARB_sglProgramEnvParameter4fARBglProgramEnvParameter4fvARB_cglProgramEnvParameter4fvARB_pglProgramEnvParameter4fvARB_sglProgramLocalParameter4dARBglProgramLocalParameter4dvARB_cglProgramLocalParameter4dvARB_pglProgramLocalParameter4dvARB_sglProgramLocalParameter4fARBglProgramLocalParameter4fvARB_cglProgramLocalParameter4fvARB_pglProgramLocalParameter4fvARB_sglProgramStringARB_cglProgramStringARB_pglProgramStringARB_sglPushAttribglPushClientAttribglPushMatrixglPushNameglRasterPos2dglRasterPos2dv_cglRasterPos2dv_pglRasterPos2dv_sglRasterPos2fglRasterPos2fv_cglRasterPos2fv_pglRasterPos2fv_sglRasterPos2iglRasterPos2iv_cglRasterPos2iv_pglRasterPos2iv_sglRasterPos2sglRasterPos2sv_cglRasterPos2sv_pglRasterPos2sv_sglRasterPos3dglRasterPos3dv_cglRasterPos3dv_pglRasterPos3dv_sglRasterPos3fglRasterPos3fv_cglRasterPos3fv_pglRasterPos3fv_sglRasterPos3iglRasterPos3iv_cglRasterPos3iv_pglRasterPos3iv_sglRasterPos3sglRasterPos3sv_cglRasterPos3sv_pglRasterPos3sv_sglRasterPos4dglRasterPos4dv_cglRasterPos4dv_pglRasterPos4dv_sglRasterPos4fglRasterPos4fv_cglRasterPos4fv_pglRasterPos4fv_sglRasterPos4iglRasterPos4iv_cglRasterPos4iv_pglRasterPos4iv_sglRasterPos4sglRasterPos4sv_cglRasterPos4sv_pglRasterPos4sv_sglReadBufferglReadPixels_cglReadPixels_pglReadPixels_sglRectdglRectdv_cglRectdv_sglRectfglRectfv_cglRectfv_sglRectiglRectiv_cglRectiv_sglRectsglRectsv_cglRectsv_sglRenderModeglRenderbufferStorageEXTglResizeBuffersMESAglRotatedglRotatefglSampleCoverageARBglScaledglScalefglScissorglSelectBuffer_cglShadeModelglShaderSourceARB_cglShaderSourceARB_pglStencilFuncglStencilMaskglStencilOpglTexCoord1dglTexCoord1dv_cglTexCoord1dv_pglTexCoord1dv_sglTexCoord1fglTexCoord1fv_cglTexCoord1fv_pglTexCoord1fv_sglTexCoord1iglTexCoord1iv_cglTexCoord1iv_pglTexCoord1iv_sglTexCoord1sglTexCoord1sv_cglTexCoord1sv_pglTexCoord1sv_sglTexCoord2dglTexCoord2dv_cglTexCoord2dv_pglTexCoord2dv_sglTexCoord2fglTexCoord2fv_cglTexCoord2fv_pglTexCoord2fv_sglTexCoord2iglTexCoord2iv_cglTexCoord2iv_pglTexCoord2iv_sglTexCoord2sglTexCoord2sv_cglTexCoord2sv_pglTexCoord2sv_sglTexCoord3dglTexCoord3dv_cglTexCoord3dv_pglTexCoord3dv_sglTexCoord3fglTexCoord3fv_cglTexCoord3fv_pglTexCoord3fv_sglTexCoord3iglTexCoord3iv_cglTexCoord3iv_pglTexCoord3iv_sglTexCoord3sglTexCoord3sv_cglTexCoord3sv_pglTexCoord3sv_sglTexCoord4dglTexCoord4dv_cglTexCoord4dv_pglTexCoord4dv_sglTexCoord4fglTexCoord4fv_cglTexCoord4fv_pglTexCoord4fv_sglTexCoord4iglTexCoord4iv_cglTexCoord4iv_pglTexCoord4iv_sglTexCoord4sglTexCoord4sv_cglTexCoord4sv_pglTexCoord4sv_sglTexCoordPointerEXT_cglTexCoordPointerEXT_pglTexCoordPointerEXT_sglTexCoordPointer_cglTexEnvfglTexEnvfv_pglTexEnvfv_sglTexEnviglTexEnviv_pglTexEnviv_sglTexGendglTexGendv_cglTexGendv_pglTexGendv_sglTexGenfglTexGenfv_cglTexGenfv_pglTexGenfv_sglTexGeniglTexGeniv_cglTexGeniv_pglTexGeniv_sglTexImage1D_cglTexImage1D_pglTexImage1D_sglTexImage2D_cglTexImage2D_pglTexImage2D_sglTexImage3DEXT_cglTexImage3DEXT_pglTexImage3DEXT_sglTexImage3D_cglTexImage3D_pglTexImage3D_sglTexParameterfglTexParameterfv_cglTexParameterfv_pglTexParameterfv_sglTexParameteriglTexParameteriv_cglTexParameteriv_pglTexParameteriv_sglTexSubImage1DEXT_cglTexSubImage1DEXT_pglTexSubImage1DEXT_sglTexSubImage1D_cglTexSubImage1D_pglTexSubImage1D_sglTexSubImage2DEXT_cglTexSubImage2DEXT_pglTexSubImage2DEXT_sglTexSubImage2D_cglTexSubImage2D_pglTexSubImage2D_sglTexSubImage3D_cglTexSubImage3D_pglTexSubImage3D_sglTranslatedglTranslatefglUniform1fARBglUniform1fvARB_cglUniform1fvARB_pglUniform1fvARB_sglUniform1iARBglUniform1ivARB_cglUniform1ivARB_pglUniform1ivARB_sglUniform2fARBglUniform2fvARB_cglUniform2fvARB_pglUniform2fvARB_sglUniform2iARBglUniform2ivARB_cglUniform2ivARB_pglUniform2ivARB_sglUniform3fARBglUniform3fvARB_cglUniform3fvARB_pglUniform3fvARB_sglUniform3iARBglUniform3ivARB_cglUniform3ivARB_pglUniform3ivARB_sglUniform4fARBglUniform4fvARB_cglUniform4fvARB_pglUniform4fvARB_sglUniform4iARBglUniform4ivARB_cglUniform4ivARB_pglUniform4ivARB_sglUniformMatrix2fvARB_cglUniformMatrix2fvARB_pglUniformMatrix2fvARB_sglUniformMatrix3fvARB_cglUniformMatrix3fvARB_pglUniformMatrix3fvARB_sglUniformMatrix4fvARB_cglUniformMatrix4fvARB_pglUniformMatrix4fvARB_sglUnmapBufferARBglUseProgramObjectARBglValidateProgramARBglVertex2dglVertex2dv_cglVertex2dv_pglVertex2dv_sglVertex2fglVertex2fv_cglVertex2fv_pglVertex2fv_sglVertex2iglVertex2iv_cglVertex2iv_pglVertex2iv_sglVertex2sglVertex2sv_cglVertex2sv_pglVertex2sv_sglVertex3dglVertex3dv_cglVertex3dv_pglVertex3dv_sglVertex3fglVertex3fv_cglVertex3fv_pglVertex3fv_sglVertex3iglVertex3iv_cglVertex3iv_pglVertex3iv_sglVertex3sglVertex3sv_cglVertex3sv_pglVertex3sv_sglVertex4dglVertex4dv_cglVertex4dv_pglVertex4dv_sglVertex4fglVertex4fv_cglVertex4fv_pglVertex4fv_sglVertex4iglVertex4iv_cglVertex4iv_pglVertex4iv_sglVertex4sglVertex4sv_cglVertex4sv_pglVertex4sv_sglVertexAttrib1dARBglVertexAttrib1dvARB_cglVertexAttrib1dvARB_pglVertexAttrib1dvARB_sglVertexAttrib1fARBglVertexAttrib1fvARB_cglVertexAttrib1fvARB_pglVertexAttrib1fvARB_sglVertexAttrib1sARBglVertexAttrib1svARB_cglVertexAttrib1svARB_pglVertexAttrib1svARB_sglVertexAttrib2dARBglVertexAttrib2dvARB_cglVertexAttrib2dvARB_pglVertexAttrib2dvARB_sglVertexAttrib2fARBglVertexAttrib2fvARB_cglVertexAttrib2fvARB_pglVertexAttrib2fvARB_sglVertexAttrib2sARBglVertexAttrib2svARB_cglVertexAttrib2svARB_pglVertexAttrib2svARB_sglVertexAttrib3dARBglVertexAttrib3dvARB_cglVertexAttrib3dvARB_pglVertexAttrib3dvARB_sglVertexAttrib3fARBglVertexAttrib3fvARB_cglVertexAttrib3fvARB_pglVertexAttrib3fvARB_sglVertexAttrib3sARBglVertexAttrib3svARB_cglVertexAttrib3svARB_pglVertexAttrib3svARB_sglVertexAttrib4NbvARB_cglVertexAttrib4NbvARB_pglVertexAttrib4NbvARB_sglVertexAttrib4NivARB_cglVertexAttrib4NivARB_pglVertexAttrib4NivARB_sglVertexAttrib4NsvARB_cglVertexAttrib4NsvARB_pglVertexAttrib4NsvARB_sglVertexAttrib4NubARBglVertexAttrib4NubvARB_cglVertexAttrib4NubvARB_pglVertexAttrib4NubvARB_sglVertexAttrib4NuivARB_cglVertexAttrib4NuivARB_pglVertexAttrib4NuivARB_sglVertexAttrib4NusvARB_cglVertexAttrib4NusvARB_pglVertexAttrib4NusvARB_sglVertexAttrib4bvARB_cglVertexAttrib4bvARB_pglVertexAttrib4bvARB_sglVertexAttrib4dARBglVertexAttrib4dvARB_cglVertexAttrib4dvARB_pglVertexAttrib4dvARB_sglVertexAttrib4fARBglVertexAttrib4fvARB_cglVertexAttrib4fvARB_pglVertexAttrib4fvARB_sglVertexAttrib4ivARB_cglVertexAttrib4ivARB_pglVertexAttrib4ivARB_sglVertexAttrib4sARBglVertexAttrib4svARB_cglVertexAttrib4svARB_pglVertexAttrib4svARB_sglVertexAttrib4ubvARB_cglVertexAttrib4ubvARB_pglVertexAttrib4ubvARB_sglVertexAttrib4uivARB_cglVertexAttrib4uivARB_pglVertexAttrib4uivARB_sglVertexAttrib4usvARB_cglVertexAttrib4usvARB_pglVertexAttrib4usvARB_sglVertexAttribPointerARB_cglVertexPointerEXT_cglVertexPointerEXT_pglVertexPointerEXT_sglVertexPointer_cglVertexPointer_pglVertexPointer_sglViewportglWindowPos2dMESAglWindowPos2iMESAglWindowPos3dMESAglWindowPos3iMESAglWindowPos4dMESAglWindowPos4iMESAglpCheckExtensionglpFullScreenglpHasGLUTglpRestoreScreen
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/FreeGLUT instead.
XPending (X11 only)glXSwapBuffers (X11 only)glpXNextEvent (X11 only)glpXQueryPointer (X11 only)glpcOpenWindow (Not exported, must use fully qualified package name)
Old functions
AlreadyGrabbedAnyModifierAsyncBothAsyncKeyboardAsyncPointerButton1Button1MaskButton1MotionMaskButton2Button2MaskButton2MotionMaskButton3Button3MaskButton3MotionMaskButton4Button4MaskButton4MotionMaskButton5Button5MaskButton5MotionMaskButtonMotionMaskButtonPressButtonPressMaskButtonReleaseButtonReleaseMaskCirculateNotifyCirculateRequestClientMessageColormapChangeMaskColormapInstalledColormapNotifyColormapUninstalledConfigureNotifyConfigureRequestControlMapIndexControlMaskCreateNotifyDestroyNotifyDirectColorEnterNotifyEnterWindowMaskExposeExposureMaskFamilyChaosFamilyDECnetFamilyInternetFocusChangeMaskFocusInFocusOutGrabFrozenGrabInvalidTimeGrabModeAsyncGrabModeSyncGrabNotViewableGrabSuccessGraphicsExposeGravityNotifyGrayScaleKeyPressKeyPressMaskKeyReleaseKeyReleaseMaskKeymapNotifyKeymapStateMaskLASTEventLeaveNotifyLeaveWindowMaskLockMapIndexLockMaskMapNotifyMapRequestMappingNotifyMod1MapIndexMod1MaskMod2MapIndexMod2MaskMod3MapIndexMod3MaskMod4MapIndexMod4MaskMod5MapIndexMod5MaskMotionNotifyNoEventMaskNoExposeNotifyAncestorNotifyDetailNoneNotifyGrabNotifyHintNotifyInferiorNotifyNonlinearNotifyNonlinearVirtualNotifyNormalNotifyPointerNotifyPointerRootNotifyUngrabNotifyVirtualNotifyWhileGrabbedOwnerGrabButtonMaskPlaceOnBottomPlaceOnTopPointerMotionHintMaskPointerMotionMaskPropertyChangeMaskPropertyDeletePropertyNewValuePropertyNotifyPseudoColorReparentNotifyReplayKeyboardReplayPointerResizeRedirectMaskResizeRequestSelectionClearSelectionNotifySelectionRequestShiftMapIndexShiftMaskStaticColorStaticGrayStructureNotifyMaskSubstructureNotifyMaskSubstructureRedirectMaskSyncBothSyncKeyboardSyncPointerTrueColorUnmapNotifyVisibilityChangeMaskVisibilityFullyObscuredVisibilityNotifyVisibilityPartiallyObscuredVisibilityUnobscuredXPendingX_PROTOCOLX_PROTOCOL_REVISIONglAccumglAlphaFuncglBeginglBitmapglBlendColorEXTglBlendEquationEXTglBlendFuncglCallListglCallListsglClearglClearAccumglClearColorglClearDepthglClearIndexglClearStencilglClipPlaneglColor3bglColor3bvglColor3dglColor3dvglColor3fglColor3fvglColor3iglColor3ivglColor3sglColor3svglColor3ubglColor3ubvglColor3uiglColor3uivglColor3usglColor3usvglColor4bglColor4bvglColor4dglColor4dvglColor4fglColor4fvglColor4iglColor4ivglColor4sglColor4svglColor4ubglColor4ubvglColor4uiglColor4uivglColor4usglColor4usvglColorMaskglColorMaterialglConvolutionFilter1DEXTglConvolutionFilter2DEXTglConvolutionParameterfEXTglConvolutionParameterfvEXTglConvolutionParameteriEXTglConvolutionParameterivEXTglCopyConvolutionFilter1DEXTglCopyConvolutionFilter2DEXTglCopyPixelsglCullFaceglDeleteListsglDepthFuncglDepthMaskglDepthRangeglDetailTexFuncSGISglDisableglDrawBufferglDrawPixelsglEdgeFlagglEdgeFlagvglEnableglEndglEndListglEvalCoord1dglEvalCoord1dvglEvalCoord1fglEvalCoord1fvglEvalCoord2dglEvalCoord2dvglEvalCoord2fglEvalCoord2fvglEvalMesh1glEvalMesh2glEvalPoint1glEvalPoint2glFeedbackBufferglFinishglFlushglFogfglFogfvglFogiglFogivglFrontFaceglFrustumglGenListsglGetBooleanvglGetClipPlaneglGetConvolutionFilterEXTglGetConvolutionParameterfvEXTglGetConvolutionParameterivEXTglGetDetailTexFuncSGISglGetDoublevglGetErrorglGetFloatvglGetHistogramEXTglGetHistogramParameterfvEXTglGetHistogramParameterivEXTglGetIntegervglGetLightfvglGetLightivglGetMapdvglGetMapfvglGetMapivglGetMaterialfvglGetMaterialivglGetMinmaxEXTglGetMinmaxParameterfvEXTglGetMinmaxParameterivEXTglGetPixelMapfvglGetPixelMapuivglGetPixelMapusvglGetPolygonStippleglGetSeparableFilterEXTglGetSharpenTexFuncSGISglGetTexEnvfvglGetTexEnvivglGetTexGendvglGetTexGenfvglGetTexGenivglGetTexImageglGetTexLevelParameterfvglGetTexLevelParameterivglGetTexParameterfvglGetTexParameterivglHintglHistogramEXTglIndexMaskglIndexdglIndexdvglIndexfglIndexfvglIndexiglIndexivglIndexsglIndexsvglInitNamesglIsEnabledglIsListglLightModelfglLightModelfvglLightModeliglLightModelivglLightfglLightfvglLightiglLightivglLineStippleglLineWidthglListBaseglLoadIdentityglLoadMatrixdglLoadMatrixfglLoadNameglLogicOpglMap1dglMap1fglMap2dglMap2fglMapGrid1dglMapGrid1fglMapGrid2dglMapGrid2fglMaterialfglMaterialfvglMaterialiglMaterialivglMatrixModeglMinmaxEXTglMultMatrixdglMultMatrixfglNewListglNormal3bglNormal3bvglNormal3dglNormal3dvglNormal3fglNormal3fvglNormal3iglNormal3ivglNormal3sglNormal3svglOrthoglPassThroughglPixelMapfvglPixelMapuivglPixelMapusvglPixelStorefglPixelStoreiglPixelTransferfglPixelTransferiglPixelZoomglPointSizeglPolygonModeglPolygonOffsetEXTglPolygonStippleglPopAttribglPopMatrixglPopNameglPushAttribglPushMatrixglPushNameglRasterPos2dglRasterPos2dvglRasterPos2fglRasterPos2fvglRasterPos2iglRasterPos2ivglRasterPos2sglRasterPos2svglRasterPos3dglRasterPos3dvglRasterPos3fglRasterPos3fvglRasterPos3iglRasterPos3ivglRasterPos3sglRasterPos3svglRasterPos4dglRasterPos4dvglRasterPos4fglRasterPos4fvglRasterPos4iglRasterPos4ivglRasterPos4sglRasterPos4svglReadBufferglReadPixelsglRectdglRectdvglRectfglRectfvglRectiglRectivglRectsglRectsvglRenderModeglResetHistogramEXTglResetMinmaxEXTglRotatedglRotatefglSampleMaskSGISglSamplePatternSGISglScaledglScalefglScissorglSelectBufferglSeparableFilter2DEXTglShadeModelglSharpenTexFuncSGISglStencilFuncglStencilMaskglStencilOpglTagSampleBufferSGIXglTexCoord1dglTexCoord1dvglTexCoord1fglTexCoord1fvglTexCoord1iglTexCoord1ivglTexCoord1sglTexCoord1svglTexCoord2dglTexCoord2dvglTexCoord2fglTexCoord2fvglTexCoord2iglTexCoord2ivglTexCoord2sglTexCoord2svglTexCoord3dglTexCoord3dvglTexCoord3fglTexCoord3fvglTexCoord3iglTexCoord3ivglTexCoord3sglTexCoord3svglTexCoord4dglTexCoord4dvglTexCoord4fglTexCoord4fvglTexCoord4iglTexCoord4ivglTexCoord4sglTexCoord4svglTexEnvfglTexEnvfvglTexEnviglTexEnvivglTexGendglTexGendvglTexGenfglTexGenfvglTexGeniglTexGenivglTexImage1DglTexImage2DglTexImage3DEXTglTexParameterfglTexParameterfvglTexParameteriglTexParameterivglTexSubImage1DEXTglTexSubImage2DEXTglTexSubImage3DEXTglTranslatedglTranslatefglVertex2dglVertex2dvglVertex2fglVertex2fvglVertex2iglVertex2ivglVertex2sglVertex2svglVertex3dglVertex3dvglVertex3fglVertex3fvglVertex3iglVertex3ivglVertex3sglVertex3svglVertex4dglVertex4dvglVertex4fglVertex4fvglVertex4iglVertex4ivglVertex4sglVertex4svglViewportglXSwapBuffers (X11 only)gluLookAtgluOrtho2DgluPerspective
"Perl" GL access shortcuts
glpClipPlaneglpDisplay (X11 only)glpFlushglpFullScreenglpGetClipPlaneglpLoadMatrixdglpLoadMatrixfglpMainLoopglpMoveResizeWindow (X11 only)glpMoveWindow (X11 only)glpMultMatrixdglpMultMatrixfglpOpenWindow (X11 only)glpPrintString (from PDL)glpRasterFont (from PDL, X11 only)glpReadTexglpResizeWindow (X11 only)glpRestoreScreenglpSetDebug (from PDL)glpSolidSphereglpXNextEvent (X11 only)glpXQueryPointer (X11 only)
glpOpenWindow() provides the preferred interface 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 absence of GLUT, glpSolidSphere() is aliased to glutSolidSphere(), to make writing simple portable backward-compatible scripts easier.
Historical Compatibility
The original OpenGL-0.4 library, written by Stan Melax, was releaseed to CPAN on 16-Feb-1996.
The OpenGL-0.5 library, by Kenneth Albanowski, was released to CPAN on 24-Apr-1999.
Ilya Zakharevich released OpenGL-0.53 on 05-Nov-2000 and and OpenGL-0.54 on 26-May-2002.
Bob Free has been responsible for the OpenGL module development starting with OpenGL-0.55 on 26-Apr-2007.
Chris Marshall has been responsible for the OpenGL module development starting with OpenGL-0.58 on 06-Sep-2009.
Compatibility with these earlier libraries is in a state of flux with with on-going work to refactor the Perl OpenGL module to improve support for other GUI toolkits with Perl bindings and to update the version of OpenGL API supported.
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. No longer exports
glpcOpenWindow().
- :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 OpenGL Maintainer Chris Marshall (PAUSE id CHM) Co-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.
Contributing developer of 0.57+: Chris Marshall: cygwin port, PDL integration, release support. Copyright (c) 2009 Christopher Marshall. 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 Project site: <http://sourceforge.net/projects/pogl/>
OTHER DOCUMENTATION
Documentation, tips, sample source, benchmarks and available at <http://graphcomp.com/opengl>.
SOURCE
CPAN: http://search.cpan.org/~chm/GIT: git clone git://git.code.sf.net/p/pogl/code pogl-code (Read only)TARBALL: http://sourceforge.net/p/pogl/code/ci/master/tarball
WINDOWS BINARIES
For 32-bit perls 5.8.x and later:ppm install http://www.sisyphusion.tk/ppm/OpenGL.ppdFor 64-bit perls 5.8.x and later:ppm install http://www.sisyphusion.tk/ppm/OpenGL.ppd