mirror of
https://github.com/brl/mutter.git
synced 2024-12-23 03:22:04 +00:00
renderer-view: Keep track of what CRTC it is associated with
For the nested and native backend, it'll point to the CRTC it was created for. On the X11 CM backend, it'll be NULL, as there is only a single global stage view. https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1285
This commit is contained in:
parent
33450700dc
commit
9ed463b488
@ -32,6 +32,7 @@
|
||||
|
||||
#include "backends/meta-renderer-view.h"
|
||||
|
||||
#include "backends/meta-crtc.h"
|
||||
#include "backends/meta-renderer.h"
|
||||
#include "clutter/clutter-mutter.h"
|
||||
#include "compositor/region-utils.h"
|
||||
@ -41,6 +42,7 @@ enum
|
||||
PROP_0,
|
||||
|
||||
PROP_TRANSFORM,
|
||||
PROP_CRTC,
|
||||
|
||||
PROP_LAST
|
||||
};
|
||||
@ -52,6 +54,8 @@ struct _MetaRendererView
|
||||
ClutterStageViewCogl parent;
|
||||
|
||||
MetaMonitorTransform transform;
|
||||
|
||||
MetaCrtc *crtc;
|
||||
};
|
||||
|
||||
G_DEFINE_TYPE (MetaRendererView, meta_renderer_view,
|
||||
@ -63,6 +67,12 @@ meta_renderer_view_get_transform (MetaRendererView *view)
|
||||
return view->transform;
|
||||
}
|
||||
|
||||
MetaCrtc *
|
||||
meta_renderer_view_get_crtc (MetaRendererView *view)
|
||||
{
|
||||
return view->crtc;
|
||||
}
|
||||
|
||||
static void
|
||||
meta_renderer_view_get_offscreen_transformation_matrix (ClutterStageView *view,
|
||||
CoglMatrix *matrix)
|
||||
@ -161,6 +171,9 @@ meta_renderer_view_get_property (GObject *object,
|
||||
case PROP_TRANSFORM:
|
||||
g_value_set_uint (value, view->transform);
|
||||
break;
|
||||
case PROP_CRTC:
|
||||
g_value_set_object (value, view->crtc);
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
@ -180,6 +193,9 @@ meta_renderer_view_set_property (GObject *object,
|
||||
case PROP_TRANSFORM:
|
||||
meta_renderer_view_set_transform (view, g_value_get_uint (value));
|
||||
break;
|
||||
case PROP_CRTC:
|
||||
view->crtc = g_value_get_object (value);
|
||||
break;
|
||||
default:
|
||||
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
|
||||
break;
|
||||
@ -218,5 +234,14 @@ meta_renderer_view_class_init (MetaRendererViewClass *klass)
|
||||
G_PARAM_CONSTRUCT_ONLY |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
|
||||
obj_props[PROP_CRTC] =
|
||||
g_param_spec_object ("crtc",
|
||||
"MetaCrtc",
|
||||
"MetaCrtc",
|
||||
META_TYPE_CRTC,
|
||||
G_PARAM_READWRITE |
|
||||
G_PARAM_CONSTRUCT_ONLY |
|
||||
G_PARAM_STATIC_STRINGS);
|
||||
|
||||
g_object_class_install_properties (object_class, PROP_LAST, obj_props);
|
||||
}
|
||||
|
@ -28,4 +28,6 @@ G_DECLARE_FINAL_TYPE (MetaRendererView, meta_renderer_view,
|
||||
|
||||
MetaMonitorTransform meta_renderer_view_get_transform (MetaRendererView *view);
|
||||
|
||||
MetaCrtc *meta_renderer_view_get_crtc (MetaRendererView *view);
|
||||
|
||||
#endif /* META_RENDERER_VIEW_H */
|
||||
|
@ -3249,6 +3249,7 @@ meta_renderer_native_create_view (MetaRenderer *renderer,
|
||||
"name", meta_output_get_name (output),
|
||||
"stage", meta_backend_get_stage (backend),
|
||||
"layout", &view_layout,
|
||||
"crtc", crtc,
|
||||
"scale", scale,
|
||||
"framebuffer", onscreen,
|
||||
"offscreen", offscreen,
|
||||
|
@ -219,6 +219,7 @@ meta_renderer_x11_nested_create_view (MetaRenderer *renderer,
|
||||
"name", meta_output_get_name (output),
|
||||
"stage", meta_backend_get_stage (backend),
|
||||
"layout", &view_layout,
|
||||
"crtc", crtc,
|
||||
"framebuffer", COGL_FRAMEBUFFER (fake_onscreen),
|
||||
"offscreen", COGL_FRAMEBUFFER (offscreen),
|
||||
"transform", view_transform,
|
||||
|
Loading…
Reference in New Issue
Block a user