青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

wxWidget實現連續繪圖并能夠控制繪圖的開始與結束

在用CCD相機拍照的圖像進行實時成像的時候遇到這么一個問題:

   1: RunCamera();
   2: while (1) {
   3:     GetImg();
   4:     ShowImg();
   5: }
   6: CloseCamera();

想要對獲取的圖像進行實時成像,最先想到的是采用while(1)的方式,但是這樣的方式會帶來一些問題,除了終止程序,沒有辦法使得循環停下,這個結果不是我們想要的。如果加上一個i < 100類似的條件,數量太大需要等,數量太小很快就結束了。我們想要設計的是能夠隨叫隨停的,能夠控制成像與停止的功能。

第一個想到的是onTimer的方式進行實現,不過水平低低,還是先在網上搜索一翻吧,功夫不負有心人,還是找到了。Making a render loop。

它采用了兩種方式,一種為事件處理方式,一種為剛想到的onTimer的方式。下面參考上述鏈接中的內容,同時考慮自己的功能需求,給出了自己實現的具體代碼。

所有的代碼都是在codeblock下實現的。

1. 事件處理方式

采用onIdel的方式,一種頻率最快的方式之一;但是頻率不是固定的,當你進行其它操作時,如打開菜單Idel將會停止處理。

   1: // the most improtant code in frame.h and frame.cpp
   2: /***************************************************************
   3:  * Name:      tmp1Main.h
   4:  * Purpose:   Defines Application Frame
   5:  * Author:    grass in moon 
   6:  * Created:   2012-07-06
   7:  * Copyright: grass in moon (http://m.shnenglu.com/grass-and-moon/)
   8:  * License:
   9:  **************************************************************/
  10:  
  11: #ifndef TMP1MAIN_H
  12: #define TMP1MAIN_H
  13:  
  14: #ifndef WX_PRECOMP
  15: #include <wx/wx.h>
  16: #endif
  17:  
  18: #include "tmp1App.h"
  19:  
  20: class tmp1Frame: public wxFrame
  21: {
  22: public:
  23:     tmp1Frame(wxFrame *frame, const wxString& title);
  24:     ~tmp1Frame();
  25:  
  26:     // for painting
  27:     void PaintNow();
  28:     void render(wxDC& dc);
  29:  
  30: private:
  31:     enum
  32:     {
  33:         idMenuQuit = 1000,
  34:         idMenuAbout,
  35:         idStartLoop,
  36:         idStopLoop
  37:     };
  38:  
  39:     // mark loop on or off
  40:     bool render_loop_on;
  41:  
  42:     void OnClose(wxCloseEvent& event);
  43:     void OnQuit(wxCommandEvent& event);
  44:     void OnAbout(wxCommandEvent& event);
  45:     void OnStartLoop(wxCommandEvent& event);
  46:     void OnStopLoop(wxCommandEvent& event);
  47:  
  48:     // deel with wxIdleEvent
  49:     void OnIdle(wxIdleEvent& event);
  50:  
  51:     DECLARE_EVENT_TABLE()
  52: };
  53:  
  54:  
  55: #endif // TMP1MAIN_H
  56:  
  57: /***************************************************************
  58:  * Name:      tmp1Main.cpp
  59:  * Purpose:   Code for Application Frame
  60:  * Author:    grass in moon
  61:  * Created:   2012-07-06
  62:  * Copyright: grass in moon (http://m.shnenglu.com/grass-and-moon/)
  63:  * License:
  64:  **************************************************************/
  65:  
  66: #ifdef WX_PRECOMP
  67: #include "wx_pch.h"
  68: #endif
  69:  
  70: #ifdef __BORLANDC__
  71: #pragma hdrstop
  72: #endif //__BORLANDC__
  73:  
  74: #include "tmp1Main.h"
  75:  
  76: //helper functions
  77: enum wxbuildinfoformat
  78: {
  79:     short_f, long_f
  80: };
  81:  
  82: wxString wxbuildinfo(wxbuildinfoformat format)
  83: {
  84:     wxString wxbuild(wxVERSION_STRING);
  85:  
  86:     if (format == long_f )
  87:     {
  88: #if defined(__WXMSW__)
  89:         wxbuild << _T("-Windows");
  90: #elif defined(__WXMAC__)
  91:         wxbuild << _T("-Mac");
  92: #elif defined(__UNIX__)
  93:         wxbuild << _T("-Linux");
  94: #endif
  95:  
  96: #if wxUSE_UNICODE
  97:         wxbuild << _T("-Unicode build");
  98: #else
  99:         wxbuild << _T("-ANSI build");
 100: #endif // wxUSE_UNICODE
 101:     }
 102:  
 103:     return wxbuild;
 104: }
 105:  
 106: BEGIN_EVENT_TABLE(tmp1Frame, wxFrame)
 107:     EVT_CLOSE(tmp1Frame::OnClose)
 108:     EVT_MENU(idMenuQuit, tmp1Frame::OnQuit)
 109:     EVT_MENU(idMenuAbout, tmp1Frame::OnAbout)
 110:     EVT_MENU(idStartLoop, tmp1Frame::OnStartLoop)
 111:     EVT_MENU(idStopLoop, tmp1Frame::OnStopLoop)
 112:     EVT_IDLE(tmp1Frame::OnIdle)
 113: END_EVENT_TABLE()
 114:  
 115: tmp1Frame::tmp1Frame(wxFrame *frame, const wxString& title)
 116:     : wxFrame(frame, -1, title)
 117: {
 118: #if wxUSE_MENUS
 119:     // create a menu bar
 120:     wxMenuBar* mbar = new wxMenuBar();
 121:     wxMenu* fileMenu = new wxMenu(_T(""));
 122:     fileMenu->Append(idMenuQuit, _("&Quit\tAlt-F4"), _("Quit the application"));
 123:     fileMenu->Append(idStartLoop, _("St&artLoop"));       // for starting draw text
 124:     fileMenu->Append(idStopLoop, _("Sto&pLoop"));         // for stoping draw text
 125:     mbar->Append(fileMenu, _("&File"));
 126:  
 127:     wxMenu* helpMenu = new wxMenu(_T(""));
 128:     helpMenu->Append(idMenuAbout, _("&About\tF1"), _("Show info about this application"));
 129:     mbar->Append(helpMenu, _("&Help"));
 130:  
 131:     SetMenuBar(mbar);
 132: #endif // wxUSE_MENUS
 133:  
 134: #if wxUSE_STATUSBAR
 135:     // create a status bar with some information about the used wxWidgets version
 136:     CreateStatusBar(2);
 137:     SetStatusText(_("Hello Code::Blocks user!"),0);
 138:     SetStatusText(wxbuildinfo(short_f), 1);
 139: #endif // wxUSE_STATUSBAR
 140:  
 141:     render_loop_on = false;
 142: }
 143:  
 144:  
 145: tmp1Frame::~tmp1Frame()
 146: {
 147: }
 148:  
 149: void tmp1Frame::OnClose(wxCloseEvent &event)
 150: {
 151:     Destroy();
 152: }
 153:  
 154: void tmp1Frame::OnQuit(wxCommandEvent &event)
 155: {
 156:     Destroy();
 157: }
 158:  
 159: void tmp1Frame::OnAbout(wxCommandEvent &event)
 160: {
 161:     wxString msg = wxbuildinfo(long_f);
 162:     wxMessageBox(msg, _("Welcome to..."));
 163: }
 164:  
 165: // set render_loop_on true, make OnIdle can draw text
 166: void tmp1Frame::OnStartLoop(wxCommandEvent& event)
 167: {
 168:     render_loop_on = true;
 169: }
 170:  
 171: // set render_loop_on true, make OnIdle can skip draw text
 172: void tmp1Frame::OnStopLoop(wxCommandEvent& event)
 173: {
 174:     render_loop_on = false;
 175: }
 176:  
 177: // paint depend on render_loop_on is true or off
 178: void tmp1Frame::OnIdle(wxIdleEvent& event)
 179: {
 180:     if (render_loop_on)
 181:     {
 182:         PaintNow();
 183:         event.RequestMore();
 184:     }
 185: }
 186:  
 187: void tmp1Frame::PaintNow()
 188: {
 189:     wxClientDC dc(this);
 190:     render(dc);
 191: }
 192:  
 193: // draw text on screen
 194: void tmp1Frame::render(wxDC& dc)
 195: {
 196:     static int y = 0;
 197:     static int y_speed = 2;
 198:  
 199:     y += y_speed;
 200:     if (y < 0) y_speed = 2;
 201:     if (y > 200) y_speed = -2;
 202:  
 203:     dc.SetBackground(*wxWHITE_BRUSH);
 204:     dc.Clear();
 205:     dc.DrawText(wxT("Testing"),40,y);
 206: }
 207:  

2. 時間處理方式

采用onTimer,具有較為固定的處理頻率,當處理其他操作如打開菜單式,并不會中止;速度不像事件處理方式那么快,實現的速率與操作系統相關。

目前知道的wxTimer實現的方式有兩種,1. 采用EVT_TIMER事件處理方式(該處理方法已經在文簡易定時器設計中實現) 2. 創建一個wxTimer的子類,然后對wxTimer中的Notify函數進行重載。

下面采用第二種方式,進行實現。

tmp1Main.h

   1: /***************************************************************
   2:  * Name:      tmp1Main.h
   3:  * Purpose:   Defines Application Frame
   4:  * Author:    grass in moon 
   5:  * Created:   2012-07-06
   6:  * Copyright: grass in moon (http://m.shnenglu.com/grass-and-moon/)
   7:  * License:
   8:  **************************************************************/
   9:  
  10: #ifndef TMP1MAIN_H
  11: #define TMP1MAIN_H
  12:  
  13: #ifndef WX_PRECOMP
  14: #include <wx/wx.h>
  15: #endif
  16:  
  17: #include "tmp1App.h"
  18:  
  19: class RenderTimer;         // make renderTimer.h not influence this file compling time
  20:  
  21: class tmp1Frame: public wxFrame
  22: {
  23: public:
  24:     tmp1Frame(wxFrame *frame, const wxString& title);
  25:     ~tmp1Frame();
  26:  
  27:     // for painting
  28:     void PaintNow();
  29:     void render(wxDC& dc);
  30:  
  31: private:
  32:     // derived from wxTimer
  33:     RenderTimer* timer;
  34:  
  35:     enum
  36:     {
  37:         idMenuQuit = 1000,
  38:         idMenuAbout,
  39:         idStartLoop,
  40:         idStopLoop
  41:     };
  42:  
  43:     void OnClose(wxCloseEvent& event);
  44:     void OnQuit(wxCommandEvent& event);
  45:     void OnAbout(wxCommandEvent& event);
  46:     void OnStartLoop(wxCommandEvent& event);
  47:     void OnStopLoop(wxCommandEvent& event);
  48:  
  49:     DECLARE_EVENT_TABLE()
  50: };
  51:  
  52: #endif // TMP1MAIN_H

tmp1Main.cpp

   1: /***************************************************************
   2:  * Name:      tmp1Main.cpp
   3:  * Purpose:   Code for Application Frame
   4:  * Author:    grass in moon 
   5:  * Created:   2012-07-06
   6:  * Copyright: grass in moon (http://m.shnenglu.com/grass-and-moon/)
   7:  * License:
   8:  **************************************************************/
   9:  
  10: #ifdef WX_PRECOMP
  11: #include "wx_pch.h"
  12: #endif
  13:  
  14: #ifdef __BORLANDC__
  15: #pragma hdrstop
  16: #endif //__BORLANDC__
  17:  
  18: #include "tmp1Main.h"
  19: #include "renderTimer.h"
  20:  
  21: //helper functions
  22: enum wxbuildinfoformat
  23: {
  24:     short_f, long_f
  25: };
  26:  
  27: wxString wxbuildinfo(wxbuildinfoformat format)
  28: {
  29:     wxString wxbuild(wxVERSION_STRING);
  30:  
  31:     if (format == long_f )
  32:     {
  33: #if defined(__WXMSW__)
  34:         wxbuild << _T("-Windows");
  35: #elif defined(__WXMAC__)
  36:         wxbuild << _T("-Mac");
  37: #elif defined(__UNIX__)
  38:         wxbuild << _T("-Linux");
  39: #endif
  40:  
  41: #if wxUSE_UNICODE
  42:         wxbuild << _T("-Unicode build");
  43: #else
  44:         wxbuild << _T("-ANSI build");
  45: #endif // wxUSE_UNICODE
  46:     }
  47:  
  48:     return wxbuild;
  49: }
  50:  
  51: BEGIN_EVENT_TABLE(tmp1Frame, wxFrame)
  52:     EVT_CLOSE(tmp1Frame::OnClose)
  53:     EVT_MENU(idMenuQuit, tmp1Frame::OnQuit)
  54:     EVT_MENU(idMenuAbout, tmp1Frame::OnAbout)
  55:     EVT_MENU(idStartLoop, tmp1Frame::OnStartLoop)
  56:     EVT_MENU(idStopLoop, tmp1Frame::OnStopLoop)
  57: END_EVENT_TABLE()
  58:  
  59: tmp1Frame::tmp1Frame(wxFrame *frame, const wxString& title)
  60:     : wxFrame(frame, -1, title)
  61: {
  62: #if wxUSE_MENUS
  63:     // create a menu bar
  64:     wxMenuBar* mbar = new wxMenuBar();
  65:     wxMenu* fileMenu = new wxMenu(_T(""));
  66:     fileMenu->Append(idMenuQuit, _("&Quit\tAlt-F4"), _("Quit the application"));
  67:     fileMenu->Append(idStartLoop, _("St&artLoop"));       // for starting draw text
  68:     fileMenu->Append(idStopLoop, _("Sto&pLoop"));         // for stoping draw text
  69:     mbar->Append(fileMenu, _("&File"));
  70:  
  71:     wxMenu* helpMenu = new wxMenu(_T(""));
  72:     helpMenu->Append(idMenuAbout, _("&About\tF1"), _("Show info about this application"));
  73:     mbar->Append(helpMenu, _("&Help"));
  74:  
  75:     SetMenuBar(mbar);
  76: #endif // wxUSE_MENUS
  77:  
  78: #if wxUSE_STATUSBAR
  79:     // create a status bar with some information about the used wxWidgets version
  80:     CreateStatusBar(2);
  81:     SetStatusText(_("Hello Code::Blocks user!"),0);
  82:     SetStatusText(wxbuildinfo(short_f), 1);
  83: #endif // wxUSE_STATUSBAR
  84:  
  85:     timer = new RenderTimer(this);
  86: }
  87:  
  88:  
  89: tmp1Frame::~tmp1Frame()
  90: {
  91:     delete timer;
  92: }
  93:  
  94: void tmp1Frame::OnClose(wxCloseEvent &event)
  95: {
  96:     Destroy();
  97: }
  98:  
  99: void tmp1Frame::OnQuit(wxCommandEvent &event)
 100: {
 101:     Destroy();
 102: }
 103:  
 104: void tmp1Frame::OnAbout(wxCommandEvent &event)
 105: {
 106:     wxString msg = wxbuildinfo(long_f);
 107:     wxMessageBox(msg, _("Welcome to..."));
 108: }
 109:  
 110: // set render_loop_on true, make OnIdle can draw text
 111: void tmp1Frame::OnStartLoop(wxCommandEvent& event)
 112: {
 113:     timer->StartLoop();
 114: }
 115:  
 116: // set render_loop_on true, make OnIdle can skip draw text
 117: void tmp1Frame::OnStopLoop(wxCommandEvent& event)
 118: {
 119:     timer->StopLoop();
 120: }
 121:  
 122: void tmp1Frame::PaintNow()
 123: {
 124:     wxClientDC dc(this);
 125:     render(dc);
 126: }
 127:  
 128: // draw text on screen
 129: void tmp1Frame::render(wxDC& dc)
 130: {
 131:     static int y = 0;
 132:     static int y_speed = 2;
 133:  
 134:     y += y_speed;
 135:     if (y < 0) y_speed = 2;
 136:     if (y > 200) y_speed = -2;
 137:  
 138:     dc.SetBackground(*wxWHITE_BRUSH);
 139:     dc.Clear();
 140:     dc.DrawText(wxT("Testing"),40,y);
 141: }

renderTimer.h

   1: /***************************************************************
   2:  * Name:      renderTimer.h
   3:  * Purpose:   used for onTimer
   4:  * Author:    grass in moon 
   5:  * Created:   2012-07-06
   6:  * Copyright: grass in moon (http://m.shnenglu.com/grass-and-moon/)
   7:  * License:
   8:  **************************************************************/
   9:  
  10: #ifndef RENDERTIMER_H_INCLUDED
  11: #define RENDERTIMER_H_INCLUDED
  12:  
  13: class tmp1Frame;
  14:  
  15: class RenderTimer : public wxTimer
  16: {
  17:     tmp1Frame* tmpFrame;
  18: public:
  19:     RenderTimer(tmp1Frame* tmpFrame);
  20:     void Notify();
  21:     void StartLoop();
  22:     void StopLoop();
  23: };
  24:  
  25: #endif // RENDERTIMER_H_INCLUDED

renderTimer.cpp

   1: /***************************************************************
   2:  * Name:      renderTimer.cpp
   3:  * Purpose:   used for onTimer
   4:  * Author:    grass in moon 
   5:  * Created:   2012-07-06
   6:  * Copyright: grass in moon (http://m.shnenglu.com/grass-and-moon/)
   7:  * License:
   8:  **************************************************************/
   9: #include "tmp1Main.h"
  10: #include "renderTimer.h"
  11:  
  12: RenderTimer::RenderTimer(tmp1Frame* tmpFrame)
  13: {
  14:     this->tmpFrame = tmpFrame;
  15: }
  16:  
  17: // perform the draw text action
  18: void RenderTimer::Notify()
  19: {
  20:     tmpFrame->PaintNow();
  21: }
  22:  
  23: // set the interval time is 10 ms
  24: void RenderTimer::StartLoop()
  25: {
  26:     wxTimer::Start(10);
  27: }
  28:  
  29: void RenderTimer::StopLoop()
  30: {
  31:     wxTimer::Stop();
  32: }

posted on 2012-07-06 11:17 鐘謝偉 閱讀(1538) 評論(0)  編輯 收藏 引用

<2012年7月>
24252627282930
1234567
891011121314
15161718192021
22232425262728
2930311234

導航

統計

常用鏈接

留言簿(1)

隨筆檔案

IT網站

My Friends

搜索

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久精品麻豆| 另类亚洲自拍| 精品二区视频| 在线成人中文字幕| 永久91嫩草亚洲精品人人| 国内精品久久久久影院 日本资源| 国产精品视频xxxx| 精品动漫3d一区二区三区免费版 | 小黄鸭精品密入口导航| 欧美在线视频一区二区| 久久亚洲一区二区| 欧美日韩免费高清| 国产日韩一区二区| 亚洲精品裸体| 午夜视频久久久| 麻豆国产精品一区二区三区| 亚洲精品美女在线| 一本色道久久88综合亚洲精品ⅰ | 亚洲第一视频网站| 亚洲视频一区二区在线观看 | 久久久久久黄| 91久久精品国产91性色tv| 亚洲特黄一级片| 久久综合导航| 国产精品日本| 日韩视频中文字幕| 久久久久久久国产| 久久精品国产一区二区三| 国内外成人免费激情在线视频| 在线精品高清中文字幕| 亚洲神马久久| 欧美国产日韩一区二区三区| 亚洲欧美日韩国产综合| 欧美肥婆在线| 国产偷国产偷亚洲高清97cao| 亚洲电影成人| 99精品99久久久久久宅男| 亚洲男人第一网站| 麻豆乱码国产一区二区三区| 99国产精品视频免费观看| 久久精品国产77777蜜臀| 欧美日韩直播| 亚洲美女91| 免费观看日韩| 欧美亚洲视频一区二区| 欧美午夜精彩| 一个色综合av| 亚洲动漫精品| 久久成人精品| 国产永久精品大片wwwapp| 亚洲欧美清纯在线制服| 亚洲黄色成人久久久| 久久精品夜色噜噜亚洲a∨ | 久久亚洲国产精品日日av夜夜| 国产精品夜色7777狼人| 亚洲一区日本| 亚洲视频在线免费观看| 国产精品久久午夜| 欧美一区二区三区在线| 亚洲日本无吗高清不卡| 久久久噜噜噜久久狠狠50岁| 欧美一二三视频| 国产一区91| 毛片av中文字幕一区二区| 久久久久九九视频| 亚洲激情成人| 亚洲久久在线| 国产精品极品美女粉嫩高清在线| 亚洲欧美国产日韩中文字幕| 亚洲一区国产视频| 国产欧美日韩在线播放| 久久久九九九九| 久久琪琪电影院| 亚洲日本无吗高清不卡| 亚洲毛片在线观看.| 国产精品九九| 久久亚洲私人国产精品va| 久久综合一区二区| 亚洲美女av黄| 亚洲综合999| 精品成人国产| 亚洲精品久久久蜜桃| 国产精品麻豆欧美日韩ww| 久久亚洲精品欧美| 欧美日韩一区在线| 久热国产精品| 欧美日韩国产一区二区三区地区| 亚洲一区免费视频| 久久国产精品99国产| 欧美在线综合视频| 亚洲人成免费| 亚洲欧美日韩国产综合精品二区| 国际精品欧美精品| 亚洲精品中文在线| 狠狠色狠狠色综合日日91app| 最新日韩在线| 国产亚洲精品bt天堂精选| 亚洲福利精品| 国模叶桐国产精品一区| 99国产精品久久久久久久| 韩国v欧美v日本v亚洲v| 99视频超级精品| 亚洲第一精品夜夜躁人人躁| 亚洲视频1区2区| 亚洲日韩欧美一区二区在线| 亚洲欧美成人一区二区三区| 亚洲人成久久| 久久一本综合频道| 久久av一区二区三区亚洲| 欧美啪啪成人vr| 女女同性精品视频| 国产亚洲激情| 亚洲一区综合| 亚洲一区二区3| 欧美大片网址| 免费日韩av电影| 国产麻豆午夜三级精品| 亚洲欧洲精品一区二区三区| 伊人一区二区三区久久精品| 在线亚洲一区| 久久免费高清| 久久精品人人做人人爽| 国产精品成人一区二区三区夜夜夜| 欧美电影美腿模特1979在线看| 国产自产女人91一区在线观看| 亚洲天堂av电影| 亚洲一区久久| 国产精品久久久久aaaa九色| 亚洲精品国产品国语在线app| 在线精品国精品国产尤物884a| 午夜久久tv| 久久精品中文字幕免费mv| 国产美女精品免费电影| 一区二区三区视频在线看| 一区二区三区www| 欧美全黄视频| 日韩亚洲欧美一区二区三区| 亚洲美女色禁图| 欧美日韩国产片| 亚洲午夜精品久久| 性欧美大战久久久久久久久| 欧美三区视频| 亚洲少妇诱惑| 欧美主播一区二区三区| 国产欧美日韩激情| 欧美伊久线香蕉线新在线| 欧美在线视频免费观看| 国内精品亚洲| 女同性一区二区三区人了人一| 欧美黄色成人网| 在线视频欧美一区| 国产伦精品一区二区三区在线观看| 亚洲欧美国产高清va在线播| 久久欧美中文字幕| 亚洲国产欧美一区二区三区久久| 久久在线观看视频| 亚洲三级影院| 午夜精品一区二区在线观看| 一区二区三区在线观看视频| 久久久噜噜噜久久中文字免| 女人天堂亚洲aⅴ在线观看| 亚洲激情av| 欧美午夜剧场| 欧美有码在线视频| 欧美成人免费在线视频| 久久精品最新地址| 久久亚洲欧美国产精品乐播| 亚洲欧洲一区二区三区久久| 欧美日韩日日骚| 久久精品视频免费观看| 亚洲精品老司机| 欧美在线中文字幕| 亚洲日本激情| 国产精品视频免费观看| 久久婷婷国产综合尤物精品| 亚洲国产一区视频| 久久国产精品久久久| 亚洲国产精品一区在线观看不卡| 欧美日韩高清在线| 久久久精品国产免费观看同学| 一本综合久久| 欧美激情一区二区三区在线| 香蕉免费一区二区三区在线观看 | 小嫩嫩精品导航| 亚洲日韩中文字幕在线播放| 国产精品永久| 欧美丝袜一区二区| 麻豆乱码国产一区二区三区| 亚洲综合日韩中文字幕v在线| 欧美激情中文字幕乱码免费| 欧美资源在线观看| 亚洲午夜一区二区三区| 亚洲夫妻自拍| 国产性天天综合网| 国产精品美女久久久久久2018| 蜜臀av在线播放一区二区三区| 欧美亚洲在线观看| 亚洲一区影音先锋| 一本色道精品久久一区二区三区| 亚洲国产精品一区二区第四页av|