SDL::Surface(3pm)
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: - o -width the width of the image in pixels
- o -height the height of the image in pixels
- o -depth the number of bits per pixel
- o -pitch the number of bytes per line
- o -Rmask an optional bitmask for red
- o -Gmask an optional bitmask for green
- o -Bmask an optional bitmask for green
- o -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:
- o SWSURFACE() a non-accelerated surface
- o HWSURFACE() a hardware accelerated surface
- o SRCCOLORKEY() a surface with a transperant color
- o 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