reassign 186916 python-pygame
retitle 186916 Setting some SDL flags crashes pygame on 64 bits arches
Le ven 18/04/2003 à 11:38, Kalle Olavi Niemitalo a écrit :
> I think this means:
>
> * SDL_FULLSCREEN should be mapped to the same value as
> 0x80000000: that is, -2147483648 on 32-bit and 2147483648 on
> 64-bit platforms.
Indeed.
> * Code that decodes bit masks passed from Python should ignore
> the high bits that Python does not attempt to preserve.
> In pygame, mode_ok() should decode the value as a long int
> so that the exception will not occur.
Then I guess this patch should be enough (the extra bits should be
trutcated) :
--- display.c.old 2003-04-23 19:22:09.000000000 +0200
+++ display.c 2003-04-23 19:46:09.000000000 +0200
@@ -601,12 +601,13 @@
static PyObject* mode_ok(PyObject* self, PyObject* args)
{
- int flags=SDL_SWSURFACE, depth=0;
+ long flags=SDL_SWSURFACE;
+ int depth=0;
int w, h;
VIDEO_INIT_CHECK();
- if(!PyArg_ParseTuple(args, "(ii)|ii", &w, &h, &flags, &depth))
+ if(!PyArg_ParseTuple(args, "(ii)|li", &w, &h, &flags, &depth))
return NULL;
if(!depth)
depth = SDL_GetVideoInfo()->vfmt->BitsPerPixel;
Can you canfirm this works on alpha ? Of course, this would have to be
applied to set_mode as well, and maybe to other routines.
Regards,
--
.''`. Josselin Mouette /\./\
: :' : josselin.mouette@ens-lyon.org
`. `' joss@debian.org
`- Debian GNU/Linux -- The power of freedom
Attachment:
signature.asc
Description: PGP signature