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
This commit is contained in:
Jonas Ådahl
2020-02-26 16:47:03 +01:00
committed by Georges Basile Stavracas Neto
parent 4920b5064d
commit 4a4f2d8264
18 changed files with 176 additions and 151 deletions

View File

@ -28,16 +28,21 @@
#include "backends/x11/meta-gpu-xrandr.h"
#include "backends/x11/meta-monitor-manager-xrandr.h"
void meta_output_xrandr_apply_mode (MetaOutput *output);
#define META_TYPE_OUTPUT_XRANDR (meta_output_xrandr_get_type ())
G_DECLARE_FINAL_TYPE (MetaOutputXrandr, meta_output_xrandr,
META, OUTPUT_XRANDR,
MetaOutput)
void meta_output_xrandr_change_backlight (MetaOutput *output,
void meta_output_xrandr_apply_mode (MetaOutputXrandr *output_xrandr);
void meta_output_xrandr_change_backlight (MetaOutputXrandr *output_xrandr,
int value);
GBytes * meta_output_xrandr_read_edid (MetaOutput *output);
GBytes * meta_output_xrandr_read_edid (MetaOutput *output_xrandr);
MetaOutput * meta_create_xrandr_output (MetaGpuXrandr *gpu_xrandr,
XRROutputInfo *xrandr_output,
RROutput output_id,
RROutput primary_output);
MetaOutputXrandr * meta_output_xrandr_new (MetaGpuXrandr *gpu_xrandr,
XRROutputInfo *xrandr_output,
RROutput output_id,
RROutput primary_output);
#endif /* META_OUTPUT_XRANDR_H */