With the recently announced SDL2 release and in-progress work
to provide perl bindings for the same, I wanted to share my
thoughts for leveraging joint capabilities of these three
modules with a couple of specific points.
1) SDL2 brings integrated hardware acceleration via Direct3D and/or
OpenGL to both 2D and 3D graphics. This offers the possiblity
of using modern OpenGL API features like renderbuffers for
computation and display.
2) PDL provides a high level array computation language that
can be used as a back-end engine for SDL applications and
visualization. The PDL::Graphics::TriD currently uses
the OpenGL-1.x fixed pipeline interface.
3) Perl OpenGL currently supports the original fixed-pipeline
display process of OpenGL-1.x and some 2.x functionality.
Work is underway to update the support to modern OpenGL
APIs such as OpenGL-3.x, OpenGLES,...
The common thread here is OpenGL, and I think that by updating
the OpenGL use and interfaces to the modern programmable display
pipeline we can generate significant synergy between the
1) Update Perl OpenGL to modern OpenGL (In progress by slowed
by the fact that my development time is spread too thin.
Am I the only one with a whole slew of projects for which
I know *exactly* what and how to do them but not having
the time to execute? :-)
2) Refactor PDL::Graphics::TriD to use modern OpenGL for
display rather than the fixed-function pipeline of OpenGL
3) Update PDL to support (simply) the use of arbitrary
sources of data (e.g., I'm thinking framebuffer and
renderbuffer objects but deliberately being more
general since I could also imagine some sort of
generator that could act like a piddle for computation
4) Add GPGPU support to PDL computation.
5) Add support to the perl SDL2 interface to allow easy
mix and match operation with PDL for computation, IO,
and visualization. I could see PDL+GPGPU computing
working well with realtime game or display computations.
Well, the above ideas have a some hand waving to make them
happen, but I think the pieces are there.