[cogl/wip/rib/master-next: 4/11] matrix: Adds cogl_matrix_is_identity API
- From: Robert Bragg <rbragg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [cogl/wip/rib/master-next: 4/11] matrix: Adds cogl_matrix_is_identity API
- Date: Fri, 1 Jul 2011 12:43:13 +0000 (UTC)
commit bd1ed43e8468e3ca786efd7f9bae602ce8459eb6
Author: Robert Bragg <robert linux intel com>
Date: Thu Jun 30 22:15:08 2011 +0100
matrix: Adds cogl_matrix_is_identity API
This adds a function called cogl_matrix_is_identity that can determine
if a given matrix is an identity matrix or not.
cogl/cogl-matrix.c | 10 ++++++++++
cogl/cogl-matrix.h | 12 ++++++++++++
.../cogl-2.0-experimental/cogl-sections.txt | 1 +
doc/reference/cogl/cogl-sections.txt | 1 +
4 files changed, 24 insertions(+), 0 deletions(-)
---
diff --git a/cogl/cogl-matrix.c b/cogl/cogl-matrix.c
index 51c98fb..4ceece7 100644
--- a/cogl/cogl-matrix.c
+++ b/cogl/cogl-matrix.c
@@ -2041,3 +2041,13 @@ cogl_matrix_project_points (const CoglMatrix *matrix,
n_points);
}
}
+
+gboolean
+cogl_matrix_is_identity (const CoglMatrix *matrix)
+{
+ if (!(matrix->flags & MAT_DIRTY_TYPE) &&
+ matrix->type == COGL_MATRIX_TYPE_IDENTITY)
+ return TRUE;
+ else
+ return memcmp (matrix, identity, sizeof (float) * 16) == 0;
+}
diff --git a/cogl/cogl-matrix.h b/cogl/cogl-matrix.h
index 903d2ea..a2c2385 100644
--- a/cogl/cogl-matrix.h
+++ b/cogl/cogl-matrix.h
@@ -585,6 +585,18 @@ cogl_matrix_project_points (const CoglMatrix *matrix,
#endif /* COGL_ENABLE_EXPERIMENTAL_API */
+/**
+ * cogl_matrix_is_identity:
+ * @matrix: A #CoglMatrix
+ *
+ * Determines if the given matrix is an identity matrix.
+ *
+ * Returns: %TRUE if @matrix is an identity matrix else %FALSE
+ * Since: 1.8
+ */
+gboolean
+cogl_matrix_is_identity (const CoglMatrix *matrix);
+
#ifdef _COGL_SUPPORTS_GTYPE_INTEGRATION
#define COGL_GTYPE_TYPE_MATRIX (cogl_gtype_matrix_get_type ())
diff --git a/doc/reference/cogl-2.0-experimental/cogl-sections.txt b/doc/reference/cogl-2.0-experimental/cogl-sections.txt
index 02f7931..1f7216f 100644
--- a/doc/reference/cogl-2.0-experimental/cogl-sections.txt
+++ b/doc/reference/cogl-2.0-experimental/cogl-sections.txt
@@ -387,6 +387,7 @@ cogl_matrix_scale
cogl_matrix_init_from_array
cogl_matrix_get_array
cogl_matrix_get_inverse
+cogl_matrix_is_identity
</SECTION>
<FILE>cogl-euler</FILE>
diff --git a/doc/reference/cogl/cogl-sections.txt b/doc/reference/cogl/cogl-sections.txt
index c737a8b..1bbb50b 100644
--- a/doc/reference/cogl/cogl-sections.txt
+++ b/doc/reference/cogl/cogl-sections.txt
@@ -469,6 +469,7 @@ cogl_matrix_get_inverse
cogl_matrix_transform_point
cogl_matrix_project_points
cogl_matrix_transform_points
+cogl_matrix_is_identity
</SECTION>
<SECTION>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]