Progress toward sprite flipping
This commit is contained in:
parent
61fb64c10a
commit
d03c6d2093
|
|
@ -90,10 +90,8 @@ sub ShowSprite {
|
||||||
} elsif($name eq 'max_loops') {
|
} elsif($name eq 'max_loops') {
|
||||||
$a->max_loops($val);
|
$a->max_loops($val);
|
||||||
} elsif($o eq 'flip') {
|
} elsif($o eq 'flip') {
|
||||||
# FIXME - This doesn't work
|
|
||||||
my $s=$a->surface();
|
my $s=$a->surface();
|
||||||
$s->flip();
|
$a->surface( FlipSurface($s) );
|
||||||
$a->surface($s);
|
|
||||||
} else {
|
} else {
|
||||||
LogData(WARN, "Unknown option in ShowSprite '$o' - '$name'='$val'");
|
LogData(WARN, "Unknown option in ShowSprite '$o' - '$name'='$val'");
|
||||||
}
|
}
|
||||||
|
|
@ -155,4 +153,32 @@ sub RenderSprites {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Fixme -- Still appears broken, but closer
|
||||||
|
sub FlipSurface {
|
||||||
|
my $src=shift(@_);
|
||||||
|
my $dst = SDLx::Surface->new( width => $src->width(),
|
||||||
|
height => $src->height(),
|
||||||
|
format => $src->format(),
|
||||||
|
flags => $src->flags(),
|
||||||
|
color => $src->get_pixel( 0, 0 ),
|
||||||
|
);
|
||||||
|
my $w = $src->width();
|
||||||
|
|
||||||
|
for(my $y = 0; $y < $src->height(); $y++) {
|
||||||
|
for(my $x = 0; $x < $w; $x++) {
|
||||||
|
my $pixel = $src->get_pixel( $y, $x );
|
||||||
|
$dst->set_pixel($y, $w-($x+1), $pixel);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return $dst;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
|
||||||
|
|
@ -216,13 +216,13 @@ sub EvalString {
|
||||||
#LogData(DEBUG, "Inserting space before last character");
|
#LogData(DEBUG, "Inserting space before last character");
|
||||||
}
|
}
|
||||||
|
|
||||||
LogData(DEBUG, "Val is '$val'");
|
#LogData(DEBUG, "Val is '$val'");
|
||||||
|
|
||||||
# Tokenize
|
# Tokenize
|
||||||
my @tokens = split(/\s+/,$val);
|
my @tokens = split(/\s+/,$val);
|
||||||
|
|
||||||
|
|
||||||
for(my $i=0;$i<@tokens-0;$i++) { LogData(DEBUG, "Pass 1 Token [%i], '%s'", $i, $tokens[$i]); }
|
#for(my $i=0;$i<@tokens-0;$i++) { LogData(DEBUG, "Pass 1 Token [%i], '%s'", $i, $tokens[$i]); }
|
||||||
|
|
||||||
for(my $i=0;$i<@tokens-0;$i++) {
|
for(my $i=0;$i<@tokens-0;$i++) {
|
||||||
my $t = $tokens[$i];
|
my $t = $tokens[$i];
|
||||||
|
|
@ -237,17 +237,17 @@ sub EvalString {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
for(my $i=0;$i<@tokens-0;$i++) { LogData(DEBUG, "Pass 2 Token [%i], '%s'", $i, $tokens[$i]); }
|
#for(my $i=0;$i<@tokens-0;$i++) { LogData(DEBUG, "Pass 2 Token [%i], '%s'", $i, $tokens[$i]); }
|
||||||
|
|
||||||
my $eval_str = '$eval_res = ' . join(' ', @tokens) . ';';
|
my $eval_str = '$eval_res = ' . join(' ', @tokens) . ';';
|
||||||
LogData(DEBUG, "About to eval '$eval_str'");
|
#LogData(DEBUG, "About to eval '$eval_str'");
|
||||||
my $eval_res;
|
my $eval_res;
|
||||||
eval $eval_str;
|
eval $eval_str;
|
||||||
if($@) {
|
if($@) {
|
||||||
LogData(ERROR, "Error in eval: $@");
|
LogData(ERROR, "Error in eval '$eval_str': $@");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
LogData(DEBUG, "Got result of '$eval_res'");
|
#LogData(DEBUG, "Got result of '$eval_res'");
|
||||||
return $eval_res;
|
return $eval_res;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue