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

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

?? mizerline.c

?? linux下電話本所依賴的一些圖形庫
?? C
字號:
/* $XFree86: xc/programs/Xserver/mi/mizerline.c,v 3.4 1999/10/14 04:43:16 dawes Exp $ *//***********************************************************Copyright 1987, 1998  The Open GroupAll Rights Reserved.The above copyright notice and this permission notice shall be included inall copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THEOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER INAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR INCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.Except as contained in this notice, the name of The Open Group shall not beused in advertising or otherwise to promote the sale, use or other dealingsin this Software without prior written authorization from The Open Group.Copyright 1987 by Digital Equipment Corporation, Maynard, Massachusetts.                        All Rights ReservedPermission to use, copy, modify, and distribute this software and its documentation for any purpose and without fee is hereby granted, provided that the above copyright notice appear in all copies and thatboth that copyright notice and this permission notice appear in supporting documentation, and that the name of Digital not beused in advertising or publicity pertaining to distribution of thesoftware without specific, written prior permission.  DIGITAL DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDINGALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALLDIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES ORANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THISSOFTWARE.******************************************************************//* $TOG: mizerline.c /main/18 1998/02/09 14:49:45 kaleb $ */#include <config.h>#include "mi.h"#include "miline.h"/* Draw lineSolid, fillStyle-independent zero width lines. * * Must keep X and Y coordinates in "ints" at least until after they're * translated and clipped to accomodate CoordModePrevious lines with very * large coordinates. * * Draws the same pixels regardless of sign(dx) or sign(dy). * * Ken Whaley * *//* largest positive value that can fit into a component of a point. * Assumes that the point structure is {type x, y;} where type is * a signed type. */#define MAX_COORDINATE ((1 << (((sizeof(GdkPoint) >> 1) << 3) - 1)) - 1)#define MI_OUTPUT_POINT(xx, yy)\{\    if ( !new_span && yy == current_y)\    {\        if (xx < spans->x)\	    spans->x = xx;\        spans->width++; \    }\    else\    {\        ++Nspans;\	++spans;\	spans->x = xx;\	spans->y = yy;\        spans->width = 1; \	current_y = yy;\        new_span = FALSE;\    }\}voidmiZeroLine(GdkDrawable *pDraw, GdkGC *pGC,           int mode, int npt, GdkPoint *pptInit){    int Nspans, current_y = 0;    GdkPoint* ppt;     GdkSpan* pspanInit, *spans;    int list_len;    int xleft, ytop, xright, ybottom;    int new_x1, new_y1, new_x2, new_y2;    int x = 0, y = 0, x1, y1, x2, y2, xstart, ystart;    int oc1, oc2;    int result;    int pt1_clipped, pt2_clipped = 0;    gboolean new_span;    int signdx, signdy;    int clipdx, clipdy;    int width, height;    int adx, ady;    int octant;    unsigned int bias = miGetZeroLineBias();    int e, e1, e2, e3;	/* Bresenham error terms */    int length;		/* length of lines == # of pixels on major axis */    xleft   = 0;    ytop    = 0;    xright  = GDK_DRAWABLE_FBDATA(pDraw)->width - 1;    ybottom = GDK_DRAWABLE_FBDATA(pDraw)->height - 1;    /* it doesn't matter whether we're in drawable or screen coordinates,     * FillSpans simply cannot take starting coordinates outside of the     * range of a GdkPoint component.     */    /* since we're clipping to the drawable's boundaries & coordinate     * space boundaries, we're guaranteed that the larger of width/height     * is the longest span we'll need to output     */    width = xright - xleft + 1;    height = ybottom - ytop + 1;    list_len = (height >= width) ? height : width;    pspanInit = (GdkSpan*)ALLOCATE_LOCAL(list_len * sizeof(GdkSpan));    if (!pspanInit)	return;    Nspans = 0;    new_span = TRUE;    spans  = pspanInit - 1;    ppt = pptInit;    xstart = ppt->x;    ystart = ppt->y;        /* x2, y2, oc2 copied to x1, y1, oc1 at top of loop to simplify     * iteration logic     */    x2 = xstart;    y2 = ystart;    oc2 = 0;    MIOUTCODES(oc2, x2, y2, xleft, ytop, xright, ybottom);    while (--npt > 0)    {	if (Nspans > 0)	  gdk_fb_fill_spans(pDraw, pGC, pspanInit, Nspans, FALSE);	Nspans = 0;	new_span = TRUE;	spans  = pspanInit - 1;	x1  = x2;	y1  = y2;	oc1 = oc2;	++ppt;	x2 = ppt->x;	y2 = ppt->y;	oc2 = 0;	MIOUTCODES(oc2, x2, y2, xleft, ytop, xright, ybottom);	CalcLineDeltas(x1, y1, x2, y2, adx, ady, signdx, signdy, 1, 1, octant);	if (adx > ady)	{	    e1 = ady << 1;	    e2 = e1 - (adx << 1);	    e  = e1 - adx;	    length  = adx;	/* don't draw endpoint in main loop */	    FIXUP_ERROR(e, octant, bias);	    new_x1 = x1;	    new_y1 = y1;	    new_x2 = x2;	    new_y2 = y2;	    pt1_clipped = 0;	    pt2_clipped = 0;	    if ((oc1 | oc2) != 0)	    {		result = miZeroClipLine(xleft, ytop, xright, ybottom,					&new_x1, &new_y1, &new_x2, &new_y2,					adx, ady,					&pt1_clipped, &pt2_clipped,					octant, bias, oc1, oc2);		if (result == -1)		    continue;		length = abs(new_x2 - new_x1);		/* if we've clipped the endpoint, always draw the full length		 * of the segment, because then the capstyle doesn't matter 		 */		if (pt2_clipped)		    length++;		if (pt1_clipped)		{		    /* must calculate new error terms */		    clipdx = abs(new_x1 - x1);		    clipdy = abs(new_y1 - y1);		    e += (clipdy * e2) + ((clipdx - clipdy) * e1);		}	    }	    /* draw the segment */	    x = new_x1;	    y = new_y1;	    	    e3 = e2 - e1;	    e  = e - e1;	    while (length--)	    {		MI_OUTPUT_POINT(x, y);		e += e1;		if (e >= 0)		{		    y += signdy;		    e += e3;		}		x += signdx;	    }	}	else    /* Y major line */	{	    e1 = adx << 1;	    e2 = e1 - (ady << 1);	    e  = e1 - ady;	    length  = ady;	/* don't draw endpoint in main loop */	    SetYMajorOctant(octant);	    FIXUP_ERROR(e, octant, bias);	    new_x1 = x1;	    new_y1 = y1;	    new_x2 = x2;	    new_y2 = y2;	    pt1_clipped = 0;	    pt2_clipped = 0;	    if ((oc1 | oc2) != 0)	    {		result = miZeroClipLine(xleft, ytop, xright, ybottom,					&new_x1, &new_y1, &new_x2, &new_y2,					adx, ady,					&pt1_clipped, &pt2_clipped,					octant, bias, oc1, oc2);		if (result == -1)		    continue;		length = abs(new_y2 - new_y1);		/* if we've clipped the endpoint, always draw the full length		 * of the segment, because then the capstyle doesn't matter 		 */		if (pt2_clipped)		    length++;		if (pt1_clipped)		{		    /* must calculate new error terms */		    clipdx = abs(new_x1 - x1);		    clipdy = abs(new_y1 - y1);		    e += (clipdx * e2) + ((clipdy - clipdx) * e1);		}	    }	    /* draw the segment */	    x = new_x1;	    y = new_y1;	    e3 = e2 - e1;	    e  = e - e1;	    while (length--)	    {		MI_OUTPUT_POINT(x, y);		e += e1;		if (e >= 0)		{		    x += signdx;		    e += e3;		}		y += signdy;	    }	}    }    /* only do the capnotlast check on the last segment     * and only if the endpoint wasn't clipped.  And then, if the last     * point is the same as the first point, do not draw it, unless the     * line is degenerate     */    if ( (! pt2_clipped) && (GDK_GC_FBDATA(pGC)->values.cap_style != GDK_CAP_NOT_LAST) &&		(((xstart != x2) || (ystart != y2)) || (ppt == pptInit + 1)))    {	MI_OUTPUT_POINT(x, y);    }        if (Nspans > 0)      gdk_fb_fill_spans(pDraw, pGC, pspanInit, Nspans, FALSE);    DEALLOCATE_LOCAL(pspanInit);}voidmiZeroDashLine(GdkDrawable *dst, GdkGC *pgc,               int mode, int nptInit, GdkPoint *pptInit){    /* XXX kludge until real zero-width dash code is written */    GDK_GC_FBDATA(pgc)->values.line_width = 1;    miWideDash (dst, pgc, mode, nptInit, pptInit);    GDK_GC_FBDATA(pgc)->values.line_width = 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久精品一区八戒影视| 久久久99精品免费观看不卡| 丁香婷婷深情五月亚洲| 韩国在线一区二区| 国产一区三区三区| 久久99精品国产麻豆婷婷| 日本sm残虐另类| 久久成人免费网| 激情五月婷婷综合网| 精品一区二区三区免费| 国产精品一区二区在线观看不卡 | 99在线精品免费| 国产99一区视频免费| www.成人在线| 欧美三级蜜桃2在线观看| 欧美电影影音先锋| 亚洲精品一区二区三区福利| 欧美精品一区二区三区蜜臀| 国产调教视频一区| 亚洲精品国产第一综合99久久| 亚洲一区视频在线| 精品一区二区三区在线播放视频| 九九久久精品视频| 成a人片国产精品| 欧美日韩激情在线| 精品嫩草影院久久| 亚洲欧洲av色图| 视频在线观看一区| 高清av一区二区| 欧美三级欧美一级| 国产欧美综合色| 亚洲一区二区三区免费视频| 久久aⅴ国产欧美74aaa| 色综合视频在线观看| 日韩三级视频中文字幕| 欧美国产97人人爽人人喊| 亚洲一区二区av电影| 国产精品一区二区三区四区| 在线观看免费亚洲| 国产欧美精品区一区二区三区| 亚洲高清中文字幕| 国内一区二区在线| 欧美日韩三级视频| 国产精品女主播在线观看| 日韩精品亚洲专区| 91视频www| 欧美激情一区二区三区蜜桃视频| 日韩精品国产欧美| 91农村精品一区二区在线| 精品捆绑美女sm三区| 亚洲一区二区三区视频在线播放| 国产成人综合亚洲网站| 日韩午夜激情av| 亚洲一区二区精品3399| jizzjizzjizz欧美| 久久一日本道色综合| 丝袜美腿亚洲一区二区图片| 色噜噜偷拍精品综合在线| 亚洲国产精品高清| 国产美女一区二区| 26uuu亚洲| 麻豆精品久久精品色综合| 精品视频一区二区不卡| 亚洲男人天堂一区| 成人免费视频一区| 欧美激情在线免费观看| 国产成人av影院| 久久一留热品黄| 国模无码大尺度一区二区三区| 91精品国产全国免费观看| 日日夜夜免费精品视频| 欧美日韩dvd在线观看| 亚洲二区视频在线| 欧美在线啊v一区| 亚洲一区二区三区影院| 欧美制服丝袜第一页| 亚洲成人精品一区二区| 欧美日韩三级在线| 三级久久三级久久久| 日韩一级二级三级| 国产精品综合在线视频| 中文字幕乱码久久午夜不卡| 粉嫩13p一区二区三区| 国产精品久久久久7777按摩 | 色综合色狠狠综合色| 综合色天天鬼久久鬼色| 91免费观看在线| 亚洲自拍偷拍九九九| 欧美在线看片a免费观看| 日日夜夜精品视频免费| 欧美一卡二卡三卡| 国产麻豆精品视频| 国产精品第四页| 91黄色免费观看| 日韩成人精品在线观看| 久久综合狠狠综合久久激情| 国产精品1024久久| 欧美国产成人精品| 欧美综合一区二区| 免费的国产精品| 国产欧美综合在线| 欧美日韩在线播放三区| 国产毛片精品国产一区二区三区| 国产精品区一区二区三区| 欧美最猛黑人xxxxx猛交| 日韩国产欧美视频| 国产欧美一区二区在线观看| 在线亚洲高清视频| 国内成人免费视频| 亚洲一区二区在线视频| 久久综合精品国产一区二区三区| 91麻豆国产在线观看| 久久精品国内一区二区三区| 亚洲人妖av一区二区| 91精品国产一区二区三区蜜臀| 懂色av一区二区夜夜嗨| 石原莉奈在线亚洲二区| 国产精品久久午夜夜伦鲁鲁| 欧美日本一区二区在线观看| 国产激情视频一区二区在线观看| 夜夜揉揉日日人人青青一国产精品| 日韩一本二本av| 一本色道久久综合亚洲aⅴ蜜桃| 蜜臀精品一区二区三区在线观看 | 精品动漫一区二区三区在线观看| 97久久久精品综合88久久| 免费视频一区二区| 亚洲福利视频三区| 亚洲男女一区二区三区| 久久久亚洲高清| 欧美sm极限捆绑bd| 欧美一区二区精品在线| 欧美视频第二页| 色婷婷综合视频在线观看| 国产伦精一区二区三区| 久久国产精品无码网站| 亚洲电影一级片| 亚洲永久免费av| 亚洲男女毛片无遮挡| 中文字幕在线不卡国产视频| 国产网站一区二区三区| 精品噜噜噜噜久久久久久久久试看| 9191成人精品久久| 91成人看片片| 在线观看一区二区视频| 色屁屁一区二区| 日本韩国一区二区| 日本丶国产丶欧美色综合| av在线这里只有精品| av资源网一区| 91视频com| 色吊一区二区三区| 欧洲av在线精品| 欧美网站大全在线观看| 欧美中文字幕亚洲一区二区va在线| 色偷偷成人一区二区三区91| 色天使色偷偷av一区二区| 日本韩国一区二区| 欧美人体做爰大胆视频| 日韩亚洲欧美在线| 精品国产区一区| 欧美精品一区二区三区视频| 国产人妖乱国产精品人妖| 国产精品家庭影院| 伊人开心综合网| 午夜精品福利在线| 狠狠久久亚洲欧美| 粉嫩欧美一区二区三区高清影视| 成人av电影观看| 99国产精品久久久久| 99国产精品久久久| 欧美欧美午夜aⅴ在线观看| 日韩一区二区三区在线观看| 久久毛片高清国产| 亚洲丝袜美腿综合| 免费高清视频精品| 成人免费视频一区| 欧美丰满少妇xxxxx高潮对白| 日韩免费性生活视频播放| 欧美国产精品v| 日韩精品成人一区二区在线| 国产一区91精品张津瑜| 色综合久久综合网97色综合| 日韩一级二级三级| 亚洲柠檬福利资源导航| 九色porny丨国产精品| 色8久久精品久久久久久蜜| 日韩免费一区二区| 一区二区三区在线播放| 国产河南妇女毛片精品久久久| 91美女片黄在线| 日韩欧美一卡二卡| 亚洲激情在线激情| 老色鬼精品视频在线观看播放| 色综合一区二区三区| 久久综合狠狠综合久久激情 | 国产精品私人影院| 午夜精品久久久久久| 不卡一区中文字幕| 日韩精品一区二区三区四区|