1fd7d9bd3SmrgGeneral concerns 2fd7d9bd3Smrg---------------- 3fd7d9bd3Smrg 4fd7d9bd3SmrgMachine type 5fd7d9bd3SmrgDisplay type 6fd7d9bd3SmrgDisplay on different machine? 7fd7d9bd3SmrgVisual 8fd7d9bd3SmrgClipping 9fd7d9bd3SmrgObscured by cursor 10fd7d9bd3SmrgBackground tiling 11fd7d9bd3SmrgThe whole software vs. hardware bit: computational overhead vs. time spent 12fd7d9bd3Smrg drawing 13fd7d9bd3SmrgPlanemask 14fd7d9bd3Smrg 15fd7d9bd3SmrgPolyFillRectangle 16fd7d9bd3Smrg----------------- 17fd7d9bd3SmrgUse same test as PolyRectangle? 18fd7d9bd3SmrgPerhaps give FillPoly some of these too, see if it special cases them. 19fd7d9bd3SmrgFill Rectangle vs. Fill Poly for same size areas would be an 20fd7d9bd3Smrg interesting comparison. 21fd7d9bd3Smrg 22fd7d9bd3SmrgThings to look for: 23fd7d9bd3Smrg All it's really doing is setting or unsetting planes. 24fd7d9bd3Smrg When a whole word is filled, it should be quite fast (just 25fd7d9bd3Smrg setting it to 0 or ~0). 26fd7d9bd3Smrg Otherwise, the speed of a single rectangle should be about 27fd7d9bd3Smrg equal to its size. 28fd7d9bd3Smrg 29e53c48bfSmrgData: 30fd7d9bd3Smrg Pixels per second. 31fd7d9bd3Smrg Average size of rectangle. 32fd7d9bd3Smrg 33e53c48bfSmrgGC fields: 34fd7d9bd3Smrg function: 35fd7d9bd3Smrg Tiling: likely to be a lot slower, although for whole words 36fd7d9bd3Smrg you're just setting it to a certain value, rather than 0. 37fd7d9bd3Smrg (You also have to look at the y value). Strange width 38fd7d9bd3Smrg tiles (are these allowed?) are likely to be real bad. 39fd7d9bd3Smrg Stippling: also slower - I'm not sure whether or not this would 40fd7d9bd3Smrg be slower than tiling. This probably has a greater 41fd7d9bd3Smrg chance of being done in hardware. 42fd7d9bd3Smrg 43fd7d9bd3Smrg plane-mask: 44fd7d9bd3Smrg plane of 0 would be real fast, since it doesn't modify 45fd7d9bd3Smrg anything. plane of ~0 should be fast, since it doesn't 46fd7d9bd3Smrg have to think. Anything else would probably be 47fd7d9bd3Smrg proportional to the number of planes... 48fd7d9bd3Smrg 49fd7d9bd3Smrg subwindow-mode: I don't believe it matters. 50fd7d9bd3Smrg 51fd7d9bd3Smrg clip-x-origin 52fd7d9bd3Smrg clip-y-origin 53fd7d9bd3Smrg clip-mask: 54fd7d9bd3Smrg Clipping in general should probably increase speed rather 55fd7d9bd3Smrg than decrease it, unless the clipping region is strange. 56fd7d9bd3Smrg Possible increase in speed because less change to the 57fd7d9bd3Smrg display is being made; possible decrease in speed because 58fd7d9bd3Smrg more thought has to be given to what is drawn or not. 59fd7d9bd3Smrg Software vs. hardware, I suppose. 60fd7d9bd3Smrg 61e53c48bfSmrgPossibly 62fd7d9bd3Smrg foreground: similar to plane-mask in its effect, I would think. 63fd7d9bd3Smrg 64fd7d9bd3Smrg tile: "nice" width tiles would probably be better. A width which 65fd7d9bd3Smrg is not a divisor of the length of a word would be 66fd7d9bd3Smrg significantly slower. A width the size of a word is 67fd7d9bd3Smrg probably perfect. The actual contents of the tile 68fd7d9bd3Smrg probably don't matter: Any code to check for tiles 69fd7d9bd3Smrg which could be "simplified" would probably take too much 70fd7d9bd3Smrg time to execute to do any good. 71fd7d9bd3Smrg 72fd7d9bd3Smrg stipple: like tile 73fd7d9bd3Smrg 74fd7d9bd3SmrgOther: 75e53c48bfSmrg alignment on word boundaries: fastest when one is changing whole 76fd7d9bd3Smrg words at a time. That way, you're just setting whole words to 77fd7d9bd3Smrg 0 or ~0 and not doing any computation. A 32x1 rectangle should 78fd7d9bd3Smrg be much faster than a 1x32 rectangle. 79fd7d9bd3Smrg 80fd7d9bd3Smrg--------- 81fd7d9bd3SmrgThings to put in test: 82fd7d9bd3Smrg 83fd7d9bd3SmrgCheck all alignments. 84fd7d9bd3SmrgPerhaps some sort of comparison between thin rectangles oriented 85fd7d9bd3Smrg horizontally and oriented vertically. 86fd7d9bd3SmrgSmall rectangles, big rectangles: compare pixels/second for each. 87fd7d9bd3Smrg Good way of computing overhead costs. 88fd7d9bd3Smrg 89fd7d9bd3Smrg--------- 90fd7d9bd3Smrgtest 91fd7d9bd3Smrg(1-32)x32 at all 32 bits in a word. 92fd7d9bd3Smrg(97-128)x32 93fd7d9bd3Smrg(97-128)x128 94