monitor: Add API to get GAMMA LUT size
Will be used to generate look up tables. Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/2141>
This commit is contained in:
parent
8446cd9f4f
commit
c6c3f340ec
@ -459,4 +459,11 @@ GList * meta_monitor_manager_get_virtual_monitors (MetaMonitorManager *manager);
|
|||||||
|
|
||||||
void meta_monitor_manager_maybe_emit_privacy_screen_change (MetaMonitorManager *manager);
|
void meta_monitor_manager_maybe_emit_privacy_screen_change (MetaMonitorManager *manager);
|
||||||
|
|
||||||
|
void meta_monitor_manager_get_crtc_gamma (MetaMonitorManager *manager,
|
||||||
|
MetaCrtc *crtc,
|
||||||
|
size_t *size,
|
||||||
|
unsigned short **red,
|
||||||
|
unsigned short **green,
|
||||||
|
unsigned short **blue);
|
||||||
|
|
||||||
#endif /* META_MONITOR_MANAGER_PRIVATE_H */
|
#endif /* META_MONITOR_MANAGER_PRIVATE_H */
|
||||||
|
@ -1152,7 +1152,7 @@ update_has_builtin_panel (MetaMonitorManager *manager)
|
|||||||
obj_props[PROP_HAS_BUILTIN_PANEL]);
|
obj_props[PROP_HAS_BUILTIN_PANEL]);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
void
|
||||||
meta_monitor_manager_get_crtc_gamma (MetaMonitorManager *manager,
|
meta_monitor_manager_get_crtc_gamma (MetaMonitorManager *manager,
|
||||||
MetaCrtc *crtc,
|
MetaCrtc *crtc,
|
||||||
size_t *size,
|
size_t *size,
|
||||||
|
@ -618,6 +618,36 @@ meta_monitor_create_spec (MetaMonitor *monitor,
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* meta_monitor_get_gamma_lut_size:
|
||||||
|
* @monitor: The MetaMonitor instance to retrieve the size from.
|
||||||
|
*
|
||||||
|
* Get the size of the look-up tables (LUTs) for the monitor.
|
||||||
|
*
|
||||||
|
* Retrieve the size of the LUT used to implement the encoding or decoding
|
||||||
|
* transfer functions ("gamma", "degamma") for the CRTC or CRTCs that backs
|
||||||
|
* this monitor.
|
||||||
|
*
|
||||||
|
* Returns: The number of look-up table entries possible for the monitor. It is
|
||||||
|
* assumed that each CRTC of a monitor has identical gamma LUT sizes.
|
||||||
|
*/
|
||||||
|
size_t
|
||||||
|
meta_monitor_get_gamma_lut_size (MetaMonitor *monitor)
|
||||||
|
{
|
||||||
|
MetaMonitorPrivate *priv = meta_monitor_get_instance_private (monitor);
|
||||||
|
MetaMonitorManager *monitor_manager =
|
||||||
|
meta_backend_get_monitor_manager (priv->backend);
|
||||||
|
MetaOutput *output;
|
||||||
|
MetaCrtc *crtc;
|
||||||
|
size_t size;
|
||||||
|
|
||||||
|
output = meta_monitor_get_main_output (monitor);
|
||||||
|
crtc = meta_output_get_assigned_crtc (output);
|
||||||
|
meta_monitor_manager_get_crtc_gamma (monitor_manager, crtc,
|
||||||
|
&size, NULL, NULL, NULL);
|
||||||
|
return size;
|
||||||
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
meta_monitor_normal_generate_modes (MetaMonitorNormal *monitor_normal)
|
meta_monitor_normal_generate_modes (MetaMonitorNormal *monitor_normal)
|
||||||
{
|
{
|
||||||
|
@ -295,4 +295,6 @@ gboolean meta_monitor_set_privacy_screen_enabled (MetaMonitor *monitor,
|
|||||||
gboolean enabled,
|
gboolean enabled,
|
||||||
GError **error);
|
GError **error);
|
||||||
|
|
||||||
|
size_t meta_monitor_get_gamma_lut_size (MetaMonitor *monitor);
|
||||||
|
|
||||||
#endif /* META_MONITOR_H */
|
#endif /* META_MONITOR_H */
|
||||||
|
Loading…
Reference in New Issue
Block a user