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

Re: [pygame] Re: pygame with SDL2 proposal



Lenard has gone ahead and patched everything with SDL2 defines where needed, and set the config up with an -SDL2 flag. A lot of it works already with SDL2.

Some thoughts on a test plan.

I've been setting up some linux machines for testing and development today. An old Dell laptop(with Ubuntu 16.04), some raspberry pis(Raspbian), and some virtual machines(Fedora, ...). I'll go through a 'smoke test' a bunch of different apps and pygame examples next. It's looking pretty good so far.



1) known outstanding issues list.
2) functions with ifdef SDL2 list.
3) manual run through of apps on linux
4) review, and document each SDL2 touched file, one by one.
5) Mac, windows builds.

1) known outstanding issues list.
If we make the warnings in the code readable, we can mark it with this.
grep "#warning" src/*

#warning "convert_alpha not implemented."


2) functions with ifdef SDL2 list.
Make a list of functions different in SDL2. (Ones which have #ifndef SDL2), this will help us manually test things. Because I guess these places are more likely to have issues.

There's approximately 22 files with SDL2 in there.



3) manual run through of apps on linux
Take pygame.example apps, and a few different apps we know well (solarwolf, zanthor, an OpenGL one etc).
Make three virtualenvs with pygame 1.9.3, pygame+SDL1, pygame+SDL2.
Display apps side by side, try inputs, try music/sound.

4) review, and document each SDL2 touched file, one by one.

For each file or module, we can make a post to the mailing list, and describe what it does.

The purpose of doing this is to get more eyes looking at it. Also it will be a chance for us to document it well, and see if our explanations are understandable.


----
To: "pygame-users@xxxxxxxx" <pygame-users@xxxxxxxx>
Subject: display.c

* A link to the file in github.
* What the module does.
* What the SDL2 changes are.
* How we can test for compatible behaviour.
* A link to relevant SDL2 documentation.
* Refactor C API as we go. (gm prefix, SDL_Rect, mod init) https://github.com/pygame/pygame/issues/333
* Thoughts on possible clean ups, or things we can make more clear.
* if easy enough, add missing unit tests (we have to test these anyway right?).

This could be useful for C API documentation.


(I'm going to do display.c first.).
----


5) Mac, Windows builds
When the linux build seems to build ok, we need to get the OSX and windows builds going.



So... that's the slightly vague test plan. Hopefully by the end of it we will have a nicer developer guide, cleaner code, along with the SDL2 stuff.



If anyone wants to play on linux...
# sudo apt-get install libsdl2-image-dev libsdl2-dev libsdl2-ttf-dev libsdl2-mixer-dev python3.5-venv git libfreetype6-dev libportmidi-dev python3-wheel python3-setuptools python3-dev python3-numpy
git clone git@xxxxxxxxxx:pygame/pygame.git
cd pygame
git checkout -b SDL_patches --track origin/SDL2_patches
python3 config.py -SDL2
python3 setup.py build
python3 setup.py install --user
python3 -m pygame.examples.aliens