我需要使用Gtk::DrawingArea
在我的cairomm
中重复一个模式图片。
我没有运气就尝试使用Cairo::ImageSource
。
答案 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();
}