X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=src%2FSDL.xs;h=a84d7c0694b8c3513d94ca359c00ff4a7a1a3992;hb=65b2187d7fca182e8689d1af3ba44f5f946dcc35;hp=56e793b6008a0b4a77bed2ef07e263b10f0facbe;hpb=5a2c431f56b1f85fbac7cf5591733d067fed5672;p=sdlgit%2FSDL_perl.git diff --git a/src/SDL.xs b/src/SDL.xs index 56e793b..a84d7c0 100644 --- a/src/SDL.xs +++ b/src/SDL.xs @@ -1,11 +1,31 @@ +// // SDL.xs // -// SDL Perl by David J. Goehrig +// Copyright (C) 2005 David J. Goehrig +// +// ------------------------------------------------------------------------------ +// +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License, or (at your option) any later version. +// +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA +// +// ------------------------------------------------------------------------------ // -// Copyright (C) 2000,2001,2002,2003,2004 David J. Goehrig +// Please feel free to send questions, suggestions or improvements to: +// +// David J. Goehrig +// dgoehrig@cpan.org // -// This software is under the GNU Library General Public License (LGPL) -// see the file COPYING for terms of use #include "EXTERN.h" #include "perl.h" @@ -17,6 +37,14 @@ #include +#ifdef HAVE_GL +#include +#endif + +#ifdef HAVE_GLU +#include +#endif + #ifdef HAVE_SDL_IMAGE #include #endif @@ -26,31 +54,14 @@ void (*mix_music_finished_cv)(); #endif -#ifdef HAVE_GL -#include -#endif - -#ifdef HAVE_GLU -#include +#ifdef HAVE_SDL_SOUND +#include #endif #ifdef HAVE_SDL_NET #include #endif -#ifdef HAVE_SDL_TTF -#include -#define TEXT_SOLID 1 -#define TEXT_SHADED 2 -#define TEXT_BLENDED 4 -#define UTF8_SOLID 8 -#define UTF8_SHADED 16 -#define UTF8_BLENDED 32 -#define UNICODE_SOLID 64 -#define UNICODE_SHADED 128 -#define UNICODE_BLENDED 256 -#endif - #ifdef HAVE_SMPEG #include #ifdef HAVE_SDL_MIXER @@ -65,37 +76,49 @@ static int sdl_perl_use_smpeg_audio = 0; #include #endif +#ifdef HAVE_SDL_SVG +#include +#endif + +#ifdef HAVE_SDL_TTF +#include +#endif + #ifdef USE_THREADS #define HAVE_TLS_CONTEXT #endif -#include "defines.h" - -#ifdef MACOSX -#include -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 - +/* For windows */ +#ifndef SDL_PERL_DEFINES_H +#define SDL_PERL_DEFINES_H +#ifdef HAVE_TLS_CONTEXT +PerlInterpreter *parent_perl = NULL; +extern PerlInterpreter *parent_perl; +#define GET_TLS_CONTEXT parent_perl = PERL_GET_CONTEXT; +#define ENTER_TLS_CONTEXT \ + PerlInterpreter *current_perl = PERL_GET_CONTEXT; \ + PERL_SET_CONTEXT(parent_perl); { \ + PerlInterpreter *my_perl = parent_perl; +#define LEAVE_TLS_CONTEXT \ + } PERL_SET_CONTEXT(current_perl); +#else +#define GET_TLS_CONTEXT /* TLS context not enabled */ +#define ENTER_TLS_CONTEXT /* TLS context not enabled */ +#define LEAVE_TLS_CONTEXT /* TLS context not enabled */ +#endif +#endif +int +force_directx() +{ +#if defined WIN32 || WINDOWS + fprintf( stderr, "SDL Gamma is unsupported in Windows for windib. Forcing directx. \n" ); + SDL_putenv("SDL_VIDEODRIVER=directx"); +#endif + return 1; +} Uint32 sdl_perl_timer_callback ( Uint32 interval, void* param ) @@ -206,13 +229,15 @@ sdl_perl_music_finished_callback ( void ) #endif +#define INIT_NS_APPLICATION +#define QUIT_NS_APPLICATION + + void sdl_perl_atexit (void) { + QUIT_NS_APPLICATION SDL_Quit(); -#ifdef MACOSX - SDL_macosx_quit(); -#endif } void boot_SDL(); @@ -228,19 +253,18 @@ MODULE = SDL_perl PACKAGE = SDL PROTOTYPES : DISABLE char * -GetError () +geterror () CODE: RETVAL = SDL_GetError(); OUTPUT: RETVAL int -Init ( flags ) +init ( flags ) Uint32 flags CODE: -#ifdef MACOSX - SDL_macosx_init(); -#endif + INIT_NS_APPLICATION + force_directx(); RETVAL = SDL_Init(flags); #ifdef HAVE_TLS_CONTEXT Perl_call_atexit(PERL_GET_CONTEXT, (void*)sdl_perl_atexit,0); @@ -251,7 +275,7 @@ Init ( flags ) RETVAL int -InitSubSystem ( flags ) +init_subsystem ( flags ) Uint32 flags CODE: RETVAL = SDL_InitSubSystem(flags); @@ -259,22 +283,19 @@ InitSubSystem ( flags ) RETVAL void -QuitSubSystem ( flags ) +quit_subsystem ( flags ) Uint32 flags CODE: SDL_QuitSubSystem(flags); void -Quit () +quit () CODE: + QUIT_NS_APPLICATION SDL_Quit(); -#ifdef MACOSX - SDL_macosx_quit(); -#endif - int -WasInit ( flags ) +was_init ( flags ) Uint32 flags CODE: RETVAL = SDL_WasInit(flags); @@ -282,7 +303,7 @@ WasInit ( flags ) RETVAL void -Delay ( ms ) +delay ( ms ) int ms CODE: SDL_Delay(ms); @@ -337,6 +358,103 @@ RemoveTimer ( id ) OUTPUT: RETVAL +SDL_RWops* +RWFromFile ( file, mode ) + char* file + char * mode + CODE: + RETVAL = SDL_RWFromFile(file,mode); + OUTPUT: + RETVAL + +SDL_RWops* +RWFromFP ( fp, autoclose ) + FILE* fp + int autoclose + CODE: + RETVAL = SDL_RWFromFP(fp,autoclose); + OUTPUT: + RETVAL + +SDL_RWops* +RWFromMem ( mem, size ) + char* mem + int size + CODE: + RETVAL = SDL_RWFromMem((void*)mem,size); + OUTPUT: + RETVAL + +SDL_RWops* +RWFromConstMem ( mem, size ) + const char* mem + int size + CODE: + RETVAL = SDL_RWFromConstMem((const void*)mem,size); + OUTPUT: + RETVAL + +SDL_RWops* +AllocRW () + CODE: + RETVAL = SDL_AllocRW(); + OUTPUT: + RETVAL + +void +FreeRW ( rw ) + SDL_RWops* rw + CODE: + SDL_FreeRW(rw); + +int +RWseek ( rw, off, whence ) + SDL_RWops* rw + int off + int whence + CODE: + RETVAL = SDL_RWseek(rw,off,whence); + OUTPUT: + RETVAL + +int +RWtell ( rw ) + SDL_RWops* rw + CODE: + RETVAL = SDL_RWtell(rw); + OUTPUT: + RETVAL + +int +RWread ( rw, mem, size, n ) + SDL_RWops* rw + char* mem + int size + int n + CODE: + RETVAL = SDL_RWread(rw,mem,size,n); + OUTPUT: + RETVAL + +int +RWwrite ( rw, mem, size, n ) + SDL_RWops* rw + char* mem + int size + int n + CODE: + RETVAL = SDL_RWwrite(rw,mem,size,n); + OUTPUT: + RETVAL + +int +RWclose ( rw ) + SDL_RWops* rw + CODE: + RETVAL = SDL_RWclose(rw); + OUTPUT: + RETVAL + int CDNumDrives () CODE: @@ -619,7 +737,7 @@ KeyEventUnicode ( e ) RETVAL Uint8 -KeyEventScanCode ( e ) +key_scancode ( e ) SDL_Event *e CODE: RETVAL = e->key.keysym.scancode; @@ -667,7 +785,7 @@ MouseMotionYrel ( e ) RETVAL Uint8 -MouseButtonState ( e ) +button_state ( e ) SDL_Event *e CODE: RETVAL = e->button.state; @@ -675,7 +793,7 @@ MouseButtonState ( e ) RETVAL Uint8 -MouseButton ( e ) +button ( e ) SDL_Event *e CODE: RETVAL = e->button.button; @@ -683,7 +801,7 @@ MouseButton ( e ) RETVAL Uint16 -MouseButtonX ( e ) +button_x ( e ) SDL_Event *e CODE: RETVAL = e->button.x; @@ -691,7 +809,7 @@ MouseButtonX ( e ) RETVAL Uint16 -MouseButtonY ( e ) +button_y ( e ) SDL_Event *e CODE: RETVAL = e->button.y; @@ -735,29 +853,29 @@ SetModState ( state ) SDL_SetModState(state); char * -GetKeyName ( sym ) +get_key_name ( sym ) int sym CODE: RETVAL = SDL_GetKeyName(sym); OUTPUT: RETVAL +#ifdef HAVE_SDL_IMAGE + SDL_Surface * -CreateRGBSurface (flags, width, height, depth, Rmask, Gmask, Bmask, Amask ) - Uint32 flags - int width - int height - int depth - Uint32 Rmask - Uint32 Gmask - Uint32 Bmask - Uint32 Amask +IMG_Load ( filename ) + char *filename CODE: - RETVAL = SDL_CreateRGBSurface ( flags, width, height, - depth, Rmask, Gmask, Bmask, Amask ); - OUTPUT: + char* CLASS = "SDL::Surface"; + RETVAL = IMG_Load(filename); + OUTPUT: RETVAL +#endif + +=for comment + +Comment out for now as it does not compile SDL_Surface * CreateRGBSurfaceFrom (pixels, width, height, depth, pitch, Rmask, Gmask, Bmask, Amask ) @@ -780,18 +898,6 @@ CreateRGBSurfaceFrom (pixels, width, height, depth, pitch, Rmask, Gmask, Bmask, OUTPUT: RETVAL -#ifdef HAVE_SDL_IMAGE - -SDL_Surface * -IMGLoad ( fname ) - char *fname - CODE: - RETVAL = IMG_Load(fname); - OUTPUT: - RETVAL - -#endif - SDL_Surface* SurfaceCopy ( surface ) SDL_Surface *surface @@ -963,6 +1069,12 @@ SurfacePixels ( surface ) OUTPUT: RETVAL +=cut + +=for comment + +Comment out for now as it does not compile + SDL_Color* SurfacePixel ( surface, x, y, ... ) SDL_Surface *surface @@ -1056,6 +1168,7 @@ GetVideoSurface () OUTPUT: RETVAL +=cut HV * VideoInfo () @@ -1089,63 +1202,6 @@ VideoInfo () OUTPUT: RETVAL -SDL_Rect * -NewRect ( x, y, w, h ) - Sint16 x - Sint16 y - Uint16 w - Uint16 h - CODE: - RETVAL = (SDL_Rect *) safemalloc (sizeof(SDL_Rect)); - RETVAL->x = x; - RETVAL->y = y; - RETVAL->w = w; - RETVAL->h = h; - OUTPUT: - RETVAL - -void -FreeRect ( rect ) - SDL_Rect *rect - CODE: - safefree(rect); - -Sint16 -RectX ( rect, ... ) - SDL_Rect *rect - CODE: - if (items > 1 ) rect->x = SvIV(ST(1)); - RETVAL = rect->x; - OUTPUT: - RETVAL - -Sint16 -RectY ( rect, ... ) - SDL_Rect *rect - CODE: - if (items > 1 ) rect->y = SvIV(ST(1)); - RETVAL = rect->y; - OUTPUT: - RETVAL - -Uint16 -RectW ( rect, ... ) - SDL_Rect *rect - CODE: - if (items > 1 ) rect->w = SvIV(ST(1)); - RETVAL = rect->w; - OUTPUT: - RETVAL - -Uint16 -RectH ( rect, ... ) - SDL_Rect *rect - CODE: - if (items > 1 ) rect->h = SvIV(ST(1)); - RETVAL = rect->h; - OUTPUT: - RETVAL - AV* ListModes ( format, flags ) Uint32 flags @@ -1165,53 +1221,7 @@ ListModes ( format, flags ) } OUTPUT: RETVAL - - -SDL_Color * -NewColor ( r, g, b ) - Uint8 r - Uint8 g - Uint8 b - CODE: - RETVAL = (SDL_Color *) safemalloc(sizeof(SDL_Color)); - RETVAL->r = r; - RETVAL->g = g; - RETVAL->b = b; - OUTPUT: - RETVAL - -Uint8 -ColorR ( color, ... ) - SDL_Color *color - CODE: - if (items > 1 ) color->r = SvIV(ST(1)); - RETVAL = color->r; - OUTPUT: - RETVAL - -Uint8 -ColorG ( color, ... ) - SDL_Color *color - CODE: - if (items > 1 ) color->g = SvIV(ST(1)); - RETVAL = color->g; - OUTPUT: - RETVAL - -Uint8 -ColorB ( color, ... ) - SDL_Color *color - CODE: - if (items > 1 ) color->b = SvIV(ST(1)); - RETVAL = color->b; - OUTPUT: - RETVAL - -void -FreeColor ( color ) - SDL_Color *color - CODE: - return; safefree(color); +=skip SDL_Palette * NewPalette ( number ) @@ -1223,6 +1233,7 @@ NewPalette ( number ) RETVAL->ncolors = number; OUTPUT: RETVAL +=cut int PaletteNColors ( palette, ... ) @@ -1233,39 +1244,47 @@ PaletteNColors ( palette, ... ) OUTPUT: RETVAL -SDL_Color * -PaletteColors ( palette, index, ... ) - SDL_Palette *palette - int index - CODE: - if ( items > 2 ) { - palette->colors[index].r = SvUV(ST(2)); - palette->colors[index].g = SvUV(ST(3)); - palette->colors[index].b = SvUV(ST(4)); - } - RETVAL = (SDL_Color *)(palette->colors + index); - OUTPUT: - RETVAL +SDL_Surface * +SetVideoMode ( width, height, bpp, flags ) -int -VideoModeOK ( width, height, bpp, flags ) int width int height int bpp Uint32 flags + CODE: - RETVAL = SDL_VideoModeOK(width,height,bpp,flags); + char *CLASS = "SDL::Surface"; + RETVAL = SDL_SetVideoMode(width,height,bpp,flags); OUTPUT: RETVAL -SDL_Surface * -SetVideoMode ( width, height, bpp, flags ) - int width - int height - int bpp - Uint32 flags +int +Flip ( surface ) + SDL_Surface *surface CODE: - RETVAL = SDL_SetVideoMode(width,height,bpp,flags); + RETVAL = SDL_Flip(surface); + OUTPUT: + RETVAL + +int +BlitSurface ( src, src_rect, dest, dest_rect ) + SDL_Surface *src + SDL_Surface *dest + SDL_Rect *src_rect + SDL_Rect *dest_rect + CODE: + RETVAL = SDL_BlitSurface(src,src_rect,dest,dest_rect); + OUTPUT: + RETVAL + +Uint32 +MapRGB ( pixel_format, r, g, b ) + SDL_PixelFormat *pixel_format + Uint8 r + Uint8 g + Uint8 b + CODE: + RETVAL = SDL_MapRGB(pixel_format,r,g,b); OUTPUT: RETVAL @@ -1279,32 +1298,72 @@ UpdateRect ( surface, x, y, w ,h ) CODE: SDL_UpdateRect(surface,x,y,w,h); +SDL_Surface * +DisplayFormat ( surface ) + SDL_Surface *surface + CODE: + char* CLASS = "SDL::Surface"; + RETVAL = SDL_DisplayFormat(surface); + OUTPUT: + RETVAL + +SDL_Surface * +DisplayFormatAlpha ( surface ) + SDL_Surface *surface + CODE: + char* CLASS = "SDL::Surface"; + RETVAL = SDL_DisplayFormatAlpha(surface); + OUTPUT: + RETVAL + void UpdateRects ( surface, ... ) SDL_Surface *surface CODE: - SDL_Rect *rects, *temp; + SDL_Rect *rects; int num_rects,i; if ( items < 2 ) return; - num_rects = items - 1; + num_rects = items - 1; rects = (SDL_Rect *)safemalloc(sizeof(SDL_Rect)*items); for(i=0;ix; - rects[i].y = temp->y; - rects[i].w = temp->w; - rects[i].h = temp->h; - } + rects[i] = *(SDL_Rect *)SvIV((SV*)SvRV( ST(i + 1) )); + } SDL_UpdateRects(surface,num_rects,rects); safefree(rects); -int -Flip ( surface ) - SDL_Surface *surface - CODE: - RETVAL = SDL_Flip(surface); - OUTPUT: - RETVAL +=for comment + +Comment out for now as it does not compile + +int +VideoModeOK ( width, height, bpp, flags ) + int width + int height + int bpp + Uint32 flags + CODE: + RETVAL = SDL_VideoModeOK(width,height,bpp,flags); + OUTPUT: + RETVAL + +SDL_Surface * +SetVideoMode ( width, height, bpp, flags ) + int width + int height + int bpp + Uint32 flags + CODE: + RETVAL = SDL_SetVideoMode(width,height,bpp,flags); + OUTPUT: + RETVAL + +int +Flip ( surface ) + SDL_Surface *surface + CODE: + RETVAL = SDL_Flip(surface); + OUTPUT: + RETVAL int SetColors ( surface, start, ... ) @@ -1329,17 +1388,6 @@ all_done: RETVAL Uint32 -MapRGB ( surface, r, g, b ) - SDL_Surface *surface - Uint8 r - Uint8 g - Uint8 b - CODE: - RETVAL = SDL_MapRGB(surface->format,r,g,b); - OUTPUT: - RETVAL - -Uint32 MapRGBA ( surface, r, g, b, a ) SDL_Surface *surface Uint8 r @@ -1410,22 +1458,6 @@ SetAlpha ( surface, flag, alpha ) OUTPUT: RETVAL -SDL_Surface * -DisplayFormat ( surface ) - SDL_Surface *surface - CODE: - RETVAL = SDL_DisplayFormat(surface); - OUTPUT: - RETVAL - -SDL_Surface* -DisplayFormatAlpha ( surface ) - SDL_Surface *surface - CODE: - RETVAL = SDL_DisplayFormatAlpha(surface); - OUTPUT: - RETVAL - SDL_Surface* ConvertRGB ( surface ) SDL_Surface * surface @@ -1478,24 +1510,14 @@ ConvertRGBA ( surface ) OUTPUT: RETVAL -int -BlitSurface ( src, src_rect, dest, dest_rect ) - SDL_Surface *src - SDL_Rect *src_rect - SDL_Surface *dest - SDL_Rect *dest_rect - CODE: - RETVAL = SDL_BlitSurface(src,src_rect,dest,dest_rect); - OUTPUT: - RETVAL +=cut int -FillRect ( dest, dest_rect, color ) +FillRect ( dest, dest_rect, pixel ) SDL_Surface *dest SDL_Rect *dest_rect - SDL_Color *color + Uint32 pixel CODE: - Uint32 pixel = SDL_MapRGB(dest->format,color->r,color->g,color->b); RETVAL = SDL_FillRect(dest,dest_rect,pixel); OUTPUT: RETVAL @@ -2119,6 +2141,15 @@ MixPlayingMusic() OUTPUT: RETVAL +int +MixSetPanning ( channel, left, right ) + int channel + int left + int right + CODE: + RETVAL = Mix_SetPanning(channel, left, right); + OUTPUT: + RETVAL void MixCloseAudio () @@ -2315,7 +2346,7 @@ JoyAxisEventAxis ( e ) OUTPUT: RETVAL -Uint8 +Sint16 JoyAxisEventValue ( e ) SDL_Event *e CODE: @@ -2410,14 +2441,12 @@ SetClipRect ( surface, rect ) CODE: SDL_SetClipRect(surface,rect); -SDL_Rect* -GetClipRect ( surface ) +void +GetClipRect ( surface, rect ) SDL_Surface *surface + SDL_Rect *rect; CODE: - RETVAL = (SDL_Rect*) safemalloc(sizeof(SDL_Rect)); - SDL_GetClipRect(surface,RETVAL); - OUTPUT: - RETVAL + SDL_GetClipRect(surface, rect); #ifdef HAVE_SDL_NET @@ -2478,7 +2507,7 @@ NetResolveIP ( address ) int NetResolveHost ( address, host, port ) IPaddress *address - char *host + const char *host Uint16 port CODE: RETVAL = SDLNet_ResolveHost(address,host,port); @@ -2755,573 +2784,207 @@ NetRead32 ( area ) #endif -#ifdef HAVE_SDL_TTF - int -TTFInit () +LockYUVOverlay ( overlay ) + SDL_Overlay *overlay CODE: - RETVAL = TTF_Init(); + RETVAL = SDL_LockYUVOverlay(overlay); OUTPUT: RETVAL void -TTFQuit () - CODE: - TTF_Quit(); +UnlockYUVOverlay ( overlay ) + SDL_Overlay *overlay + CODE: + SDL_UnlockYUVOverlay(overlay); -TTF_Font* -TTFOpenFont ( file, ptsize ) - char *file - int ptsize +int +DisplayYUVOverlay ( overlay, dstrect ) + SDL_Overlay *overlay + SDL_Rect *dstrect CODE: - RETVAL = TTF_OpenFont(file,ptsize); + RETVAL = SDL_DisplayYUVOverlay ( overlay, dstrect ); OUTPUT: RETVAL -int -TTFGetFontStyle ( font ) - TTF_Font *font +Uint32 +OverlayFormat ( overlay, ... ) + SDL_Overlay *overlay CODE: - RETVAL = TTF_GetFontStyle(font); + if ( items > 1 ) + overlay->format = SvIV(ST(1)); + RETVAL = overlay->format; OUTPUT: RETVAL -void -TTFSetFontStyle ( font, style ) - TTF_Font *font - int style - CODE: - TTF_SetFontStyle(font,style); - -int -TTFFontHeight ( font ) - TTF_Font *font +int +OverlayW ( overlay, ... ) + SDL_Overlay *overlay CODE: - RETVAL = TTF_FontHeight(font); + if ( items > 1 ) + overlay->w = SvIV(ST(1)); + RETVAL = overlay->w; OUTPUT: RETVAL int -TTFFontAscent ( font ) - TTF_Font *font +OverlayH ( overlay, ... ) + SDL_Overlay *overlay CODE: - RETVAL = TTF_FontAscent(font); + if ( items > 1 ) + overlay->h = SvIV(ST(1)); + RETVAL = overlay->h; OUTPUT: - RETVAL + RETVAL int -TTFFontDescent ( font ) - TTF_Font *font +OverlayPlanes ( overlay, ... ) + SDL_Overlay *overlay + CODE: + if ( items > 1 ) + overlay->planes = SvIV(ST(1)); + RETVAL = overlay->planes; + OUTPUT: + RETVAL + +Uint32 +OverlayHW ( overlay ) + SDL_Overlay *overlay CODE: - RETVAL = TTF_FontDescent(font); + RETVAL = overlay->hw_overlay; OUTPUT: RETVAL -int -TTFFontLineSkip ( font ) - TTF_Font *font +Uint16* +OverlayPitches ( overlay ) + SDL_Overlay *overlay CODE: - RETVAL = TTF_FontLineSkip(font); + RETVAL = overlay->pitches; OUTPUT: RETVAL -AV* -TTFGlyphMetrics ( font, ch ) - TTF_Font *font - Uint16 ch +Uint8** +OverlayPixels ( overlay ) + SDL_Overlay *overlay CODE: - int minx, miny, maxx, maxy, advance; - RETVAL = newAV(); - TTF_GlyphMetrics(font, ch, &minx, &miny, &maxx, &maxy, &advance); - av_push(RETVAL,newSViv(minx)); - av_push(RETVAL,newSViv(miny)); - av_push(RETVAL,newSViv(maxx)); - av_push(RETVAL,newSViv(maxy)); - av_push(RETVAL,newSViv(advance)); + RETVAL = overlay->pixels; OUTPUT: RETVAL -AV* -TTFSizeText ( font, text ) - TTF_Font *font - char *text +int +WMToggleFullScreen ( surface ) + SDL_Surface *surface CODE: - int w,h; - RETVAL = newAV(); - TTF_SizeText(font,text,&w,&h); - av_push(RETVAL,newSViv(w)); - av_push(RETVAL,newSViv(h)); + RETVAL = SDL_WM_ToggleFullScreen(surface); OUTPUT: RETVAL -AV* -TTFSizeUTF8 ( font, text ) - TTF_Font *font - char *text +Uint32 +WMGrabInput ( mode ) + Uint32 mode CODE: - int w,h; - RETVAL = newAV(); - TTF_SizeUTF8(font,text,&w,&h); - av_push(RETVAL,newSViv(w)); - av_push(RETVAL,newSViv(h)); + RETVAL = SDL_WM_GrabInput(mode); OUTPUT: RETVAL -AV* -TTFSizeUNICODE ( font, text ) - TTF_Font *font - const Uint16 *text +int +WMIconifyWindow () CODE: - int w,h; - RETVAL = newAV(); - TTF_SizeUNICODE(font,text,&w,&h); - av_push(RETVAL,newSViv(w)); - av_push(RETVAL,newSViv(h)); + RETVAL = SDL_WM_IconifyWindow(); OUTPUT: RETVAL -SDL_Surface* -TTFRenderTextSolid ( font, text, fg ) - TTF_Font *font - char *text - SDL_Color *fg +int +ResizeEventW ( e ) + SDL_Event *e CODE: - RETVAL = TTF_RenderText_Solid(font,text,*fg); + RETVAL = e->resize.w; OUTPUT: RETVAL -SDL_Surface* -TTFRenderUTF8Solid ( font, text, fg ) - TTF_Font *font - char *text - SDL_Color *fg +int +ResizeEventH ( e ) + SDL_Event *e CODE: - RETVAL = TTF_RenderUTF8_Solid(font,text,*fg); + RETVAL = e->resize.h; OUTPUT: RETVAL -SDL_Surface* -TTFRenderUNICODESolid ( font, text, fg ) - TTF_Font *font - const Uint16 *text - SDL_Color *fg +char* +AudioDriverName () CODE: - RETVAL = TTF_RenderUNICODE_Solid(font,text,*fg); + char name[32]; + RETVAL = SDL_AudioDriverName(name,32); OUTPUT: RETVAL -SDL_Surface* -TTFRenderGlyphSolid ( font, ch, fg ) - TTF_Font *font - Uint16 ch - SDL_Color *fg +Uint32 +GetKeyState ( k ) + SDLKey k CODE: - RETVAL = TTF_RenderGlyph_Solid(font,ch,*fg); + if (k >= SDLK_LAST) Perl_croak (aTHX_ "Key out of range"); + RETVAL = SDL_GetKeyState(NULL)[k]; OUTPUT: RETVAL -SDL_Surface* -TTFRenderTextShaded ( font, text, fg, bg ) - TTF_Font *font - char *text - SDL_Color *fg - SDL_Color *bg +#ifdef HAVE_SMPEG + +SMPEG_Info * +NewSMPEGInfo() + CODE: + RETVAL = (SMPEG_Info *) safemalloc (sizeof(SMPEG_Info)); + OUTPUT: + RETVAL + +void +FreeSMPEGInfo ( info ) + SMPEG_Info *info + CODE: + safefree(info); + +int +SMPEGInfoHasAudio ( info ) + SMPEG_Info* info CODE: - RETVAL = TTF_RenderText_Shaded(font,text,*fg,*bg); + RETVAL = info->has_audio; OUTPUT: RETVAL -SDL_Surface* -TTFRenderUTF8Shaded( font, text, fg, bg ) - TTF_Font *font - char *text - SDL_Color *fg - SDL_Color *bg +int +SMPEGInfoHasVideo ( info ) + SMPEG_Info* info CODE: - RETVAL = TTF_RenderUTF8_Shaded(font,text,*fg,*bg); + RETVAL = info->has_video; OUTPUT: RETVAL -SDL_Surface* -TTFRenderUNICODEShaded( font, text, fg, bg ) - TTF_Font *font - const Uint16 *text - SDL_Color *fg - SDL_Color *bg +int +SMPEGInfoWidth ( info ) + SMPEG_Info* info CODE: - RETVAL = TTF_RenderUNICODE_Shaded(font,text,*fg,*bg); + RETVAL = info->width; OUTPUT: RETVAL -SDL_Surface* -TTFRenderGlyphShaded ( font, ch, fg, bg ) - TTF_Font *font - Uint16 ch - SDL_Color *fg - SDL_Color *bg +int +SMPEGInfoHeight ( info ) + SMPEG_Info* info CODE: - RETVAL = TTF_RenderGlyph_Shaded(font,ch,*fg,*bg); + RETVAL = info->height; OUTPUT: RETVAL -SDL_Surface* -TTFRenderTextBlended( font, text, fg ) - TTF_Font *font - char *text - SDL_Color *fg +int +SMPEGInfoCurrentFrame ( info ) + SMPEG_Info* info CODE: - RETVAL = TTF_RenderText_Blended(font,text,*fg); - OUTPUT: - RETVAL - -SDL_Surface* -TTFRenderUTF8Blended( font, text, fg ) - TTF_Font *font - char *text - SDL_Color *fg - CODE: - RETVAL = TTF_RenderUTF8_Blended(font,text,*fg); - OUTPUT: - RETVAL - -SDL_Surface* -TTFRenderUNICODEBlended( font, text, fg ) - TTF_Font *font - const Uint16 *text - SDL_Color *fg - CODE: - RETVAL = TTF_RenderUNICODE_Blended(font,text,*fg); - OUTPUT: - RETVAL - -SDL_Surface* -TTFRenderGlyphBlended( font, ch, fg ) - TTF_Font *font - Uint16 ch - SDL_Color *fg - CODE: - RETVAL = TTF_RenderGlyph_Blended(font,ch,*fg); - OUTPUT: - RETVAL - -void -TTFCloseFont ( font ) - TTF_Font *font - CODE: - TTF_CloseFont(font); - -SDL_Surface* -TTFPutString ( font, mode, surface, x, y, fg, bg, text ) - TTF_Font *font - int mode - SDL_Surface *surface - int x - int y - SDL_Color *fg - SDL_Color *bg - char *text - CODE: - SDL_Surface *img; - SDL_Rect dest; - int w,h; - dest.x = x; - dest.y = y; - RETVAL = NULL; - switch (mode) { - case TEXT_SOLID: - img = TTF_RenderText_Solid(font,text,*fg); - TTF_SizeText(font,text,&w,&h); - dest.w = w; - dest.h = h; - break; - case TEXT_SHADED: - img = TTF_RenderText_Shaded(font,text,*fg,*bg); - TTF_SizeText(font,text,&w,&h); - dest.w = w; - dest.h = h; - break; - case TEXT_BLENDED: - img = TTF_RenderText_Blended(font,text,*fg); - TTF_SizeText(font,text,&w,&h); - dest.w = w; - dest.h = h; - break; - case UTF8_SOLID: - img = TTF_RenderUTF8_Solid(font,text,*fg); - TTF_SizeUTF8(font,text,&w,&h); - dest.w = w; - dest.h = h; - break; - case UTF8_SHADED: - img = TTF_RenderUTF8_Shaded(font,text,*fg,*bg); - TTF_SizeUTF8(font,text,&w,&h); - dest.w = w; - dest.h = h; - break; - case UTF8_BLENDED: - img = TTF_RenderUTF8_Blended(font,text,*fg); - TTF_SizeUTF8(font,text,&w,&h); - dest.w = w; - dest.h = h; - break; - case UNICODE_SOLID: - img = TTF_RenderUNICODE_Solid(font,(Uint16*)text,*fg); - TTF_SizeUNICODE(font,(Uint16*)text,&w,&h); - dest.w = w; - dest.h = h; - break; - case UNICODE_SHADED: - img = TTF_RenderUNICODE_Shaded(font,(Uint16*)text,*fg,*bg); - TTF_SizeUNICODE(font,(Uint16*)text,&w,&h); - dest.w = w; - dest.h = h; - break; - case UNICODE_BLENDED: - img = TTF_RenderUNICODE_Blended(font,(Uint16*)text,*fg); - TTF_SizeUNICODE(font,(Uint16*)text,&w,&h); - dest.w = w; - dest.h = h; - break; - default: - img = TTF_RenderText_Shaded(font,text,*fg,*bg); - TTF_SizeText(font,text,&w,&h); - dest.w = w; - dest.h = h; - } - if ( img && img->format && img->format->palette ) { - SDL_Color *c = &img->format->palette->colors[0]; - Uint32 key = SDL_MapRGB( img->format, c->r, c->g, c->b ); - SDL_SetColorKey(img,SDL_SRCCOLORKEY,key ); - if (0 > SDL_BlitSurface(img,NULL,surface,&dest)) { - SDL_FreeSurface(img); - RETVAL = NULL; - } else { - RETVAL = img; - } - } - OUTPUT: - RETVAL - -#endif - -SDL_Overlay* -CreateYUVOverlay ( width, height, format, display ) - int width - int height - Uint32 format - SDL_Surface *display - CODE: - RETVAL = SDL_CreateYUVOverlay ( width, height, format, display ); - OUTPUT: - RETVAL - -int -LockYUVOverlay ( overlay ) - SDL_Overlay *overlay - CODE: - RETVAL = SDL_LockYUVOverlay(overlay); - OUTPUT: - RETVAL - -void -UnlockYUVOverlay ( overlay ) - SDL_Overlay *overlay - CODE: - SDL_UnlockYUVOverlay(overlay); - -int -DisplayYUVOverlay ( overlay, dstrect ) - SDL_Overlay *overlay - SDL_Rect *dstrect - CODE: - RETVAL = SDL_DisplayYUVOverlay ( overlay, dstrect ); - OUTPUT: - RETVAL - -void -FreeYUVOverlay ( overlay ) - SDL_Overlay *overlay - CODE: - SDL_FreeYUVOverlay ( overlay ); - -Uint32 -OverlayFormat ( overlay, ... ) - SDL_Overlay *overlay - CODE: - if ( items > 1 ) - overlay->format = SvIV(ST(1)); - RETVAL = overlay->format; - OUTPUT: - RETVAL - -int -OverlayW ( overlay, ... ) - SDL_Overlay *overlay - CODE: - if ( items > 1 ) - overlay->w = SvIV(ST(1)); - RETVAL = overlay->w; - OUTPUT: - RETVAL - -int -OverlayH ( overlay, ... ) - SDL_Overlay *overlay - CODE: - if ( items > 1 ) - overlay->h = SvIV(ST(1)); - RETVAL = overlay->h; - OUTPUT: - RETVAL - -int -OverlayPlanes ( overlay, ... ) - SDL_Overlay *overlay - CODE: - if ( items > 1 ) - overlay->planes = SvIV(ST(1)); - RETVAL = overlay->planes; - OUTPUT: - RETVAL - -Uint32 -OverlayHW ( overlay ) - SDL_Overlay *overlay - CODE: - RETVAL = overlay->hw_overlay; - OUTPUT: - RETVAL - -Uint16* -OverlayPitches ( overlay ) - SDL_Overlay *overlay - CODE: - RETVAL = overlay->pitches; - OUTPUT: - RETVAL - -Uint8** -OverlayPixels ( overlay ) - SDL_Overlay *overlay - CODE: - RETVAL = overlay->pixels; - OUTPUT: - RETVAL - -int -WMToggleFullScreen ( surface ) - SDL_Surface *surface - CODE: - RETVAL = SDL_WM_ToggleFullScreen(surface); - OUTPUT: - RETVAL - -Uint32 -WMGrabInput ( mode ) - Uint32 mode - CODE: - RETVAL = SDL_WM_GrabInput(mode); - OUTPUT: - RETVAL - -int -WMIconifyWindow () - CODE: - RETVAL = SDL_WM_IconifyWindow(); - OUTPUT: - RETVAL - -int -ResizeEventW ( e ) - SDL_Event *e - CODE: - RETVAL = e->resize.w; - OUTPUT: - RETVAL - -int -ResizeEventH ( e ) - SDL_Event *e - CODE: - RETVAL = e->resize.h; - OUTPUT: - RETVAL - -char* -AudioDriverName () - CODE: - char name[32]; - RETVAL = SDL_AudioDriverName(name,32); - OUTPUT: - RETVAL - -Uint32 -GetKeyState ( k ) - SDLKey k - CODE: - if (k >= SDLK_LAST) Perl_croak (aTHX_ "Key out of range"); - RETVAL = SDL_GetKeyState(NULL)[k]; - OUTPUT: - RETVAL - -#ifdef HAVE_SMPEG - -SMPEG_Info * -NewSMPEGInfo() - CODE: - RETVAL = (SMPEG_Info *) safemalloc (sizeof(SMPEG_Info)); - OUTPUT: - RETVAL - -void -FreeSMPEGInfo ( info ) - SMPEG_Info *info; - CODE: - safefree(info); - -int -SMPEGInfoHasAudio ( info ) - SMPEG_Info* info; - CODE: - RETVAL = info->has_audio; - OUTPUT: - RETVAL - -int -SMPEGInfoHasVideo ( info ) - SMPEG_Info* info; - CODE: - RETVAL = info->has_video; - OUTPUT: - RETVAL - -int -SMPEGInfoWidth ( info ) - SMPEG_Info* info; - CODE: - RETVAL = info->width; - OUTPUT: - RETVAL - -int -SMPEGInfoHeight ( info ) - SMPEG_Info* info; - CODE: - RETVAL = info->height; - OUTPUT: - RETVAL - -int -SMPEGInfoCurrentFrame ( info ) - SMPEG_Info* info; - CODE: - RETVAL = info->current_frame; + RETVAL = info->current_frame; OUTPUT: RETVAL double SMPEGInfoCurrentFPS ( info ) - SMPEG_Info* info; + SMPEG_Info* info CODE: RETVAL = info->current_fps; OUTPUT: @@ -3329,7 +2992,7 @@ SMPEGInfoCurrentFPS ( info ) int SMPEGInfoCurrentAudioFrame ( info ) - SMPEG_Info* info; + SMPEG_Info* info CODE: RETVAL = info->audio_current_frame; OUTPUT: @@ -3337,7 +3000,7 @@ SMPEGInfoCurrentAudioFrame ( info ) int SMPEGInfoCurrentOffset ( info ) - SMPEG_Info* info; + SMPEG_Info* info CODE: RETVAL = info->current_offset; OUTPUT: @@ -3345,7 +3008,7 @@ SMPEGInfoCurrentOffset ( info ) int SMPEGInfoTotalSize ( info ) - SMPEG_Info* info; + SMPEG_Info* info CODE: RETVAL = info->total_size; OUTPUT: @@ -3353,7 +3016,7 @@ SMPEGInfoTotalSize ( info ) double SMPEGInfoCurrentTime ( info ) - SMPEG_Info* info; + SMPEG_Info* info CODE: RETVAL = info->current_time; OUTPUT: @@ -3361,7 +3024,7 @@ SMPEGInfoCurrentTime ( info ) double SMPEGInfoTotalTime ( info ) - SMPEG_Info* info; + SMPEG_Info* info CODE: RETVAL = info->total_time; OUTPUT: @@ -3369,7 +3032,7 @@ SMPEGInfoTotalTime ( info ) char * SMPEGError ( mpeg ) - SMPEG* mpeg ; + SMPEG* mpeg CODE: RETVAL = SMPEG_error(mpeg); OUTPUT: @@ -3377,8 +3040,8 @@ SMPEGError ( mpeg ) SMPEG* NewSMPEG ( filename, info, use_audio ) - char* filename; - SMPEG_Info* info; + char* filename + SMPEG_Info* info int use_audio CODE: #ifdef HAVE_SDL_MIXER @@ -3391,14 +3054,14 @@ NewSMPEG ( filename, info, use_audio ) void FreeSMPEG ( mpeg ) - SMPEG* mpeg; + SMPEG* mpeg CODE: SMPEG_delete(mpeg); void SMPEGEnableAudio ( mpeg , flag ) - SMPEG* mpeg ; - int flag; + SMPEG* mpeg + int flag CODE: SMPEG_enableaudio(mpeg,flag); #ifdef HAVE_SDL_MIXER @@ -3407,44 +3070,44 @@ SMPEGEnableAudio ( mpeg , flag ) void SMPEGEnableVideo ( mpeg , flag ) - SMPEG* mpeg ; - int flag; + SMPEG* mpeg + int flag CODE: SMPEG_enablevideo(mpeg,flag); void SMPEGSetVolume ( mpeg , volume ) - SMPEG* mpeg ; - int volume; + SMPEG* mpeg + int volume CODE: SMPEG_setvolume(mpeg,volume); void SMPEGSetDisplay ( mpeg, dest, surfLock ) - SMPEG* mpeg; - SDL_Surface* dest; - SDL_mutex* surfLock; + SMPEG* mpeg + SDL_Surface* dest + SDL_mutex* surfLock CODE: SMPEG_setdisplay(mpeg,dest,surfLock,NULL); void SMPEGScaleXY ( mpeg, w, h) - SMPEG* mpeg; - int w; - int h; + SMPEG* mpeg + int w + int h CODE: SMPEG_scaleXY(mpeg,w,h); void SMPEGScale ( mpeg, scale ) - SMPEG* mpeg; + SMPEG* mpeg int scale CODE: SMPEG_scale(mpeg,scale); void SMPEGPlay ( mpeg ) - SMPEG* mpeg; + SMPEG* mpeg CODE: SDL_AudioSpec audiofmt; Uint16 format; @@ -3465,7 +3128,7 @@ SMPEGPlay ( mpeg ) SMPEGstatus SMPEGStatus ( mpeg ) - SMPEG* mpeg; + SMPEG* mpeg CODE: RETVAL = SMPEG_status(mpeg); OUTPUT: @@ -3473,20 +3136,20 @@ SMPEGStatus ( mpeg ) void SMPEGPause ( mpeg ) - SMPEG* mpeg; + SMPEG* mpeg CODE: SMPEG_pause(mpeg); void SMPEGLoop ( mpeg, repeat ) - SMPEG* mpeg; + SMPEG* mpeg int repeat CODE: SMPEG_loop(mpeg,repeat); void SMPEGStop ( mpeg ) - SMPEG* mpeg; + SMPEG* mpeg CODE: SMPEG_stop(mpeg); #ifdef HAVE_SDL_MIXER @@ -3495,41 +3158,41 @@ SMPEGStop ( mpeg ) void SMPEGRewind ( mpeg ) - SMPEG* mpeg; + SMPEG* mpeg CODE: SMPEG_rewind(mpeg); void SMPEGSeek ( mpeg, bytes ) - SMPEG* mpeg; - int bytes; + SMPEG* mpeg + int bytes CODE: SMPEG_seek(mpeg,bytes); void SMPEGSkip ( mpeg, seconds ) - SMPEG* mpeg; - float seconds; + SMPEG* mpeg + float seconds CODE: SMPEG_skip(mpeg,seconds); void SMPEGSetDisplayRegion ( mpeg, rect ) - SMPEG* mpeg; - SDL_Rect* rect; + SMPEG* mpeg + SDL_Rect* rect CODE: SMPEG_setdisplayregion(mpeg,rect->x,rect->y,rect->w,rect->h); void SMPEGRenderFrame ( mpeg, frame ) - SMPEG* mpeg; - int frame; + SMPEG* mpeg + int frame CODE: SMPEG_renderFrame(mpeg,frame); SMPEG_Info * SMPEGGetInfo ( mpeg ) - SMPEG* mpeg; + SMPEG* mpeg CODE: RETVAL = (SMPEG_Info *) safemalloc (sizeof(SMPEG_Info)); SMPEG_getinfo(mpeg,RETVAL); @@ -3541,557 +3204,660 @@ SMPEGGetInfo ( mpeg ) #ifdef HAVE_SDL_GFX +=cut + SDL_Surface * GFXRotoZoom ( src, angle, zoom, smooth) - SDL_Surface * src; - double angle; - double zoom; - int smooth; - CODE: - RETVAL = rotozoomSurface( src, angle, zoom, smooth); - OUTPUT: - RETVAL + SDL_Surface * src + double angle + double zoom + int smooth + CODE: + RETVAL = rotozoomSurface( src, angle, zoom, smooth); + OUTPUT: + RETVAL SDL_Surface * GFXZoom ( src, zoomx, zoomy, smooth) - SDL_Surface *src; - double zoomx; - double zoomy; - int smooth; - CODE: - RETVAL = zoomSurface( src, zoomx, zoomy, smooth); - OUTPUT: - RETVAL + SDL_Surface *src + double zoomx + double zoomy + int smooth + CODE: + RETVAL = zoomSurface( src, zoomx, zoomy, smooth); + OUTPUT: + RETVAL +=cut int GFXPixelColor ( dst, x, y, color ) - SDL_Surface* dst; - Sint16 x; - Sint16 y; - Uint32 color; -CODE: - RETVAL = pixelColor( dst, x, y, color); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x + Sint16 y + Uint32 color + CODE: + RETVAL = pixelColor( dst, x, y, color); + OUTPUT: + RETVAL int GFXPixelRGBA ( dst, x, y, r, g, b, a ) - SDL_Surface* dst; - Sint16 x; - Sint16 y; - Uint8 r; - Uint8 g; - Uint8 b; - Uint8 a; -CODE: - RETVAL = pixelRGBA( dst, x, y, r, g, b, a ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x + Sint16 y + Uint8 r + Uint8 g + Uint8 b + Uint8 a + CODE: + RETVAL = pixelRGBA( dst, x, y, r, g, b, a ); + OUTPUT: + RETVAL int GFXHlineColor ( dst, x1, x2, y, color ) - SDL_Surface* dst; - Sint16 x1; - Sint16 x2; - Sint16 y; - Uint32 color; -CODE: - RETVAL = hlineColor( dst, x1, x2, y, color ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x1 + Sint16 x2 + Sint16 y + Uint32 color + CODE: + RETVAL = hlineColor( dst, x1, x2, y, color ); + OUTPUT: + RETVAL int GFXHlineRGBA ( dst, x1, x2, y, r, g, b, a ) - SDL_Surface* dst; - Sint16 x1; - Sint16 x2; - Sint16 y; - Uint8 r; - Uint8 g; - Uint8 b; - Uint8 a; -CODE: - RETVAL = hlineRGBA( dst, x1, x2, y, r, g, b, a ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x1 + Sint16 x2 + Sint16 y + Uint8 r + Uint8 g + Uint8 b + Uint8 a + CODE: + RETVAL = hlineRGBA( dst, x1, x2, y, r, g, b, a ); + OUTPUT: + RETVAL int GFXVlineColor ( dst, x, y1, y2, color ) - SDL_Surface* dst; - Sint16 x; - Sint16 y1; - Sint16 y2; - Uint32 color; -CODE: - RETVAL = vlineColor( dst, x, y1, y2, color ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x + Sint16 y1 + Sint16 y2 + Uint32 color + CODE: + RETVAL = vlineColor( dst, x, y1, y2, color ); + OUTPUT: + RETVAL int GFXVlineRGBA ( dst, x, y1, y2, r, g, b, a ) - SDL_Surface* dst; - Sint16 x; - Sint16 y1; - Sint16 y2; - Uint8 r; - Uint8 g; - Uint8 b; - Uint8 a; -CODE: - RETVAL = vlineRGBA( dst, x, y1, y2, r, g, b, a ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x + Sint16 y1 + Sint16 y2 + Uint8 r + Uint8 g + Uint8 b + Uint8 a + CODE: + RETVAL = vlineRGBA( dst, x, y1, y2, r, g, b, a ); + OUTPUT: + RETVAL int GFXRectangleColor ( dst, x1, y1, x2, y2, color ) - SDL_Surface* dst; - Sint16 x1; - Sint16 y1; - Sint16 x2; - Sint16 y2; - Uint32 color; -CODE: - RETVAL = rectangleColor( dst, x1, y1, x2, y2, color ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x1 + Sint16 y1 + Sint16 x2 + Sint16 y2 + Uint32 color + CODE: + RETVAL = rectangleColor( dst, x1, y1, x2, y2, color ); + OUTPUT: + RETVAL int GFXRectangleRGBA ( dst, x1, y1, x2, y2, r, g, b, a ) - SDL_Surface* dst; - Sint16 x1; - Sint16 y1; - Sint16 x2; - Sint16 y2; - Uint8 r; - Uint8 g; - Uint8 b; - Uint8 a; -CODE: - RETVAL = rectangleRGBA( dst, x1, y1, x2, y2, r, g, b, a ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x1 + Sint16 y1 + Sint16 x2 + Sint16 y2 + Uint8 r + Uint8 g + Uint8 b + Uint8 a + CODE: + RETVAL = rectangleRGBA( dst, x1, y1, x2, y2, r, g, b, a ); + OUTPUT: + RETVAL int GFXBoxColor ( dst, x1, y1, x2, y2, color ) - SDL_Surface* dst; - Sint16 x1; - Sint16 y1; - Sint16 x2; - Sint16 y2; - Uint32 color; -CODE: - RETVAL = boxColor( dst, x1, y1, x2, y2, color ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x1 + Sint16 y1 + Sint16 x2 + Sint16 y2 + Uint32 color + CODE: + RETVAL = boxColor( dst, x1, y1, x2, y2, color ); + OUTPUT: + RETVAL int GFXBoxRGBA ( dst, x1, y1, x2, y2, r, g, b, a ) - SDL_Surface* dst; - Sint16 x1; - Sint16 y1; - Sint16 x2; - Sint16 y2; - Uint8 r; - Uint8 g; - Uint8 b; - Uint8 a; -CODE: - RETVAL = boxRGBA( dst, x1, y1, x2, y2, r, g, b, a ); -OUTPUT: - RETVAL + SDL_Surface* dst; + Sint16 x1 + Sint16 y1 + Sint16 x2 + Sint16 y2 + Uint8 r + Uint8 g + Uint8 b + Uint8 a + CODE: + RETVAL = boxRGBA( dst, x1, y1, x2, y2, r, g, b, a ); + OUTPUT: + RETVAL int GFXLineColor ( dst, x1, y1, x2, y2, color ) - SDL_Surface* dst; - Sint16 x1; - Sint16 y1; - Sint16 x2; - Sint16 y2; - Uint32 color; -CODE: - RETVAL = lineColor( dst, x1, y1, x2, y2, color ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x1 + Sint16 y1 + Sint16 x2 + Sint16 y2 + Uint32 color + CODE: + RETVAL = lineColor( dst, x1, y1, x2, y2, color ); + OUTPUT: + RETVAL int GFXLineRGBA ( dst, x1, y1, x2, y2, r, g, b, a ) - SDL_Surface* dst; - Sint16 x1; - Sint16 y1; - Sint16 x2; - Sint16 y2; - Uint8 r; - Uint8 g; - Uint8 b; - Uint8 a; -CODE: - RETVAL = lineRGBA( dst, x1, y1, x2, y2, r, g, b, a ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x1 + Sint16 y1 + Sint16 x2 + Sint16 y2 + Uint8 r + Uint8 g + Uint8 b + Uint8 a + CODE: + RETVAL = lineRGBA( dst, x1, y1, x2, y2, r, g, b, a ); + OUTPUT: + RETVAL int GFXAalineColor ( dst, x1, y1, x2, y2, color ) - SDL_Surface* dst; - Sint16 x1; - Sint16 y1; - Sint16 x2; - Sint16 y2; - Uint32 color; -CODE: - RETVAL = aalineColor( dst, x1, y1, x2, y2, color ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x1 + Sint16 y1 + Sint16 x2 + Sint16 y2 + Uint32 color + CODE: + RETVAL = aalineColor( dst, x1, y1, x2, y2, color ); + OUTPUT: + RETVAL int GFXAalineRGBA ( dst, x1, y1, x2, y2, r, g, b, a ) - SDL_Surface* dst; - Sint16 x1; - Sint16 y1; - Sint16 x2; - Sint16 y2; - Uint8 r; - Uint8 g; - Uint8 b; - Uint8 a; -CODE: - RETVAL = aalineRGBA( dst, x1, y1, x2, y2, r, g, b, a ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x1 + Sint16 y1 + Sint16 x2 + Sint16 y2 + Uint8 r + Uint8 g + Uint8 b + Uint8 a + CODE: + RETVAL = aalineRGBA( dst, x1, y1, x2, y2, r, g, b, a ); + OUTPUT: + RETVAL int GFXCircleColor ( dst, x, y, r, color ) - SDL_Surface* dst; - Sint16 x; - Sint16 y; - Sint16 r; - Uint32 color; -CODE: - RETVAL = circleColor( dst, x, y, r, color ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x + Sint16 y + Sint16 r + Uint32 color + CODE: + RETVAL = circleColor( dst, x, y, r, color ); + OUTPUT: + RETVAL int GFXCircleRGBA ( dst, x, y, rad, r, g, b, a ) - SDL_Surface* dst; - Sint16 x; - Sint16 y; - Sint16 rad; - Uint8 r; - Uint8 g; - Uint8 b; - Uint8 a; -CODE: - RETVAL = circleRGBA( dst, x, y, rad, r, g, b, a ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x + Sint16 y + Sint16 rad + Uint8 r + Uint8 g + Uint8 b + Uint8 a + CODE: + RETVAL = circleRGBA( dst, x, y, rad, r, g, b, a ); + OUTPUT: + RETVAL int GFXAacircleColor ( dst, x, y, r, color ) - SDL_Surface* dst; - Sint16 x; - Sint16 y; - Sint16 r; - Uint32 color; -CODE: - RETVAL = aacircleColor( dst, x, y, r, color ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x + Sint16 y + Sint16 r + Uint32 color + CODE: + RETVAL = aacircleColor( dst, x, y, r, color ); + OUTPUT: + RETVAL int GFXAacircleRGBA ( dst, x, y, rad, r, g, b, a ) - SDL_Surface* dst; - Sint16 x; - Sint16 y; - Sint16 rad; - Uint8 r; - Uint8 g; - Uint8 b; - Uint8 a; -CODE: - RETVAL = aacircleRGBA( dst, x, y, rad, r, g, b, a ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x + Sint16 y + Sint16 rad + Uint8 r + Uint8 g + Uint8 b + Uint8 a + CODE: + RETVAL = aacircleRGBA( dst, x, y, rad, r, g, b, a ); + OUTPUT: + RETVAL int GFXFilledCircleColor ( dst, x, y, r, color ) - SDL_Surface* dst; - Sint16 x; - Sint16 y; - Sint16 r; - Uint32 color; -CODE: - RETVAL = filledCircleColor( dst, x, y, r, color ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x + Sint16 y + Sint16 r + Uint32 color + CODE: + RETVAL = filledCircleColor( dst, x, y, r, color ); + OUTPUT: + RETVAL int GFXFilledCircleRGBA ( dst, x, y, rad, r, g, b, a ) - SDL_Surface* dst; - Sint16 x; - Sint16 y; - Sint16 rad; - Uint8 r; - Uint8 g; - Uint8 b; - Uint8 a; -CODE: - RETVAL = filledCircleRGBA( dst, x, y, rad, r, g, b, a ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x + Sint16 y + Sint16 rad + Uint8 r + Uint8 g + Uint8 b + Uint8 a + CODE: + RETVAL = filledCircleRGBA( dst, x, y, rad, r, g, b, a ); + OUTPUT: + RETVAL int GFXEllipseColor ( dst, x, y, rx, ry, color ) - SDL_Surface* dst; - Sint16 x; - Sint16 y; - Sint16 rx; - Sint16 ry; - Uint32 color; -CODE: - RETVAL = ellipseColor( dst, x, y, rx, ry, color ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x + Sint16 y + Sint16 rx + Sint16 ry + Uint32 color + CODE: + RETVAL = ellipseColor( dst, x, y, rx, ry, color ); + OUTPUT: + RETVAL int GFXEllipseRGBA ( dst, x, y, rx, ry, r, g, b, a ) - SDL_Surface* dst; - Sint16 x; - Sint16 y; - Sint16 rx; - Sint16 ry; - Uint8 r; - Uint8 g; - Uint8 b; - Uint8 a; -CODE: - RETVAL = ellipseRGBA( dst, x, y, rx, ry, r, g, b, a ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x + Sint16 y + Sint16 rx + Sint16 ry + Uint8 r + Uint8 g + Uint8 b + Uint8 a + CODE: + RETVAL = ellipseRGBA( dst, x, y, rx, ry, r, g, b, a ); + OUTPUT: + RETVAL int GFXAaellipseColor ( dst, xc, yc, rx, ry, color ) - SDL_Surface* dst; - Sint16 xc; - Sint16 yc; - Sint16 rx; - Sint16 ry; - Uint32 color; -CODE: - RETVAL = aaellipseColor( dst, xc, yc, rx, ry, color ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 xc + Sint16 yc + Sint16 rx + Sint16 ry + Uint32 color + CODE: + RETVAL = aaellipseColor( dst, xc, yc, rx, ry, color ); + OUTPUT: + RETVAL int GFXAaellipseRGBA ( dst, x, y, rx, ry, r, g, b, a ) - SDL_Surface* dst; - Sint16 x; - Sint16 y; - Sint16 rx; - Sint16 ry; - Uint8 r; - Uint8 g; - Uint8 b; - Uint8 a; -CODE: - RETVAL = aaellipseRGBA( dst, x, y, rx, ry, r, g, b, a ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x + Sint16 y + Sint16 rx + Sint16 ry + Uint8 r + Uint8 g + Uint8 b + Uint8 a + CODE: + RETVAL = aaellipseRGBA( dst, x, y, rx, ry, r, g, b, a ); + OUTPUT: + RETVAL int GFXFilledEllipseColor ( dst, x, y, rx, ry, color ) - SDL_Surface* dst; - Sint16 x; - Sint16 y; - Sint16 rx; - Sint16 ry; - Uint32 color; -CODE: - RETVAL = filledEllipseColor( dst, x, y, rx, ry, color ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x + Sint16 y + Sint16 rx + Sint16 ry + Uint32 color + CODE: + RETVAL = filledEllipseColor( dst, x, y, rx, ry, color ); + OUTPUT: + RETVAL int GFXFilledEllipseRGBA ( dst, x, y, rx, ry, r, g, b, a ) - SDL_Surface* dst; - Sint16 x; - Sint16 y; - Sint16 rx; - Sint16 ry; - Uint8 r; - Uint8 g; - Uint8 b; - Uint8 a; -CODE: - RETVAL = filledEllipseRGBA( dst, x, y, rx, ry, r, g, b, a ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x + Sint16 y + Sint16 rx + Sint16 ry + Uint8 r + Uint8 g + Uint8 b + Uint8 a + CODE: + RETVAL = filledEllipseRGBA( dst, x, y, rx, ry, r, g, b, a ); + OUTPUT: + RETVAL int GFXFilledPieColor ( dst, x, y, rad, start, end, color ) - SDL_Surface* dst; - Sint16 x; - Sint16 y; - Sint16 rad; - Sint16 start; - Sint16 end; - Uint32 color; -CODE: - RETVAL = filledPieColor( dst, x, y, rad, start, end, color ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x + Sint16 y + Sint16 rad + Sint16 start + Sint16 end + Uint32 color + CODE: + RETVAL = filledPieColor( dst, x, y, rad, start, end, color ); + OUTPUT: + RETVAL int GFXFilledPieRGBA ( dst, x, y, rad, start, end, r, g, b, a ) - SDL_Surface* dst; - Sint16 x; - Sint16 y; - Sint16 rad; - Sint16 start; - Sint16 end; - Uint8 r; - Uint8 g; - Uint8 b; - Uint8 a; -CODE: - RETVAL = filledPieRGBA( dst, x, y, rad, start, end, r, g, b, a ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x + Sint16 y + Sint16 rad + Sint16 start + Sint16 end + Uint8 r + Uint8 g + Uint8 b + Uint8 a + CODE: + RETVAL = filledPieRGBA( dst, x, y, rad, start, end, r, g, b, a ); + OUTPUT: + RETVAL int GFXPolygonColor ( dst, vx, vy, n, color ) - SDL_Surface* dst; - Sint16* vx; - Sint16* vy; - int n; - Uint32 color; -CODE: - RETVAL = polygonColor( dst, vx, vy, n, color ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16* vx + Sint16* vy + int n + Uint32 color; + CODE: + RETVAL = polygonColor( dst, vx, vy, n, color ); + OUTPUT: + RETVAL int GFXPolygonRGBA ( dst, vx, vy, n, r, g, b, a ) - SDL_Surface* dst; - Sint16* vx; - Sint16* vy; - int n; - Uint8 r; - Uint8 g; - Uint8 b; - Uint8 a; -CODE: - RETVAL = polygonRGBA( dst, vx, vy, n, r, g, b, a ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16* vx + Sint16* vy + int n + Uint8 r + Uint8 g + Uint8 b + Uint8 a + CODE: + RETVAL = polygonRGBA( dst, vx, vy, n, r, g, b, a ); + OUTPUT: + RETVAL int GFXAapolygonColor ( dst, vx, vy, n, color ) - SDL_Surface* dst; - Sint16* vx; - Sint16* vy; - int n; - Uint32 color; -CODE: - RETVAL = aapolygonColor( dst, vx, vy, n, color ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16* vx + Sint16* vy + int n + Uint32 color + CODE: + RETVAL = aapolygonColor( dst, vx, vy, n, color ); + OUTPUT: + RETVAL int GFXAapolygonRGBA ( dst, vx, vy, n, r, g, b, a ) - SDL_Surface* dst; - Sint16* vx; - Sint16* vy; - int n; - Uint8 r; - Uint8 g; - Uint8 b; - Uint8 a; -CODE: - RETVAL = aapolygonRGBA( dst, vx, vy, n, r, g, b, a ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16* vx + Sint16* vy + int n + Uint8 r + Uint8 g + Uint8 b + Uint8 a + CODE: + RETVAL = aapolygonRGBA( dst, vx, vy, n, r, g, b, a ); + OUTPUT: + RETVAL int GFXFilledPolygonColor ( dst, vx, vy, n, color ) - SDL_Surface* dst; - Sint16* vx; - Sint16* vy; - int n; - int color; -CODE: - RETVAL = filledPolygonColor( dst, vx, vy, n, color ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16* vx + Sint16* vy + int n + int color + CODE: + RETVAL = filledPolygonColor( dst, vx, vy, n, color ); + OUTPUT: + RETVAL int GFXFilledPolygonRGBA ( dst, vx, vy, n, r, g, b, a ) - SDL_Surface* dst; - Sint16* vx; - Sint16* vy; - int n; - Uint8 r; - Uint8 g; - Uint8 b; - Uint8 a; -CODE: - RETVAL = filledPolygonRGBA( dst, vx, vy, n, r, g, b, a ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16* vx + Sint16* vy + int n + Uint8 r + Uint8 g + Uint8 b + Uint8 a + CODE: + RETVAL = filledPolygonRGBA( dst, vx, vy, n, r, g, b, a ); + OUTPUT: + RETVAL int GFXCharacterColor ( dst, x, y, c, color ) - SDL_Surface* dst; - Sint16 x; - Sint16 y; - char c; - Uint32 color; -CODE: - RETVAL = characterColor( dst, x, y, c, color ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x + Sint16 y + char c + Uint32 color + CODE: + RETVAL = characterColor( dst, x, y, c, color ); + OUTPUT: + RETVAL int GFXCharacterRGBA ( dst, x, y, c, r, g, b, a ) - SDL_Surface* dst; - Sint16 x; - Sint16 y; - char c; - Uint8 r; - Uint8 g; - Uint8 b; - Uint8 a; -CODE: - RETVAL = characterRGBA( dst, x, y, c, r, g, b, a ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x + Sint16 y + char c + Uint8 r + Uint8 g + Uint8 b + Uint8 a + CODE: + RETVAL = characterRGBA( dst, x, y, c, r, g, b, a ); + OUTPUT: + RETVAL int GFXStringColor ( dst, x, y, c, color ) - SDL_Surface* dst; - Sint16 x; - Sint16 y; - char* c; - Uint32 color; -CODE: - RETVAL = stringColor( dst, x, y, c, color ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x + Sint16 y + char* c + Uint32 color + CODE: + RETVAL = stringColor( dst, x, y, c, color ); + OUTPUT: + RETVAL int GFXStringRGBA ( dst, x, y, c, r, g, b, a ) - SDL_Surface* dst; - Sint16 x; - Sint16 y; - char* c; - Uint8 r; - Uint8 g; - Uint8 b; - Uint8 a; -CODE: - RETVAL = stringRGBA( dst, x, y, c, r, g, b, a ); -OUTPUT: - RETVAL + SDL_Surface* dst + Sint16 x + Sint16 y + char* c + Uint8 r + Uint8 g + Uint8 b + Uint8 a + CODE: + RETVAL = stringRGBA( dst, x, y, c, r, g, b, a ); + OUTPUT: + RETVAL + +#endif + + +#ifdef HAVE_SDL_SVG + +SDL_svg_context * +SVG_Load ( filename ) + char* filename + CODE: + RETVAL = SVG_Load(filename); + OUTPUT: + RETVAL + +SDL_svg_context * +SVG_LoadBuffer ( data, len ) + char* data + int len + CODE: + RETVAL = SVG_LoadBuffer(data,len); + OUTPUT: + RETVAL + +int +SVG_SetOffset ( source, xoff, yoff ) + SDL_svg_context* source + double xoff + double yoff + CODE: + RETVAL = SVG_SetOffset(source,xoff,yoff); + OUTPUT: + RETVAL + +int +SVG_SetScale ( source, xscale, yscale ) + SDL_svg_context* source + double xscale + double yscale + CODE: + RETVAL = SVG_SetScale(source,xscale,yscale); + OUTPUT: + RETVAL + +int +SVG_RenderToSurface ( source, x, y, dest ) + SDL_svg_context* source + int x + int y + SDL_Surface* dest; + CODE: + RETVAL = SVG_RenderToSurface(source,x,y,dest); + OUTPUT: + RETVAL + +void +SVG_Free ( source ) + SDL_svg_context* source + CODE: + SVG_Free(source); + +void +SVG_Set_Flags ( source, flags ) + SDL_svg_context* source + Uint32 flags + CODE: + SVG_Set_Flags(source,flags); + +float +SVG_Width ( source ) + SDL_svg_context* source + CODE: + RETVAL = SVG_Width(source); + OUTPUT: + RETVAL + +float +SVG_HEIGHT ( source ) + SDL_svg_context* source + CODE: + RETVAL = SVG_Height(source); + OUTPUT: + RETVAL + +void +SVG_SetClipping ( source, minx, miny, maxx, maxy ) + SDL_svg_context* source + int minx + int miny + int maxx + int maxy + CODE: + SVG_SetClipping(source,minx,miny,maxx,maxy); + +int +SVG_Version ( ) + CODE: + RETVAL = SVG_Version(); + OUTPUT: + RETVAL + #endif @@ -4125,14 +3891,14 @@ AV* SoundDecoderInfoExtensions ( decoderinfo ) Sound_DecoderInfo* decoderinfo CODE: - char **ext; + const char **ext; for ( ext = decoderinfo->extensions; *ext != NULL; ext++ ){ - av_push(RETVAL,sv_2mortal(newSVpv(*ext,0))); + av_push(RETVAL,newSVpv(*ext,0)); } OUTPUT: RETVAL -char* +const char* SoundDecoderInfoDescription ( decoderinfo ) Sound_DecoderInfo* decoderinfo CODE: @@ -4140,7 +3906,7 @@ SoundDecoderInfoDescription ( decoderinfo ) OUTPUT: RETVAL -char* +const char* SoundDecoderInfoAuthor ( decoderinfo ) Sound_DecoderInfo* decoderinfo CODE: @@ -4148,7 +3914,7 @@ SoundDecoderInfoAuthor ( decoderinfo ) OUTPUT: RETVAL -char* +const char* SoundDecoderInfoUrl ( decoderinfo ) Sound_DecoderInfo* decoderinfo CODE: @@ -4192,7 +3958,7 @@ Uint32 SoundSampleBufferSize ( sample ) Sound_Sample* sample CODE: - RETVAL = sample->buffer; + RETVAL = sample->buffer_size; OUTPUT: RETVAL @@ -4204,7 +3970,192 @@ SoundSampleFlags ( sample ) OUTPUT: RETVAL +int +Sound_Init ( ) + CODE: + RETVAL = Sound_Init(); + OUTPUT: + RETVAL + +int +Sound_Quit ( ) + CODE: + RETVAL = Sound_Quit(); + OUTPUT: + RETVAL + +AV* +Sound_AvailableDecoders ( ) + CODE: + RETVAL = newAV(); + const Sound_DecoderInfo** sdi; + sdi = Sound_AvailableDecoders(); + if (sdi != NULL) { + for (;*sdi != NULL; ++sdi) { + av_push(RETVAL,sv_2mortal(newSViv(PTR2IV(*sdi)))); + } + } + OUTPUT: + RETVAL + +const char* +Sound_GetError ( ) + CODE: + RETVAL = Sound_GetError(); + OUTPUT: + RETVAL + +void +Sound_ClearError ( ) + CODE: + Sound_ClearError(); + +Sound_Sample* +Sound_NewSample ( rw, ext, desired, buffsize ) + SDL_RWops* rw + const char* ext + Sound_AudioInfo* desired + Uint32 buffsize + CODE: + RETVAL = Sound_NewSample(rw,ext,desired,buffsize); + OUTPUT: + RETVAL + +Sound_Sample* +Sound_NewSampleFromMem ( data, size, ext, desired, buffsize ) + const Uint8 *data + Uint32 size + const char* ext + Sound_AudioInfo* desired + Uint32 buffsize + CODE: + RETVAL = Sound_NewSampleFromMem(data,size,ext,desired,buffsize); + OUTPUT: + RETVAL + +Sound_Sample* +Sound_NewSampleFromFile ( fname, desired, buffsize ) + const char* fname + Sound_AudioInfo* desired + Uint32 buffsize + CODE: + RETVAL = Sound_NewSampleFromFile(fname,desired,buffsize); + OUTPUT: + RETVAL + +void +Sound_FreeSample ( sample ) + Sound_Sample* sample + CODE: + Sound_FreeSample(sample); + +Sint32 +Sound_GetDuration ( sample ) + Sound_Sample* sample + CODE: + RETVAL = Sound_GetDuration(sample); + OUTPUT: + RETVAL + +int +Sound_SetBufferSize ( sample, size ) + Sound_Sample* sample + Uint32 size + CODE: + RETVAL = Sound_SetBufferSize(sample,size); + OUTPUT: + RETVAL + +Uint32 +Sound_Decode ( sample ) + Sound_Sample* sample + CODE: + RETVAL = Sound_Decode(sample); + OUTPUT: + RETVAL + +Uint32 +Sound_DecodeAll ( sample ) + Sound_Sample* sample + CODE: + RETVAL = Sound_DecodeAll(sample); + OUTPUT: + RETVAL + +int +Sound_Rewind ( sample ) + Sound_Sample* sample + CODE: + RETVAL = Sound_Rewind(sample); + OUTPUT: + RETVAL + +int +Sound_Seek ( sample, ms ) + Sound_Sample* sample + Uint32 ms + CODE: + RETVAL = Sound_Seek(sample,ms); + OUTPUT: + RETVAL + +#endif + +#ifdef HAVE_SDL_TTF + +int +TTF_Init () + CODE: + RETVAL = TTF_Init(); + OUTPUT: + RETVAL + +void +TTF_Quit () + CODE: + TTF_Quit(); + +TTF_Font* +TTF_OpenFont ( file, ptsize ) + char *file + int ptsize + CODE: + char* CLASS = "SDL::TTF_Font"; + RETVAL = TTF_OpenFont(file,ptsize); + OUTPUT: + RETVAL + +AV* +TTF_SizeText ( font, text ) + TTF_Font *font + char *text + CODE: + int w,h; + RETVAL = newAV(); + if(TTF_SizeText(font,text,&w,&h)) + { + printf("TTF error at TTFSizeText: %s \n", TTF_GetError()); + Perl_croak (aTHX_ "TTF error \n"); + } + else + { + av_push(RETVAL,newSViv(w)); + av_push(RETVAL,newSViv(h)); + sv_2mortal((SV*)RETVAL); + } + OUTPUT: + RETVAL +SDL_Surface* +TTF_RenderText_Blended ( font, text, fg ) + TTF_Font *font + char *text + SDL_Color *fg + CODE: + char* CLASS = "SDL::Surface"; + RETVAL = TTF_RenderText_Blended(font,text,*fg); + OUTPUT: + RETVAL #endif