Вот такой код:
#!/usr/bin/perl
use strict;
use warnings;
use SDL;
use SDL::App;
use SDL::Event;
use SDL::Color;
our $WIN_W = 640;
our $WIN_H = 480;
our $app = SDL::App->new(
-height=>$WIN_H,
-width=>$WIN_W,
-depth=>32,
-title=>'hw'
);
sub interface_test {
my $color = SDL::Color -> new (
-r=>0x00,
-g=>0x00,
-b=>0x00
);
my $bgcolor = SDL::Color -> new(
-r=>0xff,
-g=>0xff,
-b=>0xff
);
my $rect = SDL::Rect -> new(
-h=>20,
-w=>20,
-l=>($WIN_W/2),
-t=>($WIN_H/2)
);
$app -> fill(0,$bgcolor);
$app -> fill($rect,$color);
$app -> flip;
my $event = SDL::Event -> new();
while (1) {
while ( $event->poll() ) {
exit(0) if ( $event->type() == SDL_QUIT )
}
}
}
interface_test();
По-идее, скрипт должен рисовать чёрный прямоугольник посередине белого окна. Вместо этого отрисовывается прямоугольник в левом верхнем углу экрана. При добавлении строки
print $WIN_W;