matrix: track transform type
Introduce several matrix transform types and track type for matrix.
Could be usefull for activating some fastpath that depends on some
transform type.
Signed-off-by: Vasily Khoruzhick <anarsoul@gmail.com>
diff --git a/shared/matrix.h b/shared/matrix.h
index bacb7bf..47354f6 100644
--- a/shared/matrix.h
+++ b/shared/matrix.h
@@ -24,8 +24,16 @@
#ifndef WESTON_MATRIX_H
#define WESTON_MATRIX_H
+enum weston_matrix_transform_type {
+ WESTON_MATRIX_TRANSFORM_TRANSLATE = (1 << 0),
+ WESTON_MATRIX_TRANSFORM_SCALE = (1 << 1),
+ WESTON_MATRIX_TRANSFORM_ROTATE = (1 << 2),
+ WESTON_MATRIX_TRANSFORM_OTHER = (1 << 3),
+};
+
struct weston_matrix {
float d[16];
+ unsigned int type;
};
struct weston_vector {
@@ -42,6 +50,8 @@
weston_matrix_translate(struct weston_matrix *matrix,
float x, float y, float z);
void
+weston_matrix_rotate_xy(struct weston_matrix *matrix, float cos, float sin);
+void
weston_matrix_transform(struct weston_matrix *matrix, struct weston_vector *v);
int