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

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>
            噜噜噜躁狠狠躁狠狠精品视频| 欧美日韩www| 亚洲视频一区二区免费在线观看| 欧美午夜片在线免费观看| 欧美精品亚洲一区二区在线播放| 久久国产精品免费一区| 亚洲一区区二区| 亚洲深夜福利| 久久精品三级| 久久久精品一区| 久久精品官网| 欧美伊人久久久久久午夜久久久久| 亚洲性感美女99在线| 亚洲一卡久久| 亚洲欧美文学| 欧美在线观看视频一区二区| 亚洲一区二区三区影院| 日韩亚洲视频在线| 亚洲国产精品久久久久婷婷884| 欧美吻胸吃奶大尺度电影| 玖玖精品视频| 欧美一区二区高清| 午夜欧美精品| 欧美在线黄色| 欧美黑人一区二区三区| 国产精品a久久久久| 欧美日韩一级黄| 欧美~级网站不卡| 久久激情五月丁香伊人| 久久偷看各类wc女厕嘘嘘偷窃| 国产日本欧美视频| 精品动漫3d一区二区三区免费| 国产视频亚洲精品| 在线不卡中文字幕| 亚洲欧美国产精品va在线观看| 黑人一区二区| 日韩视频久久| 男同欧美伦乱| 久久综合图片| 国产精品区一区| 日韩视频国产视频| 欧美成人一二三| 亚洲视频免费在线观看| 欧美激情在线狂野欧美精品| 国产精品视频九色porn| 亚洲欧美春色| 国产日韩欧美在线视频观看| 亚洲一区免费网站| 国产精品久久久久久久免费软件| 亚洲国产视频直播| 亚洲国产精品一区二区www在线| 欧美一区二区在线看| 一区二区三区在线观看欧美| 免费成人激情视频| 欧美久久久久久| 亚洲欧美另类中文字幕| 欧美影院精品一区| 亚洲乱码国产乱码精品精| 亚洲精品久久久久久久久| 国产伦精品一区二区三区高清版| 久久久九九九九| 欧美黄色视屏| 久久久久国产免费免费| 久久久久久9| 亚洲性视频h| 欧美成人伊人久久综合网| 欧美一区成人| 欧美激情1区2区| 久久亚洲图片| 国内精品久久久久久久果冻传媒| 亚洲精品一二三| 亚洲精品一线二线三线无人区| 亚洲欧美日韩在线观看a三区| 日韩视频免费| 久久综合影音| 欧美成人免费小视频| 亚洲大片在线| 麻豆精品在线视频| 亚洲影音一区| 国产婷婷一区二区| 久热精品视频| 久久激情婷婷| 亚洲男女自偷自拍| 国产欧美日韩伦理| 亚洲一区二区在线观看视频| 欧美大片在线观看一区二区| 久久久中精品2020中文| 午夜精品久久久久| 亚洲日本中文字幕区| 一区二区视频在线观看| 亚洲欧美日韩爽爽影院| 免费成人黄色片| 免费视频一区二区三区在线观看| 黄色免费成人| 国产精品国产三级国产a| 久久精品国产99国产精品澳门| 欧美一区二区三区四区在线| 国产午夜精品一区二区三区欧美 | 免费毛片一区二区三区久久久| 欧美大片18| 久久精品99国产精品日本| 亚洲看片一区| 激情91久久| 国产精品免费一区二区三区在线观看| 欧美一区二区三区在线观看| 亚洲精品欧美| 亚洲激情视频在线播放| 久久免费精品视频| 欧美亚洲专区| 亚洲专区一区| 嫩草国产精品入口| 久久久久欧美| 亚洲二区免费| 亚洲人成啪啪网站| 国产一区二区三区黄| 欧美国产日韩精品| 亚洲国产专区| 夜夜精品视频| 欧美在线视频一区| 欧美国产精品va在线观看| 一区二区高清视频在线观看| 亚洲视频电影在线| 伊人男人综合视频网| 欧美日本国产精品| 一本色道久久综合一区| 亚洲午夜精品一区二区| 欧美剧在线免费观看网站| 久久久99久久精品女同性| 欧美成人精品不卡视频在线观看| 99re66热这里只有精品4| 在线观看久久av| 日韩视频中午一区| 午夜精品免费视频| 免费永久网站黄欧美| 亚洲大胆女人| 99精品久久久| 麻豆精品91| 国产精品你懂的| 亚洲第一精品夜夜躁人人爽| 99国产精品一区| 欧美www在线| 欧美在线视频免费观看| 欧美精品尤物在线| 亚洲激情自拍| 麻豆成人av| 欧美与黑人午夜性猛交久久久| 欧美日本免费一区二区三区| 在线观看视频亚洲| 久久久久成人精品| 亚洲欧美日韩国产一区二区三区 | 国产日产精品一区二区三区四区的观看方式 | 日韩一级欧洲| 亚洲午夜影视影院在线观看| 欧美主播一区二区三区美女 久久精品人 | 日韩一级黄色av| 亚洲国产99| 欧美国产日韩免费| 亚洲麻豆国产自偷在线| 91久久夜色精品国产九色| 欧美国产日韩二区| 一区二区三区精品国产| 亚洲激情成人在线| 欧美日本精品在线| 亚洲综合色婷婷| 欧美一二三区在线观看| 在线观看日韩一区| 一区二区激情| 伊人久久亚洲影院| 亚洲精选中文字幕| 国产精品一级久久久| 欧美大学生性色视频| 欧美xart系列高清| 欧美尤物一区| 欧美日韩免费高清| 欧美国产一区二区三区激情无套| 欧美区亚洲区| 久久综合电影| 国产精品日韩久久久久| 欧美成人一区二区三区片免费 | 亚洲黄色成人| 亚洲第一福利在线观看| 午夜在线观看免费一区| 亚洲天堂久久| 欧美大色视频| 欧美高清在线视频| 国产一区二区电影在线观看| 一区二区三区日韩在线观看| 亚洲福利视频网站| 久久久久久九九九九| 久久精品成人欧美大片古装| 国产精品久久二区| 亚洲午夜一区| 久久精品视频在线观看| 99re亚洲国产精品| 亚洲片区在线| 欧美成人一区二区| 欧美成人午夜激情视频| 在线国产日韩| 欧美精品一区二区三区一线天视频| 欧美91福利在线观看|