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:
	???
	
