Initial commit
This commit is contained in:
commit
edfc5298e1
252 changed files with 93965 additions and 0 deletions
57
include/Spectre/Input/InputModule.h
Normal file
57
include/Spectre/Input/InputModule.h
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
|
||||
#ifndef SPECTRE_INPUT_MODULE_H
|
||||
#define SPECTRE_INPUT_MODULE_H
|
||||
|
||||
#include <deque>
|
||||
#include <vector>
|
||||
|
||||
#include "InputListener.h"
|
||||
#include "InputEvent.h"
|
||||
|
||||
class Mouse;
|
||||
class Keyboard;
|
||||
class InputDevice;
|
||||
class PlatformInput;
|
||||
|
||||
class InputModule
|
||||
{
|
||||
public :
|
||||
InputModule(PlatformInput *platform);
|
||||
|
||||
virtual ~InputModule();
|
||||
|
||||
Mouse* getMouse();
|
||||
|
||||
Keyboard* getKeyboard();
|
||||
|
||||
void addInputDevice(InputDevice *device);
|
||||
|
||||
void registerListener(InputListener* listener);
|
||||
|
||||
void removeListener(InputListener* listener);
|
||||
|
||||
void postInputEvent(const InputEvent& event);
|
||||
|
||||
// NOTE: Update devices here! (for winapi, process keyboard/mouse messages)
|
||||
void update();
|
||||
|
||||
protected :
|
||||
|
||||
void dispatch();
|
||||
|
||||
typedef std::vector<InputDevice*> InputDeviceVec;
|
||||
InputDeviceVec m_devices;
|
||||
|
||||
Mouse *m_mouse;
|
||||
|
||||
Keyboard *m_keyboard;
|
||||
|
||||
// Buffered input queue.
|
||||
std::deque<InputEvent> m_buffer;
|
||||
|
||||
std::vector<InputListener*> m_listeners;
|
||||
|
||||
PlatformInput *m_platform;
|
||||
};
|
||||
|
||||
#endif /* SPECTRE_INPUT_MODULE_H */
|
||||
Loading…
Add table
Add a link
Reference in a new issue