On Feb 13, 2005, at 16:06, thor wrote:
Well, that is a good point. I suppose everyone will have a differing opinion on that, particularly in terms of goals. For me, I'd like to see a single package, which includes a GUI designer, script editor with colorizing, debugger, interactive console, some sort of module browser for functions and syntax, resource viewer, something similar to package manager... and a basic set of modules for x-plat development work. Then, some tool which helps to output the whole thing as a runtime package.
I wholly agree that this would be a utopian environment!
As a Director user myself, I have gone through some of the same problems as you have.
I wanted to make a cross platform software that used pyGame for drawing
and wxPython for Menus and GUI buttons, etc. This is not possible as wxPython
does not support the pyGame thread. This is a big problem. No way of drawing
2D in python and use wxPython.
wxWidgets and SDL are definitely not compatible on OS X, I think it might be possible (but probably problematic) to integrate them on other platforms.
pygame isn't really what you want for modern multimedia stuff. It's kinda slow (especially on OS X), limited to simple pixel processing (blits mostly, no vector stuff, no real pixel effects, etc.), and it's painfully low level. On the other hand, the stuff it *does* do, it does fairly well, and it does it everywhere in the same way.
w.r.t the slow comment, someone on the SDL mailing list is working on Altivec acceleration for SDL.. which is one of the reasons I have been putting off a new pygame build. It will make worlds of difference in performance. Unfortunately, the first patch he posted is incomplete, and it is not conditionally enabled (read: disables G3 support). Hopefully he finds the time to finish it soon!
Solutions:
- Do 2D stuff in OpenGL (quite awkward) as pyOpenGL works with wxPython
- Don't use wxPython but native libraries on each of the 3 platforms I want to write for.
OpenGL (and/or DirectX), directly or indirectly, is definitely the right way to do multimedia. Cairo <http://cairographics.org/> is an interesting project that might make doing accelerated 2D programming much easier, and there are Python bindings <http://cairographics.org/pycairo>. Personally I never had much of a problem abstracting OpenGL to do 2D stuff, but I didn't have a problem with the 3D stuff either. It would definitely be useful if someone were to create a high-level library for multimedia using PyOpenGL. I remember seeing a couple nascent projects in this arena, but I don't remember the names -- except for slithy <http://isotropic.org/uw/slithy/>, which is really something altogether different, but it may have all the bits you need.
For this reason I am now using Java and I draw on a Canvas inside the Swing GUI elements and this is easily done and cross platform.
I might be missing some solutions, but I tried for months and gave up.
Python rocks and is extremely nice, the user community as well, but as you
say, a lot of the time (for me) has been wasted by trying to figure out a workable
environment for what I wanted to do without luck.
Unfortunately you picked a subject area that there isn't a lot of high level support for. Most of the nuts and bolts are there, though.
Multimedia in Python is problematic but possible (as the list will assure you).
I would say raw, not problematic. There are no real problems with it that I'm aware of, you're just not that much better off from an integration perspective than you would be in one of the C languages.
good luck and thanks for bringing up those issues, it is by discussion that things progress.
It takes a lot more than just talk!
-bob
_______________________________________________ Pythonmac-SIG maillist - Pythonmac-SIG@python.org http://mail.python.org/mailman/listinfo/pythonmac-sig