Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

66 lines (53 sloc) 1.616 kb
#!/usr/bin/env perl
#
use SDL;
use SDLx::App;
use SDL::Event;
use vars qw/ $app /;
print STDERR <<USAGE;
Right click on any pixel to get its color values
Left click on any pixel to set its value to the last selected
USAGE
$app = SDLx::App->new( -width => 320, -height => 240, -depth => 8 );
my %colors = (
red => ( new SDL::Color-r => 255, -g => 0, -b => 0 ),
green => ( new SDL::Color-r => 0, -g => 255, -b => 0 ),
blue => ( new SDL::Color-r => 0, -g => 0, -b => 255 ),
yellow => ( new SDL::Color-r => 255, -g => 255, -b => 0 ),
purple => ( new SDL::Color-r => 255, -g => 0, -b => 255 ),
white => ( new SDL::Color-r => 255, -g => 255, -b => 255 )
);
$x = 0;
$y = 0;
$rect = SDL::Rect->new(
$x, $y, $app->width / scalar( keys %colors ),
$app->height()
);
print "Sorted colors:\n";
for ( sort keys %colors ) {
print "$_ " . join( ",", $colors{$_}->r(), $colors{$_}->g(), $colors{$_}->b() ) . "\n";
}
for ( sort keys %colors ) {
$rect->x($x);
$x += $rect->width();
$app->fill( $rect, $colors{$_} );
}
$app->sync();
$last = SDL::Color->new( -r => 128, -g => 128, -b => 128 );
$app->sync();
$app->loop(
{ SDL_QUIT() => sub { exit(0); },
SDL_KEYDOWN() => sub { $app->fullscreen(); },
SDL_MOUSEBUTTONDOWN() => sub {
my $e = shift;
if ( $e->button == 3 ) {
$last = $app->pixel( $e->button_x(), $e->button_y() );
print STDERR "X: ", $e->button_x(), " Y: ", $e->button_y(),
" R: ", $last->r(), " G: ", $last->g(),
" B: ", $last->b(), "\n";
} else {
$app->pixel( $e->button_x(), $e->button_y(), $last );
}
},
}
);
Jump to Line
Something went wrong with that request. Please try again.