Yeah, conditional compilation, compatible functions, macros and opaque
types. Which ever is nicer for each part.

Cython is fine for new things, IMHO.

cheerio,



On Sunday, March 19, 2017, Lenard Lindstrom <le...@telus.net> wrote:

> Hi René and everyone else,
>
> I like this approach. My patches achieve the first step, using SDL2. The
> next step is to introduce new SDL2 features as new modules and classes.
>
> I suppose the SDL2 patches can be incorporated as conditionally compiled
> code. They can be added one at a time, but must all be in place to work
> properly. Then any new Pygame modules will expose SDL2 features only, so
> not be built for SDL1.
>
> As a long term goal SDL1 can be removed and SDL1 legacy modules
> reimplemented on top of the SDL2 specific code.
>
> Is there any reason new modules should not be written in Cython? If not
> then we could try to use parts of pygame_sdl2 to quickly introduce SDL2
> specific features.
>
> Lenard Lindstrom
>
>
> On 17-03-18 05:02 AM, René Dudfield wrote:
>
>> Hello,
>>
>> so, I've spent some more time reading source code, and investigating SDL2
>> and the options a lot.
>>
>> I *think* this plan below could be the best way forward for us.
>>
>> tldr;
>>  * have a single source SDL1, and SDL2 code base with a compile time
>> option. (like we have single source py2 and py3).
>>  * move bitbucket/pygame repo to github/pygame.
>>
>>
>> Rather than reimplementing everything, and introducing lots of
>> compatibility bugs, Instead I think a gradual approach would work better.
>> I'm starting to think that perhaps pygame_sdl2 by Tom, is not such a great
>> way forward (for the pygame project, I think it was necessary and good for
>> Ren'Py).
>>
>> A big breaking change is kind of silly for how little resources we have.
>> Python 3 managed to pull it off... after a decade, and with massive
>> resources having poured into it. And it only took off once they put
>> compatibility code back in. Here's the thread where some discussion has
>> been happening.
>> https://bitbucket.org/pygame/pygame/issues/174/pygame-20-the-sdl2-edition
>>
>>
>> What we do have is some patches to get the current code base working with
>> SDL2.
>> https://bitbucket.org/llindstrom/pygame-1.10-patch
>>
>> I think it should be possible with some work to improve an SDL2
>> compatibility layer, so that pygame code base can work with either (as a
>> compile time option). Then newer APIs can be introduced in time, in a non
>> break-every-program kind of way. Also, it's been proven that 'hardware'
>> blitting does not need to break SDL1 API compatibility to use hardware
>> accelerated APIs (Angle, SDL_gpu, [insert 4 or 5 other projects], ...).
>>
>> Having a pygame2, or whatever separate repo would also make maintenance
>> harder. Since for the foreseeable future, we will likely need to do
>> maintenance releases for this anyway (at least I want to!, and I know other
>> users of pygame will).
>>
>> ---
>>
>> For pip uploads, they would continue to be for SDL1, until we can finish
>> the SDL2 changes, and it works better. There would be no new additions
>> until compatibility is mostly there.
>>
>> The work would progress by slowly adding in compatibility changes whilst
>> keeping pygame working. By keeping the SDL2 patch set as is, and slowly
>> reducing the patch set until it is size zero. So we always have a pygame
>> with sdl2, and a pygame with sdl1 that is producible. Eventually the patch
>> set will disappear.
>>
>> ---
>>
>> A pygame2 module would just cause confusion amongst users, and that
>> really boring 'pygame 1 or pygame 2' type debate would go on, and on like
>> the "python 2, verses python 3" one did. For me, just avoiding that
>> discussion for the next decade would be worth it.
>>
>> Then there would need to be two sets of documentation on the website. And
>> two sets of tutorials... and... we'd have 2 of everything to *do*, and 2 of
>> everything for people to look at.
>>
>> Finally, "import pygame2" looks kind of weird. I've grown used to "import
>> pygame".
>>
>> ...
>>
>>
>>
>> I'm keen to get moving on this. I've been trying to get feedback on the
>> 'pygame sdl2 addition' issue for the last month, and the issue has been
>> open since 2013. So I'd like to put a time limit on this decision for one
>> more week.
>>
>> I'd really like to hear back from contributors, and users (everyone).
>>
>>
>>
>>
>> ps. Interestingly SDL_gfx has an SDL2 release now.
>> http://www.ferzkopp.net/wordpress/2016/01/02/sdl_gfx-sdl2_gfx/
>>
>>
>

Reply via email to