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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? cl_cin.c

?? quakeIII源碼這個(gè)不用我多說(shuō)吧
?? C
?? 第 1 頁(yè) / 共 4 頁(yè)
字號(hào):
	ddst[0] = dsrc[0]; ddst[1] = dsrc[1];
	dsrc += 2; ddst += dspl;
	ddst[0] = dsrc[0]; ddst[1] = dsrc[1];
	dsrc += 2; ddst += dspl;
	ddst[0] = dsrc[0]; ddst[1] = dsrc[1];
	dsrc += 2; ddst += dspl;
	ddst[0] = dsrc[0]; ddst[1] = dsrc[1];
}

/******************************************************************************
*
* Function:		
*
* Description:	
*
******************************************************************************/

static void blit2_32( byte *src, byte *dst, int spl  )
{
	double *dsrc, *ddst;
	int dspl;

	dsrc = (double *)src;
	ddst = (double *)dst;
	dspl = spl>>3;

	ddst[0] = dsrc[0];
	ddst[dspl] = dsrc[1];
}

/******************************************************************************
*
* Function:		
*
* Description:	
*
******************************************************************************/

static void blitVQQuad32fs( byte **status, unsigned char *data )
{
unsigned short	newd, celdata, code;
unsigned int	index, i;
int		spl;

	newd	= 0;
	celdata = 0;
	index	= 0;
	
        spl = cinTable[currentHandle].samplesPerLine;
        
	do {
		if (!newd) { 
			newd = 7;
			celdata = data[0] + data[1]*256;
			data += 2;
		} else {
			newd--;
		}

		code = (unsigned short)(celdata&0xc000); 
		celdata <<= 2;
		
		switch (code) {
			case	0x8000:													// vq code
				blit8_32( (byte *)&vq8[(*data)*128], status[index], spl );
				data++;
				index += 5;
				break;
			case	0xc000:													// drop
				index++;													// skip 8x8
				for(i=0;i<4;i++) {
					if (!newd) { 
						newd = 7;
						celdata = data[0] + data[1]*256;
						data += 2;
					} else {
						newd--;
					}
						
					code = (unsigned short)(celdata&0xc000); celdata <<= 2; 

					switch (code) {											// code in top two bits of code
						case	0x8000:										// 4x4 vq code
							blit4_32( (byte *)&vq4[(*data)*32], status[index], spl );
							data++;
							break;
						case	0xc000:										// 2x2 vq code
							blit2_32( (byte *)&vq2[(*data)*8], status[index], spl );
							data++;
							blit2_32( (byte *)&vq2[(*data)*8], status[index]+8, spl );
							data++;
							blit2_32( (byte *)&vq2[(*data)*8], status[index]+spl*2, spl );
							data++;
							blit2_32( (byte *)&vq2[(*data)*8], status[index]+spl*2+8, spl );
							data++;
							break;
						case	0x4000:										// motion compensation
							move4_32( status[index] + cin.mcomp[(*data)], status[index], spl );
							data++;
							break;
					}
					index++;
				}
				break;
			case	0x4000:													// motion compensation
				move8_32( status[index] + cin.mcomp[(*data)], status[index], spl );
				data++;
				index += 5;
				break;
			case	0x0000:
				index += 5;
				break;
		}
	} while ( status[index] != NULL );
}

/******************************************************************************
*
* Function:		
*
* Description:	
*
******************************************************************************/

static void ROQ_GenYUVTables( void )
{
	float t_ub,t_vr,t_ug,t_vg;
	long i;

	t_ub = (1.77200f/2.0f) * (float)(1<<6) + 0.5f;
	t_vr = (1.40200f/2.0f) * (float)(1<<6) + 0.5f;
	t_ug = (0.34414f/2.0f) * (float)(1<<6) + 0.5f;
	t_vg = (0.71414f/2.0f) * (float)(1<<6) + 0.5f;
	for(i=0;i<256;i++) {
		float x = (float)(2 * i - 255);
	
		ROQ_UB_tab[i] = (long)( ( t_ub * x) + (1<<5));
		ROQ_VR_tab[i] = (long)( ( t_vr * x) + (1<<5));
		ROQ_UG_tab[i] = (long)( (-t_ug * x)		 );
		ROQ_VG_tab[i] = (long)( (-t_vg * x) + (1<<5));
		ROQ_YY_tab[i] = (long)( (i << 6) | (i >> 2) );
	}
}

#define VQ2TO4(a,b,c,d) { \
    	*c++ = a[0];	\
	*d++ = a[0];	\
	*d++ = a[0];	\
	*c++ = a[1];	\
	*d++ = a[1];	\
	*d++ = a[1];	\
	*c++ = b[0];	\
	*d++ = b[0];	\
	*d++ = b[0];	\
	*c++ = b[1];	\
	*d++ = b[1];	\
	*d++ = b[1];	\
	*d++ = a[0];	\
	*d++ = a[0];	\
	*d++ = a[1];	\
	*d++ = a[1];	\
	*d++ = b[0];	\
	*d++ = b[0];	\
	*d++ = b[1];	\
	*d++ = b[1];	\
	a += 2; b += 2; }
 
#define VQ2TO2(a,b,c,d) { \
	*c++ = *a;	\
	*d++ = *a;	\
	*d++ = *a;	\
	*c++ = *b;	\
	*d++ = *b;	\
	*d++ = *b;	\
	*d++ = *a;	\
	*d++ = *a;	\
	*d++ = *b;	\
	*d++ = *b;	\
	a++; b++; }

/******************************************************************************
*
* Function:		
*
* Description:	
*
******************************************************************************/

static unsigned short yuv_to_rgb( long y, long u, long v )
{ 
	long r,g,b,YY = (long)(ROQ_YY_tab[(y)]);

	r = (YY + ROQ_VR_tab[v]) >> 9;
	g = (YY + ROQ_UG_tab[u] + ROQ_VG_tab[v]) >> 8;
	b = (YY + ROQ_UB_tab[u]) >> 9;
	
	if (r<0) r = 0; if (g<0) g = 0; if (b<0) b = 0;
	if (r > 31) r = 31; if (g > 63) g = 63; if (b > 31) b = 31;

	return (unsigned short)((r<<11)+(g<<5)+(b));
}

/******************************************************************************
*
* Function:		
*
* Description:	
*
******************************************************************************/
#if defined(MACOS_X)

static inline unsigned int yuv_to_rgb24( long y, long u, long v )
{ 
	long r,g,b,YY;
        
        YY = (long)(ROQ_YY_tab[(y)]);

	r = (YY + ROQ_VR_tab[v]) >> 6;
	g = (YY + ROQ_UG_tab[u] + ROQ_VG_tab[v]) >> 6;
	b = (YY + ROQ_UB_tab[u]) >> 6;
	
	if (r<0) r = 0; if (g<0) g = 0; if (b<0) b = 0;
	if (r > 255) r = 255; if (g > 255) g = 255; if (b > 255) b = 255;
	
	return ((r<<24)|(g<<16)|(b<<8))|(255);	//+(255<<24));
}

#else
static unsigned int yuv_to_rgb24( long y, long u, long v )
{ 
	long r,g,b,YY = (long)(ROQ_YY_tab[(y)]);

	r = (YY + ROQ_VR_tab[v]) >> 6;
	g = (YY + ROQ_UG_tab[u] + ROQ_VG_tab[v]) >> 6;
	b = (YY + ROQ_UB_tab[u]) >> 6;
	
	if (r<0) r = 0; if (g<0) g = 0; if (b<0) b = 0;
	if (r > 255) r = 255; if (g > 255) g = 255; if (b > 255) b = 255;
	
	return LittleLong ((r)|(g<<8)|(b<<16)|(255<<24));
}
#endif

/******************************************************************************
*
* Function:		
*
* Description:	
*
******************************************************************************/

static void decodeCodeBook( byte *input, unsigned short roq_flags )
{
	long	i, j, two, four;
	unsigned short	*aptr, *bptr, *cptr, *dptr;
	long	y0,y1,y2,y3,cr,cb;
	byte	*bbptr, *baptr, *bcptr, *bdptr;
	unsigned int *iaptr, *ibptr, *icptr, *idptr;

	if (!roq_flags) {
		two = four = 256;
	} else {
		two  = roq_flags>>8;
		if (!two) two = 256;
		four = roq_flags&0xff;
	}

	four *= 2;

	bptr = (unsigned short *)vq2;

	if (!cinTable[currentHandle].half) {
		if (!cinTable[currentHandle].smootheddouble) {
//
// normal height
//
			if (cinTable[currentHandle].samplesPerPixel==2) {
				for(i=0;i<two;i++) {
					y0 = (long)*input++;
					y1 = (long)*input++;
					y2 = (long)*input++;
					y3 = (long)*input++;
					cr = (long)*input++;
					cb = (long)*input++;
					*bptr++ = yuv_to_rgb( y0, cr, cb );
					*bptr++ = yuv_to_rgb( y1, cr, cb );
					*bptr++ = yuv_to_rgb( y2, cr, cb );
					*bptr++ = yuv_to_rgb( y3, cr, cb );
				}

				cptr = (unsigned short *)vq4;
				dptr = (unsigned short *)vq8;
		
				for(i=0;i<four;i++) {
					aptr = (unsigned short *)vq2 + (*input++)*4;
					bptr = (unsigned short *)vq2 + (*input++)*4;
					for(j=0;j<2;j++)
						VQ2TO4(aptr,bptr,cptr,dptr);
				}
			} else if (cinTable[currentHandle].samplesPerPixel==4) {
				ibptr = (unsigned int *)bptr;
				for(i=0;i<two;i++) {
					y0 = (long)*input++;
					y1 = (long)*input++;
					y2 = (long)*input++;
					y3 = (long)*input++;
					cr = (long)*input++;
					cb = (long)*input++;
					*ibptr++ = yuv_to_rgb24( y0, cr, cb );
					*ibptr++ = yuv_to_rgb24( y1, cr, cb );
					*ibptr++ = yuv_to_rgb24( y2, cr, cb );
					*ibptr++ = yuv_to_rgb24( y3, cr, cb );
				}

				icptr = (unsigned int *)vq4;
				idptr = (unsigned int *)vq8;
	
				for(i=0;i<four;i++) {
					iaptr = (unsigned int *)vq2 + (*input++)*4;
					ibptr = (unsigned int *)vq2 + (*input++)*4;
					for(j=0;j<2;j++) 
						VQ2TO4(iaptr, ibptr, icptr, idptr);
				}
			} else if (cinTable[currentHandle].samplesPerPixel==1) {
				bbptr = (byte *)bptr;
				for(i=0;i<two;i++) {
					*bbptr++ = cinTable[currentHandle].gray[*input++];
					*bbptr++ = cinTable[currentHandle].gray[*input++];
					*bbptr++ = cinTable[currentHandle].gray[*input++];
					*bbptr++ = cinTable[currentHandle].gray[*input]; input +=3;
				}

				bcptr = (byte *)vq4;
				bdptr = (byte *)vq8;
	
				for(i=0;i<four;i++) {
					baptr = (byte *)vq2 + (*input++)*4;
					bbptr = (byte *)vq2 + (*input++)*4;
					for(j=0;j<2;j++) 
						VQ2TO4(baptr,bbptr,bcptr,bdptr);
				}
			}
		} else {
//
// double height, smoothed
//
			if (cinTable[currentHandle].samplesPerPixel==2) {
				for(i=0;i<two;i++) {
					y0 = (long)*input++;
					y1 = (long)*input++;
					y2 = (long)*input++;
					y3 = (long)*input++;
					cr = (long)*input++;
					cb = (long)*input++;
					*bptr++ = yuv_to_rgb( y0, cr, cb );
					*bptr++ = yuv_to_rgb( y1, cr, cb );
					*bptr++ = yuv_to_rgb( ((y0*3)+y2)/4, cr, cb );
					*bptr++ = yuv_to_rgb( ((y1*3)+y3)/4, cr, cb );
					*bptr++ = yuv_to_rgb( (y0+(y2*3))/4, cr, cb );
					*bptr++ = yuv_to_rgb( (y1+(y3*3))/4, cr, cb );
					*bptr++ = yuv_to_rgb( y2, cr, cb );
					*bptr++ = yuv_to_rgb( y3, cr, cb );
				}

				cptr = (unsigned short *)vq4;
				dptr = (unsigned short *)vq8;
		
				for(i=0;i<four;i++) {
					aptr = (unsigned short *)vq2 + (*input++)*8;
					bptr = (unsigned short *)vq2 + (*input++)*8;
					for(j=0;j<2;j++) {
						VQ2TO4(aptr,bptr,cptr,dptr);
						VQ2TO4(aptr,bptr,cptr,dptr);
					}
				}
			} else if (cinTable[currentHandle].samplesPerPixel==4) {
				ibptr = (unsigned int *)bptr;
				for(i=0;i<two;i++) {
					y0 = (long)*input++;
					y1 = (long)*input++;
					y2 = (long)*input++;
					y3 = (long)*input++;
					cr = (long)*input++;
					cb = (long)*input++;
					*ibptr++ = yuv_to_rgb24( y0, cr, cb );
					*ibptr++ = yuv_to_rgb24( y1, cr, cb );
					*ibptr++ = yuv_to_rgb24( ((y0*3)+y2)/4, cr, cb );
					*ibptr++ = yuv_to_rgb24( ((y1*3)+y3)/4, cr, cb );
					*ibptr++ = yuv_to_rgb24( (y0+(y2*3))/4, cr, cb );
					*ibptr++ = yuv_to_rgb24( (y1+(y3*3))/4, cr, cb );
					*ibptr++ = yuv_to_rgb24( y2, cr, cb );
					*ibptr++ = yuv_to_rgb24( y3, cr, cb );
				}

				icptr = (unsigned int *)vq4;
				idptr = (unsigned int *)vq8;
	
				for(i=0;i<four;i++) {
					iaptr = (unsigned int *)vq2 + (*input++)*8;
					ibptr = (unsigned int *)vq2 + (*input++)*8;
					for(j=0;j<2;j++) {
						VQ2TO4(iaptr, ibptr, icptr, idptr);
						VQ2TO4(iaptr, ibptr, icptr, idptr);
					}
				}
			} else if (cinTable[currentHandle].samplesPerPixel==1) {
				bbptr = (byte *)bptr;
				for(i=0;i<two;i++) {
					y0 = (long)*input++;
					y1 = (long)*input++;
					y2 = (long)*input++;
					y3 = (long)*input; input+= 3;
					*bbptr++ = cinTable[currentHandle].gray[y0];
					*bbptr++ = cinTable[currentHandle].gray[y1];
					*bbptr++ = cinTable[currentHandle].gray[((y0*3)+y2)/4];
					*bbptr++ = cinTable[currentHandle].gray[((y1*3)+y3)/4];
					*bbptr++ = cinTable[currentHandle].gray[(y0+(y2*3))/4];
					*bbptr++ = cinTable[currentHandle].gray[(y1+(y3*3))/4];						
					*bbptr++ = cinTable[currentHandle].gray[y2];
					*bbptr++ = cinTable[currentHandle].gray[y3];
				}

				bcptr = (byte *)vq4;
				bdptr = (byte *)vq8;
	
				for(i=0;i<four;i++) {
					baptr = (byte *)vq2 + (*input++)*8;
					bbptr = (byte *)vq2 + (*input++)*8;
					for(j=0;j<2;j++) {
						VQ2TO4(baptr,bbptr,bcptr,bdptr);
						VQ2TO4(baptr,bbptr,bcptr,bdptr);
					}
				}
			}			
		}
	} else {

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲6080在线| 亚洲成av人影院在线观看网| 欧美日韩激情在线| 色欧美乱欧美15图片| 不卡欧美aaaaa| 成人精品小蝌蚪| 国产v综合v亚洲欧| 国产精品123| 成人黄色软件下载| 成人av电影在线观看| 99久久精品一区二区| 一本大道久久a久久精品综合| 99精品视频一区二区三区| 99re66热这里只有精品3直播| 成人激情动漫在线观看| 99久久精品99国产精品| 91啪亚洲精品| 欧美性生活大片视频| 欧美日本一区二区在线观看| 7878成人国产在线观看| 精品国产一区二区三区四区四| 欧美精品一区二区久久婷婷| 国产香蕉久久精品综合网| 国产精品视频九色porn| 亚洲欧洲日产国产综合网| 一区二区三区四区不卡在线| 亚洲成a人片综合在线| 欧美视频一区在线| 国产又黄又大久久| 国产高清精品在线| 水蜜桃久久夜色精品一区的特点| 亚洲精品一二三| 国产精品嫩草影院av蜜臀| 椎名由奈av一区二区三区| 欧美日韩一级片在线观看| 成人美女视频在线看| 色综合久久久久综合99| 亚洲国产sm捆绑调教视频 | 国产视频一区二区在线| 亚洲欧美在线高清| 亚洲成人av免费| 日韩午夜电影在线观看| 2014亚洲片线观看视频免费| 国产精品国模大尺度视频| 亚洲图片有声小说| 国内国产精品久久| 91天堂素人约啪| 91精品国产色综合久久不卡电影| 国产校园另类小说区| 一级女性全黄久久生活片免费| 日本不卡一二三| 成人一区在线看| 8x福利精品第一导航| 欧美极品美女视频| 日韩中文字幕1| 成人av免费观看| 91精品欧美福利在线观看| 国产精品丝袜久久久久久app| 丝袜亚洲另类欧美综合| 成人精品电影在线观看| 日韩亚洲国产中文字幕欧美| 精品成人一区二区三区四区| 国产午夜久久久久| 中文字幕一区二区视频| 天天综合色天天综合| 丁香五精品蜜臀久久久久99网站| 欧美日韩激情在线| 国产精品另类一区| 久久成人18免费观看| 欧美综合在线视频| 国产精品每日更新| 国产制服丝袜一区| 欧美日韩国产a| 亚洲日本在线看| 国产麻豆精品一区二区| 欧美日韩夫妻久久| 亚洲激情六月丁香| 成人精品在线视频观看| 欧美精品一区二区三区蜜臀| 日本中文字幕一区二区视频| 色噜噜狠狠一区二区三区果冻| 久久亚洲春色中文字幕久久久| 欧美亚洲日本一区| 中文字幕一区av| 国内精品国产三级国产a久久| 欧美久久高跟鞋激| 一区二区免费在线播放| 欧美日本视频在线| 国产喂奶挤奶一区二区三区| 日韩av不卡一区二区| 日本高清不卡视频| 亚洲人吸女人奶水| av欧美精品.com| 国产精品你懂的在线| 国产精品一区二区在线看| 欧美本精品男人aⅴ天堂| 日韩成人一级片| 欧美放荡的少妇| 午夜精品在线看| 在线免费一区三区| 一区二区三区美女视频| 色8久久精品久久久久久蜜| 亚洲天堂a在线| 99re66热这里只有精品3直播| 中文字幕一区二区三| 不卡的看片网站| 亚洲欧洲av在线| 成人av在线网站| 国产精品久久久久久妇女6080| 成人小视频免费观看| 国产v综合v亚洲欧| 国产精品美女视频| 99久精品国产| 一区二区三区四区精品在线视频| 在线观看日韩高清av| 亚洲成人激情综合网| 欧美电影在哪看比较好| 日本欧美在线观看| 精品日韩av一区二区| 国产一区二区久久| 亚洲国产精品传媒在线观看| 不卡一区二区在线| 亚洲一区欧美一区| 5858s免费视频成人| 精一区二区三区| 国产午夜亚洲精品不卡| 99re热视频这里只精品| 亚洲一区二区精品视频| 欧美一区二区三区啪啪| 国产激情视频一区二区三区欧美| 国产精品污www在线观看| 一本色道久久综合精品竹菊| 亚洲国产成人va在线观看天堂| 欧美一区二区三区在线观看视频| 国产中文字幕精品| 日韩毛片在线免费观看| 欧美精品v日韩精品v韩国精品v| 美洲天堂一区二卡三卡四卡视频 | 99久久国产免费看| 亚洲高清不卡在线观看| 精品国产一区二区三区av性色 | 日韩欧美123| 国产成人精品免费| 一个色在线综合| 精品三级在线观看| 99精品视频在线播放观看| 亚洲成人你懂的| 欧美经典一区二区三区| 在线观看免费视频综合| 久久精品国产77777蜜臀| 国产精品美女久久久久久久网站| 欧美日韩国产综合久久 | 日韩三级电影网址| 成人a区在线观看| 天堂一区二区在线| 中文字幕av在线一区二区三区| 欧美日韩一区高清| 成人综合在线观看| 日韩av不卡一区二区| 成人免费小视频| 欧美r级电影在线观看| 91色九色蝌蚪| 激情av综合网| 亚洲一二三区在线观看| 久久久亚洲精品石原莉奈| 欧美性欧美巨大黑白大战| 国产在线精品免费av| 亚洲综合色网站| 国产精品麻豆网站| 日韩欧美久久久| 欧美亚日韩国产aⅴ精品中极品| 国产精品综合av一区二区国产馆| 亚洲国产日韩综合久久精品| 中文av一区二区| 日韩免费视频一区二区| 在线观看国产精品网站| 成人激情图片网| 精品亚洲欧美一区| 午夜精品一区二区三区电影天堂| 国产精品理论片在线观看| 精品国产91久久久久久久妲己| 欧美在线一二三四区| 成人性生交大片免费看视频在线| 裸体歌舞表演一区二区| 亚洲地区一二三色| 亚洲欧美一区二区三区久本道91| 久久久久九九视频| 欧美一级久久久| 欧美日韩一级二级三级| 99精品视频中文字幕| 国产不卡视频一区| 国内精品写真在线观看| 蜜臀91精品一区二区三区| 五月激情六月综合| 亚洲国产色一区| 亚洲综合一区二区| 亚洲精品ww久久久久久p站| 亚洲欧洲另类国产综合| 中文字幕在线免费不卡| 国产欧美日韩精品一区|