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

Re: [pygame] svn patch for windows



Thanks John, I've committed these patches.

Committed revision 966.

For the imageext dec ref of the module, that is correct - it was a
reference counting bug.

Cheers,


On 11/24/06, John Popplewell <john@xxxxxxxxxxxxxxxxxxxxxx> wrote:
Hi,

thought I'd checkout out Pygame-1.8 svn. Had fun (not) finding the
Microsoft compiler for Python-2.4 and above (eventually found it on a
backup I had from ages back).

Then spent a while building all the dependencies to use 'msvcr71.dll'.

I documented what I got up to here:
http://johnnypops.demon.co.uk/pygame/index.html

Anyway. To get PyGame to build I had to fix a couple of glitches:

Index: src/overlay.c
===================================================================
--- src/overlay.c       (revision 965)
+++ src/overlay.c       (working copy)
@@ -78,13 +78,13 @@

     if(src_y)
        {
-               void *dst_y=0, *dst_u=0, *dst_v=0;
+               Uint8 *dst_y=0, *dst_u=0, *dst_v=0;
                SDL_LockYUVOverlay( self->cOverlay );

                // No clipping at this time( only support for YUV420 )
-               dst_y = (void*)self->cOverlay->pixels[ 0 ];
-               dst_v = (void*)self->cOverlay->pixels[ 1 ];
-               dst_u = (void*)self->cOverlay->pixels[ 2 ];
+               dst_y = self->cOverlay->pixels[ 0 ];
+               dst_v = self->cOverlay->pixels[ 1 ];
+               dst_u = self->cOverlay->pixels[ 2 ];
                for (y=0; y< self->cOverlay->h; y++)
                {
                        memcpy( dst_y, src_y, self->cOverlay->w );


This stops compile errors later on when arithmetic is performed on the dst_y, dst_u and dst_v pointers.


Index: src/scrap.c =================================================================== --- src/scrap.c (revision 965) +++ src/scrap.c (working copy) @@ -376,11 +376,11 @@

 #elif defined(WIN_SCRAP)
         SDL_Window = info.window;
-        retval = 1
+        retval = 1;

 #elif defined(QNX_SCRAP)
         InputGroup = PhInputGroup (NULL);
-        retval = 1
+        retval = 1;

 #endif /* scrap type */
     }
@@ -422,6 +422,9 @@
 {
     scrap_type format;
     int nulledlen = srclen + 1;
+#if defined(WIN_SCRAP)
+    HANDLE hMem;
+#endif

     if (!pygame_scrap_initialized ())
     {
@@ -465,8 +468,6 @@
     Unlock_Display ();

 #elif defined(WIN_SCRAP)
-    HANDLE hMem;
-
     if (!OpenClipboard (SDL_Window))
         return 0; /* Could not open the clipboard. */


This fixes some typos and a variable declaration (is there a compiler compatibility switch to prevent this nonsense?).


Index: src/imageext.c =================================================================== --- src/imageext.c (revision 965) +++ src/imageext.c (working copy) @@ -488,7 +488,7 @@ ) { #ifdef JPEGLIB_H result = SaveJPEG(surf, name); -#elif +#else return RAISE(PyExc_SDLError, "No support for jpg compiled in."); #endif

@@ -496,7 +496,7 @@
                 else if(name[namelen-1]=='g' || name[namelen-1]=='G') {
 #ifdef PNG_H
                    result = SavePNG(surf, name);
-#elif
+#else
                     return RAISE(PyExc_SDLError, "No support for png compiled in.");
 #endif
                 }


I found these whilst fiddling about with libpng linkage.


Index: src/image.c =================================================================== --- src/image.c (revision 965) +++ src/image.c (working copy) @@ -1011,6 +1011,7 @@ Py_INCREF(extsave); Py_INCREF(extload); is_extended = 1; + Py_DECREF(extmodule); } else {

I'm not certain about this one. I was looking through the code whilst
trying to find out why it crashed when importing imageext (libpng/Py2exe
problems).

Looking forward to the 1.8 release,

regards,
John.