Merge branch 'patch'
[sdlgit/SDL_perl.git] / src / SDL.xs
index 568e05f..9db342c 100644 (file)
@@ -71,6 +71,32 @@ static int sdl_perl_use_smpeg_audio = 0;
 
 #include "defines.h"
 
+#ifdef MACOSX
+#include <CoreServices/CoreServices.h>
+void CPSEnableForegroundOperation(ProcessSerialNumber* psn);
+void NSApplicationLoad();
+void SDL_macosx_init(void) {
+    Boolean sameProc;
+    ProcessSerialNumber myProc, frProc;
+    if (GetFrontProcess(&frProc) == noErr)
+        if (GetCurrentProcess(&myProc) == noErr)
+            if (SameProcess(&frProc, &myProc, &sameProc) == noErr && sameProc == 0) {
+                /*
+                NSLog(@"creating bad autorelease pool");
+                [[NSAutoreleasePool alloc] init];
+                */
+                NSApplicationLoad();
+                CPSEnableForegroundOperation(&myProc);
+            }
+}
+void SDL_macosx_quit(void) {
+}
+#endif // MACOSX
+
+
+
+
+
 Uint32 
 sdl_perl_timer_callback ( Uint32 interval, void* param )
 {
@@ -1182,6 +1208,20 @@ ColorB ( color, ... )
                RETVAL
 
 void
+ColorRGB ( color, ... )
+       SDL_Color *color
+       PPCODE:
+               if (items > 1 ) {
+                       color->r = SvIV(ST(1)); 
+                       color->g = SvIV(ST(2)); 
+                       color->b = SvIV(ST(3)); 
+               }
+               mXPUSHi( color->r );
+               mXPUSHi( color->g );
+               mXPUSHi( color->b );
+               XSRETURN(3);
+
+void
 FreeColor ( color )
        SDL_Color *color
        CODE:
@@ -2297,7 +2337,7 @@ JoyAxisEventValue ( e )
         OUTPUT:
                 RETVAL
 
-Uint8
+Sint16
 JoyButtonEventWhich ( e )
         SDL_Event *e
         CODE:
@@ -2441,7 +2481,7 @@ NetFreeIPaddress ( ip )
        CODE:
                safefree(ip);
 
-char*
+const char*
 NetResolveIP ( address )
        IPaddress *address
        CODE:
@@ -3902,7 +3942,7 @@ OUTPUT:
      RETVAL
 
 int
-GFXFilledpieColor ( dst, x, y, rad, start, end, color )
+GFXFilledPieColor ( dst, x, y, rad, start, end, color )
     SDL_Surface* dst;
     Sint16 x;
     Sint16 y;
@@ -3911,12 +3951,12 @@ GFXFilledpieColor ( dst, x, y, rad, start, end, color )
     Sint16 end;
     Uint32 color;
 CODE:
-     RETVAL = filledpieColor( dst, x, y, rad, start, end, color );
+     RETVAL = filledPieColor( dst, x, y, rad, start, end, color );
 OUTPUT:
      RETVAL
 
 int
-GFXFilledpieRGBA ( dst, x, y, rad, start, end, r, g, b, a )
+GFXFilledPieRGBA ( dst, x, y, rad, start, end, r, g, b, a )
     SDL_Surface* dst;
     Sint16 x;
     Sint16 y;
@@ -3928,7 +3968,7 @@ GFXFilledpieRGBA ( dst, x, y, rad, start, end, r, g, b, a )
     Uint8 b;
     Uint8 a;
 CODE:
-     RETVAL = filledpieRGBA( dst, x, y, rad, start, end, r, g, b, a );
+     RETVAL = filledPieRGBA( dst, x, y, rad, start, end, r, g, b, a );
 OUTPUT:
      RETVAL