mirror of
				https://github.com/gnif/LookingGlass.git
				synced 2025-11-03 22:22:08 +00:00 
			
		
		
		
	[client] main: add new option for integer only upscaling
The new option `win:intUpscale` will limit upscaling to integer sizes only if enabled.
This commit is contained in:
		@@ -163,6 +163,13 @@ static struct Option options[] =
 | 
			
		||||
    .type           = OPTION_TYPE_BOOL,
 | 
			
		||||
    .value.x_bool   = false,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    .module         = "win",
 | 
			
		||||
    .name           = "intUpscale",
 | 
			
		||||
    .description    = "Allow only integer upscaling",
 | 
			
		||||
    .type           = OPTION_TYPE_BOOL,
 | 
			
		||||
    .value.x_bool   = false,
 | 
			
		||||
  },
 | 
			
		||||
  {
 | 
			
		||||
    .module         = "win",
 | 
			
		||||
    .name           = "shrinkOnUpscale",
 | 
			
		||||
@@ -603,6 +610,7 @@ bool config_load(int argc, char * argv[])
 | 
			
		||||
  g_params.keepAspect      = option_get_bool  ("win", "keepAspect"     );
 | 
			
		||||
  g_params.forceAspect     = option_get_bool  ("win", "forceAspect"    );
 | 
			
		||||
  g_params.dontUpscale     = option_get_bool  ("win", "dontUpscale"    );
 | 
			
		||||
  g_params.intUpscale      = option_get_bool  ("win", "intUpscale"     );
 | 
			
		||||
  g_params.shrinkOnUpscale = option_get_bool  ("win", "shrinkOnUpscale");
 | 
			
		||||
  g_params.borderless      = option_get_bool  ("win", "borderless"     );
 | 
			
		||||
  g_params.fullscreen      = option_get_bool  ("win", "fullScreen"     );
 | 
			
		||||
 
 | 
			
		||||
@@ -223,6 +223,20 @@ void core_updatePositionInfo(void)
 | 
			
		||||
      g_state.dstRect.y = g_state.windowCY - srcH / 2;
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    if (g_params.intUpscale &&
 | 
			
		||||
        srcW <= g_state.windowW &&
 | 
			
		||||
        srcH <= g_state.windowH)
 | 
			
		||||
    {
 | 
			
		||||
      force = false;
 | 
			
		||||
      const int scale = min(
 | 
			
		||||
          floor(g_state.windowW / srcW),
 | 
			
		||||
          floor(g_state.windowH / srcH));
 | 
			
		||||
      g_state.dstRect.w = srcW * scale;
 | 
			
		||||
      g_state.dstRect.h = srcH * scale;
 | 
			
		||||
      g_state.dstRect.x = g_state.windowCX - g_state.dstRect.w / 2;
 | 
			
		||||
      g_state.dstRect.y = g_state.windowCY - g_state.dstRect.h / 2;
 | 
			
		||||
    }
 | 
			
		||||
    else
 | 
			
		||||
    if ((int)(wndAspect * 1000) == (int)(srcAspect * 1000))
 | 
			
		||||
    {
 | 
			
		||||
      force           = false;
 | 
			
		||||
 
 | 
			
		||||
@@ -148,6 +148,7 @@ struct AppParams
 | 
			
		||||
  bool              keepAspect;
 | 
			
		||||
  bool              forceAspect;
 | 
			
		||||
  bool              dontUpscale;
 | 
			
		||||
  bool              intUpscale;
 | 
			
		||||
  bool              shrinkOnUpscale;
 | 
			
		||||
  bool              borderless;
 | 
			
		||||
  bool              fullscreen;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user