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

Cpper
C/C++高級(jí)工程師 Android高級(jí)軟件工程師 IT集成工程師 音頻工程師 熟悉c,c++,java,c#,py,js,asp等多種語言 程序猿

以前看過很長時(shí)間的boost,記得上面有STATIC_ASSERT
在loki庫中也有類似的宏
1 LOKI_STATIC_CHECK(expr, msg)
其中expr代表要斷言的表達(dá)式
當(dāng)其為假,則讓程序無法通過編譯
其實(shí)現(xiàn)很簡單
利用模板特化:

1     template<int> struct CompileTimeError;
2     template<> struct CompileTimeError<true> {};
當(dāng)表達(dá)式為真則使用模板特化形式
注意其模板在這里僅僅做前向引用
再看具體的宏:
1 #define LOKI_STATIC_CHECK(expr, msg) \
2     { Loki::CompileTimeError<((expr) != 0)> ERROR_##msg; (void)ERROR_##msg; } 
使用代碼塊(statement block)
聲明一個(gè)編譯時(shí)錯(cuò)誤對(duì)象
(具體原因在于當(dāng)條件為假則模板對(duì)象沒有具體實(shí)現(xiàn),拋出一個(gè)未定義完全的對(duì)象)
9 D:\Dev-Cpp\prj\test\main.cpp aggregate `Loki::CompileTimeError<0> ERROR_wo' has incomplete type and cannot be defined 

對(duì)于其宏的實(shí)現(xiàn)在我看來
(void)ERROR_##msg;這句是多余的(不知道這句的作用是什么??誰能告訴我)
posted @ 2010-04-01 21:44 ccsdu2009 閱讀(2590) | 評(píng)論 (13)編輯 收藏
 
     摘要: 設(shè)計(jì)引擎的時(shí)候一直在考慮什么時(shí)候才可以支持多渲染器,比如d3d9比如軟件渲染器為了盡可能的讓opengl的API盡可能的與引擎代碼分離我加上了一個(gè)初步封裝了opengl API的類VideoDriver當(dāng)前只是簡單的封裝了很多opengl的函數(shù)代碼如下: Code highlighting produced by Actipro CodeHighlighter (freeware)http://...  閱讀全文
posted @ 2010-04-01 21:05 ccsdu2009 閱讀(339) | 評(píng)論 (3)編輯 收藏
 
1.ode引擎中的幾何體
ode物理引擎中的幾何體有球體,盒子,膠囊,射線,平面,圓柱,網(wǎng)格等等
對(duì)于一般的幾何體比如球體,盒子等其默認(rèn)的位置為原點(diǎn),也就是其中心點(diǎn)在坐標(biāo)原點(diǎn)
那么對(duì)于box來說描述一個(gè)盒子只需要3個(gè)參變量分別為長高寬
對(duì)于Capped Cylinder來說
其特點(diǎn)就是在圓柱的上下地上各加了一個(gè)半圓形的帽子,其新生產(chǎn)的圓柱軸總是z軸
2.ode geom和body的關(guān)系
geom是簡單的幾何體
body可以代表物理場景對(duì)象
一般而言一個(gè)body總是對(duì)應(yīng)于1個(gè)或者多個(gè)幾何體
一個(gè)物理對(duì)象總是包含1個(gè)或者多個(gè)幾何體
當(dāng)然ode有函數(shù)可以檢測給定幾何體和物理對(duì)象的管理
對(duì)于body之間也有函數(shù)檢測他們是不是相連的
3. ode關(guān)節(jié)類型
ode 具有5種類型的關(guān)節(jié)分別為
hinge,ball,slider,unversal(萬向輪)以及hinge2
hinge是常見的合頁那種關(guān)節(jié)形式
ball類型于游戲搖桿
slider:插銷形式
hinge2則是帶有軸的關(guān)節(jié)
其中大多數(shù)關(guān)節(jié)都具有內(nèi)置的馬達(dá)而球-渦球則不具有
Mos t joints  have motors  built in.Ball and sockets do not
3.彈簧-阻尼系統(tǒng)
2種解決方式
    1.簡單的:使用erp和cfm
    2.復(fù)雜點(diǎn)的:使用物理方程式
    
     1.erp模式:施加力保持關(guān)節(jié)附著物理不偏離
     2.cfm模式-constraint force mixing

     胡克定律:非k*(ra-a);
    帶阻尼的形式: f = k*(ra-a)-d*da
4.如何保持ode模擬的平穩(wěn)性
     1.僵硬的彈簧不可取
     2.嚴(yán)格的束縛條件
     3....
5.如果保持ode模擬更快
     1.使用較少的關(guān)節(jié)
     2.使用簡單的替代物替換多重關(guān)節(jié)
     3.使用較少的接觸面
     4.如果可能使用無摩擦或者粘性接觸面替換庫倫摩擦接觸面
6.ode質(zhì)量函數(shù)類..
清空質(zhì)量
void dMassSetZero (dMass *);
void dMassSetSphere (dMass *, dReal density, dReal radius);
void dMassSetSphereTotal (dMass *, dReal total_mass, dReal radius);
void dMassSetCappedCylinder (dMass *, dReal density, int direction,dReal radius, dReal length);
void dMassSetCappedCylinderTotal (dMass *, dReal total_mass,int direction, dReal radius, dReal length);
void dMassSetCylinder (dMass *, dReal density, int direction,dReal radius, dReal length);
void dMassSetCylinderTotal (dMass *, dReal total_mass, int direction,dReal radius, dReal length);    
void dMassSetBox (dMass *, dReal density,dReal lx, dReal ly, dReal lz);
void dMassSetBoxTotal (dMass *, dReal total_mass,dReal lx, dReal ly, dReal lz);         
void dMassAdjust (dMass *, dReal newmass);
void dMassTranslate (dMass *, dReal x, dReal y, dReal z);  
void dMassRotate (dMass *, const dMatrix3 R);
void dMassAdd (dMass *a, const dMass *b);
   

 
  
posted @ 2010-03-31 10:45 ccsdu2009 閱讀(2136) | 評(píng)論 (0)編輯 收藏
 
這是新版蓋莫游戲引擎2.1.1中全腳本控制的粒子系統(tǒng)
相關(guān)的配套lua腳本(以后還會(huì)加入對(duì)python等腳本的支持)
  1 -- 這是蓋莫引擎中使用lua腳本的測試粒子
  2 
  3 -- 定義粒子池粒子個(gè)數(shù)
  4 max_particles = 2400
  5 
  6 -- 定義粒子初始位置
  7 particle_pos_x = 0.0
  8 particle_pos_y = 0.0
  9 particle_pos_z = 2.0
 10 
 11 -- 定義重力加速度
 12 gravity = 9.8
 13 
 14 -- 定義粒子大小
 15 particle_size = 0.8
 16 
 17 -- 定義粒子壽命
 18 particle_life = 8.2
 19 
 20 -- 定義批處理粒子個(gè)數(shù)
 21 batch_particles = 80
 22 
 23 -- 定義粒子和地面之間的摩擦力
 24 friction = 0.75
 25 
 26 -- 定義粒子系統(tǒng)發(fā)射半徑
 27 fountain_radius = 1.6
 28 
 29 -- 定義粒子范圍半徑
 30 particle_r = (fountain_radius + particle_size/2)*(fountain_radius + particle_size/2)
 31 
 32 -- 初始化隨機(jī)種子
 33 function InitRand()
 34    math.randomseed(os.time())
 35 end
 36   
 37 -- 定義粒子速度
 38 particle_vel = 8.0
 39 
 40 -- 獲取時(shí)間對(duì)應(yīng)的速度值
 41 function GetVelByTime(t)
 42     return particle_vel*(0.8 + 0.1*(math.sin(0.5*t)+math.sin(0.31*t)))
 43 end
 44    
 45 -- 獲取xy平面隨機(jī)轉(zhuǎn)角
 46 function GetRandRotXY()
 47     return (2.0*3.14159265/4096.0* math.random(1,4095)
 48 end   
 49 
 50 function InitParticles(dt)
 51     -- 定義粒子初始位置
 52     local xpos=particle_pos_x
 53     local ypos=particle_pos_y
 54     local zpos=particle_pos_z
 55     -- 初始化粒子顏色red,green,blue
 56     local red=0.7 + 0.3 * math.sin(0.34*dt + 0.1)
 57     local green=0.6 + 0.4 * math.sin(0.63*dt + 1.1)
 58     local blue=0.6 + 0.4 * math.sin(0.91*dt + 2.1)
 59     ---- 獲取粒子隨機(jī)速度x分量
 60     local xy_angle = GetRandRotXY()
 61     local vt = GetVelByTime(dt)
 62     local xvel=0.45 * math.cos(xy_angle)*vt
 63     -- 獲取粒子隨機(jī)速度y分量
 64     xy_angle = GetRandRotXY()
 65     vt = GetVelByTime(dt)
 66     local yvel=0.45 * math.sin(xy_angle)*vt
 67     -- 獲取粒子初始速度
 68     local zvel=0.7 + (0.3/4096.0* (math.random(1,4095))
 69     return xpos,ypos,zpos,
 70            red,green,blue,
 71            xvel,yvel,zvel
 72 end
 73 
 74 -- 更新粒子狀態(tài)
 75 function UpdateParticles(life,xpos,ypos,zpos,xvel,yvel,zvel,red,green,blue,dt)
 76     -- 修正粒子生命
 77     local new_life = life - dt * (1.0 / particle_life)
 78     -- 修正粒子速度
 79     local new_zvel = zvel - gravity  *dt
 80     local new_xpos = xpos + xvel*dt
 81     local new_ypos = ypos + yvel*dt
 82     local new_zpos = zpos + new_zvel*dt 
 83     if new_zvel < 0.0 then
 84         if new_xpos*new_xpos + new_ypos*new_ypos < particle_r and new_zpos < particle_pos_z + particle_size/2 then
 85             new_zvel = -friction * new_zvel
 86             new_zpos  = particle_pos_z + particle_size/2 + friction * (particle_pos_z + particle_size/2 - new_zpos)
 87         -- 當(dāng)粒子碰撞到地面應(yīng)該跳起來
 88         elseif new_zpos < particle_size/2 then
 89             new_zvel = -friction * new_zvel
 90             new_zpos  = particle_size/2 + friction * (particle_size/2 - new_zpos)
 91         end
 92     end   
 93     
 94     return new_life,
 95            new_xpos,new_ypos,new_zpos,
 96            red,green,blue,
 97            xvel,yvel,new_zvel
 98 end
 99 
100 --[[
101 蓋莫引擎2.1.1使用的lua粒子腳本格式如下:
102 全局變量:
103 batch_particles
104 particle_size
105 particle_life
106 max_particles
107 
108 粒子初始化函數(shù):
109 InitParticles(dt)(參數(shù)當(dāng)前時(shí)間)
110 返回位置,顏色,速度
111 
112 粒子更新函數(shù):
113 UpdateParticles(life,xpos,ypos,zpos,xvel,yvel,zvel,dt)
114 返回更新后的粒子壽命,位置,顏色以及速度
115 ]]
116 
這是引擎當(dāng)前粒子系統(tǒng)配置的腳本文件
可以改動(dòng)的就是例子初始化和更新函數(shù)的實(shí)現(xiàn)
粒子初始化函數(shù)有1個(gè)時(shí)間輸入?yún)?shù)
9個(gè)輸出參數(shù)分別為:位置顏色速度
更新函數(shù)有粒子壽命,位置顏色速度和當(dāng)前時(shí)間
傳回參數(shù)有粒子新壽命,粒子位置,顏色和速度
另外幾個(gè)不可缺少的全局粒子變量有
batch_particles
particle_size
particle_life
max_particles
含義就不提了
對(duì)應(yīng)的cpp代碼如下:

 1 #include <GEngine/Gaimo.hpp>
 2 using namespace core; 
 3 void TransForm(double t);
 4  
 5 //! 設(shè)備指針 
 6 RefPtr<Device> device;
 7 //! 視頻驅(qū)動(dòng)指針
 8 RefPtr<VideoDriver> videodriver; 
 9 //! 3角函數(shù)表指針
10 RefPtr<libmath::TriTable> table; 
11 
12 int main(int argc, char **argv)
13 {
14     double     t0, t;
15     device = core::InitDevice("蓋莫引擎粒子測試1",argv[0]);
16     videodriver = device->GetVideoDriver(); 
17     table = device->GetTriTable();
18     
19     core::ParticleSystemDesc desc = device->GetLuaContext()->GetParticleSystemDesc("..\\script//particle1.lua");
20     core::RefPtr<core::ParticleSystem> ps = device->GetSceneManager()->GetParticleSystem(desc);
21 
22     t0 = device->GetTime();
23     BEGIN_LOOP(device)
24         t = device->GetTime() - t0;
25         videodriver->SetViewPort(Recti(0,0,640,480));
26         videodriver->SetClearColor(Color(0.0f0.0f0.3f1.0f));
27         videodriver->SetClearBuffer(ENGINE_CLEAR_COLOR | ENGINE_CLEAR_DEPTH);
28         videodriver->SetPerpective(65.0f,64.0/48.0,1.0f,60.0f);
29         TransForm(t);
30         ps->Render();
31     END_LOOP(device)
32     return 0;
33 }
34 
35 void TransForm(double t)
36 {
37     double xpos, ypos, zpos, angle_x, angle_y, angle_z;
38     static double t_old = 0.0;
39     float  dt = (float)(t-t_old);
40     t_old = t;
41 
42     angle_x = 80;
43     angle_y = 10.0 * table->SinTable( 0.3 * t );
44     angle_z = 10.0 * t;
45  
46     xpos =  15.0 * table->SinTable( (M_PI/180.0* angle_z ) +
47              2.0 * table->SinTable( (M_PI/180.0* 3.1 * t );
48     ypos = -15.0 * table->CosTable( (M_PI/180.0* angle_z ) +
49              2.0 * table->CosTable( (M_PI/180.0* 2.9 * t );
50     zpos = 4.0 + 2.0 * table->CosTable( (M_PI/180.0* 4.9 * t );
51     videodriver->SetPilotView(xpos,ypos,zpos,angle_z,angle_y,angle_x);
52 }

使用方法很簡單就是從設(shè)備指針獲取lua上下文然后傳入粒子配置腳本文件
獲取粒子描述符
之后以其為參數(shù)從場景管理中獲取粒子系統(tǒng)即可使用
夠簡潔吧
截圖如下:
posted @ 2010-03-30 12:07 ccsdu2009 閱讀(1353) | 評(píng)論 (3)編輯 收藏
 
這是使用蓋莫游戲引擎播放視頻的例子

當(dāng)前解碼器為ffmpeg.

以后還會(huì)使用dxshow解碼
播放代碼如下:
 1 #include <stdio.h>
 2 #include <GEngine/Gaimo.hpp>
 3 
 4 using namespace core;
 5 
 6 bool state = 0;
 7 //! 視頻播放完成后的處理工作
 8 inline void IsVideoEnded(){state = 1;} 
 9 
10 using namespace core; 
11 int main()
12 {
13     RefPtr<Device> device = InitDevice("視頻播放");
14     //! 獲取視頻播放器指針
15     RefPtr<VideoPlayer> player = device->GetVideoPlayer();
16     //! 不處理音頻的話那么視頻將會(huì)是無聲的O(∩_∩)O~ 
17     core::RefPtr<core::AudioDevice> audiodevice = device->GetAudioDevice();
18     uint16 number = audiodevice->GetAudioDeviceNumber(); 
19     engine_string audiodeviceinde = audiodevice->GetDeviceByIndex(1);
20     std::cout<<audiodevice->GetDeviceByIndex(1)<<std::endl; 
21     std::cout<<audiodevice->GetDefaultDeviceName()<<std::endl; 
22     std::cout<<"初始化音頻設(shè)備"<<audiodevice->Init(audiodeviceinde,4,0)<<std::endl;  
23     player->isstoped.connect( sigc::ptr_fun(&IsVideoEnded));
24     player->Play("..\\video//1.Mp4",Rectf(-1,-1,2,2)); 
25     player->SetVolume(1.0f);    
26     
27     BEGIN_LOOP(device)
28         player->Update();
29         BREAK_LOOP(state,1);
30     END_LOOP(device)
31     return 0;
32 }
33 


可以看出當(dāng)前代碼使用sigc++作為插槽系統(tǒng)當(dāng)播放結(jié)束的時(shí)候程序自動(dòng)退出(當(dāng)然可選sigslot)O(∩_∩)O~

截圖如下:

posted @ 2010-03-27 08:54 ccsdu2009 閱讀(344) | 評(píng)論 (0)編輯 收藏
 
這幾天一直在做引擎的視頻播放問題
1.3版本的引擎采用的是vlc視頻處理庫
使用vlc庫其實(shí)還可以 就是外掛的插件太多了對(duì)我這樣的懶人來說又不大愿意動(dòng)手去編譯本來
引擎的視頻本來是打算采用,ffmpeg
最后考慮引擎當(dāng)前是基于opengl的那就采用ffmpeg吧(最少這個(gè)也可以跨平臺(tái)達(dá)到引擎設(shè)計(jì)的一貫要求)

視頻播放我感覺還是有點(diǎn)難度的
這涉及圖形,音頻多線程問題
所加的線程無非就是音頻線程解碼線程系統(tǒng)處理線程

需要說明的就是
手頭有3個(gè)ffmpeg版本(比較╮(╯_╰)╭)
a.包含了老版本的image_convert,avcodec_decode_audio
b.有 avcodec_decode_audio2,avcodec_decode_audio3,
c.是最新的sdk;FFmpeg-full-SDK-3.2

簡單描述下:
image_convert 大致上相當(dāng)于:sws_scale
而avcodec_decode_audio2基本等于avcodec_decode_audio(注意是基本而不是絕對(duì)等于)
不過還有一個(gè)比較新的avcodec_decode_audio3

如果采用的是ffplay那種方式的話不會(huì)涉及到多線程渲染
對(duì)于蓋莫引擎來說 當(dāng)前基于opengl,那么在這里使用opengl多線程是十分必要的
因?yàn)橐谥骶€程渲染,在視頻解碼線程build圖片

另外對(duì)于avpicture_get_size,avpicture_fill這些函數(shù)需要選擇合適的PIX_FMT_RGB
要不然會(huì)出現(xiàn)圖形錯(cuò)亂

此外視頻和音頻同步也是很重要的,引擎這里采用的是同步到視頻的方法

至于音頻的處理問題當(dāng)然是蓋莫音頻引擎了現(xiàn)成的啊.

最后說下涉及到得ffmpeg版本問題
關(guān)于avcodec_decode_audio2
如果舊的視頻代碼采用的是avcodec_decode_audio工作正常的話
如果替換為較新版本的avcodec_decode_audio2話 這里可能會(huì)出現(xiàn)內(nèi)存錯(cuò)誤的問題
我的解決方案就是使用最新的ffmpeg解決它



posted @ 2010-03-25 21:31 ccsdu2009 閱讀(2835) | 評(píng)論 (2)編輯 收藏
 
這是當(dāng)前蓋莫游戲引擎設(shè)計(jì)的簡單線程相關(guān)模塊,比較簡單
當(dāng)然也就通俗易懂了

最基本的Mutex...

 1 ////////////////////////////////////////////////////////
 2 /// 定義引擎線程互斥
 3 ////////////////////////////////////////////////////////
 4 class Mutex : public Object
 5 {
 6 public:
 7     Mutex(){}
 8     virtual ~Mutex(){}
 9 public:
10      ////////////////////////////////////////////////////
11     /// 鎖線程
12     ////////////////////////////////////////////////////
13     virtual void Lock() = 0;
14      ////////////////////////////////////////////////////
15     /// 解線程
16     ////////////////////////////////////////////////////    
17     virtual void UnLock() = 0;     
18     
19     DECLARE_OBJECT(Mutex)
20 };

方便的線程鎖
 1 ////////////////////////////////////////////////////////
 2 /// 定義引擎線程基本鎖
 3 ////////////////////////////////////////////////////////
 4 template<class Lock = RefPtr<Mutex> >
 5 class MutexLock
 6 {
 7 public:   
 8     MutexLock(Lock ptr):mutex(ptr){mutex->Lock();}
 9     ~MutexLock(){mutex->UnLock();}
10 private:
11     Lock mutex;    
12 };

簡單的更新和渲染同步類
 1 template<class T,class Mutex,class Condition>
 2 class ThreadSync
 3 {
 4 public:
 5     double time;    //! timestamp
 6     float  difftime;
 7     int    physics_frame;
 8     int    render_frame;
 9     Mutex  lock;
10     Condition physics_condition;
11     Condition render_condition;          
12 };

至于具體的使用嗎 期待蓋莫2.1.1版本吧O(∩_∩)O~

posted @ 2010-03-24 16:36 ccsdu2009 閱讀(1514) | 評(píng)論 (1)編輯 收藏
 
     摘要: 對(duì)于像游戲引擎的程序設(shè)計(jì)而言引擎的體系結(jié)構(gòu)的重要性質(zhì)是不言而喻的其中對(duì)象基類的設(shè)計(jì)也是很重要的主要的功能應(yīng)該包含以下方面:1.對(duì)象類型識(shí)別2.對(duì)象的繼承關(guān)系識(shí)別3.獲取對(duì)象名字4.獲取對(duì)象編號(hào)5.附帶有智能指針6.當(dāng)然必要的序列話作用也是必要的最基本的是對(duì)象引用計(jì)數(shù)類:  1 //////////////////////////////////////////////////...  閱讀全文
posted @ 2010-03-21 16:46 ccsdu2009 閱讀(1512) | 評(píng)論 (7)編輯 收藏
 
應(yīng)用程序正常初始化(0xc0000005)失敗.請單擊確定,終止應(yīng)用程序是一個(gè)很常見的錯(cuò)誤
常見的原因有指針初始化錯(cuò)誤
不過因?yàn)槭钦3跏蓟∷绣e(cuò)誤原因可能源于全局的靜態(tài)變量
對(duì)于具體的程序設(shè)計(jì)其原因還可能與涉及的其他動(dòng)態(tài)庫有關(guān)系O(∩_∩)O~
posted @ 2010-03-19 20:26 ccsdu2009 閱讀(2381) | 評(píng)論 (0)編輯 收藏
 

有時(shí)候我們需要typedef 一種模板
但是c++并沒有直接的解決方案
也就是這樣是不可行的.
typedef std::vector<T> myvector<T>;

間接的解決方式是:
(該代碼源于蓋莫游戲引擎代碼)

 1     #include <loki/flex/flex_string.h>
 2     typedef flex_string<char> engine_string;
 3     #include <loki/yasli/yasli_vector.h>     
 4     template<class T>      
 5     struct vector_typedef
 6     {
 7         typedef yasli::vector<T,std::allocator<T> > type;
 8     };   
 9     template<class T>      
10     struct list_typedef
11     {
12         typedef yasli::vector<T,std::allocator<T> >           type;       
13     };  

使用的時(shí)候是這樣的
     list_typedef<int>::type  v;
     list_typedef<Vector3f>::typedef veclist;
     ...
posted @ 2010-03-19 12:55 ccsdu2009 閱讀(5581) | 評(píng)論 (4)編輯 收藏
僅列出標(biāo)題
共38頁: First 30 31 32 33 34 35 36 37 38 
 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            日韩视频在线一区二区| 鲁鲁狠狠狠7777一区二区| 免费成人黄色av| 一区二区三区国产精品| 午夜精品久久久久影视| 久久综合九色综合欧美就去吻 | 久久综合国产精品台湾中文娱乐网| 亚洲一区二区三区欧美 | 香蕉久久精品日日躁夜夜躁| 亚洲视频网站在线观看| 亚洲激情午夜| 欧美黄污视频| 一区二区三区成人| 久久裸体视频| 99国产精品久久久久久久久久| 亚洲人成啪啪网站| 国产欧美日韩91| 欧美日韩视频免费播放| 欧美一二区视频| 亚洲剧情一区二区| 性欧美videos另类喷潮| 亚洲国产mv| 国产麻豆综合| 欧美三级网址| 欧美日韩成人一区二区| 欧美日韩国产首页| 欧美视频中文字幕在线| 国产伦精品一区二区三区高清 | 欧美成人综合网站| 欧美日韩一区二区三区| 久久久久国产一区二区| 亚洲欧美日韩中文播放| 午夜免费日韩视频| 欧美激情一二区| 欧美美女福利视频| 欧美日韩第一页| 91久久久国产精品| 最新成人在线| 午夜精品www| 亚洲激情综合| 亚洲欧美日韩在线综合| 国产亚洲va综合人人澡精品| 亚洲电影一级黄| 国产伦精品一区| 国产午夜精品久久| 99re66热这里只有精品3直播| 亚洲视频免费观看| 国产一区二区三区av电影 | 国产日韩一区二区三区在线播放| 在线一区二区日韩| 亚洲午夜久久久久久尤物 | 午夜影视日本亚洲欧洲精品| 狠狠色狠狠色综合| 在线一区二区三区四区五区| 一本一本久久a久久精品综合妖精| 国产精品免费观看视频| 狠狠网亚洲精品| 欧美sm视频| 久久久99精品免费观看不卡| 欧美日韩视频在线第一区| 午夜国产精品视频免费体验区| 欧美在线播放视频| 国产精品国产精品| 亚洲乱码国产乱码精品精天堂 | 亚洲欧洲综合另类在线| 亚洲一区二区三区久久| 亚洲欧美日韩精品久久久久| 久久夜色精品| 欧美精选一区| 欧美一级片一区| 欧美日本精品| 免费不卡视频| 136国产福利精品导航| 欧美一区影院| 亚洲一区二区成人在线观看| 一区二区视频欧美| 久久青草欧美一区二区三区| 欧美高清视频| 久久人体大胆视频| 国产精品xxx在线观看www| 艳女tv在线观看国产一区| 91久久黄色| 国内视频一区| 久久亚洲综合网| 国产欧美日韩麻豆91| 亚洲欧洲精品一区| 亚洲精品国精品久久99热| 亚洲欧洲日本一区二区三区| 国产一区二区三区在线播放免费观看 | 噜噜噜91成人网| 国产精品亚洲视频| 久久精品成人一区二区三区| 性做久久久久久久久| 在线视频亚洲一区| 欧美精品一区二区蜜臀亚洲| 美女视频黄 久久| 国产有码在线一区二区视频| 亚洲自拍啪啪| 亚洲国产电影| 久久精品动漫| 一区二区三区欧美日韩| 欧美69wwwcom| 9色国产精品| 欧美jizzhd精品欧美巨大免费| 美日韩精品视频免费看| 精品动漫3d一区二区三区免费| 香蕉久久国产| 欧美va天堂在线| 亚洲毛片在线| 欧美极品一区| 一本色道久久综合亚洲精品高清| 亚洲性视频网址| 国产精品夜夜夜一区二区三区尤| 在线一区观看| 亚洲经典三级| 欧美另类在线观看| 亚洲精品乱码久久久久久蜜桃91| 欧美视频不卡| 亚洲男女自偷自拍图片另类| 久久精品一区二区三区中文字幕 | aaa亚洲精品一二三区| 欧美日韩一区二区国产| 亚洲综合第一| 欧美成人精品影院| 亚洲全部视频| 亚洲午夜久久久久久尤物| 国产精品女人久久久久久| 欧美在线免费观看视频| 欧美福利视频在线| 一本色道久久88综合日韩精品| 国产精品白丝jk黑袜喷水| 欧美在线观看视频在线| 亚洲黄色视屏| 欧美一区二区视频免费观看| 红桃视频欧美| 欧美日韩视频在线一区二区 | 国产精品爽爽爽| 久久视频在线免费观看| 亚洲一区在线看| 久久久久成人网| 午夜精品久久久久| 欧美中文字幕精品| 亚洲激情黄色| 欧美一区日韩一区| 亚洲精品裸体| 国产一区二区三区免费在线观看| 欧美大胆a视频| 欧美国产精品日韩| 亚洲欧美国产高清va在线播| 尤物九九久久国产精品的分类| 欧美影院一区| 亚洲电影网站| 欧美一区国产一区| 夜夜嗨av一区二区三区| 国内激情久久| 国产精品久久久久91| 欧美国产成人精品| 久久国产免费看| 亚洲视频中文| 亚洲另类在线视频| 亚洲成在人线av| 精品91在线| 国产精品久久国产三级国电话系列| 久色成人在线| 亚洲国产精品激情在线观看| 亚洲福利av| 国产久一道中文一区| 欧美精品免费看| 欧美一区二区免费| 激情国产一区| 欧美精品色综合| 午夜精品亚洲一区二区三区嫩草| 欧美国产先锋| 91久久夜色精品国产网站| 国产精品热久久久久夜色精品三区| 老司机精品视频网站| 中文亚洲欧美| 亚洲激情图片小说视频| 久久久久久久97| 亚洲小视频在线| 亚洲美女一区| 99re6这里只有精品| 亚洲精品在线二区| 亚洲精品在线免费| 亚洲日本电影| 一本不卡影院| 亚洲视频成人| 亚洲尤物视频网| 性欧美大战久久久久久久久| 亚洲欧美在线aaa| 午夜在线视频观看日韩17c| 午夜精品一区二区三区在线| 欧美一级久久久| 久久亚洲影音av资源网| 欧美搞黄网站| 99精品国产在热久久下载| 欧美一区日本一区韩国一区| 欧美黄色免费| 老牛影视一区二区三区| 欧美精品福利|