Ignore:
Timestamp:
May 21, 2009, 10:55:13 PM (11 years ago)
Author:
Sam Hocevar
Message:

Change the dirty rectangle API once again so that calling applications get
a more natural (x,y,w,h) 4-tuple to handle.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/caca/driver/ncurses.c

    r3489 r3494  
    348348    int x, y, i;
    349349
    350     for(i = 0; i < caca_get_dirty_rectangle_count(dp->cv); i++)
     350    for(i = 0; i < caca_get_dirty_rect_count(dp->cv); i++)
    351351    {
    352352        uint32_t const *cvchars, *cvattrs;
    353         int xmin, ymin, xmax, ymax;
    354 
    355         caca_get_dirty_rectangle(dp->cv, i, &xmin, &ymin, &xmax, &ymax);
     353        int dx, dy, dw, dh;
     354
     355        caca_get_dirty_rect(dp->cv, i, &dx, &dy, &dw, &dh);
    356356
    357357        cvchars = (uint32_t const *)caca_get_canvas_chars(dp->cv)
    358                     + xmin + ymin * dp->cv->width;
     358                    + dx + dy * dp->cv->width;
    359359        cvattrs = (uint32_t const *)caca_get_canvas_attrs(dp->cv)
    360                     + xmin + ymin * dp->cv->width;
    361 
    362         for(y = ymin; y <= ymax; y++)
     360                    + dx + dy * dp->cv->width;
     361
     362        for(y = dy; y < dy + dh; y++)
    363363        {
    364             move(y, xmin);
    365             for(x = xmin; x <= xmax; x++)
     364            move(y, dx);
     365            for(x = dx; x < dx + dw; x++)
    366366            {
    367367                attrset(dp->drv.p->attr[caca_attr_to_ansi(*cvattrs++)]);
     
    369369            }
    370370
    371             cvchars += dp->cv->width - (xmax - xmin) - 1;
    372             cvattrs += dp->cv->width - (xmax - xmin) - 1;
     371            cvchars += dp->cv->width - dw;
     372            cvattrs += dp->cv->width - dw;
    373373        }
    374374    }
Note: See TracChangeset for help on using the changeset viewer.