added pitch, get and set of pixels capability
[sdlgit/SDL_perl.git] / src / Surface.xs
index 761d880..a9df9b4 100644 (file)
@@ -117,6 +117,14 @@ surface_display ( surface )
                RETVAL
 
 Uint16
+surface_pitch( surface )
+       SDL_Surface *surface
+       CODE:
+               RETVAL = surface->pitch;
+       OUTPUT:
+               RETVAL
+
+Uint16
 surface_w ( surface )
        SDL_Surface *surface
        CODE:
@@ -132,6 +140,31 @@ surface_h ( surface )
        OUTPUT:
                RETVAL
 
+IV
+surface_get_pixels(surface)
+       SDL_Surface *surface
+       CODE:
+       RETVAL = PTR2IV(surface->pixels);
+       OUTPUT:
+       RETVAL
+
+void
+surface_set_pixels(surface, pixels)
+       SDL_Surface *surface
+
+       SV *pixels
+
+       PREINIT:
+         STRLEN len;
+         void *p;
+
+       CODE:
+         p = SvPV(pixels, len);
+         if (len > surface->pitch*surface->h)
+               len = surface->pitch*surface->h;
+         memcpy(surface->pixels, p, len);
+
+
 void
 surface_DESTROY(surface)
        SDL_Surface *surface