Hi,
with -alpha3 being released and -alpha4 in the queue, I just wanted to
post a short update about the current pgreloaded status, what to expect
in the next alpha4 release (end of February / mid of March, if there's
no show stopper) and what's left to do, before a switch from alpha to rc
can be done.
What changed since -alpha3?
- new pygame2.openal wrapper started
OpenAL is a widely used 3D sound standard, and the main
implementations, openal SI (reference implementation from Creative)
and openal-soft (software-based OpenAL implementation with different
audio device support) are subject to be encapsuled within pygame2, so
anyone can make use of them. Its current state is not much more than a
simple module initialization, but it should be fully implemented until
-alpha4 (if time permits...).
- new pygame2.resources module
Managing resources in applications and games is a task not be
underestimated. pygame2.resources lets you easily set up resource
locations, autmoatically indexes them and provides you an easy,
key-driven access, without the need to take care of relative and
absolute file paths, support for packaged resources within zip and
tar archives and network resources to be streamed (using urllib2).
(cleanly seperated, easy to take into pygame or your very own
application or game - it's code is public domain)
- new pygame2.math module (from trunk)
A port of pygame's math module form Lorenz Quack. Swizzling support
and the elementwise proxy methods were not ported (yet, maybe).
- new pygame2.midi module (from trunk)
A port of pygame's midi module, using the portmidi library.
- sdl.time timers are thread aware now
Finally! SDL timers, added using SDL_AddTimer() support a threaded SDL
and Python. Due to Python's limitations regarding threads and GIL
switching, it's not recommended to use them for small chunks of code
to be executed or to use too many of them with short interval
settings, though :-).
- generic python stream access within the C API
Under the hood, extension developers will find a new class API,
CPyStreamWrapper, which provides access to (arbitrary) stream- and
file-like python objects, with optional threading support.
- lots of bug fixes
Not much to say here.
What's left to do before going into a rc phase?
Too much! In detail, those are:
- testing, testing, testing
- writing unit tests
- writing C API tests
- brushing up the docs
- writing more examples
- playing around with all pieces
Not enough? So what's pretty important aside from the rc?
- rewriting pygame2.sdlext.surfarray, pygame2.sdlmixer.sndarrray,
pygame2.sdlext.scrap,
- porting the last useful chunks from pygame
- inspecting pygame's ffmpeg GSoC work in detail and port it
- inspecting pygame's camera module and port it
- stable, non-blocking subsurface support via slicing (could be easily
done using a simplified pixelarray)
- bringing the Python3.1 encoding system for strings and I/O to its
knees
- better 8-bit and palette support in the SDL backend
- better copy module support
- inspect and reimplement pygame2.sprite
- improve surface/buffer abstraction to easily interop with e.g. PIL
buffers, pyglet, etc.
...
You can find even more in the TODO.txt. Volunteers, helping hands,
etc. are very welcome :-).
Regards
Marcus