Hi, do you know the pixel format of the data you have? Do you get scanlines that you wanna pass to an SDL::Surface? Or do you get just the whole image?
May I invite you to irc? Would be much easier than mails... #sdl at irc.perl.org. Cheers, FROGGS Am 03.04.2012 22:12, schrieb agraham: > Hi Guys, > > I am a complete Perl-SDL "newbie" and have spent a few days reading > the docs on CPAN perl-SDL. I'm using version 2.536. > > I would like to create a surface from my own RGBA data and there seems > to be no way to do that unless you do it a pixel at a time :( > > I am trying to hack Net::VNC so that it uses SDL:: instead of > Image::Imlib2, so for example: > > The "raw encoding" from Net::VNC does this: > > $socket->read( my $data, $w * $h * 4 ); > my $raw = Image::Imlib2->new_using_data( $w, $h, $data ); > $raw->has_alpha(0); > $image->blend( $raw, 0, 0, 0, $w, $h, $x, $y, $w, $h ); > > I need to replicate the above in perl-SDL > > There is an map_RGBA function which maps 1 pixel, but not a bunch of > them, so you can do: > > $dpixel=SDL::Video::map_RGBA( $display->format, 0, 0, 255); > > but not this: > > $dpixel=SDL::Video::map_RGBA( $display->format, $data); > SDL::Video::fill_rect( $surface, $srect, $dpixel ); > > I tried using SDL::RWOps as follows: > > $rw = SDL::RWOps->new_const_mem( $data); > > but I don't know how to get $rw into the surface! > > and > $surface = SDL::Image::load( $rw ); > does not work. > > Any help would be much appreciated. > > Albert