We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 00ef270 commit 84ea912Copy full SHA for 84ea912
Helpers/CairoHelper.cpp
@@ -45,6 +45,17 @@ CairoHelper::applyScale(cairo_t *cr,
45
cairo_scale(cr, scale.x, scale.y);
46
}
47
48
+void
49
+CairoHelper::applyScale(cairo_t *cr,
50
+ const _XY &scale,
51
+ const _XY &origin)
52
+{
53
+ if (!cr || (scale.x == 0. && scale.y == 0.)) { return; }
54
+ cairo_translate(cr, origin.x, origin.y);
55
+ cairo_scale(cr, scale.x, scale.y);
56
+ cairo_translate(cr, -origin.x, -origin.y);
57
+}
58
+
59
void
60
CairoHelper::applySkew(cairo_t *cr,
61
const _XY &skew,
@@ -83,7 +94,7 @@ CairoHelper::applyTransform(cairo_t *cr,
83
94
if (!cr) { return; }
84
95
if (transform.flip) { applyFlip(cr, transform.height); }
85
96
if (transform.position) { applyPosition(cr, transform.origin); }
86
- applyScale(cr, transform.scale);
97
+ applyScale(cr, transform.scale, transform.origin);
87
98
applySkew(cr, transform.skew, transform.origin);
88
99
applyRotate(cr, transform.rotate, transform.origin);
89
100
Helpers/CairoHelper.h
@@ -49,6 +49,9 @@ class CairoHelper
/** @brief apply scale */
static void applyScale(cairo_t *cr,
const _XY &scale);
+ static void applyScale(cairo_t *cr,
+ const _XY &origin);
/** @brief apply skew */
static void applySkew(cairo_t *cr,
0 commit comments