I just realized this was discussed on Github, so you can probably
ignore what I wrote.

Regarding the surface, SDLx::App is a SDLx::Surface.  That's what I
was referring to.  I don't think it's safe to make any assumptions
about what's behind the text, so it should be the module user's
responsibility to clear whatever is behind it.

On Fri, Dec 23, 2011 at 2:39 PM, Kartik Thakore
<thakore.kar...@gmail.com> wrote:
> 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
>> >
>
>



-- 
Jeffrey T. Palmer

Reply via email to