嵌入CEGUI和 OGRE 到MFC界面中
2008-08-12 15:30
399 查看
原先打算把CEGUI用到MFC Activex中,然后做成WEB3D,但是不成功,在MFC应用程序中没有问题,在IE就出错,这个是我写的一个简单的例子,只是实现了嵌入,其他功能比如鼠标键盘事件都没有处理,整合几个例子而成,目的在于测试,感兴趣的自己可以研究一下
BaseApplication.h
#ifndef __BaseApplication_h_
#define __BaseApplication_h_
#include <ogre.h>
#include <OgreStringConverter.h>
#include <OgreException.h>
//Use this define to signify OIS will be used as a DLL
//(so that dll import/export macros are in effect)
#define OIS_DYNAMIC_LIB
#include <OIS/OIS.h>
using namespace Ogre;
#include <CEGUI.h>
#include <CEGUISystem.h>
#include <CEGUISchemeManager.h>
#include <OgreCEGUIRenderer.h>
class BaseApplication : public Ogre::Singleton<BaseApplication>, public FrameListener, public WindowEventListener, public OIS::KeyListener, public OIS::MouseListener
#endif // #ifndef __BaseApplication_h_
#include "stdafx.h"
#include "BaseApplication.h"
template<> BaseApplication* Ogre::Singleton<BaseApplication>::ms_Singleton = 0;
CEGUI::MouseButton convertOISMouseButtonToCegui(int buttonID)
//-------------------------------------------------------------------------------------
BaseApplication::BaseApplication(void)
: mRoot(0),
mCamera(0),
mSceneMgr(0),
mWindow(0),
mGUISystem(0),
mGUIRenderer(0),
mShutdownRequested(false),
mSceneDetailIndex(0),
mMoveSpeed(100),
mRotateSpeed(36),
mDebugOverlay(0),
mDebugText(""),
mInputManager(0),
mMouse(0),
mKeyboard(0),
mTranslateVector(Vector3::ZERO),
mStatsOn(true),
mUseBufferedInputKeys(false),
mUseBufferedInputMouse(false),
mInputTypeSwitchingOn(false),
mNumScreenShots(0),
mMoveScale(0.0f),
mRotScale(0.0f),
mTimeUntilNextToggle(0),
mRotX(0),
mRotY(0),
mFiltering(TFO_BILINEAR),
mAniso(1)
//-------------------------------------------------------------------------------------
BaseApplication::~BaseApplication(void)
void BaseApplication::SetWnd(HWND w)
//-------------------------------------------------------------------------------------
bool BaseApplication::configure(void)
//-------------------------------------------------------------------------------------
void BaseApplication::chooseSceneManager(void)
//-------------------------------------------------------------------------------------
void BaseApplication::createCamera(void)
//-------------------------------------------------------------------------------------
void BaseApplication::createFrameListener(void)
//-------------------------------------------------------------------------------------
void BaseApplication::destroyScene(void)
//-------------------------------------------------------------------------------------
void BaseApplication::createViewports(void)
//-------------------------------------------------------------------------------------
void BaseApplication::setupResources(void)
//-------------------------------------------------------------------------------------
void BaseApplication::createResourceListener(void)
//-------------------------------------------------------------------------------------
void BaseApplication::loadResources(void)
//-------------------------------------------------------------------------------------
void BaseApplication::go(void)
//-------------------------------------------------------------------------------------
bool BaseApplication::setup(void)
//-------------------------------------------------------------------------------------
void BaseApplication::updateStats(void)
//-------------------------------------------------------------------------------------
bool BaseApplication::processUnbufferedKeyInput(const FrameEvent& evt)
//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
bool BaseApplication::processUnbufferedMouseInput(const FrameEvent& evt)
//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
void BaseApplication::moveCamera()
//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
void BaseApplication::showDebugOverlay(bool show)
//-------------------------------------------------------------------------------------
void BaseApplication::requestShutdown(void)
//-------------------------------------------------------------------------------------
bool BaseApplication::frameStarted(const FrameEvent& evt)
//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
bool BaseApplication::frameEnded(const FrameEvent& evt)
//-------------------------------------------------------------------------------------
void BaseApplication::switchMouseMode()
//-------------------------------------------------------------------------------------
void BaseApplication::switchKeyMode()
//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
bool BaseApplication::keyPressed( const OIS::KeyEvent &arg )
bool BaseApplication::keyReleased( const OIS::KeyEvent &arg )
bool BaseApplication::mouseMoved( const OIS::MouseEvent &arg )
bool BaseApplication::mousePressed( const OIS::MouseEvent &arg, OIS::MouseButtonID id )
bool BaseApplication::mouseReleased( const OIS::MouseEvent &arg, OIS::MouseButtonID id )
//Adjust mouse clipping area
void BaseApplication::windowResized(RenderWindow* rw)
//Unattach OIS before window shutdown (very important under Linux)
void BaseApplication::windowClosed(RenderWindow* rw)
//-------------------------------------------------------------------------------------
void BaseApplication::setupEventHandlers(void)
//-------------------------------------------------------------------------------------
bool BaseApplication::handleQuit(const CEGUI::EventArgs& e)
BaseApplication.h
#ifndef __BaseApplication_h_
#define __BaseApplication_h_
#include <ogre.h>
#include <OgreStringConverter.h>
#include <OgreException.h>
//Use this define to signify OIS will be used as a DLL
//(so that dll import/export macros are in effect)
#define OIS_DYNAMIC_LIB
#include <OIS/OIS.h>
using namespace Ogre;
#include <CEGUI.h>
#include <CEGUISystem.h>
#include <CEGUISchemeManager.h>
#include <OgreCEGUIRenderer.h>
class BaseApplication : public Ogre::Singleton<BaseApplication>, public FrameListener, public WindowEventListener, public OIS::KeyListener, public OIS::MouseListener
#endif // #ifndef __BaseApplication_h_
#include "stdafx.h"
#include "BaseApplication.h"
template<> BaseApplication* Ogre::Singleton<BaseApplication>::ms_Singleton = 0;
CEGUI::MouseButton convertOISMouseButtonToCegui(int buttonID)
//-------------------------------------------------------------------------------------
BaseApplication::BaseApplication(void)
: mRoot(0),
mCamera(0),
mSceneMgr(0),
mWindow(0),
mGUISystem(0),
mGUIRenderer(0),
mShutdownRequested(false),
mSceneDetailIndex(0),
mMoveSpeed(100),
mRotateSpeed(36),
mDebugOverlay(0),
mDebugText(""),
mInputManager(0),
mMouse(0),
mKeyboard(0),
mTranslateVector(Vector3::ZERO),
mStatsOn(true),
mUseBufferedInputKeys(false),
mUseBufferedInputMouse(false),
mInputTypeSwitchingOn(false),
mNumScreenShots(0),
mMoveScale(0.0f),
mRotScale(0.0f),
mTimeUntilNextToggle(0),
mRotX(0),
mRotY(0),
mFiltering(TFO_BILINEAR),
mAniso(1)
//-------------------------------------------------------------------------------------
BaseApplication::~BaseApplication(void)
void BaseApplication::SetWnd(HWND w)
//-------------------------------------------------------------------------------------
bool BaseApplication::configure(void)
//-------------------------------------------------------------------------------------
void BaseApplication::chooseSceneManager(void)
//-------------------------------------------------------------------------------------
void BaseApplication::createCamera(void)
//-------------------------------------------------------------------------------------
void BaseApplication::createFrameListener(void)
//-------------------------------------------------------------------------------------
void BaseApplication::destroyScene(void)
//-------------------------------------------------------------------------------------
void BaseApplication::createViewports(void)
//-------------------------------------------------------------------------------------
void BaseApplication::setupResources(void)
//-------------------------------------------------------------------------------------
void BaseApplication::createResourceListener(void)
//-------------------------------------------------------------------------------------
void BaseApplication::loadResources(void)
//-------------------------------------------------------------------------------------
void BaseApplication::go(void)
//-------------------------------------------------------------------------------------
bool BaseApplication::setup(void)
//-------------------------------------------------------------------------------------
void BaseApplication::updateStats(void)
//-------------------------------------------------------------------------------------
bool BaseApplication::processUnbufferedKeyInput(const FrameEvent& evt)
//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
bool BaseApplication::processUnbufferedMouseInput(const FrameEvent& evt)
//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
void BaseApplication::moveCamera()
//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
void BaseApplication::showDebugOverlay(bool show)
//-------------------------------------------------------------------------------------
void BaseApplication::requestShutdown(void)
//-------------------------------------------------------------------------------------
bool BaseApplication::frameStarted(const FrameEvent& evt)
//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
bool BaseApplication::frameEnded(const FrameEvent& evt)
//-------------------------------------------------------------------------------------
void BaseApplication::switchMouseMode()
//-------------------------------------------------------------------------------------
void BaseApplication::switchKeyMode()
//-------------------------------------------------------------------------------------
//-------------------------------------------------------------------------------------
bool BaseApplication::keyPressed( const OIS::KeyEvent &arg )
bool BaseApplication::keyReleased( const OIS::KeyEvent &arg )
bool BaseApplication::mouseMoved( const OIS::MouseEvent &arg )
bool BaseApplication::mousePressed( const OIS::MouseEvent &arg, OIS::MouseButtonID id )
bool BaseApplication::mouseReleased( const OIS::MouseEvent &arg, OIS::MouseButtonID id )
//Adjust mouse clipping area
void BaseApplication::windowResized(RenderWindow* rw)
//Unattach OIS before window shutdown (very important under Linux)
void BaseApplication::windowClosed(RenderWindow* rw)
//-------------------------------------------------------------------------------------
void BaseApplication::setupEventHandlers(void)
//-------------------------------------------------------------------------------------
bool BaseApplication::handleQuit(const CEGUI::EventArgs& e)
相关文章推荐
- 嵌入CEGUI和 OGRE 到MFC界面中(二)
- OGRE嵌入到MFC
- 剽窃vs2010 mfc 工程 让程序自动嵌入xp界面风格 系统风格
- Ogre里使用CEGUI做的界面
- Ogre嵌入MFC傻瓜完全教程(一)
- Ogre嵌入MFC傻瓜完全教程(二)
- Ogre嵌入MFC傻瓜全然教程(三)
- ogre cegui torchlight(火炬之光)换装界面求助
- OGRE嵌入到MFC
- Ogre里使用CEGUI做的界面
- Ogre嵌入MFC傻瓜完全教程(三)
- CEGUI嵌入OGRE笔记
- 最近在研究ogre嵌入MFC(网上找的资料先存着)
- OGRE嵌入到MFC
- 基于COM的Matlab 图像嵌入MFC界面
- MFC程序嵌入子进程界面的通信方法及消息同步
- 嵌入Chrome cef到MFC CView
- 各种界面开发工具 MFC,WTL,QT,wxWidget,GTK+
- OGRE+OIS+CEGUI解决双鼠标问题
- 关于MFC美化界面的一个实现