Re: SDLx::Text - replace old text?
[email protected] (Jeffrey Palmer) Fri, 23 Dec 2011 14:37:28 -0500
| Newsgroups | perl.sdl.devel |
|---|---|
| Message-ID | <CAJHFk52BTcG2nwo-4gTWTahKVziU1Gc87o6rg1hot7hRazJaFQ@mail.gmail.com> |
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 <[email protected]> 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 >