Text Rendering

This commit is contained in:
Isuru Samarathunga
2025-10-20 23:39:54 +05:30
parent d4e93b047c
commit b10aacaee7
40 changed files with 1295 additions and 297 deletions

View File

@ -24,41 +24,70 @@ namespace ia::iae
{
class InputManager
{
public:
struct KeyboardGamePadMapping
{
IN InputKey AxisLeft;
IN InputKey AxisRight;
IN InputKey AxisDown;
IN InputKey AxisUp;
IN InputKey ButtonA;
IN InputKey ButtonB;
IN InputKey ButtonC;
IN InputKey ButtonD;
};
public:
STATIC VOID Initialize();
STATIC VOID Terminate();
STATIC VOID OnSDLEvent(IN SDL_Event *event);
STATIC Vec2 GetAxis();
STATIC VOID SwitchModeToText();
STATIC VOID SwitchModeToAction();
STATIC Vec2 GetPointerPosition();
STATIC BOOL IsKeyDown(IN InputKey key);
STATIC BOOL WasKeyPressed(IN InputKey key);
STATIC BOOL WasKeyReleased(IN InputKey key);
STATIC BOOL IsActionDown(IN Handle action);
STATIC BOOL WasActionPressed(IN Handle action);
STATIC BOOL WasActionReleased(IN Handle action);
STATIC BOOL IsActionDown(IN CONST String& action);
STATIC BOOL WasActionPressed(IN CONST String& action);
STATIC BOOL WasActionReleased(IN CONST String& action);
STATIC Handle BindAction(IN CONST String &name, IN InputKey key);
STATIC VOID BindAxis(IN InputKey upKey, IN InputKey downKey, IN InputKey leftKey, IN InputKey rightKey);
STATIC VOID SetAxisUp(IN BOOL v);
STATIC VOID SetAxisDown(IN BOOL v);
STATIC VOID SetAxisLeft(IN BOOL v);
STATIC VOID SetAxisRight(IN BOOL v);
STATIC VOID SetKey(IN InputKey key, IN BOOL state);
STATIC VOID SetAxis(IN BOOL up, IN BOOL down, IN BOOL left, IN BOOL right);
STATIC VOID SetupOnScreenGamePad();
STATIC VOID SetupKeyboardGamePad(IN CONST KeyboardGamePadMapping& mapping);
STATIC BOOL GetButtonA();
STATIC BOOL GetButtonB();
STATIC BOOL GetButtonC();
STATIC BOOL GetButtonD();
STATIC INT16 GetVerticalAxis();
STATIC INT16 GetHorizontalAxis();
STATIC IVec2 GetDirectionalInput();
STATIC VOID SetButtonA(IN BOOL value);
STATIC VOID SetButtonB(IN BOOL value);
STATIC VOID SetButtonC(IN BOOL value);
STATIC VOID SetButtonD(IN BOOL value);
STATIC VOID SetVerticalAxis(IN INT16 value);
STATIC VOID SetHorizontalAxis(IN INT16 value);
private:
STATIC BOOL s_buttonA;
STATIC BOOL s_buttonB;
STATIC BOOL s_buttonC;
STATIC BOOL s_buttonD;
STATIC INT16 s_verticalAxis;
STATIC INT16 s_horizontalAxis;
STATIC BOOL s_keys[256];
STATIC BOOL s_prevKeys[256];
STATIC Vec2 s_pointerPosition;
STATIC InputKey s_axisInputs[4];
STATIC Map<String, Handle> s_actionNames;
STATIC Vector<Vector<InputKey>> s_actions;
STATIC BOOL s_onScreenGamePadEnabled;
STATIC BOOL s_keyboardGamePadEnabled;
STATIC KeyboardGamePadMapping s_keyboardGamePadMapping;
private:
STATIC VOID Initialize();
STATIC VOID Terminate();
STATIC VOID Draw();
STATIC VOID Update();
STATIC VOID OnSDLEvent(IN SDL_Event *event);
friend class __Internal_Engine;
};
} // namespace ia::iae