From c7bc249e527ce20880a62824d146b0e86c463cc3 Mon Sep 17 00:00:00 2001 From: Nicola Fontana Date: Sat, 14 Nov 2009 11:59:14 +0100 Subject: [PATCH] [AdgMatrix] Swap before and after transformations The ADG_TRANSFORM_BEFORE and ADG_TRANSFORM_AFTER (and friends) operations are swapped: updated the code to the right behavior. This has broken practically everything... a code refactoring is in progress. --- adg/adg-enums.c | 4 ++-- adg/adg-matrix.c | 10 ++++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/adg/adg-enums.c b/adg/adg-enums.c index c6ccaef2..34726c53 100644 --- a/adg/adg-enums.c +++ b/adg/adg-enums.c @@ -46,10 +46,10 @@ * matrix is returned unchanged * @ADG_TRANSFORM_BEFORE: apply the transformation before the * matrix: the result is equivalent to - * cairo_matrix_multiply(matrix, matrix, transformation) + * cairo_matrix_multiply(matrix, transformation, matrix) * @ADG_TRANSFORM_AFTER: apply the transformation after the * matrix: the result is equivalent to - * cairo_matrix_multiply(matrix, transformation, matrix) + * cairo_matrix_multiply(matrix, matrix, transformation) * @ADG_TRANSFORM_BEFORE_NORMALIZED: same as %ADG_TRANSFORM_BEFORE but * normalizing the transformation with * adg_matrix_normalize() before applying it diff --git a/adg/adg-matrix.c b/adg/adg-matrix.c index 99d3f3dc..17676228 100644 --- a/adg/adg-matrix.c +++ b/adg/adg-matrix.c @@ -277,20 +277,22 @@ adg_matrix_transform(AdgMatrix *matrix, const AdgMatrix *transformation, case ADG_TRANSFORM_NONE: break; case ADG_TRANSFORM_BEFORE: - cairo_matrix_multiply(matrix, matrix, transformation); + cairo_matrix_multiply(matrix, transformation, matrix); break; case ADG_TRANSFORM_AFTER: - cairo_matrix_multiply(matrix, transformation, matrix); + cairo_matrix_multiply(matrix, matrix, transformation); break; case ADG_TRANSFORM_BEFORE_NORMALIZED: adg_matrix_copy(&tmp_matrix, transformation); adg_matrix_normalize(&tmp_matrix); - cairo_matrix_multiply(matrix, matrix, &tmp_matrix); + cairo_matrix_multiply(matrix, &tmp_matrix, matrix); break; case ADG_TRANSFORM_AFTER_NORMALIZED: adg_matrix_copy(&tmp_matrix, transformation); adg_matrix_normalize(&tmp_matrix); - cairo_matrix_multiply(matrix, &tmp_matrix, matrix); + cairo_matrix_multiply(matrix, matrix, &tmp_matrix); break; + default: + g_assert_not_reached(); } } -- 2.11.4.GIT