03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncCopyright 1988, 1998 The Open Group
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncPermission to use, copy, modify, distribute, and sell this software and its
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncdocumentation for any purpose is hereby granted without fee, provided that
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncthe above copyright notice appear in all copies and that both that
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsynccopyright notice and this permission notice appear in supporting
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncdocumentation.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncThe above copyright notice and this permission notice shall be included
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncin all copies or substantial portions of the Software.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncIN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncOTHER DEALINGS IN THE SOFTWARE.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncExcept as contained in this notice, the name of The Open Group shall
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncnot be used in advertising or otherwise to promote the sale, use or
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncother dealings in this Software without prior written authorization
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncfrom The Open Group.
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync/* Author: Keith Packard, MIT X Consortium */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * Polygon edge description for integer wide-line routines
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int x; /* starting x coordinate */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int e; /* initial error term */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define SQSECANT 108.856472512142 /* 1/sin^2(11/2) - miter limit constant */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * types for general polygon routines
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync double x, y;
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync double k; /* x0 * dy - y0 * dx */
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * Line face description for caps/joins
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync * macros for polygon fillers
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define MILINESETPIXEL(pDrawable, pGC, pixel, oldPixel) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync ChangeGC (NullClient, pGC, GCForeground, &gcval); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync#define MILINERESETPIXEL(pDrawable, pGC, pixel, oldPixel) { \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync ChangeGC (NullClient, pGC, GCForeground, &gcval); \
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT void miRoundJoinClip(LineFacePtr /*pLeft */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int * /*y1 */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int * /*y2 */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT int miRoundCapClip(LineFacePtr /*face */ ,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT int miPolyBuildEdge(double x0, double y0, double k, int dx,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsyncextern _X_EXPORT int miPolyBuildPoly(PolyVertexPtr vertices,
03532efdc331b598d3dedc8cc7477641c3b0dd12vboxsync int *pnright, int *h);