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

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

?? vid_next.m

?? 著名游戲quake2原代碼最新版本(vc6.0可以編譯的)
?? M
?? 第 1 頁 / 共 3 頁
字號:
	[vid_window_i setTitle: "Bitmap Quake Console"];

//
// allocate memory for the back and translation buffers
//
	vid.rowbytes = vid.width;
	rowbytesnative = vid.width * pixbytesnative;
	
	AllocBuffers (true);
	
	vid.conbuffer = vid.buffer;
	vid.conrowbytes = vid.rowbytes;
	vid.conwidth = vid.width;
	vid.conheight = vid.height;
}


/*
=================
UpdateFramebuffer
=================
*/
void UpdateFramebuffer (vrect_t *vrect)
{
	byte		*psourcebase;
	byte		*pdestbase;
	int			scale;
	
	psourcebase = vid.buffer + vrect->x + vrect->y * vid.rowbytes;

	if (vid_display == disp_bitmap)
		scale = 1;		// let NS do the scaling
	else
		scale = vid_scale;
		
	pdestbase = buffernative + scale *
			(vrect->x * pixbytesnative + vrect->y * rowbytesnative);

//
// translate from ideal to native (except 8 bpp direct) and copy to screen
//

	if (pixbytesnative == 1)
		Update8_1 (psourcebase, pdestbase, vrect->width, vrect->height,
				rowbytesnative);
	else if (pixbytesnative == 2)
		Update16_1 (psourcebase, (unsigned short *)pdestbase, vrect->width, vrect->height,
				rowbytesnative);
	else
		Update32_1 (psourcebase, (unsigned *)pdestbase, vrect->width, vrect->height,
				rowbytesnative);
}


/*
=================
UpdateBitmap
=================
*/
void UpdateBitmap (void)
{
	unsigned char	*planes[5];
	NXRect			bounds;
	int				bpp, spp, bps, bpr, colorspace;

//
// flush the screen with an image call
// 
	if (pixbytesnative == 1)
	{
		bps = 8;
		spp = 1;
		bpp = 8;
		bpr = vid.width;
		colorspace = NX_OneIsWhiteColorSpace;
		planes[0] = vid.buffer;
	}
	else if (pixbytesnative == 2)
	{
		bps = 4;
		spp = 3;
		bpp = 16;
		bpr = vid.width * 2;
		colorspace = NX_RGBColorSpace;
		planes[0] = buffernative;
	}
	else
	{
		bps = 8;
		spp = 3;
		bpp = 32;
		bpr = vid.width * 4;
		colorspace = NX_RGBColorSpace;
		planes[0] = buffernative;
	}

	[vid_view_i getBounds: &bounds];
	[vid_view_i lockFocus];

	NXDrawBitmap(
		&bounds,  
		vid.width, 
		vid.height,
		bps,
		spp,
		bpp,
		bpr,
		NO,
		NO,
		colorspace,
		planes
	);
	
	[vid_view_i unlockFocus];
    NXPing ();	
}



/*
==========================================================================

					TRANSLATION TABLE BUILDING

==========================================================================
*/

int	redramp[] = {0, 19, 59, 113, 178, 255, 300};
int greenramp[] = {0, 11, 34,  66, 104, 149, 199, 255, 300};
int blueramp[] = {0, 28, 84, 161, 255, 300};
int greyramp[] = { 0, 17, 34, 51, 68, 85, 102, 119, 136, 153, 170, 187, 204,
				   221, 238, 255, 300};

byte	greytable[256];
byte	redtable[256];
byte	greentable[256];
byte	bluetable[256];

void FillTable (byte *table, int *ramp, int base)
{
	int		i, j, o;
	
	o = 0;
	for (i=0 ; i<16 && o < 256; i++)
	{
		j = ramp[i];
		for ( ; o<=j ; o++)
			table[o] = base + i;
	}
}

void	InitNS8Bit (void)
{
	FillTable (greytable, greyramp, 240);
	FillTable (redtable, redramp, 0);
	FillTable (greentable, greenramp, 0);
	FillTable (bluetable, blueramp, 0);
}


byte ns8trans[256] =	// FIXME: dynamically calc this so palettes work
{
0,241,242,243,244,244,245,246,247,248,249,250,251,252,253,254,
45,241,241,242,91,91,91,96,96,136,136,136,141,141,141,141,
241,46,242,243,243,97,97,97,245,246,143,143,143,143,148,148,
0,5,45,45,50,50,90,90,95,95,95,95,95,140,140,141,
0,40,40,40,40,80,80,80,80,80,120,120,120,120,120,120,
45,50,50,90,90,95,95,135,135,135,136,141,141,181,181,181,
45,90,91,91,131,131,136,136,136,176,181,181,186,226,231,236,
45,45,91,91,96,96,136,136,137,142,182,182,187,188,188,233,
188,249,248,247,246,137,137,137,244,243,243,91,242,241,241,45,
183,183,183,247,137,137,137,137,137,244,91,91,91,241,241,45,
252,251,188,188,248,248,142,142,142,244,244,243,91,242,241,45,
247,247,246,246,245,245,244,244,243,243,242,242,51,241,241,5,
236,231,231,191,186,185,185,140,140,135,135,95,90,90,45,45,
4,49,49,53,53,93,93,93,93,92,92,92,243,242,46,241,
239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,
239,239,239,239,239,239,239,239,239,239,239,239,239,239,239,182
};

/*
===================
Table8
===================
*/
void	Table8 (void)
{
	byte	*pal;
	int		r,g,b,v;
	int		i;
	byte	*table;
	
	pal = vid_palette;
	table = (byte *)pcolormap[0];
	
	for (i=0 ; i<256 ; i++)
	{
		r = pal[0];
		g = pal[1];
		b = pal[2];
		pal += 3;
		
// use the grey ramp if all indexes are close

		if (r-g < 16 && r-g > -16 && r-b < 16 && r-b > -16)
		{
			v = (r+g+b)/3;
			*table++ = greytable[v];
			continue;
		}
		
		r = redtable[r];
		g = greentable[g];
		b = bluetable[b];
		
// otherwise use the color cube
		*table++ = r*(8*5) + g*5 + b;
	}
}

/*
===================
Table24
===================
*/
void	Table24 (void)
{
	byte	*pal;
	int		r,g,b,v;
	int		i;
	unsigned	*table;
	
	
//
// 8 8 8 encoding
//
	pal = vid_palette;
	table = (unsigned *)pcolormap[0];
	
	for (i=0 ; i<256 ; i++)
	{
		r = pal[0];
		g = pal[1];
		b = pal[2];
		pal += 3;
		
		v = (r<<16) + (g<<8) + b;
		*table++ = v;
	}
}

/*
===================
Table24Swap
===================
*/
void	Table24Swap (void)
{
	byte	*pal;
	int		r,g,b,v;
	int		i;
	unsigned	*table;

//
// 8 8 8 encoding
//
	pal = vid_palette;
	table = (unsigned *)pcolormap[0];
	
	for (i=0 ; i<256 ; i++)
	{
		r = pal[0];
		g = pal[1];
		b = pal[2];
		pal += 3;
		
		v = (r<<24) + (g<<16) + (b<<8) /*+ 255*/;
		v = NXSwapBigLongToHost (v);
		*table++ = v;
	}
}


/*
===================
Table15
===================
*/
void	Table15 (void)
{
	byte			*pal;
	int				r,g,b,v;
	int				i, k;
	unsigned char	*palette;
	unsigned short	*table;
	int				dadj;
	int		ditheradjust[4] = {(1 << 9) * 3 / 8,
									(1 << 9) * 5 / 8,
									(1 << 9) * 7 / 8,
									(1 << 9) * 1 / 8};
	
	palette = vid_palette;
	table = (unsigned short *)pcolormap;
	
//
// 5 5 5 encoding
//
	for (k=0 ; k<4 ; k++)
	{
		dadj = ditheradjust[k];

		pal = vid_palette;

		for (i=0 ; i<256 ; i++)
		{
		// shift 6 bits to get back to 0-255, & 3 more for 5 bit color
		// FIXME: scale intensity levels properly
			r = (pal[0] + dadj) >> 3;
			g = (pal[1] + dadj) >> 3;
			b = (pal[2] + dadj) >> 3;
			pal += 3;

			v = (r<<10) + (g<<5) + b;

			*table++ = v;
		}
	}
}

/*
===================
Table12
===================
*/
void	Table12 (void)
{
	byte			*pal;
	int				r,g,b,v;
	int				i, k;
	unsigned short	*table;
	int				dadj;
	static int		ditheradjust[4] = {(1 << 9) * 3 / 8,
									   (1 << 9) * 5 / 8,
									   (1 << 9) * 7 / 8,
									   (1 << 9) * 1 / 8};

	table = (unsigned short *)pcolormap;
		
//
// 4 4 4 encoding
//
	for (k=0 ; k<4 ; k++)
	{
		dadj = ditheradjust[k];

		pal = vid_palette;

		for (i=0 ; i<256 ; i++)
		{
		// shift 5 bits to get back to 0-255, & 4 more for 4 bit color
		// FIXME: scale intensity levels properly
			r = (pal[0] + dadj) >> 4;
			g = (pal[1] + dadj) >> 4;
			b = (pal[2] + dadj) >> 4;
			pal += 3;

			v = ((r<<12) + (g<<8) + (b<<4) /*+ 15*/);

			*table++ = v;
		}
	}
}

/*
===================
Table12Swap
===================
*/
void	Table12Swap (void)
{
	byte			*pal;
	int				r,g,b,v;
	int				i, k;
	unsigned short	*table;
	int				dadj;
	static int		ditheradjust[4] = {(1 << 9) * 3 / 8,
									   (1 << 9) * 5 / 8,
									   (1 << 9) * 7 / 8,
									   (1 << 9) * 1 / 8};

	table = (unsigned short *)pcolormap;
		
//
// 4 4 4 encoding
//
	for (k=0 ; k<4 ; k++)
	{
		dadj = ditheradjust[k];

		pal = vid_palette;

		for (i=0 ; i<256 ; i++)
		{
		// shift 5 bits to get back to 0-255, & 4 more for 4 bit color
		// FIXME: scale intensity levels properly
			r = (pal[0] + dadj) >> 4;
			g = (pal[1] + dadj) >> 4;
			b = (pal[2] + dadj) >> 4;
			pal += 3;

			v = ((r<<12) + (g<<8) + (b<<4) /*+ 15*/);
			v = NXSwapBigShortToHost (v);

			*table++ = v;
		}
	}
}


/*
==========================================================================

					GENERIC IMAGING FUNCTIONS

==========================================================================
*/

/*
===================
Update8_1
===================
*/
void Update8_1 (pixel_t *src, byte *dest, int width, int height,
		int destrowbytes)
{
	int				x,y;
	unsigned		rowdelta, srcdelta;
	unsigned		xcount;
	byte			*pdest;
	int				xwidth;

	pdest = dest;
	
	xcount = width >> 3;
	srcdelta = vid.width - width;

	xwidth = width - (xcount << 3);
	if (xwidth)
		Sys_Error ("Width not multiple of 8");

	if ((vid_display == disp_framebuffer) && (vid_scale == 2))
	{
		int		nextrow = destrowbytes;

	    rowdelta = destrowbytes - (width << 1)  + destrowbytes;

		if (dither)
		{
			unsigned short	*psrc;

			psrc = (unsigned short *)src;

			for (y = height ; y ; y--)
			{
		    	for (x = xcount ; x ;x--)
			    {
					unsigned	temp;

					temp = psrc[0];
					pdest[0] = ((byte *)pcolormap[0])[temp];
					pdest[1] = ((byte *)pcolormap[1])[temp];
					pdest[nextrow] = ((byte *)pcolormap[2])[temp];
					pdest[nextrow + 1] = ((byte *)pcolormap[3])[temp];
					temp = psrc[1];
					pdest[2] = ((byte *)pcolormap[0])[temp];
					pdest[3] = ((byte *)pcolormap[1])[temp];
					pdest[nextrow + 2] = ((byte *)pcolormap[2])[temp];
					pdest[nextrow + 3] = ((byte *)pcolormap[3])[temp];
					temp = psrc[2];
					pdest[4] = ((byte *)pcolormap[0])[temp];
					pdest[5] = ((byte *)pcolormap[1])[temp];
					pdest[nextrow + 4] = ((byte *)pcolormap[2])[temp];
					pdest[nextrow + 5] = ((byte *)pcolormap[3])[temp];
					temp = psrc[3];
					pdest[6] = ((byte *)pcolormap[0])[temp];
					pdest[7] = ((byte *)pcolormap[1])[temp];
					pdest[nextrow + 6] = ((byte *)pcolormap[2])[temp];
					pdest[nextrow + 7] = ((byte *)pcolormap[3])[temp];
					temp = psrc[4];
					pdest[8] = ((byte *)pcolormap[0])[temp];
					pdest[9] = ((byte *)pcolormap[1])[temp];
					pdest[nextrow + 8] = ((byte *)pcolormap[2])[temp];
					pdest[nextrow + 9] = ((byte *)pcolormap[3])[temp];
					temp = psrc[5];
					pdest[10] = ((byte *)pcolormap[0])[temp];
					pdest[11] = ((byte *)pcolormap[1])[temp];
					pdest[nextrow + 10] = ((byte *)pcolormap[2])[temp];
					pdest[nextrow + 11] = ((byte *)pcolormap[3])[temp];
					temp = psrc[6];
					pdest[12] = ((byte *)pcolormap[0])[temp];
					pdest[13] = ((byte *)pcolormap[1])[temp];
					pdest[nextrow + 12] = ((byte *)pcolormap[2])[temp];
					pdest[nextrow + 13] = ((byte *)pcolormap[3])[temp];
					temp = psrc[7];
					pdest[14] = ((byte *)pcolormap[0])[temp];
					pdest[15] = ((byte *)pcolormap[1])[temp];
					pdest[nextrow + 14] = ((byte *)pcolormap[2])[temp];
					pdest[nextrow + 15] = ((byte *)pcolormap[3])[temp];
					pdest += 16; psrc += 8;
			    }

				psrc += srcdelta;
			    pdest += rowdelta;
			}
		}
		else
		{
			byte	*psrc;

			psrc = (byte *)src;

			for (y = height ; y ; y--)
			{
				for (x = xcount ; x ;x--)
		    	{
					pdest[0] = pdest[1] = pdest[nextrow] =
						pdest[nextrow + 1] = ((byte *)pcolormap[0])[psrc[0]];
					pdest[2] = pdest[3] = pdest[nextrow + 2] =
						pdest[nextrow + 3] = ((byte *)pcolormap[0])[psrc[1]];
					pdest[4] = pdest[5] = pdest[nextrow + 4] =
						pdest[nextrow + 5] = ((byte *)pcolormap[0])[psrc[2]];
					pdest[6] = pdest[7] = pdest[nextrow + 6] =
						pdest[nextrow + 7] = ((byte *)pcolormap[0])[psrc[3]];
					pdest[8] = pdest[9] = pdest[nextrow + 8] =
						pdest[nextrow + 9] = ((byte *)pcolormap[0])[psrc[4]];
					pdest[10] = pdest[11] = pdest[nextrow + 10] =
						pdest[nextrow + 11] = ((byte *)pcolormap[0])[psrc[5]];
					pdest[12] = pdest[13] = pdest[nextrow + 12] =
						pdest[nextrow + 13] = ((byte *)pcolormap[0])[psrc[6]];
					pdest[14] = pdest[15] = pdest[nextrow + 14] =
						pdest[nextrow + 15] = ((byte *)pcolormap[0])[psrc[7]];
					pdest += 16; psrc += 8;
		    	}

				psrc += srcdelta;
			    pdest += rowdelta;
			}
		}
    }
	else
	{
	    rowdelta = destrowbytes - width;

		if (dither)
		{
			unsigned short	*psrc;

			psrc = (unsigned short *)src;

			for (y = height ; y>0 ; y -= 2)
			{
		    	for (x = xcount ; x ;x--)
			    {
					pdest[0] = ((byte *)pcolormap[0])[psrc[0]];
					pdest[1] = ((byte *)pcolormap[1])[psrc[1]];
					pdest[2] = ((byte *)pcolormap[0])[psrc[2]];
					pdest[3] = ((byte *)pcolormap[1])[psrc[3]];
					pdest[4] = ((byte *)pcolormap[0])[psrc[4]];
					pdest[5] = ((byte *)pcolormap[1])[psrc[5]];
					pdest[6] = ((byte *)pcolormap[0])[psrc[6]];
					pdest[7] = ((byte *)pcolormap[1])[psrc[7]];
					pdest += 8; psrc += 8;
			    }

				psrc += srcdelta;
			    pdest += rowdelta;

		    	for (x = xcount ; x ;x--)
			    {
					pdest[0] = ((byte *)pcolormap[2])[psrc[0]];
					pdest[1] = ((byte *)pcolormap[3])[psrc[1]];
					pdest[2] = ((byte *)pcolormap[2])[psrc[2]];
					pdest[3] = ((byte *)pcolormap[3])[psrc[3]];
					pdest[4] = ((byte *)pcolormap[2])[psrc[4]];
					pdest[5] = ((byte *)pcolormap[3])[psrc[5]];
					pdest[6] = ((byte *)pcolormap[2])[psrc[6]];
					pdest[7] = ((byte *)pcolormap[3])[psrc[7]];
					pdest += 8; psrc += 8;
			    }

				psrc += srcdelta;
			    pdest += rowdelta;
			}
		}
		else
		{
			byte	*psrc;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品无人区卡一卡二卡三乱码免费卡 | 日本网站在线观看一区二区三区| 91美女视频网站| 亚洲日本韩国一区| 在线观看精品一区| 日本中文在线一区| 欧美精品一区视频| 国产91清纯白嫩初高中在线观看 | 美女一区二区视频| 久久久久久久久99精品| 不卡电影一区二区三区| 依依成人精品视频| 欧美三级电影在线看| 久草在线在线精品观看| 国产女人aaa级久久久级| 99re在线视频这里只有精品| 一区二区三区国产| 欧美大片一区二区| av在线播放成人| 爽好多水快深点欧美视频| 精品成人在线观看| 色狠狠桃花综合| 久久黄色级2电影| 中文字幕一区二区三区色视频| 欧美午夜视频网站| 国产精品原创巨作av| 亚洲女人的天堂| 欧美成人女星排行榜| 99久久精品免费看国产免费软件| 亚洲成人精品一区| 国产欧美日韩视频一区二区| 欧美视频一区二区| 成人免费黄色在线| 日一区二区三区| 欧美国产日韩亚洲一区| 欧美日本一道本在线视频| 国产激情视频一区二区三区欧美| 亚洲黄色免费网站| 国产亚洲女人久久久久毛片| 欧美日韩国产综合久久| 风间由美一区二区av101| 亚洲成年人网站在线观看| 国产精品久久久久四虎| 日韩美女视频在线| 欧美日韩三级视频| av一区二区三区黑人| 蜜桃av一区二区在线观看| 亚洲自拍与偷拍| 国产调教视频一区| 日韩欧美美女一区二区三区| 91国内精品野花午夜精品| 成人性生交大合| 老色鬼精品视频在线观看播放| 亚洲男人天堂一区| 欧美精彩视频一区二区三区| 日韩欧美电影一区| 欧美日韩国产一级片| 91麻豆精品秘密| 成人毛片老司机大片| 激情综合网天天干| 奇米888四色在线精品| 一区二区成人在线视频| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 蜜臀av一区二区| 一区二区视频在线| 国产精品美女久久久久久久久| 精品91自产拍在线观看一区| 欧美一级欧美三级| 欧美精品1区2区| 欧美人妇做爰xxxⅹ性高电影| 一本大道久久a久久综合| av中文字幕不卡| 99精品视频中文字幕| 99久久综合狠狠综合久久| 国产成人亚洲综合色影视| 美女一区二区视频| 九一九一国产精品| 国产一区欧美一区| 国产不卡免费视频| 国产91高潮流白浆在线麻豆| 国产一区二区伦理| 国产精华液一区二区三区| 国产麻豆视频一区二区| 国产91清纯白嫩初高中在线观看| 国产一区 二区 三区一级| 国产精品综合视频| 不卡一区在线观看| 色婷婷一区二区三区四区| 欧美在线综合视频| 欧美三级一区二区| 日韩欧美中文字幕精品| 久久亚洲精华国产精华液 | 中文字幕av一区二区三区| 中文字幕一区日韩精品欧美| 亚洲日本在线看| 亚洲成人在线观看视频| 久久精品国产久精国产| 国产麻豆9l精品三级站| 97se亚洲国产综合在线| 欧美日韩三级一区二区| 精品国产一区二区三区四区四| 久久午夜电影网| 亚洲欧洲日产国码二区| 亚洲成人激情社区| 国模无码大尺度一区二区三区| 国产aⅴ精品一区二区三区色成熟| 不卡电影一区二区三区| 欧美三级三级三级| 久久久精品影视| 一区二区三区国产精品| 久88久久88久久久| 91福利在线免费观看| 日韩一区二区不卡| 中文在线一区二区| 日韩电影在线一区二区| 国产69精品久久99不卡| 欧美丝袜自拍制服另类| 国产三级精品视频| 亚洲无线码一区二区三区| 久久电影网电视剧免费观看| 91视频免费观看| 欧美成人国产一区二区| 亚洲人成7777| 国模一区二区三区白浆| 在线视频一区二区免费| 国产亚洲成aⅴ人片在线观看| 亚洲香肠在线观看| 高清日韩电视剧大全免费| 欧美视频一区二区三区在线观看| 久久久久88色偷偷免费| 天堂蜜桃一区二区三区| 大美女一区二区三区| 欧美一级艳片视频免费观看| 亚洲人吸女人奶水| 激情综合色综合久久综合| 欧美日韩黄色影视| 亚洲男同性恋视频| 床上的激情91.| 精品国产一区久久| 三级久久三级久久| 欧美三级中文字| 亚洲欧美偷拍卡通变态| 国产精品1区2区3区在线观看| 777午夜精品视频在线播放| 亚洲乱码精品一二三四区日韩在线| 另类小说一区二区三区| 欧美亚洲禁片免费| 亚洲精品成人a在线观看| 成人av在线观| 中文一区二区完整视频在线观看| 美日韩黄色大片| 91精品国产91热久久久做人人 | 麻豆成人91精品二区三区| 91蜜桃在线观看| 中文字幕在线不卡一区| 国产成人亚洲综合色影视| 26uuu国产在线精品一区二区| 亚洲6080在线| 精品视频全国免费看| 亚洲综合清纯丝袜自拍| 色8久久人人97超碰香蕉987| 亚洲欧美日韩中文播放| 97成人超碰视| 亚洲乱码一区二区三区在线观看| 91看片淫黄大片一级在线观看| 欧美国产一区在线| 成人免费福利片| 日韩毛片高清在线播放| 波多野结衣亚洲一区| 国产精品丝袜久久久久久app| 国产成人在线电影| 欧美国产欧美综合| 99国内精品久久| 伊人婷婷欧美激情| 在线观看日韩电影| 丝袜诱惑亚洲看片| 日韩精品在线看片z| 九一久久久久久| 亚洲国产成人一区二区三区| 成人深夜福利app| 亚洲视频你懂的| 欧美日本在线观看| 精品一区二区久久| 国产女人水真多18毛片18精品视频| 粉嫩在线一区二区三区视频| 亚洲国产精品v| 在线观看亚洲a| 美腿丝袜亚洲三区| 中文字幕免费一区| 在线观看成人小视频| 男男成人高潮片免费网站| 精品国产乱码久久久久久图片| 国产超碰在线一区| 亚洲精品日韩专区silk| 69堂国产成人免费视频| 久99久精品视频免费观看| 中文字幕一区在线观看| 欧美浪妇xxxx高跟鞋交| 国产精品 欧美精品| 亚洲一区二区五区|