/*
7 * Krzysztof KosiĆski <tweenk.pl@gmail.com>
9 * Copyright (C) 2011 Authors
10 * Released under GNU GPL v2+, read the file
'COPYING' for more information.
13#ifndef INKSCAPE_DISPLAY_DRAWING_SURFACE_H
14#define INKSCAPE_DISPLAY_DRAWING_SURFACE_H
3x3 affine transformation matrix.
Cairo::RefPtr< Cairo::ImageSurface > surface
3x3 matrix representing an affine transformation.
Axis-aligned generic rectangle that can be empty.
Axis aligned, non-empty, generic rectangle.
static CRect from_xywh(Coord x, Coord y, Coord w, Coord h)
Create rectangle from origin and dimensions.
static CRect infinite()
Create infinite rectangle.
Two-dimensional point with integer coordinates.
Two-dimensional point that doubles as a vector.
Axis aligned, non-empty rectangle.
void markDirty(Geom::IntRect const &area=Geom::IntRect::infinite())
void prepare()
Transforms the cache according to the transform specified during the update phase.
void paintFromCache(DrawingContext &dc, Geom::OptIntRect &area, bool is_filter)
Paints the clean area from cache and modifies the area parameter to the bounds of the region that mus...
void scheduleTransform(Geom::IntRect const &new_area, Geom::Affine const &trans)
Call this during the update phase to schedule a transformation of the cache.
Geom::Affine _pending_transform
void _dumpCache(Geom::OptIntRect const &area)
void markClean(Geom::IntRect const &area=Geom::IntRect::infinite())
cairo_region_t * _clean_region
Geom::IntRect _pending_area
Minimal wrapper over Cairo.
Drawing surface that remembers its origin.
virtual ~DrawingSurface()
void dropContents()
Drop contents of the surface and release the underlying Cairo object.
Geom::IntRect pixelArea() const
cairo_t * createRawContext()
Create a drawing context for this surface.
Geom::Affine drawingTransform() const
Get the transformation applied to the drawing context on construction.
Geom::Point origin() const
Geom::Rect area() const
Get the logical extents of the surface.
Geom::Point dimensions() const
Get the logical width and weight of the surface as a point.
Geom::IntPoint pixels() const
Get the pixel dimensions of the surface.
Geom::Scale scale() const
cairo_surface_t * _surface
struct _cairo_surface cairo_surface_t
struct _cairo_region cairo_region_t
Helper class to stream background task notifications as a series of messages.