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

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

以前在codeproject上看到過一篇關于內存池的文章(http://www.codeproject.com/KB/cpp/MemoryPool.aspx)
下載下來試了試,感覺有點問題
想給引擎加入內存池,考慮到當前業余時間在看Loki
就索性使用其SmallObject了
對于內存池當然要求之一那就是速度
其次對我來說我比較關系以下的這類問題
一句話概括就是
Base* ptr = new SubClass;
索性我就根據Loki庫和Boost的Object_Pool
設計了如下的引擎內存池(當然問題還很多以后慢慢修改)
#ifdef LOKI_EXT_LIB
#include 
<GEngine/Loki/Loki.hpp>
#else
    
#error 需要包含Loki庫
#endif 

namespace core
{

////////////////////////////////////////////////////////////
/// 定義蓋莫引擎2.1.2內存池對象 
////////////////////////////////////////////////////////////    
struct MemoryPool    
{
public:
       
    
////////////////////////////////////////////////////////
    
/// 獲取,釋放指定大小的內存 
    
////////////////////////////////////////////////////////        
    template<class T>
    
static T* Malloc(size_t size)
    {   
        
return (T*)MEMORY_POOL.Allocate(size,false);
    }   
    
    template
<class T>
    
static void  Free(T* ptr,size_t size)
    {
        MEMORY_POOL.Deallocate(ptr,size);      
    }
    
    
////////////////////////////////////////////////////////
    
/// 構造無參數的對象類型并返回指針 
    
////////////////////////////////////////////////////////       
    template<class T>
    
static T* Construct()
    {   
        
void* ptr = MEMORY_POOL.Allocate(OBJECT_SIZE(T),false);  
        
if(ptr == NULL)
            
return NULL; 
        
new(ptr)T();
        
return (T*)ptr;        
    }
    
    
////////////////////////////////////////////////////////
    
/// 構造帶有1個參數的對象類型并返回指針 
    
////////////////////////////////////////////////////////      
    template<class T,class P1>
    
static T* Construct(const P1 &p1)
    {   
        
void* ptr = MEMORY_POOL.Allocate(OBJECT_SIZE(T),false);  
        
if(ptr == NULL)
            
return NULL; 
        
new(ptr)T(p1);
        
return (T*)ptr;        
    }
 
    
////////////////////////////////////////////////////////
    
/// 構造帶有2個參數的對象類型并返回指針 
    
////////////////////////////////////////////////////////      
    template<class T,class P1,class P2>
    
static T* Construct(const P1 &p1,const P2 &p2)
    {   
        
void* ptr = MEMORY_POOL.Allocate(OBJECT_SIZE(T),false);  
        
if(ptr == NULL)
            
return NULL; 
        
new(ptr)T(p1,p2);
        
return (T*)ptr;        
    }
    
    
////////////////////////////////////////////////////////
    
/// 構造帶有3個參數的對象類型并返回指針 
    
////////////////////////////////////////////////////////    
    template<class T,class P1,class P2,class P3>
    
static T* Construct(const P1 &p1,const P2 &p2,const P3 &p3)
    {   
        
void* ptr = MEMORY_POOL.Allocate(OBJECT_SIZE(T),false);  
        
if(ptr == NULL)
            
return NULL; 
        
new(ptr)T(p1,p2,p3);
        
return (T*)ptr;        
    }
    
    
////////////////////////////////////////////////////////
    
/// 構造帶有4個參數的對象類型并返回指針 
    
////////////////////////////////////////////////////////      
    template<class T,class P1,class P2,class P3,class P4>
    
static T* Construct(const P1 &p1,const P2 &p2,const P3 &p3,const P4 &p4)
    {   
        
void* ptr = MEMORY_POOL.Allocate(OBJECT_SIZE(T),false);  
        
if(ptr == NULL)
            
return NULL; 
        
new(ptr)T(p1,p2,p3,p4);
        
return (T*)ptr;        
    }    
    
    
////////////////////////////////////////////////////////
    
/// 構造帶有5個參數的對象類型并返回指針 
    
////////////////////////////////////////////////////////      
    template<class T,class P1,class P2,class P3,class P4,class P5>
    
static T* Construct(const P1 &p1,const P2 &p2,const P3 &p3,const P4 &p4,const P5 &p5)
    {   
        
void* ptr = MEMORY_POOL.Allocate(OBJECT_SIZE(T),false);  
        
if(ptr == NULL)
            
return NULL; 
        
new(ptr)T(p1,p2,p3,p4,p5);
        
return (T*)ptr;        
    }                
   
    
////////////////////////////////////////////////////////
    
/// 給定對象的析構(size為對象大小) 
    
////////////////////////////////////////////////////////      
    template<class T>
    
static void Destruct(T* ptr, size_t size)
    {   
        
if(ptr == NULL || size <= 0)
            
return;
        ptr
->~T();    
        MEMORY_POOL.Deallocate(ptr,size);    
    }
    
    
////////////////////////////////////////////////////////
    
/// 獲取可分配的最大對象大小 
    
//////////////////////////////////////////////////////// 
    static int GetMaxObjSize()
    {    
        
return MEMORY_POOL.GetMaxObjectSize();
    }
    
    
////////////////////////////////////////////////////////
    
/// 獲取字節對齊字節數 
    
////////////////////////////////////////////////////////  
    static int GetAlignment()
    {   
        
return MEMORY_POOL.GetAlignment();
    }    
}; 
靜態的Malloc和Free是分配和釋放原生態的內存
而Construct,Destruct則是構造和析構對象形式的內存
這里提供了6個版本的Construct函數
分別對應0-5個構造函數參數

記得以前遇到的一個問題
那就是假如有一個對象 她沒有默認構造函數(只有帶參數構造函數)
如果現在需要分配N個她該如何操作?
那就是placement new 了

posted @ 2010-04-20 15:56 ccsdu2009 閱讀(759) | 評論 (0)編輯 收藏
 
發布最新版本的蓋莫游戲引擎2.1.1
首先說明當前內置demo列表:
1.字體測試                   +
2.圖形測試                   +
3.粒子測試-噴泉測試 +
4.音頻測試                  +
5.輸入輸出測試          +   
6.引擎框架                  +
7.3d音效測試              +
8.視頻播放                  +
9.BoingBall                   +
10.粒子火焰測試          +
11.立方體繪制測試         +
12.隧道進度仿真             +
13.天空盒測試               +
14.天空面測試               +
15.天空頂測試               +
16.地形測試                 +
17.物理測試1                +
18.物理測試2                +
19.物理測試1                +
20.物理測試2                +
21.md2模型測試             +
22.3ds模型測試              +
23.線程渲染                 +
24.光源測試                 +
25.立方體紋理               +
26.球面紋理                 +
27.多線程資源載入       +
..... 

下面是下次修改要點
2.1.2版本計劃加入或更新功能
1.音頻引擎(內置蓋莫音頻引擎1.2.8版本)
   1.支持audio capture
   2.支持midi音樂格式
2.文件系統
   1.對7z壓縮格式的支持
   2.支持xml配置文件
3.插件系統
   1.引入插件系統
4.GLSL
   1.對GLSL的支持
5.渲染引擎   
   1.對各類廣告牌的支持
   2.支持水面渲染
   3.支持動態天空
   4.支持lod地形
   5.支持md3模型
   6.支持環境映射
   7.加入渲染到紋理
   8.加入體積霧
   9.支持深度紋理
   10.支持壓縮紋理
   11.支持屏幕圖形捕獲
   12.支持投影紋理
6.內存池
   1.初步使用內存池(考慮Loki)
7.數學庫
   1.完善數學庫并作全面的優化處理
8.多線程
   1.加入引擎專用多線程計算器(用于求值計算)
9.框架
   1.修改InitDevice函數減少參數個數
9.其它
   1.加入GEngine水印
   2.支持設置,加載游標圖形(內置3種常見游標形狀圖標)
   3.加入一個新3D仿真程序
   4.others

下面是蓋莫QQ群列表:
蓋莫QQ群列表
1.蓋莫3群 超級群-高端技術:81836528
2.蓋莫0群 引擎討論:20997748
3.蓋莫玩家交流群:23376710
4.蓋莫新人集中營:49749954
5.蓋莫游戲開發群:58970936
6.其他蓋莫非技術群列表:...
再者是當前版本編譯
當前編譯版本為win32下的gcc版本
可使用codeblock,devc++設計游戲
下面是當前功能
蓋莫游戲引擎2.1.1功能描述
1.音頻引擎:內置蓋莫音頻引擎1.1.2版本
      支持wav,mp3,ogg3種音頻格式,
          基于流式多線程音頻播放
          真3d音效
          支持低通,次級音效(本模塊可獨立出售)
2.視頻系統:支持mp4,mpg等視頻格式(可替換為vlc模塊)
3.圖形處理:
      支持bmp,jpg,png,gif等28種圖形格式的載入,切割,翻轉,旋轉等常見操作
4.文件系統:
      簡便易用-支持zip,pk3等幾種壓縮格式(可加入對7z的解壓支持)
5.3d模型支持
      靜態模型:3ds,ase(做為仿真之用)
      動態模型:md2
6.天空:支持天空盒,天空面,天空頂3種渲染模式
7.地形:支持地形紋理細節渲染
8.支持鏡頭光功能
9.支持從腳本載入材質,霧,光配置(當前為lua腳本)
10.支持動態光照,霧,材質渲染
11.內置數學庫包含矩陣,四元數,歐拉角等基本數據結構
12.支持truetype字體
13.支持多線程渲染
14.內置快速的三角函數求值和數學隨機數
15.內置Lua/LuapLua腳本引擎
16.基于ode物理引擎
17.支持對簡單的幾何對象渲染
18.支持日志文件
19.支持輸入輸出系統
20.支持3d坐標查詢
21.支持2d紋理,球面紋理和立方體紋理
22.支持2d動畫
23.支持多重紋理
24.支持粒子系統(可基于腳本配置)
25.支持多線程資源載入
26.另外還有一個游戲demo(資料在這里:http://www.gaimo.net/viewthread.php?tid=2705&extra=page%3D1)

關于蓋莫音頻引擎更新記錄:
蓋莫音頻引擎更新概要
1.2版本-支持midi格式--支持audio capture                  
1.3版本-支持ape格式 --支持從內存中播放音頻 提供ptf文檔  
1.4版本-無需安裝openal 即可使用支持更多音效               
1.5版本-支持vc,c#,python語言,支持linux操作系統        
1.6版本-   
當前蓋莫音頻引擎為1.1.6版本
蓋莫音頻引擎可免費使用于非商業用途
使用于商業用途只需少許許可費即可(為了繼續開發)!
如果程序不能運行
則需要安裝openal

蓋莫游戲引擎2.1.1使用的第三方庫列表
1.視頻庫ffmpeg
2.線程庫zthread
3.插槽sigc++/sigslot
4.gl擴展glew
5.lua封裝luaplus
6.物理引擎ode

下載在這里
1.csdn
http://download.csdn.net/source/2257934
http://download.csdn.net/source/2257248
http://download.csdn.net/source/2257104
2.pudn 下載本sdk free!
http://www.pudn.com/downloads243/sourcecode/game/detail1132418.html
從csdn站點下載需要merge下載文件!

關于蓋莫軟件技術工作室
關于成都蓋莫軟件技術工作室
成都蓋莫軟件技術工作室成立于2010年1月份
主要從事游戲引擎設計和3d仿真業務
如果有任何疑問和建議請致函:ccsdu2010@gmail.com
posted @ 2010-04-19 15:38 ccsdu2009 閱讀(1690) | 評論 (5)編輯 收藏
 

這是使用蓋莫游戲引擎2.1.1設計的射擊類小游戲
題材源于SpaceInvader Game.
當前僅設計了一個關卡
以后每發布一次游戲引擎
本游戲會升級一個版本
本游戲提供源碼
使用devc++,codeblock可編譯之
截圖1:

截圖2:

截圖3:

截圖4:

關于代碼的下載
在這里:
當前提供2個下載站點:
SpaceInvader.
http://www.pudn.com/downloads243/sourcecode/game/detail1132305.html
http://download.csdn.net/source/2257020

posted @ 2010-04-19 11:41 ccsdu2009 閱讀(1441) | 評論 (4)編輯 收藏
 
     摘要: 以前大致看過模板元編程但是并沒有深入進去現在就拿比較小的Loki庫研究了本文主要涉及的是其頭文件TypeMapIP.h1.根據給定常量生成對等枚舉變量 ////////////////////////////////////////////////////////////////////////////////// class template Int2Type//...  閱讀全文
posted @ 2010-04-18 18:28 ccsdu2009 閱讀(2080) | 評論 (6)編輯 收藏
 
     摘要: 接上文下面看看TypeList的類型刪除功能相關源碼為: /**/////////////////////////////////////////////////////////////////////////////////// class template Erase// Erases the first occurenc...  閱讀全文
posted @ 2010-04-17 10:23 ccsdu2009 閱讀(2019) | 評論 (4)編輯 收藏
 
接上篇
本文主要涉及rapidxml讀文件的操作

基本的步驟為
首先獲取xml文件數據
然后分析數據
獲取節點
獲取屬性
獲取名字
獲取值
...

代碼如下:
#include <iostream>
#include 
<rapidxml/rapidxml.hpp>
#include 
<rapidxml/rapidxml_utils.hpp>
#include 
<rapidxml/rapidxml_print.hpp>
 
using namespace rapidxml;

int main()
{    
     file
<> fdoc("config.xml");
     std::cout
<<fdoc.data()<<std::endl; 
     xml_document
<>  doc;    
     doc.parse
<0>(fdoc.data()); 

     std::cout
<<doc.name()<<std::endl;
     
     
//! 獲取根節點
     xml_node<>* root = doc.first_node();
     std::cout
<<root->name()<<std::endl;

     
//! 獲取根節點第一個節點
     xml_node<>* node1 = root->first_node();
     std::cout
<<node1->name()<<std::endl; 

     xml_node
<>* node11 = node1->first_node();
     std::cout
<<node11->name()<<std::endl;
     std::cout
<<node11->value()<<std::endl;
     
     
//! 修改之后再次保存
     xml_node<>* size = root->first_node("size");
     size
->append_node(doc.allocate_node(node_element,"w","0"));
     size
->append_node(doc.allocate_node(node_element,"h","0"));

     std::
string text;  
     rapidxml::print(std::back_inserter(text),doc,
0);  
 
     std::cout
<<text<<std::endl; 
    
     std::ofstream 
out("config.xml");
     
out << doc;

     system(
"PAUSE");
     
return EXIT_SUCCESS;
}


生成的xml為:
<?xml version='1.0' encoding='utf-8' ?>
<config>
    
<color>
        
<red>0.1</red>
        
<green>0.1</green>
        
<blue>0.1</blue>
        
<alpha>1.0</alpha>
    
</color>
    
<size>
        
<x>640</x>
        
<y>480</y>
    
</size>
    
<mode fullscreen="false">screen mode</mode>
</config>
需要說明的是rapidxml明顯有一個bug
那就是append_node(doc.allocate_node(node_element,"h","0"));的時候并不考慮該對象是否存在!

經過這2篇 基本上就可以使用xml了
當然這里并沒有涉及異常處理
posted @ 2010-04-16 21:49 ccsdu2009 閱讀(2455) | 評論 (0)編輯 收藏
 
蓋莫游戲引擎1.x版本是采用libxml操作xml文件的
這個庫弄得太復雜了
現在計劃從2.1.2開始使用rapidxml操作xml
首先上一個簡單的xml寫文件
如下:
#include <iostream>
#include 
<rapidxml/rapidxml.hpp>
#include 
<rapidxml/rapidxml_utils.hpp>
#include 
<rapidxml/rapidxml_print.hpp>
 
using namespace rapidxml;

int main()
{    
     xml_document
<> doc;  
     xml_node
<>* rot = doc.allocate_node(rapidxml::node_pi,doc.allocate_string("xml version='1.0' encoding='utf-8'"));
     doc.append_node(rot);
     xml_node
<>* node =  doc.allocate_node(node_element,"config","information");  
     xml_node
<>* color =  doc.allocate_node(node_element,"color",NULL);  
     doc.append_node(node);
     node
->append_node(color);
     color
->append_node(doc.allocate_node(node_element,"red","0.1"));
     color
->append_node(doc.allocate_node(node_element,"green","0.1"));
     color
->append_node(doc.allocate_node(node_element,"blue","0.1"));
     color
->append_node(doc.allocate_node(node_element,"alpha","1.0"));

     xml_node
<>* size =  doc.allocate_node(node_element,"size",NULL); 
     size
->append_node(doc.allocate_node(node_element,"x","640"));
     size
->append_node(doc.allocate_node(node_element,"y","480"));
     node
->append_node(size);

     xml_node
<>* mode = doc.allocate_node(rapidxml::node_element,"mode","screen mode");
     mode
->append_attribute(doc.allocate_attribute("fullscreen","false"));
     node
->append_node(mode);

     std::
string text;  
     rapidxml::print(std::back_inserter(text), doc, 
0);  
 
     std::cout
<<text<<std::endl; 
    
     std::ofstream 
out("config.xml");
     
out << doc;
 
     system(
"PAUSE");
     
return EXIT_SUCCESS;
}

生成的xml文件為:
<?xml version='1.0' encoding='utf-8' ?>
<config>
    
<color>
        
<red>0.1</red>
        
<green>0.1</green>
        
<blue>0.1</blue>
        
<alpha>1.0</alpha>
    
</color>
    
<size>
        
<x>640</x>
        
<y>480</y>
    
</size>
    
<mode fullscreen="false">screen mode</mode>
</config>

說實話 感覺這個比較不錯
希望更多的人使用它!
posted @ 2010-04-16 20:43 ccsdu2009 閱讀(4682) | 評論 (3)編輯 收藏
 
這是ode物理引擎中的關節類型和圖例
對于關節類型上圖是很直觀的了
1.球窩關節(Ball Socket)

2.合頁關節(Hinge)

3.插銷關節(Slider)

4.萬向輪關節(Univeersal)

5.Hinge2關節

6.PR關節

PR關節即A prismatic and rotoide joint
是插銷關節和荷葉關節的組合形式
7.PU關節
PU關節即A prismatic-Universal joint (JointPU)
他是插銷關節和萬向輪關節的組合形式

8.Piston joint 關節
Piston joint 關節類似于插銷關節但是她可以繞軸轉動

9.接觸面關節
物理受重力落體過程中就需要使用到接觸面關節


10.A Motor關節
該關節可以控制對象之間的相對角速度

11.另外還有LMotor關節,plane-2d 關節

下面是關機的生成函數列表,其銷毀函數是相同的
dJointID dJointCreateBall (dWorldID, dJointGroupID);
dJointID dJointCreateHinge (dWorldID, dJointGroupID);
dJointID dJointCreateSlider (dWorldID, dJointGroupID);
dJointID dJointCreateContact (dWorldID, dJointGroupID, 
const dContact *);
dJointID dJointCreateUniversal (dWorldID, dJointGroupID);
dJointID dJointCreateHinge2 (dWorldID, dJointGroupID);
dJointID dJointCreatePR (dWorldID, dJointGroupID);
dJointID dJointCreatePU (dWorldID, dJointGroupID);
dJointID dJointCreatePiston (dWorldID, dJointGroupID);
dJointID dJointCreateFixed (dWorldID, dJointGroupID);
dJointID dJointCreateAMotor (dWorldID, dJointGroupID);
dJointID dJointCreateLMotor (dWorldID, dJointGroupID);
dJointID dJointCreatePlane2d (dWorldID, dJointGroupID);

參考文獻:http://opende.sourceforge.net/wiki/index.php/Manual_%28Joint_Types_and_Functions%29

關于ode物理引擎的時候可參考ode庫自帶demo
當然也可以參考蓋莫游戲引擎sdk上面附有3個基于ode的物理模擬
posted @ 2010-04-16 10:16 ccsdu2009 閱讀(2169) | 評論 (1)編輯 收藏
 
這是使用蓋莫游戲引擎(2.1.1)設計的天空頂小例
天空頂比較類似天空面
具體代碼和圖片如下:
#include <GEngine/Gaimo.hpp>

using namespace std;
using namespace core; 

int Main()
{
    
//! 初始化引擎設備并得到設備指針
    RefPtr<Device> device = InitDevice("天空頂測試");
    
//! 得到引擎場景指針
    RefPtr<SceneManager> scenemanager = device->GetSceneManager();
    
//! 得到引擎資源指針
    RefPtr<ResourceManager> resourcemanager = device->GetResourceManager();
    
//! 獲取圖形管理器指針
    RefPtr<ImageManager> imagemanager =  resourcemanager->GetImageManager();
    
//! 得到視頻驅動器指針
    RefPtr<VideoDriver> videodriver = device->GetVideoDriver();

    
//! 得到天空圖形和紋理 
    RefPtr<Image>   image = imagemanager->CreateObject("sky","..\\image\\sky\\top.jpg");
    RefPtr
<Texture> texture =  resourcemanager->GetTextureManager()->CreateTexture("sky",image);
    
//! 得到天空盒指針
    SkyDomeDesc desc;
    desc.texture 
= texture;
    RefPtr
<Renderable> sky = scenemanager->CreateSkyDome(desc);
    
    
//! 獲取攝像機指針
    RefPtr<Camera> camera = scenemanager->GetCameraManager()->CreateCamera("camera",
                                                                           Vector3f(),
                                                                           Vector3f(
100,60,0));
    camera
->SetViewPort(Recti(0,0,640,480));
    camera
->SetPerspective(45.0f,640.0f/480.0f,0.1f,600.0f);

    
//! 獲取霧指針
    RefPtr<Fog> fog = resourcemanager->GetFog("..\\script//fog.lua","fog");
    fog
->Render();
    BEGIN_LOOP(device)
       videodriver
->SetClearBuffer(ENGINE_CLEAR_COLOR | ENGINE_CLEAR_DEPTH);
       camera
->Render();
       sky
->Render();
    END_LOOP(device)
    
return 0;
}


posted @ 2010-04-12 14:15 ccsdu2009 閱讀(259) | 評論 (0)編輯 收藏
 
     摘要: Loki中的TypeList這塊是Loki中比較基礎的部分其主要涉及類型鏈表(TypeList)相關功能有1.模板化得類型鏈表-最打提供18個類型參數2.獲取類型鏈表的長度3.獲取給定索引位置的參數類型4.當索引越界時獲取設定的參數類型5.類型鏈表的類型增加和剔除6.其他下面是makeTypeList的代碼  1      &...  閱讀全文
posted @ 2010-04-10 12:25 ccsdu2009 閱讀(1928) | 評論 (1)編輯 收藏
僅列出標題
共38頁: First 28 29 30 31 32 33 34 35 36 Last 
 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            欧美a级片网| 国产色产综合色产在线视频| 久久精品国产免费| 免费人成精品欧美精品| 久久精品一区二区三区中文字幕| 欧美人在线观看| 亚洲丶国产丶欧美一区二区三区| 国产午夜精品福利| 亚洲午夜精品久久久久久浪潮 | 久久综合久久久久88| 欧美视频一区二区三区| 亚洲国产综合在线| 亚洲激情网站| 欧美.www| 欧美国产在线视频| 亚洲国产成人porn| 久久欧美肥婆一二区| 久久女同精品一区二区| 国产色爱av资源综合区| 久久国产欧美日韩精品| 久久久久久国产精品一区| 国产午夜亚洲精品理论片色戒| 亚洲欧美怡红院| 久久美女性网| 亚洲成色www久久网站| 久久亚洲电影| 亚洲福利专区| 99综合电影在线视频| 欧美涩涩网站| 性欧美大战久久久久久久免费观看 | 久久精品亚洲国产奇米99| 欧美四级伦理在线| 在线一区日本视频| 欧美与黑人午夜性猛交久久久| 欧美午夜不卡影院在线观看完整版免费| 亚洲人成艺术| 亚洲欧美不卡| 国产午夜精品久久| 美女成人午夜| 99热在这里有精品免费| 午夜精品久久久久久久99黑人| 国产亚洲精品久久久| 久久久精品五月天| 亚洲国产专区| 小黄鸭精品密入口导航| 国内精品久久久久国产盗摄免费观看完整版| 欧美主播一区二区三区| 欧美成在线视频| 亚洲无限乱码一二三四麻| 国产午夜精品久久久久久免费视| 久久精品女人天堂| 亚洲精品一区在线观看| 久久国产精品久久久久久久久久 | 久久久久久成人| 亚洲乱码视频| 国产酒店精品激情| 免费人成精品欧美精品| 亚洲亚洲精品在线观看 | 欧美日韩在线视频观看| 久久www免费人成看片高清| 欧美护士18xxxxhd| 欧美一区二区在线免费观看| 亚洲黄色免费电影| 国产精品亚洲精品| 欧美18av| 久久www成人_看片免费不卡| 日韩亚洲欧美成人一区| 六月丁香综合| 欧美在线免费| 在线视频免费在线观看一区二区| 国精品一区二区三区| 欧美日韩国产综合视频在线观看 | 亚洲永久精品国产| 亚洲国产成人av在线| 国产亚洲二区| 国产精品成人久久久久| 欧美成人在线免费观看| 久久国产精品高清| 亚洲一区二区三区四区五区黄 | 欧美高清在线播放| 久久国产精品第一页| 亚洲专区免费| 亚洲美女视频在线观看| 尤物在线观看一区| 国产欧美一区二区三区在线老狼| 欧美日韩午夜| 欧美成人一区二免费视频软件| 欧美在线免费观看视频| 亚洲自拍偷拍麻豆| 一区二区三区久久网| 亚洲激情视频| 亚洲国产高清在线观看视频| 久久在线免费| 久久影视三级福利片| 久久精品国产一区二区三区免费看| 亚洲午夜av电影| 这里只有精品视频在线| 日韩视频在线观看一区二区| 最近看过的日韩成人| 韩国三级在线一区| 国产一区二区成人| 国产一区二区高清| 国产婷婷成人久久av免费高清 | 欧美成人黄色小视频| 美脚丝袜一区二区三区在线观看| 久久久久一区二区| 久久精品一区二区三区中文字幕 | 亚洲成在线观看| 亚洲第一毛片| 亚洲精品影院| 亚洲视频播放| 亚洲女ⅴideoshd黑人| 亚洲综合日本| 久久成人一区二区| 久久久久五月天| 免费一级欧美在线大片| 欧美高清在线视频| 欧美性猛交99久久久久99按摩 | 欧美一级淫片播放口| 久久国产一区| 欧美mv日韩mv国产网站app| 欧美本精品男人aⅴ天堂| 欧美激情性爽国产精品17p| 亚洲国产欧美精品| 艳女tv在线观看国产一区| 亚洲一二三级电影| 欧美在线免费视屏| 久久综合色婷婷| 欧美日韩免费观看一区三区 | 久久精品视频免费观看| 你懂的国产精品| 夜夜躁日日躁狠狠久久88av| 亚洲综合导航| 美女啪啪无遮挡免费久久网站| 欧美黄网免费在线观看| 国产精品免费看| 亚洲国产成人av在线| 亚洲午夜在线视频| 久久伊人免费视频| 99re视频这里只有精品| 欧美一级午夜免费电影| 欧美国产精品人人做人人爱| 国产精品蜜臀在线观看| 在线观看一区| 亚洲欧美区自拍先锋| 欧美mv日韩mv国产网站| 亚洲一二三区视频在线观看| 美国十次成人| 国产日韩精品电影| 99热这里只有成人精品国产| 久久精品人人做人人爽| 亚洲日本中文字幕| 久久精品视频免费| 欧美亚州一区二区三区| 亚洲人成网在线播放| 久久久久久亚洲精品杨幂换脸| 亚洲精品一区二区三区蜜桃久 | 亚洲一区精品视频| 欧美不卡在线| 午夜视频久久久| 欧美日韩国产专区| 亚洲国产高清一区二区三区| 欧美怡红院视频| 日韩亚洲不卡在线| 欧美激情精品久久久久久黑人 | 亚洲免费视频网站| 亚洲国产一区二区视频| 久久久久久久97| 国产日韩亚洲| 午夜精品福利一区二区蜜股av| 亚洲国产精品一区| 久久久国产91| 国产在线欧美| 欧美一区在线直播| 一区二区三区四区在线| 欧美日韩免费观看中文| 亚洲欧洲一区二区在线观看| 久久综合九色综合网站| 久久国产日本精品| 国产一区二区三区高清| 久久国产精品色婷婷| 亚洲香蕉视频| 国产精品永久免费在线| 性欧美长视频| 亚洲一区欧美一区| 国产精品三级久久久久久电影| 亚洲女人天堂成人av在线| 夜夜精品视频| 欧美性大战xxxxx久久久| 一个色综合导航| 日韩网站免费观看| 欧美日韩午夜在线| 亚洲欧美日韩国产一区二区| 一本久久知道综合久久| 欧美午夜激情视频| 亚洲欧美日韩国产成人精品影院| 亚洲尤物视频网| 国产一区二区三区高清在线观看 | 亚洲欧洲一区二区天堂久久| 欧美激情自拍|