From: Kartik Thakore Date: Tue, 25 Aug 2009 10:01:11 +0000 (-0400) Subject: Added better error reporting and more tests for TTF Font size X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=89d02e07e2ec3457fd3881110d018f6c1999214c;p=sdlgit%2FSDL_perl.git Added better error reporting and more tests for TTF Font size --- diff --git a/src/SDL.xs b/src/SDL.xs index 5cebae7..806e609 100644 --- a/src/SDL.xs +++ b/src/SDL.xs @@ -2979,10 +2979,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 +3003,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 +3026,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 diff --git a/t/toolfontpm.t b/t/toolfontpm.t index 5464c69..7856d05 100644 --- a/t/toolfontpm.t +++ b/t/toolfontpm.t @@ -42,7 +42,7 @@ use Test::More; if ( SDL::Config->has('SDL_image') && SDL::Config->has('SDL_ttf') ) { - plan ( tests => 3 ); + plan ( tests => 6 ); } else { plan ( skip_all => ( SDL::Config->has('SDL_image') @@ -66,5 +66,15 @@ my $font = new SDL::Tool::Font -fg => $SDL::Color::black, -bg => $SDL::Color::black; -ok( SDL::TTFSizeUTF8( $font, "Test"), "Test for SDL::TTFSizeUTF8." ); +use utf8; + +my $string = "Test"; +my $aref = SDL::TTFSizeText( $font, $string); +ok( defined($$aref[0]), "Testi width for SDL::TTFSizeText." ); +ok( defined($$aref[1]), "Test height for SDL::TTFSizeText." ); + +utf8::encode($string); +my $bref = SDL::TTFSizeUTF8( $font, $string); +ok( defined($$bref[0]), "Test for width SDL::TTFSizeUTF8." ); +ok( defined($$bref[1]), "Test for height SDL::TTFSizeUTF8." );