From: Kartik Thakore Date: Tue, 27 Oct 2009 19:30:36 +0000 (-0400) Subject: In Video.xs: removed use of goto. Added set_palette. In core_video.t tested set_palette X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=69341787b9240e7450bc15ed0466218d37d8de20;p=sdlgit%2FSDL_perl.git In Video.xs: removed use of goto. Added set_palette. In core_video.t tested set_palette --- diff --git a/src/Core/Video.xs b/src/Core/Video.xs index a01aa2c..836fff1 100644 --- a/src/Core/Video.xs +++ b/src/Core/Video.xs @@ -143,7 +143,9 @@ video_set_colors ( surface, start, ... ) CODE: SDL_Color *colors,*temp; int i, length; - if ( items < 3 ) { RETVAL = 0; goto all_done; } + if ( items < 3 ) { RETVAL = 0;} + else + { length = items - 2; colors = (SDL_Color *)safemalloc(sizeof(SDL_Color)*(length+1)); for ( i = 0; i < length ; i++ ) { @@ -154,9 +156,36 @@ video_set_colors ( surface, start, ... ) } RETVAL = SDL_SetColors(surface, colors, start, length ); safefree(colors); + } - all_done: OUTPUT: RETVAL +int +video_set_palette ( surface, flags, start, ... ) + SDL_Surface *surface + int flags + int start + + CODE: + SDL_Color *colors,*temp; + int i, length; + if ( items < 4 ) { + RETVAL = 0; + } + else + { + length = items - 3; + colors = (SDL_Color *)safemalloc(sizeof(SDL_Color)*(length+1)); + for ( i = 0; i < length ; i++ ){ + temp = (SDL_Color *)SvIV(ST(i+3)); + colors[i].r = temp->r; + colors[i].g = temp->g; + colors[i].b = temp->b; + } + RETVAL = SDL_SetPalette(surface, flags, colors, start, length ); + safefree(colors); + } + OUTPUT: + RETVAL diff --git a/t/core_video.t b/t/core_video.t index 6379dfd..4c4e61d 100644 --- a/t/core_video.t +++ b/t/core_video.t @@ -9,7 +9,7 @@ use Data::Dumper; use Test::More; use SDL::Rect; -plan ( tests => 14 ); +plan ( tests => 17 ); use_ok( 'SDL::Video' ); @@ -25,7 +25,9 @@ my @done = update_rects flip set_colors + set_palette /; + can_ok ('SDL::Video', @done); #testing get_video_surface @@ -69,6 +71,12 @@ is( ($value == 0) || ($value == -1), 1, '[flip] returns 0 or -1' ); $value = SDL::Video::set_colors($display, 0, SDL::Color->new(0,0,0)); is( $value , 0, '[set_colors] returns 0 trying to write to 32 bit display' ); +$value = SDL::Video::set_palette($display, 0x01|0x02, 0); + +is( $value , 0, '[set_palette] returns 0 trying to write to 32 bit surface' ); + + + my @b_w_colors; for(my $i=0;$i<256;$i++){ @@ -83,14 +91,23 @@ if(!$hwdisplay){ $value = SDL::Video::set_colors($hwdisplay, 0); is( $value , 0, '[set_colors] returns 0 trying to send empty colors to 8 bit surface' ); +$value = SDL::Video::set_palette($hwdisplay, 0x01|0x02, 0); + +is( $value , 0, '[set_palette] returns 0 trying to send empty colors to 8 bit surface' ); $value = SDL::Video::set_colors($hwdisplay, 0, @b_w_colors); is( $value , 1, '[set_colors] returns '.$value ); +$value = SDL::Video::set_palette($hwdisplay, 0x01|0x02, 0, @b_w_colors ); + +is( $value , 1, '[set_palette] returns 1' ); + + + + my @left = qw/ - set_palette set_gamma get_gamma_ramp set_gmmma_ramp diff --git a/tools/nopaste.pl b/tools/nopaste.pl index 1c618bd..da8920e 100644 --- a/tools/nopaste.pl +++ b/tools/nopaste.pl @@ -10,7 +10,7 @@ use warnings; use WWW::Mechanize; use Getopt::Std; use Pod::Usage; - +use Data::Dumper; my $server = 'scsys.co.uk'; my $url = "http://$server:8001/paste"; @@ -37,10 +37,7 @@ $mech->get( $url ); $mech->submit_form( form_name => 'pasteForm', fields => { - (defined $opt->{c} ? - (channel => $opt->{c}) : - (channel => '#sdl' ) - ), + channel => $opt->{c}, nick => $opt->{n}, summary => $opt->{t}, paste => $text,