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

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

    時不時總是聽見有些"人"說,什么軟件不開源**(此處省略2個字)。
    其實平心而論,從開發者角度講軟件開源與否并不重要,主要的是開源軟件的意義何在?
    對于使用者而言,她只需要能夠熟練掌握軟件同時在一定程度上熟悉原理即可并不需要完全閱讀軟件源碼?
    我們以后越來越多的軟件將會使用Qt開發但是我并不打算編譯QT和閱讀QT源碼。
    同樣有些代碼即使給你也不一定看得懂。
    再者有些軟件適合開源,有些軟件不適合開源
    開源與否不是有些"人"罵幾句就可以改變的了。
   
    我的博客動不動就跑進來幾個"人"上門開罵(想想其他人也有類似情況吧)
    而且我刪除了評論竟然還發帖繼續開罵(我似乎沒有影響到他人吧)(有的話把博客注銷還是為好吧.)

    題外話:我感覺能上cppblog的基本上都是受過高等教育的人,可是印象中感覺其中帶引號的"人"還是不少啊。

-----------------------------------------------------------------------------------------------
以后不允許匿名發帖咯 
    

posted @ 2010-09-21 13:59 ccsdu2009 閱讀(2167) | 評論 (9)編輯 收藏
 
首先上代碼吧
個人感覺寫的很清爽
/*!==========================================================================
 *
 *  蓋莫游戲引擎(GaiMo Game Engine)
 *
 *  版權所有 (C) 2009-2009 成都蓋莫軟件技術工作室 保留所有權利
 *  Copyright (C) 成都蓋莫軟件技術工作室.  All Rights Reserved.
 *
 *  了解更多情況,請訪問 
http://www.gaimo.net
 ***************************************************************************
*/
//! 本demo測試引擎渲染到紋理功能
#include <iostream>
#include 
<GEngine/Header_Config.hpp>

using namespace std;
using namespace core;

#define FRAME_NUMBER 12

//! 定義圖形紋理指針
RefPtr<core::Texture>  texture_ptr[FRAME_NUMBER];
//! 渲染到紋理指針
RefPtr<Renderable> rendertotexture;
core::TextDesc
* text = NULL;
Matrix4f mat;
float pos[] = {0,0,0};
float length[] = {16,16,16};
void  CreateTexture();
void  InitCamera();
void  Render();

int main(int argc, char *argv[])
{
    
//! 窗體描述符
    ScreenDesc desc;
    desc.name_ 
= "RenderToTextureTest";
    
//! 生成窗體
    RefPtr<Screen> screen = CreateScreen(desc);

    
//! 生成紋理
    CreateTexture();

    
//! 初始化攝像機
    InitCamera();

    
while(screen->IsOpen())
    {
        Render();
    }

    DestroyScreen();
    
return EXIT_SUCCESS;
}

//! 構造紋理
void CreateTexture()
{
    
//! 載入資源包
    GLOBAL_FILESYSTEM_PTR->RegisterPackage("..\\package\\logo.zip");
    RefPtr
<core::ReadFile> imagefile;

    RefPtr
<Image> image[FRAME_NUMBER];
    
for(int i = 0;i < FRAME_NUMBER ;i++)
    {
        std::
string name = ToString<int>(i);
        imagefile 
= GLOBAL_FILESYSTEM_PTR->GetRead("logo.jpg");
        image[i] 
= GLOBAL_IMAGEMANAGER_PTR->CreateImage(name,imagefile);
    }

    
//! 反色
    image[0]->GetInvertImage();
    GLOBAL_TEXTUREMANAGER_PTR
->CreateTexture2(ToString<int>(0),image[0]);
    
//! 水平翻轉
    image[1]->FlipImage(Image::IMAGE_FLIP_X);
    GLOBAL_TEXTUREMANAGER_PTR
->CreateTexture2(ToString<int>(1),image[1]);
    
//! 豎直翻轉
    image[2]->FlipImage(Image::IMAGE_FLIP_Y);
    GLOBAL_TEXTUREMANAGER_PTR
->CreateTexture2(ToString<int>(2),image[2]);
    
//! Gamma調整
    image[3]->AdjustGamma(0.4);
    GLOBAL_TEXTUREMANAGER_PTR
->CreateTexture2(ToString<int>(3),image[3]);
    
//! 亮度調整
    image[4]->AdjustBrightness(0.4);
    GLOBAL_TEXTUREMANAGER_PTR
->CreateTexture2(ToString<int>(4),image[4]);
    
//! 對比度調整
    image[5]->AdjustContrast(0.6);
    GLOBAL_TEXTUREMANAGER_PTR
->CreateTexture2(ToString<int>(5),image[5]);
    
//! 翻轉
    image[6]->FlipImage(Image::IMAGE_FLIP_XY);
    GLOBAL_TEXTUREMANAGER_PTR
->CreateTexture2(ToString<int>(6),image[6]);
    
//! 旋轉
    image[7]->RotatedImage(Image::IMAGE_ROTATE_90);
    GLOBAL_TEXTUREMANAGER_PTR
->CreateTexture2(ToString<int>(7),image[7]);
    
//! Gamma調整
    image[8]->AdjustGamma(0.1);
    GLOBAL_TEXTUREMANAGER_PTR
->CreateTexture2(ToString<int>(8),image[8]);
    
//! 亮度調整
    image[9]->AdjustBrightness(0.8);
    GLOBAL_TEXTUREMANAGER_PTR
->CreateTexture2(ToString<int>(9),image[9]);
    
//! 對比度調整
    image[10]->AdjustContrast(0.3);
    GLOBAL_TEXTUREMANAGER_PTR
->CreateTexture2(ToString<int>(10),image[10]);
    GLOBAL_TEXTUREMANAGER_PTR
->CreateTexture2(ToString<int>(11),image[11]);

    
for(int i = 0; i < FRAME_NUMBER; i++)
    {
        
//! 紋理構建
        GLOBAL_TEXTUREMANAGER_PTR->GetObject(ToString<int>(i))->Generate();
    }

    text 
= new core::TextDesc("..\\package\\accid.ttf",12,0,0,3,Color::Cyan);
    text
->SetText(engine_wstring(L"maker:gaimosoft,ccsdu2004@yahoo.com.cn"));

    
//! 獲取渲染到紋理指針
    rendertotexture = GLOBAL_RENDERER_PTR->GetRenderToTexture(640,480,GL_RGBA,GL_FLOAT);

    glEnable(GL_DEPTH_TEST);
}

void InitCamera()
{
    RefPtr
<Camera> orthocamera = GLOBAL_CAMERAMANAGER_PTR->CreateCamera("orthocamera");
    orthocamera
->SetOrtho(0,640,480,0,-1.2,0.8);
    RefPtr
<Camera> camera = GLOBAL_CAMERAMANAGER_PTR->GetActiveCamera();
    camera
->GetViewPort()->Render();
    camera
->SetPerspective(45.0f,640.0f/480.0f,1.0f,600.0f);
    camera
->SetPosition(Vector3f(20,20,20));
    camera
->SetView(Vector3f());
    camera
->ApplayProjectMatrix();
}

void RenderTexture()
{
    std::
string texturename;
    
for(int i = 0; i < FRAME_NUMBER; i++)
    {
        texturename 
= ToString<int>(i);
        GLOBAL_TEXTUREMANAGER_PTR
->GetObject(texturename)->AttachRenderTarget();
        UI_Brush::RenderTexture((i
%4)*160,(i/4)*160,160,160);
    }
}

//! 處理鼠標響應
void MouseCheck()
{
    
if(GLOBAL_INPUT_PTR->IsPressedKey(KEY_F1))
    {
        mat
*=mat.Rotate((rand()%200)/900.0f,1,0,0);
    }
    
else if(GLOBAL_INPUT_PTR->IsPressedKey(KEY_F2))
    {
        mat
*=mat.Rotate((rand()%200)/900.0f,0,1,0);
    }
    
else if(GLOBAL_INPUT_PTR->IsPressedKey(KEY_F3))
    {
        mat
*=mat.Rotate((rand()%200)/900.0f,0,0,1);
    }
}

void RenderText()
{
    UI_Brush::PreRender();
    
static int offset = 0;
    text
->Render(Rectf(offset,460,400,20));
    offset 
++;
    
if(offset >= 600)
        offset 
= -500;
    UI_Brush::PostRender();
}

void RenderToTexture()
{
    rendertotexture
->BeginRender();
    GLOBAL_RENDERER_PTR
->Clear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    GLOBAL_CAMERAMANAGER_PTR
->GetObject("orthocamera")->ApplayProjectMatrix();
    RenderTexture();
    RenderText();
    rendertotexture
->AfterRender();
}

void RenderToScreen()
{
    GLOBAL_RENDERER_PTR
->Clear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
    GLOBAL_CAMERAMANAGER_PTR
->GetActiveCamera()->ApplayProjectMatrix();
    GLOBAL_CAMERAMANAGER_PTR
->GetActiveCamera()->ApplayViewMatrix();
    GLOBAL_RENDERER_PTR
->DrawCube(pos,mat.ptr(),length);
}

void Render()
{
    MouseCheck();
    RenderToTexture();
    RenderToScreen();
}

基本步驟就是生成窗體
初始化攝像機
生成紋理
渲染到紋理
渲染到窗體
完了

圖圖如下:
似乎我比較喜歡貼立方體啊 呵呵
posted @ 2010-09-17 18:22 ccsdu2009 閱讀(518) | 評論 (0)編輯 收藏
 
重新修改了引擎的視頻播放這塊
并把視頻等幾個模塊做成了插件的形式
具體代碼和截圖如下:
//! 本代碼測試引擎視頻播放,插件系統,鍵盤測試和立方體繪制
#include <iostream>
#include 
<GEngine/Header_Config.hpp>

Matrix4f mat;
float pos[] = {0,0,0};
float length[] = {1,1,1};
float offset = -500;
using namespace core;
void MouseCheck();

VideoPlayer
* video_player_instance = NULL;

int main(int argc,char *argv[])
{
    ScreenDesc desc;
    desc.name_ 
= "VideoPlayerTest";
    RefPtr
<Screen> screen = CreateScreen(desc);

    GLOBAL_PLUGINMANAGER_PTR
->SetPluginFolder("..\\plugin");
    GLOBAL_PLUGINMANAGER_PTR
->InstallPlugin();

    VideoPlayerFactory factory;
    GLOBAL_PLUGINMANAGER_PTR
->RegisterPluginFactory(&factory);
    factory.SetData(
1,screen->GetHDC());
    factory.SetData(
2,screen->GetHGLRC());
    video_player_instance 
= factory.Create();

    core::TextDesc
* text = new core::TextDesc("..\\package\\accid.ttf",12,0,0,3,Color::Cyan);
    text
->SetText(L"maker:gaimosoft,ccsdu2004@yahoo.com.cn");
    video_player_instance
->Play("..\\package\\video.mp4");

    
while(screen->IsOpen())
    {
        GLOBAL_RENDERER_PTR
->Clear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        video_player_instance
->Update();
        GLOBAL_RENDERER_PTR
->AttachThreadRender();
        GLOBAL_RENDERER_PTR
->Clear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
        
uint id = video_player_instance->GetFrame();
        GLOBAL_TEXTUREMANAGER_PTR
->BindTexture2(id);
        GLOBAL_RENDERER_PTR
->DrawCube(pos,mat.ptr(),length);
        UI_Brush::PreRender();
        text
->Render(Rectf(offset,460,400,20));
        offset 
++;
        
if(offset >= 600)
           offset 
= -500;
        UI_Brush::PostRender();
        GLOBAL_RENDERER_PTR
->DetachThreadRender();
        MouseCheck();
    }

    video_player_instance
->Stop();
    delete text;
    DestroyScreen();
    
return EXIT_SUCCESS;
}

//! 處理鼠標響應
void MouseCheck()
{
    
if(GLOBAL_INPUT_PTR->IsPressedKey(KEY_F1))
    {
        mat
*=mat.Rotate((rand()%200)/900.0f,1,0,0);
    }
    
else if(GLOBAL_INPUT_PTR->IsPressedKey(KEY_F2))
    {
        mat
*=mat.Rotate((rand()%200)/900.0f,0,1,0);
    }
    
else if(GLOBAL_INPUT_PTR->IsPressedKey(KEY_F3))
    {
        mat
*=mat.Rotate((rand()%200)/900.0f,0,0,1);
    }
}

這次并沒有做成全窗體播放的樣子而是從播放器獲取紋理標識
然后再渲染之 這樣可以作出滿意的樣子了
截圖為:


1.
posted @ 2010-09-09 18:38 ccsdu2009 閱讀(1369) | 評論 (0)編輯 收藏
 
opengl中

gluBuild2DMipmaps()與glTexImage2D()

是很常用的函數
他們的作用是綁定函數
但是有時候使用
glTexImage2D

并不能正確綁定紋理
其原因據我所知有2個
1個是圖形大小不是2的整數次冪
還有一個就是
如果使用glTexImage2D,則在紋理包裹模式中不適用MIPMAP系列
posted @ 2010-09-01 18:34 ccsdu2009 閱讀(2364) | 評論 (1)編輯 收藏
 
     摘要: 文件系統的功能:1.資源包裹2.提供資源載入速度3.資源加密在蓋莫游戲引擎中文件系統由讀文件,寫文件,XML序列化對象,ConfigFile構成文件系統的接口如下:1.讀文件 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->/////////////...  閱讀全文
posted @ 2010-08-21 16:26 ccsdu2009 閱讀(1619) | 評論 (2)編輯 收藏
 
使用boost pool的簡單例子如下:
#include <cstdlib>
#include 
<iostream>
#include 
<boost/pool/pool.hpp>
#include 
<boost/pool/object_pool.hpp>
using namespace std;
using namespace boost;

class Object
{
public:
    Object(){cout
<<"new obj"<<endl;}
    
~Object(){cout<<"delete obj"<<endl;}      
}; 

int main(int argc, char *argv[])
{   
    
//!每次分配的塊的大小
    const int blocksize = sizeof(int); 
    boost::pool
<> alloc(blocksize);
    
for(int i = 0; i < 100; i++)
    {   
        
//! 分配 
        int* ptr = (int*)alloc.malloc();
        cout
<<*ptr<<endl;
        
//! 釋放     
        alloc.free(ptr);    
    }
    
    
//!object pool每次需要指定對象大小 
    boost::object_pool<Object> pool_alloc;
    
for(int i = 0;i < 100;i++)
    {   
        
//! 分配內存 
        void* mem = pool_alloc.malloc();
        
//! 構造
        Object *obj = new(mem)Object(); 
        
//! 析構 
        pool_alloc.destroy(obj);
    }
  
    system(
"PAUSE");
    
return EXIT_SUCCESS;
}
//! ccsdu2004

posted @ 2010-08-15 14:54 ccsdu2009 閱讀(1005) | 評論 (1)編輯 收藏
 
本篇主要說明boost function的使用例子
設計頭文件:
#include <boost/function.hpp>

基本的function對象例子
boost::function<int(const char*,&int)> f;
代碼該函子對應的函數其返回值為int類型,她有個2個參數分別為const char*和&int類型
一個簡單的例子如下所示:
#include <iostream>
#include 
<boost/function.hpp>

inline 
int Sum(const int a,const int b)
{
    
return a + b;    
}

int main()
{   
    boost::function
<int(const int,const int)> sum_ptr;
    sum_ptr 
= &Sum;
    std::cout
<<"1+2=:?"<<sum_ptr(1,2);
    system(
"PAUSE");
    
return EXIT_SUCCESS;
}
如果對應的函數為類的成員函數則其使用例子可參考下面的說明:
#include <iostream>
#include 
<boost/function.hpp>
#include 
<functional>

struct Adder 
{
    Adder(
int val):value(val){}
    
int Add(int x){return x*value;}
    
int value;
};

int main()
{   
    
//! 對應函數返回值int參數為int
    boost::function<int(int)>f;
    Adder add(
7);
    
//! 綁定成員函數到boost::function<>
    f = std::bind1st(std::mem_fun(&Adder::Add),&add);
    std::cout
<<f(5)<<std::endl; 

    
    system(
"PAUSE");
    
return EXIT_SUCCESS;
}
對于仿函子則可以這樣做:
#include <iostream>
#include 
<boost/function.hpp>
#include 
<functional>

struct Div 
{
    
float operator()(int x, int y)const 
    {    
       
return((float)x)/y; 
    }
};

int main()
{   
    
//! 2
    boost::function<float(int,int)> div;
    div 
= Div();
    std::cout
<<div(1,2)<<std::endl;
    
    system(
"PAUSE");
    
return EXIT_SUCCESS;
}
//! ccsdu2004

posted @ 2010-08-14 18:42 ccsdu2009 閱讀(450) | 評論 (0)編輯 收藏
 
使用c++如何獲取cpu溫度

當前在偵測cpu溫度方面做得最好的是core temp,
其他的相關軟件有cpu Informer,cpu-z,優化大師,魯大師等等
可能獲取cpu溫度的途徑(win2下)
有winio,ring0,smbus,匯編,wmi,apic,bios等等

但是效果都很差
有人有什么好的辦法可以獲得
歡迎討論

posted @ 2010-08-13 09:10 ccsdu2009 閱讀(7341) | 評論 (8)編輯 收藏
 
這是使用Boost assigne小庫的例子
包括map,vector,array的賦值操作
#include <cstdlib>
#include 
<iostream>
#include 
<boost/assign.hpp>
#include 
<boost/array.hpp>
#include 
<algorithm>
#include 
<iterator> 

using namespace std;
using namespace boost;
using namespace boost::assign;

int main(int argc, char *argv[])
{
    
//! vector賦值
    vector<int> v;
    v 
+= 1,2,3,4,5,6,7,8,9
    copy(v.begin(),v.end(),ostream_iterator
<int>(cout,"\n"));
    
    
//! map
    map<string,int> m;
    insert(m)(
"foo",1)("bar",2)("ss",3);
    std::cout
<<m.size()<<std::endl;
    
    
//! boost array.
    typedef array<float,6> Array;
#if BOOST_WORKAROUND(BOOST_DINKUMWARE_STDLIB, == 1) || BOOST_WORKAROUND(__BORLANDC__, BOOST_TESTED_AT(0x564))   
    Array a 
= list_of(1.1)(2.2)(3.3)(4.4)(5.5)(6.6).to_array(a);
#else
    Array a 
= list_of(1.1)(2.2)(3.3)(4.4)(5.5)(6.6);
#endif
    copy(a.begin(),a.end(),ostream_iterator
<float>(cout,"\n"));
    
    typedef boost::tuple
<int,std::string,int> tuple;
    std::vector
<tuple> vt = tuple_list_of(1,"foo",2)(3,"bar",4);
    std::map
<std::string,int> mp = pair_list_of("foo",3)("bar",5);
    
    system(
"PAUSE");
    
return EXIT_SUCCESS;
}
//! ccsdu2004


posted @ 2010-08-12 09:55 ccsdu2009 閱讀(625) | 評論 (0)編輯 收藏
 
這是簡單的使用boost文件系統的例子
在devc++下編譯需要2個庫一個libboostsystem一個libboostfilesystem
基本的研發如下:
#include <cstdlib>
#include 
<iostream>
#include 
<boost/filesystem.hpp>

using namespace std;
namespace fs = boost::filesystem;

int main(int argc, char *argv[])
{
    std::cout
<<"sizeof(intmax_t)is:"<<sizeof(boost::intmax_t)<<'\n';
    fs::path path(
"main.cpp",fs::native);
    
if(!fs::exists(path))
    {  
        
return -1;                     
    }
    
if(!fs::is_regular(path))
        
return -1;
    std::cout
<<"size is:"<<fs::file_size(path)<<"字節"<<std::endl;    
    
    fs::path full_path(fs::initial_path
<fs::path>());
    full_path 
= fs::system_complete(fs::path("main.cpp"));  
    
//! 獲取給定文件全路徑  
    cout<<"full path name is:"<<full_path.file_string()<<std::endl;
    
//! 檢測是不是路徑
    cout<<"is path:"<<fs::is_directory(full_path)<<std::endl;
  
    unsigned 
long file_count = 0;
    unsigned 
long dir_count = 0;
    unsigned 
long other_count = 0;
    unsigned 
long err_count = 0;    
    full_path 
= fs::system_complete(fs::path("C:\\WINDOWS"));
    
    
//! 目錄迭代 
    fs::directory_iterator end_iter;
    
for(fs::directory_iterator dir_itr(full_path);dir_itr != end_iter;++dir_itr)
    {
       
try
       {
          
if(fs::is_directory(dir_itr->status()))
          {
              
++dir_count;
              std::cout
<<dir_itr->path().filename()<<"[directory]\n";
          }
          
else if(fs::is_regular_file(dir_itr->status()))
          {
              
++file_count;
              std::cout
<<dir_itr->path().filename()<<"\n";
              
//! 全路徑名字 
              std::cout<<dir_itr->path().native_file_string()<<std::endl;
          }
          
else
          {
              
++other_count;
              std::cout 
<< dir_itr->path().filename() <<"[other]\n";
          }
       }
       
catch(const std::exception & ex)
       {
          
++err_count;
          std::cout
<<dir_itr->path().filename()<<" "<<ex.what()<<std::endl;
       }
    }
    std::cout
<<"\n"<<file_count<<"files\n"<<dir_count<<" directories\n"<<other_count<<" others\n"<<err_count<<" errors\n"
    
    
//! 生成文件目錄
    fs::create_directories(fs::path("filesystem"));
    system(
"PAUSE");
    
return EXIT_SUCCESS;
}
//! ccsdu2004 
boost文件系統還不錯
要是再加入對壓縮包或者資源包的支持就更好了!

posted @ 2010-08-11 16:42 ccsdu2009 閱讀(774) | 評論 (0)編輯 收藏
僅列出標題
共38頁: First 23 24 25 26 27 28 29 30 31 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>
            国语自产精品视频在线看抢先版结局| 欧美日韩一区二区三区在线视频| 国产精品免费看| 亚洲一区二区久久| 一区二区三区精品视频在线观看| 欧美日韩一区二区欧美激情 | 久久精品国产一区二区三区免费看| 欧美性猛交xxxx乱大交退制版| 亚洲一区免费视频| 亚洲免费中文| 激情欧美日韩一区| 亚洲人永久免费| 国产精品国产a级| 久久久国产精品一区| 久久久精彩视频| 99re亚洲国产精品| 亚洲欧美另类在线观看| 狠狠色综合色区| 亚洲韩国青草视频| 国产精品久久久久aaaa九色| 久久狠狠久久综合桃花| 欧美成人高清| 欧美一进一出视频| 蜜臀av国产精品久久久久| 亚洲淫性视频| 久久免费视频网站| 亚洲欧美国产一区二区三区| 久久久久久亚洲综合影院红桃| 99精品国产热久久91蜜凸| 亚洲欧美中文在线视频| 亚洲黄色免费| 亚洲欧美日韩一区| 99在线精品视频| 久久精品国产成人| 中文在线资源观看网站视频免费不卡| 午夜国产一区| 国产精品99久久久久久久久| 欧美一区二区黄| 亚洲视频精品| 久久欧美中文字幕| 久久gogo国模裸体人体| 欧美欧美天天天天操| 久久综合激情| 国产欧美日韩一区二区三区在线| 亚洲电影欧美电影有声小说| 国产有码在线一区二区视频| 日韩一级大片在线| 黄页网站一区| 欧美在线影院在线视频| 亚洲午夜一区| 欧美激情视频一区二区三区不卡| 久久亚洲一区| 国产日韩一区欧美| 亚洲欧美偷拍卡通变态| 亚洲一区亚洲二区| 欧美日韩一区视频| 日韩视频一区二区三区在线播放免费观看| 影音欧美亚洲| 久久er精品视频| 性欧美大战久久久久久久免费观看| 欧美日韩三区四区| 亚洲人久久久| 在线视频亚洲| 欧美日韩国产天堂| 亚洲精品社区| 亚洲天堂av在线免费| 欧美三级欧美一级| 一区二区三区成人| 亚洲欧美国产高清va在线播| 国产精品久久久久久久9999 | 亚洲人成在线观看网站高清| 最近看过的日韩成人| 免费人成网站在线观看欧美高清 | 亚洲美女免费精品视频在线观看| 久久久精品日韩欧美| 久久综合九色九九| 在线电影一区| 欧美高清在线一区二区| 亚洲欧洲精品一区二区精品久久久| 亚洲精品影院在线观看| 欧美日韩在线精品一区二区三区| 一本综合久久| 篠田优中文在线播放第一区| 国产一区二区精品久久91| 久久久久看片| 亚洲人屁股眼子交8| 亚洲欧美激情四射在线日| 国产精品夜夜夜一区二区三区尤| 羞羞答答国产精品www一本 | 欧美一级片久久久久久久| 国产精品女人毛片| 久久精品99国产精品酒店日本| 欧美激情一区二区三区四区| 制服丝袜激情欧洲亚洲| 国产午夜精品一区二区三区欧美 | 亚洲第一精品福利| 欧美精品一区在线观看| 亚洲欧美日韩国产成人精品影院 | 日韩亚洲一区二区| 国产精品毛片大码女人| 久久久久久黄| 一本久道综合久久精品| 久久精品成人欧美大片古装| 亚洲激情综合| 国产欧美丝祙| 欧美日韩国产123区| 久久精品系列| 亚洲最新在线| 牛夜精品久久久久久久99黑人| 在线一区观看| 尤物在线观看一区| 国产精品视频网址| 欧美va亚洲va香蕉在线| 午夜影视日本亚洲欧洲精品| 亚洲国产一区二区三区a毛片| 午夜精品久久久久久久久久久久久| 一区二区在线免费观看| 国产精品久久久久久久久果冻传媒 | 亚洲精品国久久99热| 国产精品久久97| 欧美成人一区二区在线| 亚久久调教视频| 99re国产精品| 亚洲国产精品一区二区久| 久久国产精品99久久久久久老狼| 夜夜嗨av一区二区三区中文字幕| 狠狠色伊人亚洲综合网站色| 国产精品视频免费| 欧美日韩情趣电影| 欧美激情精品久久久久久蜜臀| 久久国产精品99国产| 亚洲免费视频网站| 亚洲性视频网址| 99精品视频免费全部在线| 欧美激情第3页| 欧美jjzz| 欧美激情国产高清| 欧美激情2020午夜免费观看| 久久久亚洲高清| 久久免费精品视频| 久久精品国产999大香线蕉| 亚洲一区不卡| 亚洲欧美不卡| 亚久久调教视频| 欧美一区日本一区韩国一区| 亚洲综合国产精品| 亚洲综合精品四区| 欧美亚洲日本国产| 久久国产福利| 麻豆精品一区二区av白丝在线| 久久免费午夜影院| 蜜乳av另类精品一区二区| 久久在线视频| 鲁鲁狠狠狠7777一区二区| 免费不卡在线观看| 欧美黄色大片网站| 亚洲日本欧美天堂| 一区二区欧美亚洲| 亚洲欧美日韩第一区| 久久精品综合| 欧美国产高清| 欧美午夜美女看片| 国产亚洲一区在线播放| 激情成人av| 日韩视频一区二区三区在线播放免费观看| 亚洲欧洲一区二区天堂久久| 亚洲少妇最新在线视频| 亚洲女爱视频在线| 老司机精品福利视频| 亚洲国内在线| 亚洲欧美日韩精品一区二区| 久久国产一二区| 欧美精品1区| 国产精品你懂的在线| 在线日韩欧美| 亚洲视频在线观看| 久久久综合精品| 999在线观看精品免费不卡网站| 亚洲午夜小视频| 久久一二三国产| 国产精品白丝jk黑袜喷水| 韩国成人福利片在线播放| 91久久精品国产91性色| 亚洲欧美久久久久一区二区三区| 久久久久欧美精品| 99精品福利视频| 久久天堂av综合合色| 欧美午夜精品久久久久免费视| 狠狠色狠狠色综合系列| 在线亚洲高清视频| 欧美成人免费网| 香蕉久久一区二区不卡无毒影院| 欧美 日韩 国产 一区| 国产拍揄自揄精品视频麻豆| 亚洲精选91| 噜噜噜91成人网| 亚洲一区二区三区免费视频| 另类春色校园亚洲| 国产亚洲美州欧州综合国| 亚洲在线黄色|