more screen modes

- add support for different aspect ratios
- add support for displaying only one screen at once
This commit is contained in:
RSDuck
2021-01-24 22:32:02 +01:00
parent 536902d610
commit b9a56bc4e4
6 changed files with 314 additions and 147 deletions

View File

@ -34,6 +34,7 @@
#include <QOpenGLFunctions_3_2_Core>
#include <QOpenGLShaderProgram>
#include "FrontendUtil.h"
class EmuThread : public QThread
{
@ -105,7 +106,9 @@ protected:
void screenOnMouseRelease(QMouseEvent* event);
void screenOnMouseMove(QMouseEvent* event);
float screenMatrix[2][6];
float screenMatrix[Frontend::MaxScreenTransforms][6];
int screenKind[Frontend::MaxScreenTransforms];
int numScreens;
bool touching;
@ -137,7 +140,7 @@ private:
void setupScreenLayout();
QImage screen[2];
QTransform screenTrans[2];
QTransform screenTrans[Frontend::MaxScreenTransforms];
};
@ -237,6 +240,8 @@ private slots:
void onChangeScreenLayout(QAction* act);
void onChangeScreenSwap(bool checked);
void onChangeScreenSizing(QAction* act);
void onChangeScreenAspectTop(QAction* act);
void onChangeScreenAspectBot(QAction* act);
void onChangeIntegerScaling(bool checked);
void onChangeScreenFiltering(bool checked);
void onChangeShowOSD(bool checked);
@ -303,8 +308,12 @@ public:
QAction* actScreenLayout[3];
QAction* actScreenSwap;
QActionGroup* grpScreenSizing;
QAction* actScreenSizing[4];
QAction* actScreenSizing[6];
QAction* actIntegerScaling;
QActionGroup* grpScreenAspectTop;
QAction* actScreenAspectTop[4];
QActionGroup* grpScreenAspectBot;
QAction* actScreenAspectBot[4];
QAction* actScreenFiltering;
QAction* actShowOSD;
QAction* actLimitFramerate;