/*
7 * Tomasz Boczkowski <penginsbacon@gmail.com>
9 * Copyright (C) 2014 Authors
10 * Released under GNU GPL v2+, read the file
'COPYING' for more information.
13#ifndef INKSCAPE_DISPLAY_DRAWING_PATTERN_H
14#define INKSCAPE_DISPLAY_DRAWING_PATTERN_H
17#include <cairomm/surface.h>
37 int tag()
const override {
return tag_of<
decltype(*this)>; }
88 Cairo::RefPtr<Cairo::ImageSurface>
surface;
constexpr int tag_of
Convenience function to retrieve the tag (class id) of a given type.
3x3 matrix representing an affine transformation.
Axis aligned, non-empty, generic rectangle.
Two-dimensional point with integer coordinates.
Axis-aligned rectangle that can be empty.
Axis aligned, non-empty rectangle.
Drawing & drawing() const
Drawing tree node used for rendering paints.
void _dropPatternCache() override
void setTileRect(Geom::Rect const &)
Set the tile rect position and dimensions in content coordinate system.
void setPatternToUserTransform(Geom::Affine const &)
Set the transformation from pattern to user coordinate systems.
std::unique_ptr< Geom::Affine > _pattern_to_user
std::vector< Surface > surfaces
void setOverflow(Geom::Affine const &initial_transform, int steps, Geom::Affine const &step_transform)
Turn on overflow rendering.
~DrawingPattern() override=default
unsigned _updateItem(Geom::IntRect const &area, UpdateContext const &ctx, unsigned flags, unsigned reset) override
Geom::Affine _overflow_step_transform
Geom::Affine _overflow_initial_transform
cairo_pattern_t * renderPattern(RenderContext &rc, Geom::IntRect const &area, float opacity, int device_scale) const
Render the pattern.
Geom::IntPoint _pattern_resolution
int tag() const override
Unlink this node and its subtree from the rendering tree and destroy.
Group belonging to an SVG drawing element.
_cairo_pattern cairo_pattern_t
Helper class to stream background task notifications as a series of messages.
Cairo::RefPtr< Cairo::ImageSurface > surface