diff options
author | Keith Packard <keithp@keithp.com> | 2016-05-27 10:55:02 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2016-05-27 13:24:39 -0700 |
commit | 8b9b4387e8473810f6174519ee76818fcaae725d (patch) | |
tree | c5ac0e422364b2b52c8f541bd13d7b3371e076ca /glamor | |
parent | 0d16a0c3b95d4ac446a07d8b95e634de5cb8055f (diff) |
glamor: Adjust for drawable x/y in composite's copy optimization
Patch b64108fa305e956e4edaae9d53071ff0abee268e added a short cut that
identifies composite operations that can be performed with a simple
copy instead.
glamor_copy works in absolute coordinates, so the dx and dy values
passed in need to be converted from drawable-relative to absolute by
adding the drawable x/y values.
Signed-off-by: Keith Packard <keithp@keithp.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'glamor')
-rw-r--r-- | glamor/glamor_render.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/glamor/glamor_render.c b/glamor/glamor_render.c index 9c5cca67e..165bcede6 100644 --- a/glamor/glamor_render.c +++ b/glamor/glamor_render.c @@ -1436,6 +1436,10 @@ glamor_composite_clipped_region(CARD8 op, || (op == PictOpOver && source->format == dest->format && !PICT_FORMAT_A(source->format)))))) { + x_source += source->pDrawable->x; + y_source += source->pDrawable->y; + x_dest += dest->pDrawable->x; + y_dest += dest->pDrawable->y; glamor_copy(source->pDrawable, dest->pDrawable, NULL, box, nbox, x_source - x_dest, y_source - y_dest, FALSE, FALSE, 0, NULL); |