miwideline.h revision 4c221b0da1816acf2ca302b10092df059484468d
4c221b0da1816acf2ca302b10092df059484468dvboxsyncCopyright 1988, 1998 The Open Group
4c221b0da1816acf2ca302b10092df059484468dvboxsyncPermission to use, copy, modify, distribute, and sell this software and its
4c221b0da1816acf2ca302b10092df059484468dvboxsyncdocumentation for any purpose is hereby granted without fee, provided that
4c221b0da1816acf2ca302b10092df059484468dvboxsyncthe above copyright notice appear in all copies and that both that
4c221b0da1816acf2ca302b10092df059484468dvboxsynccopyright notice and this permission notice appear in supporting
4c221b0da1816acf2ca302b10092df059484468dvboxsyncdocumentation.
4c221b0da1816acf2ca302b10092df059484468dvboxsyncThe above copyright notice and this permission notice shall be included
4c221b0da1816acf2ca302b10092df059484468dvboxsyncin all copies or substantial portions of the Software.
4c221b0da1816acf2ca302b10092df059484468dvboxsyncTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
4c221b0da1816acf2ca302b10092df059484468dvboxsyncOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
4c221b0da1816acf2ca302b10092df059484468dvboxsyncMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
4c221b0da1816acf2ca302b10092df059484468dvboxsyncIN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR
4c221b0da1816acf2ca302b10092df059484468dvboxsyncOTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
4c221b0da1816acf2ca302b10092df059484468dvboxsyncARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
4c221b0da1816acf2ca302b10092df059484468dvboxsyncOTHER DEALINGS IN THE SOFTWARE.
4c221b0da1816acf2ca302b10092df059484468dvboxsyncExcept as contained in this notice, the name of The Open Group shall
4c221b0da1816acf2ca302b10092df059484468dvboxsyncnot be used in advertising or otherwise to promote the sale, use or
4c221b0da1816acf2ca302b10092df059484468dvboxsyncother dealings in this Software without prior written authorization
4c221b0da1816acf2ca302b10092df059484468dvboxsyncfrom The Open Group.
4c221b0da1816acf2ca302b10092df059484468dvboxsync/* Author: Keith Packard, MIT X Consortium */
4c221b0da1816acf2ca302b10092df059484468dvboxsync * Polygon edge description for integer wide-line routines
4c221b0da1816acf2ca302b10092df059484468dvboxsynctypedef struct _PolyEdge {
4c221b0da1816acf2ca302b10092df059484468dvboxsync int x; /* starting x coordinate */
4c221b0da1816acf2ca302b10092df059484468dvboxsync int e; /* initial error term */
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define SQSECANT 108.856472512142 /* 1/sin^2(11/2) - miter limit constant */
4c221b0da1816acf2ca302b10092df059484468dvboxsync * types for general polygon routines
4c221b0da1816acf2ca302b10092df059484468dvboxsynctypedef struct _PolyVertex {
4c221b0da1816acf2ca302b10092df059484468dvboxsync double x, y;
4c221b0da1816acf2ca302b10092df059484468dvboxsynctypedef struct _PolySlope {
4c221b0da1816acf2ca302b10092df059484468dvboxsync double k; /* x0 * dy - y0 * dx */
4c221b0da1816acf2ca302b10092df059484468dvboxsync * Line face description for caps/joins
4c221b0da1816acf2ca302b10092df059484468dvboxsynctypedef struct _LineFace {
4c221b0da1816acf2ca302b10092df059484468dvboxsync * macros for polygon fillers
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define MILINESETPIXEL(pDrawable, pGC, pixel, oldPixel) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync ChangeGC (NullClient, pGC, GCForeground, &gcval); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync#define MILINERESETPIXEL(pDrawable, pGC, pixel, oldPixel) { \
4c221b0da1816acf2ca302b10092df059484468dvboxsync ChangeGC (NullClient, pGC, GCForeground, &gcval); \
4c221b0da1816acf2ca302b10092df059484468dvboxsync int * /*y1*/,
4c221b0da1816acf2ca302b10092df059484468dvboxsync int * /*y2*/,
4c221b0da1816acf2ca302b10092df059484468dvboxsyncextern _X_EXPORT int miPolyBuildEdge(double x0, double y0, double k, int dx, int dy,