This document outlines the direction I (mcfletch) would like to take with the project. This is, however, an open-source project, and people may have different priorities and/or other projects they would like to work on. Talk it out on the mailing list :o) . Coverage: Generally the goal here is to increase the coverage of PyOpenGL to support all of the 1.1 and possibly 1.2 OpenGL features in a natural and Pythonic way. The following is our current list of "known missing" elements. The comments are from mcfletch. Hopefully we can have most (all?) of OpenGL 1.2 supported in PyOpenGL 1.6. Array Stuff: glArrayElement Done in arraystuff.c, working. glDisableClientState Done in arraystuff.c, working. glDrawElements Done in arraystuff.c, working. glEdgeFlagPointer Not done, not sure how to handle the booleans. glEnableClientState Done in arraystuff.c, working. glIndexPointer Done in arraystuff.c, not tested. glInterleavedArrays Done in arraystuff.c, not functional, need help here. glPopClientAttrib Done in arraystuff.c, not tested. glPushClientAttrib Done in arraystuff.c, not tested. State Queries: glGetLightfv Done in arraystuff.c, working. glGetLightiv No plan to implement, seems to be entirely useless? glGetMapdv No clue how to do this w/out swig. glGetMapfv No clue how to do this w/out swig. glGetMapiv No clue how to do this w/out swig. glGetMaterialfv Done in arraystuff.c, working, but after running, calls to glEnable( GL_DEPTH_TEST ) start giving GL_INVALID_ENUM errors. No clue why. glGetMaterialiv No plan to implement, seems to be entirely useless? glGetPointerv No plan to implement, I cannot figure out how you would use it in Python glGetPolygonStipple Implemented in arraystuff, works. Not a really a useful return value. Texture/Bitmap: glGetPixelMapfv Done in arraystuff, no tests (do not have PixelMap implemented) glGetPixelMapuiv glGetPixelMapusv glAreTexturesResident glCopyTexImage1D glCopyTexImage2D glCopyTexSubImage1D glCopyTexSubImage2D glDeleteTextures glGetTexEnvfv glGetTexEnviv glGetTexGendv glGetTexGenfv glGetTexGeniv glGetTexImage glGetTexLevelParameterfv glGetTexLevelParameteriv glGetTexParameterfv glGetTexParameteriv glIsTexture glPixelMapfv glPixelMapuiv glPixelMapusv glPrioritizeTextures glTexImage1D glTexSubImage1D glTexSubImage2D General: glEdgeFlagv Just needs an alias for glEdgeFlag glFeedbackBuffer More involved than I can hope to get working right. You would want something similar to the selection buffer stuff save that the feedback buffer is used for a lot more than just selection. glIndexub Not defined by the spec, Win32 only? glIndexubv Not defined by the spec, Win32 only? glLoadMatrixd Requires only aliasing from glLoadMatrix. glLoadMatrixf Requires only aliasing from glLoadMatrix. glPolygonOffset GLU: gluErrorUnicodeStringEXT gluGetString gluScaleImage gluBuild1DMipmaps gluBuild2DMipmaps gluDeleteQuadric gluDisk gluQuadricCallback gluNewNurbsRenderer gluDeleteNurbsRenderer gluBeginSurface gluBeginCurve gluEndCurve gluEndSurface gluBeginTrim gluEndTrim gluPwlCurve gluNurbsCurve gluNurbsSurface gluLoadSamplingMatrices gluNurbsProperty gluGetNurbsProperty gluNurbsCallback WGL... wglCopyContext wglCreateLayerContext wglGetProcAddress wglShareLists wglUseFontBitmaps wglUseFontOutlines wglDescribeLayerPlane wglSetLayerPaletteEntries wglGetLayerPaletteEntries wglRealizeLayerPalette wglSwapLayerBuffers wglSwapMultipleBuffers Documentation In-module, possibly as a compile time option. (This is going to make the DLL huge if you use it, so I can not see making it the default) Reference material, preferably automatically generated. Tutorials: More and more extensive (possibly convert code associated with online tutorials into Python so the tutorials can be used with PyOpenGL). Demos: Potentially split out the demos distribution, get more demos Fix the current set (OpenGL Errors), provide versions for each windowing library where possible. Tests (as distinct from demos): * Note: most of these are actually being done in the OpenGLContext project. Particularly important in areas which are currently broken/missing Test less frequently used features: Different pixel formats (e.g. indexed colour) Test limits on stacks, alter code to handle consistently Preferably provide sample output, preferably with automated success tests. Likely make this its own subproject, to allow for more extensive tests, including some subset in the main distribution for "is PyOpenGL working" tests. Utilities: Rework of the OpenGLUtils library, split out the various functions into task-focussed modules (e.g. image save/load, mouse interactions) Possibly add such things as rotation matrix creation/conversion from/to various formats, dot product, cross product, etc. Text: WGL, AGL etc. functions for displaying type in 2D/3D would be helpful. Utility for "printing" text to the screen with simple writes would be useful. SWIG: Try building some swig-ified wrappers, will require work by a SWIG/C-guru to figure out the typemaps, after that should simplify the entire library enourmously Threading: Figure out what needs to be done to support useful threading models in PyOpenGL. JPyOpenGL: ???