… | |
… | |
9 | our $VERSION = '0.1'; |
9 | our $VERSION = '0.1'; |
10 | |
10 | |
11 | use strict; |
11 | use strict; |
12 | |
12 | |
13 | use Gtk2; |
13 | use Gtk2; |
|
|
14 | use File::Temp; |
14 | |
15 | |
15 | use Crossfire; |
16 | use Crossfire; |
16 | |
17 | |
17 | sub init_tilecache($) { |
18 | sub init_tilecache($) { |
18 | my ($cacheprefix) = @_; |
19 | my ($cacheprefix) = @_; |
… | |
… | |
27 | my %cache; |
28 | my %cache; |
28 | |
29 | |
29 | my $idx = 0; |
30 | my $idx = 0; |
30 | |
31 | |
31 | for my $name (sort keys %$tile) { |
32 | for my $name (sort keys %$tile) { |
32 | my $file = "/tmp/map2png.$$~"; |
33 | my ($fh, $filename) = tempfile; |
33 | |
34 | |
34 | open my $fh, ">:raw", $file |
|
|
35 | or die "$file: $!"; |
|
|
36 | print $fh $tile->{$name}; |
35 | print $fh $tile->{$name}; |
37 | close $fh; |
36 | close $fh; |
38 | |
37 | |
39 | my $tile = $cache{$name} = {}; |
38 | my $tile = $cache{$name} = {}; |
40 | |
39 | |
41 | my $pb = $tile->{$name} = new_from_file Gtk2::Gdk::Pixbuf $file; |
40 | my $pb = $tile->{$name} = new_from_file Gtk2::Gdk::Pixbuf $filename; |
42 | |
41 | |
43 | unlink $file; |
42 | unlink $file; |
44 | |
43 | |
45 | $tile->{pb} = $pb; |
44 | $tile->{pb} = $pb; |
46 | $tile->{idx} = $idx; |
45 | $tile->{idx} = $idx; |