Ignore:
Timestamp:
Apr 18, 2006, 6:50:56 PM (14 years ago)
Author:
Sam Hocevar
Message:
  • Changed the cucul_dither_bitmap behaviour so that the 4 coordinates are now x/y/width/height instead of x1/y1/x2/y2. Avoids unnecessary +1/-1 computations.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • libcaca/trunk/src/cacaview.c

    r814 r816  
    363363            draw_checkers(ww * (1.0 - xfactor) / 2,
    364364                          y + height * (1.0 - yfactor) / 2,
    365                           ww * (1.0 + xfactor) / 2,
    366                           y + height * (1.0 + yfactor) / 2);
     365                          ww * xfactor, height * yfactor);
    367366
    368367            cucul_dither_bitmap(cv, ww * (1.0 - xfactor) * xdelta,
    369                               y + height * (1.0 - yfactor) * ydelta,
    370                               ww * (xdelta + (1.0 - xdelta) * xfactor),
    371                               y + height * (ydelta + (1.0 - ydelta) * yfactor),
    372                               im->dither, im->pixels);
     368                            y + height * (1.0 - yfactor) * ydelta,
     369                            ww * xfactor + 1, height * yfactor + 1,
     370                            im->dither, im->pixels);
    373371        }
    374372
     
    503501}
    504502
    505 static void draw_checkers(int x1, int y1, int x2, int y2)
     503static void draw_checkers(int x, int y, int w, int h)
    506504{
    507505    int xn, yn;
    508506
    509     if(x2 + 1 > (int)cucul_get_canvas_width(cv))
    510         x2 = cucul_get_canvas_width(cv) - 1;
    511     if(y2 + 1 > (int)cucul_get_canvas_height(cv))
    512         y2 = cucul_get_canvas_height(cv) - 1;
    513 
    514     for(yn = y1 > 0 ? y1 : 0; yn <= y2; yn++)
    515         for(xn = x1 > 0 ? x1 : 0; xn <= x2; xn++)
    516     {
    517         if((((xn - x1) / 5) ^ ((yn - y1) / 3)) & 1)
     507    if(x + w > (int)cucul_get_canvas_width(cv))
     508        w = cucul_get_canvas_width(cv) - x;
     509    if(y + h > (int)cucul_get_canvas_height(cv))
     510        h = cucul_get_canvas_height(cv) - y;
     511
     512    for(yn = y > 0 ? y : 0; yn < y + h; yn++)
     513        for(xn = x > 0 ? x : 0; xn < x + w; xn++)
     514    {
     515        if((((xn - x) / 5) ^ ((yn - y) / 3)) & 1)
    518516            cucul_set_color(cv, CUCUL_COLOR_LIGHTGRAY, CUCUL_COLOR_DARKGRAY);
    519517        else
Note: See TracChangeset for help on using the changeset viewer.