mirror of
https://github.com/brl/mutter.git
synced 2024-11-25 01:20:42 -05:00
cogl/matrix: Compare using graphene matrices
https://gitlab.gnome.org/GNOME/mutter/-/merge_requests/1439
This commit is contained in:
parent
06db70ea28
commit
2b7a73e0c3
@ -1668,46 +1668,18 @@ cogl_matrix_view_2d_in_perspective (CoglMatrix *matrix,
|
||||
gboolean
|
||||
cogl_matrix_equal (const void *v1, const void *v2)
|
||||
{
|
||||
graphene_matrix_t ma;
|
||||
graphene_matrix_t mb;
|
||||
const CoglMatrix *a = v1;
|
||||
const CoglMatrix *b = v2;
|
||||
|
||||
g_return_val_if_fail (v1 != NULL, FALSE);
|
||||
g_return_val_if_fail (v2 != NULL, FALSE);
|
||||
|
||||
/* We want to avoid having a fuzzy _equal() function (e.g. that uses
|
||||
* an arbitrary epsilon value) since this function notably conforms
|
||||
* to the prototype suitable for use with g_hash_table_new() and a
|
||||
* fuzzy hash function isn't really appropriate for comparing hash
|
||||
* table keys since it's possible that you could end up fetching
|
||||
* different values if you end up with multiple similar keys in use
|
||||
* at the same time. If you consider that fuzzyness allows cases
|
||||
* such as A == B == C but A != C then you could also end up losing
|
||||
* values in a hash table.
|
||||
*
|
||||
* We do at least use the == operator to compare values though so
|
||||
* that -0 is considered equal to 0.
|
||||
*/
|
||||
cogl_matrix_to_graphene_matrix (a, &ma);
|
||||
cogl_matrix_to_graphene_matrix (b, &mb);
|
||||
|
||||
/* XXX: We don't compare the flags, inverse matrix or padding */
|
||||
if (a->xx == b->xx &&
|
||||
a->xy == b->xy &&
|
||||
a->xz == b->xz &&
|
||||
a->xw == b->xw &&
|
||||
a->yx == b->yx &&
|
||||
a->yy == b->yy &&
|
||||
a->yz == b->yz &&
|
||||
a->yw == b->yw &&
|
||||
a->zx == b->zx &&
|
||||
a->zy == b->zy &&
|
||||
a->zz == b->zz &&
|
||||
a->zw == b->zw &&
|
||||
a->wx == b->wx &&
|
||||
a->wy == b->wy &&
|
||||
a->wz == b->wz &&
|
||||
a->ww == b->ww)
|
||||
return TRUE;
|
||||
else
|
||||
return FALSE;
|
||||
return graphene_matrix_equal_fast (&ma, &mb);
|
||||
}
|
||||
|
||||
CoglMatrix *
|
||||
|
Loading…
Reference in New Issue
Block a user