Commit | Line | Data |
bfd90409 |
1 | #!/usr/bin/env perl |
2 | # |
3 | # testgraphictool.pl |
4 | # |
5 | # Copyright (C) 2005 David J. Goehrig <dgoehrig@cpan.org> |
6 | # |
7 | # ------------------------------------------------------------------------------ |
8 | # |
9 | # This library is free software; you can redistribute it and/or |
10 | # modify it under the terms of the GNU Lesser General Public |
11 | # License as published by the Free Software Foundation; either |
12 | # version 2.1 of the License, or (at your option) any later version. |
13 | # |
14 | # This library is distributed in the hope that it will be useful, |
15 | # but WITHOUT ANY WARRANTY; without even the implied warranty of |
16 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
17 | # Lesser General Public License for more details. |
18 | # |
19 | # You should have received a copy of the GNU Lesser General Public |
20 | # License along with this library; if not, write to the Free Software |
21 | # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
22 | # |
23 | # ------------------------------------------------------------------------------ |
24 | # |
25 | # Please feel free to send questions, suggestions or improvements to: |
26 | # |
27 | # David J. Goehrig |
28 | # dgoehrig@cpan.org |
29 | # |
30 | |
31 | use strict; |
32 | use warnings; |
33 | use MIME::Base64 qw(decode_base64); |
34 | use SDL; |
35 | use SDL::Surface; |
36 | use SDL::App; |
37 | use SDL::Tool::Graphic; |
38 | |
39 | my $app = new SDL::App(-title => "Graphic Tool Test", |
40 | -width => 640, |
41 | -height => 480, |
42 | -depth => 16, |
43 | -fullscreen => 0); |
44 | my $app_rect = new SDL::Rect( -x=>0, |
45 | -y=>0, |
46 | -width=>$app->width, |
47 | -height=>$app->height); |
48 | |
49 | write_spiral(); |
50 | my $sprite = new SDL::Surface(-name => "/tmp/spiral.png"); |
51 | $sprite->display_format(); |
52 | |
53 | #Test Zoom |
54 | my $graphicTool = new SDL::Tool::Graphic(); |
55 | $graphicTool->zoom($sprite, .5, .5, 1); |
56 | |
57 | my $sprite_rect = new SDL::Rect( -x=>0, |
58 | -y=>0, |
59 | -width=>$sprite->width, |
60 | -height=>$sprite->height); |
61 | $sprite->blit($sprite_rect, $app, $sprite_rect); |
62 | $app->flip(); |
63 | sleep 4; |
64 | $app->fill($app_rect, $SDL::Color::black); |
65 | |
66 | |
67 | #Test Rotate |
68 | $graphicTool->rotoZoom($sprite, 90, 1, 1); |
69 | |
70 | $sprite_rect = new SDL::Rect( -x=>0, |
71 | -y=>0, |
72 | -width=>$sprite->width, |
73 | -height=>$sprite->height); |
74 | $sprite->blit($sprite_rect, $app, $sprite_rect); |
75 | $app->flip(); |
76 | sleep 4; |
77 | |
78 | +print "GrayScaling\n"; |
79 | +$app->fill($app_rect, $SDL::Color::black); |
80 | |
81 | #Test GrayScale |
82 | $graphicTool->grayScale($sprite); |
83 | |
84 | $sprite->blit($sprite_rect, $app, $sprite_rect); |
85 | $app->flip(); |
86 | sleep 4; |
87 | |
88 | |
89 | |
90 | sub write_spiral { |
91 | my $png = decode_base64 <<EOF; |
92 | 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 |
212 | EOF |
213 | open FP, "> /tmp/spiral.png"; |
214 | print FP $png; |
215 | close FP; |
216 | } |