[mutter] crtc/kms: Make the 'transform-handled' API pass through MetaCrtcNative
- From: Marge Bot <marge-bot src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter] crtc/kms: Make the 'transform-handled' API pass through MetaCrtcNative
- Date: Fri, 12 Mar 2021 15:43:45 +0000 (UTC)
commit b91740df0e739e0f0ec730201ac4e7571eba8454
Author: Jonas Ã…dahl <jadahl gmail com>
Date: Tue Jan 26 16:13:18 2021 +0100
crtc/kms: Make the 'transform-handled' API pass through MetaCrtcNative
In preparation for creating another non-KMS backend virtual CRTC.
Part-of: <https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1698>
src/backends/native/meta-crtc-kms.c | 22 +++++++++++++++++-----
src/backends/native/meta-crtc-kms.h | 3 ---
src/backends/native/meta-crtc-native.c | 9 +++++++++
src/backends/native/meta-crtc-native.h | 6 ++++++
src/backends/native/meta-monitor-manager-native.c | 3 ++-
5 files changed, 34 insertions(+), 9 deletions(-)
---
diff --git a/src/backends/native/meta-crtc-kms.c b/src/backends/native/meta-crtc-kms.c
index fb38e4d672..f1bc79146a 100644
--- a/src/backends/native/meta-crtc-kms.c
+++ b/src/backends/native/meta-crtc-kms.c
@@ -74,9 +74,9 @@ meta_crtc_kms_set_cursor_renderer_private (MetaCrtcKms *crtc_kms,
crtc_kms->cursor_renderer_private_destroy_notify = destroy_notify;
}
-gboolean
-meta_crtc_kms_is_transform_handled (MetaCrtcKms *crtc_kms,
- MetaMonitorTransform transform)
+static gboolean
+is_transform_handled (MetaCrtcKms *crtc_kms,
+ MetaMonitorTransform transform)
{
if (!crtc_kms->primary_plane)
return FALSE;
@@ -85,6 +85,15 @@ meta_crtc_kms_is_transform_handled (MetaCrtcKms *crtc_kms,
transform);
}
+static gboolean
+meta_crtc_kms_is_transform_handled (MetaCrtcNative *crtc_native,
+ MetaMonitorTransform transform)
+{
+ MetaCrtcKms *crtc_kms = META_CRTC_KMS (crtc_native);
+
+ return is_transform_handled (crtc_kms, transform);
+}
+
void
meta_crtc_kms_apply_transform (MetaCrtcKms *crtc_kms,
MetaKmsPlaneAssignment *kms_plane_assignment)
@@ -96,9 +105,9 @@ meta_crtc_kms_apply_transform (MetaCrtcKms *crtc_kms,
crtc_config = meta_crtc_get_config (crtc);
hw_transform = crtc_config->transform;
- if (!meta_crtc_kms_is_transform_handled (crtc_kms, hw_transform))
+ if (!is_transform_handled (crtc_kms, hw_transform))
hw_transform = META_MONITOR_TRANSFORM_NORMAL;
- if (!meta_crtc_kms_is_transform_handled (crtc_kms, hw_transform))
+ if (!is_transform_handled (crtc_kms, hw_transform))
return;
meta_kms_plane_update_set_rotation (crtc_kms->primary_plane,
@@ -369,6 +378,9 @@ static void
meta_crtc_kms_class_init (MetaCrtcKmsClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ MetaCrtcNativeClass *crtc_native_class = META_CRTC_NATIVE_CLASS (klass);
object_class->dispose = meta_crtc_kms_dispose;
+
+ crtc_native_class->is_transform_handled = meta_crtc_kms_is_transform_handled;
}
diff --git a/src/backends/native/meta-crtc-kms.h b/src/backends/native/meta-crtc-kms.h
index df957be15c..f8d241bbb5 100644
--- a/src/backends/native/meta-crtc-kms.h
+++ b/src/backends/native/meta-crtc-kms.h
@@ -45,9 +45,6 @@ void meta_crtc_kms_set_cursor_renderer_private (MetaCrtcKms *crtc_kms,
gpointer cursor_renderer_private,
GDestroyNotify destroy_notify);
-gboolean meta_crtc_kms_is_transform_handled (MetaCrtcKms *crtc_kms,
- MetaMonitorTransform transform);
-
void meta_crtc_kms_apply_transform (MetaCrtcKms *crtc_kms,
MetaKmsPlaneAssignment *kms_plane_assignment);
diff --git a/src/backends/native/meta-crtc-native.c b/src/backends/native/meta-crtc-native.c
index 3a0e7a9521..5e5751780f 100644
--- a/src/backends/native/meta-crtc-native.c
+++ b/src/backends/native/meta-crtc-native.c
@@ -24,6 +24,15 @@
G_DEFINE_ABSTRACT_TYPE (MetaCrtcNative, meta_crtc_native,
META_TYPE_CRTC)
+gboolean
+meta_crtc_native_is_transform_handled (MetaCrtcNative *crtc_native,
+ MetaMonitorTransform transform)
+{
+ MetaCrtcNativeClass *klass = META_CRTC_NATIVE_GET_CLASS (crtc_native);
+
+ return klass->is_transform_handled (crtc_native, transform);
+}
+
static void
meta_crtc_native_init (MetaCrtcNative *crtc_native)
{
diff --git a/src/backends/native/meta-crtc-native.h b/src/backends/native/meta-crtc-native.h
index 61ea15be31..0c16e58959 100644
--- a/src/backends/native/meta-crtc-native.h
+++ b/src/backends/native/meta-crtc-native.h
@@ -30,6 +30,12 @@ G_DECLARE_DERIVABLE_TYPE (MetaCrtcNative, meta_crtc_native,
struct _MetaCrtcNativeClass
{
MetaCrtcClass parent_class;
+
+ gboolean (* is_transform_handled) (MetaCrtcNative *crtc_native,
+ MetaMonitorTransform monitor_transform);
};
+gboolean meta_crtc_native_is_transform_handled (MetaCrtcNative *crtc_native,
+ MetaMonitorTransform transform);
+
#endif /* META_CRTC_NATIVE_H */
diff --git a/src/backends/native/meta-monitor-manager-native.c
b/src/backends/native/meta-monitor-manager-native.c
index 30a1535061..0b9471c255 100644
--- a/src/backends/native/meta-monitor-manager-native.c
+++ b/src/backends/native/meta-monitor-manager-native.c
@@ -528,7 +528,8 @@ meta_monitor_manager_native_is_transform_handled (MetaMonitorManager *manager,
MetaCrtc *crtc,
MetaMonitorTransform transform)
{
- return meta_crtc_kms_is_transform_handled (META_CRTC_KMS (crtc), transform);
+ return meta_crtc_native_is_transform_handled (META_CRTC_NATIVE (crtc),
+ transform);
}
static float
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]