mirror of
https://github.com/brl/mutter.git
synced 2025-07-28 12:38:04 +00:00
renderer-native: Move 'backend' field to MetaRenderer
So that it can be used by the generic MetaRenderer class, as well as other sub types, as well. https://gitlab.gnome.org/GNOME/mutter/merge_requests/838
This commit is contained in:
@@ -83,17 +83,6 @@
|
||||
#define DRM_FORMAT_INVALID 0
|
||||
#endif
|
||||
|
||||
enum
|
||||
{
|
||||
PROP_0,
|
||||
|
||||
PROP_BACKEND,
|
||||
|
||||
PROP_LAST
|
||||
};
|
||||
|
||||
static GParamSpec *obj_props[PROP_LAST];
|
||||
|
||||
typedef enum _MetaSharedFramebufferCopyMode
|
||||
{
|
||||
/* Zero-copy: primary GPU exports, secondary GPU imports as KMS FB */
|
||||
@@ -227,7 +216,6 @@ struct _MetaRendererNative
|
||||
|
||||
MetaGpuKms *primary_gpu_kms;
|
||||
|
||||
MetaBackend *backend;
|
||||
MetaGles3 *gles3;
|
||||
|
||||
gboolean use_modifiers;
|
||||
@@ -353,7 +341,9 @@ get_secondary_gpu_state (CoglOnscreen *onscreen,
|
||||
static MetaEgl *
|
||||
meta_renderer_native_get_egl (MetaRendererNative *renderer_native)
|
||||
{
|
||||
return meta_backend_get_egl (renderer_native->backend);
|
||||
MetaRenderer *renderer = META_RENDERER (renderer_native);
|
||||
|
||||
return meta_backend_get_egl (meta_renderer_get_backend (renderer));
|
||||
}
|
||||
|
||||
static MetaEgl *
|
||||
@@ -1707,8 +1697,9 @@ meta_onscreen_native_flip_crtcs (CoglOnscreen *onscreen,
|
||||
MetaOnscreenNative *onscreen_native = onscreen_egl->platform;
|
||||
MetaRendererView *view = onscreen_native->view;
|
||||
MetaRendererNative *renderer_native = onscreen_native->renderer_native;
|
||||
MetaRenderer *renderer = META_RENDERER (renderer_native);
|
||||
MetaMonitorManager *monitor_manager =
|
||||
meta_backend_get_monitor_manager (renderer_native->backend);
|
||||
meta_backend_get_monitor_manager (meta_renderer_get_backend (renderer));
|
||||
MetaPowerSave power_save_mode;
|
||||
MetaLogicalMonitor *logical_monitor;
|
||||
|
||||
@@ -2266,7 +2257,8 @@ meta_onscreen_native_swap_buffers_with_damage (CoglOnscreen *onscreen,
|
||||
CoglRendererEGL *cogl_renderer_egl = cogl_renderer->winsys;
|
||||
MetaRendererNativeGpuData *renderer_gpu_data = cogl_renderer_egl->platform;
|
||||
MetaRendererNative *renderer_native = renderer_gpu_data->renderer_native;
|
||||
MetaBackend *backend = renderer_native->backend;
|
||||
MetaRenderer *renderer = META_RENDERER (renderer_native);
|
||||
MetaBackend *backend = meta_renderer_get_backend (renderer);
|
||||
MetaMonitorManager *monitor_manager =
|
||||
meta_backend_get_monitor_manager (backend);
|
||||
MetaBackendNative *backend_native = META_BACKEND_NATIVE (backend);
|
||||
@@ -3002,9 +2994,11 @@ _cogl_winsys_egl_vtable = {
|
||||
gboolean
|
||||
meta_renderer_native_supports_mirroring (MetaRendererNative *renderer_native)
|
||||
{
|
||||
MetaRenderer *renderer = META_RENDERER (renderer_native);
|
||||
MetaBackend *backend = meta_renderer_get_backend (renderer);
|
||||
GList *l;
|
||||
|
||||
for (l = meta_backend_get_gpus (renderer_native->backend); l; l = l->next)
|
||||
for (l = meta_backend_get_gpus (backend); l; l = l->next)
|
||||
{
|
||||
MetaGpuKms *gpu_kms = META_GPU_KMS (l->data);
|
||||
MetaRendererNativeGpuData *renderer_gpu_data;
|
||||
@@ -3252,7 +3246,8 @@ calculate_view_transform (MetaMonitorManager *monitor_manager,
|
||||
static CoglContext *
|
||||
cogl_context_from_renderer_native (MetaRendererNative *renderer_native)
|
||||
{
|
||||
MetaBackend *backend = renderer_native->backend;
|
||||
MetaRenderer *renderer = META_RENDERER (renderer_native);
|
||||
MetaBackend *backend = meta_renderer_get_backend (renderer);
|
||||
ClutterBackend *clutter_backend = meta_backend_get_clutter_backend (backend);
|
||||
|
||||
return clutter_backend_get_cogl_context (clutter_backend);
|
||||
@@ -3306,7 +3301,7 @@ meta_renderer_native_create_view (MetaRenderer *renderer,
|
||||
MetaLogicalMonitor *logical_monitor)
|
||||
{
|
||||
MetaRendererNative *renderer_native = META_RENDERER_NATIVE (renderer);
|
||||
MetaBackend *backend = renderer_native->backend;
|
||||
MetaBackend *backend = meta_renderer_get_backend (renderer);
|
||||
MetaMonitorManager *monitor_manager =
|
||||
meta_backend_get_monitor_manager (backend);
|
||||
CoglContext *cogl_context =
|
||||
@@ -3414,9 +3409,8 @@ meta_renderer_native_create_view (MetaRenderer *renderer,
|
||||
static void
|
||||
meta_renderer_native_rebuild_views (MetaRenderer *renderer)
|
||||
{
|
||||
MetaRendererNative *renderer_native = META_RENDERER_NATIVE (renderer);
|
||||
MetaBackendNative *backend_native =
|
||||
META_BACKEND_NATIVE (renderer_native->backend);
|
||||
MetaBackend *backend = meta_renderer_get_backend (renderer);
|
||||
MetaBackendNative *backend_native = META_BACKEND_NATIVE (backend);
|
||||
MetaKms *kms = meta_backend_native_get_kms (backend_native);
|
||||
MetaRendererClass *parent_renderer_class =
|
||||
META_RENDERER_CLASS (meta_renderer_native_parent_class);
|
||||
@@ -3431,7 +3425,8 @@ meta_renderer_native_rebuild_views (MetaRenderer *renderer)
|
||||
void
|
||||
meta_renderer_native_finish_frame (MetaRendererNative *renderer_native)
|
||||
{
|
||||
MetaBackend *backend = renderer_native->backend;
|
||||
MetaRenderer *renderer = META_RENDERER (renderer_native);
|
||||
MetaBackend *backend = meta_renderer_get_backend (renderer);
|
||||
MetaBackendNative *backend_native = META_BACKEND_NATIVE (backend);
|
||||
MetaKms *kms = meta_backend_native_get_kms (backend_native);
|
||||
MetaKmsUpdate *kms_update = NULL;
|
||||
@@ -3442,7 +3437,7 @@ meta_renderer_native_finish_frame (MetaRendererNative *renderer_native)
|
||||
{
|
||||
GList *l;
|
||||
|
||||
for (l = meta_backend_get_gpus (renderer_native->backend); l; l = l->next)
|
||||
for (l = meta_backend_get_gpus (backend); l; l = l->next)
|
||||
{
|
||||
MetaGpu *gpu = l->data;
|
||||
GList *k;
|
||||
@@ -3483,49 +3478,6 @@ meta_renderer_native_get_frame_counter (MetaRendererNative *renderer_native)
|
||||
return renderer_native->frame_counter;
|
||||
}
|
||||
|
||||
static void
|
||||
meta_renderer_native_get_property (GObject *object,
|
||||
guint prop_id,
|
||||
GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
MetaRendererNative *renderer_native = META_RENDERER_NATIVE (object);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_BACKEND:
|
||||
g_value_set_object (value, renderer_native->backend);
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
on_gpu_added (MetaBackendNative *backend_native,
|
||||
MetaGpuKms *gpu_kms,
|
||||
MetaRendererNative *renderer_native);
|
||||
|
||||
static void
|
||||
meta_renderer_native_set_property (GObject *object,
|
||||
guint prop_id,
|
||||
const GValue *value,
|
||||
GParamSpec *pspec)
|
||||
{
|
||||
MetaRendererNative *renderer_native = META_RENDERER_NATIVE (object);
|
||||
|
||||
switch (prop_id)
|
||||
{
|
||||
case PROP_BACKEND:
|
||||
renderer_native->backend = g_value_get_object (value);
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static gboolean
|
||||
create_secondary_egl_config (MetaEgl *egl,
|
||||
MetaRendererNativeMode mode,
|
||||
@@ -3912,7 +3864,10 @@ get_egl_device_display (MetaRendererNative *renderer_native,
|
||||
static int
|
||||
count_drm_devices (MetaRendererNative *renderer_native)
|
||||
{
|
||||
return g_list_length (meta_backend_get_gpus (renderer_native->backend));
|
||||
MetaRenderer *renderer = META_RENDERER (renderer_native);
|
||||
MetaBackend *backend = meta_renderer_get_backend (renderer);
|
||||
|
||||
return g_list_length (meta_backend_get_gpus (backend));
|
||||
}
|
||||
|
||||
static MetaRendererNativeGpuData *
|
||||
@@ -4083,8 +4038,9 @@ static void
|
||||
on_power_save_mode_changed (MetaMonitorManager *monitor_manager,
|
||||
MetaRendererNative *renderer_native)
|
||||
{
|
||||
MetaBackendNative *backend_native =
|
||||
META_BACKEND_NATIVE (renderer_native->backend);
|
||||
MetaRenderer *renderer = META_RENDERER (renderer_native);
|
||||
MetaBackend *backend = meta_renderer_get_backend (renderer);
|
||||
MetaBackendNative *backend_native = META_BACKEND_NATIVE (backend);
|
||||
MetaKms *kms = meta_backend_native_get_kms (backend_native);
|
||||
MetaPowerSave power_save_mode;
|
||||
|
||||
@@ -4174,7 +4130,8 @@ meta_renderer_native_initable_init (GInitable *initable,
|
||||
GError **error)
|
||||
{
|
||||
MetaRendererNative *renderer_native = META_RENDERER_NATIVE (initable);
|
||||
MetaBackend *backend = renderer_native->backend;
|
||||
MetaRenderer *renderer = META_RENDERER (renderer_native);
|
||||
MetaBackend *backend = meta_renderer_get_backend (renderer);
|
||||
GList *gpus;
|
||||
GList *l;
|
||||
|
||||
@@ -4225,7 +4182,8 @@ static void
|
||||
meta_renderer_native_constructed (GObject *object)
|
||||
{
|
||||
MetaRendererNative *renderer_native = META_RENDERER_NATIVE (object);
|
||||
MetaBackend *backend = renderer_native->backend;
|
||||
MetaRenderer *renderer = META_RENDERER (renderer_native);
|
||||
MetaBackend *backend = meta_renderer_get_backend (renderer);
|
||||
MetaSettings *settings = meta_backend_get_settings (backend);
|
||||
MetaMonitorManager *monitor_manager =
|
||||
meta_backend_get_monitor_manager (backend);
|
||||
@@ -4257,24 +4215,12 @@ meta_renderer_native_class_init (MetaRendererNativeClass *klass)
|
||||
GObjectClass *object_class = G_OBJECT_CLASS (klass);
|
||||
MetaRendererClass *renderer_class = META_RENDERER_CLASS (klass);
|
||||
|
||||
object_class->get_property = meta_renderer_native_get_property;
|
||||
object_class->set_property = meta_renderer_native_set_property;
|
||||
object_class->finalize = meta_renderer_native_finalize;
|
||||
object_class->constructed = meta_renderer_native_constructed;
|
||||
|
||||
renderer_class->create_cogl_renderer = meta_renderer_native_create_cogl_renderer;
|
||||
renderer_class->create_view = meta_renderer_native_create_view;
|
||||
renderer_class->rebuild_views = meta_renderer_native_rebuild_views;
|
||||
|
||||
obj_props[PROP_BACKEND] =
|
||||
g_param_spec_object ("backend",
|
||||
"backend",
|
||||
"MetaBackendNative",
|
||||
META_TYPE_BACKEND_NATIVE,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_CONSTRUCT_ONLY |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
g_object_class_install_properties (object_class, PROP_LAST, obj_props);
|
||||
}
|
||||
|
||||
MetaRendererNative *
|
||||
|
Reference in New Issue
Block a user