Home | History | Annotate | Line # | Download | only in html
      1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
      2 <html>
      3   <head>
      4     <meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
      5     <title>File Index</title>
      6     <link href="doxygen.css" rel="stylesheet" type="text/css">
      7   </head>
      8   <body>
      9 <!-- Generated by Doxygen 1.7.4 -->
     10   <div id="navrow1" class="tabs">
     11     <ul class="tablist">
     12       <li><a href="index.html"><span>Main&#160;Page</span></a></li>
     13       <li><a href="annotated.html"><span>Data&#160;Structures</span></a></li>
     14       <li class="current"><a href="files.html"><span>Files</span></a></li>
     15     </ul>
     16   </div>
     17   <div id="navrow2" class="tabs2">
     18     <ul class="tablist">
     19       <li><a href="files.html"><span>File&#160;List</span></a></li>
     20       <li><a href="globals.html"><span>Globals</span></a></li>
     21     </ul>
     22   </div>
     23 </div>
     24 <div id="side-nav" class="ui-resizable side-nav-resizable">
     25   <div id="nav-tree">
     26     <div id="nav-tree-contents">
     27     </div>
     28   </div>
     29   <div id="splitbar" style="-moz-user-select:none;" 
     30        class="ui-resizable-handle">
     31   </div>
     32 </div>
     33 <script type="text/javascript">
     34   initNavTree('dmxcursor_8c.html','');
     35 </script>
     36 <div id="doc-content">
     37 <div class="header">
     38   <div class="summary">
     39 <a href="#define-members">Defines</a> &#124;
     40 <a href="#func-members">Functions</a> &#124;
     41 <a href="#var-members">Variables</a>  </div>
     42   <div class="headertitle">
     43 <div class="title">dmxcursor.c File Reference</div>  </div>
     44 </div>
     45 <div class="contents">
     46 <div class="textblock"><code>#include &quot;<a class="el" href="dmx_8h_source.html">dmx.h</a>&quot;</code><br/>
     47 <code>#include &quot;<a class="el" href="dmxsync_8h_source.html">dmxsync.h</a>&quot;</code><br/>
     48 <code>#include &quot;<a class="el" href="dmxcursor_8h_source.html">dmxcursor.h</a>&quot;</code><br/>
     49 <code>#include &quot;<a class="el" href="dmxlog_8h_source.html">dmxlog.h</a>&quot;</code><br/>
     50 <code>#include &quot;<a class="el" href="dmxprop_8h_source.html">dmxprop.h</a>&quot;</code><br/>
     51 <code>#include &quot;<a class="el" href="dmxinput_8h_source.html">dmxinput.h</a>&quot;</code><br/>
     52 <code>#include &quot;mipointer.h&quot;</code><br/>
     53 <code>#include &quot;windowstr.h&quot;</code><br/>
     54 <code>#include &quot;globals.h&quot;</code><br/>
     55 <code>#include &quot;cursorstr.h&quot;</code><br/>
     56 <code>#include &quot;dixevents.h&quot;</code><br/>
     57 <code>#include &quot;inputstr.h&quot;</code><br/>
     58 </div><table class="memberdecls">
     59 <tr><td colspan="2"><h2><a name="define-members"></a>
     60 Defines</h2></td></tr>
     61 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a757d7359cf12591268a62c0974178079">DMX_CURSOR_DEBUG</a>&#160;&#160;&#160;0</td></tr>
     62 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#adf6865b0bc7ad370c94e3b8682262c13">DMXDBG0</a>(f)</td></tr>
     63 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a302a2c9f84249eee79404eb601d085ab">DMXDBG1</a>(f, a)</td></tr>
     64 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a1056d63499cee76ebe297c19637f2b79">DMXDBG2</a>(f, a, b)</td></tr>
     65 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a6c6714b899194081b94edb722ca1c4bc">DMXDBG3</a>(f, a, b, c)</td></tr>
     66 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a8ffd07ee80777c394a6ff32d1021347d">DMXDBG4</a>(f, a, b, c, d)</td></tr>
     67 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a753eef37715b6379d7d65e34a23d2e03">DMXDBG5</a>(f, a, b, c, d, e)</td></tr>
     68 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#af703e1a00a515e2507f7d2a354429a24">DMXDBG6</a>(f, a, b, c, d, e, g)</td></tr>
     69 <tr><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#ab45c7f6cc47b2c786215ca0276d37d91">DMXDBG7</a>(f, a, b, c, d, e, g, h)</td></tr>
     70 <tr><td colspan="2"><h2><a name="func-members"></a>
     71 Functions</h2></td></tr>
     72 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a709e3d4a4e44e17fed3de1fcb0d42b20">dmxCursorNoMulti</a> (void)</td></tr>
     73 <tr><td class="memItemLeft" align="right" valign="top">static Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a1c7f5d94ee32f85ec027c53b881fc697">dmxCursorOffScreen</a> (ScreenPtr *ppScreen, int *x, int *y)</td></tr>
     74 <tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a2d0757fa7119492da7fe26901dab8571">dmxCrossScreen</a> (ScreenPtr pScreen, Bool entering)</td></tr>
     75 <tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#af80076061e55521b62a7cfd8e66bf3e6">dmxWarpCursor</a> (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)</td></tr>
     76 <tr><td class="memItemLeft" align="right" valign="top">static int *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#aaf8a9878f12b6653247fc27d960beccf">dmxSLCreate</a> (void)</td></tr>
     77 <tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a565fbb8c3754a14c1aed13b741705b91">dmxSLFree</a> (int *list)</td></tr>
     78 <tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#ab4dcb11cad339e72d843356841ffd203">dmxSLFindNext</a> (int *list)</td></tr>
     79 <tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a97efbe7e0a872da9de0be49da214c210">dmxTryComputeScreenOrigins</a> (int *screensLeft)</td></tr>
     80 <tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#aa5a4c58dbde29584153fbc43a1ac6e26">dmxComputeScreenOrigins</a> (void)</td></tr>
     81 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a9bdb6eff5f7f86fd071091c5a55cee7c">dmxReInitOrigins</a> (void)</td></tr>
     82 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#af3fb4b2c2d3cc318c88fbc6658893360">dmxInitOrigins</a> (void)</td></tr>
     83 <tr><td class="memItemLeft" align="right" valign="top">int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#adaf3455cdd3f54d22285e5a0fa99fddb">dmxOnScreen</a> (int x, int y, <a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *dmxScreen)</td></tr>
     84 <tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a5612d5f5b97d54fa9eb73540eaeba4f3">dmxDoesOverlap</a> (<a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *a, <a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *b)</td></tr>
     85 <tr><td class="memItemLeft" align="right" valign="top">static void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a52398858fc93988512050543967652fe">dmxPrintOverlap</a> (<a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *dmxScreen, void *closure)</td></tr>
     86 <tr><td class="memItemLeft" align="right" valign="top">static void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a28c6651bdff6f7fc01292548659a6eb4">dmxIterateOverlap</a> (<a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *start, void *(*f)(<a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *dmxScreen, void *), void *closure)</td></tr>
     87 <tr><td class="memItemLeft" align="right" valign="top">static void *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a3beed7bb0f6999879936b2f47751d125">dmxTestSameDisplay</a> (<a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *a, void *closure)</td></tr>
     88 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a77c74a33de88fae6cf0de8b755a5c411">dmxInitOverlap</a> (void)</td></tr>
     89 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a84c92b801c5802879047e74401f62e94">dmxBECreateCursor</a> (ScreenPtr pScreen, CursorPtr pCursor)</td></tr>
     90 <tr><td class="memItemLeft" align="right" valign="top">static Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#ac722828c4781d1a44d8b04955472a134">_dmxRealizeCursor</a> (ScreenPtr pScreen, CursorPtr pCursor)</td></tr>
     91 <tr><td class="memItemLeft" align="right" valign="top">Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#ae0e94924bf5a69c2b26e9d0442befadd">dmxBEFreeCursor</a> (ScreenPtr pScreen, CursorPtr pCursor)</td></tr>
     92 <tr><td class="memItemLeft" align="right" valign="top">static Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#aa2ac82b5666d162e873c7f0c88ec96f6">_dmxUnrealizeCursor</a> (ScreenPtr pScreen, CursorPtr pCursor)</td></tr>
     93 <tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#aa208a04334d595e3507287bacffdae80">_dmxMoveCursor</a> (ScreenPtr pScreen, int x, int y)</td></tr>
     94 <tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a6fd26c7c7811ff77fc3c6e84b82d57d5">_dmxSetCursor</a> (ScreenPtr pScreen, CursorPtr pCursor, int x, int y)</td></tr>
     95 <tr><td class="memItemLeft" align="right" valign="top">static Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#ad51761f218c643ebe7f010538e9c745f">dmxRealizeCursor</a> (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)</td></tr>
     96 <tr><td class="memItemLeft" align="right" valign="top">static Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a81c0223355350e6d897d4d7306381130">dmxUnrealizeCursor</a> (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)</td></tr>
     97 <tr><td class="memItemLeft" align="right" valign="top">static CursorPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#ac7dc34eb6db6964e4330acc4d0e2badc">dmxFindCursor</a> (<a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *start)</td></tr>
     98 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a21820e2001f763e3cfc924a1d602bb62">dmxMoveCursor</a> (DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)</td></tr>
     99 <tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a4cbf6be156525a669ae883465f6458c2">dmxSetCursor</a> (DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor, int x, int y)</td></tr>
    100 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#ad67e1086ef62ecfa33549d74cd89a379">dmxHideCursor</a> (<a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *dmxScreen)</td></tr>
    101 <tr><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a6a381bffb099457e7c26a2312cf968a6">dmxCheckCursor</a> (void)</td></tr>
    102 <tr><td class="memItemLeft" align="right" valign="top">static Bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a214b710621ed0279d6321375f3512a87">dmxDeviceCursorInitialize</a> (DeviceIntPtr pDev, ScreenPtr pScr)</td></tr>
    103 <tr><td class="memItemLeft" align="right" valign="top">static void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#af291298e4f52875e45d7097a223a8c0b">dmxDeviceCursorCleanup</a> (DeviceIntPtr pDev, ScreenPtr pScr)</td></tr>
    104 <tr><td colspan="2"><h2><a name="var-members"></a>
    105 Variables</h2></td></tr>
    106 <tr><td class="memItemLeft" align="right" valign="top">static int&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a4d792c0cb9ce0c21787d3cd88d774fa6">dmxCursorDoMultiCursors</a> = 1</td></tr>
    107 <tr><td class="memItemLeft" align="right" valign="top">miPointerScreenFuncRec&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#aacf8d4857dd965073f62f10a53edcaa3">dmxPointerCursorFuncs</a></td></tr>
    108 <tr><td class="memItemLeft" align="right" valign="top">miPointerSpriteFuncRec&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="dmxcursor_8c.html#a7bf2f59a6c5d381aea975cd78dd1f9dc">dmxPointerSpriteFuncs</a></td></tr>
    109 </table>
    110 <hr/><a name="details" id="details"></a><h2>Detailed Description</h2>
    111 <div class="textblock"><p>This file contains code than supports cursor movement, including the code that initializes and reinitializes the screen positions and computes screen overlap.</p>
    112 <p>"This code is based very closely on the XFree86 equivalent
    113  (xfree86/common/xf86Cursor.c)." --David Dawes.</p>
    114 <p>"This code was then extensively re-written, as explained here." --Rik Faith</p>
    115 <p>The code in xf86Cursor.c used edge lists to implement the CursorOffScreen function. The edge list computation was complex (especially in the face of arbitrarily overlapping screens) compared with the speed savings in the CursorOffScreen function. The new implementation has erred on the side of correctness, readability, and maintainability over efficiency. For the common (non-edge) case, the dmxCursorOffScreen function does avoid a loop over all the screens. When the cursor has left the screen, all the screens are searched, and the first screen (in dmxScreens order) containing the cursor will be returned. If run-time profiling shows that this routing is a performance bottle-neck, then an edge list may have to be reimplemented. An edge list algorithm is O(edges) whereas the new algorithm is O(dmxNumScreens). Since edges is usually 1-3 and dmxNumScreens may be 30-60 for large backend walls, this trade off may be compelling.</p>
    116 <p>The xf86InitOrigins routine uses bit masks during the computation and is therefore limited to the length of a word (e.g., 32 or 64 bits) screens. Because Xdmx is expected to be used with a large number of backend displays, this limitation was removed. The new implementation has erred on the side of readability over efficiency, using the dmxSL* routines to manage a screen list instead of a bitmap, and a function call to decrease the length of the main routine. Both algorithms are of the same order, and both are called only at server generation time, so trading clarity and long-term maintainability for efficiency does not seem justified in this case. </p>
    117 </div><hr/><h2>Define Documentation</h2>
    118 <a class="anchor" id="a757d7359cf12591268a62c0974178079"></a><!-- doxytag: member="dmxcursor.c::DMX_CURSOR_DEBUG" ref="a757d7359cf12591268a62c0974178079" args="" -->
    119 <div class="memitem">
    120 <div class="memproto">
    121       <table class="memname">
    122         <tr>
    123           <td class="memname">#define DMX_CURSOR_DEBUG&#160;&#160;&#160;0</td>
    124         </tr>
    125       </table>
    126 </div>
    127 <div class="memdoc">
    128 
    129 </div>
    130 </div>
    131 <a class="anchor" id="adf6865b0bc7ad370c94e3b8682262c13"></a><!-- doxytag: member="dmxcursor.c::DMXDBG0" ref="adf6865b0bc7ad370c94e3b8682262c13" args="(f)" -->
    132 <div class="memitem">
    133 <div class="memproto">
    134       <table class="memname">
    135         <tr>
    136           <td class="memname">#define DMXDBG0</td>
    137           <td>(</td>
    138           <td class="paramtype">&#160;</td>
    139           <td class="paramname">f</td><td>)</td>
    140           <td></td>
    141         </tr>
    142       </table>
    143 </div>
    144 <div class="memdoc">
    145 
    146 </div>
    147 </div>
    148 <a class="anchor" id="a302a2c9f84249eee79404eb601d085ab"></a><!-- doxytag: member="dmxcursor.c::DMXDBG1" ref="a302a2c9f84249eee79404eb601d085ab" args="(f, a)" -->
    149 <div class="memitem">
    150 <div class="memproto">
    151       <table class="memname">
    152         <tr>
    153           <td class="memname">#define DMXDBG1</td>
    154           <td>(</td>
    155           <td class="paramtype">&#160;</td>
    156           <td class="paramname">f, </td>
    157         </tr>
    158         <tr>
    159           <td class="paramkey"></td>
    160           <td></td>
    161           <td class="paramtype">&#160;</td>
    162           <td class="paramname">a&#160;</td>
    163         </tr>
    164         <tr>
    165           <td></td>
    166           <td>)</td>
    167           <td></td><td></td>
    168         </tr>
    169       </table>
    170 </div>
    171 <div class="memdoc">
    172 
    173 </div>
    174 </div>
    175 <a class="anchor" id="a1056d63499cee76ebe297c19637f2b79"></a><!-- doxytag: member="dmxcursor.c::DMXDBG2" ref="a1056d63499cee76ebe297c19637f2b79" args="(f, a, b)" -->
    176 <div class="memitem">
    177 <div class="memproto">
    178       <table class="memname">
    179         <tr>
    180           <td class="memname">#define DMXDBG2</td>
    181           <td>(</td>
    182           <td class="paramtype">&#160;</td>
    183           <td class="paramname">f, </td>
    184         </tr>
    185         <tr>
    186           <td class="paramkey"></td>
    187           <td></td>
    188           <td class="paramtype">&#160;</td>
    189           <td class="paramname">a, </td>
    190         </tr>
    191         <tr>
    192           <td class="paramkey"></td>
    193           <td></td>
    194           <td class="paramtype">&#160;</td>
    195           <td class="paramname">b&#160;</td>
    196         </tr>
    197         <tr>
    198           <td></td>
    199           <td>)</td>
    200           <td></td><td></td>
    201         </tr>
    202       </table>
    203 </div>
    204 <div class="memdoc">
    205 
    206 <p>Referenced by <a class="el" href="dmxcursor_8c.html#ac722828c4781d1a44d8b04955472a134">_dmxRealizeCursor()</a>, <a class="el" href="dmxcursor_8c.html#aa2ac82b5666d162e873c7f0c88ec96f6">_dmxUnrealizeCursor()</a>, and <a class="el" href="dmxcursor_8h.html#a6a381bffb099457e7c26a2312cf968a6">dmxCheckCursor()</a>.</p>
    207 
    208 </div>
    209 </div>
    210 <a class="anchor" id="a6c6714b899194081b94edb722ca1c4bc"></a><!-- doxytag: member="dmxcursor.c::DMXDBG3" ref="a6c6714b899194081b94edb722ca1c4bc" args="(f, a, b, c)" -->
    211 <div class="memitem">
    212 <div class="memproto">
    213       <table class="memname">
    214         <tr>
    215           <td class="memname">#define DMXDBG3</td>
    216           <td>(</td>
    217           <td class="paramtype">&#160;</td>
    218           <td class="paramname">f, </td>
    219         </tr>
    220         <tr>
    221           <td class="paramkey"></td>
    222           <td></td>
    223           <td class="paramtype">&#160;</td>
    224           <td class="paramname">a, </td>
    225         </tr>
    226         <tr>
    227           <td class="paramkey"></td>
    228           <td></td>
    229           <td class="paramtype">&#160;</td>
    230           <td class="paramname">b, </td>
    231         </tr>
    232         <tr>
    233           <td class="paramkey"></td>
    234           <td></td>
    235           <td class="paramtype">&#160;</td>
    236           <td class="paramname">c&#160;</td>
    237         </tr>
    238         <tr>
    239           <td></td>
    240           <td>)</td>
    241           <td></td><td></td>
    242         </tr>
    243       </table>
    244 </div>
    245 <div class="memdoc">
    246 
    247 <p>Referenced by <a class="el" href="dmxcursor_8h.html#a21820e2001f763e3cfc924a1d602bb62">dmxMoveCursor()</a>, and <a class="el" href="dmxcursor_8c.html#af80076061e55521b62a7cfd8e66bf3e6">dmxWarpCursor()</a>.</p>
    248 
    249 </div>
    250 </div>
    251 <a class="anchor" id="a8ffd07ee80777c394a6ff32d1021347d"></a><!-- doxytag: member="dmxcursor.c::DMXDBG4" ref="a8ffd07ee80777c394a6ff32d1021347d" args="(f, a, b, c, d)" -->
    252 <div class="memitem">
    253 <div class="memproto">
    254       <table class="memname">
    255         <tr>
    256           <td class="memname">#define DMXDBG4</td>
    257           <td>(</td>
    258           <td class="paramtype">&#160;</td>
    259           <td class="paramname">f, </td>
    260         </tr>
    261         <tr>
    262           <td class="paramkey"></td>
    263           <td></td>
    264           <td class="paramtype">&#160;</td>
    265           <td class="paramname">a, </td>
    266         </tr>
    267         <tr>
    268           <td class="paramkey"></td>
    269           <td></td>
    270           <td class="paramtype">&#160;</td>
    271           <td class="paramname">b, </td>
    272         </tr>
    273         <tr>
    274           <td class="paramkey"></td>
    275           <td></td>
    276           <td class="paramtype">&#160;</td>
    277           <td class="paramname">c, </td>
    278         </tr>
    279         <tr>
    280           <td class="paramkey"></td>
    281           <td></td>
    282           <td class="paramtype">&#160;</td>
    283           <td class="paramname">d&#160;</td>
    284         </tr>
    285         <tr>
    286           <td></td>
    287           <td>)</td>
    288           <td></td><td></td>
    289         </tr>
    290       </table>
    291 </div>
    292 <div class="memdoc">
    293 
    294 <p>Referenced by <a class="el" href="dmxcursor_8c.html#a6fd26c7c7811ff77fc3c6e84b82d57d5">_dmxSetCursor()</a>.</p>
    295 
    296 </div>
    297 </div>
    298 <a class="anchor" id="a753eef37715b6379d7d65e34a23d2e03"></a><!-- doxytag: member="dmxcursor.c::DMXDBG5" ref="a753eef37715b6379d7d65e34a23d2e03" args="(f, a, b, c, d, e)" -->
    299 <div class="memitem">
    300 <div class="memproto">
    301       <table class="memname">
    302         <tr>
    303           <td class="memname">#define DMXDBG5</td>
    304           <td>(</td>
    305           <td class="paramtype">&#160;</td>
    306           <td class="paramname">f, </td>
    307         </tr>
    308         <tr>
    309           <td class="paramkey"></td>
    310           <td></td>
    311           <td class="paramtype">&#160;</td>
    312           <td class="paramname">a, </td>
    313         </tr>
    314         <tr>
    315           <td class="paramkey"></td>
    316           <td></td>
    317           <td class="paramtype">&#160;</td>
    318           <td class="paramname">b, </td>
    319         </tr>
    320         <tr>
    321           <td class="paramkey"></td>
    322           <td></td>
    323           <td class="paramtype">&#160;</td>
    324           <td class="paramname">c, </td>
    325         </tr>
    326         <tr>
    327           <td class="paramkey"></td>
    328           <td></td>
    329           <td class="paramtype">&#160;</td>
    330           <td class="paramname">d, </td>
    331         </tr>
    332         <tr>
    333           <td class="paramkey"></td>
    334           <td></td>
    335           <td class="paramtype">&#160;</td>
    336           <td class="paramname">e&#160;</td>
    337         </tr>
    338         <tr>
    339           <td></td>
    340           <td>)</td>
    341           <td></td><td></td>
    342         </tr>
    343       </table>
    344 </div>
    345 <div class="memdoc">
    346 
    347 <p>Referenced by <a class="el" href="dmxcursor_8c.html#aa208a04334d595e3507287bacffdae80">_dmxMoveCursor()</a>, and <a class="el" href="dmxcursor_8c.html#a4cbf6be156525a669ae883465f6458c2">dmxSetCursor()</a>.</p>
    348 
    349 </div>
    350 </div>
    351 <a class="anchor" id="af703e1a00a515e2507f7d2a354429a24"></a><!-- doxytag: member="dmxcursor.c::DMXDBG6" ref="af703e1a00a515e2507f7d2a354429a24" args="(f, a, b, c, d, e, g)" -->
    352 <div class="memitem">
    353 <div class="memproto">
    354       <table class="memname">
    355         <tr>
    356           <td class="memname">#define DMXDBG6</td>
    357           <td>(</td>
    358           <td class="paramtype">&#160;</td>
    359           <td class="paramname">f, </td>
    360         </tr>
    361         <tr>
    362           <td class="paramkey"></td>
    363           <td></td>
    364           <td class="paramtype">&#160;</td>
    365           <td class="paramname">a, </td>
    366         </tr>
    367         <tr>
    368           <td class="paramkey"></td>
    369           <td></td>
    370           <td class="paramtype">&#160;</td>
    371           <td class="paramname">b, </td>
    372         </tr>
    373         <tr>
    374           <td class="paramkey"></td>
    375           <td></td>
    376           <td class="paramtype">&#160;</td>
    377           <td class="paramname">c, </td>
    378         </tr>
    379         <tr>
    380           <td class="paramkey"></td>
    381           <td></td>
    382           <td class="paramtype">&#160;</td>
    383           <td class="paramname">d, </td>
    384         </tr>
    385         <tr>
    386           <td class="paramkey"></td>
    387           <td></td>
    388           <td class="paramtype">&#160;</td>
    389           <td class="paramname">e, </td>
    390         </tr>
    391         <tr>
    392           <td class="paramkey"></td>
    393           <td></td>
    394           <td class="paramtype">&#160;</td>
    395           <td class="paramname">g&#160;</td>
    396         </tr>
    397         <tr>
    398           <td></td>
    399           <td>)</td>
    400           <td></td><td></td>
    401         </tr>
    402       </table>
    403 </div>
    404 <div class="memdoc">
    405 
    406 <p>Referenced by <a class="el" href="dmxcursor_8h.html#a77c74a33de88fae6cf0de8b755a5c411">dmxInitOverlap()</a>.</p>
    407 
    408 </div>
    409 </div>
    410 <a class="anchor" id="ab45c7f6cc47b2c786215ca0276d37d91"></a><!-- doxytag: member="dmxcursor.c::DMXDBG7" ref="ab45c7f6cc47b2c786215ca0276d37d91" args="(f, a, b, c, d, e, g, h)" -->
    411 <div class="memitem">
    412 <div class="memproto">
    413       <table class="memname">
    414         <tr>
    415           <td class="memname">#define DMXDBG7</td>
    416           <td>(</td>
    417           <td class="paramtype">&#160;</td>
    418           <td class="paramname">f, </td>
    419         </tr>
    420         <tr>
    421           <td class="paramkey"></td>
    422           <td></td>
    423           <td class="paramtype">&#160;</td>
    424           <td class="paramname">a, </td>
    425         </tr>
    426         <tr>
    427           <td class="paramkey"></td>
    428           <td></td>
    429           <td class="paramtype">&#160;</td>
    430           <td class="paramname">b, </td>
    431         </tr>
    432         <tr>
    433           <td class="paramkey"></td>
    434           <td></td>
    435           <td class="paramtype">&#160;</td>
    436           <td class="paramname">c, </td>
    437         </tr>
    438         <tr>
    439           <td class="paramkey"></td>
    440           <td></td>
    441           <td class="paramtype">&#160;</td>
    442           <td class="paramname">d, </td>
    443         </tr>
    444         <tr>
    445           <td class="paramkey"></td>
    446           <td></td>
    447           <td class="paramtype">&#160;</td>
    448           <td class="paramname">e, </td>
    449         </tr>
    450         <tr>
    451           <td class="paramkey"></td>
    452           <td></td>
    453           <td class="paramtype">&#160;</td>
    454           <td class="paramname">g, </td>
    455         </tr>
    456         <tr>
    457           <td class="paramkey"></td>
    458           <td></td>
    459           <td class="paramtype">&#160;</td>
    460           <td class="paramname">h&#160;</td>
    461         </tr>
    462         <tr>
    463           <td></td>
    464           <td>)</td>
    465           <td></td><td></td>
    466         </tr>
    467       </table>
    468 </div>
    469 <div class="memdoc">
    470 
    471 </div>
    472 </div>
    473 <hr/><h2>Function Documentation</h2>
    474 <a class="anchor" id="aa208a04334d595e3507287bacffdae80"></a><!-- doxytag: member="dmxcursor.c::_dmxMoveCursor" ref="aa208a04334d595e3507287bacffdae80" args="(ScreenPtr pScreen, int x, int y)" -->
    475 <div class="memitem">
    476 <div class="memproto">
    477       <table class="memname">
    478         <tr>
    479           <td class="memname">static void _dmxMoveCursor </td>
    480           <td>(</td>
    481           <td class="paramtype">ScreenPtr&#160;</td>
    482           <td class="paramname"><em>pScreen</em>, </td>
    483         </tr>
    484         <tr>
    485           <td class="paramkey"></td>
    486           <td></td>
    487           <td class="paramtype">int&#160;</td>
    488           <td class="paramname"><em>x</em>, </td>
    489         </tr>
    490         <tr>
    491           <td class="paramkey"></td>
    492           <td></td>
    493           <td class="paramtype">int&#160;</td>
    494           <td class="paramname"><em>y</em>&#160;</td>
    495         </tr>
    496         <tr>
    497           <td></td>
    498           <td>)</td>
    499           <td></td><td><code> [static]</code></td>
    500         </tr>
    501       </table>
    502 </div>
    503 <div class="memdoc">
    504 
    505 <p>References <a class="el" href="struct__DMXScreenInfo.html#a756ade62a55a52f163a42db6de54c244">_DMXScreenInfo::beDisplay</a>, <a class="el" href="dmxcursor_8c.html#a753eef37715b6379d7d65e34a23d2e03">DMXDBG5</a>, <a class="el" href="dmx_8h.html#a3e242a6818df05e547a4776919e3827f">dmxScreens</a>, <a class="el" href="dmxsync_8c.html#ab848762f4d2e30d31b87d3e8e10c5967">dmxSync()</a>, <a class="el" href="struct__DMXScreenInfo.html#a94bafd201bf311e19fc17772e5ccdc28">_DMXScreenInfo::rootX</a>, <a class="el" href="struct__DMXScreenInfo.html#acd81762e240cca8a57c90ab7f423ca8f">_DMXScreenInfo::rootY</a>, and <a class="el" href="struct__DMXScreenInfo.html#a78c03cd265e1c64b0d4028f0b27f99c4">_DMXScreenInfo::scrnWin</a>.</p>
    506 
    507 <p>Referenced by <a class="el" href="dmxcursor_8c.html#a6fd26c7c7811ff77fc3c6e84b82d57d5">_dmxSetCursor()</a>, and <a class="el" href="dmxcursor_8h.html#a21820e2001f763e3cfc924a1d602bb62">dmxMoveCursor()</a>.</p>
    508 
    509 </div>
    510 </div>
    511 <a class="anchor" id="ac722828c4781d1a44d8b04955472a134"></a><!-- doxytag: member="dmxcursor.c::_dmxRealizeCursor" ref="ac722828c4781d1a44d8b04955472a134" args="(ScreenPtr pScreen, CursorPtr pCursor)" -->
    512 <div class="memitem">
    513 <div class="memproto">
    514       <table class="memname">
    515         <tr>
    516           <td class="memname">static Bool _dmxRealizeCursor </td>
    517           <td>(</td>
    518           <td class="paramtype">ScreenPtr&#160;</td>
    519           <td class="paramname"><em>pScreen</em>, </td>
    520         </tr>
    521         <tr>
    522           <td class="paramkey"></td>
    523           <td></td>
    524           <td class="paramtype">CursorPtr&#160;</td>
    525           <td class="paramname"><em>pCursor</em>&#160;</td>
    526         </tr>
    527         <tr>
    528           <td></td>
    529           <td>)</td>
    530           <td></td><td><code> [static]</code></td>
    531         </tr>
    532       </table>
    533 </div>
    534 <div class="memdoc">
    535 
    536 <p>References <a class="el" href="struct__DMXScreenInfo.html#a756ade62a55a52f163a42db6de54c244">_DMXScreenInfo::beDisplay</a>, <a class="el" href="struct__dmxCursorPriv.html#aa55d93640b2d29175eeaa07b92c83cad">_dmxCursorPriv::cursor</a>, <a class="el" href="dmxcursor_8h.html#a7ddaf12551bbbd8a23fa60c09cdd6218">DMX_GET_CURSOR_PRIV</a>, <a class="el" href="dmxcursor_8h.html#a7ec081934a095ba159d03229e714cfd5">DMX_SET_CURSOR_PRIV</a>, <a class="el" href="dmxcursor_8c.html#a84c92b801c5802879047e74401f62e94">dmxBECreateCursor()</a>, <a class="el" href="dmxcursor_8c.html#a1056d63499cee76ebe297c19637f2b79">DMXDBG2</a>, and <a class="el" href="dmx_8h.html#a3e242a6818df05e547a4776919e3827f">dmxScreens</a>.</p>
    537 
    538 <p>Referenced by <a class="el" href="dmxcursor_8h.html#a6a381bffb099457e7c26a2312cf968a6">dmxCheckCursor()</a>, <a class="el" href="dmxcursor_8h.html#a21820e2001f763e3cfc924a1d602bb62">dmxMoveCursor()</a>, and <a class="el" href="dmxcursor_8c.html#ad51761f218c643ebe7f010538e9c745f">dmxRealizeCursor()</a>.</p>
    539 
    540 </div>
    541 </div>
    542 <a class="anchor" id="a6fd26c7c7811ff77fc3c6e84b82d57d5"></a><!-- doxytag: member="dmxcursor.c::_dmxSetCursor" ref="a6fd26c7c7811ff77fc3c6e84b82d57d5" args="(ScreenPtr pScreen, CursorPtr pCursor, int x, int y)" -->
    543 <div class="memitem">
    544 <div class="memproto">
    545       <table class="memname">
    546         <tr>
    547           <td class="memname">static void _dmxSetCursor </td>
    548           <td>(</td>
    549           <td class="paramtype">ScreenPtr&#160;</td>
    550           <td class="paramname"><em>pScreen</em>, </td>
    551         </tr>
    552         <tr>
    553           <td class="paramkey"></td>
    554           <td></td>
    555           <td class="paramtype">CursorPtr&#160;</td>
    556           <td class="paramname"><em>pCursor</em>, </td>
    557         </tr>
    558         <tr>
    559           <td class="paramkey"></td>
    560           <td></td>
    561           <td class="paramtype">int&#160;</td>
    562           <td class="paramname"><em>x</em>, </td>
    563         </tr>
    564         <tr>
    565           <td class="paramkey"></td>
    566           <td></td>
    567           <td class="paramtype">int&#160;</td>
    568           <td class="paramname"><em>y</em>&#160;</td>
    569         </tr>
    570         <tr>
    571           <td></td>
    572           <td>)</td>
    573           <td></td><td><code> [static]</code></td>
    574         </tr>
    575       </table>
    576 </div>
    577 <div class="memdoc">
    578 
    579 <p>References <a class="el" href="dmxcursor_8c.html#aa208a04334d595e3507287bacffdae80">_dmxMoveCursor()</a>, <a class="el" href="struct__DMXScreenInfo.html#a756ade62a55a52f163a42db6de54c244">_DMXScreenInfo::beDisplay</a>, <a class="el" href="struct__DMXScreenInfo.html#aec1712642a093f935194bfe49d0d4050">_DMXScreenInfo::curCursor</a>, <a class="el" href="struct__DMXScreenInfo.html#a7a61b71888a4d7c6eefa3cde29bbd677">_DMXScreenInfo::cursor</a>, <a class="el" href="struct__dmxCursorPriv.html#aa55d93640b2d29175eeaa07b92c83cad">_dmxCursorPriv::cursor</a>, <a class="el" href="struct__DMXScreenInfo.html#a68f4dfcb582f9470e09c10a6e21ec5e3">_DMXScreenInfo::cursorVisible</a>, <a class="el" href="dmxcursor_8h.html#a7ddaf12551bbbd8a23fa60c09cdd6218">DMX_GET_CURSOR_PRIV</a>, <a class="el" href="dmxcursor_8c.html#a8ffd07ee80777c394a6ff32d1021347d">DMXDBG4</a>, <a class="el" href="dmx_8h.html#a3e242a6818df05e547a4776919e3827f">dmxScreens</a>, <a class="el" href="dmxsync_8c.html#ab848762f4d2e30d31b87d3e8e10c5967">dmxSync()</a>, <a class="el" href="struct__DMXScreenInfo.html#a148c7073ff8a41bee48e6c375e622bd9">_DMXScreenInfo::noCursor</a>, and <a class="el" href="struct__DMXScreenInfo.html#a78c03cd265e1c64b0d4028f0b27f99c4">_DMXScreenInfo::scrnWin</a>.</p>
    580 
    581 <p>Referenced by <a class="el" href="dmxcursor_8h.html#a6a381bffb099457e7c26a2312cf968a6">dmxCheckCursor()</a>, <a class="el" href="dmxcursor_8h.html#ad67e1086ef62ecfa33549d74cd89a379">dmxHideCursor()</a>, <a class="el" href="dmxcursor_8h.html#a21820e2001f763e3cfc924a1d602bb62">dmxMoveCursor()</a>, and <a class="el" href="dmxcursor_8c.html#a4cbf6be156525a669ae883465f6458c2">dmxSetCursor()</a>.</p>
    582 
    583 </div>
    584 </div>
    585 <a class="anchor" id="aa2ac82b5666d162e873c7f0c88ec96f6"></a><!-- doxytag: member="dmxcursor.c::_dmxUnrealizeCursor" ref="aa2ac82b5666d162e873c7f0c88ec96f6" args="(ScreenPtr pScreen, CursorPtr pCursor)" -->
    586 <div class="memitem">
    587 <div class="memproto">
    588       <table class="memname">
    589         <tr>
    590           <td class="memname">static Bool _dmxUnrealizeCursor </td>
    591           <td>(</td>
    592           <td class="paramtype">ScreenPtr&#160;</td>
    593           <td class="paramname"><em>pScreen</em>, </td>
    594         </tr>
    595         <tr>
    596           <td class="paramkey"></td>
    597           <td></td>
    598           <td class="paramtype">CursorPtr&#160;</td>
    599           <td class="paramname"><em>pCursor</em>&#160;</td>
    600         </tr>
    601         <tr>
    602           <td></td>
    603           <td>)</td>
    604           <td></td><td><code> [static]</code></td>
    605         </tr>
    606       </table>
    607 </div>
    608 <div class="memdoc">
    609 
    610 <p>References <a class="el" href="struct__DMXScreenInfo.html#a756ade62a55a52f163a42db6de54c244">_DMXScreenInfo::beDisplay</a>, <a class="el" href="dmxcursor_8h.html#a7ddaf12551bbbd8a23fa60c09cdd6218">DMX_GET_CURSOR_PRIV</a>, <a class="el" href="dmxcursor_8h.html#a7ec081934a095ba159d03229e714cfd5">DMX_SET_CURSOR_PRIV</a>, <a class="el" href="dmxcursor_8c.html#ae0e94924bf5a69c2b26e9d0442befadd">dmxBEFreeCursor()</a>, <a class="el" href="dmxcursor_8c.html#a1056d63499cee76ebe297c19637f2b79">DMXDBG2</a>, and <a class="el" href="dmx_8h.html#a3e242a6818df05e547a4776919e3827f">dmxScreens</a>.</p>
    611 
    612 <p>Referenced by <a class="el" href="dmxcursor_8c.html#a81c0223355350e6d897d4d7306381130">dmxUnrealizeCursor()</a>.</p>
    613 
    614 </div>
    615 </div>
    616 <a class="anchor" id="a84c92b801c5802879047e74401f62e94"></a><!-- doxytag: member="dmxcursor.c::dmxBECreateCursor" ref="a84c92b801c5802879047e74401f62e94" args="(ScreenPtr pScreen, CursorPtr pCursor)" -->
    617 <div class="memitem">
    618 <div class="memproto">
    619       <table class="memname">
    620         <tr>
    621           <td class="memname">void dmxBECreateCursor </td>
    622           <td>(</td>
    623           <td class="paramtype">ScreenPtr&#160;</td>
    624           <td class="paramname"><em>pScreen</em>, </td>
    625         </tr>
    626         <tr>
    627           <td class="paramkey"></td>
    628           <td></td>
    629           <td class="paramtype">CursorPtr&#160;</td>
    630           <td class="paramname"><em>pCursor</em>&#160;</td>
    631         </tr>
    632         <tr>
    633           <td></td>
    634           <td>)</td>
    635           <td></td><td></td>
    636         </tr>
    637       </table>
    638 </div>
    639 <div class="memdoc">
    640 <p>Create <em>pCursor</em> on the back-end associated with <em>pScreen</em>. </p>
    641 
    642 <p>References <a class="el" href="struct__DMXScreenInfo.html#a1288c3902e2e1f871947e854269562e8">_DMXScreenInfo::beDefVisualIndex</a>, <a class="el" href="struct__DMXScreenInfo.html#a756ade62a55a52f163a42db6de54c244">_DMXScreenInfo::beDisplay</a>, <a class="el" href="struct__DMXScreenInfo.html#a6476a8960e2013a9502c326f8851071c">_DMXScreenInfo::beNumPixmapFormats</a>, <a class="el" href="struct__DMXScreenInfo.html#a1c13d3cbcad4da61fe677e96cb781543">_DMXScreenInfo::bePixmapFormats</a>, <a class="el" href="struct__DMXScreenInfo.html#a33651a812fe70c8229f395c2bb38b45c">_DMXScreenInfo::beVisuals</a>, <a class="el" href="struct__dmxCursorPriv.html#aa55d93640b2d29175eeaa07b92c83cad">_dmxCursorPriv::cursor</a>, <a class="el" href="dmxcursor_8h.html#a7ddaf12551bbbd8a23fa60c09cdd6218">DMX_GET_CURSOR_PRIV</a>, <a class="el" href="dmxlog_8h.html#aeed612a5c0be196e23bd6b71b76b917fa4d84ad320675a046536d76c0820abc70">dmxFatal</a>, <a class="el" href="dmxlog_8c.html#ab6259430a57c3cffdfc9f6259df0ad23">dmxLog()</a>, <a class="el" href="dmx_8h.html#a3e242a6818df05e547a4776919e3827f">dmxScreens</a>, <a class="el" href="dmxsync_8c.html#ab848762f4d2e30d31b87d3e8e10c5967">dmxSync()</a>, <a class="el" href="struct__myPrivate.html#a309900033b471a595518e7949e741a78">_myPrivate::gc</a>, <a class="el" href="struct__DMXScreenInfo.html#a0fdddca70b67ca947e663001ac3e398f">_DMXScreenInfo::scrnDefDrawables</a>, and <a class="el" href="struct__DMXScreenInfo.html#a78c03cd265e1c64b0d4028f0b27f99c4">_DMXScreenInfo::scrnWin</a>.</p>
    643 
    644 <p>Referenced by <a class="el" href="dmxcursor_8c.html#ac722828c4781d1a44d8b04955472a134">_dmxRealizeCursor()</a>, and <a class="el" href="dmxextension_8c.html#a6ce8486d2aa17ed2ca5375b127b6189f">dmxBECreateResources()</a>.</p>
    645 
    646 </div>
    647 </div>
    648 <a class="anchor" id="ae0e94924bf5a69c2b26e9d0442befadd"></a><!-- doxytag: member="dmxcursor.c::dmxBEFreeCursor" ref="ae0e94924bf5a69c2b26e9d0442befadd" args="(ScreenPtr pScreen, CursorPtr pCursor)" -->
    649 <div class="memitem">
    650 <div class="memproto">
    651       <table class="memname">
    652         <tr>
    653           <td class="memname">Bool dmxBEFreeCursor </td>
    654           <td>(</td>
    655           <td class="paramtype">ScreenPtr&#160;</td>
    656           <td class="paramname"><em>pScreen</em>, </td>
    657         </tr>
    658         <tr>
    659           <td class="paramkey"></td>
    660           <td></td>
    661           <td class="paramtype">CursorPtr&#160;</td>
    662           <td class="paramname"><em>pCursor</em>&#160;</td>
    663         </tr>
    664         <tr>
    665           <td></td>
    666           <td>)</td>
    667           <td></td><td></td>
    668         </tr>
    669       </table>
    670 </div>
    671 <div class="memdoc">
    672 <p>Free <em>pCursor</em> on the back-end associated with <em>pScreen</em>. </p>
    673 
    674 <p>References <a class="el" href="struct__DMXScreenInfo.html#a756ade62a55a52f163a42db6de54c244">_DMXScreenInfo::beDisplay</a>, <a class="el" href="struct__dmxCursorPriv.html#aa55d93640b2d29175eeaa07b92c83cad">_dmxCursorPriv::cursor</a>, <a class="el" href="dmxcursor_8h.html#a7ddaf12551bbbd8a23fa60c09cdd6218">DMX_GET_CURSOR_PRIV</a>, and <a class="el" href="dmx_8h.html#a3e242a6818df05e547a4776919e3827f">dmxScreens</a>.</p>
    675 
    676 <p>Referenced by <a class="el" href="dmxcursor_8c.html#aa2ac82b5666d162e873c7f0c88ec96f6">_dmxUnrealizeCursor()</a>, and <a class="el" href="dmxextension_8c.html#aaf05373ce6271205b865799a1c2a588f">dmxBEDestroyResources()</a>.</p>
    677 
    678 </div>
    679 </div>
    680 <a class="anchor" id="a6a381bffb099457e7c26a2312cf968a6"></a><!-- doxytag: member="dmxcursor.c::dmxCheckCursor" ref="a6a381bffb099457e7c26a2312cf968a6" args="(void)" -->
    681 <div class="memitem">
    682 <div class="memproto">
    683       <table class="memname">
    684         <tr>
    685           <td class="memname">void dmxCheckCursor </td>
    686           <td>(</td>
    687           <td class="paramtype">void&#160;</td>
    688           <td class="paramname"></td><td>)</td>
    689           <td></td>
    690         </tr>
    691       </table>
    692 </div>
    693 <div class="memdoc">
    694 <p>This routine is called during reconfiguration to make sure the cursor is visible. </p>
    695 
    696 <p>References <a class="el" href="dmxcursor_8c.html#ac722828c4781d1a44d8b04955472a134">_dmxRealizeCursor()</a>, <a class="el" href="dmxcursor_8c.html#a6fd26c7c7811ff77fc3c6e84b82d57d5">_dmxSetCursor()</a>, <a class="el" href="struct__DMXScreenInfo.html#a7a61b71888a4d7c6eefa3cde29bbd677">_DMXScreenInfo::cursor</a>, <a class="el" href="dmxcursor_8c.html#a1056d63499cee76ebe297c19637f2b79">DMXDBG2</a>, <a class="el" href="dmxcursor_8c.html#ac7dc34eb6db6964e4330acc4d0e2badc">dmxFindCursor()</a>, <a class="el" href="dmxinput_8h.html#a8bb7b5687d93b86df921eef6b7c28052">dmxFindFirstScreen()</a>, <a class="el" href="dmxinput_8h.html#a0cb75edbb0cabbfd89b40309907bdee3">dmxGetGlobalPosition()</a>, <a class="el" href="dmx_8h.html#a5a881109fe1e32c74cda4a280b09a7c4">dmxNumScreens</a>, <a class="el" href="dmxcursor_8c.html#adaf3455cdd3f54d22285e5a0fa99fddb">dmxOnScreen()</a>, <a class="el" href="dmx_8h.html#a3e242a6818df05e547a4776919e3827f">dmxScreens</a>, <a class="el" href="struct__DMXScreenInfo.html#a28849096f73f9bf14bb7e461dbb5cc94">_DMXScreenInfo::index</a>, <a class="el" href="struct__DMXScreenInfo.html#aef812b4b6f76c93b8e800e9388330add">_DMXScreenInfo::rootXOrigin</a>, and <a class="el" href="struct__DMXScreenInfo.html#a89914c5858cebec13b2256ad02d787ac">_DMXScreenInfo::rootYOrigin</a>.</p>
    697 
    698 <p>Referenced by <a class="el" href="dmxextension_8c.html#a2bf59b5de92ff76381543139f7b2c8fa">dmxAdjustCursorBoundaries()</a>, and <a class="el" href="dmxbackend_8h.html#a486d684411f79c459a1195e5c02f404c">dmxBackendUpdatePosition()</a>.</p>
    699 
    700 </div>
    701 </div>
    702 <a class="anchor" id="aa5a4c58dbde29584153fbc43a1ac6e26"></a><!-- doxytag: member="dmxcursor.c::dmxComputeScreenOrigins" ref="aa5a4c58dbde29584153fbc43a1ac6e26" args="(void)" -->
    703 <div class="memitem">
    704 <div class="memproto">
    705       <table class="memname">
    706         <tr>
    707           <td class="memname">static void dmxComputeScreenOrigins </td>
    708           <td>(</td>
    709           <td class="paramtype">void&#160;</td>
    710           <td class="paramname"></td><td>)</td>
    711           <td><code> [static]</code></td>
    712         </tr>
    713       </table>
    714 </div>
    715 <div class="memdoc">
    716 
    717 <p>References <a class="el" href="dmx_8h.html#a5a881109fe1e32c74cda4a280b09a7c4">dmxNumScreens</a>, <a class="el" href="dmx_8h.html#a3e242a6818df05e547a4776919e3827f">dmxScreens</a>, <a class="el" href="dmxcursor_8c.html#aaf8a9878f12b6653247fc27d960beccf">dmxSLCreate()</a>, <a class="el" href="dmxcursor_8c.html#ab4dcb11cad339e72d843356841ffd203">dmxSLFindNext()</a>, <a class="el" href="dmxcursor_8c.html#a565fbb8c3754a14c1aed13b741705b91">dmxSLFree()</a>, <a class="el" href="dmxcursor_8c.html#a97efbe7e0a872da9de0be49da214c210">dmxTryComputeScreenOrigins()</a>, and <a class="el" href="struct__DMXScreenInfo.html#ae502ef7543f17556ea497ebbef157f41">_DMXScreenInfo::whereRefScreen</a>.</p>
    718 
    719 <p>Referenced by <a class="el" href="dmxcursor_8h.html#af3fb4b2c2d3cc318c88fbc6658893360">dmxInitOrigins()</a>.</p>
    720 
    721 </div>
    722 </div>
    723 <a class="anchor" id="a2d0757fa7119492da7fe26901dab8571"></a><!-- doxytag: member="dmxcursor.c::dmxCrossScreen" ref="a2d0757fa7119492da7fe26901dab8571" args="(ScreenPtr pScreen, Bool entering)" -->
    724 <div class="memitem">
    725 <div class="memproto">
    726       <table class="memname">
    727         <tr>
    728           <td class="memname">static void dmxCrossScreen </td>
    729           <td>(</td>
    730           <td class="paramtype">ScreenPtr&#160;</td>
    731           <td class="paramname"><em>pScreen</em>, </td>
    732         </tr>
    733         <tr>
    734           <td class="paramkey"></td>
    735           <td></td>
    736           <td class="paramtype">Bool&#160;</td>
    737           <td class="paramname"><em>entering</em>&#160;</td>
    738         </tr>
    739         <tr>
    740           <td></td>
    741           <td>)</td>
    742           <td></td><td><code> [static]</code></td>
    743         </tr>
    744       </table>
    745 </div>
    746 <div class="memdoc">
    747 
    748 </div>
    749 </div>
    750 <a class="anchor" id="a709e3d4a4e44e17fed3de1fcb0d42b20"></a><!-- doxytag: member="dmxcursor.c::dmxCursorNoMulti" ref="a709e3d4a4e44e17fed3de1fcb0d42b20" args="(void)" -->
    751 <div class="memitem">
    752 <div class="memproto">
    753       <table class="memname">
    754         <tr>
    755           <td class="memname">void dmxCursorNoMulti </td>
    756           <td>(</td>
    757           <td class="paramtype">void&#160;</td>
    758           <td class="paramname"></td><td>)</td>
    759           <td></td>
    760         </tr>
    761       </table>
    762 </div>
    763 <div class="memdoc">
    764 <p>Turn off support for displaying multiple cursors on overlapped back-end displays. See <a class="el" href="dmxcursor_8c.html#a4d792c0cb9ce0c21787d3cd88d774fa6">dmxCursorDoMultiCursors</a>. </p>
    765 
    766 <p>References <a class="el" href="dmxcursor_8c.html#a4d792c0cb9ce0c21787d3cd88d774fa6">dmxCursorDoMultiCursors</a>.</p>
    767 
    768 <p>Referenced by <a class="el" href="dmxinit_8c.html#a6ed0a235a6d852bfe0cc0250159a5daf">ddxProcessArgument()</a>.</p>
    769 
    770 </div>
    771 </div>
    772 <a class="anchor" id="a1c7f5d94ee32f85ec027c53b881fc697"></a><!-- doxytag: member="dmxcursor.c::dmxCursorOffScreen" ref="a1c7f5d94ee32f85ec027c53b881fc697" args="(ScreenPtr *ppScreen, int *x, int *y)" -->
    773 <div class="memitem">
    774 <div class="memproto">
    775       <table class="memname">
    776         <tr>
    777           <td class="memname">static Bool dmxCursorOffScreen </td>
    778           <td>(</td>
    779           <td class="paramtype">ScreenPtr *&#160;</td>
    780           <td class="paramname"><em>ppScreen</em>, </td>
    781         </tr>
    782         <tr>
    783           <td class="paramkey"></td>
    784           <td></td>
    785           <td class="paramtype">int *&#160;</td>
    786           <td class="paramname"><em>x</em>, </td>
    787         </tr>
    788         <tr>
    789           <td class="paramkey"></td>
    790           <td></td>
    791           <td class="paramtype">int *&#160;</td>
    792           <td class="paramname"><em>y</em>&#160;</td>
    793         </tr>
    794         <tr>
    795           <td></td>
    796           <td>)</td>
    797           <td></td><td><code> [static]</code></td>
    798         </tr>
    799       </table>
    800 </div>
    801 <div class="memdoc">
    802 
    803 <p>References <a class="el" href="dmx_8h.html#a5a881109fe1e32c74cda4a280b09a7c4">dmxNumScreens</a>, <a class="el" href="dmx_8h.html#a3e242a6818df05e547a4776919e3827f">dmxScreens</a>, <a class="el" href="struct__myPrivate.html#ac5d2265df9e523e1bd4a0c81506b82cb">_myPrivate::globalX</a>, <a class="el" href="struct__myPrivate.html#afbe8cb18da83776018a774b99eb17c14">_myPrivate::globalY</a>, <a class="el" href="struct__DMXScreenInfo.html#a28849096f73f9bf14bb7e461dbb5cc94">_DMXScreenInfo::index</a>, <a class="el" href="struct__DMXScreenInfo.html#a021f9c1883ae7d96bd47c53bc0bab428">_DMXScreenInfo::rootHeight</a>, <a class="el" href="struct__DMXScreenInfo.html#a1edc0ff1f4afd8176c237248da677350">_DMXScreenInfo::rootWidth</a>, <a class="el" href="struct__DMXScreenInfo.html#aef812b4b6f76c93b8e800e9388330add">_DMXScreenInfo::rootXOrigin</a>, and <a class="el" href="struct__DMXScreenInfo.html#a89914c5858cebec13b2256ad02d787ac">_DMXScreenInfo::rootYOrigin</a>.</p>
    804 
    805 </div>
    806 </div>
    807 <a class="anchor" id="af291298e4f52875e45d7097a223a8c0b"></a><!-- doxytag: member="dmxcursor.c::dmxDeviceCursorCleanup" ref="af291298e4f52875e45d7097a223a8c0b" args="(DeviceIntPtr pDev, ScreenPtr pScr)" -->
    808 <div class="memitem">
    809 <div class="memproto">
    810       <table class="memname">
    811         <tr>
    812           <td class="memname">static void dmxDeviceCursorCleanup </td>
    813           <td>(</td>
    814           <td class="paramtype">DeviceIntPtr&#160;</td>
    815           <td class="paramname"><em>pDev</em>, </td>
    816         </tr>
    817         <tr>
    818           <td class="paramkey"></td>
    819           <td></td>
    820           <td class="paramtype">ScreenPtr&#160;</td>
    821           <td class="paramname"><em>pScr</em>&#160;</td>
    822         </tr>
    823         <tr>
    824           <td></td>
    825           <td>)</td>
    826           <td></td><td><code> [static]</code></td>
    827         </tr>
    828       </table>
    829 </div>
    830 <div class="memdoc">
    831 
    832 </div>
    833 </div>
    834 <a class="anchor" id="a214b710621ed0279d6321375f3512a87"></a><!-- doxytag: member="dmxcursor.c::dmxDeviceCursorInitialize" ref="a214b710621ed0279d6321375f3512a87" args="(DeviceIntPtr pDev, ScreenPtr pScr)" -->
    835 <div class="memitem">
    836 <div class="memproto">
    837       <table class="memname">
    838         <tr>
    839           <td class="memname">static Bool dmxDeviceCursorInitialize </td>
    840           <td>(</td>
    841           <td class="paramtype">DeviceIntPtr&#160;</td>
    842           <td class="paramname"><em>pDev</em>, </td>
    843         </tr>
    844         <tr>
    845           <td class="paramkey"></td>
    846           <td></td>
    847           <td class="paramtype">ScreenPtr&#160;</td>
    848           <td class="paramname"><em>pScr</em>&#160;</td>
    849         </tr>
    850         <tr>
    851           <td></td>
    852           <td>)</td>
    853           <td></td><td><code> [static]</code></td>
    854         </tr>
    855       </table>
    856 </div>
    857 <div class="memdoc">
    858 
    859 </div>
    860 </div>
    861 <a class="anchor" id="a5612d5f5b97d54fa9eb73540eaeba4f3"></a><!-- doxytag: member="dmxcursor.c::dmxDoesOverlap" ref="a5612d5f5b97d54fa9eb73540eaeba4f3" args="(DMXScreenInfo *a, DMXScreenInfo *b)" -->
    862 <div class="memitem">
    863 <div class="memproto">
    864       <table class="memname">
    865         <tr>
    866           <td class="memname">static int dmxDoesOverlap </td>
    867           <td>(</td>
    868           <td class="paramtype"><a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *&#160;</td>
    869           <td class="paramname"><em>a</em>, </td>
    870         </tr>
    871         <tr>
    872           <td class="paramkey"></td>
    873           <td></td>
    874           <td class="paramtype"><a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *&#160;</td>
    875           <td class="paramname"><em>b</em>&#160;</td>
    876         </tr>
    877         <tr>
    878           <td></td>
    879           <td>)</td>
    880           <td></td><td><code> [static]</code></td>
    881         </tr>
    882       </table>
    883 </div>
    884 <div class="memdoc">
    885 <p>Returns non-zero if <em>a</em> overlaps <em>b</em>. </p>
    886 
    887 <p>References <a class="el" href="dmxcursor_8c.html#adaf3455cdd3f54d22285e5a0fa99fddb">dmxOnScreen()</a>, <a class="el" href="struct__DMXScreenInfo.html#aef812b4b6f76c93b8e800e9388330add">_DMXScreenInfo::rootXOrigin</a>, <a class="el" href="struct__DMXScreenInfo.html#a89914c5858cebec13b2256ad02d787ac">_DMXScreenInfo::rootYOrigin</a>, <a class="el" href="struct__DMXScreenInfo.html#a2a1733427433e53a0df2575168ad0713">_DMXScreenInfo::scrnHeight</a>, and <a class="el" href="struct__DMXScreenInfo.html#ac4c86f223d149ffda30a32ebaffee23a">_DMXScreenInfo::scrnWidth</a>.</p>
    888 
    889 <p>Referenced by <a class="el" href="dmxcursor_8h.html#a77c74a33de88fae6cf0de8b755a5c411">dmxInitOverlap()</a>.</p>
    890 
    891 </div>
    892 </div>
    893 <a class="anchor" id="ac7dc34eb6db6964e4330acc4d0e2badc"></a><!-- doxytag: member="dmxcursor.c::dmxFindCursor" ref="ac7dc34eb6db6964e4330acc4d0e2badc" args="(DMXScreenInfo *start)" -->
    894 <div class="memitem">
    895 <div class="memproto">
    896       <table class="memname">
    897         <tr>
    898           <td class="memname">static CursorPtr dmxFindCursor </td>
    899           <td>(</td>
    900           <td class="paramtype"><a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *&#160;</td>
    901           <td class="paramname"><em>start</em></td><td>)</td>
    902           <td><code> [static]</code></td>
    903         </tr>
    904       </table>
    905 </div>
    906 <div class="memdoc">
    907 
    908 <p>References <a class="el" href="struct__DMXScreenInfo.html#a7a61b71888a4d7c6eefa3cde29bbd677">_DMXScreenInfo::cursor</a>, and <a class="el" href="struct__DMXScreenInfo.html#ac55a37b29ce99474516995b09f794d9c">_DMXScreenInfo::over</a>.</p>
    909 
    910 <p>Referenced by <a class="el" href="dmxcursor_8h.html#a6a381bffb099457e7c26a2312cf968a6">dmxCheckCursor()</a>, and <a class="el" href="dmxcursor_8h.html#a21820e2001f763e3cfc924a1d602bb62">dmxMoveCursor()</a>.</p>
    911 
    912 </div>
    913 </div>
    914 <a class="anchor" id="ad67e1086ef62ecfa33549d74cd89a379"></a><!-- doxytag: member="dmxcursor.c::dmxHideCursor" ref="ad67e1086ef62ecfa33549d74cd89a379" args="(DMXScreenInfo *dmxScreen)" -->
    915 <div class="memitem">
    916 <div class="memproto">
    917       <table class="memname">
    918         <tr>
    919           <td class="memname">void dmxHideCursor </td>
    920           <td>(</td>
    921           <td class="paramtype"><a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *&#160;</td>
    922           <td class="paramname"><em>dmxScreen</em></td><td>)</td>
    923           <td></td>
    924         </tr>
    925       </table>
    926 </div>
    927 <div class="memdoc">
    928 <p>This routine is used by the backend input routines to hide the cursor on a screen that is being used for relative input. </p>
    929 <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="dmxbackend_8c.html">dmxbackend.c</a> </dd></dl>
    930 
    931 <p>References <a class="el" href="dmxcursor_8c.html#a6fd26c7c7811ff77fc3c6e84b82d57d5">_dmxSetCursor()</a>, <a class="el" href="dmxinput_8h.html#a0cb75edbb0cabbfd89b40309907bdee3">dmxGetGlobalPosition()</a>, and <a class="el" href="struct__DMXScreenInfo.html#a28849096f73f9bf14bb7e461dbb5cc94">_DMXScreenInfo::index</a>.</p>
    932 
    933 <p>Referenced by <a class="el" href="dmxbackend_8h.html#a486d684411f79c459a1195e5c02f404c">dmxBackendUpdatePosition()</a>.</p>
    934 
    935 </div>
    936 </div>
    937 <a class="anchor" id="af3fb4b2c2d3cc318c88fbc6658893360"></a><!-- doxytag: member="dmxcursor.c::dmxInitOrigins" ref="af3fb4b2c2d3cc318c88fbc6658893360" args="(void)" -->
    938 <div class="memitem">
    939 <div class="memproto">
    940       <table class="memname">
    941         <tr>
    942           <td class="memname">void dmxInitOrigins </td>
    943           <td>(</td>
    944           <td class="paramtype">void&#160;</td>
    945           <td class="paramname"></td><td>)</td>
    946           <td></td>
    947         </tr>
    948       </table>
    949 </div>
    950 <div class="memdoc">
    951 <p>Initialize screen origins (and relative position). This is called for each server generation. For dynamic reconfiguration, use <a class="el" href="dmxcursor_8c.html#a9bdb6eff5f7f86fd071091c5a55cee7c">dmxReInitOrigins()</a> instead. </p>
    952 
    953 <p>References <a class="el" href="struct__DMXScreenInfo.html#a5e865cb99dd73ba18991912af275994f">_DMXScreenInfo::beBPP</a>, <a class="el" href="struct__DMXScreenInfo.html#ac435223f6a5921beab567cc23b83f07f">_DMXScreenInfo::beDepth</a>, <a class="el" href="struct__DMXScreenInfo.html#a713ca6d9bf7a4527f442519554e1fc94">_DMXScreenInfo::beHeight</a>, <a class="el" href="struct__DMXScreenInfo.html#aaa160ae9fce9f7c58bb9f6c0a9709861">_DMXScreenInfo::beWidth</a>, <a class="el" href="dmxcursor_8c.html#aa5a4c58dbde29584153fbc43a1ac6e26">dmxComputeScreenOrigins()</a>, <a class="el" href="dmxlog_8h.html#aeed612a5c0be196e23bd6b71b76b917fa4d84ad320675a046536d76c0820abc70">dmxFatal</a>, <a class="el" href="dmxlog_8c.html#ab6259430a57c3cffdfc9f6259df0ad23">dmxLog()</a>, <a class="el" href="dmxlog_8c.html#aabe50ca33403c25a9e57a06d1d3a089a">dmxLogOutput()</a>, <a class="el" href="dmx_8h.html#a5a881109fe1e32c74cda4a280b09a7c4">dmxNumScreens</a>, <a class="el" href="dmxcursor_8c.html#a9bdb6eff5f7f86fd071091c5a55cee7c">dmxReInitOrigins()</a>, <a class="el" href="dmx_8h.html#a3e242a6818df05e547a4776919e3827f">dmxScreens</a>, <a class="el" href="struct__DMXScreenInfo.html#a021f9c1883ae7d96bd47c53bc0bab428">_DMXScreenInfo::rootHeight</a>, <a class="el" href="struct__DMXScreenInfo.html#a1edc0ff1f4afd8176c237248da677350">_DMXScreenInfo::rootWidth</a>, <a class="el" href="struct__DMXScreenInfo.html#a94bafd201bf311e19fc17772e5ccdc28">_DMXScreenInfo::rootX</a>, <a class="el" href="struct__DMXScreenInfo.html#aef812b4b6f76c93b8e800e9388330add">_DMXScreenInfo::rootXOrigin</a>, <a class="el" href="struct__DMXScreenInfo.html#acd81762e240cca8a57c90ab7f423ca8f">_DMXScreenInfo::rootY</a>, <a class="el" href="struct__DMXScreenInfo.html#a89914c5858cebec13b2256ad02d787ac">_DMXScreenInfo::rootYOrigin</a>, <a class="el" href="struct__DMXScreenInfo.html#a2a1733427433e53a0df2575168ad0713">_DMXScreenInfo::scrnHeight</a>, <a class="el" href="struct__DMXScreenInfo.html#ac4c86f223d149ffda30a32ebaffee23a">_DMXScreenInfo::scrnWidth</a>, <a class="el" href="struct__DMXScreenInfo.html#a25e823320e01d5c61c996a9e4f3c2920">_DMXScreenInfo::scrnX</a>, <a class="el" href="struct__DMXScreenInfo.html#aec971ffcb8c7970610513deef57da9f0">_DMXScreenInfo::scrnY</a>, <a class="el" href="struct__DMXScreenInfo.html#a2cb225a5c08ae6ea0ce19d85616f143b">_DMXScreenInfo::where</a>, <a class="el" href="struct__DMXScreenInfo.html#a9d0572de80377c7ad7407dfb0cf22d8a">_DMXScreenInfo::whereX</a>, and <a class="el" href="struct__DMXScreenInfo.html#aeb391a900f17b41e18127b4b31026c96">_DMXScreenInfo::whereY</a>.</p>
    954 
    955 <p>Referenced by <a class="el" href="dmxinit_8c.html#a51c195c51f4f09e981384a4215f82321">InitOutput()</a>.</p>
    956 
    957 </div>
    958 </div>
    959 <a class="anchor" id="a77c74a33de88fae6cf0de8b755a5c411"></a><!-- doxytag: member="dmxcursor.c::dmxInitOverlap" ref="a77c74a33de88fae6cf0de8b755a5c411" args="(void)" -->
    960 <div class="memitem">
    961 <div class="memproto">
    962       <table class="memname">
    963         <tr>
    964           <td class="memname">void dmxInitOverlap </td>
    965           <td>(</td>
    966           <td class="paramtype">void&#160;</td>
    967           <td class="paramname"></td><td>)</td>
    968           <td></td>
    969         </tr>
    970       </table>
    971 </div>
    972 <div class="memdoc">
    973 <p>Detects overlapping dmxScreens and creates circular lists. This uses an O(dmxNumScreens^2) algorithm, but dmxNumScreens is &lt; 100 and the computation only needs to be performed for every server generation or dynamic reconfiguration . </p>
    974 
    975 <p>References <a class="el" href="struct__DMXScreenInfo.html#a83dd882008eb7e54cc81987a23ab9fd5">_DMXScreenInfo::cursorNotShared</a>, <a class="el" href="dmxcursor_8c.html#af703e1a00a515e2507f7d2a354429a24">DMXDBG6</a>, <a class="el" href="dmxcursor_8c.html#a5612d5f5b97d54fa9eb73540eaeba4f3">dmxDoesOverlap()</a>, <a class="el" href="dmxlog_8h.html#aeed612a5c0be196e23bd6b71b76b917faf73564300bdffb23b369b84c842aceea">dmxInfo</a>, <a class="el" href="dmxcursor_8c.html#a28c6651bdff6f7fc01292548659a6eb4">dmxIterateOverlap()</a>, <a class="el" href="dmxlog_8c.html#ab6259430a57c3cffdfc9f6259df0ad23">dmxLog()</a>, <a class="el" href="dmxlog_8c.html#aabe50ca33403c25a9e57a06d1d3a089a">dmxLogOutput()</a>, <a class="el" href="dmxlog_8c.html#a9ee9ef3403a0905596796cfcac2334d2">dmxLogOutputCont()</a>, <a class="el" href="dmx_8h.html#a5a881109fe1e32c74cda4a280b09a7c4">dmxNumScreens</a>, <a class="el" href="dmxcursor_8c.html#a52398858fc93988512050543967652fe">dmxPrintOverlap()</a>, <a class="el" href="dmxprop_8c.html#a1353800f90c3a1f46d453caa71a41ab6">dmxPropertyIterate()</a>, <a class="el" href="dmx_8h.html#a3e242a6818df05e547a4776919e3827f">dmxScreens</a>, <a class="el" href="dmxcursor_8c.html#a3beed7bb0f6999879936b2f47751d125">dmxTestSameDisplay()</a>, <a class="el" href="struct__DMXScreenInfo.html#a28849096f73f9bf14bb7e461dbb5cc94">_DMXScreenInfo::index</a>, <a class="el" href="struct__DMXScreenInfo.html#a5cfc14ffedaafcbe5b00302f972208cf">_DMXScreenInfo::name</a>, and <a class="el" href="struct__DMXScreenInfo.html#ac55a37b29ce99474516995b09f794d9c">_DMXScreenInfo::over</a>.</p>
    976 
    977 <p>Referenced by <a class="el" href="dmxextension_8c.html#a2bf59b5de92ff76381543139f7b2c8fa">dmxAdjustCursorBoundaries()</a>, and <a class="el" href="dmxinit_8c.html#a51c195c51f4f09e981384a4215f82321">InitOutput()</a>.</p>
    978 
    979 </div>
    980 </div>
    981 <a class="anchor" id="a28c6651bdff6f7fc01292548659a6eb4"></a><!-- doxytag: member="dmxcursor.c::dmxIterateOverlap" ref="a28c6651bdff6f7fc01292548659a6eb4" args="(DMXScreenInfo *start, void *(*f)(DMXScreenInfo *dmxScreen, void *), void *closure)" -->
    982 <div class="memitem">
    983 <div class="memproto">
    984       <table class="memname">
    985         <tr>
    986           <td class="memname">static void* dmxIterateOverlap </td>
    987           <td>(</td>
    988           <td class="paramtype"><a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *&#160;</td>
    989           <td class="paramname"><em>start</em>, </td>
    990         </tr>
    991         <tr>
    992           <td class="paramkey"></td>
    993           <td></td>
    994           <td class="paramtype">void *(*)(<a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *dmxScreen, void *)&#160;</td>
    995           <td class="paramname"><em>f</em>, </td>
    996         </tr>
    997         <tr>
    998           <td class="paramkey"></td>
    999           <td></td>
   1000           <td class="paramtype">void *&#160;</td>
   1001           <td class="paramname"><em>closure</em>&#160;</td>
   1002         </tr>
   1003         <tr>
   1004           <td></td>
   1005           <td>)</td>
   1006           <td></td><td><code> [static]</code></td>
   1007         </tr>
   1008       </table>
   1009 </div>
   1010 <div class="memdoc">
   1011 <p>Iterate over the screens which overlap with the <em>start</em> screen, calling <em>f</em> with the <em>closure</em> for each argument. Often used with <a class="el" href="dmxcursor_8c.html#a52398858fc93988512050543967652fe">dmxPrintOverlap</a>. </p>
   1012 
   1013 <p>References <a class="el" href="struct__DMXScreenInfo.html#ac55a37b29ce99474516995b09f794d9c">_DMXScreenInfo::over</a>.</p>
   1014 
   1015 <p>Referenced by <a class="el" href="dmxcursor_8h.html#a77c74a33de88fae6cf0de8b755a5c411">dmxInitOverlap()</a>.</p>
   1016 
   1017 </div>
   1018 </div>
   1019 <a class="anchor" id="a21820e2001f763e3cfc924a1d602bb62"></a><!-- doxytag: member="dmxcursor.c::dmxMoveCursor" ref="a21820e2001f763e3cfc924a1d602bb62" args="(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)" -->
   1020 <div class="memitem">
   1021 <div class="memproto">
   1022       <table class="memname">
   1023         <tr>
   1024           <td class="memname">void dmxMoveCursor </td>
   1025           <td>(</td>
   1026           <td class="paramtype">DeviceIntPtr&#160;</td>
   1027           <td class="paramname"><em>pDev</em>, </td>
   1028         </tr>
   1029         <tr>
   1030           <td class="paramkey"></td>
   1031           <td></td>
   1032           <td class="paramtype">ScreenPtr&#160;</td>
   1033           <td class="paramname"><em>pScreen</em>, </td>
   1034         </tr>
   1035         <tr>
   1036           <td class="paramkey"></td>
   1037           <td></td>
   1038           <td class="paramtype">int&#160;</td>
   1039           <td class="paramname"><em>x</em>, </td>
   1040         </tr>
   1041         <tr>
   1042           <td class="paramkey"></td>
   1043           <td></td>
   1044           <td class="paramtype">int&#160;</td>
   1045           <td class="paramname"><em>y</em>&#160;</td>
   1046         </tr>
   1047         <tr>
   1048           <td></td>
   1049           <td>)</td>
   1050           <td></td><td></td>
   1051         </tr>
   1052       </table>
   1053 </div>
   1054 <div class="memdoc">
   1055 <p>Move the cursor to coordinates (<em>x</em>, <em>y</em>)on <em>pScreen</em>. This function is usually called via <a class="el" href="dmxcursor_8h.html#a7bf2f59a6c5d381aea975cd78dd1f9dc">dmxPointerSpriteFuncs</a>, except during reconfiguration when the cursor is repositioned to force an update on newley overlapping screens and on screens that no longer overlap.</p>
   1056 <p>The coords (x,y) are in global coord space. We'll loop over the back-end screens and see if they contain the global coord. If so, call <a class="el" href="dmxcursor_8c.html#aa208a04334d595e3507287bacffdae80">_dmxMoveCursor()</a> (XWarpPointer) to position the pointer on that screen. </p>
   1057 
   1058 <p>References <a class="el" href="dmxcursor_8c.html#aa208a04334d595e3507287bacffdae80">_dmxMoveCursor()</a>, <a class="el" href="dmxcursor_8c.html#ac722828c4781d1a44d8b04955472a134">_dmxRealizeCursor()</a>, <a class="el" href="dmxcursor_8c.html#a6fd26c7c7811ff77fc3c6e84b82d57d5">_dmxSetCursor()</a>, <a class="el" href="struct__DMXScreenInfo.html#a7a61b71888a4d7c6eefa3cde29bbd677">_DMXScreenInfo::cursor</a>, <a class="el" href="struct__DMXScreenInfo.html#a83dd882008eb7e54cc81987a23ab9fd5">_DMXScreenInfo::cursorNotShared</a>, <a class="el" href="struct__DMXScreenInfo.html#a68f4dfcb582f9470e09c10a6e21ec5e3">_DMXScreenInfo::cursorVisible</a>, <a class="el" href="dmxcursor_8c.html#a4d792c0cb9ce0c21787d3cd88d774fa6">dmxCursorDoMultiCursors</a>, <a class="el" href="dmxcursor_8c.html#a6c6714b899194081b94edb722ca1c4bc">DMXDBG3</a>, <a class="el" href="dmxcursor_8c.html#ac7dc34eb6db6964e4330acc4d0e2badc">dmxFindCursor()</a>, <a class="el" href="dmxcursor_8c.html#adaf3455cdd3f54d22285e5a0fa99fddb">dmxOnScreen()</a>, <a class="el" href="dmx_8h.html#a3e242a6818df05e547a4776919e3827f">dmxScreens</a>, <a class="el" href="struct__DMXScreenInfo.html#a28849096f73f9bf14bb7e461dbb5cc94">_DMXScreenInfo::index</a>, <a class="el" href="struct__DMXScreenInfo.html#ac55a37b29ce99474516995b09f794d9c">_DMXScreenInfo::over</a>, <a class="el" href="struct__DMXScreenInfo.html#aef812b4b6f76c93b8e800e9388330add">_DMXScreenInfo::rootXOrigin</a>, and <a class="el" href="struct__DMXScreenInfo.html#a89914c5858cebec13b2256ad02d787ac">_DMXScreenInfo::rootYOrigin</a>.</p>
   1059 
   1060 </div>
   1061 </div>
   1062 <a class="anchor" id="adaf3455cdd3f54d22285e5a0fa99fddb"></a><!-- doxytag: member="dmxcursor.c::dmxOnScreen" ref="adaf3455cdd3f54d22285e5a0fa99fddb" args="(int x, int y, DMXScreenInfo *dmxScreen)" -->
   1063 <div class="memitem">
   1064 <div class="memproto">
   1065       <table class="memname">
   1066         <tr>
   1067           <td class="memname">int dmxOnScreen </td>
   1068           <td>(</td>
   1069           <td class="paramtype">int&#160;</td>
   1070           <td class="paramname"><em>x</em>, </td>
   1071         </tr>
   1072         <tr>
   1073           <td class="paramkey"></td>
   1074           <td></td>
   1075           <td class="paramtype">int&#160;</td>
   1076           <td class="paramname"><em>y</em>, </td>
   1077         </tr>
   1078         <tr>
   1079           <td class="paramkey"></td>
   1080           <td></td>
   1081           <td class="paramtype"><a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *&#160;</td>
   1082           <td class="paramname"><em>dmxScreen</em>&#160;</td>
   1083         </tr>
   1084         <tr>
   1085           <td></td>
   1086           <td>)</td>
   1087           <td></td><td></td>
   1088         </tr>
   1089       </table>
   1090 </div>
   1091 <div class="memdoc">
   1092 <p>Returns non-zero if the global <em>x</em>, <em>y</em> coordinate is on the screen window of the <em>dmxScreen</em>. </p>
   1093 
   1094 <p>References <a class="el" href="dmxlog_8h.html#aeed612a5c0be196e23bd6b71b76b917fa55e322963608341d32ebb8a0b9d936fe">dmxDebug</a>, <a class="el" href="dmxlog_8c.html#ab6259430a57c3cffdfc9f6259df0ad23">dmxLog()</a>, <a class="el" href="struct__DMXScreenInfo.html#a28849096f73f9bf14bb7e461dbb5cc94">_DMXScreenInfo::index</a>, <a class="el" href="struct__DMXScreenInfo.html#a021f9c1883ae7d96bd47c53bc0bab428">_DMXScreenInfo::rootHeight</a>, <a class="el" href="struct__DMXScreenInfo.html#a1edc0ff1f4afd8176c237248da677350">_DMXScreenInfo::rootWidth</a>, <a class="el" href="struct__DMXScreenInfo.html#a94bafd201bf311e19fc17772e5ccdc28">_DMXScreenInfo::rootX</a>, <a class="el" href="struct__DMXScreenInfo.html#aef812b4b6f76c93b8e800e9388330add">_DMXScreenInfo::rootXOrigin</a>, <a class="el" href="struct__DMXScreenInfo.html#acd81762e240cca8a57c90ab7f423ca8f">_DMXScreenInfo::rootY</a>, <a class="el" href="struct__DMXScreenInfo.html#a89914c5858cebec13b2256ad02d787ac">_DMXScreenInfo::rootYOrigin</a>, <a class="el" href="struct__DMXScreenInfo.html#a2a1733427433e53a0df2575168ad0713">_DMXScreenInfo::scrnHeight</a>, <a class="el" href="struct__DMXScreenInfo.html#ac4c86f223d149ffda30a32ebaffee23a">_DMXScreenInfo::scrnWidth</a>, <a class="el" href="struct__DMXScreenInfo.html#a25e823320e01d5c61c996a9e4f3c2920">_DMXScreenInfo::scrnX</a>, and <a class="el" href="struct__DMXScreenInfo.html#aec971ffcb8c7970610513deef57da9f0">_DMXScreenInfo::scrnY</a>.</p>
   1095 
   1096 <p>Referenced by <a class="el" href="dmxbackend_8c.html#ad19eff278a8cb7748201a1e654c4bf32">dmxBackendFindOverlapping()</a>, <a class="el" href="dmxbackend_8c.html#a2cb121a910d12c89e65fe68d8acb203f">dmxBackendOffscreen()</a>, <a class="el" href="dmxcursor_8h.html#a6a381bffb099457e7c26a2312cf968a6">dmxCheckCursor()</a>, <a class="el" href="dmxcursor_8c.html#a5612d5f5b97d54fa9eb73540eaeba4f3">dmxDoesOverlap()</a>, <a class="el" href="dmxevents_8c.html#a8bb7b5687d93b86df921eef6b7c28052">dmxFindFirstScreen()</a>, <a class="el" href="dmxcursor_8h.html#a21820e2001f763e3cfc924a1d602bb62">dmxMoveCursor()</a>, and <a class="el" href="dmxcursor_8c.html#a4cbf6be156525a669ae883465f6458c2">dmxSetCursor()</a>.</p>
   1097 
   1098 </div>
   1099 </div>
   1100 <a class="anchor" id="a52398858fc93988512050543967652fe"></a><!-- doxytag: member="dmxcursor.c::dmxPrintOverlap" ref="a52398858fc93988512050543967652fe" args="(DMXScreenInfo *dmxScreen, void *closure)" -->
   1101 <div class="memitem">
   1102 <div class="memproto">
   1103       <table class="memname">
   1104         <tr>
   1105           <td class="memname">static void* dmxPrintOverlap </td>
   1106           <td>(</td>
   1107           <td class="paramtype"><a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *&#160;</td>
   1108           <td class="paramname"><em>dmxScreen</em>, </td>
   1109         </tr>
   1110         <tr>
   1111           <td class="paramkey"></td>
   1112           <td></td>
   1113           <td class="paramtype">void *&#160;</td>
   1114           <td class="paramname"><em>closure</em>&#160;</td>
   1115         </tr>
   1116         <tr>
   1117           <td></td>
   1118           <td>)</td>
   1119           <td></td><td><code> [static]</code></td>
   1120         </tr>
   1121       </table>
   1122 </div>
   1123 <div class="memdoc">
   1124 <p>Used with <em>dmxInterateOverlap</em> to print out a list of screens which overlap each other. </p>
   1125 
   1126 <p>References <a class="el" href="struct__DMXScreenInfo.html#a83dd882008eb7e54cc81987a23ab9fd5">_DMXScreenInfo::cursorNotShared</a>, <a class="el" href="dmxlog_8c.html#a9ee9ef3403a0905596796cfcac2334d2">dmxLogOutputCont()</a>, <a class="el" href="struct__DMXScreenInfo.html#a28849096f73f9bf14bb7e461dbb5cc94">_DMXScreenInfo::index</a>, and <a class="el" href="struct__DMXScreenInfo.html#a5cfc14ffedaafcbe5b00302f972208cf">_DMXScreenInfo::name</a>.</p>
   1127 
   1128 <p>Referenced by <a class="el" href="dmxcursor_8h.html#a77c74a33de88fae6cf0de8b755a5c411">dmxInitOverlap()</a>.</p>
   1129 
   1130 </div>
   1131 </div>
   1132 <a class="anchor" id="ad51761f218c643ebe7f010538e9c745f"></a><!-- doxytag: member="dmxcursor.c::dmxRealizeCursor" ref="ad51761f218c643ebe7f010538e9c745f" args="(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)" -->
   1133 <div class="memitem">
   1134 <div class="memproto">
   1135       <table class="memname">
   1136         <tr>
   1137           <td class="memname">static Bool dmxRealizeCursor </td>
   1138           <td>(</td>
   1139           <td class="paramtype">DeviceIntPtr&#160;</td>
   1140           <td class="paramname"><em>pDev</em>, </td>
   1141         </tr>
   1142         <tr>
   1143           <td class="paramkey"></td>
   1144           <td></td>
   1145           <td class="paramtype">ScreenPtr&#160;</td>
   1146           <td class="paramname"><em>pScreen</em>, </td>
   1147         </tr>
   1148         <tr>
   1149           <td class="paramkey"></td>
   1150           <td></td>
   1151           <td class="paramtype">CursorPtr&#160;</td>
   1152           <td class="paramname"><em>pCursor</em>&#160;</td>
   1153         </tr>
   1154         <tr>
   1155           <td></td>
   1156           <td>)</td>
   1157           <td></td><td><code> [static]</code></td>
   1158         </tr>
   1159       </table>
   1160 </div>
   1161 <div class="memdoc">
   1162 
   1163 <p>References <a class="el" href="dmxcursor_8c.html#ac722828c4781d1a44d8b04955472a134">_dmxRealizeCursor()</a>, <a class="el" href="struct__DMXScreenInfo.html#a83dd882008eb7e54cc81987a23ab9fd5">_DMXScreenInfo::cursorNotShared</a>, <a class="el" href="dmxcursor_8c.html#a4d792c0cb9ce0c21787d3cd88d774fa6">dmxCursorDoMultiCursors</a>, <a class="el" href="dmx_8h.html#a3e242a6818df05e547a4776919e3827f">dmxScreens</a>, <a class="el" href="struct__DMXScreenInfo.html#a28849096f73f9bf14bb7e461dbb5cc94">_DMXScreenInfo::index</a>, and <a class="el" href="struct__DMXScreenInfo.html#ac55a37b29ce99474516995b09f794d9c">_DMXScreenInfo::over</a>.</p>
   1164 
   1165 </div>
   1166 </div>
   1167 <a class="anchor" id="a9bdb6eff5f7f86fd071091c5a55cee7c"></a><!-- doxytag: member="dmxcursor.c::dmxReInitOrigins" ref="a9bdb6eff5f7f86fd071091c5a55cee7c" args="(void)" -->
   1168 <div class="memitem">
   1169 <div class="memproto">
   1170       <table class="memname">
   1171         <tr>
   1172           <td class="memname">void dmxReInitOrigins </td>
   1173           <td>(</td>
   1174           <td class="paramtype">void&#160;</td>
   1175           <td class="paramname"></td><td>)</td>
   1176           <td></td>
   1177         </tr>
   1178       </table>
   1179 </div>
   1180 <div class="memdoc">
   1181 <p>Recompute origin information in the <a class="el" href="dmxinit_8c.html#a3e242a6818df05e547a4776919e3827f">dmxScreens</a> list. This is called from <a class="el" href="dmxcursor_8h.html#af3fb4b2c2d3cc318c88fbc6658893360">dmxInitOrigins</a>. </p>
   1182 
   1183 <p>References <a class="el" href="struct__DMXScreenInfo.html#a5e865cb99dd73ba18991912af275994f">_DMXScreenInfo::beBPP</a>, <a class="el" href="struct__DMXScreenInfo.html#ac435223f6a5921beab567cc23b83f07f">_DMXScreenInfo::beDepth</a>, <a class="el" href="struct__DMXScreenInfo.html#a713ca6d9bf7a4527f442519554e1fc94">_DMXScreenInfo::beHeight</a>, <a class="el" href="struct__DMXScreenInfo.html#aaa160ae9fce9f7c58bb9f6c0a9709861">_DMXScreenInfo::beWidth</a>, <a class="el" href="dmxlog_8h.html#aeed612a5c0be196e23bd6b71b76b917fa4d84ad320675a046536d76c0820abc70">dmxFatal</a>, <a class="el" href="dmxlog_8c.html#ab6259430a57c3cffdfc9f6259df0ad23">dmxLog()</a>, <a class="el" href="dmxlog_8c.html#aabe50ca33403c25a9e57a06d1d3a089a">dmxLogOutput()</a>, <a class="el" href="dmx_8h.html#a5a881109fe1e32c74cda4a280b09a7c4">dmxNumScreens</a>, <a class="el" href="dmx_8h.html#a3e242a6818df05e547a4776919e3827f">dmxScreens</a>, <a class="el" href="struct__DMXScreenInfo.html#a021f9c1883ae7d96bd47c53bc0bab428">_DMXScreenInfo::rootHeight</a>, <a class="el" href="struct__DMXScreenInfo.html#a1edc0ff1f4afd8176c237248da677350">_DMXScreenInfo::rootWidth</a>, <a class="el" href="struct__DMXScreenInfo.html#a94bafd201bf311e19fc17772e5ccdc28">_DMXScreenInfo::rootX</a>, <a class="el" href="struct__DMXScreenInfo.html#aef812b4b6f76c93b8e800e9388330add">_DMXScreenInfo::rootXOrigin</a>, <a class="el" href="struct__DMXScreenInfo.html#acd81762e240cca8a57c90ab7f423ca8f">_DMXScreenInfo::rootY</a>, <a class="el" href="struct__DMXScreenInfo.html#a89914c5858cebec13b2256ad02d787ac">_DMXScreenInfo::rootYOrigin</a>, <a class="el" href="struct__DMXScreenInfo.html#a2a1733427433e53a0df2575168ad0713">_DMXScreenInfo::scrnHeight</a>, <a class="el" href="struct__DMXScreenInfo.html#ac4c86f223d149ffda30a32ebaffee23a">_DMXScreenInfo::scrnWidth</a>, <a class="el" href="struct__DMXScreenInfo.html#a25e823320e01d5c61c996a9e4f3c2920">_DMXScreenInfo::scrnX</a>, and <a class="el" href="struct__DMXScreenInfo.html#aec971ffcb8c7970610513deef57da9f0">_DMXScreenInfo::scrnY</a>.</p>
   1184 
   1185 <p>Referenced by <a class="el" href="dmxextension_8c.html#a2bf59b5de92ff76381543139f7b2c8fa">dmxAdjustCursorBoundaries()</a>, and <a class="el" href="dmxcursor_8h.html#af3fb4b2c2d3cc318c88fbc6658893360">dmxInitOrigins()</a>.</p>
   1186 
   1187 </div>
   1188 </div>
   1189 <a class="anchor" id="a4cbf6be156525a669ae883465f6458c2"></a><!-- doxytag: member="dmxcursor.c::dmxSetCursor" ref="a4cbf6be156525a669ae883465f6458c2" args="(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor, int x, int y)" -->
   1190 <div class="memitem">
   1191 <div class="memproto">
   1192       <table class="memname">
   1193         <tr>
   1194           <td class="memname">static void dmxSetCursor </td>
   1195           <td>(</td>
   1196           <td class="paramtype">DeviceIntPtr&#160;</td>
   1197           <td class="paramname"><em>pDev</em>, </td>
   1198         </tr>
   1199         <tr>
   1200           <td class="paramkey"></td>
   1201           <td></td>
   1202           <td class="paramtype">ScreenPtr&#160;</td>
   1203           <td class="paramname"><em>pScreen</em>, </td>
   1204         </tr>
   1205         <tr>
   1206           <td class="paramkey"></td>
   1207           <td></td>
   1208           <td class="paramtype">CursorPtr&#160;</td>
   1209           <td class="paramname"><em>pCursor</em>, </td>
   1210         </tr>
   1211         <tr>
   1212           <td class="paramkey"></td>
   1213           <td></td>
   1214           <td class="paramtype">int&#160;</td>
   1215           <td class="paramname"><em>x</em>, </td>
   1216         </tr>
   1217         <tr>
   1218           <td class="paramkey"></td>
   1219           <td></td>
   1220           <td class="paramtype">int&#160;</td>
   1221           <td class="paramname"><em>y</em>&#160;</td>
   1222         </tr>
   1223         <tr>
   1224           <td></td>
   1225           <td>)</td>
   1226           <td></td><td><code> [static]</code></td>
   1227         </tr>
   1228       </table>
   1229 </div>
   1230 <div class="memdoc">
   1231 
   1232 <p>References <a class="el" href="dmxcursor_8c.html#a6fd26c7c7811ff77fc3c6e84b82d57d5">_dmxSetCursor()</a>, <a class="el" href="struct__DMXScreenInfo.html#a83dd882008eb7e54cc81987a23ab9fd5">_DMXScreenInfo::cursorNotShared</a>, <a class="el" href="dmxinput_8h.html#a3a7195ab3516c5354bac4ca80b2eedb7add5ccc82aea86bc4dfec91782883202b">DMX_NO_BLOCK</a>, <a class="el" href="dmxinput_8h.html#adf2928cf693dab61adafad503e81d2dc">dmxCoreMotion()</a>, <a class="el" href="dmxcursor_8c.html#a4d792c0cb9ce0c21787d3cd88d774fa6">dmxCursorDoMultiCursors</a>, <a class="el" href="dmxcursor_8c.html#a753eef37715b6379d7d65e34a23d2e03">DMXDBG5</a>, <a class="el" href="dmxinput_8h.html#a0cb75edbb0cabbfd89b40309907bdee3">dmxGetGlobalPosition()</a>, <a class="el" href="dmxcursor_8c.html#adaf3455cdd3f54d22285e5a0fa99fddb">dmxOnScreen()</a>, <a class="el" href="dmx_8h.html#a3e242a6818df05e547a4776919e3827f">dmxScreens</a>, <a class="el" href="struct__DMXScreenInfo.html#a28849096f73f9bf14bb7e461dbb5cc94">_DMXScreenInfo::index</a>, <a class="el" href="struct__DMXScreenInfo.html#ac55a37b29ce99474516995b09f794d9c">_DMXScreenInfo::over</a>, <a class="el" href="struct__DMXScreenInfo.html#aef812b4b6f76c93b8e800e9388330add">_DMXScreenInfo::rootXOrigin</a>, and <a class="el" href="struct__DMXScreenInfo.html#a89914c5858cebec13b2256ad02d787ac">_DMXScreenInfo::rootYOrigin</a>.</p>
   1233 
   1234 </div>
   1235 </div>
   1236 <a class="anchor" id="aaf8a9878f12b6653247fc27d960beccf"></a><!-- doxytag: member="dmxcursor.c::dmxSLCreate" ref="aaf8a9878f12b6653247fc27d960beccf" args="(void)" -->
   1237 <div class="memitem">
   1238 <div class="memproto">
   1239       <table class="memname">
   1240         <tr>
   1241           <td class="memname">static int* dmxSLCreate </td>
   1242           <td>(</td>
   1243           <td class="paramtype">void&#160;</td>
   1244           <td class="paramname"></td><td>)</td>
   1245           <td><code> [static]</code></td>
   1246         </tr>
   1247       </table>
   1248 </div>
   1249 <div class="memdoc">
   1250 <p>Create a list of screens that we'll manipulate. </p>
   1251 
   1252 <p>References <a class="el" href="dmx_8h.html#a5a881109fe1e32c74cda4a280b09a7c4">dmxNumScreens</a>.</p>
   1253 
   1254 <p>Referenced by <a class="el" href="dmxcursor_8c.html#aa5a4c58dbde29584153fbc43a1ac6e26">dmxComputeScreenOrigins()</a>.</p>
   1255 
   1256 </div>
   1257 </div>
   1258 <a class="anchor" id="ab4dcb11cad339e72d843356841ffd203"></a><!-- doxytag: member="dmxcursor.c::dmxSLFindNext" ref="ab4dcb11cad339e72d843356841ffd203" args="(int *list)" -->
   1259 <div class="memitem">
   1260 <div class="memproto">
   1261       <table class="memname">
   1262         <tr>
   1263           <td class="memname">static int dmxSLFindNext </td>
   1264           <td>(</td>
   1265           <td class="paramtype">int *&#160;</td>
   1266           <td class="paramname"><em>list</em></td><td>)</td>
   1267           <td><code> [static]</code></td>
   1268         </tr>
   1269       </table>
   1270 </div>
   1271 <div class="memdoc">
   1272 <p>Find next uninitialized entry in list. </p>
   1273 
   1274 <p>References <a class="el" href="dmx_8h.html#a5a881109fe1e32c74cda4a280b09a7c4">dmxNumScreens</a>.</p>
   1275 
   1276 <p>Referenced by <a class="el" href="dmxcursor_8c.html#aa5a4c58dbde29584153fbc43a1ac6e26">dmxComputeScreenOrigins()</a>.</p>
   1277 
   1278 </div>
   1279 </div>
   1280 <a class="anchor" id="a565fbb8c3754a14c1aed13b741705b91"></a><!-- doxytag: member="dmxcursor.c::dmxSLFree" ref="a565fbb8c3754a14c1aed13b741705b91" args="(int *list)" -->
   1281 <div class="memitem">
   1282 <div class="memproto">
   1283       <table class="memname">
   1284         <tr>
   1285           <td class="memname">static void dmxSLFree </td>
   1286           <td>(</td>
   1287           <td class="paramtype">int *&#160;</td>
   1288           <td class="paramname"><em>list</em></td><td>)</td>
   1289           <td><code> [static]</code></td>
   1290         </tr>
   1291       </table>
   1292 </div>
   1293 <div class="memdoc">
   1294 <p>Free list. </p>
   1295 
   1296 <p>Referenced by <a class="el" href="dmxcursor_8c.html#aa5a4c58dbde29584153fbc43a1ac6e26">dmxComputeScreenOrigins()</a>.</p>
   1297 
   1298 </div>
   1299 </div>
   1300 <a class="anchor" id="a3beed7bb0f6999879936b2f47751d125"></a><!-- doxytag: member="dmxcursor.c::dmxTestSameDisplay" ref="a3beed7bb0f6999879936b2f47751d125" args="(DMXScreenInfo *a, void *closure)" -->
   1301 <div class="memitem">
   1302 <div class="memproto">
   1303       <table class="memname">
   1304         <tr>
   1305           <td class="memname">static void* dmxTestSameDisplay </td>
   1306           <td>(</td>
   1307           <td class="paramtype"><a class="el" href="struct__DMXScreenInfo.html">DMXScreenInfo</a> *&#160;</td>
   1308           <td class="paramname"><em>a</em>, </td>
   1309         </tr>
   1310         <tr>
   1311           <td class="paramkey"></td>
   1312           <td></td>
   1313           <td class="paramtype">void *&#160;</td>
   1314           <td class="paramname"><em>closure</em>&#160;</td>
   1315         </tr>
   1316         <tr>
   1317           <td></td>
   1318           <td>)</td>
   1319           <td></td><td><code> [static]</code></td>
   1320         </tr>
   1321       </table>
   1322 </div>
   1323 <div class="memdoc">
   1324 <p>Used with <a class="el" href="dmxprop_8h.html#a4c53640b27c787d65539555cc3bf3c57">dmxPropertyIterate</a> to determine if screen <em>a</em> is the same as the screen <em>closure</em>. </p>
   1325 
   1326 <p>Referenced by <a class="el" href="dmxcursor_8h.html#a77c74a33de88fae6cf0de8b755a5c411">dmxInitOverlap()</a>.</p>
   1327 
   1328 </div>
   1329 </div>
   1330 <a class="anchor" id="a97efbe7e0a872da9de0be49da214c210"></a><!-- doxytag: member="dmxcursor.c::dmxTryComputeScreenOrigins" ref="a97efbe7e0a872da9de0be49da214c210" args="(int *screensLeft)" -->
   1331 <div class="memitem">
   1332 <div class="memproto">
   1333       <table class="memname">
   1334         <tr>
   1335           <td class="memname">static int dmxTryComputeScreenOrigins </td>
   1336           <td>(</td>
   1337           <td class="paramtype">int *&#160;</td>
   1338           <td class="paramname"><em>screensLeft</em></td><td>)</td>
   1339           <td><code> [static]</code></td>
   1340         </tr>
   1341       </table>
   1342 </div>
   1343 <div class="memdoc">
   1344 <p>Make one pass over all the screens and return the number updated. </p>
   1345 
   1346 <p>References <a class="el" href="dmxlog_8h.html#aeed612a5c0be196e23bd6b71b76b917fa4d84ad320675a046536d76c0820abc70">dmxFatal</a>, <a class="el" href="dmxlog_8c.html#ab6259430a57c3cffdfc9f6259df0ad23">dmxLog()</a>, <a class="el" href="dmx_8h.html#a5a881109fe1e32c74cda4a280b09a7c4">dmxNumScreens</a>, <a class="el" href="dmx_8h.html#a3e242a6818df05e547a4776919e3827f">dmxScreens</a>, <a class="el" href="dmx_8h.html#aa80fe4e9a559009407475c9587214b48a8b4710773b7ba23cd4ba12a48f544414">PosAbove</a>, <a class="el" href="dmx_8h.html#aa80fe4e9a559009407475c9587214b48a98c1cbf3326de8339bf0538c74477351">PosAbsolute</a>, <a class="el" href="dmx_8h.html#aa80fe4e9a559009407475c9587214b48a61079f63564c7d135feeeabb170cff1e">PosBelow</a>, <a class="el" href="dmx_8h.html#aa80fe4e9a559009407475c9587214b48a6e57f3ac055303c9c0c730274faa419f">PosLeftOf</a>, <a class="el" href="dmx_8h.html#aa80fe4e9a559009407475c9587214b48ad375955ea9a568af249c13e41d2f0d44">PosNone</a>, <a class="el" href="dmx_8h.html#aa80fe4e9a559009407475c9587214b48a6681d76ba36d5d2fce88975100fbfddc">PosRelative</a>, <a class="el" href="dmx_8h.html#aa80fe4e9a559009407475c9587214b48adbb68d2dea659baab7c04a54a95679ae">PosRightOf</a>, <a class="el" href="struct__DMXScreenInfo.html#a2cb225a5c08ae6ea0ce19d85616f143b">_DMXScreenInfo::where</a>, <a class="el" href="struct__DMXScreenInfo.html#ae502ef7543f17556ea497ebbef157f41">_DMXScreenInfo::whereRefScreen</a>, <a class="el" href="struct__DMXScreenInfo.html#a9d0572de80377c7ad7407dfb0cf22d8a">_DMXScreenInfo::whereX</a>, and <a class="el" href="struct__DMXScreenInfo.html#aeb391a900f17b41e18127b4b31026c96">_DMXScreenInfo::whereY</a>.</p>
   1347 
   1348 <p>Referenced by <a class="el" href="dmxcursor_8c.html#aa5a4c58dbde29584153fbc43a1ac6e26">dmxComputeScreenOrigins()</a>.</p>
   1349 
   1350 </div>
   1351 </div>
   1352 <a class="anchor" id="a81c0223355350e6d897d4d7306381130"></a><!-- doxytag: member="dmxcursor.c::dmxUnrealizeCursor" ref="a81c0223355350e6d897d4d7306381130" args="(DeviceIntPtr pDev, ScreenPtr pScreen, CursorPtr pCursor)" -->
   1353 <div class="memitem">
   1354 <div class="memproto">
   1355       <table class="memname">
   1356         <tr>
   1357           <td class="memname">static Bool dmxUnrealizeCursor </td>
   1358           <td>(</td>
   1359           <td class="paramtype">DeviceIntPtr&#160;</td>
   1360           <td class="paramname"><em>pDev</em>, </td>
   1361         </tr>
   1362         <tr>
   1363           <td class="paramkey"></td>
   1364           <td></td>
   1365           <td class="paramtype">ScreenPtr&#160;</td>
   1366           <td class="paramname"><em>pScreen</em>, </td>
   1367         </tr>
   1368         <tr>
   1369           <td class="paramkey"></td>
   1370           <td></td>
   1371           <td class="paramtype">CursorPtr&#160;</td>
   1372           <td class="paramname"><em>pCursor</em>&#160;</td>
   1373         </tr>
   1374         <tr>
   1375           <td></td>
   1376           <td>)</td>
   1377           <td></td><td><code> [static]</code></td>
   1378         </tr>
   1379       </table>
   1380 </div>
   1381 <div class="memdoc">
   1382 
   1383 <p>References <a class="el" href="dmxcursor_8c.html#aa2ac82b5666d162e873c7f0c88ec96f6">_dmxUnrealizeCursor()</a>, <a class="el" href="struct__DMXScreenInfo.html#a83dd882008eb7e54cc81987a23ab9fd5">_DMXScreenInfo::cursorNotShared</a>, <a class="el" href="dmxcursor_8c.html#a4d792c0cb9ce0c21787d3cd88d774fa6">dmxCursorDoMultiCursors</a>, <a class="el" href="dmx_8h.html#a3e242a6818df05e547a4776919e3827f">dmxScreens</a>, <a class="el" href="struct__DMXScreenInfo.html#a28849096f73f9bf14bb7e461dbb5cc94">_DMXScreenInfo::index</a>, and <a class="el" href="struct__DMXScreenInfo.html#ac55a37b29ce99474516995b09f794d9c">_DMXScreenInfo::over</a>.</p>
   1384 
   1385 </div>
   1386 </div>
   1387 <a class="anchor" id="af80076061e55521b62a7cfd8e66bf3e6"></a><!-- doxytag: member="dmxcursor.c::dmxWarpCursor" ref="af80076061e55521b62a7cfd8e66bf3e6" args="(DeviceIntPtr pDev, ScreenPtr pScreen, int x, int y)" -->
   1388 <div class="memitem">
   1389 <div class="memproto">
   1390       <table class="memname">
   1391         <tr>
   1392           <td class="memname">static void dmxWarpCursor </td>
   1393           <td>(</td>
   1394           <td class="paramtype">DeviceIntPtr&#160;</td>
   1395           <td class="paramname"><em>pDev</em>, </td>
   1396         </tr>
   1397         <tr>
   1398           <td class="paramkey"></td>
   1399           <td></td>
   1400           <td class="paramtype">ScreenPtr&#160;</td>
   1401           <td class="paramname"><em>pScreen</em>, </td>
   1402         </tr>
   1403         <tr>
   1404           <td class="paramkey"></td>
   1405           <td></td>
   1406           <td class="paramtype">int&#160;</td>
   1407           <td class="paramname"><em>x</em>, </td>
   1408         </tr>
   1409         <tr>
   1410           <td class="paramkey"></td>
   1411           <td></td>
   1412           <td class="paramtype">int&#160;</td>
   1413           <td class="paramname"><em>y</em>&#160;</td>
   1414         </tr>
   1415         <tr>
   1416           <td></td>
   1417           <td>)</td>
   1418           <td></td><td><code> [static]</code></td>
   1419         </tr>
   1420       </table>
   1421 </div>
   1422 <div class="memdoc">
   1423 
   1424 <p>References <a class="el" href="dmxcursor_8c.html#a6c6714b899194081b94edb722ca1c4bc">DMXDBG3</a>.</p>
   1425 
   1426 </div>
   1427 </div>
   1428 <hr/><h2>Variable Documentation</h2>
   1429 <a class="anchor" id="a4d792c0cb9ce0c21787d3cd88d774fa6"></a><!-- doxytag: member="dmxcursor.c::dmxCursorDoMultiCursors" ref="a4d792c0cb9ce0c21787d3cd88d774fa6" args="" -->
   1430 <div class="memitem">
   1431 <div class="memproto">
   1432       <table class="memname">
   1433         <tr>
   1434           <td class="memname">int <a class="el" href="dmxcursor_8c.html#a4d792c0cb9ce0c21787d3cd88d774fa6">dmxCursorDoMultiCursors</a> = 1<code> [static]</code></td>
   1435         </tr>
   1436       </table>
   1437 </div>
   1438 <div class="memdoc">
   1439 
   1440 <p>Referenced by <a class="el" href="dmxcursor_8h.html#a709e3d4a4e44e17fed3de1fcb0d42b20">dmxCursorNoMulti()</a>, <a class="el" href="dmxcursor_8h.html#a21820e2001f763e3cfc924a1d602bb62">dmxMoveCursor()</a>, <a class="el" href="dmxcursor_8c.html#ad51761f218c643ebe7f010538e9c745f">dmxRealizeCursor()</a>, <a class="el" href="dmxcursor_8c.html#a4cbf6be156525a669ae883465f6458c2">dmxSetCursor()</a>, and <a class="el" href="dmxcursor_8c.html#a81c0223355350e6d897d4d7306381130">dmxUnrealizeCursor()</a>.</p>
   1441 
   1442 </div>
   1443 </div>
   1444 <a class="anchor" id="aacf8d4857dd965073f62f10a53edcaa3"></a><!-- doxytag: member="dmxcursor.c::dmxPointerCursorFuncs" ref="aacf8d4857dd965073f62f10a53edcaa3" args="" -->
   1445 <div class="memitem">
   1446 <div class="memproto">
   1447       <table class="memname">
   1448         <tr>
   1449           <td class="memname">miPointerScreenFuncRec <a class="el" href="dmxcursor_8h.html#aacf8d4857dd965073f62f10a53edcaa3">dmxPointerCursorFuncs</a></td>
   1450         </tr>
   1451       </table>
   1452 </div>
   1453 <div class="memdoc">
   1454 <b>Initial value:</b><div class="fragment"><pre class="fragment">
   1455 {
   1456     <a class="code" href="dmxcursor_8c.html#a1c7f5d94ee32f85ec027c53b881fc697">dmxCursorOffScreen</a>,
   1457     <a class="code" href="dmxcursor_8c.html#a2d0757fa7119492da7fe26901dab8571">dmxCrossScreen</a>,
   1458     <a class="code" href="dmxcursor_8c.html#af80076061e55521b62a7cfd8e66bf3e6">dmxWarpCursor</a>,
   1459     NULL,
   1460     NULL,
   1461 }
   1462 </pre></div><p>Cursor functions for mi layer. </p>
   1463 <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="dmxcursor_8c.html">dmxcursor.c</a> </dd>
   1464 <dd>
   1465 <a class="el" href="dmxscrinit_8c.html">dmxscrinit.c</a> </dd></dl>
   1466 
   1467 <p>Referenced by <a class="el" href="dmxscrinit_8h.html#a673d8a2c038f8ed0da5f910a72a5c4c2">dmxScreenInit()</a>.</p>
   1468 
   1469 </div>
   1470 </div>
   1471 <a class="anchor" id="a7bf2f59a6c5d381aea975cd78dd1f9dc"></a><!-- doxytag: member="dmxcursor.c::dmxPointerSpriteFuncs" ref="a7bf2f59a6c5d381aea975cd78dd1f9dc" args="" -->
   1472 <div class="memitem">
   1473 <div class="memproto">
   1474       <table class="memname">
   1475         <tr>
   1476           <td class="memname">miPointerSpriteFuncRec <a class="el" href="dmxcursor_8h.html#a7bf2f59a6c5d381aea975cd78dd1f9dc">dmxPointerSpriteFuncs</a></td>
   1477         </tr>
   1478       </table>
   1479 </div>
   1480 <div class="memdoc">
   1481 <b>Initial value:</b><div class="fragment"><pre class="fragment">
   1482 {
   1483     <a class="code" href="dmxcursor_8c.html#ad51761f218c643ebe7f010538e9c745f">dmxRealizeCursor</a>,
   1484     <a class="code" href="dmxcursor_8c.html#a81c0223355350e6d897d4d7306381130">dmxUnrealizeCursor</a>,
   1485     <a class="code" href="dmxcursor_8c.html#a4cbf6be156525a669ae883465f6458c2">dmxSetCursor</a>,
   1486     <a class="code" href="dmxcursor_8c.html#a21820e2001f763e3cfc924a1d602bb62">dmxMoveCursor</a>,
   1487     <a class="code" href="dmxcursor_8c.html#a214b710621ed0279d6321375f3512a87">dmxDeviceCursorInitialize</a>,
   1488     <a class="code" href="dmxcursor_8c.html#af291298e4f52875e45d7097a223a8c0b">dmxDeviceCursorCleanup</a>
   1489 }
   1490 </pre></div><p>Sprite functions for mi layer. </p>
   1491 <dl class="see"><dt><b>See also:</b></dt><dd><a class="el" href="dmxcursor_8c.html">dmxcursor.c</a> </dd>
   1492 <dd>
   1493 <a class="el" href="dmxscrinit_8c.html">dmxscrinit.c</a> </dd></dl>
   1494 
   1495 <p>Referenced by <a class="el" href="dmxscrinit_8h.html#a673d8a2c038f8ed0da5f910a72a5c4c2">dmxScreenInit()</a>.</p>
   1496 
   1497 </div>
   1498 </div>
   1499 </div>
   1500 </div>
   1501   <div id="nav-path" class="navpath">
   1502     <ul>
   1503       <li class="navelem"><a class="el" href="dmxcursor_8c.html">dmxcursor.c</a>      </li>
   1504     <hr>
   1505     <address>
   1506       <small>
   1507         Generated June 29, 2004 for <a
   1508         href="http://dmx.sourceforge.net">Distributed Multihead X</a> by
   1509         <a href="http://www.doxygen.org/index.html">doxygen</a>
   1510         1.3.4.
   1511       </small>
   1512     </addres>
   1513     </hr>
   1514   </body>
   1515 </html>
   1516