[mutter/wip/garnacho/wayland-emulated-output-transform: 30/34] backends/native: Set transform on MetaRendererViews
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [mutter/wip/garnacho/wayland-emulated-output-transform: 30/34] backends/native: Set transform on MetaRendererViews
- Date: Tue, 16 Aug 2016 10:20:11 +0000 (UTC)
commit 05b762da9a4f3743d067de251f827c9b54f79a94
Author: Carlos Garnacho <carlosg gnome org>
Date: Mon Aug 1 03:38:03 2016 +0200
backends/native: Set transform on MetaRendererViews
Only do this if mutter uses the multiple stage views feature. This
is uneffective at the moment because no back texture is set yet.
https://bugzilla.gnome.org/show_bug.cgi?id=745079
src/backends/native/meta-renderer-native.c | 22 ++++++++++++++++++++++
1 files changed, 22 insertions(+), 0 deletions(-)
---
diff --git a/src/backends/native/meta-renderer-native.c b/src/backends/native/meta-renderer-native.c
index bdcfc79..401d041 100644
--- a/src/backends/native/meta-renderer-native.c
+++ b/src/backends/native/meta-renderer-native.c
@@ -837,6 +837,24 @@ meta_renderer_native_queue_modes_reset (MetaRendererNative *renderer_native)
}
}
+static MetaMonitorTransform
+meta_renderer_native_get_monitor_info_transform (MetaRenderer *renderer,
+ MetaMonitorInfo *monitor_info)
+{
+ MetaBackend *backend = meta_get_backend ();
+ MetaMonitorManager *monitor_manager =
+ meta_backend_get_monitor_manager (backend);
+ MetaMonitorManagerKms *monitor_manager_kms =
+ META_MONITOR_MANAGER_KMS (monitor_manager);
+
+ /* The monitor info has no outputs, what to do? */
+ if (monitor_info->n_outputs == 0)
+ return META_MONITOR_TRANSFORM_NORMAL;
+
+ return meta_monitor_manager_kms_get_view_transform (monitor_manager_kms,
+ monitor_info->outputs[0]->crtc);
+}
+
gboolean
meta_renderer_native_set_legacy_view_size (MetaRendererNative *renderer_native,
MetaRendererView *view,
@@ -1039,11 +1057,14 @@ meta_renderer_native_create_view (MetaRenderer *renderer,
MetaBackend *backend = meta_get_backend ();
ClutterBackend *clutter_backend = meta_backend_get_clutter_backend (backend);
CoglContext *cogl_context = clutter_backend_get_cogl_context (clutter_backend);
+ MetaMonitorTransform transform;
CoglOnscreen *onscreen;
CoglFramebuffer *framebuffer;
MetaRendererView *view;
GError *error = NULL;
+ transform = meta_renderer_native_get_monitor_info_transform (renderer,
+ monitor_info);
onscreen = cogl_onscreen_new (cogl_context,
monitor_info->rect.width,
monitor_info->rect.height);
@@ -1059,6 +1080,7 @@ meta_renderer_native_create_view (MetaRenderer *renderer,
"layout", &monitor_info->rect,
"framebuffer", framebuffer,
"monitor-info", monitor_info,
+ "transform", transform,
NULL);
cogl_object_unref (framebuffer);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]