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 > > >