home *** CD-ROM | disk | FTP | other *** search
/ The C Users' Group Library 1994 August / wc-cdrom-cusersgrouplibrary-1994-08.iso / listings / v_08_08 / 8n08060a < prev    next >
Text File  |  1990-07-18  |  918b  |  57 lines

  1.  
  2. /* look-up tables for several TIGA modes */
  3. long bit2 mask[]={
  4.   0x00000000,
  5.   0x55555555,
  6.   0xaaaaaaaa,
  7.   0xffffffff };
  8.  
  9. long bit4 mask[]={
  10.   0x00000000,
  11.   0x11111111,
  12.   0x22222222,
  13.   0x33333333,
  14.   0x44444444,
  15.   0x55555555,
  16.   0x66666666,
  17.   0x77777777,
  18.   0x88888888,
  19.   0x99999999,
  20.   0xaaaaaaaa,
  21.   0xbbbbbbbb,
  22.   0xcccccccc,
  23.   0xdddddddd,
  24.   0xeeeeeeee,
  25.   0xffffffff };
  26.  
  27.  
  28. int set_mask( mask )
  29. unsigned short mask;
  30. {
  31.   long real_mask;
  32.  
  33.   real_mask = mask & (ncolors-1);
  34.   switch(nplanes)
  35.     {
  36.     case 1:
  37.       if (mask)
  38.         real_mask = -1;
  39.       break;
  40.     case 2:
  41.       real_mask = bit2_mask[mask];
  42.       break;
  43.     case 4:
  44.       real_mask = bit4_mask[mask];
  45.       break;
  46.     case 8:
  47.       real_mask |= real_mask << 8;
  48.       real_mask |= real_mask << 16;
  49.       break;
  50.     case 16:
  51.       break;
  52.     } /* end switch */
  53.  
  54.   set_pmask(~real_mask);
  55.   return(0);
  56. }
  57.