74 lines
2.4 KiB
Diff
74 lines
2.4 KiB
Diff
|
From f34b87f6d76cbea93acd4a8c73c8c6a6b412a302 Mon Sep 17 00:00:00 2001
|
||
|
From: Chris Wilson <chris@chris-wilson.co.uk>
|
||
|
Date: Mon, 10 Sep 2012 14:09:18 +0000
|
||
|
Subject: path: Convert from backend coordinates back into user coordinates
|
||
|
|
||
|
Fixes regression from commit 83bfd85a1378e61b8bdc3f554f5e07900311f61f
|
||
|
Author: Chris Wilson <chris@chris-wilson.co.uk>
|
||
|
Date: Fri Apr 23 19:45:26 2010 +0100
|
||
|
|
||
|
Implement cairo_backend_t
|
||
|
|
||
|
As there exists no public API to perform the operation we needed, and we
|
||
|
failed to create one, the constructed path failed to correctly remove
|
||
|
the device offset.
|
||
|
|
||
|
Fixes copy-path under device translation.
|
||
|
|
||
|
Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=54732
|
||
|
Reported-by: Benjamin Berg <benjamin@sipsolutions.net>
|
||
|
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
|
||
|
---
|
||
|
diff --git a/src/cairo-path.c b/src/cairo-path.c
|
||
|
index 5c48373..43cd175 100644
|
||
|
--- a/src/cairo-path.c
|
||
|
+++ b/src/cairo-path.c
|
||
|
@@ -37,6 +37,7 @@
|
||
|
#include "cairoint.h"
|
||
|
|
||
|
#include "cairo-private.h"
|
||
|
+#include "cairo-backend-private.h"
|
||
|
#include "cairo-error-private.h"
|
||
|
#include "cairo-path-private.h"
|
||
|
#include "cairo-path-fixed-private.h"
|
||
|
@@ -152,7 +153,7 @@ _cpp_move_to (void *closure,
|
||
|
x = _cairo_fixed_to_double (point->x);
|
||
|
y = _cairo_fixed_to_double (point->y);
|
||
|
|
||
|
- cairo_device_to_user (cpp->cr, &x, &y);
|
||
|
+ _cairo_backend_to_user (cpp->cr, &x, &y);
|
||
|
|
||
|
data->header.type = CAIRO_PATH_MOVE_TO;
|
||
|
data->header.length = 2;
|
||
|
@@ -177,7 +178,7 @@ _cpp_line_to (void *closure,
|
||
|
x = _cairo_fixed_to_double (point->x);
|
||
|
y = _cairo_fixed_to_double (point->y);
|
||
|
|
||
|
- cairo_device_to_user (cpp->cr, &x, &y);
|
||
|
+ _cairo_backend_to_user (cpp->cr, &x, &y);
|
||
|
|
||
|
data->header.type = CAIRO_PATH_LINE_TO;
|
||
|
data->header.length = 2;
|
||
|
@@ -205,15 +206,15 @@ _cpp_curve_to (void *closure,
|
||
|
|
||
|
x1 = _cairo_fixed_to_double (p1->x);
|
||
|
y1 = _cairo_fixed_to_double (p1->y);
|
||
|
- cairo_device_to_user (cpp->cr, &x1, &y1);
|
||
|
+ _cairo_backend_to_user (cpp->cr, &x1, &y1);
|
||
|
|
||
|
x2 = _cairo_fixed_to_double (p2->x);
|
||
|
y2 = _cairo_fixed_to_double (p2->y);
|
||
|
- cairo_device_to_user (cpp->cr, &x2, &y2);
|
||
|
+ _cairo_backend_to_user (cpp->cr, &x2, &y2);
|
||
|
|
||
|
x3 = _cairo_fixed_to_double (p3->x);
|
||
|
y3 = _cairo_fixed_to_double (p3->y);
|
||
|
- cairo_device_to_user (cpp->cr, &x3, &y3);
|
||
|
+ _cairo_backend_to_user (cpp->cr, &x3, &y3);
|
||
|
|
||
|
data->header.type = CAIRO_PATH_CURVE_TO;
|
||
|
data->header.length = 4;
|
||
|
--
|
||
|
cgit v0.9.0.2-2-gbebe
|
||
|
|