X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fcore_video.t;h=f9a132efd20e43a0872a075a1f387a4d38f737e7;hb=7b7e80171a75879620d43efd52a2cf1ab3810f2b;hp=126974904e2a040313aa7d2e94837a9cb8e96395;hpb=2739f9406d056b50e991fd6558d548f95ac095a1;p=sdlgit%2FSDL_perl.git diff --git a/t/core_video.t b/t/core_video.t index 1269749..f9a132e 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 => 13 ); +plan ( tests => 19 ); use_ok( 'SDL::Video' ); @@ -25,13 +25,21 @@ my @done = update_rects flip set_colors + set_palette + set_gamma + set_gamma_ramp /; + can_ok ('SDL::Video', @done); #testing get_video_surface SDL::Init(SDL_INIT_VIDEO); -my $display = SDL::SetVideoMode(640,480,32, SDL_SWSURFACE ); +my $display = SDL::Video::set_video_mode(640,480,32, SDL_SWSURFACE ); + +if(!$display){ + plan skip_all => 'Couldn\'t set video mode: '. SDL::GetError(); + } #diag('Testing SDL::Video'); @@ -62,20 +70,50 @@ SDL::Video::update_rects($display, SDL::Rect->new(0, 10, 20, 20)); my $value = SDL::Video::flip($display); is( ($value == 0) || ($value == -1), 1, '[flip] returns 0 or -1' ); -$value = SDL::Video::set_colors($display, 0); -is( $value , 0, '[set_colors] returns 0' ); +$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, SDL_LOGPAL|SDL_PHYSPAL, 0); + +is( $value , 0, '[set_palette] returns 0 trying to write to 32 bit surface' ); + +my $zero = [0,0,0,0]; +SDL::Video::set_gamma_ramp($zero, $zero, $zero); pass '[set_gamma_ramp] ran'; + +SDL::Video::set_gamma( 1.0, 1.0, 1.0 ); pass '[set_gamma] ran '; + +my @b_w_colors; + +for(my $i=0;$i<256;$i++){ + $b_w_colors[$i] = SDL::Color->new($i,$i,$i); + } +my $hwdisplay = SDL::Video::set_video_mode(640,480,8, SDL_HWSURFACE ); + +if(!$hwdisplay){ + plan skip_all => 'Couldn\'t set video mode: '. SDL::GetError(); + } + +$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, SDL_LOGPAL|SDL_PHYSPAL, 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, SDL_LOGPAL|SDL_PHYSPAL, 0, @b_w_colors ); + +is( $value , 1, '[set_palette] returns 1' ); + -$value = SDL::Video::set_colors($display, SDL::Color->new(255,0,0) ); -is( ($value == 0) || ($value == 1) , 1, '[set_colors] returns 1 or 0' ); -#TODO: check actual color in palette with get_palette my @left = qw/ - set_palette - set_gamma get_gamma_ramp - set_gmmma_ramp map_RGB map_RGBA get_RGB @@ -115,4 +153,4 @@ TODO: diag $why; -pass 'Are we still alive? Checkign for segfaults'; +pass 'Are we still alive? Checking for segfaults';