git.shiar.nl
/
perl
/
schtarr.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(from parent 1:
2afdd90
)
Data::StarCraft::Tileset->tileavg optimization
author
Shiar
<shiar@shiar.org>
Sat, 19 Jul 2008 20:39:36 +0000
(22:39 +0200)
committer
Shiar
<shiar@shiar.org>
Sat, 19 Jul 2008 20:39:36 +0000
(22:39 +0200)
Split out summation of each color channel, similar to col().
This is quite significant (can easily save over a second to run for all
tiles in a map).
Data-StarCraft/lib/Data/StarCraft/Tileset.pm
patch
|
blob
|
history
diff --git
a/Data-StarCraft/lib/Data/StarCraft/Tileset.pm
b/Data-StarCraft/lib/Data/StarCraft/Tileset.pm
index 891c12b93c5ae96f48792f06ae6b27ea17f81018..f1fcd3e2ce0182c404b220b594dcdb49cefe63a4 100644
(file)
--- a/
Data-StarCraft/lib/Data/StarCraft/Tileset.pm
+++ b/
Data-StarCraft/lib/Data/StarCraft/Tileset.pm
@@
-169,7
+169,9
@@
sub tileavg {
$info->{walk} = sum(@{ $tile->{subtype} }) >> 4;
my @rgb;
for my $subcol (@{ $tile->{subcol} }) {
- $rgb[$_] += $subcol->[$_] for 0 .. 2;
+ $rgb[0] += $subcol->[0];
+ $rgb[1] += $subcol->[1]; # seperate for speed
+ $rgb[2] += $subcol->[2];
}
$info->{col} = [ map {$_ >> 4} @rgb ];
return $info;