home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / X / mit / demos / xgc / Written / Jim < prev    next >
Encoding:
Text File  |  1988-06-15  |  10.2 KB  |  256 lines

  1. The Commands menu should contain the following items:
  2.  
  3.     Run                                                [the selected benchmark]
  4.     Benchmark Options.../Hide Benchmark Options                        [toggle]
  5.     Graphics Options.../Hide Graphics Options                          [toggle]
  6.     Describe Test.../Hide Test Description                             [toggle]
  7.     Start Recording/Stop Recording                                     [toggle]
  8.     Playback                        [pop up a dialogue box asking for filename]
  9.     --------
  10.     Quit                   [pop up a dialogue box asking if we are really done]
  11.  
  12.  
  13. The Benchmark Options sheet should contain the information shown below.  The
  14. list of graphics primitives was derived from the "Definition of the Porting
  15. Layer for the X v11 Sample Server" by Angebranndt et al. and from the Protocol
  16. document.
  17.  
  18.  
  19.                    Benchmark Options
  20.  
  21.  
  22.             +-----------------------+-----------------------+
  23.  Test       |      Copy Area        |      Copy Plane       |
  24.             +-----------------------+-----------------------+
  25.             |        Points         |        Lines          |
  26.             +-----------------------+-----------------------+
  27.             |       Segments        |      Rectangles       |
  28.             +-----------------------+-----------------------+
  29.             |         Arcs          |    Filled Polygons    |
  30.             +-----------------------+-----------------------+
  31.             |   Filled Rectangles   |      Filled Arcs      |
  32.             +-----------------------+-----------------------+
  33.             |       Put Image       |       Get Image       |
  34.             +-----------------------+-----------------------+
  35.             |        Text 8         |      Image Text 8     |
  36.             +-----------------------+-----------------------+
  37.             |        Text 16        |      Image Text 16    |
  38.             +-----------------------+-----------------------+
  39.  
  40.             +---------+
  41.  Iterations |   10000 |
  42.             +---------+
  43.  
  44.             +----+-----+                         +----+-----+
  45.  Record     | on | off |          Describe Test  | on | off |
  46.             +----+-----+                         +----+-----+
  47.  
  48.             +-----------------------------------------------+
  49.  Filename   |                                  ./xbench.log |
  50.             +-----------------------------------------------+
  51.  
  52.  
  53. *******************************************************************************
  54.  
  55.  
  56. The Graphics Options area would contain the following entries:
  57.  
  58.     Function - one-of { clear, and, andReverse, copy, andInverted, noop, xor, 
  59.                 or, nor, equiv, invert, orReverse, copyInverted, 
  60.                 orInverted, nand, set }
  61.     PlaneMask - unsigned value or many-of-n representing bits
  62.     Foreground - unsigned value in range 0..2^nplanes
  63.     Background - unsigned value in range 0..2^nplanes
  64.     ForegroundColor - set rgb value of Foreground
  65.     BackgroundColor - set rgb value of background
  66.     LineWidth - unsigned number in range 0..65535
  67.     LineStyle - oneof { Solid, OnOffDash, DoubleDash }
  68.     CapStyle - one-of { NotLast, Butt, Round, Projecting }
  69.     JoinStyle - one-of { Miter, Round, Bevel }
  70.     FillStyle - one-of { Solid, Tiled, OpaqueStippled, Stippled }
  71.     FillRule - one-of { EvenOdd, Winding }
  72.     ArcMode - one-of { Chord, PieSlice }
  73.     # Tile - pixmap [probably not edittable in first version]
  74.     # Stipple - pixmap [probably not edittable in first version]
  75.     TileStipXOrigin - signed number in range -32768..32767
  76.     TileStipYOrigin - signed number in range -32768..32767
  77.     Font - name of font
  78.     ClipXOrigin - signed number in range -32768..32767
  79.     ClipYOrigin - signed number in range -32768..32767
  80.     ClipMask - one-of { None, select } [user selects by clicking in work area]
  81.     DashOffset - unsigned number in range -32768..32767
  82.     DashList - many-of-n of 8 boxes for defining dashes
  83.  
  84.  
  85.  
  86.  
  87.                    Graphics Options
  88.  
  89.  
  90.              +--------------+--------------+--------------+--------------+
  91.  Function    |     clear    |      and     |  andReverse  |     copy     |
  92.              +--------------+--------------+--------------+--------------+
  93.              | andInverted  |     noop     |      xor     |      or      |
  94.              +--------------+--------------+--------------+--------------+
  95.              |      nor     |     equiv    |    invert    |   orReverse  |
  96.              +--------------+--------------+--------------+--------------+
  97.              | copyInverted |  orInverted  |     nand     |      set     |
  98.              +--------------+--------------+--------------+--------------+
  99.  
  100.              +-----+---------+
  101.  Colormap    | new | default |
  102.              +-----+---------+
  103.  
  104.              +----------+                     +--------+--------+--------+
  105.  Foreground  |        1 |    ForegroundColor  |  ffff  |  ffff  |  ffff  |
  106.              +----------+                     +--------+--------+--------+
  107.  
  108.              +----------+                     +--------+--------+--------+
  109.  Background  |        0 |    BackgroundColor  |  0000  |  0000  |  0000  |
  110.              +----------+                     +--------+--------+--------+
  111.  
  112.              +------+                   +-------+-----------+------------+
  113.  LineWidth   |    3 |        LineStyle  | Solid | OnOffDash | DoubleDash |
  114.              +------+                   +-------+-----------+------------+
  115.  
  116.              +---------+------+-------+------------+
  117.  CapStyle    | NotLast | Butt | Round | Projecting |
  118.              +---------+------+-------+------------+
  119.  
  120.              +-------+-------+-------+
  121.  JoinStyle   | Miter | Round | Bevel |
  122.              +-------+-------+-------+
  123.  
  124.              +-------+-------+----------+----------------+
  125.  FillStyle   | Solid | Tiled | Stippled | OpaqueStippled |
  126.              +-------+-------+----------+----------------+
  127.  
  128.              +---------+---------+
  129.  FillRule    | EvenOdd | Winding |
  130.              +---------+---------+
  131.  
  132.              +-------+----------+
  133.  ArcMode     | Chord | PieSlice |
  134.              +-------+----------+
  135.  
  136.              +--------------+
  137.  TStipOrigin | +####, +#### |
  138.              +--------------+
  139.  
  140.              +-+-+-+-+-+-+-+-+                                   +-------+
  141.  DashList    | | |X|X| | |X|X|                       DashOffset  | +#### |
  142.              +-+-+-+-+-+-+-+-+                                   +-------+
  143.  
  144.              +----+-----+-----+-------+                         +--------+
  145.  ClipMask    | on | off | set | clear |             PlaneMask   |  ffff  |
  146.              +----+-----+-----+-------+                         +--------+
  147.  
  148.  
  149. *******************************************************************************
  150.  
  151.                     Grammar
  152.  
  153.  
  154. Both to support Record/Playback (used for debugging, demonstrations, and for
  155. creating benchmark scripts), there needs to be a command line language that
  156. can be used to set all options.  Although we won't be doing anything as
  157. sophisticated as what is provided in many UIMS's, it would be nice to keep
  158. the application section of the benchmark as separate as possible from the
  159. user interface.
  160.  
  161.     test  { CopyArea, CopyPlane, PolyPoint, PolyLine, PolySegment, 
  162.         PolyRectangle, PolyArc, FillPolygon, PolyFillRect, PolyFillArc,
  163.         PutImage, GetImage, ImageText8, PolyText8, ImageText16,
  164.         PolyText16 }
  165.     -  selects the test to be performed.
  166.  
  167.     colormap  { new, default }
  168.     -  selects which colormap should be used for test
  169.  
  170.     iterations UNSIGNEDNUMBER
  171.     -  specifies the number of times that the test should be run.
  172.  
  173.     record BOOLEAN
  174.     -  indicates whether or not to record commands into the record-file.
  175.  
  176.     record-file  FILENAME
  177.     -  specifies the name of the file into which commands are recorded.
  178.  
  179.     describe  BOOLEAN
  180.     -  indicates whether or not a description of the test should be 
  181.        displayed whenever a test is selected (or when this option is
  182.        specified).
  183.  
  184.     function  { clear, and, andReverse, copy, andInverted, noop, xor, or, nor,
  185.         equiv, invert, orReverse, copyInverted, orInverted, nand, set }
  186.     -  selects the alu function to use in the GC.
  187.  
  188.     foreground UNSIGNEDNUMBER
  189.     -  selects the foreground pixel value to use in the GC; if a new
  190.        colormap is being used, the RGB value for this slot may be changed.
  191.  
  192.     background UNSIGNEDNUMBER
  193.     -  selects the background pixel value to use in the GC; if a new
  194.        colormap is being used, the RGB value for this slot may be changed.
  195.  
  196.     forecolor COLORNAME
  197.     -  specifies the RGB value or name of the color to be used for the 
  198.        foreground pixel, if settable.
  199.  
  200.     backcolor COLORNAME
  201.     -  specifies the RGB value or name of the color to be used for the 
  202.        background pixel, if settable.
  203.  
  204.     linewidth NUMBER
  205.     -  specifies width of lines to use in the GC.
  206.  
  207.     linestyle  { Solid, OnOffDash, DoubleDash }
  208.     -  selects the type of lines to use in the GC.
  209.  
  210.     capstyle  { NotLast, Butt, Round, Projecting }
  211.     -  selects the type of caps to use in the GC.
  212.  
  213.     joinstyle  { Miter, Round, Bevel }
  214.     -  selects the type of joins to use in the GC.
  215.  
  216.     fillstyle  { Solid, Tiled, Stippled, OpaqueStippled }
  217.     -  selects the type of fills to use in the GC.
  218.  
  219.     fillrule  { EvenOdd, Winding }
  220.     -  selects the fill rule to be used in the GC.
  221.  
  222.     arcmode  { Chord, PieSlice }
  223.     -  selects the type of arcs to be drawn in the GC.
  224.  
  225.     tsorigin  NUMBER  NUMBER
  226.     -  specifies the X and Y values of the TileStippleOrigin in the GC.
  227.  
  228.     dashlist  DASHPATTERN
  229.     -  specifies a pattern of 8 binary digits to use in the dashlist
  230.        in the GC; the characters are given in big-endian order such that
  231.        they may be read in binary to form a number between 0 and 255.
  232.  
  233.     dashoffset  NUMBER
  234.     -  specifies the dashoffset to use in the GC.
  235.  
  236.     cliporigin  NUMBER  NUMBER
  237.     -  specifies the X and Y values of the cliporigin in the GC.
  238.  
  239.     clipmask  { on, off, set NUMBER NUMBER NUMBER NUMBER, clear }
  240.     -  selects a clipping mode.  If "on", then use the most recently
  241.        defined set of clipping rectangles; if "off", then do not do
  242.        any clipping but keep the clipping rectangles for future
  243.        reference; if "set", then add the rectangle specified by
  244.        the remaining numeric arguments as X1 Y1 X2 Y2 relative to the
  245.        cliporigin.
  246.  
  247.     planemask  NUMBER
  248.     -  specifies the set of planes on to which graphics may be drawn
  249.        in the GC.
  250.  
  251.     run
  252.     -  run the currently configured test.
  253.  
  254.     quit
  255.     -  exit the program
  256.