monitor: Define scale_steps globally

No need to compute the scale steps multiple times, since
it's just a defined value, so let's use a define for this
avoiding to pass around.

https://bugzilla.gnome.org/show_bug.cgi?id=782742
This commit is contained in:
Marco Trevisan (Treviño) 2017-06-09 05:18:14 +02:00 committed by Marco Trevisan
parent c67b0bd7e2
commit f76b3edf9c

View File

@ -31,6 +31,7 @@
#include "backends/meta-output.h" #include "backends/meta-output.h"
#define SCALE_FACTORS_PER_INTEGER 4 #define SCALE_FACTORS_PER_INTEGER 4
#define SCALE_FACTORS_STEPS (1.0 / (float) SCALE_FACTORS_PER_INTEGER)
#define MINIMUM_SCALE_FACTOR 1.0f #define MINIMUM_SCALE_FACTOR 1.0f
#define MAXIMUM_SCALE_FACTOR 4.0f #define MAXIMUM_SCALE_FACTOR 4.0f
#define MINIMUM_LOGICAL_WIDTH 800 #define MINIMUM_LOGICAL_WIDTH 800
@ -1579,8 +1580,7 @@ meta_monitor_mode_should_be_advertised (MetaMonitorMode *monitor_mode)
static float static float
get_closest_scale_factor_for_resolution (float width, get_closest_scale_factor_for_resolution (float width,
float height, float height,
float scale, float scale)
float scale_step)
{ {
unsigned int i, j; unsigned int i, j;
float scaled_h; float scaled_h;
@ -1609,7 +1609,6 @@ get_closest_scale_factor_for_resolution (float width,
do do
{ {
for (j = 0; j < 2; j++) for (j = 0; j < 2; j++)
{ {
float current_scale; float current_scale;
@ -1619,13 +1618,12 @@ get_closest_scale_factor_for_resolution (float width,
current_scale = width / scaled_w; current_scale = width / scaled_w;
scaled_h = height / current_scale; scaled_h = height / current_scale;
if (current_scale >= scale + scale_step || if (current_scale >= scale + SCALE_FACTORS_STEPS ||
current_scale <= scale - scale_step || current_scale <= scale - SCALE_FACTORS_STEPS ||
current_scale < MINIMUM_SCALE_FACTOR || current_scale < MINIMUM_SCALE_FACTOR ||
current_scale > MAXIMUM_SCALE_FACTOR) current_scale > MAXIMUM_SCALE_FACTOR)
{ {
limit_exceeded = TRUE; goto out;
continue;
} }
if (floorf (scaled_h) == scaled_h) if (floorf (scaled_h) == scaled_h)
@ -1653,10 +1651,8 @@ meta_monitor_calculate_supported_scales (MetaMonitor *monitor,
{ {
unsigned int i, j; unsigned int i, j;
int width, height; int width, height;
float scale_steps;
GArray *supported_scales; GArray *supported_scales;
scale_steps = 1.0 / (float) SCALE_FACTORS_PER_INTEGER;
supported_scales = g_array_new (FALSE, FALSE, sizeof (float)); supported_scales = g_array_new (FALSE, FALSE, sizeof (float));
meta_monitor_mode_get_resolution (monitor_mode, &width, &height); meta_monitor_mode_get_resolution (monitor_mode, &width, &height);
@ -1668,7 +1664,7 @@ meta_monitor_calculate_supported_scales (MetaMonitor *monitor,
for (j = 0; j < SCALE_FACTORS_PER_INTEGER; j++) for (j = 0; j < SCALE_FACTORS_PER_INTEGER; j++)
{ {
float scale; float scale;
float scale_value = i + j * scale_steps; float scale_value = i + j * SCALE_FACTORS_STEPS;
if ((constraints & META_MONITOR_SCALES_CONSTRAINT_NO_FRAC) && if ((constraints & META_MONITOR_SCALES_CONSTRAINT_NO_FRAC) &&
fmodf (scale_value, 1.0) != 0.0) fmodf (scale_value, 1.0) != 0.0)
@ -1678,8 +1674,7 @@ meta_monitor_calculate_supported_scales (MetaMonitor *monitor,
scale = get_closest_scale_factor_for_resolution (width, scale = get_closest_scale_factor_for_resolution (width,
height, height,
scale_value, scale_value);
scale_steps);
if (scale > 0.0f) if (scale > 0.0f)
g_array_append_val (supported_scales, scale); g_array_append_val (supported_scales, scale);