Add integer scale option
This commit is contained in:
parent
5422061746
commit
c41dd74ef5
3 changed files with 10 additions and 1 deletions
|
@ -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;
|
||||||
|
|
|
@ -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);
|
||||||
|
|
||||||
|
|
|
@ -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;
|
||||||
|
|
Loading…
Reference in a new issue