X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=src%2FSDL.xs;h=135f1ca93b5b520ed1344f009b69ced4239e9745;hb=260ff6cfda9e639a87d3baa45b56d760bb485a1a;hp=5cebae735abc266635017f7e839180d0c4a7133c;hpb=ab9658154181c1aed5c3c5ca5034df3878a9f78d;p=sdlgit%2FSDL_perl.git diff --git a/src/SDL.xs b/src/SDL.xs index 5cebae7..135f1ca 100644 --- a/src/SDL.xs +++ b/src/SDL.xs @@ -1205,63 +1205,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 @@ -1414,10 +1357,11 @@ void UpdateRects ( surface, ... ) SDL_Surface *surface CODE: - SDL_Rect *rects, *temp; + SDL_Rect *rects, *oldrects, *temp; int num_rects,i; if ( items < 2 ) return; - num_rects = items - 1; + num_rects = items - 1; + oldrects = rects; rects = (SDL_Rect *)safemalloc(sizeof(SDL_Rect)*items); for(i=0;iformat,color->r,color->g,color->b); RETVAL = SDL_FillRect(dest,dest_rect,pixel); @@ -2541,14 +2492,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 @@ -2979,10 +2928,19 @@ TTFSizeText ( font, text ) CODE: int w,h; RETVAL = newAV(); - TTF_SizeText(font,text,&w,&h); - av_push(RETVAL,newSViv(w)); - av_push(RETVAL,newSViv(h)); - sv_2mortal((SV*)RETVAL); + if(TTF_SizeText(font,text,&w,&h)) + { + av_push(RETVAL,newSViv(w)); + av_push(RETVAL,newSViv(h)); + sv_2mortal((SV*)RETVAL); + } + else + { + printf("TTF error at TTFSizeText: %s \n", TTF_GetError()); + Perl_croak (aTHX_ "TTF error \n"); + + } + OUTPUT: RETVAL @@ -2994,11 +2952,18 @@ TTFSizeUTF8 ( font, text ) CODE: int w,h; RETVAL = newAV(); - TTF_SizeUTF8(font,text,&w,&h); + if(TTF_SizeUTF8(font,text,&w,&h)) + { av_push(RETVAL,newSViv(w)); av_push(RETVAL,newSViv(h)); - - sv_2mortal((SV*)RETVAL); + sv_2mortal((SV*)RETVAL); + + } + else + { + printf("TTF error at TTFSizeUTF8 with : %s \n", TTF_GetError()); + Perl_croak (aTHX_ "TTF error \n"); + } OUTPUT: RETVAL @@ -3010,10 +2975,18 @@ TTFSizeUNICODE ( font, text ) CODE: int w,h; RETVAL = newAV(); - TTF_SizeUNICODE(font,text,&w,&h); - av_push(RETVAL,newSViv(w)); - av_push(RETVAL,newSViv(h)); - sv_2mortal((SV*)RETVAL); + if(TTF_SizeUNICODE(font,text,&w,&h)) + { + av_push(RETVAL,newSViv(w)); + av_push(RETVAL,newSViv(h)); + sv_2mortal((SV*)RETVAL); + + } + else + { + printf("TTF error at TTFSizeUNICODE : %s \n", TTF_GetError()); + Perl_croak (aTHX_ "TTF error \n"); + } OUTPUT: RETVAL