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@seul.org" <pygame-users@seul.org>
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 g...@github.com:pygame/pygame.git
<https://github.com/pygame/pygame>
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

Reply via email to