X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=pages%2FSDL-Surface.html-inc;h=c8a6c49c31b61c2db5066ea0df27f9b0c473a2a0;hb=55bbf7a209993f4172fd7e6555dda0947b844089;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..c8a6c49 100644 --- a/pages/SDL-Surface.html-inc +++ b/pages/SDL-Surface.html-inc @@ -2,20 +2,33 @@
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
@@ -85,8 +94,71 @@Allow any pixel-format *
+Use asynchronous blit if possible
+Double buffered *
+Use hardware acceleration blit
+Have an exclusive palette
+Stored in video memory
+Full screen surface *
+Have an OpenGL context *
+Support OpenGL blitting *. NOTE: This option is kept for compatibility only, and is not recommended for new code.
+Resizable surface *
+Accelerated colorkey blitting with RLE
+Use alpha blending blit
+Use colorkey blitting
+Stored in the system memory. SDL_SWSURFACE is not actually a flag (it is defined as 0). A lack of SDL_HWSURFACE implies SDL_SWSURFACE
+Use preallocated 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
+ + + + + + + + +