Add integer scale option

This commit is contained in:
Joshua Ashton 2021-08-27 05:06:56 +01:00 committed by Pierre-Loup A. Griffais
parent 5422061746
commit c41dd74ef5
3 changed files with 10 additions and 1 deletions

View file

@ -45,6 +45,7 @@ int g_nOldNice = 0;
int g_nNewNice = 0; int g_nNewNice = 0;
float g_flMaxWindowScale = FLT_MAX; float g_flMaxWindowScale = FLT_MAX;
bool g_bIntegerScale = false;
pthread_t g_mainThread; pthread_t g_mainThread;
@ -84,6 +85,9 @@ int main(int argc, char **argv)
case 'm': case 'm':
g_flMaxWindowScale = atof( optarg ); g_flMaxWindowScale = atof( optarg );
break; break;
case 'i':
g_bIntegerScale = true;
break;
case 's': case 's':
bSleepAtStartup = true; bSleepAtStartup = true;
break; break;

View file

@ -2,7 +2,7 @@
#include <atomic> #include <atomic>
#define GAMESCOPE_OPTIONS ":R:T:C:w:h:W:H:m:r:o:NFSvVecsdLnbfxO:" #define GAMESCOPE_OPTIONS ":R:T:C:w:h:W:H:m:r:o:NFSvVecsdLinbfxO:"
void wayland_commit(struct wlr_surface *surf, struct wlr_buffer *buf); void wayland_commit(struct wlr_surface *surf, struct wlr_buffer *buf);

View file

@ -198,6 +198,7 @@ Bool fadeOutWindowGone;
unsigned int fadeOutStartTime; unsigned int fadeOutStartTime;
extern float g_flMaxWindowScale; extern float g_flMaxWindowScale;
extern bool g_bIntegerScale;
#define FADE_OUT_DURATION 200 #define FADE_OUT_DURATION 200
@ -889,6 +890,8 @@ void MouseCursor::paint(win *window, struct Composite_t *pComposite,
currentScaleRatio = (XRatio < YRatio) ? XRatio : YRatio; currentScaleRatio = (XRatio < YRatio) ? XRatio : YRatio;
currentScaleRatio = std::min(g_flMaxWindowScale, currentScaleRatio); currentScaleRatio = std::min(g_flMaxWindowScale, currentScaleRatio);
if (g_bIntegerScale)
currentScaleRatio = floor(currentScaleRatio);
cursorOffsetX = (currentOutputWidth - window->a.width * currentScaleRatio * globalScaleRatio) / 2.0f; cursorOffsetX = (currentOutputWidth - window->a.width * currentScaleRatio * globalScaleRatio) / 2.0f;
cursorOffsetY = (currentOutputHeight - window->a.height * currentScaleRatio * globalScaleRatio) / 2.0f; cursorOffsetY = (currentOutputHeight - window->a.height * currentScaleRatio * globalScaleRatio) / 2.0f;
@ -975,6 +978,8 @@ paint_window (Display *dpy, win *w, struct Composite_t *pComposite,
currentScaleRatio = (XRatio < YRatio) ? XRatio : YRatio; currentScaleRatio = (XRatio < YRatio) ? XRatio : YRatio;
currentScaleRatio = std::min(g_flMaxWindowScale, currentScaleRatio); currentScaleRatio = std::min(g_flMaxWindowScale, currentScaleRatio);
if (g_bIntegerScale)
currentScaleRatio = floor(currentScaleRatio);
currentScaleRatio *= globalScaleRatio; currentScaleRatio *= globalScaleRatio;
drawXOffset = ((int)currentOutputWidth - (int)sourceWidth * currentScaleRatio) / 2.0f; drawXOffset = ((int)currentOutputWidth - (int)sourceWidth * currentScaleRatio) / 2.0f;