SDL::Surface

Section: User Contributed Perl Documentation (3)
Updated: 2003-01-02
 

NAME

SDL::Surface - a SDL perl extension  

SYNOPSIS

  use SDL::Surface;
  $image = new SDL::Surface(-name=>"yomama.jpg");

 

DESCRIPTION

The "SDL::Surface" module encapsulates the SDL_Surface* structure, and many of its ancillatory functions. Not only is it a workhorse of the OO Layer, it is the base class for the "SDL::App" class.  

EXPORTS

        SDL_SWSURFACE           SDL_HWSURFACE
        SDL_ASYNCBLIT           SDL_ANYFORMAT
        SDL_HWPALETTE           SDL_DOUBLEBUF 
        SDL_FULLSCREEN          SDL_OPENGL 
        SDL_OPENGLBLIT          SDL_RESIZEABLE
        SDL_NOFRAME             SDL_SRCCOLORKEY
        SDL_RLEACCEL            SDL_SRCALPHA
        SDL_PREALLOC

 

METHODS

 

new (-name => 'foo.png')

The "SDL::Surface" class can be instantiated in a number of different ways. If support for the SDL_image library was included when SDL_perl was compiled, the easiest way to create a new surface is to use the "SDL::Surface::new" method with the "-name" option. This will load the image from the file and return an object encapsulating the SDL_Surface*.  

new (-from => $buffer, ... )

If the contents of the new Surface is already in memory, "SDL::Surface::new" may be called with the "-from" option to create an image from that section of memory. This method takes the following additional parameters:
*
-width         the width of the image in pixels
*
-height                the height of the image in pixels
*
-depth         the number of bits per pixel
*
-pitch         the number of bytes per line
*
-Rmask         an optional bitmask for red
*
-Gmask         an optional bitmask for green
*
-Bmask         an optional bitmask for green
*
-Amask         an optional bitmask for alpha
 

new ( -flags => SDL_SWSURFACE, ... )

Finally, "SDL::Suface::new" may be invoked with the "-flags" option, in a similar fashion to the "-from" directive. This invocation takes the same additional options as "-from" with the exception of "-pitch" which is ignored. This method returns a new, blank, SDL::Surface option with any of the following flags turned on:
*
SWSURFACE()    a non-accelerated surface
*
HWSURFACE()    a hardware accelerated surface
*
SRCCOLORKEY()  a surface with a transperant color      
*
SRCALPHA()     an alpha blended, translucent surface
 

flags ()

"SDL::Surface::flags" returns the flags with which the surface was initialized.  

palette ()

"SDL::Surface::palette" currently returns a SDL_Palette*, this may change in future revisions.  

bpp ()

"SDL::Surface::bpp" returns the bits per pixel of the surface  

bytes_per_pixel ()

"SDL::Surface::bytes_per_pixel" returns the bytes per pixel of the surface  

Rshift ()

"SDL::Surface::Rshift" returns the bit index of the red field for the surface's pixel format  

Gshift ()

"SDL::Surface::Gshift" returns the bit index of the green field for the surface's pixel format  

Bshift ()

"SDL::Surface::Bshift" returns the bit index of the blue field for the surface's pixel format  

Ashift ()

"SDL::Surface::Ashift" returns the bit index of the alpha field for the surface's pixel format  

Rmask ()

"SDL::Surface::Rmask" returns the bit mask for the red field for teh surface's pixel format  

Gmask ()

"SDL::Surface::Gmask" returns the bit mask for the green field for teh surface's pixel format  

Bmask ()

"SDL::Surface::Bmask" returns the bit mask for the blue field for teh surface's pixel format  

Amask ()

"SDL::Surface::Amask" returns the bit mask for the alpha field for teh surface's pixel format  

color_key ()

"SDL::Surface::color_key" returns the current color key for the image, which can be set with the "SDL::Surface::set_color_key" method. Before calling "SDL::Surface::color_key" on a image, you should fist call "SDL::Surface::display_format" to convert it to the same format as the display. Failure to do so will result in failure to apply the correct color_key.  

alpha ()

"SDL::Surface::alpha" returns the current alpha value for the image, which can be set with the "SDL::Surface::set_alpha" method.  

width ()

"SDL::Surface::width" returns the width in pixels of the surface  

height ()

"SDL::Surface::height" returns the height in pixels of the surface  

pitch ()

"SDL::Surface::pitch" returns the width of a surface's scanline in bytes  

pixels ()

"SDL::Surface::pixels" returns a Uint8* to the image's pixel data. This is not inherently useful within perl, though may be used to pass image data to user provided C functions.  

pixel (x,y,[color])

"SDL::Surface::pixel" will set the color value of the pixel at (x,y) to the given color if provided. "SDL::Surface::pixel" returns a SDL::Color object for the color value of the pixel at (x,y) after any possible modifications.  

fill (rect,color)

"SDL::Surface::fill" will fill the given SDL::Rect rectangle with the specified SDL::Color This function optionally takes a SDL_Rect* and a SDL_Color*  

lockp ()

"SDL::Surface::lockp" returns true if the surface must be locked  

lock ()

"SDL::Surface::lock" places a hardware lock if necessary, preventing access to the surface's memory  

unlock ()

"SDL::Surface::unlock" removes any hardware locks, enabling blits  

update ( rects...)

"SDL::Surface::update" takes one or more SDL::Rect's which determine which sections of the image are to be updated. This option is only useful on the appliaction surface.  

flip ()

"SDL::Surface::flip" updates the full surface, using a double buffer if available  

blit (srect,dest,drect)

"SDL::Surface::blit" blits the current surface onto the destination surface, according to the provided rectangles. If a rectangle is 0, then the full surface is used.  

set_colors (start,colors...)

"SDL::Surface::set_colors" updates the palette starting at index "start" with the supplied colors. The colors may either be SDL::Color objects or SDL_Color* from the low level C-style API.  

set_color_key (flag,pixel) or (flag,x,y)

"SDL::Surface::set_color_key" sets the blit flag, usually SDL_SRCCOLORKEY, to the specified SDL::Color object. Optional a SDL_Color* may be passed.  

set_alpha (flag,alpha)

"SDL::Surface::set_alpha" sets the opacity of the image for alpha blits. "alpha" takes a value from 0x00 to 0xff.  

display_format ()

"SDL::Surface::display_format" converts the surface to the same format as the current screen.  

rgb () SDL::Surface::rgb converts the surface to a 24 bit rgb format regardless of the initial format.

 

rgba () SDL::Surface::rgba converts the surface to a 32 bit rgba format regarless of the initial format.

 

print (x,y,text...)

"SDL::Surface::print" renders the text using the current font onto the image. This option is only supported for with SDL_image and SFont.  

save_bmp (filename)

"SDL::Surface::save_bmp" saves the surface to filename in Windows BMP format.  

video_info ()

"SDL::Surface::video_info" returns a hash describing the current state of the video hardware.  

AUTHOR

David J. Goehrig  

SEE ALSO

perl SDL::App SDL::Color SDL::Palette SDL::Rect


 

Index

NAME
SYNOPSIS
DESCRIPTION
EXPORTS
METHODS
new (-name => 'foo.png')
new (-from => $buffer, ... )
new ( -flags => SDL_SWSURFACE, ... )
flags ()
palette ()
bpp ()
bytes_per_pixel ()
Rshift ()
Gshift ()
Bshift ()
Ashift ()
Rmask ()
Gmask ()
Bmask ()
Amask ()
color_key ()
alpha ()
width ()
height ()
pitch ()
pixels ()
pixel (x,y,[color])
fill (rect,color)
lockp ()
lock ()
unlock ()
update ( rects...)
flip ()
blit (srect,dest,drect)
set_colors (start,colors...)
set_color_key (flag,pixel) or (flag,x,y)
set_alpha (flag,alpha)
display_format ()
rgb () SDL::Surface::rgb converts the surface to a 24 bit rgb format regardless of the initial format.
rgba () SDL::Surface::rgba converts the surface to a 32 bit rgba format regarless of the initial format.
print (x,y,text...)
save_bmp (filename)
video_info ()
AUTHOR
SEE ALSO
blog comments powered by Disqus