mirror of
https://github.com/brl/mutter.git
synced 2025-01-22 17:38:56 +00:00
monitor-config-manager: Only use crtc transform for assignment
The CRTC level transform (i.e. not necessarily the one set on the hardware) is what is relevant for calculating the layout the CRTC will have on the stage, so only use the one that can be handled by the hardware for the CRTC assignment. This makes the CRTC layout valid for tiled monitors. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1199
This commit is contained in:
parent
3edf6a5292
commit
5e9986bbcb
@ -172,6 +172,7 @@ assign_monitor_crtc (MetaMonitor *monitor,
|
||||
MetaCrtc *crtc;
|
||||
MetaMonitorTransform transform;
|
||||
MetaMonitorTransform crtc_transform;
|
||||
MetaMonitorTransform crtc_hw_transform;
|
||||
int crtc_x, crtc_y;
|
||||
float x_offset, y_offset;
|
||||
float scale = 0.0;
|
||||
@ -200,10 +201,12 @@ assign_monitor_crtc (MetaMonitor *monitor,
|
||||
|
||||
transform = data->logical_monitor_config->transform;
|
||||
crtc_transform = meta_monitor_logical_to_crtc_transform (monitor, transform);
|
||||
if (!meta_monitor_manager_is_transform_handled (data->monitor_manager,
|
||||
crtc,
|
||||
crtc_transform))
|
||||
crtc_transform = META_MONITOR_TRANSFORM_NORMAL;
|
||||
if (meta_monitor_manager_is_transform_handled (data->monitor_manager,
|
||||
crtc,
|
||||
crtc_transform))
|
||||
crtc_hw_transform = crtc_transform;
|
||||
else
|
||||
crtc_hw_transform = META_MONITOR_TRANSFORM_NORMAL;
|
||||
|
||||
meta_monitor_calculate_crtc_pos (monitor, mode, output, crtc_transform,
|
||||
&crtc_x, &crtc_y);
|
||||
@ -244,7 +247,7 @@ assign_monitor_crtc (MetaMonitor *monitor,
|
||||
.crtc = crtc,
|
||||
.mode = crtc_mode,
|
||||
.layout = crtc_layout,
|
||||
.transform = crtc_transform,
|
||||
.transform = crtc_hw_transform,
|
||||
.outputs = g_ptr_array_new ()
|
||||
};
|
||||
g_ptr_array_add (crtc_info->outputs, output);
|
||||
|
Loading…
x
Reference in New Issue
Block a user