[mutter] monitor: Add API to get GAMMA LUT size
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] monitor: Add API to get GAMMA LUT size
- Date: Thu, 1 Sep 2022 14:52:09 +0000 (UTC)
commit c6c3f340ece541eb2a21bc21b844424fdedff255
Author: Jonas Ã…dahl <jadahl gmail com>
Date: Tue Oct 26 11:45:17 2021 +0200
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>
src/backends/meta-monitor-manager-private.h | 7 +++++++
src/backends/meta-monitor-manager.c | 2 +-
src/backends/meta-monitor.c | 30 +++++++++++++++++++++++++++++
src/backends/meta-monitor.h | 2 ++
4 files changed, 40 insertions(+), 1 deletion(-)
---
diff --git a/src/backends/meta-monitor-manager-private.h b/src/backends/meta-monitor-manager-private.h
index c8255ba0c4..1943e81506 100644
--- a/src/backends/meta-monitor-manager-private.h
+++ b/src/backends/meta-monitor-manager-private.h
@@ -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_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 */
diff --git a/src/backends/meta-monitor-manager.c b/src/backends/meta-monitor-manager.c
index 36e8a53e72..b58a05f2d8 100644
--- a/src/backends/meta-monitor-manager.c
+++ b/src/backends/meta-monitor-manager.c
@@ -1152,7 +1152,7 @@ update_has_builtin_panel (MetaMonitorManager *manager)
obj_props[PROP_HAS_BUILTIN_PANEL]);
}
-static void
+void
meta_monitor_manager_get_crtc_gamma (MetaMonitorManager *manager,
MetaCrtc *crtc,
size_t *size,
diff --git a/src/backends/meta-monitor.c b/src/backends/meta-monitor.c
index e002f9d937..120fa2e604 100644
--- a/src/backends/meta-monitor.c
+++ b/src/backends/meta-monitor.c
@@ -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
meta_monitor_normal_generate_modes (MetaMonitorNormal *monitor_normal)
{
diff --git a/src/backends/meta-monitor.h b/src/backends/meta-monitor.h
index b24eaabfb6..cf0ffa99ca 100644
--- a/src/backends/meta-monitor.h
+++ b/src/backends/meta-monitor.h
@@ -295,4 +295,6 @@ gboolean meta_monitor_set_privacy_screen_enabled (MetaMonitor *monitor,
gboolean enabled,
GError **error);
+size_t meta_monitor_get_gamma_lut_size (MetaMonitor *monitor);
+
#endif /* META_MONITOR_H */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]