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

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

?? genfunc.c

?? 該源碼是miniGUI的全部代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
}/* Draw a horizontal line from x1 to and including x2 in the * foreground color, applying clipping if necessary. */static void drawrow(PSD psd, int x1, int x2, int y){	int temp;	/* reverse endpoints if necessary*/	if (x1 > x2) {		temp = x1;		x1 = x2;		x2 = temp;	}	/* clip to physical device*/	if ( psd->doclip) {		if ( (x2 < psd->clipminx) || ( x1 >= psd->clipmaxx) )			return;		if ( (y < psd->clipminy) || (y >= psd->clipmaxy) )			  return;		if (x2 < psd->clipminx)			  return ;		if (x1 >= psd->clipmaxx)			  return;		if (x1 < psd->clipminx)			  x1 = psd->clipminx;		if (x2 >= psd->clipmaxx)			  x2 = psd->clipmaxx - 1;	} else {		if ( (x2 < 0) || ( x1 >= psd->xres) )			return;		if ( (y < 0) || (y >= psd->yres) )			  return;		if (x1 < 0)			  x1 = 0;		if (x2 >= psd->xres)			  x2 = psd->xres - 1;	}	psd->DrawHLine(psd, x1, y, x2-x1+1, psd->gr_foreground);}/*  * Draw a vertical line from y1 to and including y2 in the * foreground color, applying clipping if necessary. */static void drawcol(PSD psd, int x,int y1,int y2){	int temp;	/* reverse endpoints if necessary*/	if (y1 > y2) {		temp = y1;		y1 = y2;		y2 = temp;	}	/* clip to physical device*/	if ( psd->doclip) {		if ( (x < psd->clipminx) || ( x >= psd->clipmaxx) )			return;		if ( (y2 < psd->clipminy) || (y1 >= psd->clipmaxy) )			  return;		if (y1 < psd->clipminy)			  y1 = psd->clipminy;		if (y2 >= psd->clipmaxy)			  y2 = psd->clipmaxy - 1;	} else {		if ( (x < 0) || ( x >= psd->xres) )			return;		if ( (y2 < 0) || (y1 >= psd->yres) )			return;		if (y1 < 0)			  y1 = 0;		if (y2 >= psd->yres)			  y2 = psd->yres - 1;	}	psd->DrawVLine(psd, x, y1, y2-y1+1, psd->gr_foreground);}#if 0void generate_palette(GAL_Color *pal, int num){	GAL_Color black  = { 0, 0, 0, 0 };	GAL_Color white  = { 255, 255, 255, 0 };	GAL_Color blue   = { 0, 0, 255, 0 };	GAL_Color yellow = { 255, 255, 0, 0 };	int i, depth, N;	int rnum,  gnum,  bnum;	int rmask, gmask, bmask;		/* handle small palettes */	if (num == 0) return;	pal[0] = black;   if (num == 1) return;	pal[1] = white;   if (num == 2) return;	pal[2] = blue;    if (num == 3) return;	pal[3] = yellow;  if (num == 4) return;	/* handle large palettes. */	depth = 0;  /* work out depth so that (1 << depth) >= num */	for (N = num-1; N > 0; N /= 2) {		depth++;	}	gnum = (depth + 2) / 3;  /* green has highest priority */	rnum = (depth + 1) / 3;  /* red has second highest priority */	bnum = (depth + 0) / 3;  /* blue has lowest priority */	gmask = (1 << gnum) - 1;	rmask = (1 << rnum) - 1;	bmask = (1 << bnum) - 1;	for (i=0; i < num; i++) {		/* When num < (1 << depth), we interpolate the values so		 * that we still get a good range.  There's probably a		 * better way...		 */				int j = i * ((1 << depth) - 1) / (num - 1);		int r, g, b;				b = j & bmask;  j >>= bnum;		r = j & rmask;  j >>= rnum;		g = j & gmask;		pal[i].r = r * 0xffff / rmask;		pal[i].g = g * 0xffff / gmask;		pal[i].b = b * 0xffff / bmask;		pal[i].a = 0;	}}#endif//==================draw a circle =====================================static inline void setpixel(PSD psd, int x, int y, int c){	if( psd->ClipPoint (psd, x, y))		psd->DrawPixel(psd, x, y, c);}					static void setcirclepixels(PSD psd, int x, int y, int sx, int sy, int c){	if ( psd->doclip ) {		int z = MAX (x, y);		if (sx - z < psd->clipminx || sx + z >= psd->clipmaxx || sy - z < psd->clipminy || sy + z >= psd->clipmaxy) {		    	/* use setpixel clipping */			setpixel(psd, sx + x, sy + y, c);			setpixel(psd, sx - x, sy + y, c);			setpixel(psd, sx + x, sy - y, c);			setpixel(psd, sx - x, sy - y, c);			setpixel(psd, sx + y, sy + x, c);		 	setpixel(psd, sx - y, sy + x, c);			setpixel(psd, sx + y, sy - x, c);			setpixel(psd, sx - y, sy - x, c);			return;		}	}	psd->DrawPixel(psd, sx + x, sy + y, c);	psd->DrawPixel(psd, sx - x, sy + y, c);	psd->DrawPixel(psd, sx + x, sy - y, c);	psd->DrawPixel(psd, sx - x, sy - y, c);	psd->DrawPixel(psd, sx + y, sy + x, c);	psd->DrawPixel(psd, sx - y, sy + x, c);	psd->DrawPixel(psd, sx + y, sy - x, c);	psd->DrawPixel(psd, sx - y, sy - x, c);}void native_gen_circle(PSD psd, int sx, int sy, int r, int c){	int x, y, d;	if (r < 1) {		setpixel(psd, sx, sy, c);		return;	}	if (psd->doclip){		if (sx + r < psd->clipminx) return;		if (sx - r >= psd->clipmaxx) return; 		if (sy + r < psd->clipminy) return;		if (sy - r >= psd->clipmaxy) return; 	}	x = 0;	y = r;	d = 1 - r;	setcirclepixels(psd, x, y, sx, sy, c);	while (x < y) {		if (d < 0)		    d += x * 2 + 3;		else {		    d += x * 2 - y * 2 + 5;		    y--;		}		x++;		setcirclepixels(psd, x, y, sx, sy, c);	}}//=================================scale box =================================================/*      scalebox comes from SVGALib, Copyright 1993 Harm Hanemaayer         */typedef unsigned char uchar;/* We use the 32-bit to 64-bit multiply and 64-bit to 32-bit divide of the *//* 386 (which gcc doesn't know well enough) to efficiently perform integer *//* scaling without having to worry about overflows. */#ifdef USE_ASMstatic inline int muldiv64(int m1, int m2, int d){/* int32 * int32 -> int64 / int32 -> int32 */    int result;    __asm__(           "imull %%edx\n\t"           "idivl %3\n\t"  :           "=a"(result)    /* out */  :           "a"(m1), "d"(m2), "g"(d)        /* in */  :           "ax", "dx"    /* mod */    );    return result;}#elsestatic inline int muldiv64 (int m1, int m2, int d){    long long int mul = (long long int) m1 * m2;    return (int) (mul / d);}#endif/* This is a DDA-based algorithm. *//* Iteration over target bitmap. */int native_gen_scalebox (PSD psd, int w1, int h1, void *_dp1, int w2, int h2, void *_dp2){    uchar *dp1 = _dp1;    uchar *dp2 = _dp2;    int xfactor;    int yfactor;    if (w2 == 0 || h2 == 0)        return 0;    xfactor = muldiv64(w1, 65536, w2);        /* scaled by 65536 */    yfactor = muldiv64(h1, 65536, h2);        /* scaled by 65536 */    switch ((psd->bpp + 7) / 8) {    case 1:        {            int y, sy;            sy = 0;            for (y = 0; y < h2;) {                int sx = 0;                uchar *dp2old = dp2;                int x;                x = 0;                while (x < w2 - 8) {#ifdef USE_ASM                    /* This saves just a couple of cycles per */                    /* pixel on a 486, but I couldn't resist. */                    __asm__ __volatile__("movl %4, %%eax\n\t"                                         "shrl $16, %%eax\n\t"                                         "addl %5, %4\n\t"                                         "movb (%3, %%eax), %%al\n\t"                                         "movb %%al, (%1, %2)\n\t"                                         "movl %4, %%eax\n\t"                                         "shrl $16, %%eax\n\t"                                         "addl %5, %4\n\t"                                         "movb (%3, %%eax), %%al\n\t"                                         "movb %%al, 1 (%1, %2)\n\t"                                         "movl %4, %%eax\n\t"                                         "shrl $16, %%eax\n\t"                                         "addl %5, %4\n\t"                                         "movb (%3, %%eax), %%al\n\t"                                         "movb %%al, 2 (%1, %2)\n\t"                                         "movl %4, %%eax\n\t"                                         "shrl $16, %%eax\n\t"                                         "addl %5, %4\n\t"                                         "movb (%3, %%eax), %%al\n\t"                                         "movb %%al, 3 (%1, %2)\n\t"                                         "movl %4, %%eax\n\t"                                         "shrl $16, %%eax\n\t"                                         "addl %5, %4\n\t"                                         "movb (%3, %%eax), %%al\n\t"                                         "movb %%al, 4 (%1, %2)\n\t"                                         "movl %4, %%eax\n\t"                                         "shrl $16, %%eax\n\t"                                         "addl %5, %4\n\t"                                         "movb (%3, %%eax), %%al\n\t"                                         "movb %%al, 5 (%1, %2)\n\t"                                         "movl %4, %%eax\n\t"                                         "shrl $16, %%eax\n\t"                                         "addl %5, %4\n\t"                                         "movb (%3, %%eax), %%al\n\t"                                         "movb %%al, 6 (%1, %2)\n\t"                                         "movl %4, %%eax\n\t"                                         "shrl $16, %%eax\n\t"                                         "addl %5, %4\n\t"                                         "movb (%3, %%eax), %%al\n\t"                                         "movb %%al, 7 (%1, %2)\n\t"                                         :        /* output */                                         :        /* input */                                     "ax"(0), "r"(dp2), "r"(x), "r"(dp1),                                         "r"(sx), "r"(xfactor)                                         :"ax", "4"                    );#else                    *(dp2 + x) = *(dp1 + (sx >> 16));                    sx += xfactor;                    *(dp2 + x + 1) = *(dp1 + (sx >> 16));                    sx += xfactor;                    *(dp2 + x + 2) = *(dp1 + (sx >> 16));                    sx += xfactor;                    *(dp2 + x + 3) = *(dp1 + (sx >> 16));                    sx += xfactor;                    *(dp2 + x + 4) = *(dp1 + (sx >> 16));                    sx += xfactor;                    *(dp2 + x + 5) = *(dp1 + (sx >> 16));                    sx += xfactor;                    *(dp2 + x + 6) = *(dp1 + (sx >> 16));                    sx += xfactor;                    *(dp2 + x + 7) = *(dp1 + (sx >> 16));                    sx += xfactor;#endif                    x += 8;                }                while (x < w2) {                    *(dp2 + x) = *(dp1 + (sx >> 16));                    sx += xfactor;                    x++;                }                dp2 += w2;                y++;                while (y < h2) {                    int l;                    int syint = sy >> 16;                    sy += yfactor;                    if ((sy >> 16) != syint)                        break;                    /* Copy identical lines. */                    l = dp2 - dp2old;                    memcpy(dp2, dp2old, l);                    dp2old = dp2;                    dp2 += l;                    y++;                }                dp1 = _dp1 + (sy >> 16) * w1;            }        }    break;    case 2:        {            int y, sy;            sy = 0;            for (y = 0; y < h2;) {                int sx = 0;                uchar *dp2old = dp2;                int x;                x = 0;                /* This can be greatly optimized with loop */                /* unrolling; omitted to save space. */                while (x < w2) {                    *(unsigned short *) (dp2 + x * 2) =                        *(unsigned short *) (dp1 + (sx >> 16) * 2);                    sx += xfactor;                    x++;                }                dp2 += w2 * 2;                y++;                while (y < h2) {                    int l;                    int syint = sy >> 16;                    sy += yfactor;                    if ((sy >> 16) != syint)                        break;                    /* Copy identical lines. */                    l = dp2 - dp2old;                    memcpy(dp2, dp2old, l);                    dp2old = dp2;                    dp2 += l;                    y++;                }                dp1 = _dp1 + (sy >> 16) * w1 * 2;            }        }    break;    case 3:        {            int y, sy;            sy = 0;            for (y = 0; y < h2;) {                int sx = 0;                uchar *dp2old = dp2;                int x;                x = 0;                /* This can be greatly optimized with loop */                /* unrolling; omitted to save space. */                while (x < w2) {                    *(unsigned short *) (dp2 + x * 3) =                        *(unsigned short *) (dp1 + (sx >> 16) * 3);                    *(unsigned char *) (dp2 + x * 3 + 2) =                        *(unsigned char *) (dp1 + (sx >> 16) * 3 + 2);                    sx += xfactor;                    x++;                }                dp2 += w2 * 3;                y++;                while (y < h2) {                    int l;                    int syint = sy >> 16;                    sy += yfactor;                    if ((sy >> 16) != syint)                        break;                    /* Copy identical lines. */                    l = dp2 - dp2old;                    memcpy(dp2, dp2old, l);                    dp2old = dp2;                    dp2 += l;                    y++;                }                dp1 = _dp1 + (sy >> 16) * w1 * 3;            }        }    break;    case 4:        {            int y, sy;            sy = 0;            for (y = 0; y < h2;) {                int sx = 0;                uchar *dp2old = dp2;                int x;                x = 0;                /* This can be greatly optimized with loop */                /* unrolling; omitted to save space. */                while (x < w2) {                    *(unsigned *) (dp2 + x * 4) =                        *(unsigned *) (dp1 + (sx >> 16) * 4);                    sx += xfactor;                    x++;                }                dp2 += w2 * 4;                y++;                while (y < h2) {                    int l;                    int syint = sy >> 16;                    sy += yfactor;                    if ((sy >> 16) != syint)                        break;                    /* Copy identical lines. */                    l = dp2 - dp2old;                    memcpy(dp2, dp2old, l);                    dp2old = dp2;                    dp2 += l;                    y++;                }                dp1 = _dp1 + (sy >> 16) * w1 * 4;            }        }    break;    }    return 0;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91一区一区三区| 久久日一线二线三线suv| 制服丝袜亚洲网站| 国产女人18毛片水真多成人如厕| 一区二区三区欧美日韩| 国产一区二区三区最好精华液| 91麻豆精东视频| 中文字幕av一区二区三区| 日韩电影在线观看电影| 波多野结衣亚洲一区| 欧美www视频| 日本在线不卡一区| 欧美三级一区二区| 樱花草国产18久久久久| 波多野结衣欧美| 中文字幕精品在线不卡| 国产高清在线观看免费不卡| 91精品综合久久久久久| 国产综合色视频| 91精品国产综合久久久久久久 | 欧美吻胸吃奶大尺度电影 | 亚洲色图视频免费播放| 国产99久久久久| 国产亚洲欧美日韩日本| 精品无人区卡一卡二卡三乱码免费卡 | 91免费版在线| 国产精品二三区| av亚洲产国偷v产偷v自拍| 国产午夜精品久久久久久久| 韩国成人精品a∨在线观看| 欧美成人a视频| 韩国成人福利片在线播放| 欧美电视剧在线看免费| 麻豆精品视频在线观看免费| 日韩欧美国产一区二区三区| 日本视频在线一区| 亚洲精品va在线观看| 91蜜桃网址入口| 亚洲精品欧美激情| 精品视频1区2区3区| 视频一区二区三区在线| 欧美日韩小视频| 日本不卡1234视频| 国产综合色精品一区二区三区| 欧美日本韩国一区| 日韩精品一二三| 日韩欧美中文一区二区| 久久91精品久久久久久秒播| 久久先锋影音av鲁色资源| 岛国av在线一区| 亚洲精品久久久久久国产精华液| 欧美午夜精品久久久| 男女男精品视频| 国产欧美日韩在线看| 色综合咪咪久久| 天天射综合影视| 国产三级三级三级精品8ⅰ区| 暴力调教一区二区三区| 亚洲国产精品久久人人爱蜜臀 | 亚洲免费av在线| 日韩视频一区二区三区| 成人国产在线观看| 亚洲国产成人av网| 久久综合九色综合欧美亚洲| 成人黄色免费短视频| 日日摸夜夜添夜夜添亚洲女人| 日韩欧美成人午夜| 99精品一区二区| 美洲天堂一区二卡三卡四卡视频| 国产精品白丝在线| 日韩一区二区三区电影在线观看| 国产精品一二二区| 五月综合激情婷婷六月色窝| 国产亚洲精品aa| 91麻豆精品国产| 91美女福利视频| 久久成人免费日本黄色| 亚洲精品乱码久久久久久黑人 | 国产乱子伦视频一区二区三区| 亚洲女与黑人做爰| 久久久久国色av免费看影院| 欧美性生活影院| 波多野结衣亚洲| 国产一区二区三区综合| 日本视频一区二区| 亚洲精品视频在线观看网站| 国产亚洲视频系列| 日韩欧美国产高清| 欧美日韩小视频| 色综合一个色综合亚洲| 国产成人精品免费| 亚洲成人7777| 一区二区三区在线影院| 国产精品女人毛片| 精品国产乱码久久久久久老虎| 欧美三级三级三级| 在线免费观看日本一区| a4yy欧美一区二区三区| 国产成a人亚洲精品| 久久国产精品第一页| 日韩不卡一区二区| 日韩精品一二区| 日韩精品电影一区亚洲| 天天影视色香欲综合网老头| 亚洲一区二区三区小说| 亚洲色图欧美激情| 中文字幕在线不卡一区二区三区| 久久免费国产精品| 国产亚洲欧洲一区高清在线观看| 日韩欧美国产成人一区二区| 日韩欧美一区二区视频| 日韩三级.com| 欧美一区二区美女| 精品国产一区久久| 欧美精品一区二区三区四区| 欧美zozo另类异族| 久久久美女毛片| 国产精品久久久久久久蜜臀| 国产精品国产三级国产专播品爱网 | 亚洲欧洲成人精品av97| 欧美国产精品久久| 亚洲欧美日韩中文字幕一区二区三区| 国产精品久久久久久久蜜臀 | 日韩精品自拍偷拍| 久久夜色精品国产噜噜av| 久久日韩粉嫩一区二区三区| 欧美激情在线免费观看| 1区2区3区国产精品| 亚洲国产cao| 美女网站色91| 大尺度一区二区| 91行情网站电视在线观看高清版| 欧美三级乱人伦电影| 日韩三区在线观看| 国产日本欧美一区二区| 一区二区三区在线观看欧美| 日韩电影免费在线看| 国产一区二区成人久久免费影院| 成人自拍视频在线| 欧美日韩一区二区三区在线看 | 六月丁香婷婷久久| 久久精品国产秦先生| 高清国产一区二区| 欧美亚洲国产一区二区三区| 欧美一卡二卡在线| 中文字幕乱码亚洲精品一区| 亚洲午夜激情网页| 国产乱淫av一区二区三区 | 日本视频一区二区三区| 欧美一a一片一级一片| 欧美成人伊人久久综合网| 国产精品乱码久久久久久| 亚洲国产wwwccc36天堂| 国产a区久久久| 欧美人与性动xxxx| 国产精品成人在线观看| 久久精品国产精品青草| 91亚洲精品一区二区乱码| 日韩欧美国产午夜精品| 一区二区免费在线播放| 国产激情视频一区二区在线观看| 91成人在线免费观看| 久久久久久综合| 日韩电影一区二区三区| 91美女在线看| 国产日韩欧美在线一区| 日韩av中文字幕一区二区| 91麻豆swag| 国产精品久久久久久久第一福利| 亚洲午夜精品17c| 91丨九色丨蝌蚪富婆spa| 国产午夜久久久久| 极品美女销魂一区二区三区| 在线观看av一区二区| 国产精品久久福利| 国内久久精品视频| 日韩亚洲欧美中文三级| 亚洲成人免费影院| 99re成人精品视频| 国产区在线观看成人精品| 麻豆国产91在线播放| 欧美精品1区2区3区| 亚洲一区在线播放| 色综合久久中文字幕综合网| 日本一区二区三区四区在线视频| 欧美伊人精品成人久久综合97| 欧美高清在线精品一区| 国产一区二区三区在线看麻豆| 欧美精品 国产精品| 亚洲成国产人片在线观看| 91成人国产精品| 亚洲一级二级在线| 欧美视频完全免费看| 亚洲国产sm捆绑调教视频| 在线观看一区二区视频| 亚洲综合成人在线视频| 91成人国产精品| 无码av中文一区二区三区桃花岛| 欧美日韩中文字幕精品| 同产精品九九九|