Scaled mouse coordinates before passing them to RmlUi
This commit is contained in:
parent
0a4ae48d24
commit
3456b03b4d
|
@ -896,7 +896,7 @@ void init_hook(RT64::RenderInterface* interface, RT64::RenderDevice* device) {
|
||||||
int width, height;
|
int width, height;
|
||||||
SDL_GetWindowSizeInPixels(window, &width, &height);
|
SDL_GetWindowSizeInPixels(window, &width, &height);
|
||||||
|
|
||||||
UIContext.rml.context = Rml::CreateContext("main", Rml::Vector2i(width, height));
|
UIContext.rml.context = Rml::CreateContext("main", Rml::Vector2i(width * UIContext.rml.ui_scale, height * UIContext.rml.ui_scale));
|
||||||
UIContext.rml.make_bindings();
|
UIContext.rml.make_bindings();
|
||||||
|
|
||||||
Rml::Debugger::Initialise(UIContext.rml.context);
|
Rml::Debugger::Initialise(UIContext.rml.context);
|
||||||
|
@ -974,6 +974,24 @@ void draw_hook(RT64::RenderCommandList* command_list, RT64::RenderFramebuffer* s
|
||||||
bool mouse_moved = false;
|
bool mouse_moved = false;
|
||||||
|
|
||||||
while (recomp::try_deque_event(cur_event)) {
|
while (recomp::try_deque_event(cur_event)) {
|
||||||
|
// Scale coordinates for mouse events based on the UI scale
|
||||||
|
switch (cur_event.type) {
|
||||||
|
case SDL_EventType::SDL_MOUSEMOTION:
|
||||||
|
cur_event.motion.x *= UIContext.rml.ui_scale;
|
||||||
|
cur_event.motion.y *= UIContext.rml.ui_scale;
|
||||||
|
cur_event.motion.xrel *= UIContext.rml.ui_scale;
|
||||||
|
cur_event.motion.yrel *= UIContext.rml.ui_scale;
|
||||||
|
break;
|
||||||
|
case SDL_EventType::SDL_MOUSEBUTTONDOWN:
|
||||||
|
case SDL_EventType::SDL_MOUSEBUTTONUP:
|
||||||
|
cur_event.button.x *= UIContext.rml.ui_scale;
|
||||||
|
cur_event.button.y *= UIContext.rml.ui_scale;
|
||||||
|
break;
|
||||||
|
case SDL_EventType::SDL_MOUSEWHEEL:
|
||||||
|
cur_event.wheel.x *= UIContext.rml.ui_scale;
|
||||||
|
cur_event.wheel.y *= UIContext.rml.ui_scale;
|
||||||
|
break;
|
||||||
|
}
|
||||||
RmlSDL::InputEventHandler(UIContext.rml.context, cur_event);
|
RmlSDL::InputEventHandler(UIContext.rml.context, cur_event);
|
||||||
|
|
||||||
// If a menu is open then implement some additional behavior for specific events on top of what RmlUi normally does with them.
|
// If a menu is open then implement some additional behavior for specific events on top of what RmlUi normally does with them.
|
||||||
|
|
Loading…
Reference in New Issue