diff options
author | Jonas Ã…dahl <jadahl@gmail.com> | 2020-02-26 16:47:03 +0100 |
---|---|---|
committer | Georges Basile Stavracas Neto <georges.stavracas@gmail.com> | 2020-06-10 18:54:51 +0000 |
commit | 4a4f2d8264d0f961a8060db38a6d0f51eaefbd28 (patch) | |
tree | 4107c5e569f59e269b7c6ca41571013d05d70d82 /src/backends/native/meta-gpu-kms.c | |
parent | 4920b5064d2240c2d202deeb92a8ad09780a5799 (diff) | |
download | mutter-4a4f2d8264d0f961a8060db38a6d0f51eaefbd28.tar.gz |
output: Make implementations inherit MetaOutput
Instead of the home baked "inheritance" system, using a gpointer and a
GDestroyNotify function to keep the what effectively is sub type
details, make MetaOutput an abstract derivable type, and make the
implementations inherit it.
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1287
Diffstat (limited to 'src/backends/native/meta-gpu-kms.c')
-rw-r--r-- | src/backends/native/meta-gpu-kms.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/backends/native/meta-gpu-kms.c b/src/backends/native/meta-gpu-kms.c index 6b79a7a54..eade7092b 100644 --- a/src/backends/native/meta-gpu-kms.c +++ b/src/backends/native/meta-gpu-kms.c @@ -238,7 +238,8 @@ meta_gpu_kms_set_power_save_mode (MetaGpuKms *gpu_kms, { MetaOutput *output = l->data; - meta_output_kms_set_power_save_mode (output, state, kms_update); + meta_output_kms_set_power_save_mode (META_OUTPUT_KMS (output), + state, kms_update); } } @@ -367,7 +368,8 @@ find_output_by_connector_id (GList *outputs, { MetaOutput *output = l->data; - if (meta_output_kms_get_connector_id (output) == connector_id) + if (meta_output_kms_get_connector_id (META_OUTPUT_KMS (output)) == + connector_id) return output; } @@ -391,7 +393,8 @@ setup_output_clones (MetaGpu *gpu) if (other_output == output) continue; - if (meta_output_kms_can_clone (output, other_output)) + if (meta_output_kms_can_clone (META_OUTPUT_KMS (output), + META_OUTPUT_KMS (other_output))) meta_output_add_possible_clone (output, other_output); } } @@ -515,7 +518,7 @@ init_outputs (MetaGpuKms *gpu_kms) { MetaKmsConnector *kms_connector = l->data; const MetaKmsConnectorState *connector_state; - MetaOutput *output; + MetaOutputKms *output_kms; MetaOutput *old_output; GError *error = NULL; @@ -526,18 +529,18 @@ init_outputs (MetaGpuKms *gpu_kms) old_output = find_output_by_connector_id (old_outputs, meta_kms_connector_get_id (kms_connector)); - output = meta_create_kms_output (gpu_kms, - kms_connector, - old_output, - &error); - if (!output) + output_kms = meta_output_kms_new (gpu_kms, + kms_connector, + old_output, + &error); + if (!output_kms) { g_warning ("Failed to create KMS output: %s", error->message); g_error_free (error); } else { - outputs = g_list_prepend (outputs, output); + outputs = g_list_prepend (outputs, output_kms); } } |