X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pages%2FSDL-Surface.html-inc;h=f8bb751f96fbc629cae96d115a645c1ce0cfc7e1;hb=c6a6575d8026dbc5743cc2056164661c6be15115;hp=537155e84a6142cd8d3b927417b186950be44409;hpb=46beffd8f76fe150d946bf61c780e61de2affbdf;p=sdlgit%2FSDL-Site.git diff --git a/pages/SDL-Surface.html-inc b/pages/SDL-Surface.html-inc index 537155e..f8bb751 100644 --- a/pages/SDL-Surface.html-inc +++ b/pages/SDL-Surface.html-inc @@ -2,20 +2,34 @@
SDL::Surface - Graphic surface structure. Access to SDL_Surface
.
SDL::Surface - Graphic surface structure.
Core, Video, Structure
- - - -The main surface (display) is provided by SDL::Video::set_video_mode. +
The main surface (display) is provided by SDL::Video::set_video_mode. use SDL; #provides flags & constants use SDL::Video; #provides access to set_video_mode use SDL::Surface; #provides access to SDL_Surface struct internals
@@ -59,6 +69,23 @@An SDL_Surface
defines a surfaceangular area of pixels.
The constants are not exported by default. You can export them into your namespace by doing:
+use SDL::Video ':flags'; + ++
or
+use SDL::Video ':all'; + ++
or access them directly:
+SDL::Video::SDL_SWSURFACE; + ++
Available constants: see flags
+ +Available flags for new() are exported by SDL::Video
+Use asynchronous blit if possible
+Stored in the system memory.
+Stored in video memory
+The format of the pixels stored in the surface. See SDL::PixelFormat
+my $format = $surface->format; + ++ +
my $pitch = $surface->pitch; + ++
SDL::Surface's scanline length in bytes
+ +To get the surface's clip_rect we the following
+my $clip_rect = SDL::Rect->new(0,0,0,0); + SDL::Video::get_clip_rect($surface, $clip_rect); + ++
To set the surface's clip_rect use the following
+my $clip_rect = SDL::Rect->new(2,23,23,542); + SDL::Video::set_clip_rect($surface, $clip_rect); + ++ +
Disclaimer: This can be very slow, it is suitable for creating surfaces one time and not for animations
+ +$surface->get_pixels( $offset ) + ++
Returns the current integer value at (surface->pixels)[offset]
+ +$surface->set_pixels( $offset, $value ); + ++
Sets the current integer to $value at (surface->pixels)[offset]
+ +sub putpixel + { + my($x, $y, $color) = @_; + my $lineoffset = $y * ($screen->pitch / $depth_in_bytes); + $screen->set_pixels( $lineoffset+ $x, $color); + } + ++
Note: $depth_in_bytes for 32 is 4, 16 is 2, 8 is 1;
+See also examples/sols/ch02.pl
+ +$surface->get_pixels_ptr(); + ++
Returns the C ptr to this surfaces's pixels
+ + + + + + + + +