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>
60Defines</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>
71Functions</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>
105Variables</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