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

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

?? lcd.c

?? 該文件為一個嵌入式GUI圖形庫源碼
?? C
字號:
/*
 *  LCD Driver for M68VZ328
 *
 *
 *  COPYRIGHT (c) 2001 - 2010.
 *  emTech System Corporation.
 *
 *  The license and distribution terms for this file may be
 *  found in found in the file LICENSE.
 */

/*	Huangf emcore@263.net
 */
 
/* LCD screen routine for M68VZ328  */
unsigned short *lcd_base = 0;
unsigned short lcd_vpw = 0;		/* count in 16 bits byte, 
								 * for 1 bit mode, it is equal to width/16, 
								 * for 2 bit mode, it is equal to width/8,
								 * for 4 bit mode, it is equal to width/4
								 */
unsigned short 	lcd_xmax = 0;
unsigned short 	lcd_ymax = 0;
unsigned long	_LCD_START_ADDR = 0;		
#define LCD_CURSOR_MODE(x)		(((x) & 0x0c000) >> 14)
#define LCD_CURSOR_WIDTH(x)		(((x) >> 8) & 0x1f)
#define LCD_CURSOR_HEIGHT(x)	((x) & 0x1f)
#define LCD_CURSOR_BLINK_ENABLED(x)	((x) & 0x80)
unsigned short lcd_cursor_x = 0;
unsigned short lcd_cursor_y = 0;
unsigned short lcd_cursor_wh = 0;
unsigned char lcd_cursor_blink = 0;

#define LSSA	*(unsigned long *)0xFFFFFA00
#define LVPW	*(unsigned char *)0xFFFFFA05
#define LXMAX	*(unsigned short *)0xFFFFFA08
#define LYMAX	*(unsigned short *)0xFFFFFA0A
#define LCXP	*(unsigned short *)0xFFFFFA18
#define LCYP	*(unsigned short *)0xFFFFFA1A
#define LCWCH	*(unsigned short *)0xFFFFFA1C
#define LBLCK	*(unsigned char *)0xFFFFFA1F
#define LPICF	*(unsigned char *)0xFFFFFA20
#define LPOLCF	*(unsigned char *)0xFFFFFA21
#define LACDRC	*(unsigned char *)0xFFFFFA23
#define LPXCD	*(unsigned char *)0xFFFFFA25
#define LCKCON	*(unsigned char *)0xFFFFFA27
#define LRRA	*(unsigned short *)0xFFFFFA28
#define LPOSR	*(unsigned char *)0xFFFFFA2D
#define LGPMR	*(unsigned char *)0xFFFFFA33
#define PWMR	*(unsigned short *)0xFFFFFA36
#define RMCR	*(unsigned char *)0xFFFFFA38
#define DMACR	*(unsigned char *)0xFFFFFA39

unsigned short lcd_pixel_mask_1bit[16] = {0x7fff, 0xbfff, 0xdfff, 0xefff, 0xf7ff, 0xfbff, 0xfdff, 0xfeff, 0xff7f, 0xffbf, 0xffdf, 0xffef, 0xfff7, 0xfffb, 0xfffd, 0xfffe};
unsigned short lcd_pixel_mask_2bit[8] = {0x3fff, 0xcfff, 0xf3ff, 0xfcff, 0xff3f, 0xffcf, 0xfff3, 0xfffc};
unsigned short lcd_pixel_mask_4bit[4] = {0x0fff, 0xf0ff, 0xff0f, 0xfff0};
unsigned short *lcd_pixel_mask = lcd_pixel_mask_1bit;

unsigned char lcd_pixel_shift_1bit[16] = {0x0F, 0x0E, 0x0D, 0x0C, 0x0B, 0x0A, 0x09, 0x08, 0x7, 0x06, 0x05, 0x04, 0x03, 0x02, 0x01, 0x00};
unsigned char lcd_pixel_shift_2bit[8] = {0x0E, 0x0C, 0x0A, 0x08, 0x06, 0x04, 0x02, 0x00};
unsigned char lcd_pixel_shift_4bit[4] = {0x0C, 0x08, 0x04, 0x00};
unsigned char *lcd_pixel_shift = lcd_pixel_shift_1bit;

unsigned short lcd_color_fullword_1bit[2] = {0x0, 0xffff};
unsigned short lcd_color_fullword_2bit[4] = {0x0, 0x5555, 0xaaaa, 0xffff};
unsigned short lcd_color_fullword_4bit[16] = {0x0, 0x1111, 0x2222, 0x3333, 0x4444, 0x5555, 0x6666, 0x7777, 0x8888, 0x9999, 0xaaaa, 0xbbbb, 0xcccc, 0xdddd, 0xeeee, 0xffff};
unsigned short *lcd_color_fullword = lcd_color_fullword_1bit;

unsigned char lcd_pixel_color_mask_[3] = {0x01, 0x03, 0x0f};
unsigned char lcd_pixel_color_mask = 0x01;

unsigned char lcd_offset_shift_[3] = {0x04, 0x03, 0x02};	/* /16, /8, /4 */
unsigned char lcd_offset_shift = 0x04;

unsigned char lcd_color_shift_[3] = {0x03, 0x02, 0x0};
unsigned char lcd_color_shift = 0x07;

unsigned char lcd_bits_per_pixel = 1;

#define LCD_PBUS_SIZE		0x02		/* 4 bit panel bus *//* 0x03 for 8 bits panel bus */

int SysPixelPerByte()
{
	return 8 / lcd_bits_per_pixel;
}

int SysBytesPerScreen()
{
	return (lcd_xmax * lcd_ymax) / SysPixelPerByte();
}

int _lcd_calcmemgcsize(
	int l,
	int t,
	int r,
	int b
)
{
	int w, h;

	h = b - t + 1;

	l = l / SysPixelPerByte();
	r = (r + SysPixelPerByte() - 1) / SysPixelPerByte();

	w = r - l;
	
	return (w * h);
}

void _lcd_savescreen(
	unsigned char *base,
	unsigned char *dst,
	int	 l,
	int	 t,
	int	 r,
	int  b
)
{
	int w, h;
	int pos;

	pos = (short)t * (short)lcd_vpw * 2;
	
	l = l / SysPixelPerByte();
	r = (r + SysPixelPerByte() - 1) / SysPixelPerByte();

	w = r - l;
	
	pos += l;
	
	for (h = t; h <= b; h++){
		memcpy(dst, base + pos, w);
		dst += w;
		pos += (lcd_vpw * 2);
	}
}

void _lcd_restorescreen(
	unsigned char *base,
	unsigned char *dst,
	int	 l,
	int	 t,
	int	 r,
	int  b
)
{
	int w, h;
	int pos;

	pos = (short)t * (short)lcd_vpw * 2;
	
	l = l / SysPixelPerByte();
	r = (r + SysPixelPerByte() - 1) / SysPixelPerByte();

	w = r - l;
	
	pos += l;
	
	for (h = t; h <= b; h++){
		memcpy(base + pos, dst, w);
		dst += w;
		pos += (lcd_vpw * 2);
	}
}

/* it is very difficult to setup LCD, this function using many default parameters to setup LCD,
 * so only a few parameters needed for setup LCD here
 */
int lcd_setup(unsigned long start_addr, unsigned short width, unsigned short xmax, unsigned short ymax, unsigned short bits_per_pixel)
{
	/* disable LCD first */
	LCKCON = 0x00;

	lcd_xmax = xmax;
	lcd_ymax = ymax;
	
	/* setup LSSA */
	LSSA = start_addr;
	{
		unsigned char *base = (unsigned char *)start_addr;
		int i;
		for (i = 0; i < width * ymax; i++){
			*base++ = 0xff;
		}
	}

	_LCD_START_ADDR = start_addr;
	LXMAX = xmax;
	LYMAX = ymax - 1;
	
	switch(bits_per_pixel){
		case 1:
			LVPW = width / 16;
			LPICF = (LCD_PBUS_SIZE << 2);
			break;
		case 2:
			LVPW = width / 8;
			LPICF = (LCD_PBUS_SIZE << 2) + 0x01;
			break;
		case 4:
			LVPW = width / 4;
			LPICF = (LCD_PBUS_SIZE << 2) + 0x10;
			break;
		default:
			LVPW = width / 16;
			LPICF = (LCD_PBUS_SIZE << 2);
	}
	
	LPOLCF = 0x01;
	LACDRC = 0x00;
	LPXCD = 0x02;
	LRRA = 0x14;
	LPOSR = 0x00;
	
	/* Enable LCD */
	LCKCON = 0x00;
	LCKCON = 0x80;
	
	return 0;
}

void _lcd_switchbase(
	void *base
)
{
	lcd_base = base;
	/* setup LSSA */
	LSSA = (unsigned long)base;
}

int lcd_getdisplay()
{
	lcd_base = 	(unsigned short *)LSSA;
	lcd_vpw = LVPW;
	
	{
		unsigned char lpicf = LPICF;
		
			
		switch(lpicf & 0x03){
			case 0:
				lcd_pixel_mask = lcd_pixel_mask_1bit;
				lcd_pixel_shift = lcd_pixel_shift_1bit;
				lcd_pixel_color_mask = lcd_pixel_color_mask_[0];
				lcd_offset_shift = lcd_offset_shift_[0];
				lcd_color_shift = lcd_color_shift_[0];
				lcd_color_fullword = lcd_color_fullword_1bit;
				lcd_bits_per_pixel = 1;
				break;
				
			case 1:
				lcd_pixel_mask = lcd_pixel_mask_2bit;
				lcd_pixel_shift = lcd_pixel_shift_2bit;
				lcd_pixel_color_mask = lcd_pixel_color_mask_[1];
				lcd_offset_shift = lcd_offset_shift_[1];
				lcd_color_shift = lcd_color_shift_[1];
				lcd_color_fullword = lcd_color_fullword_2bit;
				lcd_bits_per_pixel = 2;
				break;

			case 2:
				lcd_pixel_mask = lcd_pixel_mask_4bit;
				lcd_pixel_shift = lcd_pixel_shift_4bit;
				lcd_pixel_color_mask = lcd_pixel_color_mask_[2];
				lcd_offset_shift = lcd_offset_shift_[2];
				lcd_color_shift = lcd_color_shift_[2];
				lcd_color_fullword = lcd_color_fullword_4bit;
				lcd_bits_per_pixel = 4;
				break;
				
			default:
				lcd_pixel_mask = lcd_pixel_mask_1bit;
				lcd_pixel_shift = lcd_pixel_shift_1bit;
				lcd_pixel_color_mask = lcd_pixel_color_mask_[0];
				lcd_offset_shift = lcd_offset_shift_[0];
				lcd_color_shift = lcd_color_shift_[0];
				lcd_color_fullword = lcd_color_fullword_1bit;
				lcd_bits_per_pixel = 1;
		}
	}
	
	return 0;
}

int lcd_getx()
{
	return LXMAX;
}

int lcd_gety()
{
	return LYMAX;
}

int lcd_getvx()
{
	return lcd_getx();
}

int _lcd_putpixel(unsigned short *_base, short x, short y, unsigned char c, int xorm)
{
	unsigned short oldc;
	int pos = (short)y * (short)lcd_vpw;
	pos += (x >> lcd_offset_shift);
	
	x -= ((x >> lcd_offset_shift) << lcd_offset_shift);	/* bits in current bytes */

	/* inverse color */
	/* c = 15 - c; */
	
	oldc = _base[pos];
	if (xorm){		/* usinf XOR mode */
		oldc ^= ((c >> lcd_color_shift) << lcd_pixel_shift[x]);
	}
	else{
		oldc &= lcd_pixel_mask[x];
		oldc |= ((c >> lcd_color_shift) << lcd_pixel_shift[x]);
	}
	_base[pos] = oldc;
	
	return 0;
}

int lcd_putpixel(short x, short y, unsigned char c, int xorm)
{
	return _lcd_putpixel(
		lcd_base,
		x,
		y,
		c,
		xorm
	);
}
	
int _lcd_getpixel(unsigned short *_base, short x, short y)
{
	unsigned short oldc;
	int pos = (short)y * (short)lcd_vpw;
	pos += (x >> lcd_offset_shift);
	
	x -= ((x >> lcd_offset_shift) << lcd_offset_shift);	/* bits in current bytes */
	
	oldc = _base[pos];
	oldc >>= lcd_pixel_shift[x];
	oldc &= lcd_pixel_color_mask;

	/* inverse color */
	return oldc;
}

int lcd_getpixel(
	short x, 
	short y
)
{
	return _lcd_getpixel(
		lcd_base,
		x,
		y
	);
}


/*	quick method for drawing bitmap
 */
int _lcd_bitmap(unsigned short *_base, short x0, short y0, short width, short height, unsigned char *pcc, int xorm)
{
  unsigned char *src  = pcc;
  unsigned char *dst  = (unsigned char *)(_base + y0 * lcd_vpw);  
  unsigned short leng = (width + 31) >> 5;
  unsigned short len  = ((width) >> 3);
  int i, j;
  
  dst += (x0 >> (lcd_offset_shift - 1));
  leng <<= 2;

  src += leng * (height - 1);
  for (i = 0; i < height; i++){
    
    for (j = 0; j < len; j++){
      dst[j] = src[j];
    }
    dst += (lcd_vpw * 2);
    src -= leng;
  }
  return 0;    
}

int lcd_bitmap(
	short x0, 
	short y0, 
	short width, 
	short height, 
	unsigned char *pcc, 
	int xorm
)
{
	return _lcd_bitmap(
		lcd_base,
		x0,
		y0,
		width,
		height,
		pcc,
		xorm
	);
}	
/* quick method for hline */
int _lcd_hline(unsigned short *_base, short x1, short y, short x2, unsigned char c, int xorm)
{
	/* a very slow version */
	int count;
	unsigned short oldc;
	int pos = (short)y * (short)lcd_vpw;
	int pixels_per_word = 1 << lcd_offset_shift;

	/* inverse */
	/* c = 15 - c; */
	
	if (x2 < x1){
		int t = x2;
		x2 = x1;
		x1 = t;
	}
	
	count = x2 - x1;
	
	pos += (x1 >> lcd_offset_shift);
	
	x1 -= ((x1 >> lcd_offset_shift) << lcd_offset_shift);	/* bits in current bytes */
	if (x1){
		/* first part */
		oldc = _base[pos];
		while((x1 < pixels_per_word) && (count > 0)){
			if (xorm){		/* usinf XOR mode */
				oldc ^= ((c >> lcd_color_shift) << lcd_pixel_shift[x1]);
			}
			else{
				oldc &= lcd_pixel_mask[x1];
				oldc |= ((c >> lcd_color_shift) << lcd_pixel_shift[x1]);
			}
			x1++;
			count--;
		}
		_base[pos++] = oldc;
	}
	
	while(count >= pixels_per_word){
		oldc = _base[pos];
		if(xorm){
			oldc ^= lcd_color_fullword[c >> lcd_color_shift];
		}
		else{
			oldc = lcd_color_fullword[c >> lcd_color_shift];
		}
		count -= pixels_per_word;
		_base[pos++] = oldc;
	}
	
	oldc = _base[pos];
	x1 = 0;
	while(count > 0){
		if (xorm){		/* usinf XOR mode */
			oldc ^= ((c >> lcd_color_shift) << lcd_pixel_shift[x1]);
		}
		else{
			oldc &= lcd_pixel_mask[x1];
			oldc |= ((c >> lcd_color_shift) << lcd_pixel_shift[x1]);
		}
		x1++;
		count--;
	}
	_base[pos] = oldc;
	
	return 0;
/*	
		
	for (i = x1; i <= x2; i++){
		lcd_putpixel(i, y, c, xorm);
	}
	
	return 0;
*/	
}

int lcd_hline(
	short x1, 
	short y, 
	short x2, 
	unsigned char c, 
	int xorm
)
{
	return _lcd_hline(
		lcd_base,
		x1,
		y,
		x2,
		c,
		xorm
	);
}

/* quick method for vline */
int _lcd_vline(unsigned short *_base, short x, short y1, short y2, unsigned char c, int xorm)
{
	/* a very slow version */
	int i;
	int pos;
	unsigned short oldc, color;
	if (y2 < y1){
		int t = y2;
		y2 = y1;
		y1 = t;
	}

	/* inverse color */
	/* c = 15 - c; */
	
	pos = (short)y1 * (short)lcd_vpw;
	pos += (x >> lcd_offset_shift);
	x -= ((x >> lcd_offset_shift) << lcd_offset_shift);	/* bits in current bytes */
	
	color = ((c >> lcd_color_shift) << lcd_pixel_shift[x]);
	for (i = y1; i <= y2; i++){
		oldc = _base[pos];
		if (xorm){		/* usinf XOR mode */
			oldc ^= color;
		}
		else{
			oldc &= lcd_pixel_mask[x];
			oldc |= color;
		}
		_base[pos] = oldc;
		pos += lcd_vpw;
	}
	
	return 0;
}

int lcd_vline(
	short x, 
	short y1, 
	short y2, 
	unsigned char c, 
	int xorm
)
{
	return _lcd_vline(
		lcd_base,
		x,
		y1,
		y2,
		c,
		xorm
	);
}

int _lcd_fillrect(unsigned short *_base, short x1, short y1, short x2, short y2, int c)
{
	
	int y;
	
	if (x2 < x1){
		int t = x2;
		x2 = x1;
		x1 = t;
	}
	
	if (y2 < y1){
		int t = y2;
		y2 = y1;
		y1 = t;
	}
	
	for (y = y1; y <= y2; y++){
		_lcd_hline(
			_base,
			x1, 
			y, 
			x2, 
			c, 
			0
		);
	}
	
	return 0;
}

int lcd_fillrect(short x1, short y1, short x2, short y2, int c)
{
	return _lcd_fillrect(
		lcd_base,
		x1,
		y1,
		x2,
		y2,
		c
	);
}
#if 0
int __main()
{
	return 0;
}	

main()
{
	lcd_setup(0x200000, 160, 160, 240, 2);
	lcd_getdisplay();
	
	lcd_fillrect(0, 0, 159, 9, 0);
	
	lcd_hline(0, 10, 120, 0, 0);
	
	lcd_putpixel(0, 100, 1, 0);
}
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩精彩视频在线观看| 亚洲成人自拍一区| 欧美成人aa大片| 自拍偷在线精品自拍偷无码专区 | 人人精品人人爱| 午夜精品免费在线观看| 午夜精品免费在线观看| 日本视频免费一区| 免费观看日韩av| 国产成人午夜99999| 成人中文字幕电影| 色欧美片视频在线观看| 日本高清视频一区二区| 在线观看日韩电影| 欧美日本乱大交xxxxx| 日韩一级欧美一级| 国产精品美女久久久久久久久 | 天天综合色天天| 免费成人在线网站| 成人免费毛片高清视频| 99视频有精品| 欧美日韩中文另类| 精品欧美一区二区三区精品久久| 久久久亚洲午夜电影| 国产精品麻豆一区二区| 亚洲国产精品一区二区尤物区| 日韩av一区二区在线影视| 国产一区二区在线观看视频| k8久久久一区二区三区| 欧美日韩电影在线播放| 久久嫩草精品久久久精品一| 日韩一区有码在线| 麻豆精品新av中文字幕| 99精品视频在线免费观看| 91精品国产综合久久香蕉的特点 | 蜜桃视频在线观看一区二区| 国产河南妇女毛片精品久久久| 91美女片黄在线| 精品国产乱码久久久久久久久| 成人免费一区二区三区在线观看| a亚洲天堂av| 欧美一区在线视频| 亚洲日本一区二区| 国产精品一区二区你懂的| 欧美三级蜜桃2在线观看| 久久久99久久| 日韩电影在线免费观看| 91在线一区二区| 国产午夜精品理论片a级大结局| 亚洲午夜激情av| 99久久精品国产麻豆演员表| 精品国产百合女同互慰| 亚洲成av人片在线观看| www.在线欧美| 国产精品久久久99| 国产精品主播直播| 精品日韩一区二区三区免费视频| 天天av天天翘天天综合网| 色先锋aa成人| √…a在线天堂一区| 成人性生交大合| 国产欧美综合在线| 国产一区二区三区在线观看免费| 亚洲婷婷在线视频| 福利一区福利二区| 欧美一区二区美女| 青青草一区二区三区| 欧美日韩黄视频| 亚洲国产日韩综合久久精品| 91极品视觉盛宴| 樱花影视一区二区| 在线精品视频免费观看| 亚洲乱码日产精品bd| 色999日韩国产欧美一区二区| 国产午夜精品久久久久久免费视 | 一级做a爱片久久| 一本色道亚洲精品aⅴ| 亚洲欧洲综合另类| 91福利在线看| 亚洲国产欧美在线| 欧美一区二区三区四区视频| 久久国产夜色精品鲁鲁99| 日韩精品自拍偷拍| 国产一区二区不卡老阿姨| 国产无遮挡一区二区三区毛片日本 | 中文字幕中文字幕中文字幕亚洲无线 | 久久国产免费看| 精品91自产拍在线观看一区| 国产乱码一区二区三区| 日本一区二区三区电影| 91女厕偷拍女厕偷拍高清| 亚洲综合偷拍欧美一区色| 7777女厕盗摄久久久| 精品一区二区三区在线视频| 久久久久九九视频| 91免费版在线看| 日本在线不卡一区| 国产亚洲成aⅴ人片在线观看 | 亚洲高清视频的网址| 日韩三级高清在线| 成人午夜视频在线| 日韩成人dvd| 久久久久久**毛片大全| 欧洲一区二区三区免费视频| 日本最新不卡在线| 国产精品九色蝌蚪自拍| 欧美美女喷水视频| 国产成人小视频| 一区二区三区精品在线观看| 欧美大尺度电影在线| 成人一区二区三区在线观看 | 91麻豆精品91久久久久同性| 国产精品羞羞答答xxdd| 亚洲伊人色欲综合网| 久久亚洲精品小早川怜子| 色综合欧美在线视频区| 国产一区二区三区美女| 香蕉成人伊视频在线观看| 日本一二三不卡| 日韩一区二区视频在线观看| 色综合天天综合网天天狠天天| 久久精品国产色蜜蜜麻豆| 亚洲综合在线第一页| 日韩精品国产精品| 国产精品美女久久久久久久久久久 | 欧美天堂一区二区三区| 狠狠色丁香九九婷婷综合五月| 亚洲乱码精品一二三四区日韩在线| 精品免费一区二区三区| 欧美日韩一区二区三区在线| 粉嫩av一区二区三区粉嫩| 久久黄色级2电影| 性欧美大战久久久久久久久| 亚洲视频一区在线观看| 国产精品拍天天在线| 久久久久久久一区| 精品国产一区二区国模嫣然| 欧美丰满一区二区免费视频| 欧洲日韩一区二区三区| www.激情成人| 成人aa视频在线观看| 韩国视频一区二区| 麻豆视频观看网址久久| 日本不卡一区二区| 天堂一区二区在线免费观看| 一区二区三区四区中文字幕| 亚洲欧美国产三级| 亚洲日本一区二区| 亚洲精品中文字幕在线观看| 专区另类欧美日韩| 亚洲乱码国产乱码精品精的特点 | 蜜桃av噜噜一区| 日本伊人午夜精品| 日韩电影免费在线| 蜜桃在线一区二区三区| 老司机精品视频导航| 蜜桃av一区二区三区| 久久精品国产免费看久久精品| 日韩av电影一区| 久久99精品一区二区三区三区| 免费国产亚洲视频| 国产一区二区毛片| 不卡的电视剧免费网站有什么| 成人激情文学综合网| 9久草视频在线视频精品| 成人激情图片网| 色天天综合久久久久综合片| 欧美综合欧美视频| 7777女厕盗摄久久久| www成人在线观看| 国产精品人成在线观看免费| 亚洲天堂福利av| 性欧美大战久久久久久久久| 麻豆国产欧美日韩综合精品二区 | 成人性生交大片免费看视频在线 | 午夜精品在线看| 久久成人免费网| 成人不卡免费av| 欧美日韩中文字幕一区二区| 日韩一区二区不卡| 国产精品毛片高清在线完整版| 一区二区三区四区高清精品免费观看| 亚洲第一搞黄网站| 国产精品99久久久| 91久久精品日日躁夜夜躁欧美| 欧美一区二区成人| 日韩美女视频19| 视频在线观看国产精品| 风间由美一区二区av101| www国产精品av| 亚洲一区在线免费观看| 精品系列免费在线观看| 色综合婷婷久久| 久久亚洲精品小早川怜子| 亚洲电影一级黄| 成人一区二区三区中文字幕| 91精品国产入口| 亚洲精品视频自拍| 国产精品一卡二卡在线观看| 欧美午夜免费电影|