mirror of
https://github.com/encounter/aurora.git
synced 2026-07-09 18:19:33 -07:00
33 lines
813 B
C++
33 lines
813 B
C++
|
|
#include "dolphin/ms.h"
|
||
|
|
#include <SDL3/SDL_mouse.h>
|
||
|
|
|
||
|
|
#include "../../input.hpp"
|
||
|
|
|
||
|
|
extern "C" {
|
||
|
|
static MSStatus gStatus{};
|
||
|
|
|
||
|
|
void MSPoll() {
|
||
|
|
const uint32_t buttons = SDL_GetGlobalMouseState(&gStatus.x, &gStatus.y);
|
||
|
|
SDL_GetRelativeMouseState(&gStatus.xrel, &gStatus.yrel);
|
||
|
|
aurora::input::get_mouse_scroll(&gStatus.scrollX, &gStatus.scrollY);
|
||
|
|
|
||
|
|
gStatus.buttons = 0;
|
||
|
|
if (buttons & SDL_BUTTON_LEFT) {
|
||
|
|
gStatus.buttons |= MS_BUTTON_LEFT;
|
||
|
|
}
|
||
|
|
if (buttons & SDL_BUTTON_MIDDLE) {
|
||
|
|
gStatus.buttons |= MS_BUTTON_MIDDLE;
|
||
|
|
}
|
||
|
|
if (buttons & SDL_BUTTON_RIGHT) {
|
||
|
|
gStatus.buttons |= MS_BUTTON_RIGHT;
|
||
|
|
}
|
||
|
|
if (buttons & SDL_BUTTON_X1) {
|
||
|
|
gStatus.buttons |= MS_BUTTON_X1;
|
||
|
|
}
|
||
|
|
if (buttons & SDL_BUTTON_X2) {
|
||
|
|
gStatus.buttons |= MS_BUTTON_X2;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
void MSRead(MSStatus* status) { *status = gStatus; }
|
||
|
|
}
|