… | |
… | |
147 | # possibly enlarge |
147 | # possibly enlarge |
148 | if (0 > aio_stat "$stem.64x64.png") { |
148 | if (0 > aio_stat "$stem.64x64.png") { |
149 | my $other = "$stem.64x64.png~"; |
149 | my $other = "$stem.64x64.png~"; |
150 | |
150 | |
151 | if (0 > aio_lstat $other or (-M _) > (-M $path)) { |
151 | if (0 > aio_lstat $other or (-M _) > (-M $path)) { |
152 | warn "rescale $other\n";#d# |
|
|
153 | my $wrap = 0; # for the time being |
152 | my $wrap = 0; # for the time being |
154 | fork_sub { |
153 | fork_sub { |
155 | system "convert png:\Q$path\E -depth 8 rgba:-" |
154 | system "convert png:\Q$path\E -depth 8 rgba:-" |
156 | . "| $exec_prefix/bin/cfhq2xa $w $h $wrap" |
155 | . "| $exec_prefix/bin/cfhq2xa $w $h $wrap" |
157 | . "| convert -depth 8 -size ".($w * 2)."x".($h * 2)." rgba:- $QUANTIZE -quality 00 png32:\Q$other\E~" |
156 | . "| convert -depth 8 -size ".($w * 2)."x".($h * 2)." rgba:- $QUANTIZE -quality 00 png32:\Q$other\E~" |
… | |
… | |
183 | } |
182 | } |
184 | } |
183 | } |
185 | |
184 | |
186 | (my $face = $stem) =~ s/^.*\///; |
185 | (my $face = $stem) =~ s/^.*\///; |
187 | |
186 | |
|
|
187 | # split all bigfaces, but avoid smoothfaces (*_S) |
188 | if (($w > $T || $h > $T) && $face !~ /_S\./) { |
188 | if (($w > $T || $h > $T) && $face !~ /_S\./) { |
189 | # split |
189 | # split |
190 | my @tile; |
190 | my @tile; |
191 | for my $x (0 .. (int $w / $T) - 1) { |
191 | for my $x (0 .. (int $w / $T) - 1) { |
192 | for my $y (0 .. (int $h / $T) - 1) { |
192 | for my $y (0 .. (int $h / $T) - 1) { |
… | |
… | |
307 | $info->{visibility} = $visibility if defined $visibility; |
307 | $info->{visibility} = $visibility if defined $visibility; |
308 | $info->{magicmap} = $magicmap if defined $magicmap; |
308 | $info->{magicmap} = $magicmap if defined $magicmap; |
309 | } |
309 | } |
310 | |
310 | |
311 | if (my $smooth = delete $o->{smoothface}) { |
311 | if (my $smooth = delete $o->{smoothface}) { |
312 | my ($face, $smooth) = split /\s+/, $smooth; |
312 | my %kv =split /\s+/, $smooth; |
313 | # skip empty_S.x11, it seems to server no purpose whatsoever |
313 | my $level = $o->{smoothlevel}; #TODO: delete from $o if !gcfclient-support |
314 | # but increases bandwidth demands and worse. |
314 | while (my ($face, $smooth) = each %kv) { |
315 | unless ($smooth eq "empty_S.x11") { |
|
|
316 | $FACEINFO{$face}{smooth} = $smooth; |
315 | $FACEINFO{$face}{smooth} = $smooth; |
|
|
316 | $FACEINFO{$face}{smoothlevel} = $level; |
317 | } |
317 | } |
318 | } |
318 | } |
319 | } |
319 | } |
320 | } |
320 | } |
321 | } |
321 | } |