Hi Alex,

This is actually the correct behavior. You need to redraw the
background before writing the new text.  The easiest way to do that is
with:
  $app->draw_rect( undef, 0x000000FF );

The undef there indicates that the entire surface should be used as
the rectangle.  See draw_rect in SDLx::Surface for more information.

Cheers,
Jeff

On Wed, Dec 21, 2011 at 6:17 PM, Alex <cap...@gmx.de> wrote:
> Dear all!
>
> I want to replace an SDLx::Text by some other text.
> Do I have to redraw the whole surface that was covered by the old text in
> order to "replace" it by a new text?
>
> The following script demonstrates my problem:
>
> [code]
> #!perl
>
> use strict;
> use warnings;
> use SDL;
>
> use SDL;
> use SDLx::App;
> use SDLx::Text;
>
> my $app = SDLx::App->new(
>        exit_on_quit => 1,
> );
>
> my $message = SDLx::Text->new;
>
> $message->write_to( $app, "Hello, World!" );
> $app->update;
>
> $message->text('Susan');
> $message->write_to( $app );
> $app->update();
>
> $app->run();
> [/code]
>
> First, the text "Hello World!" is drawn to the surface. Then, I alter the
> text and draw it again. But the old hello world text still remains on the
> surface.
> I don't want that. I want "Hello World!" to disappear and Susan so show up.
>
> How do I do that?
>
> Best regards,
> Alex
>

Reply via email to