如何使用cairomm重复模式?

时间:2015-12-11 19:10:34

标签: c++ background repeat cairo gtkmm

我需要使用Gtk::DrawingArea在我的cairomm中重复一个模式图片。

我没有运气就尝试使用Cairo::ImageSource

1 个答案:

答案 0 :(得分:2)

使用Cairo::Pattern类:

很容易
bool MyDrawingArea::on_draw(const Cairo::RefPtr<Cairo::Context> &cr) {
    Cairo::RefPtr<Cairo::Pattern> image = Cairo::SurfacePattern::create(Cairo::ImageSurface::create_from_png("my_bg_pattern.png"));
    image_->set_extend(Cairo::EXTEND_REPEAT); // THIS IS THE IMPORTANT BIT!
    cr->set_source(image);
    cr->paint();
}