⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xpol_5.h

📁 nucleus 文件系统,内核和彩色图形系统,在小系统上非常好用
💻 H
字号:
/*************************************************************************/
/*                                                                       */
/*         Copyright (c) 1997 - 1999 Accelerated Technology, Inc.        */
/*                                                                       */
/* PROPRIETARY RIGHTS of Accelerated Technology are involved in the      */
/* subject matter of this material.  All manufacturing, reproduction,    */
/* use, and sales rights pertaining to this subject matter are governed  */
/* by the license agreement.  The recipient of this software implicitly  */
/* accepts the terms of the license.                                     */
/*                                                                       */
/*************************************************************************/

/*************************************************************************/
/*                                                                       */
/* FILE NAME                                            VERSION          */
/*                                                                       */
/*      XPOL_5.h                                         1.9             */
/*                                                                       */
/* COMPONENT                                                             */
/*                                                                       */
/*      All                                                              */
/*                                                                       */
/* DESCRIPTION                                                           */
/*                                                                       */
/*      This file contains polygon common stack data.                    */
/*                                                                       */
/* AUTHOR                                                                */
/*                                                                       */
/*      Robert G. Burrill, Accelerated Technology, Inc.                  */
/*                                                                       */
/* DATA STRUCTURES                                                       */
/*                                                                       */
/*      None                                                             */
/*                                                                       */
/* FUNCTIONS                                                             */
/*                                                                       */
/*      None                                                             */
/*                                                                       */
/* DEPENDENCIES                                                          */
/*                                                                       */
/*      None                                                             */
/*                                                                       */
/* HISTORY                                                               */
/*                                                                       */
/*         NAME            DATE                    REMARKS               */
/*                                                                       */
/*         BobB          11/16/99    Got rid of ANSI compiler warnings   */
/*                                                                       */
/*************************************************************************/

/* Common stack frame for XPOL4, XPOL5, and XPOL7, so that routines can be
shared among those modules. */

extern int currentY;		/* scan line currently being scanned */
extern int rectCount;		/* # of rects in blitRcd */
extern rect *highWater;	/* last address at which a rect can start in the blitRcd
					and not be the last rect in the list */
extern blitRcd *lclFillRcd;	/* local copy of fillRcd */
extern rect *rectPtr;		/* pointer to next free rect in the fillRcd */
extern rect *rectBase;		/* pointer to beginning of rect list in the fillRcd */
extern rect clpR;			/* clip rect */
extern char sameAsLast;	/* 1 if the current line has exactly the same edges as
					the preceding line, 0 else */
extern rect *lastScanPtr;	/* points to rect that started the last scan line */
extern char localTToB;		/* 1 if the coord system is local top->bottom, 0 else */
extern char firstSegment;	/* 1 if the first edge is being put into the GET */
extern char finalWrap;		/* 1 if the last and first points are to be connected */
extern char allLineEdges;	/* 1 if all edges in GET are lines, 0 if other
					entities are present */
extern short startX;		/* start coordinates for current line */
extern short startY;
extern short nextStartX;	/* start coordinates for next edge */
extern short nextStartY;
extern short endX;			/* end coordinates for current line */
extern short endY;
extern short addStartX;	/* start coordinates for added edge */
extern short addStartY;
extern short addEndX;		/* end coordinates for added edge */
extern short addEndY;
extern short startInX;		/* start and end points of the two edges formed around */
extern short startInY;		/* each line segment for wide lines */
extern short startOutX;
extern short startOutY;
extern short endInX;
extern short endInY;
extern short endOutX;
extern short endOutY;
extern short lastInX;		/* end points of the two edges formed around the last*/
extern short lastInY;		/* line segment for wide lines */
extern short lastOutX;
extern short lastOutY;
extern lineEdgeV **ptrToGETPtr;	/* offset of global edge table ptr in GET buffer */
extern metaPort *thePortPtr;	/* pointer to the current port */
extern point *vertexListPtr;	/* pointer to current vertex */
extern short rawLastX;		/* user coordinates of last vertex */
extern short rawLastY;
extern short finalRawX;	/* user coordinates of last vertex connected to in polyline */
extern short finalRawY;
extern short finalGblX;	/* global coordinates of last vertex connected to in polyline */
extern short finalGblY;
extern int lcl2GblXAdj;	/* in general polygon filler, adjustments to convert from */
extern int lcl2GblYAdj;		/* local top->bottom to global */
extern int direction;		/* current, last line direction */
extern int lastDirection;		/*0 = 90 degrees
						  1 = between 0 and 90 degrees
						  2 = 0 degrees
						  3 = between 270 and 0 degrees
						  4 = 270 degrees
						  5 = between 180 and 270 degrees
						  6 = 180 degrees
						  7 = between 90 and 180 degrees */
extern short halfWidth[4];	/* offsets to edges of square pen */
#define halfWidthLeft	halfWidth[0];
#define halfWidthRight	halfWidth[1];
#define halfHeightUp	halfWidth[2];
#define halfHeightDown	halfWidth[3];
extern int deltaX;			/* line segment deltas */
extern int deltaY;
extern long endAvailForGET;	/* pointer to byte after last byte available for edge struc
					storage */
extern short (*addEdgeVector)(void);	/* vector called when building the GET to add each
							edge to the GET */
extern char GETEmpty;		/* 1 if GET is empty, 0 else */
extern sbyte lclFillRule;	/* 1 for winding rule fill, 0 for odd/even fill */
extern int numLinesUntilNext;	/* # of lines until the next edge starts */
extern lineEdgeV **AETPtrPtr;	/* pointer to AET pointer in low-memory case (at start of
					working buffer) */
extern int lclNpointsparm;	/* local copy of npointsparm for counting down */
extern int lclModeparm;	/* local copy of modeparm */
extern int maxY;			/* highest Y coord to be drawn */
extern short (*updateAETVector)(void);	/* vector called to update the AET each time in
							low-memory operation */
extern int countTemp;		/* temporary storage for winding edge counts in double
					winding rule scanner */

extern byte buf1[STACK_BUFFER_SIZE];	/* working storage space */
extern byte *buf1Ptr;					/* pointer into buffer */
extern long bufCntr;					/* buffer counter */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -