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

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

?? graphic_loader.c.svn-base

?? sigmadesign smp8623 gui source code ,bingo
?? SVN-BASE
?? 第 1 頁 / 共 4 頁
字號:
		for(i=0 ; i<ptgBitmap->uiDataSize ; i++)		{			ptgBitmap->pData[i] =				((ptgBitmap->pData[i] & (0x3 << 0)) << 6) |				((ptgBitmap->pData[i] & (0x3 << 2)) << 2) |				((ptgBitmap->pData[i] & (0x3 << 4)) >> 2) |				((ptgBitmap->pData[i] & (0x3 << 6)) >> 6);		}		return RM_OK;		break;	case BMP_BPP_4 :		// switch the MSB's and the LSB's of each bytes in a BITMAP's structure data array,		//	cause the graphic accelerator of mambo counts the bits in a byte like this :		//				1 1 1 1 0 0 0 0		//	and the bits in a bitmap are like this :		//				0 0 0 0 1 1 1 1		for(i=0 ; i<ptgBitmap->uiDataSize ; i++)		{			ptgBitmap->pData[i] =				((ptgBitmap->pData[i] & (0xF << 0)) << 4) |				((ptgBitmap->pData[i] & (0xF << 4)) >> 4);		}		return RM_OK;		break;	case BMP_BPP_8 : case BMP_BPP_24 : case 32 :		// no switch needed		return RM_OK;		break;	default :		//fprintf(stderr, "Unknown bpp.\n");		return RM_ERROR;		break;	}}RMbool isPng(RMascii *path){	RMascii buf[PNG_BYTES_TO_CHECK];	FILE *fp;	// Open the prospective PNG file	if ((fp = fopen(path, "rb")) == NULL){		return FALSE;	}	// Read in some of the signature bytes	if (fread(buf, 1, PNG_BYTES_TO_CHECK, fp) != PNG_BYTES_TO_CHECK)      		return FALSE;	// Compare the first PNG_BYTES_TO_CHECK bytes of the signature.      	//	Return nonzero (true) if they match	fclose(fp);	return(!png_sig_cmp(buf, (png_size_t)0, PNG_BYTES_TO_CHECK));}RMstatus load_png(	struct RUA* pRua,	RMbitmapdata *pBmpData,	RMuint32 *bmpsize){	png_structp png_ptr;	png_infop info_ptr;	png_uint_32 width, height;	int bit_depth, color_type, interlace_type;	FILE *fp;	png_bytep *row_pointers;	png_uint_32 row;	int num_palette;	png_colorp pal;	RMuint32 datasize;	RMstatus status;	RMdrawBuffer bmpbuffer;	RMuint8 channels;	RMbool	to32bpp = FALSE;	// used if 24bpp to convert to 32bpp	RMuint32 bufbyte, databyte;	if ((fp = fopen(pBmpData->path, "rb")) == NULL)		return RM_ERROR;	// Create and initialize the png_struct with the desired error handler	// functions.  If you want to use the default stderr and longjump method,	// you can supply NULL for the last three parameters.  We also supply the	// the compiler header file version, so that we know if the application	// was compiled with a compatible version of the library.	png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, NULL, NULL, NULL);	if (png_ptr == NULL){		fclose(fp);		return RM_ERROR;	}	// Allocate/initialize the memory for image information.	info_ptr = png_create_info_struct(png_ptr);	if (info_ptr == NULL){		fclose(fp);		png_destroy_read_struct(&png_ptr, (png_infopp)NULL, (png_infopp)NULL);		return RM_ERROR;	}	// Set error handling if you are using the setjmp/longjmp method (this is	// the normal method of doing things with libpng).  REQUIRED unless you	// set up your own error handlers in the png_create_read_struct() earlier.	if (setjmp(png_jmpbuf(png_ptr))){		// Free all of the memory associated with the png_ptr and info_ptr		png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);		fclose(fp);		// If we get here, we had a problem reading the file		return RM_ERROR;	}	png_init_io(png_ptr, fp);	png_read_info(png_ptr, info_ptr);	// this call prevent us from switching the bit ourselves as before (build 41)	png_set_bgr(png_ptr);	png_get_IHDR(png_ptr, info_ptr, &width, &height, &bit_depth, &color_type,		&interlace_type, NULL, NULL);	// this may be a 3 state button for which only a third of the horizontal size may be displayed	if(height > g_OSDheight){		fprintf(stderr, "GFXLIB: PNG EXCEEDS OSD SURFACE SIZE [%s]\n", pBmpData->path);		// clean up after the read, and free any memory allocated		png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);		// close the file		fclose(fp);		return RM_ERROR;	}//	printf("width = %ld, height = %ld, bpp = %d, color type = %d, interlaced = %d\n",//		width, height, bit_depth, color_type, interlace_type);	if(color_type == PNG_COLOR_TYPE_RGB)		channels = 3;	else if(color_type == PNG_COLOR_TYPE_RGB_ALPHA)		channels = 4;	else if(color_type == PNG_COLOR_TYPE_PALETTE)		channels = 1;	else{		fprintf(stderr, "GFXLIB: UNSUPPORTED PNG [%s]\n", pBmpData->path);		// clean up after the read, and free any memory allocated		png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);		// close the file		fclose(fp);		return RM_ERROR;	}	pBmpData->bmp.uiWidth = width;	pBmpData->bmp.uiHeight = height;	pBmpData->bmp.uiNbBitPerPixel = bit_depth * channels;	pBmpData->bmp.uiWidthLenInBytes = width;	datasize = width * height;	// 24 bit not yet supported and has to be converted to 32 bit	to32bpp = (pBmpData->bmp.uiNbBitPerPixel >= 24);	if(to32bpp){		datasize = 4 * width * height;		pBmpData->bmp.uiWidthLenInBytes = 4 * width;	}	else{		datasize = width * height;		// adjust to 32bit		datasize = datasize + datasize % 4;		pBmpData->bmp.uiWidthLenInBytes = width;	}	*bmpsize = datasize;	status = AllocateBuffer(&bmpbuffer, datasize, FALSE);	if(RMFAILED(status)){		fprintf(stderr, "GFXLIB: NOT ENOUGH DRAM TO ALLOCATE PNG [%s]\n", pBmpData->path);		// clean up after the read, and free any memory allocated		png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);		// close the file		fclose(fp);		return RM_FATALOUTOFMEMORY;	}	pBmpData->pBmpAddr = bmpbuffer.baseAddr;	pBmpData->bmp.pData = bmpbuffer.pMappedAddr;	pBmpData->bmp.uiDataSize = datasize;	RMMemset(pBmpData->bmp.pData, 0xff, pBmpData->bmp.uiDataSize);	png_read_update_info(png_ptr, info_ptr);	row_pointers = png_malloc(png_ptr, sizeof(png_bytep));	RMMemset(row_pointers, 0, sizeof(png_bytep));	row_pointers[0] = png_malloc(png_ptr, png_get_rowbytes(png_ptr, info_ptr));	for (row = 0; row < height; row++){		png_read_row(png_ptr, row_pointers[0], NULL);		if(to32bpp){			if(pBmpData->bmp.uiNbBitPerPixel == 32){			      	RMMemcpy(pBmpData->bmp.pData + row * width * 4, row_pointers[0], width * 4);				// set alpha to 0xff if background				if(pBmpData->isBackground){					for(databyte = 0, bufbyte = 0; databyte < 4 * width; databyte++){						if((databyte + 1) % 4 == 0)							pBmpData->bmp.pData[databyte] = 0xff;					}				}			}			else{	// 24 to 32 bit				for(databyte = 0, bufbyte = 0; databyte < 4 * width; databyte++){					if((databyte + 1) % 4 != 0)						pBmpData->bmp.pData[databyte + row * 4 * width]  = (row_pointers[0])[bufbyte++];				}			}		}		else		      	RMMemcpy(pBmpData->bmp.pData + row * width, row_pointers[0], width);	}	png_read_end(png_ptr, info_ptr);	// read LUT	if(pBmpData->bmp.uiNbBitPerPixel == 8){		num_palette = 256;		pBmpData->bmp.uiPaletteSize = 1024;		png_get_PLTE(png_ptr, info_ptr, &pal, &num_palette);		for(row = 0; row < (png_uint_32)num_palette; row++){			pBmpData->bmp.palette[row].rgbRed = pal[row].red;			pBmpData->bmp.palette[row].rgbGreen = pal[row].green;			pBmpData->bmp.palette[row].rgbBlue = pal[row].blue;		}	}	png_free(png_ptr, row_pointers[0]);	png_free(png_ptr, row_pointers);	// clean up after the read, and free any memory allocated	png_destroy_read_struct(&png_ptr, &info_ptr, (png_infopp)NULL);	// close the file	fclose(fp);	return RM_OK;}RMbool isJpeg(RMascii *path){	RMuint8 buf[JPG_BYTES_TO_CHECK];	FILE *fp;	// Open the prospective JPG file	if ((fp = fopen(path, "rb")) == NULL){		return FALSE;	}	// Read in some of the signature bytes	if (fread(buf, 1, JPG_BYTES_TO_CHECK, fp) != JPG_BYTES_TO_CHECK)      		return FALSE;	fclose(fp);	return (buf[0] == 0xff && buf[1] == 0xd8);}RMstatus load_jpeg(	struct RUA* pRua,	RMbitmapdata *pBmpData,	RMuint32 *bmpsize){	struct jpeg_decompress_struct cinfo;	// decompression params	RMfile		fp;			// source file	JSAMPARRAY 	buffer;			// Output buffer	RMuint32	row_stride;		// physical row width in output buffer	struct my_error_mgr jerr;	RMuint32	row;	RMuint8		bpp;	RMbool		to32bpp = FALSE;	// used if 24bpp to convert to 32bpp	RMuint32	databyte, bufbyte;	RMuint8		temp;	RMuint32	datasize;	RMstatus 	status = RM_OK;	RMdrawBuffer	bmpbuffer;	if((fp = RMOpenFile(pBmpData->path, RM_FILE_OPEN_READ)) == NULL){		fprintf(stderr, "GFXLIB: Cannot open %s\n", pBmpData->path);		return RM_ERROR;	}	// allocate and initialize JPEG decompression object	// set up the normal JPEG error routines, then override error_exit.	cinfo.err = jpeg_std_error(&jerr.pub);	jerr.pub.error_exit = my_error_exit;	// Establish the setjmp return context for my_error_exit to use.	if (setjmp(jerr.setjmp_buffer)) {		jpeg_destroy_decompress(&cinfo);		RMCloseFile(fp);		return RM_ERROR;	}	// initialize the JPEG decompression object.	jpeg_create_decompress(&cinfo);	// specify data source	jpeg_stdio_src_rm_file(&cinfo, fp);	// read file parameters with jpeg_read_header()	jpeg_read_header(&cinfo, TRUE);	// scale to 1/2, 1/4 or 1/8 if image does not fit in osd surface. we'll rescale it to fit later on	if(cinfo.image_width > g_OSDwidth || cinfo.image_height > g_OSDheight){		cinfo.scale_num = 1;		cinfo.scale_denom = calculate_jpeg_denom(cinfo.image_width, cinfo.image_height, g_OSDwidth, g_OSDheight);		if(cinfo.scale_denom == 0){			fprintf(stderr, "GFXLIB: NOT ENOUGH DRAM (%lu, %lu bytes) TO ALLOCATE JPEG [%s]\n", (RMuint32)cinfo.image_width, (RMuint32)cinfo.image_height, pBmpData->path);			// Release JPEG decompression object			jpeg_destroy_decompress(&cinfo);			RMCloseFile(fp);			return RM_FATALOUTOFMEMORY;		}	}	cinfo.dct_method = JDCT_FASTEST;	cinfo.do_fancy_upsampling = FALSE;	// Start decompressor	jpeg_start_decompress(&cinfo);	row_stride = cinfo.output_width * cinfo.output_components;	bpp = cinfo.num_components * 8;	pBmpData->bmp.uiWidth = cinfo.output_width;	pBmpData->bmp.uiHeight = cinfo.output_height;	pBmpData->bmp.uiNbBitPerPixel = bpp;	// convert to 32 bit data if 24 bit	to32bpp = (bpp == 24);	if(to32bpp){		datasize = 4 * cinfo.output_width * cinfo.output_height;		pBmpData->bmp.uiWidthLenInBytes = 4 * cinfo.output_width;	}	else{		datasize = row_stride * cinfo.output_height;		// adjust to 32bit		datasize = datasize + datasize % 4;		pBmpData->bmp.uiWidthLenInBytes = row_stride;	}	if(pBmpData->pBmpAddr == 0){		*bmpsize = datasize;		status = AllocateBuffer(&bmpbuffer, datasize, FALSE);		if(RMFAILED(status)){			fprintf(stderr, "GFXLIB: NOT ENOUGH DRAM (%lu bytes)TO ALLOCATE JPEG [%s]\n", datasize, pBmpData->path);			// Release JPEG decompression object			jpeg_destroy_decompress(&cinfo);			RMCloseFile(fp);			return RM_FATALOUTOFMEMORY;		}		pBmpData->pBmpAddr = bmpbuffer.baseAddr;		pBmpData->bmp.pData = bmpbuffer.pMappedAddr;	}	pBmpData->bmp.uiDataSize = datasize;	RMMemset(pBmpData->bmp.pData, 0xff, pBmpData->bmp.uiDataSize);	// Make a one-row-high sample array that will go away when done with image -- handled by libjpeg	buffer = (*cinfo.mem->alloc_sarray) ((j_common_ptr) &cinfo, JPOOL_IMAGE, row_stride, 1);	// copy rows	for (row = 0; row < cinfo.output_height; row++){		jpeg_read_scanlines(&cinfo, buffer, 1);		if(cinfo.jpeg_color_space != JCS_GRAYSCALE){			// reverse row (gbr -> rgb)			for(bufbyte = 0; bufbyte < row_stride; ){				temp = (*buffer)[bufbyte];				(*buffer)[bufbyte] = (*buffer)[bufbyte + 2];				(*buffer)[bufbyte + 2] = temp;				bufbyte += 3;			}		}		temp = 0;		if(to32bpp){			for(databyte = 0, bufbyte = 0; databyte < 4 * cinfo.output_width; databyte++){				if((databyte + 1) % 4 != 0)					pBmpData->bmp.pData[databyte + row * 4 * cinfo.output_width]  = (*buffer)[bufbyte++];			}		}		else{			RMMemcpy(pBmpData->bmp.pData + row * row_stride, *buffer, row_stride);			// set alpha to 0xff if background			if(pBmpData->isBackground){				for(databyte = 0, bufbyte = 0; databyte < 4 * cinfo.output_width; databyte++){					if((databyte + 1) % 4 == 0)						pBmpData->bmp.pData[databyte] = 0xff;				}			}		}	}	// set LUT	if(cinfo.jpeg_color_space == JCS_GRAYSCALE && bpp == 8){		pBmpData->bmp.uiPaletteSize = 1024;		for(row = 0; row < 256; row++){			pBmpData->bmp.palette[row].rgbRed = row;			pBmpData->bmp.palette[row].rgbGreen = row;			pBmpData->bmp.palette[row].rgbBlue = row;		}	}	// Finish decompression	jpeg_finish_decompress(&cinfo);	// Release JPEG decompression object	jpeg_destroy_decompress(&cinfo);	RMCloseFile(fp);	return RM_OK;}RMstatus load_gif(	struct RUA* pRua,	RMbitmapdata *pBmpData,	RMuint32 *bmpsize){	RMuint32 datasize;	RMstatus status;	RMuint16 width, height;	GifFileType *gif_hdr;	RMdrawBuffer	bmpbuffer;	RMuint16 row, column, i, j;	GifRecordType rtype;	gif_hdr = DGifOpenFileName(pBmpData->path);	if(gif_hdr == NULL)		return RM_ERROR;	width = gif_hdr->SWidth;	height = gif_hdr->SHeight;	if(width > g_OSDwidth || height > g_OSDheight){		fprintf(stderr, "GFXLIB: GIF EXCEEDS OSD SURFACE SIZE [%s]\n", pBmpData->path);		// clean up after the read, and free any memory allocated		DGifCloseFile(gif_hdr);		return RM_ERROR;	}//	printf("width = %ld, height = %ld, bpp = %d, color type = %d, interlaced = %d\n",//		width, height, bit_depth, color_type, interlace_type);	pBmpData->bmp.uiWidth = width;	pBmpData->bmp.uiHeight = height;	pBmpData->bmp.uiNbBitPerPixel = (RMuint8) gif_hdr->SColorResolution;	pBmpData->bmp.uiWidthLenInBytes = width;	datasize = width * height;	// adjust to 32bit	datasize = datasize + datasize % 4;	*bmpsize = datasize;	status = AllocateBuffer(&bmpbuffer, datasize, FALSE);	if(RMFAILED(status)){		fprintf(stderr, "GFXLIB: NOT ENOUGH DRAM TO ALLOCATE GIF [%s]\n", pBmpData->path);		// clean up after the read, and free any memory allocated		DGifCloseFile(gif_hdr);		return RM_FATALOUTOFMEMORY;	}	pBmpData->pBmpAddr = bmpbuffer.baseAddr;	pBmpData->bmp.pData = bmpbuffer.pMappedAddr;	pBmpData->bmp.uiDataSize = datasize;	RMMemset(pBmpData->bmp.pData, 0xff, pBmpData->bmp.uiDataSize);	// read image record type	rtype = UNDEFINED_RECORD_TYPE;	DGifGetRecordType(gif_hdr, &rtype);	while(rtype != IMAGE_DESC_RECORD_TYPE){		DGifGetRecordType(gif_hdr, &rtype);	}	// read image data	if(DGifGetImageDesc(gif_hdr) == GIF_ERROR){		DGifCloseFile(gif_hdr);		return RM_ERROR;	}	row = gif_hdr->Image.Top;	column = gif_hdr->Image.Left;	if(gif_hdr->Image.Interlace){		for(i = 0;  i < 4;  ++i) {			for (j = row + interlacedOffset[i]; j < row + height;  j+= interlacedJumps[i]){	                   	if(DGifGetLine(gif_hdr, pBmpData->bmp.pData + (j * width), width ) == GIF_ERROR){					DGifCloseFile(gif_hdr);					return RM_ERROR;				}			}		 }	}	else{		for(j = 0;  j < height;  j++) {			if(DGifGetLine(gif_hdr, pBmpData->bmp.pData + (j * width), width ) == GIF_ERROR){				DGifCloseFile(gif_hdr);				return RM_ERROR;			}		}	}	// read LUT	if(pBmpData->bmp.uiNbBitPerPixel == 8 && gif_hdr->SColorMap != NULL){		pBmpData->bmp.uiPaletteSize = 1024;		for(row = 0; row < 256; row++){			pBmpData->bmp.palette[row].rgbRed = gif_hdr->SColorMap->Colors[row].Red;			pBmpData->bmp.palette[row].rgbGreen = gif_hdr->SColorMap->Colors[row].Green;			pBmpData->bmp.palette[row].rgbBlue = gif_hdr->SColorMap->Colors[row].Blue;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
美国十次了思思久久精品导航| 老鸭窝一区二区久久精品| 亚洲国产一区二区在线播放| 精品一区二区三区在线播放| 一本色道亚洲精品aⅴ| 精品国产91洋老外米糕| 亚洲国产欧美在线人成| av成人老司机| 精品国内片67194| 性久久久久久久久久久久| 成人av先锋影音| 久久久亚洲国产美女国产盗摄| 一区二区三区在线视频观看| 成人激情av网| 久久久久久久久久久久久久久99 | 成人高清视频在线| 精品久久久久久久人人人人传媒 | 日本精品视频一区二区| 国产亚洲欧美色| 麻豆国产欧美日韩综合精品二区| 欧美性欧美巨大黑白大战| 亚洲三级在线免费| 成人爱爱电影网址| 久久九九久久九九| 国产美女在线观看一区| 精品国产一区二区三区久久久蜜月| 亚洲成人免费视| 欧美午夜一区二区三区免费大片| 一区二区三区欧美| 色综合久久综合网欧美综合网 | 91伊人久久大香线蕉| 中文字幕欧美日本乱码一线二线| 国产成人精品免费网站| 欧美激情一区二区在线| a4yy欧美一区二区三区| 亚洲视频 欧洲视频| 一本一道综合狠狠老| 尤物在线观看一区| 91传媒视频在线播放| 亚洲一卡二卡三卡四卡五卡| 欧美中文字幕亚洲一区二区va在线| 一区二区三区在线观看视频 | 日韩激情一二三区| 欧美一区二区三区白人| 精品一区二区三区蜜桃| 久久久www成人免费无遮挡大片| 国产一区二区三区不卡在线观看| 337p日本欧洲亚洲大胆精品| 国产高清精品久久久久| 亚洲欧美偷拍另类a∨色屁股| 91黄色免费网站| 免费欧美日韩国产三级电影| 久久久久久久一区| 91丝袜高跟美女视频| 香蕉成人伊视频在线观看| 91精品国产综合久久久久久久久久 | 精品视频在线免费看| 偷窥少妇高潮呻吟av久久免费| 欧美一卡二卡在线观看| 国产精品99久久久| 亚洲视频在线一区二区| 正在播放一区二区| 国产91丝袜在线播放0| 一区二区在线观看不卡| 日韩精品综合一本久道在线视频| 国产一区二区三区观看| 亚洲影院在线观看| 久久影院视频免费| 一本色道久久综合亚洲aⅴ蜜桃| 日韩高清国产一区在线| 国产日韩精品一区二区浪潮av| 在线观看亚洲专区| 国产一区二区伦理| 亚洲你懂的在线视频| 日韩一级片网址| 一本大道av一区二区在线播放 | 亚洲一二三区不卡| 26uuu色噜噜精品一区二区| 色婷婷综合久久久久中文一区二区| 奇米影视在线99精品| ㊣最新国产の精品bt伙计久久| 日韩视频在线一区二区| 91麻豆高清视频| 国产精品亚洲视频| 日韩avvvv在线播放| 亚洲欧美日韩电影| 国产亚洲福利社区一区| 欧美岛国在线观看| 欧美精品v国产精品v日韩精品| 国产91精品一区二区麻豆网站| 午夜国产不卡在线观看视频| 亚洲欧美在线aaa| 久久久久久久综合色一本| 欧美一级欧美三级| 欧美日韩免费观看一区二区三区| 成人av高清在线| 国产一区二区在线看| 日本中文字幕一区二区视频 | 88在线观看91蜜桃国自产| a级精品国产片在线观看| 麻豆成人在线观看| 亚洲午夜av在线| 亚洲一区二区三区四区五区中文 | 精品一区二区三区蜜桃| 日本欧美大码aⅴ在线播放| 亚洲精品成人天堂一二三| 中文字幕一区二区三区在线播放| 国产午夜精品一区二区三区四区| 日韩精品一区二区三区四区视频| 欧美美女一区二区| 欧美日韩国产系列| 欧美人xxxx| 欧美日韩国产首页| 欧美日本国产视频| 69堂亚洲精品首页| 日韩欧美国产一区二区三区 | 国产成都精品91一区二区三| 久草这里只有精品视频| 麻豆国产一区二区| 国产精品综合二区| av一二三不卡影片| 91国在线观看| 欧美片网站yy| 日韩一级片网站| 久久综合久久99| 国产肉丝袜一区二区| 国产精品久久久久7777按摩| 自拍视频在线观看一区二区| 亚洲一区在线电影| 美女视频免费一区| 国产精品自拍一区| 9人人澡人人爽人人精品| 色婷婷激情一区二区三区| 欧美男生操女生| 久久久精品免费网站| 国产精品国产馆在线真实露脸 | 最近日韩中文字幕| 一区二区三区精品在线观看| 亚洲国产成人av网| 精品一区二区三区视频在线观看| 成人一区二区三区视频| 一本一道久久a久久精品| 91精品国产91综合久久蜜臀| 久久久久久久网| 亚洲激情一二三区| 老汉av免费一区二区三区| 国产福利精品导航| 欧美三级日韩在线| 国产欧美一区二区精品性| 亚洲最大的成人av| 韩国女主播一区| 色94色欧美sute亚洲线路二 | 国产成人综合视频| 91福利资源站| 久久久精品国产99久久精品芒果| 亚洲欧美日韩国产成人精品影院 | 国产农村妇女毛片精品久久麻豆| 一区二区三区中文免费| 另类人妖一区二区av| 91麻豆国产自产在线观看| 欧美成人女星排名| 亚洲精品成a人| 高清国产一区二区| 日韩亚洲欧美高清| 亚洲尤物视频在线| 成人久久视频在线观看| 日韩视频在线你懂得| 亚洲精品免费看| 国产一区二区在线观看视频| 欧美午夜免费电影| 中文字幕一区二区三区在线播放| 久久99精品久久久久久国产越南| 色88888久久久久久影院按摩 | 精品国产免费一区二区三区四区| 亚洲三级久久久| 岛国精品在线观看| 欧美大片日本大片免费观看| 亚洲国产视频网站| 99re视频这里只有精品| 国产欧美日产一区| 狠狠色丁香婷综合久久| 日韩三级视频在线观看| 亚洲香蕉伊在人在线观| 97久久久精品综合88久久| 中文欧美字幕免费| 国产激情视频一区二区在线观看 | 丰满白嫩尤物一区二区| 欧美成人猛片aaaaaaa| 日韩制服丝袜先锋影音| 欧美三级中文字幕在线观看| 亚洲精品自拍动漫在线| 99久久伊人精品| 亚洲人123区| av不卡免费电影| 国产精品夫妻自拍| 97se亚洲国产综合自在线 | 91福利在线导航| 亚洲精品免费在线| 欧美日韩视频在线一区二区| 亚洲午夜一区二区三区|