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

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

?? ppu_control.c

?? SPG290 上SD卡讀取寫入程序源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
/******************************************************************************
 *
 *     The information contained herein is the exclusive property of
 *   Sunplus Technology Co. And shall not be distributed, reproduced,
 *   or disclosed in whole in part without prior written permission.
 *
 *         (C) COPYRIGHT 2005   SUNPLUS TECHNOLOGY CO.
 *                        ALL RIGHTS RESERVED
 *
 * The entire notice above must be reproduced on all authorized copies.
 *
 *****************************************************************************/

/******************************************************************************
 *  Filename:   	PPU_Control.c
 *  Author:     	Robin.xjliu  (eMail: xjliu@sunplus.com)
 *  Tel:        	00885-028-87848688-5884
 *  Date:       	2005-11-16
 *  Description:	other register about PPU control lib
 *  Reference:
 *  Version history:
 *-----------------------------------------------------------------------------
 *	Version   YYYY-MM-DD-INDEX   Modified By         Description
 *	1.0.0     2005-11-16          xjliu               Create
 *	1.0.1	  2006-02-07		  xjliu				  Modify
 *
 *****************************************************************************/
#include "Include/PPU_Control.h"
#include "Include/Tve_Control.h"
#include "Include/GPIO_Joystick.h"

U32	old_game_time, game_time;

//PPU_Effect
U16 nHMovementCnt = 0;

//PPU_Sprite
bool			g_bShowSpriteFlag;
U16				g_nUsed_Cell_Count;
SPRITE			SPRITE_TABLE[SPRITE_NUM_MAX];				//Sprite control table
LISTHEAD		SPRITE_FREE_LIST;							//Free sprite list
LISTHEAD		SPRITE_PRI_LIST[SPRITE_PRI_MAX/2];			//Sprite Priority List

//PPU_Palette
bool	g_bInitPaletteFlag;

//PPU_Texture
S16			g_aTextPos_X[3];
S16			g_aTextPos_Y[3];
bool		g_bTextScrollFlag;
ANITEXTHEAD	*pAniTextHead;
ANI_TEXT	*pAniText[3];

const S32 CellSize[]={
	8, 16, 32, 64,
}; 

extern const U32 Sp_Palette[];
extern const U32 Sp_BackupPalette[];
extern bool	g_bScoreColor;
extern bool	g_bCompleteColor;
extern bool	g_bMenuColor;
extern bool g_bHMovementFlag;

/**
 * InitPPU - initialize PPU control register
 */
void InitPPU(void)
{
	//set ppu mode
// 	*P_TV_CONTROL 	= TVEN | TVRGB2YUV | (TVLPF1 & (~TVVGA));	// CIF Mode	
//	*P_PPU_CONTROL 	= PPUEN & (~PPU_VGA);						// CIF
//	*P_TV_CONTROL 	|= TVVGA;			// VGA Mode
//	*P_PPU_CONTROL	|= PPU_VGA;			// VGA

	//set PPU and TV control
	*P_TV_CONTROL = TVEN | TVRGB2YUV | TVLPF1;
	*P_PPU_CONTROL = PPUEN;
	
	//Initialize Palette
	g_bInitPaletteFlag = true;

    //Initialize Text
    //if( pAniTextHead->textnum != 0 )
    {
    	PPU_InitTexture();
    }

	//Initialize Sprite
	PPU_InitSprite();
}

/**
 * PPU_Service - access PPU's register in every intermit.
 * **Note**	on IRQ53 write Sprite register, palette, Text move
 */
void PPU_Service(void)
{
	game_time++;
	
	//write sprite register
	if(g_bShowSpriteFlag)
	{
		PPU_PaintSprite();
	}

	//scroll texture
	/*if(g_bTextScrollFlag)
	{
		g_bTextScrollFlag = false;
		PPU_ScrollScreen(&g_aPNTPtrFlag);
	}*/
	
	//initialize palette
	if(g_bInitPaletteFlag)
	{
	    PPU_BG_InitPalette( (U32 *)BG_PAL_ADDR );
//		PPU_SP_InitPalette( (U32 *)(&Sp_Palette) );
		g_bInitPaletteFlag = false;
	}
	
	//PPU_TxHCompress(0, 0, 512, 0x80, NULL);
}

/**
 * WaitBlanking - Wait Vertical blanking.
 */
void WaitBlanking(void)
{
	while(old_game_time == game_time);		//	Game_time ++ In IRQ.asm
	old_game_time = game_time;
}



//PPU_Texture
/**
 * ClearTextRegister - clear text1 ~ text3 register value
 */
void ClearTextRegister(void)
{
	U8	i;
	for( i = 0 ; i < 7 ; i++ )
	{
		*(P_PPU_TX1_X + i ) = 0;
		*(P_PPU_TX2_X + i ) = 0;
		*(P_PPU_TX3_X + i ) = 0;				
	}			
}

/**
 * PPU_InitStructure - Initialize File Structure.
 */
void PPU_InitStructure(void)
{
    pAniTextHead	= (ANITEXTHEAD*)TEXT_HEADER_ADDR;
    pAniText[0] 	= (ANI_TEXT*)(TEXT_HEADER_ADDR + sizeof(ANITEXTHEAD));
    pAniText[1] 	= (ANI_TEXT*)(TEXT_HEADER_ADDR + sizeof(ANITEXTHEAD) + sizeof(ANI_TEXT));
    pAniText[2] 	= (ANI_TEXT*)(TEXT_HEADER_ADDR + sizeof(ANITEXTHEAD) + sizeof(ANI_TEXT) + sizeof(ANI_TEXT));    
}

#ifdef TFTLCD_EN
//add by Robin.Lau for support Scene Director TFTLCD_Enable Setting.
void PPU_InitTFT(void)
{
	if ( NULL != (pAniTextHead->nTFT_Info & 0x0008) )
	{//TFT enable
		MIU_CTRL_REG_SET(0xa0d00000,0xa0e00000,0xa0e00000);//only for PPU to LCD
		switch((pAniTextHead->nTFT_Info & 0x0007))
		{
		case 0x0001://2.36" TFT
			switch( ((pAniText[TEXT1]->bType & 0x30) >> 4) )
			{
			case DISPLAY_QVGA:
			case DISPLAY_VGA2CIF:
				InitTFTLcd(AUO_236, S_RGBDM, QVGA_Data,NO_SCL ,NO_SCL , 0);
				break;
			case DISPLAY_VGA:
				InitTFTLcd(AUO_236, S_RGBDM, VGA_Data,VER_SCLDN ,HOR_SCLDN , 0);
				break;
			case DISPLAY_HVGA:
				InitTFTLcd(AUO_236, S_RGBDM, HVGA_Data,NO_SCL ,HOR_SCLDN , 0);
				break;
			}
			break;
		case 0x0002://2.5" TFT
			switch( ((pAniText[TEXT1]->bType & 0x30) >> 4) )
			{
			case DISPLAY_QVGA:
			case DISPLAY_VGA2CIF:
				InitTFTLcd(AUO_25, S_RGBDM, QVGA_Data,NO_SCL ,NO_SCL , 0);
				break;
			case DISPLAY_VGA:
				InitTFTLcd(AUO_25, S_RGBDM, VGA_Data,VER_SCLDN ,HOR_SCLDN , 0);
				break;
			case DISPLAY_HVGA:
				InitTFTLcd(AUO_25, S_RGBDM, HVGA_Data,NO_SCL ,HOR_SCLDN , 0);
				break;
			}
			break;
		case 0x0004://3.5" TFT
			switch( ((pAniText[TEXT1]->bType & 0x30) >> 4) )
			{
			case DISPLAY_QVGA:
			case DISPLAY_VGA2CIF:
				InitTFTLcd(AUO_36, S_RGBDM, QVGA_Data,NO_SCL ,NO_SCL , 0);
				break;
			case DISPLAY_VGA:
				InitTFTLcd(AUO_36, S_RGBDM, VGA_Data,VER_SCLDN ,HOR_SCLDN , 0);
				break;
			case DISPLAY_HVGA:
				InitTFTLcd(AUO_36, S_RGBDM, HVGA_Data,NO_SCL ,HOR_SCLDN , 0);
				break;
			}
			break;
		default:
			break;
		}
	}
}
#endif	//TFTLCD_EN

/**
 * PPU_InitTexture - Initialize Texture.
 */
bool PPU_InitTexture(void)
{
	//initial setting for driver
	PPU_InitStructure();

#ifdef TFTLCD_EN	
	//initialize TFT
	PPU_InitTFT();
#endif	//TFTLCD_EN

	//Initialize Text1
	switch( pAniText[TEXT1]->bType & 0xf )
	{
		case CHAR_MODE:
			PPU_InitCharacterText( pAniText[TEXT1], TEXT1);
			break;
		case BITMAP_MODE:
		case HICOLOR_32K:
		case HICOLOR_64K:
			PPU_InitBitmapText( pAniText[TEXT1], TEXT1 );
			break;
	}

	//Initialize Text2
	if( pAniTextHead->textnum < 2 )
		return false;
	switch( pAniText[TEXT2]->bType & 0xf )
	{
		case CHAR_MODE:
			PPU_InitCharacterText( pAniText[TEXT2], TEXT2);
			break;
		case BITMAP_MODE:
		case HICOLOR_32K:
		case HICOLOR_64K:
			PPU_InitBitmapText( pAniText[TEXT2], TEXT2 );
			break;
	}
	
	//Initialize Text3
	if( pAniTextHead->textnum < 3 )//add by xjliu for sensor
		return false;
	switch( pAniText[TEXT3]->bType & 0xf)
	{
		case CHAR_MODE:
			PPU_InitCharacterText( pAniText[TEXT3], TEXT3);
			break;
		case BITMAP_MODE:
		case HICOLOR_32K:
		case HICOLOR_64K:
			PPU_InitBitmapText( pAniText[TEXT3], TEXT3 );
			break;
	}
	return true;	
}

/**
 * PPU_InitCharacterText - Initialize Texture with character mode.
 * @ptrAniText: point to texture information
 * @nText: Select Text layer for Text1/Text2/Text3
 */
void PPU_InitCharacterText(ANI_TEXT *ptrAniText,U32 nTEXT)
{
    U32	    i,j;
	U32 	TextPixel, TextIndex;
	U16 	*port1, *port2;
    S32	    cxSize,cySize;
    S32	    TotalXSize, TotalYSize;
    S32     x, y;
	U16		nPntBufXSize,nPntBufYSize;
  	
	//add by xjliu for set resolution 2006-02-10
	switch( ((ptrAniText->bType & 0x30) >> 4) )
	{
	case DISPLAY_QVGA:
		*P_TV_CONTROL = ((*P_TV_CONTROL) & 0xFFF3);
		*P_PPU_CONTROL = ((*P_PPU_CONTROL) & 0xFFFC);
		nPntBufXSize = 512;
		nPntBufYSize = 256;
		break;
	case DISPLAY_VGA:
		*P_TV_CONTROL = ((*P_TV_CONTROL) & 0xFFF3) | TVVGA;
		*P_PPU_CONTROL = ((*P_PPU_CONTROL) & 0xFFFC) | PPU_VGA;
		nPntBufXSize = 1024;
		nPntBufYSize = 512;
		break;
	case DISPLAY_HVGA:
		*P_TV_CONTROL = ((*P_TV_CONTROL) & 0xFFF3) | TVHVGA;
		*P_PPU_CONTROL = ((*P_PPU_CONTROL) & 0xFFFC) | PPU_HVGA;
		nPntBufXSize = 1024;
		nPntBufYSize = 256;
		break;
	case DISPLAY_VGA2CIF:
		*P_TV_CONTROL = ((*P_TV_CONTROL) & 0xFFF3) | TVVGA2CIF;
		*P_PPU_CONTROL = ((*P_PPU_CONTROL) & 0xFFFC) | PPU_VGA2CIF;
		nPntBufXSize = 512;
		nPntBufYSize = 256;
		break;
	}

    if( ptrAniText->cxSize != 0x40 )
    	cxSize	= (ptrAniText->cxSize/0x10)<<4;
    else	
    	cxSize 	= 0x3<<4;

    if( ptrAniText->cySize != 0x40 )
    	cySize 	= (ptrAniText->cySize/0x10)<<6;
    else	
    	cySize 	= 0x3<<6;

	TotalXSize	= CellSize[cxSize>>4];	//Cell HSize(Pixels)
	TotalYSize 	= CellSize[cySize>>6];	//Cell VSize(Pixels)
	
	port1 		= (U16*)(TEXT1_PNT_BUFF_ADDR + 0x8000 * nTEXT);
	port2 		= (U16*)(TEXT1_PNT_ADDR + 0x8000 * nTEXT);
	TextPixel 	= TEXT1_PGT_ADDR + 0x100000 * nTEXT;
	TextIndex   = TEXT1_PNT_BUFF_ADDR + 0x8000 * nTEXT;
	
	/*for(i=0; i<ptrAniText->ySize; i++)
	{
		for(j=0; j<ptrAniText->xSize; j++)
			*(port1+j+i*1024/TotalXSize) = *(port2 + j + i*ptrAniText->xSize);					
		for(j=0; j<1024/TotalXSize-ptrAniText->xSize; j++)
			*(port1+j+i*1024/TotalXSize+ptrAniText->xSize) = 0;
	}*/
	//modify by xjliu for different display mode
	for(i=0; i<ptrAniText->ySize; i++)
	{
		for(j=0; j<ptrAniText->xSize; j++)
			*(port1+j+i*nPntBufXSize/TotalXSize) = *(port2 + j + i*ptrAniText->xSize);					
		for(j=ptrAniText->xSize; j<nPntBufXSize/TotalXSize; j++)
			*(port1+j+i*nPntBufXSize/TotalXSize) = 0;
	}
	
    x = TotalXSize*ptrAniText->xSize;		//Texture HSize (pixels)
    y = TotalYSize*ptrAniText->ySize;		//Texture VSize (pixels)		
    i = ptrAniText->layer;
	PPU_CharacterShow(
		nTEXT, 
		x, y, 
		(U32*)TextPixel, 
		(U32*)TextIndex, 
		ptrAniText->ColorBit, 
		cxSize, cySize, 
		ptrAniText->bank, 
		ptrAniText->layer);
}

//====================================================================================================
// Show Texture for Character Mode
// void CharacterShow(S32 nTextLayer, S32 nXSize, S32 nYSize, U32 *pPatAddr, U32 *pIndexAddr, S32 nColorMode, S32 nCellXSize, S32 nCellYSize, S32 nPaletteBank, S32 nDepth)
// Input parameters:	
//			S32 nTextLayer: Select Text layer for Text1/Text2/Text3
//						define TEXT1 		0x00000000
//						define TEXT2 		0x00000001
//						define TEXT3 		0x00000002
//			S32 nXSize:	Texture Size for horizontal value
//			S32 nYSize:	Texture Size for vertical value
//			U32 *pPatAdr:	The Texture data address
//			U32 *pIndexAddr:The Texture index data address
//			S32 nColorMode:	Text Color Mode
//						define TX_Color4       0x00000002
//						define TX_Color16      0x00000004
//						define TX_Color64      0x00000006
//						define TX_Color256     0x00000008
//			S32 nCellXSize:	Character Size for Horizontal value
//						define TXHSize8		0x00000000
//						define TXHSize16	0x00000010
//						define TXHSize32	0x00000020
//						define TXHSize64	0x00000030
//			S32 nCellYSize:	Character Size for Vertical value
//						define TXVSize8		0x00000000
//						define TXVSize16	0x00000040
//						define TXVSize32	0x00000080
//						define TXVSize64	0x000000C0
//			S32 nPaletteBank:	Palette Bank for 0~31
//			S32 nDepth:	Text Depth Layer 
//						define TXDepth0		0x00000000	
//						define TXDepth1		0x00002000	
//						define TXDepth2		0x00004000	
//						define TXDepth3		0x00006000	
// Returns: none
//====================================================================================================
void PPU_CharacterShow
(
 U32 nTextLayer, 
 U32 nXSize, U32 nYSize, 
 U32 *pPatAddr, 
 U32 *pIndexAddr, 
 U32 nColorMode, 
 U32 nCellXSize, U32 nCellYSize, 
 U32 nPaletteBank, 
 U32 nDepth
)
{
	U32 *index, *addr, *attr, *x, *y, *control;
	
	x 		= P_PPU_TX1_X 			+ nTextLayer * 7;
	y 		= P_PPU_TX1_Y 			+ nTextLayer * 7;	
	attr 	= P_PPU_TX1_Attribute 	+ nTextLayer * 7;
	control = P_PPU_TX1_Control 	+ nTextLayer * 7;
	index 	= P_PPU_TX1_N_PTR 		+ nTextLayer * 7;
	addr 	= P_PPU_TX1_START_ADR1 	+ nTextLayer * 3;
	
	//set Texture's x & y position
	*x	= 0;
	*y	= 0;

	//set Texture's attribute
	if(nColorMode>=TX_Color64)
		nColorMode = (nColorMode>>2) + 1;	
	else
		nColorMode = nColorMode>>2;		
	*attr = nColorMode | nCellXSize | nCellYSize | (nPaletteBank<<8) | (nDepth<<13);	

	//set Char Number Pointer start address(PNT)
	*index = (U32)pIndexAddr;

	//Setup PPU Text Buffer(0 ~ 2) Start Address(PGT)
	*addr 		= (U32)pPatAddr;
	*(addr + 1) = (U32)pPatAddr;
	*(addr + 2) = (U32)pPatAddr;

	//set Texture's control register
	*control = TXEN | TXREGMODE;//TXEN|
}

/**
 * PPU_InitBitmapText - Initialize Texture with bitmap mode.
 * @ptrAniText: point to texture information
 * @nText: Select Text layer for Text1/Text2/Text3
 */
void PPU_InitBitmapText(ANI_TEXT *ptrAniText,S32 eTEXT )
{
	U32	TextPixel, TextIndex;
	//add by xjliu for set resolution 2006-02-10
	switch( ((ptrAniText->bType & 0x30) >> 4) )
	{
	case DISPLAY_QVGA:
		*P_TV_CONTROL = ((*P_TV_CONTROL) & 0xFFF3);
		*P_PPU_CONTROL = ((*P_PPU_CONTROL) & 0xFFFC);
		break;
	case DISPLAY_VGA:
		*P_TV_CONTROL = ((*P_TV_CONTROL) & 0xFFF3) | TVVGA;
		*P_PPU_CONTROL = ((*P_PPU_CONTROL) & 0xFFFC) | PPU_VGA;
		break;
	case DISPLAY_HVGA:
		*P_TV_CONTROL = ((*P_TV_CONTROL) & 0xFFF3) | TVHVGA;
		*P_PPU_CONTROL = ((*P_PPU_CONTROL) & 0xFFFC) | PPU_HVGA;
		break;
	case DISPLAY_VGA2CIF:
		*P_TV_CONTROL = ((*P_TV_CONTROL) & 0xFFF3) | TVVGA2CIF;
		*P_PPU_CONTROL = ((*P_PPU_CONTROL) & 0xFFFC) | PPU_VGA2CIF;
		break;
	}

    if( (ptrAniText->bType&0xf) == 2)  	// high color 32768
		ptrAniText->ColorBit = TX_Color32768;
	if( (ptrAniText->bType&0xf) == 3)	// high color 65536		
	    ptrAniText->ColorBit = TX_Color65536;
	    
	TextPixel = TEXT1_PGT_ADDR + 0x100000 * eTEXT;
	TextIndex = TEXT1_PNT_ADDR + 0x8000 * eTEXT;		
	
  	PPU_BitmapShow(eTEXT, ptrAniText->xSize, ptrAniText->ySize, ptrAniText->ColorBit, (ptrAniText->bank<<8), (ptrAniText->layer<<13), (U32 *)TextPixel, (U32 *)TextIndex);
}

//====================================================================================================
// Show Texture for Bitmap Mode
// BitmapShow(S32 nTextLayer, S32 nXSize, S32 nYSize, S32 nColorMode, S32 nBank, S32 nDepthLayer, U32 *pPatAddr, U32 *pIndexAddr);
// Input parameters:	
//			S32 nTextLayer: Select Text layer for Text1/Text2/Text3
//						define TEXT1 		0x00000000
//						define TEXT2 		0x00000001
//						define TEXT3 		0x00000002
//			S32 nXSize:	Texture Size for horizontal value
//			S32 nYSize:	Texture Size for vertical value
//			S32 nColorMode:	Text Color Mode
//						define TX_Color4       0x00000002
//						define TX_Color16      0x00000004
//						define TX_Color64      0x00000006
//						define TX_Color256     0x00000008
//						define TX_Color32768   0x00000010
//						define TX_Color65536	0x00000020
//			S32 nBank:	Palette Bank for 0~31
//			S32 nDepthLayer:	Text Depth Layer 
//						define TXDepth0		0x00000000	
//						define TXDepth1		0x00002000	
//						define TXDepth2		0x00004000	
//						define TXDepth3		0x00006000	
//			U32 *pPatAdr:	The Texture data address
//			U32 *pIndexAddr:The Texture index data address
// Returns: none
//====================================================================================================
void PPU_BitmapShow
(U32 nTextLayer, 
 U32 nXSize, U32 nYSize, 
 U32 nColorMode, 
 U32 nBank, 
 U32 nDepthLayer, 
 U32 *pPatAddr, 
 U32 *pIndexAddr
)
{
	U32 i, *port;	
	U32 *index, *addr, *x, *y, *attr, *control;
	
	addr 		= P_PPU_TX1_START_ADR1 	+ nTextLayer * 3;
	index 		= P_PPU_TX1_N_PTR 		+ nTextLayer * 7;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩精品一区二区三区 | 一本色道久久综合亚洲aⅴ蜜桃| 日韩欧美的一区二区| 日日骚欧美日韩| 91精品久久久久久蜜臀| 青青草成人在线观看| 欧美精品一区二区三区蜜桃| 国产在线不卡一区| 中文字幕日本不卡| 欧美日韩一区二区三区免费看| 亚洲一区二区三区小说| 欧美福利电影网| 国产综合色视频| 国产精品久久久久久久岛一牛影视 | 欧美日韩激情在线| 美国毛片一区二区| 久久你懂得1024| 99天天综合性| 青青国产91久久久久久| 久久综合成人精品亚洲另类欧美| 国产一区视频网站| 亚洲男女一区二区三区| 91超碰这里只有精品国产| 狠狠色狠狠色综合| 国产精品国产三级国产aⅴ原创| 欧美自拍偷拍午夜视频| 欧美aⅴ一区二区三区视频| 国产肉丝袜一区二区| 欧美最猛黑人xxxxx猛交| 麻豆成人久久精品二区三区红| 国产清纯白嫩初高生在线观看91 | 972aa.com艺术欧美| 亚洲精品久久久久久国产精华液| 88在线观看91蜜桃国自产| 国产一区二区女| 一区二区在线观看免费视频播放| 欧美成人一区二区三区在线观看| 岛国精品一区二区| 天天影视涩香欲综合网| 国产日韩av一区| 欧美日韩成人在线| 成人性色生活片| 日韩国产欧美视频| 国产精品伦一区二区三级视频| 欧美顶级少妇做爰| 99久久精品免费看国产| 久久99精品久久只有精品| 亚洲美女偷拍久久| www日韩大片| 欧美日产在线观看| 91小视频在线观看| 国产一区福利在线| 日韩高清不卡一区二区| 亚洲精品视频自拍| 国产精品少妇自拍| 26uuuu精品一区二区| 欧美高清性hdvideosex| 色天使色偷偷av一区二区| 国产一区二区在线观看视频| 婷婷丁香久久五月婷婷| 亚洲老妇xxxxxx| 国产精品午夜在线观看| 精品第一国产综合精品aⅴ| 欧美日韩精品欧美日韩精品| 91玉足脚交白嫩脚丫在线播放| 国产精品1区2区3区在线观看| 天堂在线亚洲视频| 亚洲国产成人av| 亚洲欧美日韩国产成人精品影院| 中文字幕欧美日本乱码一线二线| 日韩免费看的电影| 欧美一区二区三区日韩| 欧美性一二三区| 欧美亚洲国产怡红院影院| 91蜜桃免费观看视频| 成人午夜看片网址| 国内精品伊人久久久久av一坑 | 日韩欧美国产麻豆| 日韩午夜av一区| 5566中文字幕一区二区电影| 欧美日韩国产系列| 欧美性xxxxxxxx| 日本韩国一区二区| 在线观看日韩精品| 欧美三级日韩三级| 欧美日韩一区中文字幕| 欧美午夜不卡在线观看免费| 在线免费精品视频| 欧美视频一区二区在线观看| 欧美性猛交一区二区三区精品| 色av一区二区| 欧美网站大全在线观看| 欧美日本视频在线| 日韩亚洲欧美高清| 久久久综合激的五月天| 国产精品系列在线| 一区av在线播放| 日产国产欧美视频一区精品| 毛片av一区二区| 国产美女精品一区二区三区| 国产精品888| 色欧美乱欧美15图片| 欧美日韩一区二区电影| 欧美一卡2卡三卡4卡5免费| 欧美xxxx老人做受| 国产精品丝袜91| 亚洲五月六月丁香激情| 免费在线成人网| 福利一区二区在线观看| 色综合久久中文字幕| 91精品国产91综合久久蜜臀| 精品国产露脸精彩对白 | eeuss鲁一区二区三区| 91免费看视频| 欧美一级免费观看| 国产精品婷婷午夜在线观看| 亚洲精品成人天堂一二三| 午夜久久久久久电影| 国产成人无遮挡在线视频| 色综合久久久久| 26uuu国产一区二区三区| 亚洲欧美二区三区| 九色综合国产一区二区三区| 91玉足脚交白嫩脚丫在线播放| 91精品综合久久久久久| 亚洲国产精品成人久久综合一区 | 欧美三级视频在线| 久久先锋影音av| 亚洲一区二区在线免费观看视频| 青青草精品视频| 日本精品裸体写真集在线观看| 日韩欧美国产综合| 亚洲精品成a人| 福利一区福利二区| 欧美一区二区三区在线观看视频| 欧美激情艳妇裸体舞| 免费人成在线不卡| 91国产视频在线观看| 国产亚洲一本大道中文在线| 日日夜夜免费精品| 色偷偷成人一区二区三区91 | 正在播放亚洲一区| 亚洲欧美自拍偷拍色图| 国产呦萝稀缺另类资源| 欧美精品久久天天躁| 亚洲欧美日韩综合aⅴ视频| 国产麻豆精品在线| 欧美一区二区三区四区久久| 亚洲一区二区三区中文字幕| 99久久国产综合精品麻豆| www一区二区| 蜜桃精品在线观看| 在线成人免费观看| 一区二区三区在线播放| 91视频在线观看| 1024亚洲合集| 国产91在线|亚洲| 国产亚洲精品超碰| 经典一区二区三区| 日韩午夜激情av| 蜜臀av性久久久久蜜臀aⅴ流畅| 欧美吞精做爰啪啪高潮| 亚洲美女偷拍久久| 91极品美女在线| 亚洲免费在线观看视频| 91丨九色丨黑人外教| 亚洲欧洲一区二区三区| 不卡的电影网站| 中文字幕一区二| www.日韩av| 亚洲女子a中天字幕| 一本到三区不卡视频| 亚洲精品久久久蜜桃| 色先锋资源久久综合| 亚洲免费电影在线| 日本道色综合久久| 亚洲精品成人悠悠色影视| 91免费观看视频| 亚洲午夜在线观看视频在线| 日本乱人伦一区| 亚洲一区二区三区四区在线观看 | 国产成人在线看| 中文字幕乱码日本亚洲一区二区| 粉嫩aⅴ一区二区三区四区五区 | 国产精品青草久久| 91年精品国产| 亚洲成人av在线电影| 555www色欧美视频| 激情欧美一区二区| 国产欧美日本一区二区三区| 99re在线精品| 亚洲成人一区二区在线观看| 日韩一区二区在线播放| 韩国女主播一区| 亚洲丝袜制服诱惑| 8x8x8国产精品| 国产999精品久久久久久绿帽| 日韩美女视频一区| 69久久夜色精品国产69蝌蚪网| 久久国产三级精品|