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

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 閱讀(766) | 評論 (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 閱讀(1697) | 評論 (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 閱讀(1444) | 評論 (4)編輯 收藏
 
     摘要: 以前大致看過模板元編程但是并沒有深入進去現在就拿比較小的Loki庫研究了本文主要涉及的是其頭文件TypeMapIP.h1.根據給定常量生成對等枚舉變量 ////////////////////////////////////////////////////////////////////////////////// class template Int2Type//...  閱讀全文
posted @ 2010-04-18 18:28 ccsdu2009 閱讀(2090) | 評論 (6)編輯 收藏
 
     摘要: 接上文下面看看TypeList的類型刪除功能相關源碼為: /**/////////////////////////////////////////////////////////////////////////////////// class template Erase// Erases the first occurenc...  閱讀全文
posted @ 2010-04-17 10:23 ccsdu2009 閱讀(2023) | 評論 (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 閱讀(2459) | 評論 (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 閱讀(4688) | 評論 (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 閱讀(2178) | 評論 (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 閱讀(262) | 評論 (0)編輯 收藏
 
     摘要: Loki中的TypeList這塊是Loki中比較基礎的部分其主要涉及類型鏈表(TypeList)相關功能有1.模板化得類型鏈表-最打提供18個類型參數2.獲取類型鏈表的長度3.獲取給定索引位置的參數類型4.當索引越界時獲取設定的參數類型5.類型鏈表的類型增加和剔除6.其他下面是makeTypeList的代碼  1      &...  閱讀全文
posted @ 2010-04-10 12:25 ccsdu2009 閱讀(1933) | 評論 (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>
            99日韩精品| 国产精品拍天天在线| 亚洲女爱视频在线| 欧美jjzz| 久久中文字幕导航| 国产欧美精品在线| 一本色道综合亚洲| 亚洲免费av电影| 久热国产精品| 久久五月婷婷丁香社区| 国产精品免费一区豆花| 日韩一区二区免费看| 亚洲欧洲另类国产综合| 久久精品视频网| 久久精品动漫| 国产欧美日韩视频| 亚洲影院在线| 欧美一区二区三区啪啪| 国产精品日韩精品欧美在线| 99在线精品观看| 亚洲午夜精品一区二区三区他趣| 欧美国产视频在线观看| 亚洲国产精品高清久久久| 国产一区三区三区| 欧美一区成人| 欧美在线视频观看| 国产午夜精品福利| 欧美有码在线观看视频| 久久久999| 在线看片第一页欧美| 久久久亚洲精品一区二区三区 | 亚洲国产欧美久久| 亚洲国产清纯| 欧美激情第五页| 9色精品在线| 亚洲永久在线| 国产精品系列在线| 香蕉精品999视频一区二区| 久久女同精品一区二区| 一区二区视频在线观看| 欧美电影电视剧在线观看| 亚洲人成人77777线观看| 亚洲深夜福利网站| 国产精品视频xxx| 久久成人免费| 亚洲国产精品一区| 亚洲一区二区高清视频| 国产视频久久久久久久| 久久三级视频| 亚洲最新视频在线播放| 久久国产精品免费一区| 亚洲激情在线观看| 欧美日韩在线视频一区二区| 午夜精品久久久99热福利| 麻豆国产精品va在线观看不卡| 亚洲区国产区| 国产精品视频精品| 久热这里只精品99re8久| 日韩视频永久免费| 久久精品国产999大香线蕉| 亚洲激情视频在线观看| 国产精品久久一卡二卡| 久久婷婷人人澡人人喊人人爽| 亚洲免费高清| 葵司免费一区二区三区四区五区| 一区二区三区高清不卡| 国产一区二区三区在线播放免费观看 | 国产精品欧美日韩一区二区| 久久av最新网址| 亚洲伦理在线| 久久人人爽爽爽人久久久| 99成人精品| 韩国精品主播一区二区在线观看| 欧美精品色一区二区三区| 欧美在线免费看| 一本大道久久a久久精二百| 久久久人成影片一区二区三区| aa级大片欧美三级| 伊人成人在线| 国产日韩欧美不卡在线| 欧美日韩国产一区二区三区| 久久久精品国产免费观看同学 | 欧美激情第二页| 欧美淫片网站| 亚洲午夜精品福利| 最新日韩在线视频| 一区二区三区中文在线观看| 国产精品揄拍一区二区| 欧美日韩亚洲免费| 欧美电影免费观看| 久久在线免费| 久久久亚洲欧洲日产国码αv| 亚洲永久免费精品| 中文国产成人精品| 亚洲毛片在线观看| 亚洲精品美女91| 欧美freesex8一10精品| 久久免费黄色| 久久精品国产一区二区三区免费看| 一区二区三区久久| 99热精品在线| 一区二区欧美国产| 日韩视频永久免费| 99热免费精品| 99视频一区二区三区| 亚洲免费精彩视频| 亚洲精品一二三| 亚洲精品一区二区在线| 亚洲电影在线免费观看| 亚洲国产你懂的| 亚洲黄色一区| 99精品国产福利在线观看免费| 亚洲激情电影中文字幕| 亚洲精品视频中文字幕| 亚洲精选视频免费看| 日韩一级在线| 中日韩午夜理伦电影免费| 宅男精品视频| 亚洲欧美日韩爽爽影院| 久久国产精品久久久久久电车 | 午夜精品亚洲一区二区三区嫩草| 亚洲天堂av高清| 亚洲女女做受ⅹxx高潮| 欧美在线1区| 久久先锋资源| 亚洲国产成人av在线| 日韩亚洲精品在线| 亚洲小说春色综合另类电影| 欧美一区二区精美| 麻豆成人在线观看| 欧美日韩国产一区| 国产精品美女久久久久av超清 | 免费成人av| 欧美日韩一区二区精品| 国产欧美一级| 亚洲全部视频| 午夜精品在线观看| 免费中文字幕日韩欧美| 亚洲人成人77777线观看| 亚洲一区二区三区免费视频| 久久er精品视频| 欧美精品午夜| 国产一区二区三区久久精品| 最新国产乱人伦偷精品免费网站| 亚洲欧美电影在线观看| 美女被久久久| 亚洲午夜电影| 老司机精品久久| 国产精品自在线| 亚洲国产黄色| 欧美一区二区三区视频在线观看| 免费成人高清视频| 亚洲视频你懂的| 久久精品国产第一区二区三区最新章节| 欧美aaa级| 国产亚洲午夜| 亚洲影视综合| 亚洲成色777777在线观看影院| 国内精品久久久久影院优| 亚洲激情国产精品| 欧美伊久线香蕉线新在线| 亚洲欧洲日夜超级视频| 久久成人精品无人区| 欧美新色视频| 91久久在线| 久久中文字幕一区二区三区| 在线视频亚洲| 欧美日韩爆操| 亚洲国产一区二区三区在线播| 午夜一区在线| 日韩午夜电影av| 欧美成人性网| 尤物yw午夜国产精品视频明星| 午夜精品av| 99在线精品免费视频九九视| 欧美91精品| 亚洲国产视频直播| 美女黄毛**国产精品啪啪| 午夜在线观看免费一区| 国产精品国产三级国产普通话99| 亚洲精品人人| 亚洲国产精品久久久久婷婷884| 久久精品一区蜜桃臀影院| 国产欧美高清| 欧美在线观看一二区| 在线综合亚洲| 欧美小视频在线| 亚洲在线一区二区| 一区二区精品在线| 欧美特黄视频| 亚洲欧美激情诱惑| 在线亚洲精品| 国产精品久久久亚洲一区| 亚洲免费综合| 亚洲免费视频网站| 国产精品日本精品| 久久疯狂做爰流白浆xx| 午夜久久福利| 好吊日精品视频| 久久亚洲私人国产精品va媚药|