1 | #ifndef _OBAOGREFRAMELISTENER_H |
---|
2 | #define _OBAOGREFRAMELISTENER_H |
---|
3 | |
---|
4 | #include <OBAPrerequisites.h> |
---|
5 | #include <OBAOgreFrameListenerMode.h> |
---|
6 | |
---|
7 | namespace OBA { |
---|
8 | |
---|
9 | class _OBAExport OgreFrameListener: public Ogre::FrameListener, public Ogre::KeyListener |
---|
10 | { |
---|
11 | protected:
|
---|
12 |
|
---|
13 | void updateStats(void); |
---|
14 | |
---|
15 | void keyClicked(Ogre::KeyEvent* e); |
---|
16 | |
---|
17 | void keyPressed(Ogre::KeyEvent* e); |
---|
18 | |
---|
19 | void keyReleased(Ogre::KeyEvent* e); |
---|
20 | |
---|
21 | public:
|
---|
22 | // Constructor takes a RenderWindow because it uses that to determine input context
|
---|
23 | OgreFrameListener(Ogre::RenderWindow *win, bool useBufferedInputKeys = false, bool useBufferedInputMouse = false);
|
---|
24 | |
---|
25 | virtual ~OgreFrameListener(); |
---|
26 | |
---|
27 | void addFrameListenerMode(OgreFrameListenerMode *ogreFrameListenerMode); |
---|
28 | |
---|
29 | void removeFrameListenerMode(unsigned int iOgreFrameListenerMode); |
---|
30 | |
---|
31 | void setEnabledFrameListenerMode(unsigned int iOgreFrameListenerMode); |
---|
32 | |
---|
33 | OgreFrameListenerMode* getEnabledFrameListenerMode(); |
---|
34 | |
---|
35 | unsigned int getNumFrameListenerModes(); |
---|
36 | |
---|
37 | OgreFrameListenerMode* getFrameListenerMode(unsigned int iOgreFrameListenerMode); |
---|
38 | |
---|
39 | // Override frameStarted event to process that (don't care about frameEnded)
|
---|
40 | bool frameStarted(const Ogre::FrameEvent& evt); |
---|
41 | |
---|
42 | bool frameEnded(const Ogre::FrameEvent& evt); |
---|
43 | |
---|
44 | bool processUnbufferedKeyInput(const Ogre::FrameEvent& evt); |
---|
45 | |
---|
46 | protected:
|
---|
47 | Ogre::EventProcessor* mEventProcessor;
|
---|
48 | Ogre::InputReader* mInputDevice;
|
---|
49 | OgreFrameListenerMode *mDefaultOgreFrameListenerMode; |
---|
50 | std::vector<OgreFrameListenerMode*> mOgreFrameListenerModeList; |
---|
51 | bool mUseBufferedInputKeys, mUseBufferedInputMouse, mInputTypeSwitchingOn;
|
---|
52 | Ogre::Real mTimeUntilNextToggle;
|
---|
53 | Ogre::RenderWindow* mWindow;
|
---|
54 | unsigned int mCurrentOgreFrameListenerMode;
|
---|
55 | |
---|
56 | }; |
---|
57 | |
---|
58 | } |
---|
59 | #endif |
---|