1
У меня есть образ образца, который мне нужно повторить в моем Gtk::DrawingArea
, используя cairomm
.Как повторить шаблон с использованием cairomm?
Я пробовал использовать Cairo::ImageSource
без везения.
У меня есть образ образца, который мне нужно повторить в моем Gtk::DrawingArea
, используя cairomm
.Как повторить шаблон с использованием cairomm?
Я пробовал использовать Cairo::ImageSource
без везения.
Это легко с помощью 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();
}
Не могли бы вы показать образец кода, который вы пытались и что не работает? Это может помочь другим пользователям понять, что можно улучшить. – Tonin
Правильно ... дело в том, что я не нашел ни одного примера в Интернете. Поэтому мне пришлось выкопать документацию по каиру, наконец, найти этот волшебный метод 'set_extend'. Никакого другого решения не найдено! –