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

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

?? g2d.c

?? 提供S3C6400源例子代碼.希望對大家有所幫助
?? C
?? 第 1 頁 / 共 4 頁
字號:
/**************************************************************************************
* 
*	Project Name : S3C6400 Validation
*
*	Copyright 2006 by Samsung Electronics, Inc.
*	All rights reserved.
*
*	Project Description :
*		This software is only for validating functions of the S3C6400.
*		Anybody can use this software without our permission.
*  
*--------------------------------------------------------------------------------------
* 
*	File Name : g2d.c
*  
*	File Description : This file includes the API functions for 2D.
*
*	Author : Sekwang Kim
*	Dept. : AP Development Team
*	Created Date : 2007/01/25
*	Version : 0.1a 
* 
*	History
*	- Created by Jang JiHyun, Lee YunSoo
* 	- Modified by Sekwang Kim(2007/01/25)
*  
**************************************************************************************/


#include "system.h"
#include "intc.h"
#include "lcd.h"
#include "glib.h"
#include "glib_font.h"
#include "g2d.h"


// Header file for text drawing
#include <stdio.h>
#include <string.h>
#include <stdarg.h>
#include <timer.h>

#include "sun320240_16bpp.h"
#include "sun320240_24bpp.h"



#define	rG2D_CONTROL             	(G2D_BASE+0x00)
#define	rG2D_INTEN                   (G2D_BASE+0x04)
#define	rG2D_FIFO_INT_CON      (G2D_BASE+0x08)
#define	rG2D_INT_PEND_REG		(G2D_BASE+0x0c)
#define	rG2D_DE_STATUS           (G2D_BASE+0x10)
#define	rG2D_FB_BA                   (G2D_BASE+0x20)
#define	rG2D_CMDR0                  (G2D_BASE+0x100)
#define	rG2D_CMDR1                   (G2D_BASE+0x104)
#define	rG2D_CMDR2                   (G2D_BASE+0x108)
#define	rG2D_CMDR3                   (G2D_BASE+0x10c)
#define	rG2D_CMDR4                   (G2D_BASE+0x110)
#define	rG2D_CMDR5                   (G2D_BASE+0x114)
#define	rG2D_CMDR6                   (G2D_BASE+0x118)
#define	rG2D_CMDR7                   (G2D_BASE+0x11c)
#define	rG2D_COLOR_MODE          (G2D_BASE+0x200)
#define	rG2D_HORI_RES               (G2D_BASE+0x204)
#define	rG2D_SC_WINDOW           (G2D_BASE+0x210)
#define	rG2D_SC_WINDOW_X       (G2D_BASE+0x214)
#define	rG2D_SC_WINDOW_Y         	(G2D_BASE+0x218)
#define	rG2D_CW_LEFT_TOP             (G2D_BASE+0x220)
#define	rG2D_CW_LEFT_TOP_X       	(G2D_BASE+0x224)
#define	rG2D_CW_LEFT_TOP_Y       	(G2D_BASE+0x228)
#define	rG2D_CW_RIGHT_BOTTOM         (G2D_BASE+0x230)
#define	rG2D_CW_RIGHT_BOTTOM_X   	(G2D_BASE+0x234)
#define	rG2D_CW_RIGHT_BOTTOM_Y   	(G2D_BASE+0x238)
#define	rG2D_COORD0              	(G2D_BASE+0x300)
#define	rG2D_COORD0_X               (G2D_BASE+0x304)
#define	rG2D_COORD0_Y               (G2D_BASE+0x308)
#define	rG2D_COORD1              	(G2D_BASE+0x310)
#define	rG2D_COORD1_X               (G2D_BASE+0x314)
#define	rG2D_COORD1_Y               (G2D_BASE+0x318)
#define	rG2D_COORD2              	(G2D_BASE+0x320)
#define	rG2D_COORD2_X               (G2D_BASE+0x324)
#define	rG2D_COORD2_Y               (G2D_BASE+0x328)
#define	rG2D_COORD3              	(G2D_BASE+0x330)
#define	rG2D_COORD3_X               (G2D_BASE+0x334)
#define	rG2D_COORD3_Y               (G2D_BASE+0x338)
#define	rG2D_ROT_OC              	(G2D_BASE+0x340)
#define	rG2D_ROT_OC_X                (G2D_BASE+0x344)
#define	rG2D_ROT_OC_Y                (G2D_BASE+0x348)
#define	rG2D_ROT_MODE               (G2D_BASE+0x34c)
#define	rG2D_ENDIAN_READSIZE     	(G2D_BASE+0x350)
#define	rG2D_X_INCR                  (G2D_BASE+0x400)
#define	rG2D_Y_INCR                  (G2D_BASE+0x404)
#define	rG2D_ROP                 	(G2D_BASE+0x410)
#define	rG2D_ALPHA                   (G2D_BASE+0x420)
#define	rG2D_FG_COLOR                (G2D_BASE+0x500)
#define	rG2D_BG_COLOR                (G2D_BASE+0x504)
#define	rG2D_BS_COLOR                (G2D_BASE+0x508)
#define	rG2D_PATTERN_ADDR            (G2D_BASE+0x600)
#define	rG2D_PAT_OFF_XY          	(G2D_BASE+0x700)
#define	rG2D_PAT_OFF_X               (G2D_BASE+0x704)
#define	rG2D_PAT_OFF_Y               (G2D_BASE+0x708)                                      																																								
#define	rG2D_COLORKEY_CNTL           (G2D_BASE+0x720)	
#define	rG2D_COLORKEY_DR_MIN         (G2D_BASE+0x724)
#define	rG2D_COLORKEY_DR_MAX         (G2D_BASE+0x728)


volatile bool bG2dDone;
volatile unsigned uIntCnt;

G2D oG2d;



void G2D_DrawPattern(void)
{
	G2D_DrawPattern1(0, 0, oG2d.m_uMaxDx+1, oG2d.m_uMaxDy+1);
}

void G2D_InitIp(u32 uFbStAddr, CSPACE eBpp)
{
	G2D_InitIp2(uFbStAddr, eBpp, 240, 320, 0, 0, 240, 320);
}

void G2D_InitIp1(u32 uFbStAddr, CSPACE eBpp, u32 uCwMaxHSz, u32 uCwMaxVSz)
{
	G2D_InitIp2(uFbStAddr, eBpp, uCwMaxHSz, uCwMaxVSz, 0, 0, 240, 320);
}

void G2D_InitIp2(u32 uFbStAddr, CSPACE eBpp, u32 uCwMaxHSz, u32 uCwMaxVSz,
                                                  u32 uX1_Cw, u32 uY1_Cw, u32 uX2_Cw, u32 uY2_Cw)
{
	Assert(uCwMaxHSz <= 2048); // Max horizontal size of clipping window should be 2048.
	Assert(uCwMaxVSz <= 2048); // Max vertical size of clipping window should be 2048.

	G2D_Reset(); // SW reset

	// Initialize color
	if (eBpp == RGB16)
	{
		oG2d.m_uColorVal[G2D_BLACK] = 0x0;
		oG2d.m_uColorVal[G2D_RED]   = 0x1f<<11;
		oG2d.m_uColorVal[G2D_GREEN] = 0x3f<<5;
		oG2d.m_uColorVal[G2D_BLUE]  = 0x1f<<0;
		oG2d.m_uColorVal[G2D_WHITE] = 0xffff;
	}
	else if (eBpp == RGB24)
	{
		oG2d.m_uColorVal[G2D_BLACK] = 0x0;
		oG2d.m_uColorVal[G2D_RED]   = 0xff0000;
		oG2d.m_uColorVal[G2D_GREEN] = 0xff00;
		oG2d.m_uColorVal[G2D_BLUE]  = 0xff;
		oG2d.m_uColorVal[G2D_WHITE] = 0xffffff;
	}
	else
		Assert(0);

	oG2d.m_uFbStAddr = uFbStAddr;

	oG2d.m_uColorVal[G2D_YELLOW] = (oG2d.m_uColorVal[G2D_RED] | oG2d.m_uColorVal[G2D_GREEN]);
	oG2d.m_uColorVal[G2D_CYAN] = (oG2d.m_uColorVal[G2D_GREEN] | oG2d.m_uColorVal[G2D_BLUE]);
	oG2d.m_uColorVal[G2D_MAGENTA] = (oG2d.m_uColorVal[G2D_RED] | oG2d.m_uColorVal[G2D_BLUE]);

	oG2d.m_uHoriRes = uCwMaxHSz;

	oG2d.m_uMaxDx = uCwMaxHSz - 1;
	oG2d.m_uMaxDy = uCwMaxVSz - 1;

	oG2d.m_uCwX1 = uX1_Cw;
	oG2d.m_uCwY1 = uY1_Cw;

	oG2d.m_uCwX2 = uX2_Cw;
	oG2d.m_uCwY2 = uY2_Cw;

	oG2d.m_uBytes = (eBpp == RGB16) ? 2 : 4;

	oG2d.m_upFontType = (u8 *)font8x15;
	oG2d.m_uFontWidth = 8;
	oG2d.m_uFontHeight = 15;

	oG2d.m_eBpp = eBpp;

	oG2d.m_bIsBitBlt = false;

	G2D_DisableEffect(); // Disable per-pixel/per-plane alpha blending and fading
	G2D_SetColorKeyOff();
	G2D_InitRegs(eBpp);
}

void G2D_InitRegs(CSPACE eBpp)
{
	u32 uBppMode;

	G2D_CheckFifo(17);

	uBppMode = (eBpp == ARGB8) ? G2D_COLOR_15BPP_BIT :
				(eBpp == RGB16) ? G2D_COLOR_16BPP_BIT :
				(eBpp == RGB18) ? G2D_COLOR_18BPP_BIT :
				(eBpp == RGB24) ? G2D_COLOR_24BPP_BIT :	G2D_COLOR_24BPP_BIT;

	Outp32(rG2D_COLOR_MODE, uBppMode);
	Outp32(rG2D_FB_BA, oG2d.m_uFbStAddr);

	Outp32(rG2D_HORI_RES, oG2d.m_uHoriRes);	//lcdX should be 4n

	Outp32(rG2D_SC_WINDOW_X, oG2d.m_uMaxDx);
	Outp32(rG2D_SC_WINDOW_Y, oG2d.m_uMaxDy);
	Outp32(rG2D_CW_LEFT_TOP_X, oG2d.m_uCwX1);
	Outp32(rG2D_CW_LEFT_TOP_Y, oG2d.m_uCwY1);
	Outp32(rG2D_CW_RIGHT_BOTTOM_X, oG2d.m_uCwX2);
	Outp32(rG2D_CW_RIGHT_BOTTOM_Y, oG2d.m_uCwY2);

	Outp32(rG2D_ALPHA, FADING_OFFSET_DISABLE | ALPHA_VALUE_DISABLE);

	Outp32(rG2D_FG_COLOR, oG2d.m_uColorVal[G2D_WHITE]); // set color to both font and foreground color
	Outp32(rG2D_BG_COLOR, oG2d.m_uColorVal[G2D_BLACK]);
	Outp32(rG2D_BS_COLOR, oG2d.m_uColorVal[G2D_BLUE]); // Set blue color to blue screen color

	Outp32(rG2D_ROP, G2D_OPERAND3_FG_BIT | G2D_NO_ALPHA_BIT | OPAQUE_ENABLE | G2D_ROP_SRC_ONLY);

	Outp32(rG2D_ROT_OC_X, 0);
	Outp32(rG2D_ROT_OC_Y, 0);
	Outp32(rG2D_ROT_MODE, G2D_ROTATION_0_DEG_BIT);
	Outp32(rG2D_ALPHA, 0);
}

void G2D_Reset(void)
{
    Outp32(rG2D_CONTROL, 1);  //assert G2D reset
    Outp32(rG2D_CONTROL, 0);  //deassert G2D reset
}

void G2D_WaitForIdleStatus(void)
{
	while(!(Inp32(rG2D_DE_STATUS) & G2D_DE_STATUS_FA_BIT));
}

void G2D_CheckFifo(u32 uEmptyFifo)
{
	while( (Inp32(rG2D_DE_STATUS)&0x3f) > (FIFO_NUM - uEmptyFifo) );
}

// Set Ternary raster operation
// Support 256 raster operation
// Refer to ternary raster operation table if you know 256 ROP

// Set Alpha Value
void G2D_SetAlphaValue(u8 ucAlphaVal)
{
	ucAlphaVal &= 0xff;
	Outp32(rG2D_ALPHA, (Inp32(rG2D_ALPHA)&=~0xff) | ucAlphaVal);
}

// Set alpha blending mode
void G2D_SetAlphaMode(G2D_ALPHA_BLENDING_MODE eMode)
{
	u32 uAlphaBlend;

	uAlphaBlend =
		(eMode == G2D_NO_ALPHA_MODE) ? G2D_NO_ALPHA_BIT :
		(eMode == G2D_PP_ALPHA_SOURCE_MODE) ? G2D_PP_ALPHA_SOURCE_BIT :
		(eMode == G2D_ALPHA_MODE) ? G2D_ALPHA_BIT : 
		(eMode == G2D_FADING_MODE) ? G2D_FADING_BIT : G2D_NO_ALPHA_BIT;

	Outp32(rG2D_ROP, (Inp32(rG2D_ROP) &= ~(0x7<<10)) | uAlphaBlend);
}

// Set fade value
void G2D_SetFadingValue(u8 ucFadeVal)
{
	ucFadeVal &= 0xff;
	Outp32(rG2D_ALPHA, (Inp32(rG2D_ALPHA)&= ~(0xff<<8)) | (ucFadeVal<<8));
}

void G2D_DisableEffect(void)
{
	Outp32(rG2D_ROP, (Inp32(rG2D_ROP)&~(0x7<<10)));
}

void G2D_EnablePlaneAlphaBlending(u8 ucAlphaVal)
{
	ucAlphaVal &= 0xff;

	// Set Alpha Blending Mode
	Outp32(rG2D_ROP, (Inp32(rG2D_ROP) &= ~(0x7<<10)) | G2D_ALPHA_BIT);


	// Set Alpha Value
	Outp32(rG2D_ALPHA, (Inp32(rG2D_ALPHA) &= ~(0xff)) | ucAlphaVal);

	oG2d.m_ucAlphaVal = ucAlphaVal;
	oG2d.m_bIsAlphaCall = true;
}

void G2D_DisablePlaneAlphaBlending(void)
{
	G2D_DisableEffect();
}

void G2D_EnablePixelAlphaBlending(void) // Only Support 24bpp and Only used in BitBlt
{

	Assert(oG2d.m_eBpp == RGB24);

	Outp32(rG2D_ROP, (Inp32(rG2D_ROP) &= ~(0x7<<10)) | G2D_PP_ALPHA_SOURCE_BIT);
}

void G2D_DisablePixelAlphaBlending(void) // Only Support 24bpp and only used in BitBlt
{
	Assert(oG2d.m_eBpp == RGB24);
	G2D_DisableEffect();
}

void G2D_EnableFadding(u8 ucFadingVal)
{
	u8 ucAlphaVal;

	ucAlphaVal = (oG2d.m_bIsAlphaCall == true) ? oG2d.m_ucAlphaVal : 255;

	ucFadingVal &= 0xff;

	// Set Fadding Mode	
	Outp32(rG2D_ROP, (Inp32(rG2D_ROP) &= ~(0x7<<10)) | G2D_FADING_BIT);

	// Set Fadding Value	
	Outp32(rG2D_ALPHA, (Inp32(rG2D_ALPHA) &= ~(0xff<<8)) | (ucFadingVal<<8) | (ucAlphaVal<<0));
}

void G2D_DisableFadding(void)
{
	G2D_DisableEffect();
}

void G2D_SetRotationOrgX(u16 usRotOrgX)
{
	Outp16(rG2D_ROT_OC_X, usRotOrgX);
}

void G2D_SetRotationOrgY(u16 usRotOrgY)
{
	Outp16(rG2D_ROT_OC_Y, usRotOrgY);
}

// Clear Frame irrelevant to clipping window size


// Draw Pixel







void G2D_DrawPattern1(u32 uPosX, u32 uPosY, u32 uHsz, u32 uVsz)
{
	u32 uSubHsz, uSubVsz;

	Assert( !((uHsz%8)  || (uVsz%8)) );
	Assert( (uPosX+uHsz<=(oG2d.m_uMaxDx+1)) && (uPosY+uVsz<=(oG2d.m_uMaxDy+1)) );

	G2D_FillRectangleEcolor(uPosX, uPosY, uHsz, uVsz, G2D_WHITE);

	// Draw Color Bar
	uSubHsz = uHsz/8;
	uSubVsz = uVsz/2;

	G2D_FillRectangleEcolor(uPosX, uPosY, uSubHsz, uSubVsz, G2D_RED);
	G2D_FillRectangleEcolor(uSubHsz*1, uPosY, uSubHsz, uSubVsz, G2D_GREEN);
	G2D_FillRectangleEcolor(uSubHsz*2, uPosY, uSubHsz, uSubVsz, G2D_BLUE);
	G2D_FillRectangleEcolor(uSubHsz*3, uPosY, uSubHsz, uSubVsz, G2D_CYAN);
	G2D_FillRectangleEcolor(uSubHsz*4, uPosY, uSubHsz, uSubVsz, G2D_MAGENTA);
	G2D_FillRectangleEcolor(uSubHsz*5, uPosY, uSubHsz, uSubVsz, G2D_YELLOW);
	G2D_FillRectangleEcolor(uSubHsz*6, uPosY, uSubHsz, uSubVsz, G2D_WHITE);
	G2D_FillRectangleEcolor(uSubHsz*7, uPosY, uSubHsz, uSubVsz, G2D_BLACK);

	// Draw Pattern
	uSubHsz = uHsz/2;
	G2D_PutRectangleEcolor(uPosX, uSubVsz, uHsz, uSubVsz, G2D_RED);
	G2D_PutLineEcolor(uPosX, uSubVsz, uHsz-1, uVsz-1, G2D_BLACK, true);
	G2D_PutLineEcolor(uHsz, uSubVsz, uPosX, uVsz-1, G2D_MAGENTA, true);

	uSubHsz = uHsz/2;
	G2D_PutLineEcolor(uSubHsz, uSubVsz, uSubHsz-1, uVsz-1, G2D_GREEN, true);

	uSubVsz = uVsz*3/4;
	G2D_PutLineEcolor(uPosX, uSubVsz, uHsz-1, uSubVsz-1, G2D_BLUE, true);
	
}

void G2D_SetXYIncrFormat(u32 uDividend, u32 uDivisor, u32* uResult)
{
    int i;
    u32 uQuotient;
    u32 uUnderPoint=0;

	Assert(uDivisor != 0);

    uQuotient = (u32)(uDividend/uDivisor);

	Assert(uQuotient <= 2048); // Quotient should be less than 2048.

    uDividend-=(uQuotient*uDivisor);

    for (i=0; i<12; i++)
    {
		uDividend <<= 1;
		uUnderPoint <<= 1;
		if (uDividend >= uDivisor)
		{
		    uUnderPoint = uUnderPoint | 1;
		    uDividend -= uDivisor;
		}
    }

    uUnderPoint = (uUnderPoint + 1) >> 1;

	*uResult =  uUnderPoint|(uQuotient<<11);
}

void G2D_BitBlt(u16 usSrcStX, u16 usSrcStY, u16 usSrcEndX, u16 usSrcEndY,
  	                  u16 usDstStX, u16 usDstStY, u16 usDstEndX, u16 usDstEndY, bool bIsStretch)
{
	u16 usSrcWidth, usSrcHeight;
	u16 usDstWidth, usDstHeight;
	u32 uXYIncr;
	u32 uCmdRegVal;

	// Check boundary of X coordiante
	Assert( (usSrcStX >= oG2d.m_uCwX1)&&(usSrcEndX >= oG2d.m_uCwX1) );
	// Coordinate X of source image or destination image should be less than that of clipping window.
	Assert( (usSrcEndX <= oG2d.m_uCwX2)&&(usDstEndX <= oG2d.m_uCwX2) );

	// Check boundary of Y coordinate
	Assert( (usSrcStY >= oG2d.m_uCwY1)&&(usSrcEndY >= oG2d.m_uCwY1) );
	// Coordinate Y of source image or destination image should be less than that of clipping window.
	Assert( (usSrcEndY <= oG2d.m_uCwY2)&&(usDstEndY <= oG2d.m_uCwY2) );

	G2D_CheckFifo(17);

    Outp32(rG2D_COORD0_X, usSrcStX);
    Outp32(rG2D_COORD0_Y, usSrcStY);
    Outp32(rG2D_COORD1_X, usSrcEndX);
    Outp32(rG2D_COORD1_Y, usSrcEndY);

    Outp32(rG2D_COORD2_X, usDstStX);
    Outp32(rG2D_COORD2_Y, usDstStY);
    Outp32(rG2D_COORD3_X, usDstEndX);
    Outp32(rG2D_COORD3_Y, usDstEndY);

	if(bIsStretch==true) {
		usSrcWidth=ABS(usSrcStX-usSrcEndX);
		usDstWidth=ABS(usDstStX-usDstEndX);
		usSrcHeight=ABS(usSrcStY-usSrcEndY);
		usDstHeight=ABS(usDstStY-usDstEndY);

		G2D_SetXYIncrFormat(usSrcWidth, usDstWidth, &uXYIncr);
		Outp32(rG2D_X_INCR, uXYIncr);

		G2D_SetXYIncrFormat(usSrcHeight, usDstHeight, &uXYIncr);
		Outp32(rG2D_Y_INCR, uXYIncr);
    	}

		uCmdRegVal=Inp32(rG2D_CMDR1);
		uCmdRegVal = ~(0x3<<0);
		uCmdRegVal |= (bIsStretch == true) ? G2D_STRETCH_BITBLT_BIT : G2D_NORMAL_BITBLT_BIT;
		Outp32(rG2D_CMDR1, uCmdRegVal);
#ifdef PROFILE
		StartTimer(0);
#endif
		while(!bG2dDone);
		bG2dDone=0;
	
}

// Get Original Coordinate (X,Y) to rotate window
// usDestStX, usDesStY : Target Destination after rotation
// (usSrcX1, usSrcY1), (usSrcX2, usSrcY2) : Coordinate (X1,Y1), (X2, Y2) before rotation
// usRotDegree : support only 90/180/270 degrees
// usOrigX, usOrigY : Rotation Coordinate. the register value for rG2D_ROT_OC_X and rG2D_ROT_OC_Y

// formula to get usOrigX, usOrigY
// | usDestX - usOrigX |   | cosA -sinA | | usSRCX - usOrigX |
// |                   | = |            | |                  |
// | usDestY - usOrigY |   | sinA  cosA | | usSRCY - usOrigY |
//
//
//( if A == 90 degrees, usSRCX = usSrcX1 and usSRCY = usSrcY2
// else if A == 180 degrees, usSRCX = usSrcX2 and usSRCY = usSrcY2
// else if A == 270 degrees, usSRCX = usSrcX1 and usSRCY = usSrcY2 )

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美精品一区二区三区在线| 免费国产亚洲视频| 日精品一区二区| 精品国产精品一区二区夜夜嗨| 懂色av中文字幕一区二区三区| 亚洲五码中文字幕| 久久只精品国产| 91在线码无精品| 奇米在线7777在线精品| 国产在线视频一区二区| 欧美日韩久久一区二区| 国产精品一级片| 香蕉av福利精品导航| 国产精品成人网| 久久久精品免费观看| 欧美精选在线播放| 色94色欧美sute亚洲13| 粉嫩绯色av一区二区在线观看| 视频一区在线播放| 亚洲男人的天堂网| 国产欧美日韩三级| 精品美女被调教视频大全网站| 色美美综合视频| 99国产一区二区三精品乱码| 国产精品伊人色| 精品一区中文字幕| 午夜电影一区二区| 亚洲第一综合色| 一区二区三区成人在线视频| 日本一区二区三级电影在线观看| 狠狠色丁香久久婷婷综| 中文字幕精品一区二区精品绿巨人 | 在线不卡的av| 亚洲狠狠爱一区二区三区| 亚洲天堂福利av| 国产日本一区二区| 精品国产精品一区二区夜夜嗨| 欧美电影影音先锋| 91精品在线麻豆| 欧美精选在线播放| 日韩一区二区三区视频在线| 欧美军同video69gay| 欧美日韩精品一区二区| 欧美三级电影一区| 欧美男男青年gay1069videost| 欧美日韩中文一区| 欧美熟乱第一页| 91九色最新地址| 色偷偷成人一区二区三区91| 91福利国产成人精品照片| 日本高清视频一区二区| 欧美日韩精品一区二区三区四区| 欧美久久久久中文字幕| 日韩欧美亚洲国产另类| 成人av在线网站| 91网站在线观看视频| 91官网在线观看| 欧美综合一区二区| 欧美偷拍一区二区| 欧美一区二区三区在线观看视频| 精品少妇一区二区三区视频免付费 | 欧美日韩精品专区| 91精品国产综合久久婷婷香蕉| 日韩精品一区二区三区视频在线观看 | 99久久综合国产精品| 99国产精品国产精品久久| 91看片淫黄大片一级在线观看| 欧美午夜精品理论片a级按摩| 欧美日韩精品久久久| 91丝袜高跟美女视频| 欧美日韩成人在线一区| 精品国产免费人成在线观看| 国产精品美女视频| 亚洲一区二区三区在线播放| 爽好多水快深点欧美视频| 日本中文字幕一区二区视频| 欧美经典三级视频一区二区三区| 亚洲免费观看高清完整版在线观看 | 91婷婷韩国欧美一区二区| 欧美视频中文字幕| 久久精品亚洲国产奇米99| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 一本久道中文字幕精品亚洲嫩| 欧美艳星brazzers| 亚洲精品一区二区三区四区高清 | 亚洲成人一二三| 久久99国产精品免费| 99久久婷婷国产综合精品电影 | www国产成人| 国产精品传媒在线| 日韩国产在线一| 99国内精品久久| 日韩欧美亚洲国产另类 | 日本欧美一区二区在线观看| 成人免费观看av| 欧美一二三四区在线| 亚洲天堂成人在线观看| 国内精品写真在线观看| 视频一区中文字幕国产| 高清在线成人网| 3751色影院一区二区三区| 中文字幕中文字幕一区| 韩日av一区二区| 欧美色图12p| 国产精品欧美久久久久一区二区| 日韩av电影免费观看高清完整版在线观看| 成人av网站在线观看| 久久久久久久精| 丝袜脚交一区二区| 色综合久久综合中文综合网| 久久亚洲欧美国产精品乐播| 日韩电影在线一区二区三区| 99久久99久久综合| 中文字幕欧美激情| 国产伦精一区二区三区| 欧美一区国产二区| 精品一区二区三区免费毛片爱 | 精品国产自在久精品国产| 亚洲国产aⅴ成人精品无吗| 99热精品国产| 国产精品国产三级国产有无不卡| 韩国精品在线观看| 欧美电影免费观看高清完整版在 | 欧美视频精品在线观看| 亚洲视频网在线直播| 成人午夜激情视频| 亚洲国产精品精华液ab| 国产一区二区三区在线观看免费视频 | 亚洲成人自拍网| 色妹子一区二区| 亚洲乱码中文字幕综合| 成人app在线| 国产精品免费视频观看| 国产河南妇女毛片精品久久久| 2017欧美狠狠色| 欧美精品777| 久久一日本道色综合| 国产一区二区剧情av在线| 欧美精品一区二区在线观看| 日韩精品1区2区3区| 欧美男人的天堂一二区| 美日韩一区二区三区| 日韩欧美精品三级| 老汉av免费一区二区三区| 日韩欧美一二区| 国产精品77777| 国产精品美女一区二区| 一本久久综合亚洲鲁鲁五月天 | 久草精品在线观看| 26uuu另类欧美| 成人在线一区二区三区| 中文字幕一区二区三区在线播放 | 91亚洲精品一区二区乱码| 亚洲欧美怡红院| 欧美日韩卡一卡二| 久久99久久99精品免视看婷婷| 精品久久久久久久人人人人传媒| 国产一区二区三区高清播放| 亚洲国产高清aⅴ视频| 91免费国产在线观看| 亚洲成人精品一区| 精品国产一区二区国模嫣然| 国产一区不卡视频| 欧美日韩视频第一区| 毛片不卡一区二区| 国产天堂亚洲国产碰碰| av成人免费在线| 亚洲精品国产一区二区三区四区在线| 91国产免费观看| 久久er99精品| 亚洲欧美一区二区在线观看| 欧美人成免费网站| 91久久国产最好的精华液| 亚洲成av人影院| 精品视频一区二区三区免费| 麻豆国产精品官网| 亚洲欧美在线aaa| 91精品国产综合久久久久久久久久| 国产精品一区二区在线播放| 一区二区三区中文在线| 777亚洲妇女| 成人性生交大片免费看中文网站 | 精品一区二区三区在线视频| 国产精品福利影院| 日韩欧美成人激情| 一本一道久久a久久精品综合蜜臀| 美女在线视频一区| 亚洲精品综合在线| 久久亚洲综合av| 欧美精品欧美精品系列| 高清成人免费视频| 日本成人在线不卡视频| 中文字幕中文字幕一区二区| 日韩一级大片在线观看| 99久久久免费精品国产一区二区| 日韩国产在线观看一区| 亚洲靠逼com| 国产欧美一二三区| 欧美另类变人与禽xxxxx| 91论坛在线播放|