home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD2.mdf / c / library / dos / bits / bitblit / layerop.c < prev    next >
Encoding:
C/C++ Source or Header  |  1985-05-23  |  1.6 KB  |  52 lines

  1. /*
  2.  * name:         layerop
  3.  *
  4.  * description: given a layer lp, a rectangle within the layer r,
  5.  *              and a bitmap operator fn, recursively subdivide
  6.  *              the rectangle r into rectangles contained within
  7.  *              single bitmaps, and invokes the operator on the
  8.  *              rectangle/bitmap pairs.
  9.  *              also passed is a pointer to a set of parameters
  10.  *              for the bitmap operator otherargs.
  11.  *
  12.  * synopsis:     layerop (lp, fn, r, p1, p2, p3, p4)
  13.  *              struct layer    *lp;
  14.  *              int      (*fn) ();
  15.  *              struct rectangle    *r;
  16.  *              int     *p1;
  17.  *              int     *p2;
  18.  *              int     *p3;
  19.  *              int     *p4;
  20.  *
  21.  * globals:      none.
  22.  *
  23.  * calls:        rectxrect     (rectxrect.c)
  24.  *              intersection   (intersection.c)
  25.  *              rlayerop       (rlayerop.c)
  26.  *
  27.  * called by:    newlayer  (newlayer.c)
  28.  *              lblt       (lblt.c)
  29.  *              lbitblt    (lbitblt.c)
  30.  */
  31. #include "layers.h"
  32.  
  33. layerop (lp, fn, r, p1, p2, p3, p4)
  34. struct layer  *lp;
  35. int    (*fn) ();                       /* pointer to bitmap operator */
  36. struct rectangle  *r;
  37. int   *p1;                             /* other arguments used by (*fn)() */
  38. int   *p2;
  39. int   *p3;
  40. int   *p4;
  41. {
  42.     intersection ();
  43.  
  44.  /*
  45.  * clip to outer rectangle of layer, then call rlayerop()
  46.  */
  47.    if (rectxrect ( r, &(lp -> ly_rect))) {
  48.         (void) intersection (r, &(lp -> ly_rect), r);
  49.         (void) rlayerop (lp, fn, r, lp -> ly_obs, p1, p2, p3, p4);
  50.    }
  51. }
  52.