index 1d103fed27cadb980ebbdd3c54c41b8a066c153b..f13e26abb04a1a7c146dfc5132f456f5a51358b3 100644 (file)
// create initial render state
CairoRenderState *state = new_context->_createState();
- nr_matrix_set_identity(&state->transform);
+ state->transform.set_identity();
new_context->_state_stack = g_slist_prepend(new_context->_state_stack, state);
new_context->_state = state;
static void sp_use_render(SPItem *item, CairoRenderContext *ctx)
{
bool translated = false;
- NRMatrix tp;
SPUse *use = SP_USE(item);
CairoRenderer *renderer = ctx->getRenderer();
if ((use->x._set && use->x.computed != 0) || (use->y._set && use->y.computed != 0)) {
- nr_matrix_set_translate(&tp, use->x.computed, use->y.computed);
+ NR::Matrix tp(NR::translate(use->x.computed, use->y.computed));
ctx->pushState();
ctx->transform(&tp);
translated = true;
static void sp_image_render(SPItem *item, CairoRenderContext *ctx)
{
SPImage *image;
- NRMatrix tp, s, t;
guchar *px;
int w, h, rs;
ctx->addClippingRect(image->x.computed, image->y.computed, image->width.computed, image->height.computed);
}
- nr_matrix_set_translate (&tp, x, y);
- nr_matrix_set_scale (&s, width / (double)w, height / (double)h);
- nr_matrix_multiply (&t, &s, &tp);
+ NR::translate tp(x, y);
+ NR::scale s(width / (double)w, height / (double)h);
+ NR::Matrix t(s * tp);
ctx->renderImage (px, w, h, rs, &t, SP_OBJECT_STYLE (item));
}
// apply viewbox if set
if (0 /*symbol->viewBox_set*/) {
- NRMatrix vb2user;
+ NR::Matrix vb2user;
double x, y, width, height;
double view_width, view_height;
x = 0.0;
&x, &y,&width, &height);
// [itemTransform *] translate(x, y) * scale(w/vw, h/vh) * translate(-vx, -vy);
- nr_matrix_set_identity(&vb2user);
+ vb2user.set_identity();
vb2user[0] = width / view_width;
vb2user[3] = height / view_height;
vb2user[4] = x - symbol->viewBox.x0 * vb2user[0];
ctx->pushState();
renderer->setStateForItem(ctx, item);
- ctx->transform(root->c2p);
+ ctx->transform(&root->c2p);
sp_group_render(item, ctx);
ctx->popState();
}
unsigned int w = gdk_pixbuf_get_width(pb);
unsigned int h = gdk_pixbuf_get_height(pb);
unsigned int rs = gdk_pixbuf_get_rowstride(pb);
- NRMatrix matrix;
+ NR::Matrix matrix;
matrix = t;
//matrix = ((NR::Matrix)ctx->getCurrentState()->transform).inverse();
- //nr_matrix_set_identity(&matrix);
+ //matrix.set_identity();
ctx->renderImage (px, w, h, rs, &matrix, SP_OBJECT_STYLE (item));
/*
state->merge_opacity = FALSE;
ctx->pushLayer();
}
- ctx->transform(item->transform);
+ ctx->transform(&item->transform);
sp_item_invoke_render(item, ctx);
if (state->need_layer)
CairoRenderContext::CairoRenderMode saved_mode = ctx->getRenderMode();
ctx->setRenderMode(CairoRenderContext::RENDER_MODE_CLIP);
- NRMatrix saved_ctm;
+ NR::Matrix saved_ctm;
if (cp->clipPathUnits == SP_CONTENT_UNITS_OBJECTBOUNDINGBOX) {
- NRMatrix t;
//SP_PRINT_DRECT("clipd", cp->display->bbox);
NRRect clip_bbox(cp->display->bbox);
- nr_matrix_set_scale(&t, clip_bbox.x1 - clip_bbox.x0, clip_bbox.y1 - clip_bbox.y0);
- t.c[4] = clip_bbox.x0;
- t.c[5] = clip_bbox.y0;
- nr_matrix_multiply(&t, &t, &ctx->getCurrentState()->transform);
+ NR::Matrix t(NR::scale(clip_bbox.x1 - clip_bbox.x0, clip_bbox.y1 - clip_bbox.y0));
+ t[4] = clip_bbox.x0;
+ t[5] = clip_bbox.y0;
+ t *= ctx->getCurrentState()->transform;
ctx->getTransform(&saved_ctm);
ctx->setTransform(&t);
}
NRRect mask_bbox(mask->display->bbox);
// TODO: should the bbox be transformed if maskUnits != userSpaceOnUse ?
if (mask->maskContentUnits == SP_CONTENT_UNITS_OBJECTBOUNDINGBOX) {
- NRMatrix t;
- nr_matrix_set_scale(&t, mask_bbox.x1 - mask_bbox.x0, mask_bbox.y1 - mask_bbox.y0);
- t.c[4] = mask_bbox.x0;
- t.c[5] = mask_bbox.y0;
- nr_matrix_multiply(&t, &t, &ctx->getCurrentState()->transform);
+ NR::Matrix t(NR::scale(mask_bbox.x1 - mask_bbox.x0, mask_bbox.y1 - mask_bbox.y0));
+ t[4] = mask_bbox.x0;
+ t[5] = mask_bbox.y0;
+ t *= ctx->getCurrentState()->transform;
ctx->setTransform(&t);
}