home *** CD-ROM | disk | FTP | other *** search
/ InfoMagic Source Code 1993 July / THE_SOURCE_CODE_CD_ROM.iso / X / mit / doc / CLX / s05.doc < prev    next >
Encoding:
Interleaf document  |  1989-10-18  |  68.4 KB  |  2,205 lines

  1. <!OPS, Version = 5.2>
  2.  
  3. <!Document,
  4.     Print Rev Bars =    no,
  5.     Final Output Device =    "ps",
  6.     Default Printer =    "nearest-adps">
  7.  
  8. <!Font Definitions,
  9.     F2 = Times 10 Italic,
  10.     F3 = Times 10,
  11.     F4 = Times 8 Italic,
  12.     F5 = Times 18 Bold,
  13.     F6 = Times 10 Bold,
  14.     F7 = Times 12 Bold,
  15.     F8 = Symbol_B 8,
  16.     F9 = Courier 8>
  17.  
  18. <!Page,
  19.     Bottom Margin =        1 inches,
  20.     Left Margin =        1 inches,
  21.     Right Margin =        1.15 inches,
  22.     First Page =        Right,
  23.     Starting Page # =     Inherit,
  24.     Page # Prefix =        "5<#1e>",
  25.     Hyphenation =        on,
  26.     Consecutive Hyphens =    2,
  27.     Vert. Just. =        off>
  28.  
  29. <!Autonumber Stream, List, 2,
  30.     Level 2 Suffix =    ,
  31.     Level 2 Starting Value = 0,
  32.     Level 2 Show =        no>
  33.  
  34. <!Autonumber Stream, Outline, 3,
  35.     Level 1 Symbol Type =    UPPER ROMAN,
  36.     Level 2 Symbol Type =    UPPER ALPHA>
  37.  
  38. <!Autonumber Stream, figure, 2,
  39.     Level 1 Prefix =    "Figure ",
  40.     Level 1 Suffix =    "<#1e>",
  41.     Level 1 Show =        no,
  42.     Level 2 Suffix =    ,
  43.     Level 2 Starting Value = 0,
  44.     Level 2 Show =        no>
  45.  
  46. <!Autonumber Stream, figurelet, 2,
  47.     Level 1 Symbol Type =    UPPER ALPHA,
  48.     Level 1 Prefix =    "Figure ",
  49.     Level 1 Suffix =    "<#1e>",
  50.     Level 1 Show =        no,
  51.     Level 2 Suffix =    "<#04>">
  52.  
  53. <!Autonumber Stream, invisible, 1,
  54.     Level 1 Suffix =    ,
  55.     Level 1 Show =        no>
  56.  
  57. <!Autonumber Stream, item, 2,
  58.     Level 2 Symbol Type =    LOWER ALPHA,
  59.     Level 2 Trail =        yes>
  60.  
  61. <!Autonumber Stream, paralet, 4,
  62.     Level 1 Symbol Type =    UPPER ALPHA,
  63.     Level 1 Suffix =    ,
  64.     Level 1 Show =        no,
  65.     Level 2 Prefix =    .,
  66.     Level 2 Suffix =    ,
  67.     Level 3 Prefix =    .,
  68.     Level 3 Suffix =    ,
  69.     Level 4 Prefix =    .,
  70.     Level 4 Suffix =    >
  71.  
  72. <!Autonumber Stream, paranum, 4,
  73.     Level 1 Suffix =    ,
  74.     Level 1 Show =        no,
  75.     Level 2 Prefix =    .,
  76.     Level 2 Suffix =    ,
  77.     Level 3 Prefix =    .,
  78.     Level 3 Suffix =    ,
  79.     Level 4 Prefix =    .,
  80.     Level 4 Suffix =    >
  81.  
  82. <!Autonumber Stream, table, 2,
  83.     Level 1 Prefix =    "Table ",
  84.     Level 1 Suffix =    "<#1e>",
  85.     Level 1 Show =        no,
  86.     Level 2 Suffix =    >
  87.  
  88. <!Autonumber Stream, tablelet, 2,
  89.     Level 1 Symbol Type =    UPPER ALPHA,
  90.     Level 1 Prefix =    "Table ",
  91.     Level 1 Suffix =    "<#1e>",
  92.     Level 1 Show =        no,
  93.     Level 2 Suffix =    "<#04>">
  94.  
  95. <!Class, arg,
  96.     Bottom Margin =        0.08 inches,
  97.     Left Margin =        1.85 inches,
  98.     First Indent =        -0.25 inches,
  99.     Line Spacing =        1.121 lines,
  100.     Font =            F2,
  101.     Left Tab =        -0.25/0 inches>
  102.  
  103. <!Class, bullet,
  104.     Bottom Margin =        0.153 inches,
  105.     Left Margin =        1.85 inches,
  106.     First Indent =        -0.25 inches,
  107.     Line Spacing =        1.121 lines,
  108.     Font =            F3,
  109.     Allow Page Break Within = no,
  110.     Left Tab =        -0.50/0 inches>
  111.  
  112. <!Class, caption,
  113.     Top Margin =        0.07 inches,
  114.     Bottom Margin =        0.07 inches,
  115.     Line Spacing =        1.100 lines,
  116.     Font =            F4>
  117.  
  118. <!Class, endrule,
  119.     Bottom Margin =        0.15 inches,
  120.     Left Margin =        1.60 inches,
  121.     Line Spacing =        1.121 lines,
  122.     Alignment =        Left,
  123.     Font =            F3,
  124.     Hyphenation =        off,
  125.     Allow Page Break Within = no,
  126.     Left Tab =        0/1.75/2.30/3.50/7.50 inches>
  127.  
  128. <!Class, fig,
  129.     Top Margin =        0.07 inches,
  130.     Bottom Margin =        0.07 inches,
  131.     Line Spacing =        1.100 lines,
  132.     Alignment =        Left,
  133.     Font =            F5>
  134.  
  135. <!Class, item,
  136.     Bottom Margin =        0.153 inches,
  137.     Left Margin =        1.85 inches,
  138.     First Indent =        -0.25 inches,
  139.     Line Spacing =        1.121 lines,
  140.     Font =            F3,
  141.     Allow Page Break Within = no,
  142.     Left Tab =        0 inches,
  143.     Right Tab =        -0.50 inches,
  144.     Autonumber Name =    item>
  145.  
  146. <!Class, keyword2,
  147.     Bottom Margin =        0.153 inches,
  148.     Left Margin =        1.85 inches,
  149.     First Indent =        -0.25 inches,
  150.     Line Spacing =        1.121 lines,
  151.     Font =            F6,
  152.     Left Tab =        -0.50/0 inches>
  153.  
  154. <!Class, p1para,
  155.     Bottom Margin =        0.153 inches,
  156.     Left Margin =        1.60 inches,
  157.     First Indent =        -1.60 inches,
  158.     Line Spacing =        1.121 lines,
  159.     Alignment =        Left,
  160.     Font =            F7,
  161.     Allow Page Break Within = no,
  162.     Allow Page Break After = no,
  163.     Left Tab =        -1.70/0 inches>
  164.  
  165. <!Class, p1rule,
  166.     Bottom Margin =        0 inches,
  167.     Line Spacing =        1 lines,
  168.     Font =            F3,
  169.     Hyphenation =        off,
  170.     Allow Page Break After = no,
  171.     Left Tab =        0/0.75*13 inches>
  172.  
  173. <!Class, p1stacked,
  174.     Bottom Margin =        0 inches,
  175.     Left Margin =        1.60 inches,
  176.     First Indent =        -1.60 inches,
  177.     Line Spacing =        1 lines,
  178.     Font =            F6,
  179.     Allow Page Break Within = no,
  180.     Allow Page Break After = no,
  181.     Left Tab =        -1.60/-0.17/0 inches>
  182.  
  183. <!Class, para,
  184.     Bottom Margin =        0.153 inches,
  185.     Left Margin =        1.60 inches,
  186.     Line Spacing =        1.121 lines,
  187.     Font =            F3,
  188.     Allow Page Break Within = no,
  189.     Left Tab =        0/0.75*13 inches>
  190.  
  191. <!Class, return,
  192.     Bottom Margin =        0.077 inches,
  193.     Left Margin =        1.60 inches,
  194.     First Indent =        -0.90 inches,
  195.     Line Spacing =        1.121 lines,
  196.     Alignment =        Left,
  197.     Font =            F6,
  198.     Hyphenation =        off,
  199.     Allow Page Break Within = no,
  200.     Allow Page Break After = no,
  201.     Left Tab =        -0.90/0 inches,
  202.     Right Tab =        7.50 inches>
  203.  
  204. <!Class, ritabhd1,
  205.     Bottom Margin =        0 inches,
  206.     Left Margin =        1.60 inches,
  207.     Line Spacing =        1.121 lines,
  208.     Alignment =        Left,
  209.     Font =            F6,
  210.     Hyphenation =        off,
  211.     Allow Page Break Within = no,
  212.     Allow Page Break After = no,
  213.     Left Tab =        0/1.30/2.30/3.50/7.50 inches>
  214.  
  215. <!Class, secno,
  216.     Top Margin =        0.07 inches,
  217.     Bottom Margin =        0.07 inches,
  218.     Line Spacing =        1.100 lines,
  219.     Alignment =        Left,
  220.     Font =            F5,
  221.     Autonumber Name =    paranum>
  222.  
  223. <!Class, secrule,
  224.     Bottom Margin =        0 inches,
  225.     Line Spacing =        1 lines,
  226.     Font =            F3,
  227.     Hyphenation =        off,
  228.     Allow Page Break After = no,
  229.     Left Tab =        0/0.75*13 inches,
  230.     Autonumber Name =    table>
  231.  
  232. <!Class, sectitle,
  233.     Bottom Margin =        0 inches,
  234.     Line Spacing =        1 lines,
  235.     Alignment =        Right,
  236.     Font =            F5,
  237.     Hyphenation =        off,
  238.     New Page =        yes,
  239.     Left Tab =        0/0.75*13 inches>
  240.  
  241. <!Class, syntax,
  242.     Bottom Margin =        0.077 inches,
  243.     Left Margin =        1.60 inches,
  244.     First Indent =        -0.90 inches,
  245.     Line Spacing =        1.121 lines,
  246.     Alignment =        Left,
  247.     Font =            F6,
  248.     Hyphenation =        off,
  249.     Allow Page Break Within = no,
  250.     Allow Page Break After = no,
  251.     Left Tab =        -0.90/0 inches,
  252.     Right Tab =        8 inches>
  253.  
  254. <!Class, syntax0,
  255.     Bottom Margin =        0 inches,
  256.     Left Margin =        1.60 inches,
  257.     First Indent =        -0.90 inches,
  258.     Line Spacing =        1.121 lines,
  259.     Alignment =        Left,
  260.     Font =            F6,
  261.     Hyphenation =        off,
  262.     Allow Page Break Within = no,
  263.     Allow Page Break After = no,
  264.     Left Tab =        -0.90/0 inches,
  265.     Right Tab =        8 inches>
  266.  
  267. <!Class, "table",
  268.     Top Margin =        0.07 inches,
  269.     Bottom Margin =        0.07 inches,
  270.     Line Spacing =        1.100 lines,
  271.     Font =            F6,
  272.     Autonumber Name =    table>
  273.  
  274. <!Class, tbline1,
  275.     Bottom Margin =        0 inches,
  276.     Left Margin =        1.60 inches,
  277.     Line Spacing =        1.121 lines,
  278.     Alignment =        Left,
  279.     Font =            F3,
  280.     Hyphenation =        off,
  281.     Allow Page Break Within = no,
  282.     Allow Page Break After = no,
  283.     Left Tab =        0/1.50/2.30/3.50/7.50 inches>
  284.  
  285. <!Class, tbline1a,
  286.     Bottom Margin =        0 inches,
  287.     Left Margin =        3.20 inches,
  288.     First Indent =        -1.60 inches,
  289.     Line Spacing =        1.121 lines,
  290.     Alignment =        Left,
  291.     Font =            F3,
  292.     Hyphenation =        off,
  293.     Allow Page Break Within = no,
  294.     Allow Page Break After = no,
  295.     Left Tab =        0/1.30/2.30/3.50/7.50 inches>
  296.  
  297. <!Class, title,
  298.     Top Margin =        0.07 inches,
  299.     Bottom Margin =        0.07 inches,
  300.     Line Spacing =        1.100 lines,
  301.     Alignment =        Right,
  302.     Font =            F5,
  303.     TOC Doc Name =        TOC>
  304.  
  305. <!Master Frame,
  306.     Name =            "At Anchor",
  307.     Placement =        At Anchor,
  308.     Width =            0.41 inches,
  309.     Height =        0.137 inches,
  310.     Vertical Alignment =    0.03 inches,
  311.     Diagram =
  312. V4,
  313. (g9,32767,0
  314.  (E10,0,0,0,1,0,0.053333,1,15,0,0,1,0,0,0,0,1,0,1,0.066667,0.066667,6,6,0,0.066
  315.   667,6))>
  316.  
  317. <!Master Frame,
  318.     Name =            p1rule,
  319.     Placement =        At Anchor,
  320.     Width =            6.35 inches,
  321.     Height =        0.153 inches,
  322.     Vertical Alignment =    0.007 inches,
  323.     Shared Contents =    yes,
  324.     Diagram =
  325. V4,
  326. (g9,1,0
  327.  (v4,1,0,0.006667,0.066723,6.326667,0.066611,17,2,0)
  328.  (E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,0,1,1,0.066667,0.066667,6,6,0,0.066
  329.   667,6))>
  330.  
  331. <First Page Header, Frame =
  332. V4,
  333. (g9,0,0
  334.  (E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,1,1,1,1,0.066667,0.066667,6,6,0,0.066
  335.   667,6))>
  336.  
  337. <Right Page Header, Frame =
  338. V4,
  339. (g9,1,0
  340.  (T8,1,12,5.373333,0.333333,0.96,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512
  341.   ,102,1101,2,
  342. <caption>
  343.  
  344. Graphics Contexts
  345.  
  346. <End Text>)
  347.  (E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,1,1,1,0.066667,0.066667,6,6,0,0.066
  348.   667,6))>
  349.  
  350. <Left Page Header, Frame =
  351. V4,
  352. (g9,1,0
  353.  (T8,1,12,0,0.333333,1.6,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512,102,110
  354.   1,2,
  355. <caption>
  356.  
  357. Graphics Contexts
  358.  
  359. <End Text>)
  360.  (E10,0,0,0,1,0,0.053333,1,15,0,0,1,0,0,0,0,1,0,1,0.066667,0.066667,6,6,0,0.066
  361.   667,6))>
  362.  
  363. <Right Page Footer, Frame =
  364. V4,
  365. (g9,1,0
  366.  (t8,1,4,6.333333,0.266667,2,17,@nntimsps10b,\240)
  367.  (t8,2,4,0.006667,0.266667,0,17,@nntimsps8i,CLX\ Programmer's\ Reference)
  368.  (v4,3,0,0,0.066667,6.333333,0.066554,17,2,0)
  369.  (E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,1,1,1,0.066667,0.066667,6,6,0,0.066
  370.   667,6))>
  371.  
  372. <Left Page Footer, Frame =
  373. V4,
  374. (g9,1,0
  375.  (t8,1,4,0,0.266667,0,17,@nntimsps10b,\240)
  376.  (t8,2,4,6.333333,0.266667,2,17,@nntimsps8i,CLX\ Programmer's\ Reference)
  377.  (v4,3,0,0.026667,0.066667,6.333333,0.066554,17,2,0)
  378.  (E10,0,0,0,1,0,0.053333,1,15,0,0,1,0,0,0,0,1,0,1,0.066667,0.066667,6,6,0,0.066
  379.   667,6))>
  380.  
  381. <sectitle,
  382.     Allow Page Break Within = no,
  383.     Allow Page Break After = no>
  384.  
  385. <|,"5<#1e>53">
  386. <Frame,
  387.     Name =            "At Anchor",
  388.     Placement =        At Anchor,
  389.     Width =            4.72 inches,
  390.     Height =        0.94 inches,
  391.     Vertical Alignment =    0.03 inches,
  392.     Diagram =
  393. V4,
  394. (g9,1,0
  395.  (T8,1,12,0.133333,0.72,4.563333,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512
  396.   ,102,1101,3,
  397. <title>
  398.  
  399. GRAPHICS CONTEXTS
  400.  
  401. <End Text>)
  402.  (E10,0,0,0,1,0,0.053333,1,15,0,0,1,0,0,0,0,1,0,1,0.066667,0.066667,6,6,0,0.066
  403.   667,6))>
  404. <Frame,
  405.     Name =            "At Anchor",
  406.     Placement =        At Anchor,
  407.     Width =            1.626 inches,
  408.     Height =        0.938 inches,
  409.     Vertical Alignment =    0 inches,
  410.     Diagram =
  411. V4,
  412. (g9,1,0
  413.  (T8,1,12,0.066667,0.276667,0,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512,10
  414.   2,1101,3,
  415. <secno,
  416.     TOC Doc Name =        TOC>
  417.  
  418. <Autonum, paranum, 1, First = Yes>
  419.  
  420. <End Text>)
  421.  (T8,2,12,0.026667,0.733333,0,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512,10
  422.   2,1101,3,
  423. <"table">
  424.  
  425. <Autonum, table, 1, First = Yes>
  426.  
  427. <End Text>)
  428.  (T8,3,12,0.066667,0.6,0,1,0.333333,0,516,0,17,0,0,0,0,0,0,1,1,2048,512,102,110
  429.   1,3,
  430. <fig,
  431.     Alignment =        Both,
  432.     Font =            F6,
  433.     Autonumber Name =    figure>
  434.  
  435. <Autonum, figure, 1, First = Yes>
  436.  
  437. <End Text>)
  438.  (g9,5,0
  439.    (p7,5,8,19
  440.      (g9,5,0
  441.        (g9,5,0
  442.          (v4,5,0,0.266667,0,1.6,0,17,1,0)
  443.          (v4,6,0,1.6,0,1.6,0.933333,17,1,0)
  444.          (v4,7,0,1.6,0.933333,0.266667,0.933333,17,1,0)
  445.          (v4,8,0,0.266667,0.933333,0.266667,0,17,1,0))))
  446.    (g9,10,8
  447.      (p7,10,1032,13
  448.        (g9,10,0
  449.          (g9,10,0
  450.            (v4,10,0,1.320703,0.934816,1.006318,0.934816,17,1,0)
  451.            (v4,11,0,1.006318,0.934816,0.871579,0.822225,17,1,0)
  452.            (v4,12,0,0.871579,0.822225,0.871579,0.709631,17,1,0)
  453.            (v4,13,0,0.871579,0.709631,1.073684,0.709631,17,1,0)
  454.            (v4,14,0,1.073684,0.709631,1.073684,0.784694,17,1,0)
  455.            (v4,15,0,1.073684,0.784694,1.253334,0.784694,17,1,0)
  456.            (v4,16,0,1.253334,0.784694,1.253334,0.597039,17,1,0)
  457.            (v4,17,0,1.253334,0.597039,0.938948,0.597039,17,1,0)
  458.            (v4,18,0,0.938948,0.597039,0.871579,0.540743,17,1,0)
  459.            (v4,19,0,0.871579,0.540743,0.871579,0.14667,17,1,0)
  460.            (v4,20,0,0.871579,0.14667,1.432984,0.14667,17,1,0)
  461.            (v4,21,0,1.432984,0.14667,1.432984,0.296792,17,1,0)
  462.            (v4,22,0,1.432984,0.296792,1.073684,0.296792,17,1,0)
  463.            (v4,23,0,1.073684,0.296792,1.073684,0.446915,17,1,0)
  464.            (v4,24,0,1.073684,0.446915,1.320703,0.446915,17,1,0)
  465.            (v4,25,0,1.320703,0.446915,1.455439,0.559508,17,1,0)
  466.            (v4,26,0,1.455439,0.559508,1.455439,0.822225,17,1,0)
  467.            (v4,27,0,1.455439,0.822225,1.320703,0.934816,17,1,0))))
  468.      (g9,28,2048
  469.        (v4,28,33,0.826667,1.16,0.826667,1.16,17,0,0)
  470.        (v4,29,33,0.826667,0.14667,0.826667,0.14667,17,0,0)
  471.        (v4,30,33,1.500352,0.14667,1.500352,0.14667,17,0,0)
  472.        (v4,31,33,1.500352,1.16,1.500352,1.16,17,0,0))))
  473.  (E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,1,1,1,0.066667,0.066667,6,6,0,0.066
  474.   667,6))>
  475.  
  476. <secrule,
  477.     Allow Page Break Within = no,
  478.     Allow Page Break After = yes,
  479.     Autonumber Name =    >
  480.  
  481. <Index, "graphics context", To Named = sectitle>
  482. <Frame,
  483.     Name =            "At Anchor",
  484.     Placement =        At Anchor,
  485.     Width =            6.35 inches,
  486.     Height =        0.153 inches,
  487.     Vertical Alignment =    0.007 inches,
  488.     Diagram =
  489. V4,
  490. (g9,1,0
  491.  (v4,1,0,0.006667,0.066723,6.333333,0.066611,17,2,0)
  492.  (E10,0,0,0,1,1,0.053333,1,15,0,0,1,0,0,0,0,0,1,1,0.066667,0.066667,6,6,0,0.066
  493.   667,6))>
  494.  
  495. <p1para,
  496.     Alignment =        Both,
  497.     Font =            F3,
  498.     Allow Page Break After = yes>
  499.  
  500. <F7>Introduction<Tab><F6>5.1<F0><#04>Clients of the X Window System 
  501. specify the visual attributes of graphical output primitives by using <F2>grap
  502. hics contexts<F0>. A graphics context is a set of graphical attribute 
  503. values such as foreground color, font, line style, and so forth. Like 
  504. a window, a graphics context is another kind of X server resource 
  505. which is created and maintained at the request of a client program. 
  506. The client program, which may use several different graphics contexts 
  507. at different times, is responsible for specifying a graphics context 
  508. to use with each graphical output function.
  509.  
  510. <para>
  511.  
  512. CLX represents a graphics context by an object of type <F6>gcontext<F0> 
  513. and defines functions to create, modify, and manipulate <F6>gcontext<F0> 
  514. objects. By default, CLX also records the contents of graphics contexts 
  515. in a cache associated with each display. This local caching of graphics 
  516. contexts has two important advantages:
  517.  
  518. <item>
  519.  
  520. <Autonum, item, 1, First = Yes><Tab>Communication efficiency <#1f> 
  521. Changes to attribute values in a <F6>gcontext<F0> are first made 
  522. only in the local cache. Just before a <F6>gcontext<F0> is actually 
  523. used, CLX automatically sends any changes to the X server, batching 
  524. all changes into a single request.
  525.  
  526. <Autonum, item, 1><Tab>Inquiring <F6>gcontext<F0> contents <#1f> 
  527. Accessor functions can be used to return the value of any individual <F6>gcont
  528. ext<F0> component by reading the copy of the <F6>gcontext<F0> from 
  529. the cache. This kind of inquiry is not supported by the basic X protocol. 
  530. There is no way for a client program to request an X server to return 
  531. the contents of a <F6>gcontext<F0>.
  532.  
  533. <para>
  534.  
  535. Caching graphics contexts can result in a synchronization problem 
  536. if more than one client program modifies a graphics context. However, 
  537. this problem is unusual. Sharing a graphics context among several 
  538. clients, while possible, is not expected to be useful and is not very 
  539. easy to do. At any rate, a client program can choose to not cache 
  540. a <F6>gcontext<F0> when it is created.
  541.  
  542. Each client program must determine its own policy for creating and 
  543. using graphics contexts. Depending on the display hardware and the 
  544. server implementation, creating a new graphics context can be more 
  545. or less expensive than modifying an existing one. In general, some 
  546. amount of graphics context information can be cached in the display 
  547. hardware, in which case modifying the hardware cache is faster than 
  548. replacing it. Typical display hardware can cache only a small number 
  549. of graphics contexts. Graphics output is fastest when only a few graphics 
  550. contexts are used without heavy modifications.
  551.  
  552. This section explains the CLX functions used to:
  553.  
  554. <bullet>
  555.  
  556. <F8>w<Tab><F0>Create a graphics context
  557.  
  558. <F8>w<Tab><F0>Return the contents of a graphics context
  559.  
  560. <F8>w<Tab><F0>Change the contents of a graphics context
  561.  
  562. <F8>w<Tab><F0>Copy a graphics context
  563.  
  564. <F8>w<Tab><F0>Free a graphics context
  565.  
  566. <p1rule>
  567.  
  568. <|,"5<#1e>54"><Index, "graphics context", "creating", To Named = p1rule>
  569. <Frame,
  570.     Name =            p1rule,
  571.     Placement =        At Anchor,
  572.     Width =            6.35 inches,
  573.     Height =        0.153 inches,
  574.     Vertical Alignment =    0.007 inches,
  575.     Shared Contents =    yes>
  576.  
  577. <p1stacked,
  578.     Font =            F3,
  579.     Left Tab =        -1.70/0 inches>
  580.  
  581. <F7>Creating <Tab><F6>5.2<#04><F0>To create a graphics context, 
  582. use <F6>create<#1e>gcontext.<#04>
  583.  
  584. <p1stacked,
  585.     Left Tab =        -1.60/0 inches>
  586.  
  587. <F7>Graphics<F0><Tab>
  588.  
  589. <p1para,
  590.     Alignment =        Both,
  591.     Font =            F3,
  592.     Allow Page Break After = yes>
  593.  
  594. <F7>Contexts<Tab>
  595.  
  596. <syntax,
  597.     Bottom Margin =        0 inches,
  598.     Left Tab =        -0.90/0 inches,
  599.     Right Tab =        7.50 inches>
  600.  
  601. create<#1e>gcontext <F3>&key <F0>:arc<#1e>mode<F3> <F0>:background<F3> 
  602. (<F0>:cache<#1e>p<F3> t) <F0>:cap<#1e>style<Tab><F3>Function<Index, Doc = operations, "xlib:create<#1e>gcontext", Sort String = "create<#1e>gcontext"><HR>
  603. <F0>:clip<#1e>mask :clip<#1e>ordering :clip<#1e>x :clip<#1e>y :dash<#1e>offset 
  604. :dashes <HR>
  605. :drawable :exposures :fill<#1e>rule :fill<#1e>style :font :foreground <HR>
  606. :function :join<#1e>style :line<#1e>style :line<#1e>width :plane<#1e>mask 
  607. :stipple :subwindow<#1e>mode :tile :ts<#1e>x :ts<#1e>y
  608.  
  609. <return>
  610.  
  611. <Tab><F3>Returns: <F2><HR>
  612.   gcontext <F3><#1f> Type <F0>gcontext<F3>.
  613.  
  614. <para>
  615.  
  616. Creates, initializes, and returns a graphics context (<F6>gcontext<F0>). 
  617. The graphics context can only be used with destination drawables having 
  618. the same root and depth as the specified <F6>:drawable<F0>. If <F6>:cache<#1e>
  619. p<F0> is non<#1e><F6>nil<F0>, the graphics context state is cached 
  620. locally, and changing a component has no effect unless the new value 
  621. differs from the cached value. Changes to a graphics context (<F6>setf<F0> 
  622. and <F6>with<#1e>gcontext<F0>) are always deferred regardless of 
  623. the cache mode and sent to the server only when required by a local 
  624. operation or by an explicit call to <F6>force<#1e>gcontext<#1e>changes<F0>.
  625.  
  626. <keyword2>
  627.  
  628. :cache<#1e>p <F3><#1f> Specifies if this graphics context should 
  629. be cached locally by CLX. If <F0>nil<F3> then the state is not cached, 
  630. otherwise a local cache is kept. 
  631.  
  632. :drawable <F3><#1f> The <F0>drawable<F3> whose root and depth are 
  633. to be associated with this graphics context. This is a required keyword 
  634. argument.
  635.  
  636. :arc<#1e>mode<F3>, <F0>:background<F3>, <F0>:cap<#1e>style<F3>, <F0>:clip
  637. <#1e>mask<F3>, <F0>:clip<#1e>ordering<F3>, <F0>:clip<#1e>x<F3>, <F0>:clip
  638. <#1e>y<F3>, <F0>:dash<#1e>offset<F3>, <F0>:dashes<F3>, <F0>:exposures
  639. <F3>, <F0>:fill<#1e>rule<F3>, <F0>:fill<#1e>style<F3>, <F0>:font<F3>, 
  640. <F0>:foreground<F3>, <F0>:function<F3>, <F0>:join<#1e>style<F3>, <F0>:li
  641. ne<#1e>style<F3>, <F0>:line<#1e>width<F3>, <F0>:plane<#1e>mask<F3>, <F0>:
  642. stipple<F3>, <F0>:subwindow<#1e>mode<F3>, <F0>:tile<F3>, <F0>:ts<#1e>x
  643. <F3>, <F0>:ts<#1e>y <F3><#1f> Initial attribute values for the 
  644. graphics context.
  645.  
  646. <para,
  647.     New Page =        yes>
  648.  
  649. <|,"5<#1e>55">All of the graphics context components are set to the values 
  650. that are specified by the keyword arguments, except that a value of <F6>nil 
  651. <F0>causes the default value to be used. These default values are 
  652. as <Autonum, table, 1>follows: 
  653.  
  654. <ritabhd1,
  655.     Left Tab =        0/1.50/2.30/3.50/7.50 inches>
  656.  
  657. <Tab-><Tab-><Tab-><Tab-><HR>
  658. <Index, "graphics context", "components", "default values">Component<Tab>Default Value<HR>
  659. <Tab-><Tab-><Tab-><Tab->
  660.  
  661. <tbline1>
  662.  
  663. <F6>arc<#1e>mode<F0><Tab><F6>:pie<#1e>slice
  664.  
  665. <F6>background<F0><Tab>1 
  666.  
  667. <F6>cap<#1e>style<F0><Tab><F6>:butt
  668.  
  669. <F6>clip<#1e>mask<F0><Tab><F6>:none
  670.  
  671. <F6>clip<#1e>ordering<F0><Tab><F6>:unsorted
  672.  
  673. <F6>clip<#1e>x<F0><Tab>0 
  674.  
  675. <F6>clip<#1e>y<F0><Tab>0 
  676.  
  677. <F6>dash<#1e>offset<F0><Tab>0 
  678.  
  679. <F6>dashes<F0><Tab>4 (that is, the list '(4, 4)) 
  680.  
  681. <F6>exposures<F0><Tab><F6>:on
  682.  
  683. <F6>fill<#1e>rule<F0><Tab><F6>:even<#1e>odd
  684.  
  685. <F6>fill<#1e>style<F0><Tab><F6>:solid
  686.  
  687. <F6>font<F0><Tab>server dependent
  688.  
  689. <F6>foreground<F0><Tab>0 
  690.  
  691. <F6>function<F0><Tab><F6>boole<#1e>1
  692.  
  693. <F6>join<#1e>style<F0><Tab><F6>:miter
  694.  
  695. <F6>line<#1e>style<F0><Tab><F6>:solid
  696.  
  697. <F6>line<#1e>width<F0><Tab>0 
  698.  
  699. <F6>plane<#1e>mask<F0><Tab>A bit mask of all ones 
  700.  
  701. <F6>stipple<F0><Tab>Pixmap of unspecified size filled with ones <F6>subwindo
  702. w<#1e>mode<F0><Tab><F6>:clip<#1e>by<#1e>children
  703.  
  704. <F6>tile<F0><Tab>Pixmap of an unspecified size filled with the<HR>
  705. <Tab>foreground pixel (that is, the client<#1e>specified pixel<HR>
  706. <Tab>if any, or else 0) 
  707.  
  708. <F6>ts<#1e>x<F0><Tab>0 
  709.  
  710. <F6>ts<#1e>y<F0><Tab>0 
  711.  
  712. <endrule>
  713.  
  714. <Tab-><Tab-><Tab-><Tab->
  715.  
  716. <para>
  717.  
  718. Note that foreground and background do not default to any values that 
  719. are likely to be useful on a color display. Since specifying a <F6>nil<F0> 
  720. value means use the default, this implies for clip<#1e>mask that an 
  721. empty rectangle sequence cannot be specified as an empty list; <F6>:none<F0> 
  722. must be used instead. Specifying a <F6>stringable<F0> for font causes 
  723. an implicit <F6>open<#1e>font<F0> call to occur.
  724.  
  725. <p1rule>
  726.  
  727. <Index, "graphics context", "attributes", To Named = p1rule>
  728. <Frame,
  729.     Name =            p1rule,
  730.     Placement =        At Anchor,
  731.     Width =            6.35 inches,
  732.     Height =        0.153 inches,
  733.     Vertical Alignment =    0.007 inches,
  734.     Shared Contents =    yes>
  735.  
  736. <p1stacked,
  737.     Font =            F3,
  738.     Left Tab =        -1.70/0 inches>
  739.  
  740. <F7>Graphics <Tab><F6>5.3<F0><#04>The following paragraphs describe 
  741. the CLX functions used to return or<FJ>
  742.  
  743. <p1stacked,
  744.     Left Tab =        -1.60/0 inches>
  745.  
  746. <F7>Context<F0><Tab><F3>change the<SP>attributes of a <F0>gcontext<F3>. 
  747. Functions that return the contents of a<FJ>
  748.  
  749. <p1para,
  750.     Alignment =        Both,
  751.     Font =            F3,
  752.     Allow Page Break After = yes>
  753.  
  754. <F7>Attributes<Tab><F6>gcontext<F0> return <F6>nil<F0> if the 
  755. last value stored is unknown (for example, if<FJ>
  756. the<SP><F6>gcontext<F0> was not cached or if the <F6>gcontext<F0> 
  757. was not created by the inquiring<SP>client).
  758.  
  759. <syntax,
  760.     Bottom Margin =        0 inches,
  761.     Left Tab =        -0.90/0 inches,
  762.     Right Tab =        7.50 inches>
  763.  
  764. gcontext<#1e>arc<#1e>mode<F3> <F2>gcontext<F0><Tab><F3>Function<F0><Index, "arc<#1e>mode attribute of graphics context"><Index, "graphics context", "attribute", "arc<#1e>mode"><Index, Doc = operations, "xlib:gcontext<#1e>arc<#1e>mode", Sort String = "gcontext<#1e>arc<#1e>mode">
  765.  
  766. <return>
  767.  
  768. <Tab><F3>Returns: <F2><HR>
  769.   arc<#1e>mode <F3><#1f> Either <F0>:chord<F3> or <F0>:pie<#1e>slice<F3>.
  770.  
  771. <para>
  772.  
  773. Returns and (with <F6>setf<F0>) changes the arc<#1e>mode attribute 
  774. of the specified graphics context.
  775.  
  776. The arc<#1e>mode attribute of a graphics context controls the kind 
  777. of filling, if any, to be done by the <F6>draw<#1e>arcs<F0> function. 
  778. A value of <F6>:chord<F0> specifies that arcs are filled inward 
  779. to the chord between the end points of the arc. <F6>:pie<#1e>slice <F0>specif
  780. ies that arcs are filled inward to the center point of the arc, creating 
  781. a pie slice effect.
  782.  
  783. <arg>
  784.  
  785. <|,"5<#1e>56">gcontext <F3><#1f> A <F6>gcontext<F3>.
  786.  
  787. <syntax,
  788.     Bottom Margin =        0 inches,
  789.     Left Tab =        -0.90/0 inches,
  790.     Right Tab =        7.50 inches>
  791.  
  792. gcontext<#1e>background<F3> <F2>gcontext<F0><Tab><F3>Function<F0><Index, "background attribute", "graphics context"><Index, "graphics context", "attribute", "background"><Index, Doc = operations, "xlib:gcontext<#1e>background", Sort String = "gcontext<#1e>background">
  793.  
  794. <return>
  795.  
  796. <Tab><F3>Returns: <F2><HR>
  797.   background <F3><#1f> Type <F0>card32<F3>.
  798.  
  799. <para>
  800.  
  801. Returns and (with <F6>setf<F0>) changes the background attribute 
  802. of the specified graphics context.
  803.  
  804. The background attribute specifies the pixel value drawn for pixels 
  805. that are not set in a bitmap and for pixels that are cleared by a 
  806. graphics operation, such as the gaps in dashed lines.
  807.  
  808. <arg>
  809.  
  810. gcontext <F3><#1f> A <F6>gcontext<F3>.
  811.  
  812. <syntax,
  813.     Bottom Margin =        0 inches,
  814.     Left Tab =        -0.90/0 inches,
  815.     Right Tab =        7.50 inches>
  816.  
  817. gcontext<#1e>cache<#1e>p<F3> <F2>gcontext<F0><Tab><F3>Function<Index, Doc = operations, "xlib:gcontext<#1e>cache<#1e>p", Sort String = "gcontext<#1e>cache<#1e>p"><Index, "graphics context", "local cache mode">
  818.  
  819. <return>
  820.  
  821. <Tab><F3>Returns: <F2><HR>
  822.   cache<#1e>p <F3><#1f> Type <F0>boolean<F3>.
  823.  
  824. <para>
  825.  
  826. Returns and (with <F6>setf<F0>) changes the local cache mode for 
  827. the <F2>gcontext<F0>. If true, the state of the <F2>gcontext<F0> 
  828. is cached by CLX and changes to its attributes have no effect unless 
  829. the new value differs from its cached value.
  830.  
  831. <arg>
  832.  
  833. gcontext <F3><#1f> A <F6>gcontext<F3>.
  834.  
  835. <syntax,
  836.     Bottom Margin =        0 inches,
  837.     Left Tab =        -0.90/0 inches,
  838.     Right Tab =        7.50 inches>
  839.  
  840. gcontext<#1e>cap<#1e>style <F2>gcontext<F0><Tab><F3>Function<F0><Index, "cap<#1e>style attribute of graphics context"><Index, "graphics context", "attribute", "cap<#1e>style"><Index, Doc = operations, "xlib:gcontext<#1e>cap<#1e>style", Sort String = "gcontext<#1e>cap<#1e>style">
  841.  
  842. <return>
  843.  
  844. <Tab><F3>Returns: <F2><HR>
  845.   cap<#1e>style <F3><#1f> One of <F0>:butt<F3>, <F0>:not<#1e>last<F3>, 
  846. <F0>:projecting<F3>, or <F0>:round<F3>.
  847.  
  848. <para,
  849.     Bottom Margin =        0.14 inches>
  850.  
  851. Returns and (with <F6>setf<F0>) changes the cap<#1e>style attribute 
  852. of the specified graphics context.
  853.  
  854. <para>
  855.  
  856. The cap<#1e>style attribute of a graphics context defines how the 
  857. end points of a path are drawn. The possible values and their interpretations 
  858. are as follows:
  859.  
  860. <ritabhd1,
  861.     Left Tab =        0/1.30/1.60/3.50/7.50 inches>
  862.  
  863. <Tab-><Tab-><Tab-><Tab-><HR>
  864. Cap<#1e>Style<Tab><Tab>Interpretation<HR>
  865. <Tab-><Tab-><Tab-><Tab->
  866.  
  867. <tbline1a>
  868.  
  869. <F6>:butt<F0><Tab>Square at the end point (perpendicular to the 
  870. slope of the line) with no projection beyond.<HR>
  871.  
  872. <F6>:not<#1e>last<F0><Tab>Equivalent to <F6>:butt<F0>, except 
  873. that for a line<#1e>width of zero or one the final end point is not 
  874. drawn.<HR>
  875.  
  876. <F6>:projecting<F0><Tab>Square at the end, but the path continues  
  877. beyond the end point for a distance equal to half the line<#1e>width. 
  878. This is equivalent to <F6>:butt<F0> for line<#1e>width zero or one.<HR>
  879.  
  880. <F6>:round<F0><Tab>A circular arc with the radius equal to 1/2 of 
  881. the line<#1e>width, centered on the end point. This is equivalent 
  882. to <F6>:butt<F0> for line<#1e>width zero or one.
  883.  
  884. <endrule>
  885.  
  886. <Tab-><Tab-><Tab-><Tab->
  887.  
  888. <para,
  889.     Bottom Margin =        0.14 inches>
  890.  
  891. The following table describes what happens when the end points of 
  892. a line are identical. The effect depends on both the cap style and 
  893. line width.
  894.  
  895. <ritabhd1>
  896.  
  897. <|,"5<#1e>57"><Tab-><Tab-><Tab-><Tab-><HR>
  898. Cap<#1e>Style<Tab>Line<#1e>Width<Tab>Effect<HR>
  899. <Tab-><Tab-><Tab-><Tab->
  900.  
  901. <tbline1,
  902.     Left Tab =        0/1.30/2.30/3.50/7.50 inches>
  903.  
  904. <F6>:butt<F0><Tab>thin<Tab>Device dependent, but the desired<HR>
  905. <Tab><Tab>effect is that a single pixel is drawn.<HR>
  906.  
  907. <F6>:butt<F0><Tab>wide<Tab>Nothing is drawn.<HR>
  908.  
  909. <F6>:not<#1e>last<F0><Tab>thin<Tab>Device dependent, but the desired<HR>
  910. <Tab><Tab>effect is that nothing is drawn.<HR>
  911. <HR>
  912. <F6>:projecting<F0><Tab>thin<Tab>Same as <F6>:butt<F0> with thin 
  913. line<#1e>width.<HR>
  914.  
  915. <F6>:projecting<F0><Tab>wide<Tab>The closed path is a square, aligned<HR>
  916. <Tab><Tab>with the coordinate axes, centered at<HR>
  917. <Tab><Tab>the end point, with sides equal to the<HR>
  918. <Tab><Tab>line<#1e>width.<HR>
  919.  
  920.  
  921. <F6>:round<F0><Tab>wide<Tab>The closed path is a circle, centered<HR>
  922. <Tab><Tab>at the end point, with diameter equal<HR>
  923. <Tab><Tab>to the line<#1e>width.<HR>
  924.  
  925. <F6>:round<F0><Tab>thin<Tab>Same as <F6>:butt <F0>with thin line<#1e>width.
  926.  
  927. <endrule,
  928.     Bottom Margin =        0.14 inches>
  929.  
  930. <Tab-><Tab-><Tab-><Tab->
  931.  
  932. <arg>
  933.  
  934. gcontext <F3><#1f> A <F6>gcontext<F3>.
  935.  
  936. <syntax>
  937.  
  938. gcontext<#1e>clip<#1e>mask <F2>gcontext<F0> <F3>&optional <F2>ordering
  939. <F0><Tab><F3>Function<F0><Index, "clip<#1e>mask attribute of graphics context"><Index, "graphics context", "attribute", "clip<#1e>mask"><Index, Doc = operations, "xlib:close<#1e>display", Sort String = "close<#1e>display">
  940.  
  941. <para>
  942.  
  943. Returns and (with <F6>setf<F0>) changes the clip<#1e>mask attribute 
  944. of the graphics context.
  945.  
  946. When changing the clip<#1e>mask attribute, the new clip<#1e>mask can 
  947. be<SP>specified as a pixmap or a <F6>rect<#1e>seq<F0> or as the 
  948. values <F6>:none<F0> or <F6>nil<F0>. The<SP>ordering argument 
  949. can be specified only with <F6>setf<F0> when the new clip<#1e>mask<SP>is 
  950. a <F6>rect<#1e>seq<F0>.
  951.  
  952. The clip<#1e>mask attribute of a graphics context affects all graphics 
  953. operations and is used to restrict output to the destination drawable. 
  954. The clip<#1e>mask does not clip the source of a graphics operation. 
  955. A value of <F6>:none <F0>for clip<#1e>mask indicates that no clipping 
  956. is to be done.
  957.  
  958. If a pixmap is specified as the clip<#1e>mask, it must have depth 
  959. one and the same root as the specified graphics context. Pixels where 
  960. the clip<#1e>mask has a one bit are drawn. Pixels outside the area 
  961. covered by the clip<#1e>mask or where the clip<#1e>mask has a zero 
  962. bit are not drawn.
  963.  
  964. If a sequence of rectangles is specified as the clip<#1e>mask, the 
  965. output is clipped to remain contained within the rectangles. The rectangles 
  966. should be non<#1e>intersecting, or the results of graphics operations 
  967. will be undefined. The rectangle coordinates are interpreted relative 
  968. to the clip origin. Note that the sequence of rectangles can be empty, 
  969. which effectively disables output. This is the opposite of setting 
  970. the clip<#1e>mask to <F6>:none<F0>.
  971.  
  972. <|,"5<#1e>58">If known by the client, the ordering of clip<#1e>mask rectangles 
  973. can be specified to provide faster operation by the server. A value 
  974. of <F6>:unsorted<F0> means the rectangles are in arbitrary order. 
  975. A value of <F6>:y<#1e>sorted<F0> means that the rectangles are non<#1e>decrea
  976. sing in their Y origin. A <F6>:yx<#1e>sorted<F0> value is like <F6>:y<#1e>so
  977. rted<F0> with the additional constraint that all rectangles with 
  978. an equal Y origin are non<#1e>decreasing in their X origin. A <F6>:yx<#1e>band
  979. ed<F0> value additionally constrains <F6>:yx<#1e>sorted<F0> by 
  980. requiring that, for every possible Y scan line, all rectangles that 
  981. include that scan line have an identical Y origins and Y extents. 
  982. If incorrect ordering is specified, the X server may generate an error, 
  983. but it is not required to do so. If no error is generated, the results 
  984. of the graphics operations are undefined.
  985.  
  986. <arg>
  987.  
  988. gcontext <#1f> <F3>A <F6>gcontext<F3>.
  989.  
  990. ordering <#1f> <F3>One of <F6>:unsorted<F3>, <F6>:y<#1e>sorted<F3>, <F6>:
  991. yx<#1e>banded<F3>, <F6>:yx<#1e>sorted<F3>, or <F6>nil<F3>.
  992.  
  993. <syntax,
  994.     Bottom Margin =        0 inches,
  995.     Left Tab =        -0.90/0 inches,
  996.     Right Tab =        7.50 inches>
  997.  
  998. gcontext<#1e>clip<#1e>x <F2>gcontext<F0><Tab><F3>Function<F0><Index, "clip<#1e>x attribute of graphics context"><Index, "graphics context", "attribute", "clip<#1e>x"><Index, Doc = operations, "xlib:gcontext<#1e>clip<#1e>x", Sort String = "gcontext<#1e>clip<#1e>x">
  999.  
  1000. <return>
  1001.  
  1002. <Tab><F3>Returns: <F2><HR>
  1003.   clip<#1e>x <F3><#1f> Type <F0>int16<F3>.
  1004.  
  1005. <para>
  1006.  
  1007. Returns and (with <F6>setf<F0>) changes the clip<#1e>x attribute 
  1008. of the specified graphics context.
  1009.  
  1010. The clip<#1e>x and clip<#1e>y attributes specify the origin for the 
  1011. clip<#1e>mask, whether it is a pixmap or a sequence of rectangles. 
  1012. These coordinates are interpreted relative to the origin of whatever 
  1013. destination drawable is specified in a graphics operation.
  1014.  
  1015. <arg>
  1016.  
  1017. gcontext <F3><#1f> A <F6>gcontext<F3>.
  1018.  
  1019. <syntax,
  1020.     Bottom Margin =        0 inches,
  1021.     Left Tab =        -0.90/0 inches,
  1022.     Right Tab =        7.50 inches>
  1023.  
  1024. gcontext<#1e>clip<#1e>y <F2>gcontext<F0><Tab><F3>Function<F0><Index, "clip<#1e>y attribute of graphics context"><Index, "graphics context", "attribute", "clip<#1e>y"><Index, Doc = operations, "xlib:gcontext<#1e>clip<#1e>y", Sort String = "gcontext<#1e>clip<#1e>y">
  1025.  
  1026. <return>
  1027.  
  1028. <Tab><F3>Returns: <F2><HR>
  1029.   clip<#1e>y <F3><#1f> Type <F0>int16<F3>.
  1030.  
  1031. <para>
  1032.  
  1033. Returns and (with <F6>setf<F0>) changes the clip<#1e>y attribute 
  1034. of the specified graphics context.
  1035.  
  1036. The clip<#1e>x and clip<#1e>y attributes specify the origin for the 
  1037. clip<#1e>mask, whether it is a pixmap or a sequence of rectangles. 
  1038. These coordinates are interpreted relative to the origin of whatever 
  1039. destination drawable is specified in a graphics operation.
  1040.  
  1041. <arg>
  1042.  
  1043. gcontext <F3><#1f> A <F6>gcontext<F3>.
  1044.  
  1045. <syntax,
  1046.     Bottom Margin =        0 inches,
  1047.     Left Tab =        -0.90/0 inches,
  1048.     Right Tab =        7.50 inches>
  1049.  
  1050. gcontext<#1e>dash<#1e>offset <F2>gcontext<F0><Tab><F3>Function<F0><Index, "dash<#1e>offset attribute of graphics context"><Index, "graphics context", "attribute", "dash<#1e>offset"><Index, Doc = operations, "xlib:gcontext<#1e>dash<#1e>offset", Sort String = "gcontext<#1e>dash<#1e>offset">
  1051.  
  1052. <return>
  1053.  
  1054. <Tab><F3>Returns: <F2><HR>
  1055.   dash<#1e>offset <F3><#1f> Type <F0>card16<F3>.
  1056.  
  1057. <para>
  1058.  
  1059. Returns and (with <F6>setf<F0>) changes the dash<#1e>offset attribute 
  1060. of the specified graphics context.
  1061.  
  1062. The dash<#1e>offset attribute of a graphics context defines the phase 
  1063. of the pattern contained in the dashes attribute. This phase specifies 
  1064. how many elements (pixels) into the path the pattern should actually 
  1065. begin in any single graphics operation. Dashing is continuous through 
  1066. path elements combined with a join<#1e>style, but is reset to the 
  1067. dash<#1e>offset each time a cap<#1e>style is applied at a line end 
  1068. point.
  1069.  
  1070. <arg>
  1071.  
  1072. gcontext <F3><#1f> A <F6>gcontext<F3>.
  1073.  
  1074. <syntax,
  1075.     Bottom Margin =        0 inches,
  1076.     Left Tab =        -0.90/0 inches,
  1077.     Right Tab =        7.50 inches>
  1078.  
  1079. gcontext<#1e>dashes <F2>gcontext<F0><Tab><F3>Function<F0><Index, "dashes attribute of graphics context"><Index, "graphics context", "attribute", "dashes"><Index, Doc = operations, "xlib:gcontext<#1e>dashes", Sort String = "gcontext<#1e>dashes">
  1080.  
  1081. <return>
  1082.  
  1083. <Tab><F3>Returns: <F2><HR>
  1084.   dashes <F3><#1f> Type <F0>sequence<F3> or <F0>card8<F3>.
  1085.  
  1086. <para>
  1087.  
  1088. Returns and (with <F6>setf<F0>) changes the dashes attribute of 
  1089. the specified graphics context. The sequence must be non<#1e>empty 
  1090. and the elements must be non<#1e>zero <F6>card8<F0> values.
  1091.  
  1092. <|,"5<#1e>59">The dashes attribute in a graphics context specifies the pattern 
  1093. that is used for graphics operations which use the dashed line styles. 
  1094. It is a non<#1e><F6>nil<F0> sequence with each element representing 
  1095. the length of a single dash or space. The initial and alternating 
  1096. elements of the dashes are the even dashes, while the others are the 
  1097. odd dashes. An odd length sequence is equivalent to the same sequence 
  1098. concatenated with itself to produce an even length sequence. All of 
  1099. the elements of a dashes sequence must be non<#1e>zero.
  1100.  
  1101. Specifying a single integer value, <F2>N<F0>, for the dashes attribute 
  1102. is an abbreviated way of specifying a two element sequence with both 
  1103. elements equal to the specified value [<F2>N<F0>, <F2>N<F0>].
  1104.  
  1105. The unit of measure for dashes is the same as in the ordinary coordinate 
  1106. system. Ideally, a dash length is measured along the slope of the 
  1107. line, but server implementations are only required to match this ideal 
  1108. for horizontal and vertical lines.
  1109.  
  1110. <arg>
  1111.  
  1112. gcontext <F3><#1f> A <F6>gcontext<F3>.
  1113.  
  1114. <syntax0>
  1115.  
  1116. gcontext<#1e>display<F3> <F2>gcontext<F0><Tab><F3>Function<Index, Doc = operations, "xlib:gcontext<#1e>display", Sort String = "gcontext<#1e>display">
  1117.  
  1118. <return>
  1119.  
  1120. <Tab><F3>Returns: <F2><HR>
  1121.   display <F3><#1f> Type <F0>display<F3>. 
  1122.  
  1123. <para>
  1124.  
  1125. Returns the <F6>display<F0> object associated with the specified <F2>gcontex
  1126. t<F0>. 
  1127.  
  1128. <arg>
  1129.  
  1130. gcontext <#1f> <F3>A <F6>gcontext<F3>. 
  1131.  
  1132. <syntax,
  1133.     Bottom Margin =        0 inches,
  1134.     Left Tab =        -0.90/0 inches,
  1135.     Right Tab =        7.50 inches>
  1136.  
  1137. gcontext<#1e>equal <F2>gcontext<#1e>1<F3> <F2>gcontext<#1e>2<F0><Tab><F3>F
  1138. unction<Index, Doc = operations, "xlib:gcontext<#1e>equal", Sort String = "gcontext<#1e>equal">
  1139.  
  1140. <return>
  1141.  
  1142. <Tab><F3>Returns: <F2><HR>
  1143.   equal<#1e>p <F3><#1f> Type <F0>boolean<F3>.
  1144.  
  1145. <para>
  1146.  
  1147. Returns true if the two arguments refer to the same server resource, 
  1148. and <F6>nil<F0> if they do not.
  1149.  
  1150. <arg>
  1151.  
  1152. gcontext<#1e>1<F3>, <F0>gcontext<#1e>2 <F3><#1f> A <F6>gcontext<F3>.
  1153.  
  1154. <syntax,
  1155.     Bottom Margin =        0 inches,
  1156.     Left Tab =        -0.90/0 inches,
  1157.     Right Tab =        7.50 inches>
  1158.  
  1159. gcontext<#1e>exposures <F2>gcontext<F0><Tab><F3>Function<F0><Index, "exposures attribute of graphics context"><Index, "graphics context", "attribute", "exposures"><Index, Doc = operations, "xlib:gcontext<#1e>exposures", Sort String = "gcontext<#1e>exposures">
  1160.  
  1161. <return>
  1162.  
  1163. <Tab><F3>Returns: <F2><HR>
  1164.   exposures <F3><#1f> Either <F0>:off<F3> or <F0>:on<F3>.
  1165.  
  1166. <para>
  1167.  
  1168. Returns and (with <F6>setf<F0>) changes the exposures attribute 
  1169. of the specified graphics context.
  1170.  
  1171. The exposures attribute in a graphics context controls the generation 
  1172. of <F6>:graphics<#1e>exposure<F0> events for calls to the <F6>copy<#1e>area
  1173. <F0> and <F6>copy<#1e>plane<F0> functions. If <F6>:on<F0>, <F6>:graphics<#1e>
  1174. exposure<F0> events will be reported when calling the <F6>copy<#1e>area<F0> 
  1175. and <F6>copy<#1e>plane<F0> functions with this graphics context. 
  1176. Otherwise, if <F6>:off<F0>, the events will not be reported.
  1177.  
  1178. <arg>
  1179.  
  1180. gcontext <F3><#1f> A <F6>gcontext<F3>.
  1181.  
  1182. <syntax,
  1183.     Bottom Margin =        0 inches,
  1184.     Left Tab =        -0.90/0 inches,
  1185.     Right Tab =        7.50 inches>
  1186.  
  1187. gcontext<#1e>fill<#1e>rule <F2>gcontext<F0><Tab><F3>Function<F0><Index, "fill<#1e>rule attribute of graphics context"><Index, "graphics context", "attribute", "fill<#1e>rule"><Index, Doc = operations, "xlib:gcontext<#1e>fill<#1e>rule", Sort String = "gcontext<#1e>fill<#1e>rule">
  1188.  
  1189. <return>
  1190.  
  1191. <Tab><F3>Returns: <F2><HR>
  1192.   fill<#1e>rule <F3><#1f> Either <F0>:even<#1e>odd<F3> or <F0>:winding
  1193. <F3>.
  1194.  
  1195. <para>
  1196.  
  1197. Returns and (with <F6>setf<F0>) changes the fill<#1e>rule attribute 
  1198. of the specified graphics context.
  1199.  
  1200. The fill<#1e>rule attribute in a graphics context specifies the rule 
  1201. used to determine the interior of a filled area. It can be specified 
  1202. as either <F6>:even<#1e>odd<F0> or <F6>:winding<F0>.
  1203.  
  1204. The <F6>:even<#1e>odd<F0> rule defines a point to be inside if any 
  1205. infinite ray starting at the point crosses the border an odd number 
  1206. of times. Tangencies do not count as a crossing.
  1207.  
  1208. <|,"5<#1e>60">The <F6>:winding<F0> rule defines a point to be inside if 
  1209. any infinite ray starting at the point crosses an unequal number of 
  1210. clockwise and counterclockwise directed border segments. A clockwise 
  1211. directed border segment crosses the ray from left to right as observed 
  1212. from the point. A counterclockwise segment crosses the ray from right 
  1213. to left as observed from the point. The case where a directed line 
  1214. segment is coincident with the ray is uninteresting because you can 
  1215. simply choose a different ray that is not coincident with a segment.
  1216.  
  1217. For both <F6>:even<#1e>odd<F0> and <F6>:winding<F0>, a point is 
  1218. infinitely small, and the border is an infinitely thin line. A pixel 
  1219. is inside if the center point of the pixel is inside, and the center 
  1220. point is not on the border. If the center point is on the border, 
  1221. the pixel is inside if, and only if, the polygon interior is immediately 
  1222. to its right (x increasing direction). Pixels with centers along a 
  1223. horizontal edge are a special case and are inside if, and only if, 
  1224. the polygon interior is immediately below (y increasing direction).
  1225.  
  1226. <arg>
  1227.  
  1228. gcontext <F3><#1f> A <F6>gcontext<F3>.
  1229.  
  1230. <syntax,
  1231.     Bottom Margin =        0 inches,
  1232.     Left Tab =        -0.90/0 inches,
  1233.     Right Tab =        7.50 inches>
  1234.  
  1235. gcontext<#1e>fill<#1e>style <F2>gcontext<F0><Tab><F3>Function<F0><Index, "fill<#1e>style attribute of graphics context"><Index, "graphics context", "attribute", "fill<#1e>style"><Index, Doc = operations, "xlib:gcontext<#1e>fill<#1e>style", Sort String = "gcontext<#1e>fill<#1e>style">
  1236.  
  1237. <return>
  1238.  
  1239. <Tab><F3>Returns: <F2><HR>
  1240.   fill<#1e>style <F3><#1f> One of <F0>:opaque<#1e>stippled<F3>, <F0>:solid
  1241. <F3>, <F0>:stippled<F3>, or :<F0>tiled<F3>.
  1242.  
  1243. <para>
  1244.  
  1245. Returns and (with <F6>setf<F0>) changes the fill<#1e>style attribute 
  1246. of the specified graphics context.
  1247.  
  1248. The fill<#1e>style attribute of a graphics context defines the contents 
  1249. of the source for line, text, and fill graphics operations. It determines 
  1250. whether the source image is drawn with a solid color, a tile, or a 
  1251. stippled tile. The possible values and their meanings are as follows: 
  1252.  
  1253. <ritabhd1,
  1254.     Left Tab =        0/1.30/1.60/3.50/7.50 inches>
  1255.  
  1256. <Tab-><Tab-><Tab-><Tab-><HR>
  1257. Fill<#1e>Style<Tab><Tab>Meaning<HR>
  1258. <Tab-><Tab-><Tab-><Tab->
  1259.  
  1260. <tbline1,
  1261.     Left Margin =        3.20 inches,
  1262.     First Indent =        -1.60 inches,
  1263.     Left Tab =        0/1.30/2.30/3.50/7.50 inches>
  1264.  
  1265. <F6>:opaque<#1e>stippled<F0><Tab>Filled with a tile with the same 
  1266. width and height as stipple, but with the background value used everywhere 
  1267. stipple has a zero and the foreground pixel value used everywhere 
  1268. stipple has a one.<HR>
  1269.  
  1270. <F6>:solid<F0><Tab>Filled with the foreground pixel value.<HR>
  1271.  
  1272. <F6>:stippled<F0><Tab>Filled with the foreground pixel value masked 
  1273. by stipple.<HR>
  1274.  
  1275. <F6>:tiled<F0><Tab>Filled with tile.
  1276.  
  1277. <endrule>
  1278.  
  1279. <Tab-><Tab-><Tab-><Tab->
  1280.  
  1281. <para>
  1282.  
  1283. When drawing lines with line<#1e>style <F6>:double<#1e>dash<F0>, 
  1284. the filling of the odd dashes are controlled by the fill<#1e>style 
  1285. in the following manner: 
  1286.  
  1287. <ritabhd1,
  1288.     Left Tab =        0/1.50/2.30/3.50/7.50 inches>
  1289.  
  1290. <Tab-><Tab-><Tab-><Tab-><HR>
  1291. Fill<#1e>Style<Tab>Effect<HR>
  1292. <Tab-><Tab-><Tab-><Tab->
  1293.  
  1294. <tbline1,
  1295.     Left Tab =        0/1.50/2.50/3.50/7.50 inches>
  1296.  
  1297. <F6>:opaque<#1e>stippled<Tab><F0>Same as for even dashes.<HR>
  1298.  
  1299. <tbline1>
  1300.  
  1301. <F6>:solid<F0><Tab>Filled with the background pixel value.<HR>
  1302.  
  1303. <F6>:stippled<F0><Tab>Filled with the background pixel value masked 
  1304. by<HR>
  1305. <Tab>stipple.<HR>
  1306.  
  1307. <F6>:tiled<F0><Tab>Filled the same as the even dashes.
  1308.  
  1309. <endrule>
  1310.  
  1311. <Tab-><Tab-><Tab-><Tab->
  1312.  
  1313. <arg>
  1314.  
  1315. <|,"5<#1e>61">gcontext <F3><#1f> A <F6>gcontext<F3>.
  1316.  
  1317. <syntax,
  1318.     Bottom Margin =        0 inches,
  1319.     Left Tab =        -0.90/0 inches,
  1320.     Right Tab =        7.50 inches>
  1321.  
  1322. gcontext<#1e>font <F2>gcontext <F3>&optional <F2>metrics<#1e>p<F0><Tab>
  1323. <F3>Function<F0><Index, "font", "attribute of graphics context"><Index, "graphics context", "attribute", "font"><Index, Doc = operations, "xlib:gcontext<#1e>font", Sort String = "gcontext<#1e>font">
  1324.  
  1325. <return>
  1326.  
  1327. <Tab><F3>Returns: <F2> <HR>
  1328.   font <F3><#1f> Type <F0>font<F3> or <F0>null<F3>.
  1329.  
  1330. <para>
  1331.  
  1332. Returns and (with <F6>setf<F0>) changes the <F2>font<F0> attribute 
  1333. of the specified graphics context. If the stored font is known, it 
  1334. is returned. If it is not known and the <F2>metrics<#1e>p<F0> argument 
  1335. is <F6>nil<F0>, then <F6>nil<F0> is returned. If the font is not 
  1336. known and <F2>metrics<#1e>p<F0> is true, then a pseudo<#1e>font 
  1337. is constructed and returned. For a constructed pseudo<#1e>font, full 
  1338. metric and property information can be obtained, but it does not have 
  1339. a name or a resource ID, and attempts to use it where a resource ID 
  1340. is required results in an invalid<#1e>font error.
  1341.  
  1342. The font attribute in a graphics context defines the default text 
  1343. font used in text drawing operations. When setting the value of the 
  1344. font attribute, either a <F6>font<F0> object or a font name can 
  1345. be used. If a font name is passed, <F6>open<#1e>font<F0> is call 
  1346. automatically to get the <F6>font<F0> object.
  1347.  
  1348. <arg>
  1349.  
  1350. gcontext <F3><#1f> A <F6>gcontext<F3>.
  1351.  
  1352. metrics<#1e>p <F3><#1f> Specifies whether a pseudo<#1e>font is returned 
  1353. when the real font stored in the graphics context is not known. The 
  1354. default is <F6>nil<F3>, which means do not return a pseudo<#1e>font.
  1355.  
  1356. <syntax,
  1357.     Bottom Margin =        0 inches,
  1358.     Left Tab =        -0.90/0 inches,
  1359.     Right Tab =        7.50 inches>
  1360.  
  1361. gcontext<#1e>foreground<F3> <F2>gcontext<F0><Tab><F3>Function<F0><Index, "foreground attribute of graphics context"><Index, "graphics context", "attribute", "foreground"><Index, Doc = operations, "xlib:gcontext<#1e>foreground", Sort String = "gcontext<#1e>foreground">
  1362.  
  1363. <return>
  1364.  
  1365. <Tab><F3>Returns: <F2><HR>
  1366.   foreground <F3><#1f> Type <F0>card32<F3>.
  1367.  
  1368. <para>
  1369.  
  1370. Returns and (with <F6>setf<F0>) changes the foreground attribute 
  1371. of the specified graphics context.
  1372.  
  1373. The foreground attribute of a graphics context specifies the pixel 
  1374. value drawn for set bits in a bitmap and for bits set by a graphics 
  1375. operation. 
  1376.  
  1377. <arg>
  1378.  
  1379. gcontext <F3><#1f> A <F6>gcontext<F3>.
  1380.  
  1381. <syntax,
  1382.     Bottom Margin =        0 inches,
  1383.     Left Tab =        -0.90/0 inches,
  1384.     Right Tab =        7.50 inches>
  1385.  
  1386. gcontext<#1e>function<F2> gcontext<F0><Tab><F3>Function<F0><Index, "function attribute of graphics context"><Index, "graphics context", "attribute", "function"><Index, Doc = operations, "xlib:gcontext<#1e>function", Sort String = "gcontext<#1e>function">
  1387.  
  1388. <return>
  1389.  
  1390. <Tab><F3>Returns: <F2><HR>
  1391.   function <F3><#1f> Type <F0>boole<#1e>constant<F3>.
  1392.  
  1393. <para>
  1394.  
  1395. Returns the <F2>function<F0> of the specified graphics context. 
  1396.  
  1397. In all graphic operations, given a source pixel and a corresponding<SP>destinat
  1398. ion pixel, the resulting pixel drawn is computed bitwise on the<SP>bits 
  1399. of the source and destination pixels. That is, a logical operation<SP>is 
  1400. used to combine each bit plane of corresponding source and<SP>destination 
  1401. pixels. The graphics context function attribute specifies<SP>the logical 
  1402. operation used via one of the 16 operation codes defined by Common 
  1403. Lisp for the <F6>boole<F0> function.
  1404.  
  1405. The following table shows each of the logical operation codes that 
  1406. can<SP>be given by the function attribute. For each operation code, 
  1407. its result<SP> is shown as a logical function of a source pixel <F2>S<F0> 
  1408. and a destination<SP>pixel <F2>D<F0>.
  1409.  
  1410. <ritabhd1,
  1411.     Left Tab =        0/1.50/2.30/3.50/7.50 inches>
  1412.  
  1413. <|,"5<#1e>62"><Tab-><Tab-><Tab-><Tab-><HR>
  1414. <Index, "function attribute of graphics context", "logical operation codes"><Index, "graphics context", "attribute", "function", "logical operation codes">Symbol<Tab>Result<HR>
  1415. <Tab-><Tab-><Tab-><Tab->
  1416.  
  1417. <tbline1>
  1418.  
  1419. <F6>boole<#1e>1<F0><Tab><F2>S
  1420.  
  1421. <F6>boole<#1e>2<F0><Tab><F2>D
  1422.  
  1423. <F6>boole<#1e>andc1<F0><Tab>(logandc1 <F2>S<F0> <F2>D<F0>)
  1424.  
  1425. <F6>boole<#1e>andc2 <F0><Tab>(logandc2 <F2>S D<F0>)
  1426.  
  1427. <F6>boole<#1e>and<F0><Tab>(logand <F2>S D<F0>)
  1428.  
  1429. <F6>boole<#1e>c1<F0><Tab>(lognot <F2> S<F0>)
  1430.  
  1431. <F6>boole<#1e>c2<F0><Tab>(lognot  <F2>D<F0>)
  1432.  
  1433. <F6>boole<#1e>clr <F0><Tab>0
  1434.  
  1435. <F6>boole<#1e>eqv<F0><Tab>(logeqv <F2>S D<F0>)
  1436.  
  1437. <F6>boole<#1e>ior<F0><Tab>(logior <F2>S D<F0>)
  1438.  
  1439. <F6>boole<#1e>nand<F0><Tab>(lognand <F2>S D<F0>)
  1440.  
  1441. <F6>boole<#1e>nor<F0><Tab>(lognor <F2>S D<F0>)
  1442.  
  1443. <F6>boole<#1e>orc1<F0><Tab>(logorc1 <F2>S D<F0>)
  1444.  
  1445. <F6>boole<#1e>orc2<F0><Tab>(logorc2 <F2>S D<F0>)
  1446.  
  1447. <F6>boole<#1e>set<F0><Tab>1
  1448.  
  1449. <F6>boole<#1e>xor<F0><Tab>(logxor<F2> S D<F0>)
  1450.  
  1451. <endrule>
  1452.  
  1453. <F6><Tab-><Tab-><Tab-><Tab->
  1454.  
  1455. <arg>
  1456.  
  1457. gcontext <F3><#1f> A <F6>gcontext<F3>.
  1458.  
  1459. <syntax,
  1460.     Bottom Margin =        0 inches,
  1461.     Left Tab =        -0.90/0 inches,
  1462.     Right Tab =        7.50 inches>
  1463.  
  1464. gcontext<#1e>id <F2>gcontext<F0><Tab><F3>Function<Index, Doc = operations, "xlib:gcontext<#1e>id", Sort String = "gcontext<#1e>id">
  1465.  
  1466. <return>
  1467.  
  1468. <Tab><F3>Returns: <F2><HR>
  1469.   id <F3><#1f> Type <F0>resource<#1e>id<F3>.
  1470.  
  1471. <para>
  1472.  
  1473. Returns the unique ID that has been assigned to the specified graphics 
  1474. context.
  1475.  
  1476. <arg>
  1477.  
  1478. gcontext <F3><#1f> A <F6>gcontext<F3>.
  1479.  
  1480. <syntax,
  1481.     Bottom Margin =        0 inches,
  1482.     Left Tab =        -0.90/0 inches,
  1483.     Right Tab =        7.50 inches>
  1484.  
  1485. gcontext<#1e>join<#1e>style <F2>gcontext<F0><Tab><F3>Function<F0><Index, "join<#1e>style attribute of graphics context"><Index, "graphics context", "attribute", "join<#1e>style"><Index, Doc = operations, "xlib:gcontext<#1e>join<#1e>style", Sort String = "gcontext<#1e>join<#1e>style">
  1486.  
  1487. <return>
  1488.  
  1489. <Tab><F3>Returns: <F2><HR>
  1490.   join<#1e>style <F3><#1f> One of <F0>:bevel<F3>, <F0>:miter<F3>, 
  1491. or <F0>:round<F3>.
  1492.  
  1493. <para>
  1494.  
  1495. Returns and (with <F6>setf<F0>) changes the join<#1e>style attribute 
  1496. of the specified graphics context.
  1497.  
  1498. <para,
  1499.     Bottom Margin =        0.14 inches,
  1500.     New Page =        yes>
  1501.  
  1502. <|,"5<#1e>63">The join<#1e>style attribute of a graphics context defines how 
  1503. the segment intersections are drawn for wide polylines. The possible 
  1504. values and their interpretations are as follows: 
  1505.  
  1506. <ritabhd1,
  1507.     Left Tab =        0/1.30/1.60/3.50/7.50 inches>
  1508.  
  1509. <Tab-><Tab-><Tab-><Tab-><HR>
  1510. Join<#1e>Style<Tab><Tab>Interpretation<HR>
  1511. <Tab-><Tab-><Tab-><Tab->
  1512.  
  1513. <tbline1a>
  1514.  
  1515. <F6>:bevel<F0><Tab>Uses <F6>:butt<F0> end point styles with the 
  1516. triangular notch filled.<HR>
  1517.  
  1518. <F6>:miter<F0><Tab>The outer edges of two lines extend to meet at 
  1519. an angle.<HR>
  1520.  
  1521. <F6>:round<F0><Tab>A circular arc with diameter equal to the line<#1e>width, 
  1522. centered on the join point.
  1523.  
  1524. <endrule,
  1525.     Bottom Margin =        0.14 inches>
  1526.  
  1527. <Tab-><Tab-><Tab-><Tab->
  1528.  
  1529. <para,
  1530.     Bottom Margin =        0.14 inches>
  1531.  
  1532. When the end points of a polyline segment are identical, the effect 
  1533. is as if the segment was removed from the polyline. When a polyline 
  1534. is a single point, the effect is the same as when the cap<#1e>style 
  1535. is applied at both end points.
  1536.  
  1537. <arg>
  1538.  
  1539. gcontext <F3><#1f> A <F6>gcontext<F3>.
  1540.  
  1541. <syntax,
  1542.     Bottom Margin =        0 inches,
  1543.     Left Tab =        -0.90/0 inches,
  1544.     Right Tab =        7.50 inches>
  1545.  
  1546. gcontext<#1e>line<#1e>style <F2>gcontext<F0><Tab><F3>Function<F0><Index, "line<#1e>style attribute of graphics context"><Index, "graphics context", "attribute", "line<#1e>style"><Index, Doc = operations, "xlib:gcontext<#1e>line<#1e>style", Sort String = "gcontext<#1e>line<#1e>style">
  1547.  
  1548. <return>
  1549.  
  1550. <Tab><F3>Returns: <F2><HR>
  1551.   line<#1e>style <F3><#1f> One of <F0>:dash<F3>, <F0>:double<#1e>dash<F3>, 
  1552. or <F0>:solid<F3>.
  1553.  
  1554. <para>
  1555.  
  1556. Returns and (with <F6>setf<F0>) changes the line<#1e>style attribute 
  1557. of the specified graphics context.
  1558.  
  1559. The line<#1e>style attribute of a graphics context specifies how (which 
  1560. sections of) lines are drawn for a path in graphics operations. The 
  1561. possible values and their meanings are as follows: 
  1562.  
  1563. <ritabhd1,
  1564.     Left Tab =        0/1.30/1.60/3.50/7.50 inches>
  1565.  
  1566. <Tab-><Tab-><Tab-><Tab-><HR>
  1567. Line<#1e>Style<Tab><Tab>Meaning<HR>
  1568. <Tab-><Tab-><Tab-><Tab->
  1569.  
  1570. <tbline1,
  1571.     Left Margin =        3.20 inches,
  1572.     First Indent =        -1.60 inches,
  1573.     Left Tab =        0/1.30/2.30/3.50/7.50 inches>
  1574.  
  1575. <F6>:solid<F0><Tab>The full path is drawn.<HR>
  1576.  
  1577. <F6>:double<#1e>dash<F0><Tab>The full path is drawn, but the even 
  1578. dashes are filled differently than the odd dashes. The <F6>:butt <F0>style 
  1579. is used where even and odd dashes meet (see paragraph 5.4.7, Fill<#1e>Rule 
  1580. and Fill<#1e>Style).<HR>
  1581.  
  1582. <F6>:on<#1e>off<#1e>dash<F0><Tab>Only the even dashes are drawn, 
  1583. with cap<#1e>style applied to all internal ends of the individual 
  1584. dashes, except <F6>:not<#1e>last<F0> is treated as <F6>:butt<F0>.
  1585.  
  1586. <endrule>
  1587.  
  1588. <Tab-><Tab-><Tab-><Tab->
  1589.  
  1590. <arg>
  1591.  
  1592. gcontext <F3><#1f> A <F6>gcontext<F3>.
  1593.  
  1594. <syntax,
  1595.     Bottom Margin =        0 inches,
  1596.     Left Tab =        -0.90/0 inches,
  1597.     Right Tab =        7.50 inches>
  1598.  
  1599. gcontext<#1e>line<#1e>width<F2> gcontext<F0><Tab><F3>Function<F0><Index, "line<#1e>width attribute of graphics context"><Index, "graphics context", "attribute", "line<#1e>width"><Index, Doc = operations, "xlib:gcontext<#1e>line<#1e>width", Sort String = "gcontext<#1e>line<#1e>width">
  1600.  
  1601. <return>
  1602.  
  1603. <Tab><F3>Returns: <F2><HR>
  1604.   line<#1e>width <F3><#1f> Type <F0>card16<F3>.
  1605.  
  1606. <para>
  1607.  
  1608. Returns the <F2>line<#1e>width<F0> of the specified graphics context. 
  1609.  
  1610. The line<#1e>width is measured in pixels and can be greater than or 
  1611. equal to one (wide line) or can be the special value zero (thin line).
  1612.  
  1613. <|,"5<#1e>64">Wide lines are drawn centered on the path described by the graphics 
  1614. operation. Unless otherwise specified by the join<#1e>style or cap<#1e>style, 
  1615. the bounding box of a wide line with end points [x1, y1], [x2, y2], 
  1616. and width w is a rectangle with vertices at the following real coordinates: 
  1617.  
  1618. [x1 - (w*<F2>sin<F0>/2), y1 +  (w*<F2>cos<F0>/2)], [x1+ (w*<F2>sin<F0>/2)
  1619. ,<F2> <F0>y1 - (w*<F2>cos<F0>/2)],<HR>
  1620. [x2 - (w*<F2>sin<F0>/2), y2 + (w*<F2>cos<F0>/2)], [x2 + (w*<F2>sin<F0>/2)
  1621. ,<F2> <F0>y2 - (w*<F2>cos<F0>/2)] 
  1622.  
  1623. where <F2>sin<F0> is the sine of the angle of the line and <F2>cos <F0>is 
  1624. the cosine of the angle of the line. A pixel is part of the line and, 
  1625. hence, is drawn if the center of the pixel is fully inside the bounding 
  1626. box (which is viewed as having infinitely thin edges). If the center 
  1627. of the pixel is exactly on the bounding box, it is part of the line 
  1628. if, and only if, the interior is immediately to its right (x increasing 
  1629. direction). Pixels with centers on a horizontal edge are a special 
  1630. case and are part of the line if, and only if, the interior is immediately 
  1631. below (y increasing direction).
  1632.  
  1633. Thin lines (zero line<#1e>width) are always one pixel wide lines drawn 
  1634. using an unspecified, device dependent algorithm. There are only two 
  1635. constraints on this algorithm.
  1636.  
  1637. <item>
  1638.  
  1639. <Autonum, item, 1, Restart = Yes><Tab>If a line is drawn unclipped 
  1640. from [x1,y1] to [x2,y2] and if another line is drawn unclipped from 
  1641. [x1+dx,y1+dy] to [x2+dx,y2+dy], a point [x,y] is touched by drawing 
  1642. the first line if, and only if ,the point [x+dx,y+dy] is touched by 
  1643. drawing the second line.
  1644.  
  1645. <Autonum, item, 1><Tab>The effective set of points comprising a line 
  1646. cannot be affected by clipping. That is, a point is touched in a clipped 
  1647. line if, and only if, the point lies inside the clipping region and 
  1648. the point would be touched by the line when drawn unclipped.
  1649.  
  1650. <para>
  1651.  
  1652. A wide line drawn from [x1,y1] to [x2,y2] always draws the same pixels 
  1653. as a wide line drawn from [x2,y2] to [x1,y1], not counting cap<#1e>style 
  1654. and join<#1e>style. Implementors are encouraged to make this property 
  1655. true for thin lines, but it is not required. A line<#1e>width of zero 
  1656. may differ from a line<#1e>width of one in which pixels are drawn. 
  1657. This permits the use of many manufacturer's line drawing hardware, 
  1658. which may run much faster than the more precisely specified wide lines.
  1659.  
  1660. In general, drawing a thin line is faster than drawing a wide line 
  1661. of width one. However, because of their different drawing algorithms, 
  1662. thin lines may not mix well, aesthetically speaking, with wide lines. 
  1663. If it is desirable to obtain precise and uniform results across all 
  1664. displays, a client should always use a line<#1e>width of one, rather 
  1665. than a line<#1e>width of zero.
  1666.  
  1667. <arg>
  1668.  
  1669. gcontext <F3><#1f> A <F6>gcontext<F3>.
  1670.  
  1671. <syntax,
  1672.     Bottom Margin =        0 inches,
  1673.     Left Tab =        -0.90/0 inches,
  1674.     Right Tab =        7.50 inches>
  1675.  
  1676. gcontext<#1e>p <F2>gcontext<F0><Tab><F3>Function<Index, Doc = operations, "xlib:gcontext<#1e>p", Sort String = "gcontext<#1e>p">
  1677.  
  1678. <return>
  1679.  
  1680. <Tab><F3>Returns: <F2><HR>
  1681.   gcontext <F3><#1f> Type <F0>boolean<F3>.
  1682.  
  1683. <para>
  1684.  
  1685. Returns non<#1e><F6>nil<F0> if the argument is a graphics context 
  1686. and <F6>nil<F0> otherwise.
  1687.  
  1688. <syntax,
  1689.     Bottom Margin =        0 inches,
  1690.     Left Tab =        -0.90/0 inches,
  1691.     Right Tab =        7.50 inches>
  1692.  
  1693. gcontext<#1e>plane<#1e>mask<F2> gcontext<F0><Tab><F3>Function<F0><Index, "plane<#1e>mask attribute of graphics context"><Index, "graphics context", "attribute", "plane<#1e>mask"><Index, Doc = operations, "xlib:gcontext<#1e>plane<#1e>mask", Sort String = "gcontext<#1e>plane<#1e>mask">
  1694.  
  1695. <return>
  1696.  
  1697. <Tab><F3>Returns: <F2><HR>
  1698.   plane<#1e>mask <F3><#1f> Type <F0>card32<F3>.
  1699.  
  1700. <para>
  1701.  
  1702. Returns the <F2>plane<#1e>mask<F0> of the specified graphics context. 
  1703.  
  1704. <|,"5<#1e>65">The plane<#1e>mask attribute of a graphics context specifies 
  1705. which bit<SP>planes of the destination drawable are modified during 
  1706. a graphic operation. The plane<#1e>mask is a pixel value in which 
  1707. a 1 bit means that the corresponding bit plane will be modified and 
  1708. a 0 bit means that the corresponding bit plane will not be affected 
  1709. during a graphic operations. Thus, the actual result of a graphic 
  1710. operation depends on<SP>both the function and plane<#1e>mask attributes 
  1711. of the graphics context and<SP>is given by the following expression:
  1712.  
  1713. <F9>(logior (logand<SP><HR>
  1714.           (boole function source destination)<HR>
  1715.           plane<#1e>mask)<HR>
  1716.                 <HR>
  1717.         (logandc2<HR>
  1718.           destination<HR>
  1719.            plane<#1e>mask))
  1720.  
  1721. <arg>
  1722.  
  1723. gcontext <F3><#1f> A <F6>gcontext<F3>.
  1724.  
  1725. <syntax,
  1726.     Bottom Margin =        0 inches,
  1727.     Left Tab =        -0.90/0 inches,
  1728.     Right Tab =        7.50 inches>
  1729.  
  1730. gcontext<#1e>plist <F2>gcontext<F0><Tab><F3>Function<Index, Doc = operations, "xlib:gcontext<#1e>plist", Sort String = "gcontext<#1e>plist">
  1731.  
  1732. <return>
  1733.  
  1734. <Tab><F3>Returns: <F2><HR>
  1735.   gcontext<#1e>p <F3><#1f> Type <F0>list<F3>.
  1736.  
  1737. <para>
  1738.  
  1739. Returns and (with <F6>setf<F0>) sets the property list for the specified 
  1740. <F2>gcontext<F0>. This function provides a hook where extensions 
  1741. can add data.
  1742.  
  1743. <arg>
  1744.  
  1745. gcontext <F3><#1f> A <F6>gcontext<F3>.
  1746.  
  1747. <syntax,
  1748.     Bottom Margin =        0 inches,
  1749.     Left Tab =        -0.90/0 inches,
  1750.     Right Tab =        7.50 inches>
  1751.  
  1752. gcontext<#1e>stipple<F2> gcontext<F0><Tab><F3>Function<F0><Index, "stipple", "attribute of graphics context"><Index, "graphics context", "attribute", "stipple"><Index, Doc = operations, "xlib:gcontext<#1e>stipple", Sort String = "gcontext<#1e>stipple">
  1753.  
  1754. <return>
  1755.  
  1756. <Tab><F3>Returns: <F2><HR>
  1757.   stipple <F3><#1f> Type <F0>pixmap<F3>.
  1758.  
  1759. <para>
  1760.  
  1761. Returns the <F2>stipple<F0> of the specified graphics context. 
  1762.  
  1763. The stipple attribute of a graphics context is a bitmap used to prevent 
  1764. certain pixels in the destination of graphics operations from being 
  1765. affected by tiling.
  1766.  
  1767. The stipple and tile have the same origin. This origin point is interpreted 
  1768. relative to the origin of whatever destination drawable is specified 
  1769. in a graphics request. The stipple pixmap must have depth one and 
  1770. must have the same root as the graphics context. The tile pixmap must 
  1771. have the same root and depth as the graphics context. For stipple 
  1772. operations where the fill<#1e>style is <F6>:stippled<F0> (but not <F6>:opaqu
  1773. e<#1e>stippled<F0>), the stipple pattern is tiled in a single plane 
  1774. and acts as an additional clip mask to be <F6>and<F0>ed with the 
  1775. clip<#1e>mask. Any size pixmap can be used for stipple or tile, although 
  1776. some sizes may be faster to use than others.
  1777.  
  1778. Specifying a pixmap for stipple or tile in a graphics context might 
  1779. or might not result in a copy being made. If the pixmap is later used 
  1780. as the destination for a graphics operation, the change might or might 
  1781. not be reflected in the graphics context. If the pixmap is used both 
  1782. as the destination for a graphics operation and as a stipple or tile, 
  1783. the results are not defined.
  1784.  
  1785. Some displays have hardware support for tiling or stippling with patterns 
  1786. of specific sizes. Tiling and stippling operations that restrict themselves 
  1787. to those sizes may run much faster than such operations with arbitrary 
  1788. size patterns. CLX provides functions to determine the best size for 
  1789. stipple or tile (see <F6>query<#1e>best<#1e>stipple<F0> and <F6>query<#1e>be
  1790. st<#1e>tile<F0>).
  1791.  
  1792. <arg>
  1793.  
  1794. gcontext <F3><#1f> A <F6>gcontext<F3>.
  1795.  
  1796. <syntax,
  1797.     Bottom Margin =        0 inches,
  1798.     Left Tab =        -0.90/0 inches,
  1799.     Right Tab =        7.50 inches>
  1800.  
  1801. <|,"5<#1e>66">gcontext<#1e>subwindow<#1e>mode <F2>gcontext<F0><Tab><F3>Function
  1802. <F0><Index, "subwindow<#1e>mode attribute of graphics context"><Index, "graphics context", "attribute", "subwindow<#1e>mode"><Index, Doc = operations, "xlib:gcontext<#1e>subwindow<#1e>mode", Sort String = "gcontext<#1e>subwindow<#1e>mode">
  1803.  
  1804. <return>
  1805.  
  1806. <Tab><F3>Returns: <F2><HR>
  1807.   subwindow<#1e>mode <F3><#1f> One of <F0>:clip<#1e>by<#1e>children<F3> 
  1808. or <F0>:include<#1e>inferiors<F3>.
  1809.  
  1810. <para>
  1811.  
  1812. Returns and (with <F6>setf<F0>) changes the subwindow<#1e>mode attribute 
  1813. of the specified graphics context.
  1814.  
  1815. The subwindow<#1e>mode attribute of a graphics context specifies whether 
  1816. subwindows obscure the contents of their parent window during a graphics 
  1817. operation. For a value of <F6>:clip<#1e>by<#1e>children<F0>, both 
  1818. source and destination windows are clipped by all viewable <F6>:input<#1e>outp
  1819. ut<F0> class children. This clipping is in addition to the clipping 
  1820. provided by the clip<#1e>mode attribute. For a value of <F6>:include<#1e>infer
  1821. iors<F0>, neither the source nor destination window is clipped by 
  1822. its inferiors. This results in the inclusion of subwindow contents 
  1823. in the source and the drawing through of subwindow boundaries of the 
  1824. destination. The use of <F6>:include<#1e>inferiors<F0> on a window 
  1825. of one depth with mapped inferiors of differing depth is not illegal, 
  1826. but the semantics are not defined by the core protocol.
  1827.  
  1828. <arg>
  1829.  
  1830. gcontext <F3><#1f> A <F6>gcontext<F3>.
  1831.  
  1832. <syntax,
  1833.     Bottom Margin =        0 inches,
  1834.     Left Tab =        -0.90/0 inches,
  1835.     Right Tab =        7.50 inches>
  1836.  
  1837. gcontext<#1e>tile<F2> gcontext<F0><Tab><F3>Function<F0><Index, "tile", "attribute of graphics context"><Index, "graphics context", "attribute", "tile"><Index, Doc = operations, "xlib:gcontext<#1e>tile", Sort String = "gcontext<#1e>tile">
  1838.  
  1839. <return>
  1840.  
  1841. <Tab><F3>Returns: <F2><HR>
  1842.   tile <F3><#1f> Type <F0>pixmap<F3>.
  1843.  
  1844. <para>
  1845.  
  1846. Returns the <F2>tile<F0> of the specified graphics context. 
  1847.  
  1848. The tile attribute is a pixmap used to fill in areas for graphics 
  1849. operations. It is so named because copies of it are laid out side 
  1850. by side to fill the area. 
  1851.  
  1852. The stipple and tile have the same origin. This origin point is interpreted 
  1853. relative to the origin of whatever destination drawable is specified 
  1854. in a graphics request. The stipple pixmap must have depth one and 
  1855. must have the same root as the graphics context. The tile pixmap must 
  1856. have the same root and depth as the graphics context. For stipple 
  1857. operations where the fill<#1e>style is <F6>:stippled<F0> (but not <F6>:opaqu
  1858. e<#1e>stippled<F0>), the stipple pattern is tiled in a single plane 
  1859. and acts as an additional clip mask to be <F6>and<F0>ed with the 
  1860. clip<#1e>mask. Any size pixmap can be used for stipple or tile, although 
  1861. some sizes may be faster to use than others.
  1862.  
  1863. Specifying a pixmap for stipple or tile in a graphics context might 
  1864. or might not result in a copy being made. If the pixmap is later used 
  1865. as the destination for a graphics operation, the change might or might 
  1866. not be reflected in the graphics context. If the pixmap is used both 
  1867. as the destination for a graphics operation and as a stipple or tile, 
  1868. the results are not defined.
  1869.  
  1870. Some displays have hardware support for tiling or stippling with patterns 
  1871. of specific sizes. Tiling and stippling operations that restrict themselves 
  1872. to those sizes may run much faster than such operations with arbitrary 
  1873. size patterns. CLX provides functions to determine the best size for 
  1874. stipple or tile (see <F6>query<#1e>best<#1e>stipple<F0> and <F6>query<#1e>be
  1875. st<#1e>tile<F0>).
  1876.  
  1877. <arg>
  1878.  
  1879. gcontext <F3><#1f> A <F6>gcontext<F3>.
  1880.  
  1881. <syntax,
  1882.     Bottom Margin =        0 inches,
  1883.     New Page =        yes,
  1884.     Left Tab =        -0.90/0 inches,
  1885.     Right Tab =        7.50 inches>
  1886.  
  1887. <|,"5<#1e>67">gcontext<#1e>ts<#1e>x<F2> gcontext<F0><Tab><F3>Function<F0><Index, "ts<#1e>x attribute of graphics context"><Index, "graphics context", "attribute", "ts<#1e>x"><Index, Doc = operations, "xlib:gcontext<#1e>ts<#1e>x", Sort String = "gcontext<#1e>ts<#1e>x">
  1888.  
  1889. <return>
  1890.  
  1891. <Tab><F3>Returns: <F2><HR>
  1892.   ts<#1e>x <F3><#1f> Type <F0>int16<F3>.
  1893.  
  1894. <para>
  1895.  
  1896. Returns the <F2>ts<#1e>x<F0> attribute of the specified graphics 
  1897. context. 
  1898.  
  1899. The ts<#1e>x and ts<#1e>y attributes of a graphics context are the 
  1900. coordinates of the origin for tile pixmaps and the stipple.
  1901.  
  1902. <arg>
  1903.  
  1904. gcontext <F3><#1f> A <F6>gcontext<F3>.
  1905.  
  1906. <syntax,
  1907.     Bottom Margin =        0 inches,
  1908.     Left Tab =        -0.90/0 inches,
  1909.     Right Tab =        7.50 inches>
  1910.  
  1911. gcontext<#1e>ts<#1e>y<F2> gcontext<F0><Tab><F3>Function<F0><Index, "ts<#1e>y attribute of graphics context"><Index, "graphics context", "attribute", "ts<#1e>y"><Index, Doc = operations, "xlib:gcontext<#1e>ts<#1e>y", Sort String = "gcontext<#1e>ts<#1e>y">
  1912.  
  1913. <return>
  1914.  
  1915. <Tab><F3>Returns: <F2><HR>
  1916.   ts<#1e>y <F3><#1f> Type <F0>int16<F3>.
  1917.  
  1918. <para>
  1919.  
  1920. Returns the <F2>ts<#1e>y<F0> attribute of the specified graphics 
  1921. context. 
  1922.  
  1923. The ts<#1e>x and ts<#1e>y attributes of a graphics context are the 
  1924. coordinates of the origin for tile pixmaps and the stipple.
  1925.  
  1926. <arg>
  1927.  
  1928. gcontext <F3><#1f> A <F6>gcontext<F3>.
  1929.  
  1930. <syntax,
  1931.     Bottom Margin =        0 inches,
  1932.     Left Tab =        -0.90/0 inches,
  1933.     Right Tab =        7.50 inches>
  1934.  
  1935. query<#1e>best<#1e>stipple<F3> <F2>width height drawable<F0><Tab><F3>Functi
  1936. on<F0><Index, "stipple", "best, graphics context"><Index, "graphics context", "attribute", "stipple", "best"><Index, Doc = operations, "xlib:query<#1e>best<#1e>stipple", Sort String = "query<#1e>best<#1e>stipple">
  1937.  
  1938. <return>
  1939.  
  1940. <Tab><F3>Returns: <F2><HR>
  1941.   best<#1e>width<F3>,<F2> best<#1e>height <F3><#1f> Type <F0>card16<F3>.
  1942.  
  1943. <para>
  1944.  
  1945. Returns the <F2>best<#1e>width<F0> and <F2>best<#1e>height<F0> 
  1946. for stipple pixmaps on the <F2>drawable<F0>.
  1947.  
  1948. The <F2>drawable<F0> indicates the screen and possibly the window 
  1949. class and depth. An <F6>:input<#1e>only<F0> window cannot be specified 
  1950. as the <F2>drawable<F0>. The size is returned as width and height 
  1951. values.
  1952.  
  1953. <arg>
  1954.  
  1955. width<F3>, <F0>height <F3><#1f> Specifies the width and height 
  1956. of the desired stipple pattern.
  1957.  
  1958. drawable <F3><#1f> A <F6>drawable<F3>.
  1959.  
  1960. <syntax,
  1961.     Bottom Margin =        0 inches,
  1962.     Left Tab =        -0.90/0 inches,
  1963.     Right Tab =        7.50 inches>
  1964.  
  1965. query<#1e>best<#1e>tile<F3> <F2>width height drawable<F0><Tab><F3>Function
  1966. <F0><Index, "tile", "best, graphics context"><Index, "graphics context", "attribute", "tile", "best"><Index, Doc = operations, "xlib:query<#1e>best<#1e>tile", Sort String = "query<#1e>best<#1e>tile">
  1967.  
  1968. <return>
  1969.  
  1970. <Tab><F3>Returns: <F2><HR>
  1971.   best<#1e>width<F3>,<F2> best<#1e>height <F3><#1f> Type <F0>card16<F3>.
  1972.  
  1973. <para>
  1974.  
  1975. Returns the <F2>best<#1e>width<F0> and <F2>best<#1e>height<F0> 
  1976. for tile pixmaps on the <F2>drawable<F0>.
  1977.  
  1978. The <F2>drawable<F0> indicates the screen and possibly the window 
  1979. class and depth. An <F6>:input<#1e>only<F0> window cannot be specified 
  1980. as the <F2>drawable<F0>. The size is returned as width and height 
  1981. values.
  1982.  
  1983. <arg>
  1984.  
  1985. width<F3>, <F0>height <F3><#1f> Specifies the width and height 
  1986. of the desired tile pattern.
  1987.  
  1988. drawable <F3><#1f> A <F6>drawable<F3>.
  1989.  
  1990. <p1rule>
  1991.  
  1992. <Index, "graphics context", "copying">
  1993. <Frame,
  1994.     Name =            p1rule,
  1995.     Placement =        At Anchor,
  1996.     Width =            6.35 inches,
  1997.     Height =        0.153 inches,
  1998.     Vertical Alignment =    0.007 inches,
  1999.     Shared Contents =    yes>
  2000.  
  2001. <p1stacked,
  2002.     Font =            F3,
  2003.     Left Tab =        -1.70/0 inches>
  2004.  
  2005. <F7>Copying <Tab><F6>5.3<F0><#04>CLX provides functions to copy 
  2006. some or all attribute values from<FJ>
  2007.  
  2008. <p1stacked,
  2009.     Left Tab =        -1.60/0 inches>
  2010.  
  2011. <F7>Graphics<F0><Tab><F3>one graphics context to another. These 
  2012. functions are generally more efficient<FJ>
  2013.  
  2014. <p1para,
  2015.     Alignment =        Both,
  2016.     Font =            F3,
  2017.     Allow Page Break After = yes>
  2018.  
  2019. <F7>Contexts <Tab><F0>than using <F6>setf<F0> to copy <F6>gcontext<F0> 
  2020. attributes individually.
  2021.  
  2022. <syntax,
  2023.     Left Tab =        -0.90/0 inches,
  2024.     Right Tab =        7.50 inches>
  2025.  
  2026. copy<#1e>gcontext<F3> <F2>source destination<F0><Tab><F3>Function<Index, Doc = operations, "xlib:copy<#1e>gcontext", Sort String = "copy<#1e>gcontext">
  2027.  
  2028. <para>
  2029.  
  2030. Copies all the values of the attributes of the source graphics context 
  2031. into the destination graphics context. The source and destination 
  2032. graphics contexts must have the same root and depth.
  2033.  
  2034. <arg>
  2035.  
  2036. <F3> <F0>source <F3><#1f> The source <F6>gcontext<F3>.
  2037.  
  2038. <|,"5<#1e>68">destination <F3><#1f> The destination <F6>gcontext<F3>.
  2039.  
  2040. <syntax,
  2041.     Left Tab =        -0.90/0 inches,
  2042.     Right Tab =        7.50 inches>
  2043.  
  2044. copy<#1e>gcontext<#1e>components<F3> <F2>source destination <F3>&rest <F2>k
  2045. eys<F0><Tab><F3>Function<Index, Doc = operations, "xlib:copy<#1e>gcontext<#1e>components", Sort String = "copy<#1e>gcontext<#1e>components">
  2046.  
  2047. <para,
  2048.     Bottom Margin =        0.12 inches>
  2049.  
  2050. Copies the values of the specified attributes of the source graphics 
  2051. context to the destination graphics context. The source and destination 
  2052. graphics contexts must have the same root and depth.
  2053.  
  2054. <arg>
  2055.  
  2056. source <F3><#1f> The source <F6>gcontext<F3>.
  2057.  
  2058. destination <F3><#1f> The destination <F6>gcontext<F3>.
  2059.  
  2060. keys <F3><#1f> The remaining arguments are keywords, of type <F6>gcontext<#1e>
  2061. key<F3>, which specify which attributes of the graphics context are 
  2062. to be copied.
  2063.  
  2064. <p1rule>
  2065.  
  2066. <Index, "graphics context", "destroying">
  2067. <Frame,
  2068.     Name =            p1rule,
  2069.     Placement =        At Anchor,
  2070.     Width =            6.35 inches,
  2071.     Height =        0.153 inches,
  2072.     Vertical Alignment =    0.007 inches,
  2073.     Shared Contents =    yes>
  2074.  
  2075. <p1stacked,
  2076.     Font =            F3,
  2077.     Left Tab =        -1.70/0 inches>
  2078.  
  2079. <F7>Destroying<Tab><F6>5.5<#04><F0>To destroy a graphics context, 
  2080. use<F6> free<#1e>gcontext.
  2081.  
  2082. <p1stacked,
  2083.     Left Tab =        -1.60/0 inches>
  2084.  
  2085. <F7>Graphics<F0><Tab>
  2086.  
  2087. <p1para,
  2088.     Bottom Margin =        0.05 inches,
  2089.     Alignment =        Both,
  2090.     Font =            F3,
  2091.     Allow Page Break After = yes>
  2092.  
  2093. <F7>Contexts <F0><Tab>
  2094.  
  2095. <syntax,
  2096.     Left Tab =        -0.90/0 inches,
  2097.     Right Tab =        7.50 inches>
  2098.  
  2099. free<#1e>gcontext <F2>gcontext<F0><Tab><F3>Function<Index, Doc = operations, "xlib:free<#1e>gcontext", Sort String = "free<#1e>gcontext">
  2100.  
  2101. <para,
  2102.     Bottom Margin =        0.12 inches>
  2103.  
  2104. Deletes the association between the assigned resource ID and the specified 
  2105. graphics context, and then destroys the graphics context.
  2106.  
  2107. <arg>
  2108.  
  2109. gcontext <F3><#1f> A <F6>gcontext<F3>.
  2110.  
  2111. <p1rule>
  2112.  
  2113. <Index, "graphics context", "cache">
  2114. <Frame,
  2115.     Name =            p1rule,
  2116.     Placement =        At Anchor,
  2117.     Width =            6.35 inches,
  2118.     Height =        0.153 inches,
  2119.     Vertical Alignment =    0.007 inches,
  2120.     Shared Contents =    yes>
  2121.  
  2122. <p1stacked,
  2123.     Font =            F3,
  2124.     Left Tab =        -1.70/0 inches>
  2125.  
  2126. <F7>Graphics<Tab><F6>5.6<F0><#04>CLX provides a set of functions 
  2127. to control the automatic graphics<FJ>
  2128.  
  2129. <p1stacked,
  2130.     Left Tab =        -1.60/0 inches>
  2131.  
  2132. <F7>Context<F0><Tab><F3>context caching mechanism.
  2133.  
  2134. <p1para,
  2135.     Bottom Margin =        0.05 inches,
  2136.     Alignment =        Both,
  2137.     Font =            F3,
  2138.     Allow Page Break After = yes>
  2139.  
  2140. <F7>Cache<Tab>
  2141.  
  2142. <syntax,
  2143.     Left Tab =        -0.90/0 inches,
  2144.     Right Tab =        7.50 inches>
  2145.  
  2146. force<#1e>gcontext<#1e>changes<F3> <F2>gcontext<F0><Tab><F3>Function<Index, Doc = operations, "xlib:force<#1e>gcontext<#1e>changes", Sort String = "force<#1e>gcontext<#1e>changes">
  2147.  
  2148. <para,
  2149.     Bottom Margin =        0.12 inches>
  2150.  
  2151. Forces any delayed changes to the specified graphics context to be 
  2152. sent out to the server. Note that <F6>force<#1e>gcontext<#1e>changes<F0> 
  2153. is called by all of the graphics functions.
  2154.  
  2155. <arg>
  2156.  
  2157. gcontext <F3><#1f> A <F6>gcontext<F3>.
  2158.  
  2159. <syntax,
  2160.     Left Tab =        -0.90/0 inches,
  2161.     Right Tab =        7.50 inches>
  2162.  
  2163. with<#1e>gcontext<F3> <F2>gcontext<F0> <F3>&key<F0> :arc<#1e>mode 
  2164. :background :cap<#1e>style :clip<#1e>mask<Tab><F3>Macro<Index, Doc = operations, "xlib:with<#1e>gcontext", Sort String = "with<#1e>gcontext"><HR>
  2165. <F0>:clip<#1e>ordering :clip<#1e>x :clip<#1e>y :dashes :dash<#1e>offset 
  2166. :exposures <HR>
  2167. :fill<#1e>rule :fill<#1e>style :font :foreground :function :join<#1e>style <HR>
  2168. :line<#1e>style :line<#1e>width :plane<#1e>mask :stipple :subwindow<#1e>mode <HR>
  2169. :tile :ts<#1e>x :ts<#1e>y<F3> &allow<#1e>other<#1e>keys &body <F2>body
  2170.  
  2171. <para,
  2172.     Bottom Margin =        0.12 inches>
  2173.  
  2174. Changes the indicated graphics context components to the specified 
  2175. values only within the dynamic extent of the body. <F6>with<#1e>gcontext<F0> 
  2176. works on a per<#1e>process basis in a multiprocessing environment. 
  2177. The <F2>body<F0> is not surrounded by a <F6>with<#1e>display<F0> 
  2178. form. If there is no local cache for the specified graphics context, 
  2179. or if some of the component states are unknown, <F6>with<#1e>gcontext<F0> 
  2180. does the save and restore by creating a temporary graphics context 
  2181. and copying components to and from it using <F6>copy<#1e>gcontext<#1e>componen
  2182. ts<F0>.
  2183.  
  2184. <arg>
  2185.  
  2186. gcontext <F3><#1f> A <F6>gcontext<F3>.
  2187.  
  2188. <F6>:arc<#1e>mode,<F3> <F6>:background<F3>, <F6>:cap<#1e>style<F3>, 
  2189. <F6>:clip<#1e>mask<F3>, <F6>:clip<#1e>ordering<F3>, <F6>:clip<#1e>x<F3>, 
  2190. <F6>:clip<#1e>y<F3>, <F6>:dashes<F3>, <F6>:dash<#1e>offset<F3>, <F6>:exp
  2191. osures<F3>, <F6>:fill<#1e>rule<F3>, <F6>:fill<#1e>style<F3>, <F6>:font
  2192. <F3>, <F6>:foreground<F3>, <F6>:function<F3>, <F6>:join<#1e>style<F3>, 
  2193. <F6>:line<#1e>style<F3>, <F6>:line<#1e>width<F3>, <F6>:plane<#1e>mask
  2194. <F3>, <F6>:stipple<F3>, <F6>:subwindow<#1e>mode<F3>, <F6>:tile<F3>, 
  2195. <F6>:ts<#1e>x<F3>, <F6>:ts<#1e>y <F3><#1f>These keyword arguments 
  2196. and associated values specify which graphics context components are 
  2197. to be changed. Any components not specified are left unmodified. See 
  2198. paragraph 5.2, Creating Graphics Contexts, for more information.
  2199.  
  2200. body <F3><#1f> The body of code which will have access to the altered 
  2201. graphics context.
  2202.  
  2203. <para>
  2204.  
  2205.