mirror of
https://github.com/libretro/scummvm.git
synced 2024-12-13 21:31:53 +00:00
SWITCH: Enable touchpad mouse mode option in controls
This commit is contained in:
parent
06ffbab3c5
commit
536521d356
@ -350,7 +350,7 @@ void SwitchEventSource::convertTouchXYToGameXY(float touchX, float touchY, int *
|
||||
int screenW = _km.x_max;
|
||||
|
||||
int windowH = g_system->getHeight();
|
||||
//int windowW = g_system->getWidth();
|
||||
int windowW = g_system->getWidth();
|
||||
|
||||
bool fullscreen = ConfMan.getBool("fullscreen");
|
||||
bool aspectRatioCorrection = ConfMan.getBool("aspect_ratio");
|
||||
@ -362,33 +362,8 @@ void SwitchEventSource::convertTouchXYToGameXY(float touchX, float touchY, int *
|
||||
float sx, sy;
|
||||
float ratio = (float)screenW / (float)screenH;
|
||||
|
||||
if (aspectRatioCorrection && (windowH == 200 || windowH == 400)) {
|
||||
ratio = 4.0f / 3.0f;
|
||||
}
|
||||
|
||||
if (fullscreen || screenH >= dispH) {
|
||||
h = dispH;
|
||||
if (aspectRatioCorrection && (windowH == 200 || windowH == 400)) {
|
||||
ratio = ratio * 1.1f;
|
||||
}
|
||||
w = h * ratio;
|
||||
} else {
|
||||
if (screenH <= dispH / 2 && screenW <= dispW / 2) {
|
||||
h = screenH * 2;
|
||||
w = screenW * 2;
|
||||
} else {
|
||||
h = screenH;
|
||||
w = screenW;
|
||||
}
|
||||
if (aspectRatioCorrection && (windowH == 200 || windowH == 400)) {
|
||||
// stretch the height only if it fits, otherwise make the width smaller
|
||||
if (((float)w * (1.0f / ratio)) <= (float)dispH) {
|
||||
h = w * (1.0f / ratio);
|
||||
} else {
|
||||
w = h * ratio;
|
||||
}
|
||||
}
|
||||
}
|
||||
h = dispH;
|
||||
w = h * ratio;
|
||||
|
||||
x = (dispW - w) / 2;
|
||||
y = (dispH - h) / 2;
|
||||
|
@ -89,6 +89,33 @@ void OSystem_Switch::initBackend() {
|
||||
OSystem_SDL::initBackend();
|
||||
}
|
||||
|
||||
bool OSystem_Switch::hasFeature(Feature f) {
|
||||
return (f == kFeatureTouchpadMode ||
|
||||
OSystem_SDL::hasFeature(f));
|
||||
}
|
||||
|
||||
void OSystem_Switch::setFeatureState(Feature f, bool enable) {
|
||||
switch (f) {
|
||||
case kFeatureTouchpadMode:
|
||||
ConfMan.setBool("touchpad_mouse_mode", enable);
|
||||
break;
|
||||
default:
|
||||
OSystem_SDL::setFeatureState(f, enable);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
bool OSystem_Switch::getFeatureState(Feature f) {
|
||||
switch (f) {
|
||||
case kFeatureTouchpadMode:
|
||||
return ConfMan.getBool("touchpad_mouse_mode");
|
||||
break;
|
||||
default:
|
||||
return OSystem_SDL::getFeatureState(f);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void OSystem_Switch::logMessage(LogMessageType::Type type, const char *message) {
|
||||
printf("%s\n", message);
|
||||
}
|
||||
|
@ -33,6 +33,9 @@ public:
|
||||
|
||||
virtual void init() override;
|
||||
virtual void initBackend() override;
|
||||
virtual bool hasFeature(Feature f) override;
|
||||
virtual void setFeatureState(Feature f, bool enable) override;
|
||||
virtual bool getFeatureState(Feature f) override;
|
||||
virtual void logMessage(LogMessageType::Type type, const char *message) override;
|
||||
|
||||
protected:
|
||||
|
Loading…
Reference in New Issue
Block a user