Lines Matching refs:ctx

137 CairoRenderer::destroyContext(CairoRenderContext *ctx)
139 delete ctx;
149 static void sp_item_invoke_render(SPItem *item, CairoRenderContext *ctx);
150 static void sp_group_render(SPGroup *group, CairoRenderContext *ctx);
151 static void sp_use_render(SPUse *use, CairoRenderContext *ctx);
152 static void sp_shape_render(SPShape *shape, CairoRenderContext *ctx);
153 static void sp_text_render(SPText *text, CairoRenderContext *ctx);
154 static void sp_flowtext_render(SPFlowtext *flowtext, CairoRenderContext *ctx);
155 static void sp_image_render(SPImage *image, CairoRenderContext *ctx);
156 static void sp_symbol_render(SPSymbol *symbol, CairoRenderContext *ctx);
157 static void sp_asbitmap_render(SPItem *item, CairoRenderContext *ctx);
159 static void sp_shape_render_invoke_marker_rendering(SPMarker* marker, Geom::Affine tr, SPStyle* style, CairoRenderContext *ctx)
176 ctx->getRenderer()->renderItem (ctx, marker_item);
182 static void sp_shape_render(SPShape *shape, CairoRenderContext *ctx)
200 ctx->renderPathVector(pathv, style, pbox, CairoRenderContext::STROKE_OVER_FILL);
203 ctx->renderPathVector(pathv, style, pbox, CairoRenderContext::FILL_OVER_STROKE);
206 ctx->renderPathVector(pathv, style, pbox, CairoRenderContext::STROKE_ONLY);
209 ctx->renderPathVector(pathv, style, pbox, CairoRenderContext::FILL_ONLY);
224 sp_shape_render_invoke_marker_rendering(marker, tr, style, ctx);
242 sp_shape_render_invoke_marker_rendering(marker, tr, style, ctx);
260 sp_shape_render_invoke_marker_rendering(marker, tr, style, ctx);
275 sp_shape_render_invoke_marker_rendering(marker, tr, style, ctx);
300 sp_shape_render_invoke_marker_rendering(marker, tr, style, ctx);
306 ctx->renderPathVector(pathv, style, pbox, CairoRenderContext::STROKE_OVER_FILL);
309 ctx->renderPathVector(pathv, style, pbox, CairoRenderContext::FILL_OVER_STROKE);
312 ctx->renderPathVector(pathv, style, pbox, CairoRenderContext::STROKE_ONLY);
315 ctx->renderPathVector(pathv, style, pbox, CairoRenderContext::FILL_ONLY);
320 static void sp_group_render(SPGroup *group, CairoRenderContext *ctx)
322 CairoRenderer *renderer = ctx->getRenderer();
329 renderer->renderItem(ctx, item);
334 static void sp_use_render(SPUse *use, CairoRenderContext *ctx)
337 CairoRenderer *renderer = ctx->getRenderer();
341 ctx->pushState();
342 ctx->transform(tp);
347 renderer->renderItem(ctx, use->child);
351 ctx->popState();
355 static void sp_text_render(SPText *text, CairoRenderContext *ctx)
357 text->layout.showGlyphs(ctx);
360 static void sp_flowtext_render(SPFlowtext *flowtext, CairoRenderContext *ctx)
362 flowtext->layout.showGlyphs(ctx);
365 static void sp_image_render(SPImage *image, CairoRenderContext *ctx)
387 if (image->aspect_clip == SP_ASPECT_SLICE && !ctx->getCurrentState()->has_overflow) {
388 ctx->addClippingRect(image->x.computed, image->y.computed, image->width.computed, image->height.computed);
395 ctx->renderImage(image->pixbuf, t, image->style);
398 static void sp_symbol_render(SPSymbol *symbol, CairoRenderContext *ctx)
405 ctx->pushState();
406 ctx->transform(symbol->c2p);
431 ctx->transform(vb2user);
434 sp_group_render(symbol, ctx);
435 ctx->popState();
438 static void sp_root_render(SPRoot *root, CairoRenderContext *ctx)
440 CairoRenderer *renderer = ctx->getRenderer();
442 if (!ctx->getCurrentState()->has_overflow && root->parent)
443 ctx->addClippingRect(root->x.computed, root->y.computed, root->width.computed, root->height.computed);
445 ctx->pushState();
446 renderer->setStateForItem(ctx, root);
447 ctx->transform(root->c2p);
448 sp_group_render(root, ctx);
449 ctx->popState();
456 static void sp_asbitmap_render(SPItem *item, CairoRenderContext *ctx)
465 res = ctx->getBitmapResolution();
514 // ctx matrix already includes item transformation. We must substract.
531 ctx->renderImage(pb.get(), t, item->style);
537 static void sp_item_invoke_render(SPItem *item, CairoRenderContext *ctx)
545 if((ctx->getFilterToBitmap() == TRUE) && (style->filter.set != 0)) {
546 return sp_asbitmap_render(item, ctx);
552 sp_root_render(root, ctx);
557 sp_symbol_render(symbol, ctx);
562 sp_group_render(group, ctx);
567 sp_shape_render(shape, ctx);
572 sp_use_render(use, ctx);
578 sp_text_render(text, ctx);
583 sp_flowtext_render(flowtext, ctx);
588 sp_image_render(image, ctx);
600 CairoRenderer::setStateForItem(CairoRenderContext *ctx, SPItem const *item)
603 ctx->setStateForStyle(style);
605 CairoRenderState *state = ctx->getCurrentState();
622 void CairoRenderer::renderItem(CairoRenderContext *ctx, SPItem *item)
624 ctx->pushState();
625 setStateForItem(ctx, item);
627 CairoRenderState *state = ctx->getCurrentState();
633 ctx->pushLayer();
635 ctx->transform(item->transform);
636 sp_item_invoke_render(item, ctx);
639 ctx->popLayer(); // This applies clipping/masking
641 ctx->popState();
644 void CairoRenderer::renderHatchPath(CairoRenderContext *ctx, SPHatchPath const &hatchPath, unsigned key) {
645 ctx->pushState();
646 ctx->setStateForStyle(hatchPath.style);
647 ctx->transform(Geom::Translate(hatchPath.offset.computed, 0));
652 ctx->renderPathVector(pathv, hatchPath.style, Geom::OptRect());
656 ctx->popState();
660 CairoRenderer::setupDocument(CairoRenderContext *ctx, SPDocument *doc, bool pageBoundingBox, float bleedmargin_px, SPItem *base)
664 g_assert( ctx != NULL );
683 if (ctx->_vector_based_target) {
688 ctx->_width = d.width();
689 ctx->_height = d.height();
691 TRACE(("setupDocument: %f x %f\n", ctx->_width, ctx->_height));
693 bool ret = ctx->setupSurface(ctx->_width, ctx->_height);
699 ctx->transform(tp);
702 if (ctx->_vector_based_target)
706 Geom::Affine tp(Geom::Translate(-d.left() * (ctx->_vector_based_target ? Inkscape::Util::Quantity::convert(1, "pt", "px") : 1.0),
707 (d.bottom() - high) * (ctx->_vector_based_target ? Inkscape::Util::Quantity::convert(1, "pt", "px") : 1.0)));
708 ctx->transform(tp);
719 CairoRenderer::applyClipPath(CairoRenderContext *ctx, SPClipPath const *cp)
721 g_assert( ctx != NULL && ctx->_is_valid );
726 CairoRenderContext::CairoRenderMode saved_mode = ctx->getRenderMode();
727 ctx->setRenderMode(CairoRenderContext::RENDER_MODE_CLIP);
737 t *= ctx->getCurrentState()->transform;
738 saved_ctm = ctx->getTransform();
739 ctx->setTransform(t);
749 Geom::Affine tempmat = item->transform * ctx->getCurrentState()->item_transform;
752 ctx->pushState();
753 ctx->transform(tempmat);
754 setStateForItem(ctx, item);
756 sp_item_invoke_render(const_cast<SPItem *>(item), ctx);
757 ctx->popState();
763 if (ctx->getClipMode() == CairoRenderContext::CLIP_MODE_PATH
765 cairo_clip(ctx->_cr);
768 ctx->setTransform(saved_ctm);
770 ctx->setRenderMode(saved_mode);
775 CairoRenderer::applyMask(CairoRenderContext *ctx, SPMask const *mask)
777 g_assert( ctx != NULL && ctx->_is_valid );
790 t *= ctx->getCurrentState()->transform;
791 ctx->setTransform(t);
797 // ctx->addClippingRect(mask_bbox.x0, mask_bbox.y0, mask_bbox.x1 - mask_bbox.x0, mask_bbox.y1 - mask_bbox.y0);
799 ctx->pushState();
807 renderItem(ctx, const_cast<SPItem*>(item));
812 ctx->popState();