mirror of
https://github.com/brl/mutter.git
synced 2024-11-25 09:30:45 -05:00
crtc: Move logical monitor pointer to MetaMonitor
Since the last code fetching the logical monitor state directly from the CRTC has been removed, we can move the logical monitor pointer to a more natural place. https://gitlab.gnome.org/GNOME/mutter/merge_requests/1042
This commit is contained in:
parent
1c98f01a65
commit
2d6665950c
@ -65,7 +65,6 @@ struct _MetaCrtc
|
|||||||
glong crtc_id;
|
glong crtc_id;
|
||||||
unsigned int all_transforms;
|
unsigned int all_transforms;
|
||||||
|
|
||||||
MetaLogicalMonitor *logical_monitor;
|
|
||||||
MetaCrtcConfig *config;
|
MetaCrtcConfig *config;
|
||||||
|
|
||||||
/* Used when changing configuration */
|
/* Used when changing configuration */
|
||||||
|
@ -177,16 +177,14 @@ meta_logical_monitor_add_monitor (MetaLogicalMonitor *logical_monitor,
|
|||||||
for (l_output = outputs; l_output; l_output = l_output->next)
|
for (l_output = outputs; l_output; l_output = l_output->next)
|
||||||
{
|
{
|
||||||
MetaOutput *output = l_output->data;
|
MetaOutput *output = l_output->data;
|
||||||
MetaCrtc *crtc;
|
|
||||||
|
|
||||||
is_presentation = is_presentation && output->is_presentation;
|
is_presentation = is_presentation && output->is_presentation;
|
||||||
crtc = meta_output_get_assigned_crtc (output);
|
|
||||||
if (crtc)
|
|
||||||
crtc->logical_monitor = logical_monitor;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
logical_monitor->is_presentation = is_presentation;
|
logical_monitor->is_presentation = is_presentation;
|
||||||
|
|
||||||
|
meta_monitor_set_logical_monitor (monitor, logical_monitor);
|
||||||
}
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
|
@ -548,8 +548,6 @@ apply_crtc_assignments (MetaMonitorManager *manager,
|
|||||||
{
|
{
|
||||||
MetaCrtc *crtc = l->data;
|
MetaCrtc *crtc = l->data;
|
||||||
|
|
||||||
crtc->logical_monitor = NULL;
|
|
||||||
|
|
||||||
if (crtc->is_dirty)
|
if (crtc->is_dirty)
|
||||||
{
|
{
|
||||||
crtc->is_dirty = FALSE;
|
crtc->is_dirty = FALSE;
|
||||||
|
@ -66,6 +66,8 @@ typedef struct _MetaMonitorPrivate
|
|||||||
|
|
||||||
MetaMonitorSpec *spec;
|
MetaMonitorSpec *spec;
|
||||||
|
|
||||||
|
MetaLogicalMonitor *logical_monitor;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* The primary or first output for this monitor, 0 if we can't figure out.
|
* The primary or first output for this monitor, 0 if we can't figure out.
|
||||||
* It can be matched to a winsys_id of a MetaOutput.
|
* It can be matched to a winsys_id of a MetaOutput.
|
||||||
@ -1448,16 +1450,9 @@ meta_monitor_get_spec (MetaMonitor *monitor)
|
|||||||
MetaLogicalMonitor *
|
MetaLogicalMonitor *
|
||||||
meta_monitor_get_logical_monitor (MetaMonitor *monitor)
|
meta_monitor_get_logical_monitor (MetaMonitor *monitor)
|
||||||
{
|
{
|
||||||
MetaOutput *output;
|
MetaMonitorPrivate *priv = meta_monitor_get_instance_private (monitor);
|
||||||
MetaCrtc *crtc;
|
|
||||||
|
|
||||||
output = meta_monitor_get_main_output (monitor);
|
return priv->logical_monitor;
|
||||||
crtc = meta_output_get_assigned_crtc (output);
|
|
||||||
|
|
||||||
if (crtc)
|
|
||||||
return crtc->logical_monitor;
|
|
||||||
else
|
|
||||||
return NULL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MetaMonitorMode *
|
MetaMonitorMode *
|
||||||
@ -1895,3 +1890,12 @@ meta_monitor_get_display_name (MetaMonitor *monitor)
|
|||||||
|
|
||||||
return monitor_priv->display_name;
|
return monitor_priv->display_name;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
meta_monitor_set_logical_monitor (MetaMonitor *monitor,
|
||||||
|
MetaLogicalMonitor *logical_monitor)
|
||||||
|
{
|
||||||
|
MetaMonitorPrivate *priv = meta_monitor_get_instance_private (monitor);
|
||||||
|
|
||||||
|
priv->logical_monitor = logical_monitor;
|
||||||
|
}
|
||||||
|
@ -283,4 +283,7 @@ void meta_monitor_spec_free (MetaMonitorSpec *monitor_id);
|
|||||||
|
|
||||||
const char * meta_monitor_get_display_name (MetaMonitor *monitor);
|
const char * meta_monitor_get_display_name (MetaMonitor *monitor);
|
||||||
|
|
||||||
|
void meta_monitor_set_logical_monitor (MetaMonitor *monitor,
|
||||||
|
MetaLogicalMonitor *logical_monitor);
|
||||||
|
|
||||||
#endif /* META_MONITOR_H */
|
#endif /* META_MONITOR_H */
|
||||||
|
@ -221,8 +221,6 @@ apply_crtc_assignments (MetaMonitorManager *manager,
|
|||||||
{
|
{
|
||||||
MetaCrtc *crtc = k->data;
|
MetaCrtc *crtc = k->data;
|
||||||
|
|
||||||
crtc->logical_monitor = NULL;
|
|
||||||
|
|
||||||
if (crtc->is_dirty)
|
if (crtc->is_dirty)
|
||||||
{
|
{
|
||||||
crtc->is_dirty = FALSE;
|
crtc->is_dirty = FALSE;
|
||||||
|
@ -177,8 +177,6 @@ apply_crtc_assignments (MetaMonitorManager *manager,
|
|||||||
{
|
{
|
||||||
MetaCrtc *crtc = l->data;
|
MetaCrtc *crtc = l->data;
|
||||||
|
|
||||||
crtc->logical_monitor = NULL;
|
|
||||||
|
|
||||||
if (crtc->is_dirty)
|
if (crtc->is_dirty)
|
||||||
{
|
{
|
||||||
crtc->is_dirty = FALSE;
|
crtc->is_dirty = FALSE;
|
||||||
|
@ -520,7 +520,7 @@ check_current_monitor_mode (MetaMonitor *monitor,
|
|||||||
|
|
||||||
g_assert (monitor_crtc_mode->crtc_mode == crtc_config->mode);
|
g_assert (monitor_crtc_mode->crtc_mode == crtc_config->mode);
|
||||||
|
|
||||||
logical_monitor = crtc->logical_monitor;
|
logical_monitor = meta_monitor_get_logical_monitor (monitor);
|
||||||
g_assert_nonnull (logical_monitor);
|
g_assert_nonnull (logical_monitor);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -618,7 +618,8 @@ check_logical_monitor (MonitorTestCase *test_case,
|
|||||||
}
|
}
|
||||||
|
|
||||||
crtc = meta_output_get_assigned_crtc (output);
|
crtc = meta_output_get_assigned_crtc (output);
|
||||||
g_assert (!crtc || crtc->logical_monitor == logical_monitor);
|
g_assert (!crtc ||
|
||||||
|
meta_monitor_get_logical_monitor (monitor) == logical_monitor);
|
||||||
g_assert_cmpint (logical_monitor->is_presentation,
|
g_assert_cmpint (logical_monitor->is_presentation,
|
||||||
==,
|
==,
|
||||||
output->is_presentation);
|
output->is_presentation);
|
||||||
@ -831,7 +832,6 @@ check_monitor_configuration (MonitorTestCase *test_case)
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
MetaLogicalMonitor *logical_monitor = crtc->logical_monitor;
|
|
||||||
MetaCrtcMode *expected_current_mode;
|
MetaCrtcMode *expected_current_mode;
|
||||||
|
|
||||||
g_assert_nonnull (crtc_config);
|
g_assert_nonnull (crtc_config);
|
||||||
@ -845,9 +845,6 @@ check_monitor_configuration (MonitorTestCase *test_case)
|
|||||||
==,
|
==,
|
||||||
test_case->expect.crtcs[i].transform);
|
test_case->expect.crtcs[i].transform);
|
||||||
|
|
||||||
logical_monitor = crtc->logical_monitor;
|
|
||||||
g_assert_nonnull (logical_monitor);
|
|
||||||
|
|
||||||
g_assert_cmpfloat_with_epsilon (crtc_config->layout.origin.x,
|
g_assert_cmpfloat_with_epsilon (crtc_config->layout.origin.x,
|
||||||
test_case->expect.crtcs[i].x,
|
test_case->expect.crtcs[i].x,
|
||||||
FLT_EPSILON);
|
FLT_EPSILON);
|
||||||
|
Loading…
Reference in New Issue
Block a user