[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[pygame] pgreloaded status update



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

Attachment: pgprXJghSYvU4.pgp
Description: PGP signature