mirror of
https://github.com/brl/mutter.git
synced 2025-06-28 16:03:04 +00:00
monitor-transform: Add meta_monitor_transform_transform() helper
Intended to replace various manual monitor transform enum math here and there. Tests added as well, to test some hand picked transforms. https://gitlab.gnome.org/GNOME/mutter/merge_requests/1064
This commit is contained in:
@ -39,3 +39,17 @@ meta_monitor_transform_invert (MetaMonitorTransform transform)
|
||||
g_assert_not_reached ();
|
||||
return 0;
|
||||
}
|
||||
|
||||
MetaMonitorTransform
|
||||
meta_monitor_transform_transform (MetaMonitorTransform transform,
|
||||
MetaMonitorTransform other)
|
||||
{
|
||||
MetaMonitorTransform new_transform;
|
||||
|
||||
new_transform = (transform + other) % META_MONITOR_TRANSFORM_FLIPPED;
|
||||
if (meta_monitor_transform_is_flipped (transform) !=
|
||||
meta_monitor_transform_is_flipped (other))
|
||||
new_transform += META_MONITOR_TRANSFORM_FLIPPED;
|
||||
|
||||
return new_transform;
|
||||
}
|
||||
|
@ -22,6 +22,7 @@
|
||||
#include <glib-object.h>
|
||||
|
||||
#include "backends/meta-backend-types.h"
|
||||
#include "core/util-private.h"
|
||||
|
||||
enum _MetaMonitorTransform
|
||||
{
|
||||
@ -48,9 +49,13 @@ meta_monitor_transform_is_rotated (MetaMonitorTransform transform)
|
||||
static inline gboolean
|
||||
meta_monitor_transform_is_flipped (MetaMonitorTransform transform)
|
||||
{
|
||||
return (transform >= META_MONITOR_TRANSFORM_FLIPPED);
|
||||
return (abs(transform) >= META_MONITOR_TRANSFORM_FLIPPED);
|
||||
}
|
||||
|
||||
MetaMonitorTransform meta_monitor_transform_invert (MetaMonitorTransform transform);
|
||||
|
||||
META_EXPORT_TEST
|
||||
MetaMonitorTransform meta_monitor_transform_transform (MetaMonitorTransform transform,
|
||||
MetaMonitorTransform other);
|
||||
|
||||
#endif /* META_MONITOR_TRANSFORM_H */
|
||||
|
Reference in New Issue
Block a user