您的位置:首页 > 产品设计 > UI/UE

嵌入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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: