mirror of
https://github.com/brl/mutter.git
synced 2025-02-21 07:24:09 +00:00
monitor: Don't keep CRTC position in MetaMonitorCrtcMode
The CRTC position depends on the transform and how the transform is implemented. The function calculating the positions still doesn't support anything but the non-transformed case; this commit is in preparation of adding support for transforms. https://bugzilla.gnome.org/show_bug.cgi?id=777732
This commit is contained in:
parent
8a29c51b73
commit
afcc1bf512
@ -117,6 +117,7 @@ assign_monitor_crtc (MetaMonitor *monitor,
|
|||||||
MonitorAssignmentData *data = user_data;
|
MonitorAssignmentData *data = user_data;
|
||||||
MetaOutput *output;
|
MetaOutput *output;
|
||||||
MetaCrtc *crtc;
|
MetaCrtc *crtc;
|
||||||
|
int crtc_x, crtc_y;
|
||||||
MetaCrtcInfo *crtc_info;
|
MetaCrtcInfo *crtc_info;
|
||||||
MetaOutputInfo *output_info;
|
MetaOutputInfo *output_info;
|
||||||
MetaMonitorConfig *first_monitor_config;
|
MetaMonitorConfig *first_monitor_config;
|
||||||
@ -136,12 +137,15 @@ assign_monitor_crtc (MetaMonitor *monitor,
|
|||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
meta_monitor_calculate_crtc_pos (monitor, mode, output,
|
||||||
|
&crtc_x, &crtc_y);
|
||||||
|
|
||||||
crtc_info = g_slice_new0 (MetaCrtcInfo);
|
crtc_info = g_slice_new0 (MetaCrtcInfo);
|
||||||
*crtc_info = (MetaCrtcInfo) {
|
*crtc_info = (MetaCrtcInfo) {
|
||||||
.crtc = crtc,
|
.crtc = crtc,
|
||||||
.mode = monitor_crtc_mode->crtc_mode,
|
.mode = monitor_crtc_mode->crtc_mode,
|
||||||
.x = monitor_crtc_mode->x,
|
.x = crtc_x,
|
||||||
.y = monitor_crtc_mode->y,
|
.y = crtc_y,
|
||||||
.transform = META_MONITOR_TRANSFORM_NORMAL,
|
.transform = META_MONITOR_TRANSFORM_NORMAL,
|
||||||
.outputs = g_ptr_array_new ()
|
.outputs = g_ptr_array_new ()
|
||||||
};
|
};
|
||||||
|
@ -32,6 +32,13 @@ typedef struct _MetaMonitorMode
|
|||||||
MetaMonitorCrtcMode *crtc_modes;
|
MetaMonitorCrtcMode *crtc_modes;
|
||||||
} MetaMonitorMode;
|
} MetaMonitorMode;
|
||||||
|
|
||||||
|
typedef struct _MetaMonitorModeTiled
|
||||||
|
{
|
||||||
|
MetaMonitorMode parent;
|
||||||
|
|
||||||
|
gboolean is_tiled;
|
||||||
|
} MetaMonitorModeTiled;
|
||||||
|
|
||||||
typedef struct _MetaMonitorPrivate
|
typedef struct _MetaMonitorPrivate
|
||||||
{
|
{
|
||||||
GList *outputs;
|
GList *outputs;
|
||||||
@ -347,8 +354,6 @@ meta_monitor_normal_generate_modes (MetaMonitorNormal *monitor_normal)
|
|||||||
},
|
},
|
||||||
mode->crtc_modes = g_new (MetaMonitorCrtcMode, 1);
|
mode->crtc_modes = g_new (MetaMonitorCrtcMode, 1);
|
||||||
mode->crtc_modes[0] = (MetaMonitorCrtcMode) {
|
mode->crtc_modes[0] = (MetaMonitorCrtcMode) {
|
||||||
.x = 0,
|
|
||||||
.y = 0,
|
|
||||||
.output = output,
|
.output = output,
|
||||||
.crtc_mode = crtc_mode
|
.crtc_mode = crtc_mode
|
||||||
};
|
};
|
||||||
@ -403,6 +408,17 @@ meta_monitor_normal_derive_dimensions (MetaMonitor *monitor,
|
|||||||
*height = output->crtc->rect.height;
|
*height = output->crtc->rect.height;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
meta_monitor_normal_calculate_crtc_pos (MetaMonitor *monitor,
|
||||||
|
MetaMonitorMode *monitor_mode,
|
||||||
|
MetaOutput *output,
|
||||||
|
int *out_x,
|
||||||
|
int *out_y)
|
||||||
|
{
|
||||||
|
*out_x = 0;
|
||||||
|
*out_y = 0;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
meta_monitor_normal_init (MetaMonitorNormal *monitor)
|
meta_monitor_normal_init (MetaMonitorNormal *monitor)
|
||||||
{
|
{
|
||||||
@ -415,6 +431,7 @@ meta_monitor_normal_class_init (MetaMonitorNormalClass *klass)
|
|||||||
|
|
||||||
monitor_class->get_main_output = meta_monitor_normal_get_main_output;
|
monitor_class->get_main_output = meta_monitor_normal_get_main_output;
|
||||||
monitor_class->derive_dimensions = meta_monitor_normal_derive_dimensions;
|
monitor_class->derive_dimensions = meta_monitor_normal_derive_dimensions;
|
||||||
|
monitor_class->calculate_crtc_pos = meta_monitor_normal_calculate_crtc_pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t
|
uint32_t
|
||||||
@ -463,10 +480,10 @@ add_tiled_monitor_outputs (MetaMonitorManager *monitor_manager,
|
|||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
calculate_tile_coordinate (MetaMonitor *monitor,
|
calculate_tile_coordinate (MetaMonitor *monitor,
|
||||||
MetaOutput *output,
|
MetaOutput *output,
|
||||||
int *out_x,
|
int *out_x,
|
||||||
int *out_y)
|
int *out_y)
|
||||||
{
|
{
|
||||||
MetaMonitorPrivate *monitor_priv =
|
MetaMonitorPrivate *monitor_priv =
|
||||||
meta_monitor_get_instance_private (monitor);
|
meta_monitor_get_instance_private (monitor);
|
||||||
@ -548,40 +565,35 @@ create_tiled_monitor_mode (MetaMonitorTiled *monitor_tiled)
|
|||||||
MetaMonitor *monitor = META_MONITOR (monitor_tiled);
|
MetaMonitor *monitor = META_MONITOR (monitor_tiled);
|
||||||
MetaMonitorPrivate *monitor_priv =
|
MetaMonitorPrivate *monitor_priv =
|
||||||
meta_monitor_get_instance_private (monitor);
|
meta_monitor_get_instance_private (monitor);
|
||||||
MetaMonitorMode *mode;
|
MetaMonitorModeTiled *mode;
|
||||||
GList *l;
|
GList *l;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
mode = g_new0 (MetaMonitorMode, 1);
|
mode = g_new0 (MetaMonitorModeTiled, 1);
|
||||||
|
mode->is_tiled = TRUE;
|
||||||
meta_monitor_tiled_calculate_tiled_size (monitor,
|
meta_monitor_tiled_calculate_tiled_size (monitor,
|
||||||
&mode->spec.width,
|
&mode->parent.spec.width,
|
||||||
&mode->spec.height);
|
&mode->parent.spec.height);
|
||||||
mode->crtc_modes = g_new0 (MetaMonitorCrtcMode,
|
mode->parent.crtc_modes = g_new0 (MetaMonitorCrtcMode,
|
||||||
g_list_length (monitor_priv->outputs));
|
g_list_length (monitor_priv->outputs));
|
||||||
for (l = monitor_priv->outputs, i = 0; l; l = l->next, i++)
|
for (l = monitor_priv->outputs, i = 0; l; l = l->next, i++)
|
||||||
{
|
{
|
||||||
MetaOutput *output = l->data;
|
MetaOutput *output = l->data;
|
||||||
MetaCrtcMode *preferred_crtc_mode = output->preferred_mode;
|
MetaCrtcMode *preferred_crtc_mode = output->preferred_mode;
|
||||||
int x;
|
|
||||||
int y;
|
|
||||||
|
|
||||||
calculate_tile_coordinate (monitor, output, &x, &y);
|
mode->parent.crtc_modes[i] = (MetaMonitorCrtcMode) {
|
||||||
|
|
||||||
mode->crtc_modes[i] = (MetaMonitorCrtcMode) {
|
|
||||||
.x = x,
|
|
||||||
.y = y,
|
|
||||||
.output = output,
|
.output = output,
|
||||||
.crtc_mode = preferred_crtc_mode
|
.crtc_mode = preferred_crtc_mode
|
||||||
};
|
};
|
||||||
|
|
||||||
g_warn_if_fail (mode->spec.refresh_rate == 0.0f ||
|
g_warn_if_fail (mode->parent.spec.refresh_rate == 0.0f ||
|
||||||
(mode->spec.refresh_rate ==
|
(mode->parent.spec.refresh_rate ==
|
||||||
preferred_crtc_mode->refresh_rate));
|
preferred_crtc_mode->refresh_rate));
|
||||||
|
|
||||||
mode->spec.refresh_rate = preferred_crtc_mode->refresh_rate;
|
mode->parent.spec.refresh_rate = preferred_crtc_mode->refresh_rate;
|
||||||
}
|
}
|
||||||
|
|
||||||
return mode;
|
return &mode->parent;
|
||||||
}
|
}
|
||||||
|
|
||||||
static MetaMonitorMode *
|
static MetaMonitorMode *
|
||||||
@ -592,7 +604,7 @@ create_untiled_monitor_mode (MetaMonitorTiled *monitor_tiled,
|
|||||||
MetaMonitor *monitor = META_MONITOR (monitor_tiled);
|
MetaMonitor *monitor = META_MONITOR (monitor_tiled);
|
||||||
MetaMonitorPrivate *monitor_priv =
|
MetaMonitorPrivate *monitor_priv =
|
||||||
meta_monitor_get_instance_private (monitor);
|
meta_monitor_get_instance_private (monitor);
|
||||||
MetaMonitorMode *mode;
|
MetaMonitorModeTiled *mode;
|
||||||
GList *l;
|
GList *l;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
@ -604,14 +616,15 @@ create_untiled_monitor_mode (MetaMonitorTiled *monitor_tiled,
|
|||||||
crtc_mode->height == (int) main_output->tile_info.tile_h)
|
crtc_mode->height == (int) main_output->tile_info.tile_h)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
mode = g_new0 (MetaMonitorMode, 1);
|
mode = g_new0 (MetaMonitorModeTiled, 1);
|
||||||
|
|
||||||
mode->spec = (MetaMonitorModeSpec) {
|
mode->is_tiled = FALSE;
|
||||||
|
mode->parent.spec = (MetaMonitorModeSpec) {
|
||||||
.width = crtc_mode->width,
|
.width = crtc_mode->width,
|
||||||
.height = crtc_mode->height,
|
.height = crtc_mode->height,
|
||||||
.refresh_rate = crtc_mode->refresh_rate
|
.refresh_rate = crtc_mode->refresh_rate
|
||||||
};
|
};
|
||||||
mode->crtc_modes = g_new0 (MetaMonitorCrtcMode,
|
mode->parent.crtc_modes = g_new0 (MetaMonitorCrtcMode,
|
||||||
g_list_length (monitor_priv->outputs));
|
g_list_length (monitor_priv->outputs));
|
||||||
|
|
||||||
for (l = monitor_priv->outputs, i = 0; l; l = l->next, i++)
|
for (l = monitor_priv->outputs, i = 0; l; l = l->next, i++)
|
||||||
@ -620,23 +633,21 @@ create_untiled_monitor_mode (MetaMonitorTiled *monitor_tiled,
|
|||||||
|
|
||||||
if (output == main_output)
|
if (output == main_output)
|
||||||
{
|
{
|
||||||
mode->crtc_modes[i] = (MetaMonitorCrtcMode) {
|
mode->parent.crtc_modes[i] = (MetaMonitorCrtcMode) {
|
||||||
.x = 0,
|
|
||||||
.y = 0,
|
|
||||||
.output = output,
|
.output = output,
|
||||||
.crtc_mode = crtc_mode
|
.crtc_mode = crtc_mode
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
mode->crtc_modes[i] = (MetaMonitorCrtcMode) {
|
mode->parent.crtc_modes[i] = (MetaMonitorCrtcMode) {
|
||||||
.output = output,
|
.output = output,
|
||||||
.crtc_mode = NULL
|
.crtc_mode = NULL
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return mode;
|
return &mode->parent;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -744,6 +755,27 @@ meta_monitor_tiled_derive_dimensions (MetaMonitor *monitor,
|
|||||||
*out_height = max_y - min_y;
|
*out_height = max_y - min_y;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
meta_monitor_tiled_calculate_crtc_pos (MetaMonitor *monitor,
|
||||||
|
MetaMonitorMode *monitor_mode,
|
||||||
|
MetaOutput *output,
|
||||||
|
int *out_x,
|
||||||
|
int *out_y)
|
||||||
|
{
|
||||||
|
MetaMonitorModeTiled *mode_tiled = (MetaMonitorModeTiled *) monitor_mode;
|
||||||
|
|
||||||
|
if (mode_tiled->is_tiled)
|
||||||
|
{
|
||||||
|
calculate_tile_coordinate (monitor, output,
|
||||||
|
out_x, out_y);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
*out_x = 0;
|
||||||
|
*out_y = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
meta_monitor_tiled_finalize (GObject *object)
|
meta_monitor_tiled_finalize (GObject *object)
|
||||||
{
|
{
|
||||||
@ -771,6 +803,7 @@ meta_monitor_tiled_class_init (MetaMonitorTiledClass *klass)
|
|||||||
|
|
||||||
monitor_class->get_main_output = meta_monitor_tiled_get_main_output;
|
monitor_class->get_main_output = meta_monitor_tiled_get_main_output;
|
||||||
monitor_class->derive_dimensions = meta_monitor_tiled_derive_dimensions;
|
monitor_class->derive_dimensions = meta_monitor_tiled_derive_dimensions;
|
||||||
|
monitor_class->calculate_crtc_pos = meta_monitor_tiled_calculate_crtc_pos;
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
@ -882,6 +915,20 @@ meta_monitor_get_modes (MetaMonitor *monitor)
|
|||||||
return priv->modes;
|
return priv->modes;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
meta_monitor_calculate_crtc_pos (MetaMonitor *monitor,
|
||||||
|
MetaMonitorMode *monitor_mode,
|
||||||
|
MetaOutput *output,
|
||||||
|
int *out_x,
|
||||||
|
int *out_y)
|
||||||
|
{
|
||||||
|
META_MONITOR_GET_CLASS (monitor)->calculate_crtc_pos (monitor,
|
||||||
|
monitor_mode,
|
||||||
|
output,
|
||||||
|
out_x,
|
||||||
|
out_y);
|
||||||
|
}
|
||||||
|
|
||||||
MetaMonitorModeSpec *
|
MetaMonitorModeSpec *
|
||||||
meta_monitor_mode_get_spec (MetaMonitorMode *monitor_mode)
|
meta_monitor_mode_get_spec (MetaMonitorMode *monitor_mode)
|
||||||
{
|
{
|
||||||
|
@ -43,8 +43,6 @@ typedef struct _MetaMonitorModeSpec
|
|||||||
|
|
||||||
typedef struct _MetaMonitorCrtcMode
|
typedef struct _MetaMonitorCrtcMode
|
||||||
{
|
{
|
||||||
int x;
|
|
||||||
int y;
|
|
||||||
MetaOutput *output;
|
MetaOutput *output;
|
||||||
MetaCrtcMode *crtc_mode;
|
MetaCrtcMode *crtc_mode;
|
||||||
} MetaMonitorCrtcMode;
|
} MetaMonitorCrtcMode;
|
||||||
@ -66,6 +64,11 @@ struct _MetaMonitorClass
|
|||||||
void (* derive_dimensions) (MetaMonitor *monitor,
|
void (* derive_dimensions) (MetaMonitor *monitor,
|
||||||
int *width,
|
int *width,
|
||||||
int *height);
|
int *height);
|
||||||
|
void (* calculate_crtc_pos) (MetaMonitor *monitor,
|
||||||
|
MetaMonitorMode *monitor_mode,
|
||||||
|
MetaOutput *output,
|
||||||
|
int *out_x,
|
||||||
|
int *out_y);
|
||||||
};
|
};
|
||||||
|
|
||||||
#define META_TYPE_MONITOR_NORMAL (meta_monitor_normal_get_type ())
|
#define META_TYPE_MONITOR_NORMAL (meta_monitor_normal_get_type ())
|
||||||
@ -143,6 +146,12 @@ void meta_monitor_set_current_mode (MetaMonitor *monitor,
|
|||||||
|
|
||||||
GList * meta_monitor_get_modes (MetaMonitor *monitor);
|
GList * meta_monitor_get_modes (MetaMonitor *monitor);
|
||||||
|
|
||||||
|
void meta_monitor_calculate_crtc_pos (MetaMonitor *monitor,
|
||||||
|
MetaMonitorMode *monitor_mode,
|
||||||
|
MetaOutput *output,
|
||||||
|
int *out_x,
|
||||||
|
int *out_y);
|
||||||
|
|
||||||
MetaMonitorModeSpec * meta_monitor_mode_get_spec (MetaMonitorMode *monitor_mode);
|
MetaMonitorModeSpec * meta_monitor_mode_get_spec (MetaMonitorMode *monitor_mode);
|
||||||
|
|
||||||
void meta_monitor_mode_get_resolution (MetaMonitorMode *monitor_mode,
|
void meta_monitor_mode_get_resolution (MetaMonitorMode *monitor_mode,
|
||||||
|
@ -240,15 +240,20 @@ update_monitor_crtc_cursor (MetaMonitor *monitor,
|
|||||||
meta_cursor_renderer_native_get_instance_private (cursor_renderer_native);
|
meta_cursor_renderer_native_get_instance_private (cursor_renderer_native);
|
||||||
MetaRectangle scaled_crtc_rect;
|
MetaRectangle scaled_crtc_rect;
|
||||||
int scale;
|
int scale;
|
||||||
|
int crtc_x, crtc_y;
|
||||||
|
|
||||||
if (meta_is_stage_views_scaled ())
|
if (meta_is_stage_views_scaled ())
|
||||||
scale = meta_logical_monitor_get_scale (data->in_logical_monitor);
|
scale = meta_logical_monitor_get_scale (data->in_logical_monitor);
|
||||||
else
|
else
|
||||||
scale = 1;
|
scale = 1;
|
||||||
|
|
||||||
|
meta_monitor_calculate_crtc_pos (monitor, monitor_mode,
|
||||||
|
monitor_crtc_mode->output,
|
||||||
|
&crtc_x, &crtc_y);
|
||||||
|
|
||||||
scaled_crtc_rect = (MetaRectangle) {
|
scaled_crtc_rect = (MetaRectangle) {
|
||||||
.x = monitor_crtc_mode->x / scale,
|
.x = crtc_x / scale,
|
||||||
.y = monitor_crtc_mode->y / scale,
|
.y = crtc_y / scale,
|
||||||
.width = monitor_crtc_mode->crtc_mode->width / scale,
|
.width = monitor_crtc_mode->crtc_mode->width / scale,
|
||||||
.height = monitor_crtc_mode->crtc_mode->height / scale
|
.height = monitor_crtc_mode->crtc_mode->height / scale
|
||||||
};
|
};
|
||||||
|
@ -128,8 +128,6 @@ typedef struct _MonitorTestCaseMonitorCrtcMode
|
|||||||
{
|
{
|
||||||
int output;
|
int output;
|
||||||
int crtc_mode;
|
int crtc_mode;
|
||||||
int x;
|
|
||||||
int y;
|
|
||||||
} MetaTestCaseMonitorCrtcMode;
|
} MetaTestCaseMonitorCrtcMode;
|
||||||
|
|
||||||
typedef struct _MonitorTestCaseMonitorMode
|
typedef struct _MonitorTestCaseMonitorMode
|
||||||
@ -162,6 +160,8 @@ typedef struct _MonitorTestCaseLogicalMonitor
|
|||||||
typedef struct _MonitorTestCaseCrtcExpect
|
typedef struct _MonitorTestCaseCrtcExpect
|
||||||
{
|
{
|
||||||
int current_mode;
|
int current_mode;
|
||||||
|
int x;
|
||||||
|
int y;
|
||||||
} MonitorTestCaseCrtcExpect;
|
} MonitorTestCaseCrtcExpect;
|
||||||
|
|
||||||
typedef struct _MonitorTestCaseExpect
|
typedef struct _MonitorTestCaseExpect
|
||||||
@ -351,9 +351,6 @@ check_monitor_mode (MetaMonitor *monitor,
|
|||||||
g_assert (monitor_crtc_mode->output == output);
|
g_assert (monitor_crtc_mode->output == output);
|
||||||
g_assert (monitor_crtc_mode->crtc_mode == crtc_mode);
|
g_assert (monitor_crtc_mode->crtc_mode == crtc_mode);
|
||||||
|
|
||||||
g_assert_cmpint (monitor_crtc_mode->x, ==, data->expect_crtc_mode_iter->x);
|
|
||||||
g_assert_cmpint (monitor_crtc_mode->y, ==, data->expect_crtc_mode_iter->y);
|
|
||||||
|
|
||||||
data->expect_crtc_mode_iter++;
|
data->expect_crtc_mode_iter++;
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
@ -489,6 +486,42 @@ check_logical_monitor (MonitorTestCase *test_case,
|
|||||||
g_assert_nonnull (primary_output);
|
g_assert_nonnull (primary_output);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void
|
||||||
|
get_compensated_crtc_position (MetaCrtc *crtc,
|
||||||
|
int *x,
|
||||||
|
int *y)
|
||||||
|
{
|
||||||
|
MetaLogicalMonitor *logical_monitor;
|
||||||
|
MetaBackend *backend = meta_get_backend ();
|
||||||
|
MetaRenderer *renderer = meta_backend_get_renderer (backend);
|
||||||
|
GList *views;
|
||||||
|
GList *l;
|
||||||
|
|
||||||
|
logical_monitor = crtc->logical_monitor;
|
||||||
|
g_assert_nonnull (logical_monitor);
|
||||||
|
|
||||||
|
views = meta_renderer_get_views (renderer);
|
||||||
|
for (l = views; l; l = l->next)
|
||||||
|
{
|
||||||
|
MetaRendererView *view = l->data;
|
||||||
|
MetaRectangle view_layout;
|
||||||
|
|
||||||
|
clutter_stage_view_get_layout (CLUTTER_STAGE_VIEW (view),
|
||||||
|
&view_layout);
|
||||||
|
|
||||||
|
if (meta_rectangle_equal (&view_layout,
|
||||||
|
&logical_monitor->rect))
|
||||||
|
{
|
||||||
|
*x = crtc->rect.x - view_layout.x;
|
||||||
|
*y = crtc->rect.y - view_layout.y;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
*x = crtc->rect.x;
|
||||||
|
*y = crtc->rect.y;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
check_monitor_configuration (MonitorTestCase *test_case)
|
check_monitor_configuration (MonitorTestCase *test_case)
|
||||||
{
|
{
|
||||||
@ -671,8 +704,14 @@ check_monitor_configuration (MonitorTestCase *test_case)
|
|||||||
MetaCrtc *crtc = &monitor_manager->crtcs[i];
|
MetaCrtc *crtc = &monitor_manager->crtcs[i];
|
||||||
MetaCrtcMode *expected_current_mode =
|
MetaCrtcMode *expected_current_mode =
|
||||||
&monitor_manager->modes[test_case->expect.crtcs[i].current_mode];
|
&monitor_manager->modes[test_case->expect.crtcs[i].current_mode];
|
||||||
|
int crtc_x, crtc_y;
|
||||||
|
|
||||||
g_assert (crtc->current_mode == expected_current_mode);
|
g_assert (crtc->current_mode == expected_current_mode);
|
||||||
|
|
||||||
|
get_compensated_crtc_position (crtc, &crtc_x, &crtc_y);
|
||||||
|
|
||||||
|
g_assert_cmpint (crtc_x, ==, test_case->expect.crtcs[i].x);
|
||||||
|
g_assert_cmpint (crtc_y, ==, test_case->expect.crtcs[i].y);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1224,8 +1263,6 @@ meta_test_monitor_tiled_linear_config (void)
|
|||||||
{
|
{
|
||||||
.output = 1,
|
.output = 1,
|
||||||
.crtc_mode = 0,
|
.crtc_mode = 0,
|
||||||
.x = 400,
|
|
||||||
.y = 0
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -1254,6 +1291,8 @@ meta_test_monitor_tiled_linear_config (void)
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
.current_mode = 0,
|
.current_mode = 0,
|
||||||
|
.x = 400,
|
||||||
|
.y = 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
.n_crtcs = 2,
|
.n_crtcs = 2,
|
||||||
@ -2826,14 +2865,10 @@ meta_test_monitor_custom_tiled_config (void)
|
|||||||
{
|
{
|
||||||
.output = 0,
|
.output = 0,
|
||||||
.crtc_mode = 0,
|
.crtc_mode = 0,
|
||||||
.x = 0,
|
|
||||||
.y = 0,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.output = 1,
|
.output = 1,
|
||||||
.crtc_mode = 0,
|
.crtc_mode = 0,
|
||||||
.x = 400,
|
|
||||||
.y = 0,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -2862,6 +2897,8 @@ meta_test_monitor_custom_tiled_config (void)
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
.current_mode = 0,
|
.current_mode = 0,
|
||||||
|
.x = 400,
|
||||||
|
.y = 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
.n_crtcs = 2,
|
.n_crtcs = 2,
|
||||||
@ -2969,14 +3006,10 @@ meta_test_monitor_custom_tiled_custom_resolution_config (void)
|
|||||||
{
|
{
|
||||||
.output = 0,
|
.output = 0,
|
||||||
.crtc_mode = 0,
|
.crtc_mode = 0,
|
||||||
.x = 0,
|
|
||||||
.y = 0,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.output = 1,
|
.output = 1,
|
||||||
.crtc_mode = 0,
|
.crtc_mode = 0,
|
||||||
.x = 400,
|
|
||||||
.y = 0,
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@ -2987,8 +3020,6 @@ meta_test_monitor_custom_tiled_custom_resolution_config (void)
|
|||||||
{
|
{
|
||||||
.output = 0,
|
.output = 0,
|
||||||
.crtc_mode = 1,
|
.crtc_mode = 1,
|
||||||
.x = 0,
|
|
||||||
.y = 0,
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
.output = 1,
|
.output = 1,
|
||||||
@ -3021,6 +3052,8 @@ meta_test_monitor_custom_tiled_custom_resolution_config (void)
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
.current_mode = -1,
|
.current_mode = -1,
|
||||||
|
.x = 400,
|
||||||
|
.y = 0,
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
.n_crtcs = 2,
|
.n_crtcs = 2,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user