Fixed the pod path in archive
[sdlgit/SDL_perl.git] / test / testfonttool.pl
1 #!/usr/bin/env perl
2
3 use strict;
4 use SDL;
5 use SDL::App;
6 use SDL::Event;
7 use SDL::Tool::Font;
8 use SDL::Color;
9
10 my (%options,$app,$mode);
11
12 die "usage: $0 [-hw] [-fullscreen] [-width 640] [-height 480] [-bpp 24]\n"
13         if ( SDL::in ($ARGV[0], qw/ -h -? --help/ ));
14
15 chdir 'test' if -d 'test';
16 die "$0 must be run in the SDL_perl/test/ directory!"
17         unless (-d 'data');
18
19 for ( 0 .. @ARGV-1 )
20 {
21         $options{$ARGV[$_]} = $ARGV[$_ + 1] || 1;
22 }
23
24 $options{-flags} = SDL_SWSURFACE;
25 $options{-flags} |= SDL_HWPALETTE if ( $options{-hw} );
26 $options{-flags} |= SDL_FULLSCREEN if ( $options{-fullscreen} );
27
28 $options{-title} = $0;
29
30 $options{-width}  ||= 800;
31 $options{-height} ||= 600;
32 $options{-depth} ||= $options{-bpp} || 24;
33
34 $app = new SDL::App  %options;
35
36 my %ttfonts = (
37         'aircut3.ttf' => 0,
38         'electrohar.ttf' => 0,
39 );
40
41 my %sfonts = (
42         '24P_Arial_NeonYellow.png' => 0,
43         '24P_Copperplate_Blue.png' => 0,
44 );
45
46 my @fonts;
47
48 for ( reverse keys %ttfonts ) {
49         for $mode ( qw/ -normal -bold -italic -underline / ) {
50                 if (-e "data/$_") {
51                         print STDERR "Loading $_\n";
52                         $ttfonts{"$_$mode"} = new SDL::Tool::Font 
53                                                 $mode => 1,
54                                                 -ttfont => "data/$_", 
55                                                 -size => 20, 
56                                                 -fg => $SDL::Color::black,
57                                                 -bg => $SDL::Color::black;
58                         push @fonts,  $ttfonts{"$_$mode"};
59                 }
60         }
61 }
62
63 %ttfonts = reverse %ttfonts;
64
65 for ( reverse keys %sfonts) {
66         if (-e "data/$_") {
67                 print STDERR "Loading $_\n";
68                 $sfonts{$_} = new SDL::Tool::Font -sfont => "data/$_";
69                 push @fonts,  $sfonts{$_};
70         }
71 }
72
73 %sfonts = reverse %sfonts;
74
75 sub DrawFonts {
76         $app->fill(0,$SDL::Color::white);
77         my ($x,$y) = @_;
78         for my $font ( @fonts) {
79                 $font->print($app,$x,$y,"SDLperl font test. ",
80                         "This is " . ($ttfonts{$font} || $sfonts{$font}));
81                 $y += 40;
82         }
83         $app->flip();
84 }
85
86 DrawFonts(10,10);
87
88 $app->loop( {
89         SDL_KEYDOWN() => sub { 
90                 my ($event) = @_;
91                 $app->warp($options{-width}/2,$options{-height}/2)  if ($event->key_sym() == SDLK_SPACE);
92                 $app->fullscreen() if ($event->key_sym() == SDLK_f);
93                 exit(0) if ($event->key_sym() == SDLK_ESCAPE);  
94         },
95         SDL_QUIT() => sub { exit(0); }
96 } );
97
98
99
100
101