Permalink
Browse files

In Video.xs: removed use of goto. Added set_palette. In core_video.t …

…tested set_palette
  • Loading branch information...
1 parent d2b786f commit 69341787b9240e7450bc15ed0466218d37d8de20 @kthakore kthakore committed Oct 27, 2009
Showing with 52 additions and 9 deletions.
  1. +31 −2 src/Core/Video.xs
  2. +19 −2 t/core_video.t
  3. +2 −5 tools/nopaste.pl
View
@@ -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
View
@@ -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
View
@@ -10,7 +10,7 @@
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->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,

0 comments on commit 6934178

Please sign in to comment.