home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #16 / NN_1992_16.iso / spool / comp / windows / x / 14344 < prev    next >
Encoding:
Text File  |  1992-07-25  |  2.9 KB  |  65 lines

  1. Newsgroups: comp.windows.x
  2. Path: sparky!uunet!snorkelwacker.mit.edu!thunder.mcrcim.mcgill.edu!mouse
  3. From: mouse@thunder.mcrcim.mcgill.edu (der Mouse)
  4. Subject: Re: Non-rectangular bitmaps/setting pixmap background...
  5. Message-ID: <1992Jul24.181510.29269@thunder.mcrcim.mcgill.edu>
  6. Organization: McGill Research Centre for Intelligent Machines
  7. References: <1992Jul13.194934.5605@news.cs.brandeis.edu> <raney.711494247@teal>
  8. Date: Fri, 24 Jul 92 18:15:10 GMT
  9. Lines: 55
  10.  
  11. In article <raney.711494247@teal>, raney@teal.csn.org (Scott Raney) writes:
  12. > mouse@thunder.mcrcim.mcgill.edu (der Mouse) writes:
  13. >> In article <1992Jul13.194934.5605@news.cs.brandeis.edu>, slanka@chaos.cs.brandeis.edu (Ishantha Lokuge) writes:
  14. >>> I am trying to create a non-rectangular bitmap...
  15. >> This is not possible.  You'll have to get the effect you want some
  16. >> other way.
  17. > I say it *is* possible, but the process is nontrivial.
  18.  
  19. A bitmap is a depth-1 pixmap.  Pixmaps are, by definition, rectangular
  20. arrays of pixels.  Thus, non-rectangular bitmaps don't exist any more
  21. than, say, OutputOnly windows do.
  22.  
  23. > First, you need a mask of the shape you will be drawing, and a pixmap
  24. > of the size of your control to draw into.  [...]
  25.  
  26. This is an example of what I meant by getting the desired effect some
  27. other way.
  28.  
  29. >> You will have to go about your ends some other way.  There are
  30. >> various possibilities.  One is to create a bitmap that is 1 where
  31. >> you want to change things when copying and 0 when not, then set this
  32. >> as the clip-mask in your GC, [...]
  33. > Unfortunately, the X server designers chose to implement clip masks
  34. > by converting them to rectangle lists instead of developing a three
  35. > element logic op.
  36.  
  37. The *MIT sample server* designers chose to.  Don't confuse this with X
  38. servers in general; there is no requirement that an X server do
  39. anything the way the MIT server does, as long as it follows the spec.
  40.  
  41. This has come up on the net before.  As I recall, it was done not to
  42. avoid three-element logic but to avoid *four*-element logic.  Consider
  43. drawing stippled text, for example.
  44.  
  45. > The result?  Setting a full screen clip mask on a 386 takes several
  46. > seconds.  Clipping a wide polyline to the mask can take several
  47. > *minutes*.  If it had been implemented as a mask, the results would
  48. > be about 50% slower than regular operations.  As it is, X clipmasks
  49. > are essentially useless.
  50.  
  51. So don't complain; do something about it!  If you were to contribute
  52. efficient code for doing clipmasks as masks, I'm sure lots of people
  53. would love you for it.  (Of course, you also might, in the process,
  54. discover why it wasn't done that way - I don't know; I haven't looked
  55. at it at all.)
  56.  
  57. It could also just be that your 386 is a pig.  I've done circular
  58. clocks on the Sun-3/50 on my desk that are approximately a thousand
  59. pixels in diameter and it takes a second maybe, but not "several"
  60. seconds.
  61.  
  62.                     der Mouse
  63.  
  64.                 mouse@larry.mcrcim.mcgill.edu
  65.