mirror of
https://github.com/brl/mutter.git
synced 2024-11-25 09:30:45 -05:00
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:
parent
c67b0bd7e2
commit
f76b3edf9c
@ -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);
|
||||||
|
Loading…
Reference in New Issue
Block a user