亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? mipoly.h

?? linux下電話本所依賴的一些圖形庫
?? H
字號:
/* $TOG: mipoly.h /main/6 1998/02/09 14:48:20 kaleb $ *//*Copyright 1987, 1998  The Open GroupAll Rights Reserved.The above copyright notice and this permission notice shall be includedin all copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESSOR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OFMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OROTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OROTHER DEALINGS IN THE SOFTWARE.Except as contained in this notice, the name of The Open Group shallnot be used in advertising or otherwise to promote the sale, use orother dealings in this Software without prior written authorizationfrom The Open Group.*/#ifndef MIPOLY_H#define MIPOLY_H#include "miscanfill.h"/* *     fill.h * *     Created by Brian Kelleher; Oct 1985 * *     Include file for filled polygon routines. * *     These are the data structures needed to scan *     convert regions.  Two different scan conversion *     methods are available -- the even-odd method, and *     the winding number method. *     The even-odd rule states that a point is inside *     the polygon if a ray drawn from that point in any *     direction will pass through an odd number of *     path segments. *     By the winding number rule, a point is decided *     to be inside the polygon if a ray drawn from that *     point in any direction passes through a different *     number of clockwise and counter-clockwise path *     segments. * *     These data structures are adapted somewhat from *     the algorithm in (Foley/Van Dam) for scan converting *     polygons. *     The basic algorithm is to start at the top (smallest y) *     of the polygon, stepping down to the bottom of *     the polygon by incrementing the y coordinate.  We *     keep a list of edges which the current scanline crosses, *     sorted by x.  This list is called the Active Edge Table (AET) *     As we change the y-coordinate, we update each entry in  *     in the active edge table to reflect the edges new xcoord. *     This list must be sorted at each scanline in case *     two edges intersect. *     We also keep a data structure known as the Edge Table (ET), *     which keeps track of all the edges which the current *     scanline has not yet reached.  The ET is basically a *     list of ScanLineList structures containing a list of *     edges which are entered at a given scanline.  There is one *     ScanLineList per scanline at which an edge is entered. *     When we enter a new edge, we move it from the ET to the AET. * *     From the AET, we can implement the even-odd rule as in *     (Foley/Van Dam). *     The winding number rule is a little trickier.  We also *     keep the EdgeTableEntries in the AET linked by the *     nextWETE (winding EdgeTableEntry) link.  This allows *     the edges to be linked just as before for updating *     purposes, but only uses the edges linked by the nextWETE *     link as edges representing spans of the polygon to *     drawn (as with the even-odd rule). *//* * for the winding number rule */#define CLOCKWISE          1#define COUNTERCLOCKWISE  -1 typedef struct _EdgeTableEntry {     int ymax;             /* ycoord at which we exit this edge. */     BRESINFO bres;        /* Bresenham info to run the edge     */     struct _EdgeTableEntry *next;       /* next in the list     */     struct _EdgeTableEntry *back;       /* for insertion sort   */     struct _EdgeTableEntry *nextWETE;   /* for winding num rule */     int ClockWise;        /* flag for winding number rule       */} EdgeTableEntry;typedef struct _ScanLineList{     int scanline;              /* the scanline represented */     EdgeTableEntry *edgelist;  /* header node              */     struct _ScanLineList *next;  /* next in the list       */} ScanLineList;typedef struct {     int ymax;                 /* ymax for the polygon     */     int ymin;                 /* ymin for the polygon     */     ScanLineList scanlines;   /* header node              */} EdgeTable;/* * Here is a struct to help with storage allocation * so we can allocate a big chunk at a time, and then take * pieces from this heap when we need to. */#define SLLSPERBLOCK 25typedef struct _ScanLineListBlock {     ScanLineList SLLs[SLLSPERBLOCK];     struct _ScanLineListBlock *next;} ScanLineListBlock;/* * number of points to buffer before sending them off * to scanlines() :  Must be an even number */#define NUMPTSTOBUFFER 200/* * *     a few macros for the inner loops of the fill code where *     performance considerations don't allow a procedure call. * *     Evaluate the given edge at the given scanline. *     If the edge has expired, then we leave it and fix up *     the active edge table; otherwise, we increment the *     x value to be ready for the next scanline. *     The winding number rule is in effect, so we must notify *     the caller when the edge has been removed so he *     can reorder the Winding Active Edge Table. */#define EVALUATEEDGEWINDING(pAET, pPrevAET, y, fixWAET) { \   if (pAET->ymax == y) {          /* leaving this edge */ \      pPrevAET->next = pAET->next; \      pAET = pPrevAET->next; \      fixWAET = 1; \      if (pAET) \         pAET->back = pPrevAET; \   } \   else { \      BRESINCRPGONSTRUCT(pAET->bres); \      pPrevAET = pAET; \      pAET = pAET->next; \   } \}/* *     Evaluate the given edge at the given scanline. *     If the edge has expired, then we leave it and fix up *     the active edge table; otherwise, we increment the *     x value to be ready for the next scanline. *     The even-odd rule is in effect. */#define EVALUATEEDGEEVENODD(pAET, pPrevAET, y) { \   if (pAET->ymax == y) {          /* leaving this edge */ \      pPrevAET->next = pAET->next; \      pAET = pPrevAET->next; \      if (pAET) \         pAET->back = pPrevAET; \   } \   else { \      BRESINCRPGONSTRUCT(pAET->bres); \      pPrevAET = pAET; \      pAET = pAET->next; \   } \}/* mipolyutil.c */extern gboolean miInsertEdgeInET(EdgeTable *ET, EdgeTableEntry *ETE, int scanline,                                 ScanLineListBlock **SLLBlock, int *iSLLBlock);extern gboolean miCreateETandAET(int count, GdkPoint* pts, EdgeTable *ET,                                 EdgeTableEntry *AET, EdgeTableEntry *pETEs,                                 ScanLineListBlock *pSLLBlock);extern void miloadAET(EdgeTableEntry *AET, EdgeTableEntry *ETEs);extern void micomputeWAET(EdgeTableEntry *AET);extern int miInsertionSort(EdgeTableEntry *AET);extern void miFreeStorage(ScanLineListBlock *pSLLBlock);#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品国产髙清在线看国产毛片| 91精品国产综合久久精品app| 日本不卡一区二区三区| 一区二区三区影院| 亚洲综合色婷婷| 亚洲主播在线观看| 日日摸夜夜添夜夜添国产精品| 亚洲大片在线观看| 日本sm残虐另类| 精品在线免费视频| 国产suv精品一区二区6| 成人蜜臀av电影| 色94色欧美sute亚洲13| 欧美日韩视频在线第一区| 欧美一区二区在线观看| 久久天天做天天爱综合色| 欧美国产精品中文字幕| 亚洲区小说区图片区qvod| 亚洲图片自拍偷拍| 日本免费在线视频不卡一不卡二| 精品一区二区三区在线视频| 国产suv一区二区三区88区| 色婷婷一区二区| 欧美一区二视频| 国产精品天天看| 免费观看一级特黄欧美大片| 国产精品99久久久久久久女警| 99re这里只有精品首页| 欧美日韩精品三区| 欧美激情一区不卡| 香蕉av福利精品导航| 国产一区二区三区免费观看| 一本一道综合狠狠老| 欧美大片一区二区| 一区二区三区欧美久久| 狠狠色综合播放一区二区| 91亚洲午夜精品久久久久久| 日韩欧美中文字幕制服| 《视频一区视频二区| 久久成人免费电影| 色狠狠色狠狠综合| 中文字幕第一区| 美国十次了思思久久精品导航| 91蜜桃网址入口| 精品国产精品网麻豆系列| 亚洲国产精品久久不卡毛片| 国产成人av电影在线播放| 91精品国产品国语在线不卡| 亚洲欧美乱综合| 成人综合在线网站| 精品福利二区三区| 日韩二区三区四区| 欧美性生活影院| 亚洲三级免费观看| 成人一道本在线| 久久久久久久综合狠狠综合| 午夜电影一区二区| 欧美亚洲日本一区| 亚洲美女偷拍久久| 国产91对白在线观看九色| 精品国产网站在线观看| 日本午夜一区二区| 欧美挠脚心视频网站| 亚洲午夜精品一区二区三区他趣| eeuss国产一区二区三区| 精品国产乱码久久久久久久久| 五月激情综合网| 欧美日韩二区三区| 日韩国产一区二| 欧美精品色综合| 免费一级片91| 精品国产区一区| 国产精品一区二区在线观看网站| 日韩免费高清电影| 国产一区二区在线观看免费| 亚洲精品一区二区精华| 国产一区二区精品久久99| 2020国产精品自拍| 成人综合婷婷国产精品久久| 国产精品三级电影| 91美女在线视频| 亚洲午夜久久久久久久久电影院| 欧美视频完全免费看| 亚洲国产精品久久久久婷婷884| 欧美日韩在线直播| 老汉av免费一区二区三区| 久久久精品tv| 一本到三区不卡视频| 五月天丁香久久| 精品国产亚洲在线| 91亚洲永久精品| 婷婷综合五月天| 久久人人爽爽爽人久久久| 成人深夜在线观看| 亚洲欧美国产77777| 欧美日韩在线亚洲一区蜜芽| 精品一区二区三区在线观看| 亚洲一本大道在线| 欧美日韩在线播放三区四区| 轻轻草成人在线| 久久精品欧美日韩精品 | 欧美一级爆毛片| 久久爱另类一区二区小说| 久久精品亚洲精品国产欧美kt∨| eeuss鲁片一区二区三区| 亚洲成人av一区二区三区| 日韩精品专区在线| 色综合天天综合给合国产| 日产国产欧美视频一区精品| 久久久久久久久久久久久女国产乱| 99久久精品国产观看| 奇米影视7777精品一区二区| 久久久综合网站| 欧美亚洲尤物久久| 高清不卡在线观看av| 婷婷六月综合亚洲| 亚洲天天做日日做天天谢日日欢| 日韩欧美www| 欧美在线看片a免费观看| 高清在线不卡av| 精品一区二区三区免费| 亚洲一区在线电影| 国产精品不卡视频| 亚洲精品一区二区三区香蕉| 欧美亚洲国产一区二区三区va| 丁香桃色午夜亚洲一区二区三区| 亚洲va欧美va国产va天堂影院| 国产欧美一区二区精品婷婷| 91精品国产黑色紧身裤美女| 在线影院国内精品| 91影院在线免费观看| 懂色一区二区三区免费观看| 久久99精品国产麻豆婷婷| 调教+趴+乳夹+国产+精品| 亚洲精品自拍动漫在线| 中文字幕一区视频| 国产精品久久午夜夜伦鲁鲁| 久久先锋影音av鲁色资源网| 日韩欧美国产精品| 欧美一级日韩一级| 91精品国产综合久久香蕉麻豆| 在线观看不卡视频| 在线视频中文字幕一区二区| 色拍拍在线精品视频8848| 91网上在线视频| 一本到一区二区三区| 色婷婷亚洲综合| 91在线精品秘密一区二区| bt欧美亚洲午夜电影天堂| 国产福利一区二区三区| 国产成人啪午夜精品网站男同| 韩国在线一区二区| 国产很黄免费观看久久| 国产99久久久国产精品潘金| 成人看片黄a免费看在线| aa级大片欧美| 在线视频一区二区三| 欧美午夜精品久久久久久孕妇| 色综合久久99| 911精品产国品一二三产区 | 六月丁香综合在线视频| 蜜臀久久99精品久久久久久9| 奇米精品一区二区三区四区| 奇米888四色在线精品| 国产在线一区观看| 国产99久久久精品| 一本色道综合亚洲| 91精品国产综合久久香蕉麻豆| 日韩美女在线视频| 国产情人综合久久777777| 国产精品国产自产拍高清av王其| 亚洲日本护士毛茸茸| 偷拍亚洲欧洲综合| 欧美伊人久久大香线蕉综合69| 欧美视频你懂的| wwwwww.欧美系列| 亚洲美女屁股眼交| 美腿丝袜亚洲一区| 成人免费精品视频| 欧美日韩久久久| 国产欧美一区在线| 亚洲3atv精品一区二区三区| 蜜桃av一区二区| 91玉足脚交白嫩脚丫在线播放| 在线成人av网站| 国产精品乱码一区二三区小蝌蚪| 亚洲福利一区二区三区| 国内精品视频一区二区三区八戒| k8久久久一区二区三区 | 精品国产乱子伦一区| 亚洲天天做日日做天天谢日日欢| 天天影视色香欲综合网老头| 成人美女视频在线看| 日韩欧美一区在线观看| 亚洲天堂a在线| 国产成人在线影院 | 中文一区在线播放| 视频一区在线视频| 99国内精品久久| 久久久精品免费网站|