Exemplo n.º 1
0
void fallbackScale(uiDrawMatrix *m, double xCenter, double yCenter, double x, double y)
{
	uiDrawMatrix m2;

	setIdentity(&m2);
	m2.M11 = x;
	m2.M22 = y;
	scaleCenter(xCenter, yCenter, &x, &y);
	m2.M31 = x;
	m2.M32 = y;
	fallbackMultiply(m, &m2);
}
Exemplo n.º 2
0
void uiDrawMatrixScale(uiDrawMatrix *m, double xCenter, double yCenter, double x, double y)
{
	cairo_matrix_t c;
	double xt, yt;

	m2c(m, &c);
	// TODO explain why the translation must come first
	xt = x;
	yt = y;
	scaleCenter(xCenter, yCenter, &xt, &yt);
	cairo_matrix_translate(&c, xt, yt);
	cairo_matrix_scale(&c, x, y);
	// TODO undo the translation?
	c2m(&c, m);
}