diff options
author | Anton Danilkin <afdw@yandex.ru> | 2021-04-24 14:55:19 +0200 |
---|---|---|
committer | Anton Danilkin <afdw@yandex.ru> | 2021-04-25 13:35:41 +0200 |
commit | 8d0274413667039ee46a26a4b8abe1ae2bbd1c28 (patch) | |
tree | 8db082cf03bb6422ff3b10d6602ca1c7dc28f6d3 /src/cairo-gstate.c | |
parent | de2a71b230e0202292e5deae7e19a90139165a49 (diff) | |
download | cairo-8d0274413667039ee46a26a4b8abe1ae2bbd1c28.tar.gz |
Replace an outdated (after f0e2cd44) comment with clarification in _cairo_gstate_copy_transformed_pattern
Diffstat (limited to 'src/cairo-gstate.c')
-rw-r--r-- | src/cairo-gstate.c | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/src/cairo-gstate.c b/src/cairo-gstate.c index ff0cb8be7..a5f6fc72f 100644 --- a/src/cairo-gstate.c +++ b/src/cairo-gstate.c @@ -937,9 +937,22 @@ _cairo_gstate_copy_transformed_pattern (cairo_gstate_t *gstate, const cairo_pattern_t *original, const cairo_matrix_t *ctm_inverse) { + /* + * What calculations below do can be described in pseudo-code (so using nonexistent fields) as (using column vectors): + * pattern->matrix = surface->device_transform * + * pattern->matrix * + * ctm_inverse * + * gstate->target->device_transform_inverse + * + * The inverse of which is: + * pattern->matrix_inverse = gstate->target->device_transform * + * ctm * + * pattern->matrix_inverse * + * surface->device_transform_inverse + */ + _cairo_gstate_copy_pattern (pattern, original); - /* apply device_transform first so that it is transformed by ctm_inverse */ if (original->type == CAIRO_PATTERN_TYPE_SURFACE) { cairo_surface_pattern_t *surface_pattern; cairo_surface_t *surface; |