static PyObject * pycairo_get_matrix (PycairoContext *o) { cairo_matrix_t matrix; cairo_get_matrix (o->ctx, &matrix); return PycairoMatrix_FromMatrix (&matrix); }
static PyObject * wrap_calculate_correction_matrix_masked(PyObject *self, PyObject *args) { PyObject *result; PycairoSurface *py_surface; PycairoSurface *py_mask; PycairoMatrix *py_matrix; cairo_matrix_t *correction_matrix; float mm_x, mm_y; gdouble covered; if (!PyArg_ParseTuple(args, "O!O!O!ff", &PycairoImageSurface_Type, &py_surface, &PycairoImageSurface_Type, &py_mask, &PycairoMatrix_Type, &py_matrix, &mm_x, &mm_y)) return NULL; correction_matrix = calculate_correction_matrix_masked(py_surface->surface, py_mask->surface, &py_matrix->matrix, mm_x, mm_y, &covered); if (correction_matrix) { result = PycairoMatrix_FromMatrix(correction_matrix); g_free(correction_matrix); return Py_BuildValue("Nd", result, covered); } else { PyErr_SetString(PyExc_AssertionError, "Could not calculate the corrected matrix!"); return NULL; } }
static PyObject * scaled_font_get_scale_matrix (PycairoScaledFont *o) { cairo_matrix_t matrix; cairo_scaled_font_get_scale_matrix (o->scaled_font, &matrix); return PycairoMatrix_FromMatrix (&matrix); }
static PyObject * wrap_calculate_matrix(PyObject *self, PyObject *args) { PyObject *result; PycairoSurface *py_surface; PycairoMatrix *py_matrix; cairo_matrix_t *matrix; float mm_x, mm_y, mm_width, mm_height; if (!PyArg_ParseTuple(args, "O!O!ffff", &PycairoImageSurface_Type, &py_surface, &PycairoMatrix_Type, &py_matrix, &mm_x, &mm_y, &mm_width, &mm_height)) return NULL; matrix = calculate_matrix(py_surface->surface, &py_matrix->matrix, mm_x, mm_y, mm_width, mm_height); if (matrix) { result = PycairoMatrix_FromMatrix(matrix); g_free(matrix); return result; } else { PyErr_SetString(PyExc_AssertionError, "Could not calculate the matrix!"); return NULL; } }
static PyObject * matrix_multiply (PycairoMatrix *o, PycairoMatrix *o2) { cairo_matrix_t result; cairo_matrix_multiply (&result, &o->matrix, &o2->matrix); return PycairoMatrix_FromMatrix (&result); }
static PyObject * pattern_get_matrix (PycairoPattern *o) { cairo_matrix_t matrix; cairo_pattern_get_matrix (o->pattern, &matrix); return PycairoMatrix_FromMatrix (&matrix); }
static PyObject * matrix_init_rotate (PyTypeObject *type, PyObject *args) { cairo_matrix_t matrix; double radians; if (!PyArg_ParseTuple(args, "d:Matrix.init_rotate", &radians)) return NULL; cairo_matrix_init_rotate (&matrix, radians); return PycairoMatrix_FromMatrix (&matrix); }
/* cairo_matrix_multiply */ static PyObject * matrix_multiply (PycairoMatrix *o, PyObject *args) { PycairoMatrix *mx2; if (!PyArg_ParseTuple(args, "O!:Matrix.multiply", &PycairoMatrix_Type, &mx2)) return NULL; cairo_matrix_t result; cairo_matrix_multiply (&result, &o->matrix, &mx2->matrix); return PycairoMatrix_FromMatrix (&result); }
static PyObject * matrix_new (PyTypeObject *type, PyObject *args, PyObject *kwds) { static char *kwlist[] = { "xx", "yx", "xy", "yy", "x0", "y0", NULL }; double xx = 1.0, yx = 0.0, xy = 0.0, yy = 1.0, x0 = 0.0, y0 = 0.0; if (!PyArg_ParseTupleAndKeywords(args, kwds, "|dddddd:Matrix.__init__", kwlist, &xx, &yx, &xy, &yy, &x0, &y0)) return NULL; cairo_matrix_t mx; cairo_matrix_init (&mx, xx, yx, xy, yy, x0, y0); return PycairoMatrix_FromMatrix (&mx); }
static PyObject * _cairo_matrix_from_gvalue(const GValue *value) { return PycairoMatrix_FromMatrix((cairo_matrix_t *) g_value_get_boxed(value)); }