But the surface is not an SDLx::Surface ... maybe we should change that at
least on the text surface. I think that once you decide to rewrite on the
text surface it should do that.

How about we add $text->clear(); ?

On Fri, Dec 23, 2011 at 2:37 PM, Jeffrey Palmer
<jeffrey.t.pal...@gmail.com>wrote:

> 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