Elevate Engine 1
Loading...
Searching...
No Matches
InputBuffer.h
Go to the documentation of this file.
1#pragma once
2
3#include <bitset>
4
5namespace Elevate
6{
8 {
9 private:
10 std::bitset<512 * 2> keyStates; // 0 to 3 -> released, down, pressed, up (2 bits per key)
11 std::bitset<8 * 2> mouseButtonStates;
12
13 public:
15 //Keyboard
16 bool IsKeyPressed(int keycode);
17 bool IsKeyDown(int keycode);
18 bool IsKeyUp(int keycode);
19 //Mouse
20 bool IsMouseButtonPressed(int mouseButtonCode);
21 bool IsMouseButtonDown(int mouseButtonCode);
22 bool IsMouseButtonUp(int mouseButtonCode);
23
25 //Keyboard
26 void SetKeyPressed(int keycode, int repeatCount);
27 void SetKeyReleased(int keycode);
28 //Mouse
29 void SetMouseButtonPressed(int mouseButtonCode);
30 void SetMouseButtonReleased(int mouseButtonCode);
31 void ResetAllStates();
32
33 void ManageMidSates();
34
35 private:
36 // Bit packing helper
37 std::uint8_t GetKeyState(size_t index) const;
38 void SetKeyState(size_t index, std::uint8_t value);
39 std::uint8_t GetMouseButtonState(size_t index) const;
40 void SetMouseButtonState(size_t index, std::uint8_t value);
41 };
42}
43
void SetKeyReleased(int keycode)
bool IsKeyPressed(int keycode)
Getter.
void SetKeyPressed(int keycode, int repeatCount)
Setter.
void SetMouseButtonReleased(int mouseButtonCode)
bool IsKeyUp(int keycode)
bool IsKeyDown(int keycode)
bool IsMouseButtonPressed(int mouseButtonCode)
void SetMouseButtonPressed(int mouseButtonCode)
bool IsMouseButtonUp(int mouseButtonCode)
bool IsMouseButtonDown(int mouseButtonCode)