[cogl/wip/rib/master-next: 32/44] matrix: check DIRTY_TYPE flag in _cogl_matrix_print



commit fc1b688f777e649b20b188af8aea54daf87b87b5
Author: Robert Bragg <robert linux intel com>
Date:   Mon Oct 17 10:19:10 2011 +0100

    matrix: check DIRTY_TYPE flag in _cogl_matrix_print
    
    when printing a matrix we aim to print out the matrix type but we
    weren't checking the flags first to see if the type is valid. We now
    check for the DIRTY_TYPE flag and if not set we also validate the matrix
    type isn't out of range.

 cogl/cogl-matrix.c |   14 +++++++++++---
 1 files changed, 11 insertions(+), 3 deletions(-)
---
diff --git a/cogl/cogl-matrix.c b/cogl/cogl-matrix.c
index f0bcdb7..19e6589 100644
--- a/cogl/cogl-matrix.c
+++ b/cogl/cogl-matrix.c
@@ -107,7 +107,8 @@ enum CoglMatrixType {
    COGL_MATRIX_TYPE_PERSPECTIVE,	/**< perspective projection matrix */
    COGL_MATRIX_TYPE_2D,		/**< 2-D transformation */
    COGL_MATRIX_TYPE_2D_NO_ROT,	/**< 2-D scale & translate only */
-   COGL_MATRIX_TYPE_3D		/**< 3-D transformation */
+   COGL_MATRIX_TYPE_3D,		/**< 3-D transformation */
+   COGL_MATRIX_N_TYPES
 } ;
 
 #define DEG2RAD (G_PI/180.0)
@@ -372,8 +373,15 @@ print_matrix_floats (const float m[16])
 void
 _cogl_matrix_print (const CoglMatrix *matrix)
 {
-  g_print ("Matrix type: %s, flags: %x\n",
-           types[matrix->type], (int)matrix->flags);
+  if (!(matrix->flags & MAT_DIRTY_TYPE))
+    {
+      g_return_if_fail (matrix->type < COGL_MATRIX_N_TYPES);
+      g_print ("Matrix type: %s, flags: %x\n",
+               types[matrix->type], (int)matrix->flags);
+    }
+  else
+    g_print ("Matrix type: DIRTY, flags: %x\n", (int)matrix->flags);
+
   print_matrix_floats ((float *)matrix);
   g_print ("Inverse: \n");
   if (!(matrix->flags & MAT_DIRTY_INVERSE))



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