X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=t%2Fcore_video.t;h=6379dfdab8259abb7edd67b52cf6c1b6a5b96d67;hb=8be6ce429731fe42da700bacd35e5184e789df95;hp=4f03b98b61faeccd3ea98bd8b3c91a268d2d6452;hpb=19f3ee7bb3a37eb86e32da3ac9def56b729ef979;p=sdlgit%2FSDL_perl.git diff --git a/t/core_video.t b/t/core_video.t index 4f03b98..6379dfd 100644 --- a/t/core_video.t +++ b/t/core_video.t @@ -1,6 +1,7 @@ #!/usr/bin/perl -w use strict; use SDL; +use SDL::Color; use SDL::Surface; use SDL::Config; use Devel::Peek; @@ -8,11 +9,12 @@ use Data::Dumper; use Test::More; use SDL::Rect; -plan ( tests => 10 ); +plan ( tests => 14 ); use_ok( 'SDL::Video' ); - -can_ok ('SDL::Video', qw/ + +my @done = + qw/ get_video_surface get_video_info video_driver_name @@ -22,12 +24,18 @@ can_ok ('SDL::Video', qw/ update_rect update_rects flip - /); + set_colors + /; +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'); @@ -48,7 +56,6 @@ cmp_ok(SDL::Video::video_mode_ok( 100, 100, 16, SDL_SWSURFACE), '>=', 0, "[video isa_ok(SDL::Video::set_video_mode( 100, 100 ,16, SDL_SWSURFACE), 'SDL::Surface', '[set_video_more] Checking if we get a surface ref back'); - #TODO: Write to surface and check inf pixel in that area got updated. SDL::Video::update_rect($display, 0, 0, 0, 0); @@ -56,21 +63,33 @@ SDL::Video::update_rect($display, 0, 0, 0, 0); #TODO: Write to surface and check inf pixel in that area got updated. SDL::Video::update_rects($display, SDL::Rect->new(0, 10, 20, 20)); -is( (SDL::Video::flip($display) == 0 || -1), 1, '[flip] returns 0 or -1' ); +my $value = SDL::Video::flip($display); +is( ($value == 0) || ($value == -1), 1, '[flip] returns 0 or -1' ); -pass "Are we still alive?"; +$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' ); -=skip - get_video_surface - get_video_info - video_driver_name - list_modes - set_video_mode - video_mode_ok - update_rect - update_rects - flip - set_colors +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_colors($hwdisplay, 0, @b_w_colors); +is( $value , 1, '[set_colors] returns '.$value ); + + +my @left = qw/ set_palette set_gamma get_gamma_ramp @@ -102,5 +121,16 @@ pass "Are we still alive?"; lock_YUV_overlay unlock_YUV_overlay display_YUV_overlay - /); + /; + +my $why = '[Percentage Completion] '.int( 100 * $#done / ($#done + $#left) ) ."\% implementation. $#done / ".($#done+$#left); + +TODO: +{ + local $TODO = $why; + pass "\nThe following functions:\n".join ",", @left; +} + diag $why; + +pass 'Are we still alive? Checking for segfaults';