void Renderer::paintBackground(const CairoLayer& layer, const Style* canvasStyle) const { layer.cr->set_source_color(canvasStyle->fill_color); const string& bg = canvasStyle->fill_image.str(); if (bg.size() > 0) { Cairo::RefPtr<Cairo::ImageSurface> image = Cairo::ImageSurface::create_from_png(bg); Cairo::RefPtr<Cairo::SurfacePattern> pattern = Cairo::SurfacePattern::create(image); pattern->set_extend(Cairo::Extend::EXTEND_REPEAT); layer.cr->set_source(pattern); } layer.cr->paint(); }