[gnome-flashback] monitor-transform: add helper function transform_invert



commit 9d98bb406259692511ea55be90f833fba6093f11
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Thu Mar 12 21:57:11 2020 +0200

    monitor-transform: add helper function transform_invert
    
    Based on mutter commit:
    https://gitlab.gnome.org/GNOME/mutter/-/commit/b7a9c7e7d384a08f7106

 backends/Makefile.am            |  1 +
 backends/gf-monitor-transform.c | 51 +++++++++++++++++++++++++++++++++++++++++
 backends/gf-monitor-transform.h |  2 ++
 3 files changed, 54 insertions(+)
---
diff --git a/backends/Makefile.am b/backends/Makefile.am
index 881ae83..1915695 100644
--- a/backends/Makefile.am
+++ b/backends/Makefile.am
@@ -72,6 +72,7 @@ libbackends_la_SOURCES = \
        gf-monitor-spec.c \
        gf-monitor-tiled-private.h \
        gf-monitor-tiled.c \
+       gf-monitor-transform.c \
        gf-monitor-transform.h \
        gf-monitor.c \
        gf-monitors-config-private.h \
diff --git a/backends/gf-monitor-transform.c b/backends/gf-monitor-transform.c
new file mode 100644
index 0000000..c0e9e07
--- /dev/null
+++ b/backends/gf-monitor-transform.c
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2018 Robert Mader
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "config.h"
+#include "gf-monitor-transform.h"
+
+GfMonitorTransform
+gf_monitor_transform_invert (GfMonitorTransform transform)
+{
+  GfMonitorTransform inverted_transform;
+
+  switch (transform)
+    {
+      case GF_MONITOR_TRANSFORM_90:
+        inverted_transform = GF_MONITOR_TRANSFORM_270;
+        break;
+
+      case GF_MONITOR_TRANSFORM_270:
+        inverted_transform = GF_MONITOR_TRANSFORM_90;
+        break;
+
+      case GF_MONITOR_TRANSFORM_NORMAL:
+      case GF_MONITOR_TRANSFORM_180:
+      case GF_MONITOR_TRANSFORM_FLIPPED:
+      case GF_MONITOR_TRANSFORM_FLIPPED_90:
+      case GF_MONITOR_TRANSFORM_FLIPPED_180:
+      case GF_MONITOR_TRANSFORM_FLIPPED_270:
+        inverted_transform = transform;
+        break;
+
+      default:
+        g_assert_not_reached ();
+        break;
+    }
+
+  return inverted_transform;
+}
diff --git a/backends/gf-monitor-transform.h b/backends/gf-monitor-transform.h
index 5c8f3f6..ef823c1 100644
--- a/backends/gf-monitor-transform.h
+++ b/backends/gf-monitor-transform.h
@@ -47,6 +47,8 @@ gf_monitor_transform_is_flipped (GfMonitorTransform transform)
   return (transform >= GF_MONITOR_TRANSFORM_FLIPPED);
 }
 
+GfMonitorTransform gf_monitor_transform_invert (GfMonitorTransform transform);
+
 G_END_DECLS
 
 #endif


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]