Last saved: Tue 20 Sep 2011 09:52:40 AM
Fix segfault in glutMainLoop() for test.pl on vista
* Build debug perl for win32
* Get gdb for MinGW
* Same with MSVC 6.0 and latest
* Does same code with Prima::OpenGL not segfault?
Fix current POGL configuration and build process
* Clean up use of configuration information
* Make the compile and config results unambiguous
* Compile flags have two types
* System info flags: HAVE_GLX, HAVE_GLUT, ...
* Build flags: BUILD_GLUT, BUILD_FREEGLUT, ...
* Exactly what libraries are being used
* Library versions and locations/paths
* What are the compile and link configuration
* split out compile/link by libraries
* OpenGL
* GLU
* GLUT
* GLX
* What bindings are actually enabled?
* Use the same information to build POGL as glversion
* Refactor Makefile.PL to be comprehensible.
* strip out unused options
* remove include and link directories that do not exist
* replace make of glversion by perl based functionality
* toolkit option: GLUT and FreeGLUT
* interface option: GLX/unix, WGL/win32, [ AGL/CGL? ]
Refactor config/build for portability and simplicity
* use Module::Build framework
* use constant rather than XS constant function
* use GLEW and autogeneration for bindings
* why does GLEW require GLX_VERSION_1_2?
Miscellaneous portability improvements
* Convert malloc() and calloc() calls to Newx(), Newxc(), and Newxz()
* Convert free() to Safefree() to match.
Resolve ASPerl PPM build problems:
* win32 fails because of the FreeGLUT install during Makefile.PL
* linux fails because FreeGLUT is not found
* Mac OS X fails because the GLUT compile env is not right
* What does ASPerl do re external packages needed to build?
Evaluate local include directory usage
* needed for win32 since we install
* check we're using the systemwide files
* if not, why not
Evaluate strategy for legacy POGL going forward:
* Factor out RPN, OGA, ...
* Can implementation be less OGA specific
* Support OGA, PDLs, ...
* What about using just PDL::Core stuff
Enhance CPAN Testers automated testing support
* Improve diagnostic output for debugging test results
* Add a "compile and link only" build of POGL
* Base on GLEW or GLee implementation
* Start with GLEW for more cross-platform
* Can implementation be made wrapper library independent?
Improve library and headers checks in Makefile.PL
* Required libraries are OpenGL and a GUI/context providing toolkit
* GLUT/FreeGLUT, Prima::OpenGL, GTk+, WxWidgets,...
* GLUT is available on *all* GLX platforms
* Mac OS X has a non-X11 GLUT library with extensions:
* glutCheckLoop() -- same as glutMainLoopEvent()
* glutWMCloseFunc() -- same as glutCloseFunc()
* what about GLU, GLX, others?
* If libraries and headers are not available exit 0
* Devel::CheckLib to check
Evaluate backwards compatibility
* document compatibility, at a minimum
* provide feedback info to report issuues
* primary goal is OpenGL, GLUT, GLU support
* secondary goal is more perlish interface
* move to common, clear choice as default!
Clean up glp*() routine support:
* add friendlier display selection function (glpInitDisplayString?)
* backwards compatible where possible
* strip out required GLX or X11 specific code
* layer over GLUT or other GUI/context environment
* N.B. *GLUT is on *all* GLX systems but may not use GLX
* What is needed to support Tk+X11 bindings (just context?)
* Investigate Gtk+ or wxWidgets for embedding
* GLUI as an easy, simple starter (performance?)
Fix examples/ directory
* update to use GLUT rather than glp()
* make simple toolkit wrapper
* hide details of the underlying GUI layer
* simplify demo code
* verify all examples work (most appear to)
* remove broken cruft
* redo planets example to be more realistic:
* planets aren't spheres
* sun has no depth + jaggies
* colors are off
* animation is jumpy (how to smooth out)
* give saturn *real* rings
* what is blue wedge in earth view?
* basic texture for planets
Implement basic template for GLUT/GLUI apps
* Simple default/bare bones option
* Generic version with typical interaction
* Customizable version (runtime?)
* Maybe in examples directory as a module to use
Add Geometry Shader support
Add bindings to GLUI
Add support for more GLUT variant export control:
* Split GLUT into a separate module
* I.e., remove GUI dependencies from POGL
* Need generic context interface standard
* Should be able to use Prima instead
* or WxWidgets or GTk or ...
* :freeglutconstants and :freeglutfunctions
* :appleglutconstants and :appleglutfunctions
Make code handle "missing" windows:
* This is for OpenGL::GLUT
* Calls glutGetWindow() and assumes win is valid
* If win==0, need to handle appropriately and *not* do anything with win
Implement safe glutInit
* check if done_glutInit before calling glutInit()
* carp/croak/quiet error settings
Fix OpenGL/GLUT error handling for perl
* GLUT errors should not kill the interpreter
* Add carp/croak on no glutInit to glut functions to prevent exit(1)
* Add carp/croak to glutDisplayFunc() with null callback.
* Add carp/croak to glutSetKeyRepeat() with invalid repeat mode
* Add carp/croak to glutSetCursor() with unknown cursor type
* Investigate addition of adding return values to perl code
* This would be great for a debug mode
* No return value if not in debug mode (or always undef?)
* undef for error; 1 for void or vice versa?
* Add toggle & display of OpenGL errors a la glutReportErrors()
* Call glGetError in a loop until no errors returned
* Do check for all OpenGL commands
Finish perl bindings to remaining FreeGLUT functions:
* glutGetProcAddress
* what does this mean at perl level?
* maybe use Inline to generate a new binding
* is there a runtime alternative?
* glutJoystickFunc
* need to add non-callback argument
* document current function
OpenGLUT support for building
* OpenGLUT is a dead project, use FreeGLUT.
* Add info to docs re *no* OpenGLUT
Make POGL GLUT-proof
* Make build work with GLUT-only and GLUT+FreeGLUT configurations
* GLUT-only: build and run with reduced functionality
* GLUT+FreeGLUT: build should correctly select and use FreeGLUT
* Nothing should break if you have GLUT rather than FreeGLUT
(as long as you are only using the GLUT subset of FreeGLUT)
* Some functionality may be quietly disabled (glutMainLoop extensions)
* Some functionality may be emulated (glutBitmapString)
* make work with readline event loop for perldl shell
* reverse callback strategy
* what about a GUI window mode for perldl in that case?
Fix current POGL configuration and build process
* Clean up use of configuration information
* Make the compile and config results unambiguous
* Compile flags have two types
* System info flags: HAVE_GLX, HAVE_GLUT, ...
* Build flags: BUILD_GLUT, BUILD_FREEGLUT, ...
* Exactly what libraries are being used
* Library versions and locations/paths
* What are the compile and link configuration
* split out compile/link by libraries
* OpenGL
* GLU
* GLUT
* GLX
* What bindings are actually enabled?
* Use the same information to build POGL as glversion
* Refactor Makefile.PL to be comprehensible.
* strip out unused options
* remove include and link directories that do not exist
* replace make of glversion by perl based functionality
* toolkit option: GLUT and FreeGLUT
* interface option: GLX/unix, WGL/win32, [ AGL/CGL? ]
Refactor config/build for portability and simplicity
* use Module::Build framework
* use constant rather than XS constant function
* Extract GL, GLX, and WGL constants from glew.h, glxew.h and wglew.h
* Extract GLU constants from glu.h
* Extract GLUT and FreeGLUT from glut.h and freeglut_*.h
* Verify that these pre-extracted versions work ok
* use GLEW and autogeneration for bindings
* why does GLEW require GLX_VERSION_1_2?
Move test apps to t/ subdirectory from test.pl
* Split into interactive and non-interactive tests
* Skip interactive tests if no OpenGL context
* need to test for each major functionality
* GL
* GLU
* GLUT/FreeGLUT
* RPN
* Array
* back compatibility (glp routines)
* PDL object support
* NOTE: require_ok() and use_ok() don't like $VERSION w git suffix
Improve support for non-standard OpenGL configurations
* Add command line options for perl Makefile.PL
* set CFLAGS and other build options
* Make single point override for INCLUDE information
* Document how to edit Makefile.PL
Implement complete matrix test capability
* document/implement a test matrix for regression and stability tests
* setup virtualized test environment for POGL and PDL
* factors to include
* perl vs activeperl vs strawberry
* GLX vs WGL vs CGL/AGL
* hardware vs software/Mesa
* OS