use strict;
use warnings;
use Test::More;
use SDL;
use SDL::Config;
use SDL::Video;
use SDL::Surface;
use SDLx::SFont;
use lib 't/lib';
use SDL::TestTool;
my $videodriver = $ENV{SDL_VIDEODRIVER};
$ENV{SDL_VIDEODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING};

my $audiodriver = $ENV{SDL_AUDIODRIVER};
$ENV{SDL_AUDIODRIVER} = 'dummy' unless $ENV{SDL_RELEASE_TESTING};

if ( !SDL::TestTool->init(SDL_INIT_VIDEO) ) {
	plan( skip_all => 'Failed to init video' );
} elsif ( !SDL::Config->has('SDL_image') ) {
	plan( skip_all => 'SDL_image support not compiled' );
}

can_ok( 'SDLx::SFont', qw( new ) );


#Make a surface
#Select a font
my $d = SDL::Surface->new( SDL_SWSURFACE, 100, 100, 32 );
my $font = SDLx::SFont->new( 'test/data/font.' . ( SDL::Config->has('png') ? 'png' : 'bmp' ) );

isa_ok( $font, 'SDL::Surface', '[new] makes surface' );

#print using $font

SDLx::SFont::print_text( $d, 10, 10, 'Huh' );

pass('[print_test] worked');

$font->use();

pass('[use] switch font worked');

SDLx::SFont::print_text( $d, 10, 10, 'Huh' );
pass('[use|printe_text] switch to font and print worked');

END {
	done_testing;

	#reset the old video driver
	if ($videodriver) {
		$ENV{SDL_VIDEODRIVER} = $videodriver;
	} else {
		delete $ENV{SDL_VIDEODRIVER};
	}

	if ($audiodriver) {
		$ENV{SDL_AUDIODRIVER} = $audiodriver;
	} else {
		delete $ENV{SDL_AUDIODRIVER};
	}
}
