#include "RaylibInput.h" #include namespace { int GetRmlKeyModifiers() { int mods = 0; if (IsKeyDown(KEY_LEFT_SHIFT) || IsKeyDown(KEY_RIGHT_SHIFT)) mods |= Rml::Input::KM_SHIFT; if (IsKeyDown(KEY_LEFT_CONTROL) || IsKeyDown(KEY_RIGHT_CONTROL)) mods |= Rml::Input::KM_CTRL; if (IsKeyDown(KEY_LEFT_ALT) || IsKeyDown(KEY_RIGHT_ALT)) mods |= Rml::Input::KM_ALT; return mods; } } void ForwardInputToRml(Rml::Context* context) { Vector2 mouse = GetMousePosition(); context->ProcessMouseMove((int)mouse.x, (int)mouse.y, GetRmlKeyModifiers()); if (IsMouseButtonPressed(MOUSE_BUTTON_LEFT)) context->ProcessMouseButtonDown(0, GetRmlKeyModifiers()); if (IsMouseButtonReleased(MOUSE_BUTTON_LEFT)) context->ProcessMouseButtonUp(0, GetRmlKeyModifiers()); if (IsMouseButtonPressed(MOUSE_BUTTON_RIGHT)) context->ProcessMouseButtonDown(1, GetRmlKeyModifiers()); if (IsMouseButtonReleased(MOUSE_BUTTON_RIGHT)) context->ProcessMouseButtonUp(1, GetRmlKeyModifiers()); float wheel = GetMouseWheelMove(); if (wheel != 0.0f) context->ProcessMouseWheel(-wheel, GetRmlKeyModifiers()); }