Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/draw/surface.c

    rba733e83 rbeb5683  
    143143}
    144144
    145 void surface_add_damaged_region(surface_t *surface, surface_coord_t x, surface_coord_t y,
    146     surface_coord_t width, surface_coord_t height)
    147 {
    148         surface->dirty_x_lo = surface->dirty_x_lo > x ? x : surface->dirty_x_lo;
    149         surface->dirty_y_lo = surface->dirty_y_lo > y ? y : surface->dirty_y_lo;
    150 
    151         surface_coord_t x_hi = x + width - 1;
    152         surface_coord_t y_hi = y + height - 1;
    153 
    154         surface->dirty_x_hi = surface->dirty_x_hi < x_hi ? x_hi : surface->dirty_x_hi;
    155         surface->dirty_y_hi = surface->dirty_y_hi < y_hi ? y_hi : surface->dirty_y_hi;
    156 }
    157 
    158145void surface_reset_damaged_region(surface_t *surface)
    159146{
     
    171158        surface->dirty_y_hi = surface->dirty_y_hi < y ? y : surface->dirty_y_hi;
    172159
    173         pixelmap_put_pixel(&surface->pixmap, x, y, pixel);
     160        if (x < surface->pixmap.width && y < surface->pixmap.height) {
     161                pixelmap_put_pixel(&surface->pixmap, x, y, pixel);
     162        }
    174163}
    175164
    176165pixel_t surface_get_pixel(surface_t *surface, surface_coord_t x, surface_coord_t y)
    177166{
    178         return pixelmap_get_pixel(&surface->pixmap, x, y);
     167        if (x < surface->pixmap.width && y < surface->pixmap.height) {
     168                return pixelmap_get_pixel(&surface->pixmap, x, y);
     169        } else {
     170                return 0;
     171        }
    179172}
    180173
Note: See TracChangeset for help on using the changeset viewer.