home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / x / volume18 / X11R5-fix17 / part02 < prev    next >
Encoding:
Internet Message Format  |  1992-08-24  |  8.4 KB

  1. Path: uunet!cs.utexas.edu!swrinde!mips!msi!dcmartin
  2. From: rws@expo.lcs.mit.edu (Bob Scheifler)
  3. Newsgroups: comp.sources.x
  4. Subject: v18i096: X11R5 public fix #17, Part02/02
  5. Message-ID: <1992Aug24.201132.26474@msi.com>
  6. Date: 24 Aug 92 20:11:32 GMT
  7. References: <csx-18i095-X11R5-fix17@uunet.UU.NET>
  8. Sender: dcmartin@msi.com (David C. Martin - Moderator)
  9. Organization: Molecular Simulations, Inc.
  10. Lines: 334
  11. Approved: dcmartin@msi.com
  12. Originator: dcmartin@fascet
  13.  
  14. Submitted-by: Bob Scheifler <rws@expo.lcs.mit.edu>
  15. Posting-number: Volume 18, Issue 96
  16. Archive-name: X11R5-fix17/part02
  17.  
  18. #!/bin/sh
  19. # this is part.02 (part 2 of a multipart archive)
  20. # do not concatenate these parts, unpack them in order with /bin/sh
  21. # file fix-17 continued
  22. #
  23. if test ! -r _shar_seq_.tmp; then
  24.     echo 'Please unpack part 1 first!'
  25.     exit 1
  26. fi
  27. (read Scheck
  28.  if test "$Scheck" != 2; then
  29.     echo Please unpack part "$Scheck" next!
  30.     exit 1
  31.  else
  32.     exit 0
  33.  fi
  34. ) < _shar_seq_.tmp || exit 1
  35. if test ! -f _shar_wnt_.tmp; then
  36.     echo 'x - still skipping fix-17'
  37. else
  38. echo 'x - continuing file fix-17'
  39. sed 's/^X//' << 'SHAR_EOF' >> 'fix-17' &&
  40. X                   */
  41. X                  if (band[i].a0 == band[i].a1)
  42. !                     band[i].a1 = band[i].a0 = 90 * 64 + 1;
  43. X              }
  44. X      }
  45. X      computeAcc (&def, &acc);
  46. ***************
  47. *** 3785,3807 ****
  48. X           if (mask & (1 << rightq)) {
  49. X              if (sweep[j].a0 == righta)
  50. X                  passRight = right;
  51. !             if (sweep[j].a1 == righta) {
  52. X                  passLeft = right;
  53. X                  flipRight = 1;
  54. X              }
  55. X          }
  56. X          if (mask & (1 << leftq)) {
  57. -             if (sweep[j].a0 == lefta) {
  58. -                 if (passRight)
  59. -                     copyEnd = 1;
  60. -                 passRight = left;
  61. -                 flipLeft = 1;
  62. -             }
  63. X              if (sweep[j].a1 == lefta)
  64. X              {
  65. X                  if (passLeft)
  66. X                      copyEnd = 1;
  67. X                  passLeft = left;
  68. X              }
  69. X          }
  70. X          drawQuadrant (&def, &acc, sweep[j].a0, sweep[j].a1, mask, 
  71. --- 3791,3813 ----
  72. X           if (mask & (1 << rightq)) {
  73. X              if (sweep[j].a0 == righta)
  74. X                  passRight = right;
  75. !             else if (sweep[j].a1 == righta) {
  76. X                  passLeft = right;
  77. X                  flipRight = 1;
  78. X              }
  79. X          }
  80. X          if (mask & (1 << leftq)) {
  81. X              if (sweep[j].a1 == lefta)
  82. X              {
  83. X                  if (passLeft)
  84. X                      copyEnd = 1;
  85. X                  passLeft = left;
  86. +             }
  87. +             else if (sweep[j].a0 == lefta) {
  88. +                 if (passRight)
  89. +                     copyEnd = 1;
  90. +                 passRight = left;
  91. +                 flipLeft = 1;
  92. X              }
  93. X          }
  94. X          drawQuadrant (&def, &acc, sweep[j].a0, sweep[j].a1, mask, 
  95. *** /tmp/,RCSt1002526    Fri Aug 21 15:37:47 1992
  96. --- mit/server/ddx/mi/mi.h    Sun May 17 10:34:51 1992
  97. ***************
  98. *** 1,4 ****
  99. ! /* $XConsortium: mi.h,v 1.7 90/06/12 13:12:27 rws Exp $ */
  100. X  /***********************************************************
  101. X  Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts,
  102. X  and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
  103. --- 1,4 ----
  104. ! /* $XConsortium: mi.h,v 1.8 92/05/17 10:33:25 rws Exp $ */
  105. X  /***********************************************************
  106. X  Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts,
  107. X  and the Massachusetts Institute of Technology, Cambridge, Massachusetts.
  108. ***************
  109. *** 59,65 ****
  110. X  extern void  miPaintWindow();
  111. X  extern miDashPtr   miDashLine();
  112. X  extern void  miPushPixels();
  113. - extern void  miGetPts(), miRoundCap(), miOneSegWide();
  114. X  extern int   miPtToAngle();
  115. X  extern RegionPtr miRegionCreate();
  116. X  extern void miRegionInit();
  117. --- 59,64 ----
  118. *** /tmp/,RCSt1a23007    Sun Aug 23 13:30:17 1992
  119. --- mit/server/ddx/cfb/cfbply1rct.c    Mon May 18 14:38:18 1992
  120. ***************
  121. *** 1,5 ****
  122. X  /*
  123. !  * $XConsortium: cfbply1rct.c,v 1.9 91/07/09 16:09:23 rws Exp $
  124. X   *
  125. X   * Copyright 1990 Massachusetts Institute of Technology
  126. X   *
  127. --- 1,5 ----
  128. X  /*
  129. !  * $XConsortium: cfbply1rct.c,v 1.11 92/05/18 14:37:44 keith Exp $
  130. X   *
  131. X   * Copyright 1990 Massachusetts Institute of Technology
  132. X   *
  133. ***************
  134. *** 67,77 ****
  135. X      int            nmiddle;
  136. X      RROP_DECLARE
  137. X  
  138. !     if (mode == CoordModePrevious || shape != Convex)
  139. X      {
  140. X      miFillPolygon (pDrawable, pGC, shape, mode, count, ptsIn);
  141. X      return;
  142. X      }
  143. X      devPriv = (cfbPrivGC *)(pGC->devPrivates[cfbGCPrivateIndex].ptr);
  144. X      origin = *((int *) &pDrawable->x);
  145. X      origin -= (origin & 0x8000) << 1;
  146. --- 67,78 ----
  147. X      int            nmiddle;
  148. X      RROP_DECLARE
  149. X  
  150. !     if (mode == CoordModePrevious)
  151. X      {
  152. X      miFillPolygon (pDrawable, pGC, shape, mode, count, ptsIn);
  153. X      return;
  154. X      }
  155. +     
  156. X      devPriv = (cfbPrivGC *)(pGC->devPrivates[cfbGCPrivateIndex].ptr);
  157. X      origin = *((int *) &pDrawable->x);
  158. X      origin -= (origin & 0x8000) << 1;
  159. ***************
  160. *** 84,103 ****
  161. X      maxy = 0;
  162. X      vertex2p = (int *) ptsIn;
  163. X      endp = vertex2p + count;
  164. !     while (count--)
  165. X      {
  166. !     c = *vertex2p;
  167. !     clip |= (c - vertex1) | (vertex2 - c);
  168. !     c = intToY(c);
  169. !     if (c < y) 
  170. !     {
  171. !         y = c;
  172. !         vertex1p = vertex2p;
  173. !     }
  174. !     vertex2p++;
  175. !     if (c > maxy)
  176. !         maxy = c;
  177. X      }
  178. X      if (y == maxy)
  179. X      return;
  180. X  
  181. --- 85,151 ----
  182. X      maxy = 0;
  183. X      vertex2p = (int *) ptsIn;
  184. X      endp = vertex2p + count;
  185. !     if (shape == Convex)
  186. X      {
  187. !         while (count--)
  188. !         {
  189. !         c = *vertex2p;
  190. !         clip |= (c - vertex1) | (vertex2 - c);
  191. !         c = intToY(c);
  192. !         if (c < y) 
  193. !         {
  194. !             y = c;
  195. !             vertex1p = vertex2p;
  196. !         }
  197. !         vertex2p++;
  198. !         if (c > maxy)
  199. !             maxy = c;
  200. !         }
  201. X      }
  202. +     else
  203. +     {
  204. +     int yFlip = 0;
  205. +     dx1 = 1;
  206. +     x2 = -1;
  207. +     x1 = -1;
  208. +         while (count--)
  209. +         {
  210. +         c = *vertex2p;
  211. +         clip |= (c - vertex1) | (vertex2 - c);
  212. +         c = intToY(c);
  213. +         if (c < y) 
  214. +         {
  215. +             y = c;
  216. +             vertex1p = vertex2p;
  217. +         }
  218. +         vertex2p++;
  219. +         if (c > maxy)
  220. +             maxy = c;
  221. +         if (c == x1)
  222. +         continue;
  223. +         if (dx1 > 0)
  224. +         {
  225. +         if (x2 < 0)
  226. +             x2 = c;
  227. +         else
  228. +             dx2 = dx1 = (c - x1) >> 31;
  229. +         }
  230. +         else
  231. +         if ((c - x1) >> 31 != dx1) 
  232. +         {
  233. +             dx1 = ~dx1;
  234. +             yFlip++;
  235. +         }
  236. +         x1 = c;
  237. +            }
  238. +     x1 = (x2 - c) >> 31;
  239. +     if (x1 != dx1)
  240. +         yFlip++;
  241. +     if (x1 != dx2)
  242. +         yFlip++;
  243. +     if (yFlip != 2) 
  244. +         clip = 0x8000;
  245. +     }
  246. X      if (y == maxy)
  247. X      return;
  248. X  
  249. ***************
  250. *** 163,169 ****
  251. X              vertex1p = endp;
  252. X              c = *--vertex1p;
  253. X              Setup (c,x1,vertex1,dx1,dy1,e1,sign1,step1)
  254. !         } while (y == intToY(vertex1));
  255. X          h = dy1;
  256. X      }
  257. X      else
  258. --- 211,217 ----
  259. X              vertex1p = endp;
  260. X              c = *--vertex1p;
  261. X              Setup (c,x1,vertex1,dx1,dy1,e1,sign1,step1)
  262. !         } while (y >= intToY(vertex1));
  263. X          h = dy1;
  264. X      }
  265. X      else
  266. ***************
  267. *** 179,185 ****
  268. X              if (vertex2p == endp)
  269. X              vertex2p = (int *) ptsIn;
  270. X              Setup (c,x2,vertex2,dx2,dy2,e2,sign2,step2)
  271. !         } while (y == intToY(vertex2));
  272. X          if (dy2 < h)
  273. X          h = dy2;
  274. X      }
  275. --- 227,233 ----
  276. X              if (vertex2p == endp)
  277. X              vertex2p = (int *) ptsIn;
  278. X              Setup (c,x2,vertex2,dx2,dy2,e2,sign2,step2)
  279. !         } while (y >= intToY(vertex2));
  280. X          if (dy2 < h)
  281. X          h = dy2;
  282. X      }
  283. ***************
  284. *** 202,209 ****
  285. X              l = x2;
  286. X              r = x1;
  287. X              }
  288. X          c = l & PIM;
  289. !         addr = (unsigned long *) (((char *) addrl) + (l - c));
  290. X          if (c + nmiddle < PPW)
  291. X          {
  292. X              mask = SCRRIGHT (bits,c) ^ SCRRIGHT (bits,c+nmiddle);
  293. --- 250,267 ----
  294. X              l = x2;
  295. X              r = x1;
  296. X              }
  297. + #if PPW > 1
  298. X          c = l & PIM;
  299. !         l -= c;
  300. ! #endif
  301. ! #if PWSH > 2
  302. !         l = l >> (PWSH - 2);
  303. ! #endif
  304. ! #if PWSH < 2
  305. !         l = l << (2 - PWSH);
  306. ! #endif
  307. !         addr = (unsigned long *) (((char *) addrl) + l);
  308. ! #if PPW > 1
  309. X          if (c + nmiddle < PPW)
  310. X          {
  311. X              mask = SCRRIGHT (bits,c) ^ SCRRIGHT (bits,c+nmiddle);
  312. ***************
  313. *** 218,230 ****
  314. --- 276,291 ----
  315. X                  nmiddle += c - PPW;
  316. X                  addr++;
  317. X              }
  318. + #endif
  319. X              nmiddle >>= PWSH;
  320. X          while (--nmiddle >= 0) {
  321. X              RROP_SOLID(addr); addr++;
  322. X          }
  323. + #if PPW > 1
  324. X              if (mask = ~SCRRIGHT(bits, r & PIM))
  325. X                  RROP_SOLID_MASK(addr,mask);
  326. X          }
  327. + #endif
  328. X          if (!--h)
  329. X          break;
  330. X          addrl = AddrYPlus (addrl, 1);
  331. SHAR_EOF
  332. echo 'File fix-17 is complete' &&
  333. chmod 0644 fix-17 ||
  334. echo 'restore of fix-17 failed'
  335. Wc_c="`wc -c < 'fix-17'`"
  336. test 55119 -eq "$Wc_c" ||
  337.     echo 'fix-17: original size 55119, current size' "$Wc_c"
  338. rm -f _shar_wnt_.tmp
  339. fi
  340. rm -f _shar_seq_.tmp
  341. echo You have unpacked the last part
  342. exit 0
  343. -- 
  344. Senior Systems Scientist        mail: dcmartin@msi.com
  345. Molecular Simulations, Inc.        uucp: uunet!dcmartin
  346. 796 North Pastoria Avenue        at&t: 408/522-9236
  347. Sunnyvale, California 94086        fax: 408/732-0831
  348.