[mutter/gbsneto/graphene-matrix: 17/57] cogl/matrix: Get value using graphene matrix




commit 1c9ba40aebf546985d845055c6e1853172009d3a
Author: Georges Basile Stavracas Neto <georges stavracas gmail com>
Date:   Thu Sep 10 14:45:22 2020 -0300

    cogl/matrix: Get value using graphene matrix
    
    Internally, a graphene_matrix_t representing the same transform that
    of a CoglMatrix is the same matrix but transposed, so in order to get
    the same element given a column and row for a matrix as if it would
    be located in Cogl, it is necessary to swap the row and column when
    retrieving it from the graphene matrix.
    
    https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1439

 cogl/cogl/cogl-matrix.c | 18 ++++--------------
 1 file changed, 4 insertions(+), 14 deletions(-)
---
diff --git a/cogl/cogl/cogl-matrix.c b/cogl/cogl/cogl-matrix.c
index f793e6eaa4..0b432b61d8 100644
--- a/cogl/cogl/cogl-matrix.c
+++ b/cogl/cogl/cogl-matrix.c
@@ -273,19 +273,6 @@ cogl_debug_matrix_print (const CoglMatrix *matrix)
   _cogl_matrix_prefix_print ("", matrix);
 }
 
-/*
- * References an element of 4x4 matrix.
- *
- * @m matrix array.
- * @c column of the desired element.
- * @r row of the desired element.
- *
- * Returns: value of the desired element.
- *
- * Calculate the linear storage index of the element and references it.
- */
-#define MAT(m,r,c) (m)[(c)*4+(r)]
-
 /*
  * Compute inverse of a transformation matrix.
  *
@@ -720,7 +707,10 @@ cogl_matrix_get_value (const CoglMatrix *matrix,
                        unsigned int      row,
                        unsigned int      column)
 {
-  return MAT ((float *)matrix, row, column);
+  graphene_matrix_t m;
+
+  cogl_matrix_to_graphene_matrix (matrix, &m);
+  return graphene_matrix_get_value (&m, column, row);
 }
 
 void


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