2#ifndef EXTENSION_INTERNAL_CAIRO_RENDERER_H_SEEN
3#define EXTENSION_INTERNAL_CAIRO_RENDERER_H_SEEN
36class CairoRenderContext;
72 double vp_height,
double *x,
double *y,
double *
width,
double *
height);
bool renderPage(CairoRenderContext *ctx, SPDocument *doc, SPPage const *page, bool stretch_to_fit)
void renderItem(CairoRenderContext *ctx, SPItem const *item, SPItem const *origin=nullptr, SPPage const *page=nullptr)
Traverses the object tree and invokes the render methods.
void applyMask(CairoRenderContext *ctx, SPMask const *mask)
bool renderPages(CairoRenderContext *ctx, SPDocument *doc, bool stretch_to_fit)
Handle multiple pages, pushing each out to cairo as needed using renderItem()
void renderHatchPath(CairoRenderContext *ctx, SPHatchPath const &hatchPath, unsigned key)
CairoRenderContext createContext()
void applyClipPath(CairoRenderContext *ctx, SPClipPath const *cp)
static bool _shouldRasterize(CairoRenderContext *ctx, SPItem const *item)
Decide whether the given item should be rendered as a bitmap.
bool setupDocument(CairoRenderContext *ctx, SPDocument *doc, SPItem const *base=nullptr)
Initializes the CairoRenderContext according to the specified SPDocument.
static void _doRender(SPItem const *item, CairoRenderContext *ctx, SPItem const *origin=nullptr, SPPage const *page=nullptr)
Render a single item in a fully set up context.
Typed SVG document implementation.
Base class for visual SVG elements.
Inkscape::Extension::Extension: Frontend to certain, possibly pluggable, actions.
void calculatePreserveAspectRatio(unsigned int aspect_align, unsigned int aspect_clip, double vp_width, double vp_height, double *x, double *y, double *width, double *height)
Helper class to stream background task notifications as a series of messages.
static cairo_user_data_key_t key