Преглед изворни кода

Add a way to access input devices from Device class

Daniele Bartolini пре 12 година
родитељ
комит
4cfec71231
4 измењених фајлова са 66 додато и 5 уклоњено
  1. 28 5
      src/Device.cpp
  2. 9 0
      src/Device.h
  3. 24 0
      src/input/InputManager.cpp
  4. 5 0
      src/input/InputManager.h

+ 28 - 5
src/Device.cpp

@@ -40,6 +40,10 @@ OTHER DEALINGS IN THE SOFTWARE.
 #include "FileResourceArchive.h"
 #include "FileResourceArchive.h"
 #include "ResourceManager.h"
 #include "ResourceManager.h"
 #include "TextureResource.h"
 #include "TextureResource.h"
+#include "Keyboard.h"
+#include "Mouse.h"
+#include "Touch.h"
+#include "Accelerometer.h"
 
 
 #ifdef CROWN_BUILD_OPENGL
 #ifdef CROWN_BUILD_OPENGL
 	#include "renderers/gl/GLRenderer.h"
 	#include "renderers/gl/GLRenderer.h"
@@ -260,6 +264,30 @@ DebugRenderer* Device::debug_renderer()
 	return m_debug_renderer;
 	return m_debug_renderer;
 }
 }
 
 
+//-----------------------------------------------------------------------------
+Keyboard* Device::keyboard()
+{
+	return m_input_manager->keyboard();
+}
+
+//-----------------------------------------------------------------------------
+Mouse* Device::mouse()
+{
+	return m_input_manager->mouse();
+}
+
+//-----------------------------------------------------------------------------
+Touch* Device::touch()
+{
+	return m_input_manager->touch();
+}
+
+//-----------------------------------------------------------------------------
+Accelerometer* Device::accelerometer()
+{
+	return m_input_manager->accelerometer();
+}
+
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 void Device::start()
 void Device::start()
 {
 {
@@ -316,11 +344,6 @@ void Device::frame()
 
 
 	m_input_manager->event_loop();
 	m_input_manager->event_loop();
 
 
-	uint32_t window_width, window_height;
-	os::get_render_window_metrics(window_width, window_height);
-	m_renderer->set_scissor_params(0, 0, window_width, window_height);
-	m_renderer->set_viewport_params(0, 0, window_width, window_height);
-
 	m_renderer->begin_frame();
 	m_renderer->begin_frame();
 
 
 	game_frame(last_delta_time());
 	game_frame(last_delta_time());

+ 9 - 0
src/Device.h

@@ -40,6 +40,10 @@ class ResourceArchive;
 class Renderer;
 class Renderer;
 class DebugRenderer;
 class DebugRenderer;
 class InputManager;
 class InputManager;
+class Keyboard;
+class Mouse;
+class Touch;
+class Accelerometer;
 class Game;
 class Game;
 
 
 /// The Engine.
 /// The Engine.
@@ -97,6 +101,11 @@ public:
 	Renderer*				renderer();
 	Renderer*				renderer();
 	DebugRenderer*			debug_renderer();
 	DebugRenderer*			debug_renderer();
 
 
+	Keyboard*				keyboard();
+	Mouse*					mouse();
+	Touch*					touch();
+	Accelerometer*			accelerometer();
+
 private:
 private:
 
 
 	void					create_filesystem();
 	void					create_filesystem();

+ 24 - 0
src/input/InputManager.cpp

@@ -41,6 +41,30 @@ InputManager::~InputManager()
 {
 {
 }
 }
 
 
+//-----------------------------------------------------------------------------
+Keyboard* InputManager::keyboard()
+{
+	return &m_keyboard;
+}
+
+//-----------------------------------------------------------------------------
+Mouse* InputManager::mouse()
+{
+	return &m_mouse;
+}
+
+//-----------------------------------------------------------------------------
+Touch* InputManager::touch()
+{
+	return &m_touch;
+}
+
+//-----------------------------------------------------------------------------
+Accelerometer* InputManager::accelerometer()
+{
+	return &m_accelerometer;
+}
+
 //-----------------------------------------------------------------------------
 //-----------------------------------------------------------------------------
 void InputManager::register_mouse_listener(MouseListener* listener)
 void InputManager::register_mouse_listener(MouseListener* listener)
 {
 {

+ 5 - 0
src/input/InputManager.h

@@ -45,6 +45,11 @@ public:
 						InputManager();
 						InputManager();
 						~InputManager();
 						~InputManager();
 
 
+	Keyboard*			keyboard();
+	Mouse*				mouse();
+	Touch*				touch();
+	Accelerometer*		accelerometer();
+
 	void				register_mouse_listener(MouseListener* listener);
 	void				register_mouse_listener(MouseListener* listener);
 	void				register_keyboard_listener(KeyboardListener* listener);
 	void				register_keyboard_listener(KeyboardListener* listener);
 	void				register_touch_listener(TouchListener* listener);
 	void				register_touch_listener(TouchListener* listener);