將ogre 嵌入到 Qt中

2021-05-22 17:09:06 字數 2379 閱讀 7743

我用的環境是vs2008+qt

2,新增幾個檔案如下:

fogrewidget.h:

#include

// 如果為假就返回

#ifndef false_return

#define false_return(h, r) if(!h) return r;

#endif

#ifndef _degug

#define _degug

#endif

#include

#include "ogre.h"

#include "ogreconfigfile.h"

class fogrewidget : public qwidget

;fogrewidget.cpp:

#include "fogrewidget.h"

#include

#include

using namespace std ;

fogrewidget::fogrewidget(qwidget* parent,qstring strinsname) : qwidget(parent,qt::wflags(qt::mswindowsowndc)),m_strinsname_(strinsname)

ogre::root::getsingleton().detachrendertarget(m_prenderwindow);

m_prenderwindow = null ;

void fogrewidget::paintevent(qpaintevent *evt)

void fogrewidget::timerevent(qtimerevent* evt)

void fogrewidget::keypressevent(qkeyevent* evt)

void fogrewidget::mousepressevent(qmouseevent* evt)

bool fogrewidget::loadplugin()

bool fogrewidget::loadresource()

}return true;

}bool fogrewidget::createscenemanager()

bool fogrewidget::createdefaultcamera()

// create render window

bool fogrewidget::createrenderwindow()

bool fogrewidget::initialize( )

else

// create render window

false_return( createrenderwindow(), false );

// create scene manager

false_return( createscenemanager(), false );

// create default camera and viewport

false_return( createdefaultcamera(), false );

ogre::resourcegroupmanager::getsingleton().initialiseallresourcegroups();

// create scene

false_return( createscene(), false );

createlight() ;

starttimer(2);

return false ;

}  

// select render system

bool fogrewidget::selectrendersystem()

else

exit(0);

return false ;

bool fogrewidget::createscene()

void fogrewidget::updatedraw()

void fogrewidget::createlight()

main.cpp

qwidget widget ;

widget.setgeometry (10,10,640,480) ;

fogrewidget ogrewidget(&widget,qstring("ogrehead")) ;

ogrewidget.setgeometry (10,10,340,280) ;

ogrewidget.initialize() ;

widget.show() ;

a.connect(&a, signal(lastwindowclosed()), &a, slot(quit()));

return a.exec();

}3,這樣就可以了。執行效果如下:

將KlayGE嵌入到MFC

說明 1 klayge是一款國人開發的開源遊戲引擎 以下都是以klayge3.8.0而言,並且假定您已經可以編譯該引擎 具體可以參看readme.html,有一點需要提醒由於klayge使用了動態執行時庫,所以boost都會使用動態庫版本,例如boost signals,boost filesyst...

將KlayGE嵌入到MFC

說明 1 klayge是一款國人開發的開源遊戲引擎 以下都是以klayge3.8.0而言,並且假定您已經可以編譯該引擎 具體可以參看readme.html,有一點需要提醒由於klayge使用了動態執行時庫,所以boost都會使用動態庫版本,例如boost signals,boost filesyst...

Ogre3D嵌入Qt框架 之 小結

public ogreview qwidget parent ogreview qsize minimumsizehint const qsize sizehint const protected void setupview 建立ogre使用的內容,場景內容 void update 通過它,手動更...