From 2fa0183a95801792bc6dc6a64718f1a67ed2f160 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20=C3=85dahl?= Date: Sat, 1 Feb 2025 22:45:35 +0800 Subject: [PATCH] kms/connector: Add API to check color mode support Part-of: --- src/backends/native/meta-kms-connector.c | 21 +++++++++++++++++++++ src/backends/native/meta-kms-connector.h | 4 ++++ 2 files changed, 25 insertions(+) diff --git a/src/backends/native/meta-kms-connector.c b/src/backends/native/meta-kms-connector.c index 7723416aa..afd3d5e0f 100644 --- a/src/backends/native/meta-kms-connector.c +++ b/src/backends/native/meta-kms-connector.c @@ -97,6 +97,13 @@ meta_kms_connector_get_device (MetaKmsConnector *connector) return meta_kms_impl_device_get_device (connector->impl_device); } +static gboolean +meta_kms_connector_has_prop (MetaKmsConnector *connector, + MetaKmsConnectorProp prop) +{ + return connector->prop_table.props[prop].prop_id > 0; +} + uint32_t meta_kms_connector_get_prop_id (MetaKmsConnector *connector, MetaKmsConnectorProp prop) @@ -189,6 +196,20 @@ meta_kms_connector_is_non_desktop (MetaKmsConnector *connector) return connector->current_state->non_desktop; } +gboolean +meta_kms_connector_supports_colorspace (MetaKmsConnector *connector) +{ + return meta_kms_connector_has_prop (connector, + META_KMS_CONNECTOR_PROP_COLORSPACE); +} + +gboolean +meta_kms_connector_supports_hdr_metadata (MetaKmsConnector *connector) +{ + return meta_kms_connector_has_prop (connector, + META_KMS_CONNECTOR_PROP_HDR_OUTPUT_METADATA); +} + static gboolean has_privacy_screen_software_toggle (MetaKmsConnector *connector) { diff --git a/src/backends/native/meta-kms-connector.h b/src/backends/native/meta-kms-connector.h index 328465d0f..3a7d7601f 100644 --- a/src/backends/native/meta-kms-connector.h +++ b/src/backends/native/meta-kms-connector.h @@ -103,3 +103,7 @@ META_EXPORT_TEST const MetaKmsConnectorState * meta_kms_connector_get_current_state (MetaKmsConnector *connector); gboolean meta_kms_connector_is_non_desktop (MetaKmsConnector *connector); + +gboolean meta_kms_connector_supports_colorspace (MetaKmsConnector *connector); + +gboolean meta_kms_connector_supports_hdr_metadata (MetaKmsConnector *connector);