SpiecsEngine
 
Loading...
Searching...
No Matches
Input.h
Go to the documentation of this file.
1/**
2* @file Input.h.
3* @brief The Input Class Definitions.
4* @author The Cherno.
5*/
6
7#pragma once
8#include "Core/Core.h"
9
10namespace Spices {
11
12 /**
13 * @brief This Class Is a wrapper of Platform Specific Input Query.
14 */
15 class Input
16 {
17 public:
18
19 /**
20 * @brief Constructor Function.
21 */
22 Input() = default;
23
24 /**
25 * @brief Destructor Function.
26 */
27 virtual ~Input() = default;
28
29 /**
30 * @brief Query If given Key is Pressed.
31 * @param[in] keycode In Key Code.
32 * @return Returns true if given Key is Pressed.
33 */
34 static bool IsKeyPressed(const int& keycode) { return s_Instance->IsKeyPressedImpl(keycode); }
35
36 /**
37 * @brief Query If given Mouse Button is Pressed.
38 * @param[in] button In Mouse Button.
39 * @return Returns true if given Key is Pressed.
40 */
41 static bool IsMouseButtonPressed(const int& button) { return s_Instance->IsMouseButtonPressedImpl(button); }
42
43 /**
44 * @brief Query Mouse Position in Windows.
45 * @return Returns the pair of Mouse Position in Windows.
46 */
47 static std::pair<float, float> GetMousePosition() { return s_Instance->GetMousePositionImpl(); }
48
49 /**
50 * @brief Query Mouse X Position in Windows.
51 * @return Returns the Mouse X Position in Windows.
52 */
53 static float GetMouseX() { return s_Instance->GetMouseXImpl(); }
54
55 /**
56 * @brief Query Mouse Y Position in Windows.
57 * @return Returns the Mouse Y Position in Windows.
58 */
59 static float GetMouseY() { return s_Instance->GetMouseYImpl(); }
60
61 protected:
62
63 /**
64 * @brief Query If given Key is Pressed.
65 * Interface for platform Implementation.
66 * @param[in] keycode In Mouse Button.
67 * @return Returns true if given Key is Pressed.
68 */
69 virtual bool IsKeyPressedImpl(const int& keycode) = 0;
70
71 /**
72 * @brief Query If given Mouse Button is Pressed.
73 * Interface for platform Implementation.
74 * @param[in] button In Mouse Button.
75 * @return Returns true if given Key is Pressed.
76 */
77 virtual bool IsMouseButtonPressedImpl(const int& button) = 0;
78
79 /**
80 * @brief Query Mouse Position in Windows.
81 * Interface for platform Implementation.
82 * @return Returns the pair of Mouse Position in Windows.
83 */
84 virtual std::pair<float, float> GetMousePositionImpl() = 0;
85
86 /**
87 * @brief Query Mouse X Position in Windows.
88 * Interface for platform Implementation.
89 * @return Returns the Mouse X Position in Windows.
90 */
91 virtual float GetMouseXImpl() = 0;
92
93 /**
94 * @brief Query Mouse Y Position in Windows.
95 * Interface for platform Implementation.
96 * @return Returns the Mouse Y Position in Windows.
97 */
98 virtual float GetMouseYImpl() = 0;
99
100 private:
101
102 /**
103 * @brief Platform Specific Input Class.
104 */
106 };
107
108}
#define SPICES_PROFILE_ZONE
static bool IsKeyPressed(const int &keycode)
Query If given Key is Pressed.
Definition Input.h:34
virtual bool IsMouseButtonPressedImpl(const int &button)=0
Query If given Mouse Button is Pressed. Interface for platform Implementation.
static float GetMouseY()
Query Mouse Y Position in Windows.
Definition Input.h:59
static float GetMouseX()
Query Mouse X Position in Windows.
Definition Input.h:53
virtual float GetMouseYImpl()=0
Query Mouse Y Position in Windows. Interface for platform Implementation.
virtual bool IsKeyPressedImpl(const int &keycode)=0
Query If given Key is Pressed. Interface for platform Implementation.
static std::unique_ptr< Input > s_Instance
Platform Specific Input Class.
Definition Input.h:105
static bool IsMouseButtonPressed(const int &button)
Query If given Mouse Button is Pressed.
Definition Input.h:41
virtual float GetMouseXImpl()=0
Query Mouse X Position in Windows. Interface for platform Implementation.
virtual std::pair< float, float > GetMousePositionImpl()=0
Query Mouse Position in Windows. Interface for platform Implementation.
virtual ~Input()=default
Destructor Function.
static std::pair< float, float > GetMousePosition()
Query Mouse Position in Windows.
Definition Input.h:47
Input()=default
Constructor Function.
This Class Is a wrapper of Platform Specific Input Query.
Definition Input.h:16
static VulkanState & GetState()
Get VulkanState in use.
This class defines the render backend behaves of Vulkan.
virtual std::pair< float, float > GetMousePositionImpl() override
Query Mouse Position in Windows.
virtual bool IsMouseButtonPressedImpl(const int &button) override
Query If given Mouse Button is Pressed.
virtual float GetMouseXImpl() override
Query Mouse X Position in Windows.
virtual float GetMouseYImpl() override
Query Mouse Y Position in Windows.
virtual bool IsKeyPressedImpl(const int &keycode) override
Query If given Key is Pressed.
This Class Is Windows Platform Specific Input Class.