Permalink
Switch branches/tags
Nothing to show
Find file
Fetching contributors…
Cannot retrieve contributors at this time
224 lines (113 sloc) 3.69 KB
//
// Application.h
// ogreApp
//
// Created by iMac on 11-6-15.
// Copyright 2011年 __MyCompanyName__. All rights reserved.
//
#pragma once
//#include "ogreConfig.h"
//#include "Ogreplatform.h"
#if OGRE_PLATFORM == OGRE_PLATFORM_IPHONE
#include "FileSystemLayerImpl.h"
#include "ogreapp/ofxiPhoneVideoGrabber.h"
#include "ogreapp/Accelerometer.h"
#include <sys/types.h>
#include <sys/stat.h>
#endif
#include "stateMachine.h"
#include "UIManager.h"
#include "UIImagesetManager.h"
class ofxiPhoneVideoGrabber;
class SdkTrayManager;
class InputListen;
class UIDebug;
class Application :public Ogre::Singleton<Application>, public StateMachine , public UIManager
{
public:
Application();
~Application();
/**初始化
*/
void init();
/**销毁所以物体
*/
void destory();
/**暂停整个游戏
*@remark 只会暂停游戏逻辑。ui和渲染不会暂停
*/
void pauseApp();
/**继续游戏*/
void continueApp();
/**初始化ogre渲染器*/
bool initOgreRender();
/**销毁所有的ogre对像*/
void destroyOgreRender();
/**初始化ogre插件,包括openles都在这里初始化*/
// bool initOgrePlugs();
/**每帧更新
@param time 单位为秒
*/
void update(float time);
/**初始化渲染资源*/
void initResource();
/**初始化输入设备*/
void initInputDevice();
/***/
void destroyInputDevice();
/**返回场景的的主摄像机节点*/
Ogre::SceneNode* getMainCameraNode()const {return m_pCameraNode;}
/**返回主摄像*/
Ogre::Camera* getMainCamera()const{return m_pCamera;}
/**返回场景管理器*/
Ogre::SceneManager* getMainSceneManager()const {return m_pSceneManager;}
//*/输入事件,
/**开始按下*/
void TouchBegan(int x,int y);
/**手指离开*/
void TouchEnd(int x,int y);
/**手指滑动*/
void TouchMove(int x,int y);
/**初始化游戏目录*/
void initGamePath();
/**获取渲染窗口*/
Ogre::RenderWindow* getRenderWindows()const {return m_pRenderWindow;}
//*/输入事件结束
#if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
///开始帧循环,windows平台下使用
void go();
///window下函创建窗口函数
bool InitWindow(int width,int height);
static LRESULT MsgProc(HWND hWnd, DWORD message, WPARAM wParam, LPARAM lParam);
#else
OgreBites::FileSystemLayerImpl* getFileSystem()const {return m_pFileSystem;}
#endif
protected:
/**初始化函数,一般在这个函数里注册所有的状态
*在这个函数里需要手动指定当前活动状态。同时调用活动状态的begin函数
*/
virtual void initState();
/**根据手机现在的方向转变ui位置*/
void transformInputCoordinate(int&x, int &y);
protected:
protected:
/**初始化场景*/
void initScene();
Ogre::Root* m_pRoot;
// Ogre::StaticPluginLoader mStaticPluginLoader;
Ogre::RenderWindow* m_pRenderWindow;
Ogre::Viewport* m_pViewPort;
Ogre::SceneNode* m_pCameraNode;
Ogre::Camera* m_pCamera;
Ogre::SceneManager* m_pSceneManager;
#if OGRE_PLATFORM == OGRE_PLATFORM_IPHONE
OgreBites::FileSystemLayerImpl* m_pFileSystem;
#else OGRE_PLATFORM ==OGRE_PLATFORM_WIN32
HWND mHwnd;
HINSTANCE mInstance;
#endif
InputListen* m_pInputListen;
UIDebug* m_pDebugPanel;///debug面板
bool m_Pause;///是否暂停
UIImagesetManager* m_pImagesetMrg;
};