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

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

?? sgraphutils.pas

?? AlphaControls是一個Delphi標準控件的集合
?? PAS
?? 第 1 頁 / 共 5 頁
字號:
unit sGraphUtils;
{$I sDefs.inc}

interface

{ universal formula for blending // Peter
      Result := Div256((Src1 - Src2) * PercentOfSrc1 + Src2 * 256); PercentOfSrc1 is a integer between 0 and 255
      Result := Round((Src1 - Src2) * PercentOfSrc1 + Src2); PercentOfSrc1 is a real value between 0 and 1
}

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, sConst, ExtCtrls, Jpeg, sUtils, math;

// Paint tiled TGraphic on bitmap
procedure TileBitmap(Canvas: TCanvas; aRect: TRect; Graphic: TGraphic);

procedure AddRgn(var AOR : TAOR; Bmp : TBitmap; Width : integer);
procedure PaintItemBG(SkinIndex : integer; SkinSection : string; ci : TCacheInfo; State : integer; R : TRect; pP : TPoint; ItemBmp : TBitmap);
procedure PaintItem(SkinIndex : integer; SkinSection : string; ci : TCacheInfo; Filling : boolean; State : integer; R : TRect; pP : TPoint; ItemBmp : TBitmap); overload;
procedure PaintItem(SkinIndex : integer; SkinSection : string; ci : TCacheInfo; Filling : boolean; State : integer; R : TRect; pP : TPoint; DC : HDC); overload;
procedure PaintControl(SkinIndex, BorderIndex : integer; SkinSection : string; ci : TCacheInfo; Filling : boolean; State : integer; pP : TPoint; ItemBmp : TBitmap; Rgn : hrgn);
// Procedure needed for update.. Must be more universal | Serge
procedure PaintSimplySkinBorder(SkinIndex : integer; State : integer; Rect : TRect; DC : hdc);

procedure FillMaskedBorderH(Bmp, Mask : TBitmap; Mode : integer; Dst, Src : TRect; TransColor : TColor);
procedure FillMaskedBorderV(Bmp, Mask : TBitmap; Mode : integer; Dst, Src : TRect; TransColor : TColor);
procedure DrawMaskedRectangle(Bmp, Mask : TBitmap; Mode : integer; Dst : TPoint; Src : TRect; TransColor : TColor);
procedure DrawMaskRect(Bmp, Mask : TBitmap; Mode : integer; R : TRect; TransColor : TColor; Filling : boolean; ci : TCacheInfo);
procedure PaintSimplyBorder(Canvas : TCanvas; R : TRect; BGColor, ColorTop, ColorBottom : TColor; Lowered : boolean; Width : integer);

procedure DrawGlyphEx(Glyph, DstBmp : TBitmap; R : TRect; NumGlyphs : integer; Enabled, Grayed : boolean; DisabledGlyphKind : TsDisabledGlyphKind; State, Blend : integer);
//
function CreateDisBitmap(FOriginal: TBitmap; TransColor : TsRGB) : TBitmap;
procedure DisableBmp(SrcBmp: TBitmap);
procedure DisBmpColor(SrcBmp: TBitmap; Color : TColor);
// Converts bitmap to black-white palette (white = white, other = black)
procedure MonoBmp(SrcBmp: TBitmap);
// Converts bitmap to black-white palette
procedure BWBmp(SrcBmp: TBitmap; Delta : integer{0..384});
// Change color
//procedure ReplaceColor(SrcBmp: TBitmap; SrcColor, DstColor : TColor);
// Paints borders by template
procedure BorderByMask(SrcBmp, MskBmp: TBitmap; ColorTop, ColorBottom: TsColor);
// Fills rectangle on device context by Color
procedure FillDC(DC: hWnd; aRect: TRect; Color: TColor);
// Grayscale bitmap
procedure GrayScale(Bmp: TBitmap);
procedure GrayScaleTrans(Bmp: TBitmap; TransColor : TsColor);
// Draws stylish rectangle on DC by style @link(TsBorderStyle)
procedure BeveledBorder(DC: HDC; ColorTop, ColorBottom, Color: TColor; aRect: TRect; Width : integer; Bevel: TsBorderStyle; Soft : boolean);
// Draws stylish rounded rectangle on DC by style @link(TsBorderStyle)
//procedure BeveledRoundRect(DC: HDC; ColorTop, ColorBottom, Color: TColor; aRect: TRect; Width, Radius : integer; Bevel: TsBorderStyle);
procedure DrawLine(dc: HDC; Point1, Point2 : TPoint; LineColor: TColor);
procedure SharpenLine(DC: HDC; ColorLine: TColor; P1, P2: TPoint; Width : integer; Bevel: TsBorderStyle; Side: TsSide);
// Draws stylish line on DC by style @link(TsBorderStyle) from side @link(TsSide)
procedure BeveledLine(DC: HDC; ColorLine, Color: TColor; P1, P2: TPoint; Width : integer; Bevel: TsBorderStyle; Side: TsSide);
// Draws stylish line on DC by style @link(TsBorderStyle) from side @link(TsSide) without corner drawing
procedure ExBevLine(DC: HDC; ColorLine, Color: TColor; P1, P2: TPoint; Width : integer; Bevel: TsBorderStyle; Side: TsSide);
// Draws glyph for sCheckBox
procedure PaintCheck(Canvas: TCanvas; r: TRect; Enabled: boolean; Color: TColor);
// Function CutText get text with ellipsis if no enough place
function CutText(Canvas: TCanvas; Text: string; MaxLength : integer): string;
// Writes text on Canvas on custom rectangle by Flags
procedure WriteText(Canvas: TCanvas; Text: PChar; Enabled: boolean; var aRect : TsRect; Flags: Longint);
procedure WriteTextEx(Canvas: TCanvas; Text: PChar; Enabled: boolean; var aRect : TsRect; Flags: Longint; SkinIndex : integer; Hot : boolean);
// Blending of two bitmaps, excluding pixels with color TransColor
//procedure SumBitmapsTrans(var SrcBmp, MskBmp: Graphics.TBitMap; Color, TransColor : TsColor);
// Alpha-blending of rectangle on bitmap by Blend, excluding pixels with color TransColor
// if TransColor.A = 255 then TransColor is not used
procedure BlendTransRectangle(Dst: TBitmap; X, Y: integer; Src: TBitmap; aRect: TRect; Blend: real; TransColor: TsColor);
procedure BlendTransBitmap(Bmp: TBitmap; Blend: real; Color, TransColor: TsColor);
// Alpha-blending of rectangle on bitmap custom transparency, color, blur and radius
procedure FadeBmp(FadedBmp: TBitMap; aRect: TRect;Transparency: integer; Color: TsColor; Blur, Radius : integer);
// Copying alpha-blended rectangle from CanvasSrc to CanvasDst
procedure FadeRect(CanvasSrc: TCanvas; RSrc: TRect; CanvasDst: HDC; PDst: TPoint; Transparency: integer; Color: TColor; Blur : integer; Shape: TsShadowingShape); overload;
procedure FadeRect(CanvasSrc: TCanvas; RSrc: TRect; CanvasDst: HDC; PDst: TPoint; Transparency: integer; Color: TColor; Blur : integer; Shape: TsShadowingShape; Radius : integer); overload;
// Sum two bitmaps where Color used as mask
procedure BlendBmpByMask(SrcBmp, MskBmp: Graphics.TBitMap; BlendColor : TsColor);
procedure SumBitmaps(SrcBmp, MskBmp: Graphics.TBitMap; Color : TsColor);
procedure SumBmpRect(DstBmp, SrcBmp: Graphics.TBitMap; Color : TsColor; SrcRect : TRect; DstPoint : TPoint);
procedure SumBitmapsEx(SrcBmp, MskBmp: Graphics.TBitMap; Piece : integer);
// Copy Bmp with AlphaMask
procedure CopyByMask(R1, R2 : TRect; Bmp1, Bmp2 : TBitmap; CI : TCacheInfo);
procedure PutMaskOnBmp(SrcBmp, MskBmp: Graphics.TBitMap; Left, Top : integer; Color : TsColor);
// Copying rectangle from SrcBmp to DstBmp, excluding pixels with color TransColor
procedure CopyTransRect(DstBmp, SrcBmp: Graphics.TBitMap; X, Y : integer; SrcRect: TRect; TransColor : TColor);
// Copying rectangle from SrcBmp to DstBmp
procedure CopyRect(DstBmp, SrcBmp: Graphics.TBitMap; X, Y : integer; aRect: TRect; TransColor : TColor);
// Copying bitmap SrcBmp to DstBmp, excluding pixels with color TransColor
procedure CopyTransBitmaps(DstBmp, SrcBmp: Graphics.TBitMap; X, Y : integer; TransColor : TsColor);
// Sum two bitmaps by mask MskBmp
procedure SumByMask(var Src1, Src2, MskBmp: Graphics.TBitMap; aRect: TRect);
// Fills bitmap by custom properties of Gradient
procedure GradientBmp(Bmp: Graphics.TBitMap; aRect : TRect; Color1, Color2 : TsColor; Layout : TGradientTypes; Percent1, Percent2 : TPercent; Width : integer);
// Creates bitmap like Bmp
function CreateBmpLike(Bmp: TBitmap): TBitmap;

// Returns color as ColorBegin -  (ColorBegin - ColorEnd) * i
function ChangeColor(ColorBegin, ColorEnd : TColor; i : real) : TColor;
// Returns color as (ColorBegin + ColorEnd) / 2
function AverageColor(ColorBegin, ColorEnd : TsColor) : TsColor;
// Draws rectangle on device context
procedure DrawRectangleOnDC(DC: HDC; var R: TRect; ColorTop, ColorBottom: TColor; var Width: integer);
// Returns height of font
function GetFontHeight(hFont : HWnd): integer;
// Loads to Image TJpegImage or TBitmap from FileName
function LoadJpegOrBmp(Image: TPicture; FileName: string; Gray: boolean):boolean;
// Shows only controls, placed on form. Form is not visible
//procedure ShowOnlyControls(Form:TForm; ShowCaption,Value:boolean);
function CreateDisabledBitmapEx(FOriginal: TBitmap; OutlineColor, BackColor, HighlightColor, ShadowColor: TColor; DrawHighlight: Boolean): TBitmap;
procedure PaintLine(Canvas : TCanvas; p1, p2 : TPoint; Color : TColor);
procedure BlendLineLR(Bmp : TBitmap; Rect : TRect; Soft : boolean; Bevel : TsControlBevel);
procedure BlendLineTB(Bmp : TBitmap; Rect : TRect; Soft : boolean; Bevel : TsControlBevel);
procedure BlendLineRL(Bmp : TBitmap; Rect : TRect; Soft : boolean; Bevel : TsControlBevel);
procedure BlendLineBT(Bmp : TBitmap; Rect : TRect; Soft : boolean; Bevel : TsControlBevel);
procedure PaintBevel(Bmp: TBitmap; aRect: TRect; BevelWidth: integer; Bevel: TsControlBevel; Soft : boolean);
procedure FocusRect(Canvas : TCanvas; R : TRect);

implementation

uses sMaskData, sStyleSimply, sSkinProps, sGradient, sAlphaGraph, sBorders;

procedure AddRgn(var AOR : TAOR; Bmp : TBitmap; Width : integer);
var
  S : PRGBArray;
  X, Y, h, w, l, w2, cx: Integer;
  c, ct : TsColor;
  RegRect : TRect;
begin
  h := Bmp.Height div 2 - 1;
  w := Bmp.Width div 9 - 1;
  RegRect := Rect(-1, 0, 0, 0);
  ct.C := clFuchsia;
  l := Length(AOR);
  try
    for Y := 0 to h do begin
      S := Bmp.ScanLine[Y];
      for X := 0 to w do begin
        c.A := 0; c.R := S[X].R; c.G := S[X].G; c.B := S[X].B;
        if c.C = ct.C then begin
          if RegRect.Left <> -1 then begin
            RegRect.Right := RegRect.Right + 1;
          end
          else begin
            RegRect.Left := X;
            RegRect.Right := RegRect.Left + 1;
            RegRect.Top := Y;
            RegRect.Bottom := RegRect.Top + 1;
          end;
        end
        else begin
          if RegRect.Left <> -1 then begin
            SetLength(aOR, l + 1);
            AOR[l] := RegRect;
            inc(l);
            RegRect.Left := -1;
          end;
        end;
      end;
      if RegRect.Left <> -1 then begin
        SetLength(AOR, l + 1);
        AOR[l] := RegRect;
        inc(l);
        RegRect.Left := -1;
      end;
    end;

    w2 := Bmp.Width div 3 - 1;
    w := 2 * Bmp.Width div 9;
    cx := Width - Bmp.Width div 3;
    for Y := 0 to h do begin
      S := Bmp.ScanLine[Y];
      for X := w to w2 do begin
        c.A := 0; c.R := S[X].R; c.G := S[X].G; c.B := S[X].B;
        if c.C = ct.C then begin
          if RegRect.Left <> -1 then begin
            RegRect.Right := RegRect.Right + 1;
          end
          else begin
            RegRect.Left := cx + X;
            RegRect.Right := RegRect.Left + 1;
            RegRect.Top := Y;
            RegRect.Bottom := RegRect.Top + 1;
          end;
        end
        else begin
          if RegRect.Left <> -1 then begin
            SetLength(aOR, l + 1);
            AOR[l] := RegRect;
            inc(l);
            RegRect.Left := -1;
          end;
        end;
      end;
      if RegRect.Left <> -1 then begin
        SetLength(AOR, l + 1);
        AOR[l] := RegRect;
        inc(l);
        RegRect.Left := -1;
      end;
    end;
  except
  end;
end;

procedure PaintItemBG(SkinIndex : integer; SkinSection : string; ci : TCacheInfo; State : integer; R : TRect; pP : TPoint; ItemBmp : TBitmap);
var
  aRect: TRect;
  TransColor : TsColor;
  iDrawed : boolean;
  TempBmp : TBitmap;

  ImagePercent, GradientPercent : integer;
  PatternIndex, Transparency : integer;
  GradientData : string;
  GradientArray : TsGradArray;
  Color : TColor;
  Isjpg : boolean;

  procedure FillCanvas(bmp : TBitmap); begin
    BMP.Canvas.Pen.Style := psClear;
    BMP.Canvas.Brush.Style := bsSolid;
    BMP.Canvas.Brush.Color := Color;
    BMP.Canvas.Rectangle(aRect.Left, aRect.Top, aRect.Right + 1, aRect.Bottom + 1);
  end;
  procedure PaintAddons(var aBmp : TBitmap);
  var bmp : TBitmap;
  begin
    iDrawed := False;
    // BGImage painting
    if (ImagePercent > 0) then begin
      if IsJpg then begin
        if (PatternIndex > -1) and (PatternIndex < Length(pa)) then begin
          TileBitmap(aBmp.Canvas, aRect, pa[PatternIndex].Img);
          iDrawed := True;
        end;
      end
      else if (PatternIndex > -1) and (PatternIndex < Length(ma)) then begin
        TileBitmap(aBmp.Canvas, aRect, ma[PatternIndex].Bmp);
        iDrawed := True;
      end
      else begin
        FillCanvas(aBmp);
      end;
    end;
    // BGGradient painting
    if (GradientPercent > 0) then begin
      if iDrawed then begin
        bmp := TBitmap.Create;
        bmp.PixelFormat := pf24bit;
        bmp.Width := WidthOf(aRect);
        bmp.Height := HeightOf(aRect);
        try
          if Length(GradientData) > 0 then begin
            PaintGrad(Bmp, Rect(0, 0, Bmp.Width - 1, Bmp.Height - 1), GradientArray);
          end
          else begin
            FillCanvas(Bmp);
          end;

          TransColor.A := 0;
          TransColor.R := ImagePercent * 256 div 100;
          TransColor.G := TransColor.R;
          TransColor.B := TransColor.R;

          SumBmpRect(aBmp, Bmp, TransColor, Rect(0, 0, Bmp.Width - 1, Bmp.Height - 1), Point(aRect.Left, aRect.Top));
        finally
          FreeAndNil(Bmp);
        end;
      end
      else begin
        if Length(GradientData) > 0 then begin
          PaintGrad(aBmp, aRect, GradientArray);
        end
        else begin
          FillCanvas(aBmp);
        end;
      end;
    end;
    case GradientPercent + ImagePercent of
      1..99 : begin
        BlendColorRect(aBmp, aRect, (GradientPercent + ImagePercent),
                         Color);
      end;
      100 : begin end
      else begin
        FillCanvas(aBmp);
      end;
    end;
  end;
begin
  if not IsValidSkinIndex(SkinIndex) then Exit;
  aRect := R;
  IsJpg := False;
  // Properties definition from skin file
  case State of
    0 : begin
      Color := gd[SkinIndex].PaintingColor;
      ImagePercent := gd[SkinIndex].ImagePercent;
      GradientPercent := gd[SkinIndex].GradientPercent;
      PatternIndex := GetMaskIndex(SkinIndex, SkinSection, PatternFile);
      if not IsValidImgIndex(PatternIndex) then begin
        PatternIndex := GetPatternIndex(SkinIndex, SkinSection, PatternFile);
        IsJpg := PatternIndex > -1;
      end;
      GradientData := gd[SkinIndex].GradientData;
      GradientArray := gd[SkinIndex].GradientArray;
      Transparency := gd[SkinIndex].PaintingTransparency;
    end
    else begin
      Color := gd[SkinIndex].HotPaintingColor;
      ImagePercent := gd[SkinIndex].HotImagePercent;
      GradientPercent := gd[SkinIndex].HotGradientPercent;
      PatternIndex := GetMaskIndex(SkinIndex, SkinSection, HotPatternFile);
      if not IsValidImgIndex(PatternIndex) then begin
        PatternIndex := GetPatternIndex(SkinIndex, SkinSection, HotPatternFile);
        IsJpg := PatternIndex > -1;
      end;
      GradientData := gd[SkinIndex].HotGradientData;
      GradientArray := gd[SkinIndex].HotGradientArray;
      Transparency := gd[SkinIndex].HotPaintingTransparency;
    end;
  end;

  if ci.Ready and (Transparency = 100) then begin
    if ItemBmp <> ci.Bmp then begin
      BitBlt(ItemBmp.Canvas.Handle, aRect.Left, aRect.Top, WidthOf(aRect), HeightOf(aRect),
        ci.Bmp.Canvas.Handle, ci.X + pP.X, ci.Y + pP.Y, SRCCOPY);
    end;
  end
  else if not ci.Ready or (Transparency = 0) then begin
    PaintAddons(ItemBmp);
  end
  else if ci.Ready and (Transparency > 0) then begin
    TempBmp := TBitmap.Create;

    try
      TempBmp.Width := WidthOf(aRect);
      TempBmp.Height := HeightOf(aRect);
      TempBmp.PixelFormat := pf24bit;
      OffsetRect(aRect, - aRect.Left, - aRect.Top);
      PaintAddons(TempBmp);
      aRect := R;
      TransColor.A := 0;
      TransColor.R := Transparency * 255 div 100;
      TransColor.G := TransColor.R;
      TransColor.B := TransColor.R;

      if ci.Bmp <> ItemBmp then begin
        BitBlt(ItemBmp.Canvas.Handle, aRect.Left, aRect.Top, aRect.Right, aRect.Bottom,//ItemBmp.Width, ItemBmp.Height,
             ci.Bmp.Canvas.Handle, ci.X + pP.X, ci.Y + pP.y, SRCCOPY);
      end;
      SumBmpRect(ItemBmp, TempBmp, TransColor, Rect(0, 0, WidthOf(aRect), HeightOf(aRect)), Point(aRect.Left, aRect.Top));

    finally
      FreeAndNil(TempBmp);
    end;
  end;
end;

procedure PaintItem(SkinIndex : integer; SkinSection : string; ci : TCacheInfo; Filling : boolean; State : integer; R : TRect; pP : TPoint; DC : HDC); overload;
var
  TempBmp : TBitmap;
  SavedDC : HDC;
begin
  if not IsValidSkinIndex(SkinIndex) or (R.Left < 0) or (R.Top < 0) then Exit;
  SavedDC := SaveDC(DC);
  TempBmp := TBitmap.Create;
  try
    TempBmp.Width := WidthOf(r);
    TempBmp.Height := HeightOf(r);
    TempBmp.PixelFormat := pf24bit;

    PaintItem(SkinIndex, SkinSection, ci, Filling, State,
              Rect(0, 0, TempBmp.Width, TempBmp.Height), pP,
              TempBmp
    );
    BitBlt(DC, r.Left, r.top, WidthOf(r), HeightOf(r), TempBmp.Canvas.Handle, 0, 0, SRCCOPY);
  finally
    FreeAndNil(TempBmp);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
激情久久久久久久久久久久久久久久| 欧美午夜电影在线播放| 色悠悠久久综合| 91精品国产高清一区二区三区蜜臀| 久久综合九色综合久久久精品综合| 亚洲免费av观看| 激情综合五月婷婷| 欧美日韩久久久一区| 国产精品久久久久久福利一牛影视| 午夜电影久久久| 日本久久一区二区三区| 久久久亚洲精品石原莉奈| 丝袜美腿亚洲色图| 欧美在线一二三四区| 日本一区二区三区dvd视频在线| 日韩激情av在线| 欧美在线观看一区二区| 中文字幕欧美一区| 国产91在线观看| 久久一区二区视频| 蜜臀久久99精品久久久画质超高清| 色老汉av一区二区三区| 国产精品免费视频一区| 国产91精品一区二区| 精品福利视频一区二区三区| 久久国内精品视频| 日韩欧美三级在线| 卡一卡二国产精品| 日韩免费看的电影| av中文字幕不卡| 国产精品成人免费在线| 成人永久免费视频| 国产精品电影院| 不卡一区二区中文字幕| 亚洲视频在线一区| 91亚洲精品久久久蜜桃| 亚洲乱码国产乱码精品精小说| av在线一区二区| 亚洲在线中文字幕| 欧美日韩三级一区| 日本欧美一区二区三区乱码| 日韩一级免费观看| 激情综合网av| 中文在线一区二区| 色综合久久综合网欧美综合网| 1区2区3区精品视频| 在线免费观看视频一区| 丝袜脚交一区二区| 久久久99久久| 色综合久久综合中文综合网| 亚洲国产精品欧美一二99| 欧美日韩国产首页在线观看| 久久国产精品99精品国产| 久久精品一区八戒影视| 色综合久久久久网| 日本不卡的三区四区五区| 国产亚洲午夜高清国产拍精品| 成人性视频免费网站| 亚洲一区二区黄色| 欧美精品一区二区三| 99在线精品观看| 日韩1区2区日韩1区2区| 国产精品美女久久久久aⅴ| 欧洲色大大久久| 国内精品视频一区二区三区八戒| 久久精品免视看| 欧美在线观看视频在线| 国产一区二区免费看| 亚洲一线二线三线久久久| 精品噜噜噜噜久久久久久久久试看| 懂色av一区二区三区蜜臀| 亚洲国产日韩a在线播放性色| 欧美一级一级性生活免费录像| 成人性生交大片| 日日夜夜免费精品| 国产精品久久久久aaaa樱花 | 日韩三级在线免费观看| av一区二区三区在线| 美脚の诱脚舐め脚责91| 亚洲欧美自拍偷拍| 精品国产sm最大网站| 欧美视频一区二区三区| 国产成人精品亚洲日本在线桃色| 午夜久久久久久久久久一区二区| 久久精品视频在线免费观看 | 久久五月婷婷丁香社区| 在线观看欧美黄色| 成人动漫一区二区在线| 激情国产一区二区 | 亚洲一区二区三区中文字幕| 亚洲欧洲日韩在线| 久久久亚洲综合| 日韩精品一区二区三区中文精品| 欧美视频一区二区三区四区| a级精品国产片在线观看| 国内精品在线播放| 秋霞影院一区二区| 午夜精品一区二区三区三上悠亚| 亚洲欧洲av在线| 国产精品视频免费| 久久久精品日韩欧美| 日韩美一区二区三区| 欧美日韩视频专区在线播放| 欧洲av一区二区嗯嗯嗯啊| 成人精品免费网站| 国产 日韩 欧美大片| 国产一区二区三区免费在线观看| 日韩高清不卡在线| 青青青爽久久午夜综合久久午夜 | 欧美日高清视频| 在线免费视频一区二区| 欧美综合欧美视频| 欧美日韩一区精品| 欧美性生活一区| 欧美日韩在线直播| 欧美精品乱码久久久久久按摩 | av中文字幕亚洲| 99re在线精品| 色视频欧美一区二区三区| 色婷婷综合中文久久一本| 在线观看视频一区二区欧美日韩| 色诱视频网站一区| 欧美日韩大陆在线| 日韩三级中文字幕| 亚洲精品高清在线观看| 亚洲欧美区自拍先锋| 欧美精品一区二区三区在线| 日韩免费高清视频| 久久久久97国产精华液好用吗| 26uuu精品一区二区三区四区在线| 久久一夜天堂av一区二区三区| 国产日韩欧美综合在线| 国产精品不卡一区| 最新国产精品久久精品| 亚洲综合图片区| 蜜臀av一区二区| 成人性生交大片免费| 欧美亚洲动漫精品| 精品少妇一区二区三区在线播放| 久久网站热最新地址| 亚洲视频你懂的| 日韩国产高清在线| 成人美女在线观看| 欧美日韩亚洲高清一区二区| 欧美成人国产一区二区| 亚洲欧洲日韩av| 日产国产欧美视频一区精品| 国产高清不卡一区| 欧美无乱码久久久免费午夜一区| 日韩精品最新网址| 亚洲欧洲av一区二区三区久久| 视频一区视频二区中文字幕| 国产suv精品一区二区6| 欧美日韩欧美一区二区| 欧美极品少妇xxxxⅹ高跟鞋| 亚洲宅男天堂在线观看无病毒| 久久激情五月激情| 欧美伊人久久久久久午夜久久久久| 欧美一区二区三区日韩| 18成人在线观看| 国产一区二区91| 欧美日韩成人高清| 久久成人免费网| 欧美日韩一区不卡| 国产精品久久久久天堂| 极品少妇xxxx偷拍精品少妇| 欧洲国内综合视频| 国产精品久久久久影院色老大| 日韩国产精品91| 欧美在线观看你懂的| 国产精品福利在线播放| 国产乱码精品一区二区三区忘忧草| 欧美主播一区二区三区| 国产精品短视频| 成人涩涩免费视频| 欧美精品一区二区三区蜜桃视频| 亚洲国产精品影院| 一本大道久久精品懂色aⅴ| 国产欧美一区二区精品性| 久久国产精品99久久人人澡| 欧美久久一二三四区| 亚洲美腿欧美偷拍| 成人av在线观| 国产拍揄自揄精品视频麻豆 | 国产精品嫩草99a| 国产在线不卡一区| 日韩欧美一区中文| 蜜桃精品视频在线| 在线综合+亚洲+欧美中文字幕| 一区二区三区日本| 91免费在线视频观看| 最新国产の精品合集bt伙计| 成人免费av网站| 中文字幕一区二区三区在线播放| 国产成人亚洲综合色影视| 久久久久久久久免费| 国内精品写真在线观看| 久久一夜天堂av一区二区三区| 国产一区二区毛片| 国产欧美一区二区精品久导航 |