首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将使用cairo_t实现的代码更改为Cairo::RefPtr<Cairo::Context>

将使用cairo_t实现的代码更改为Cairo::RefPtr<Cairo::Context>
EN

Stack Overflow用户
提问于 2021-04-12 23:10:17
回答 1查看 44关注 0票数 0

我有一些代码需要用Cairo::RefPtrCairo::Context...It重新实现,因为我找不到使用模式的好例子,而我们有Cairo::RefPtrCairo::Context而不是cairo_t。

代码语言:javascript
复制
Cairo::RefPtr<Cairo::Surface> surface =
    Cairo::ImageSurface::create(Cairo::FORMAT_ARGB32, width, height);

Cairo::RefPtr<Cairo::Context> cr = Cairo::Context::create(surface);


cairo_pattern_t *cp = cairo_pattern_create_radial(x_off, y_off, 0, x_off, y_off, cent_point_radius);
cairo_pattern_add_color_stop_rgba(cp, 0.0, 0.7, 0.7, 0.7, 0.8);
cairo_pattern_add_color_stop_rgba(cp, 1.0, 0.1, 0.1, 0.1, 0.8);
cairo_set_source(cr, cp);

如何将"cp“更改为对cr->set_.cr()可识别的内容以前是一个cairo_t,但后来我不得不将其更改为Cairo::RefPtrCairo::Context

诚挚的问候

EN

回答 1

Stack Overflow用户

发布于 2021-06-09 20:55:08

既然你已经决定用C++的方式来做了,为什么不全力以赴呢?

代码语言:javascript
复制
    // Create image surface.
    Cairo::RefPtr <Cairo::Surface> refSurface =
      Cairo::ImageSurface::create(Cairo::FORMAT_ARGB32,
                                  nWidth,
                                  nHeight);

    // Create Cairo context for the image surface.
    Cairo::RefPtr <Cairo::Context> refContext =
      Cairo::Context::create(refSurface);

    // Create a radial gradient (pattern)
    Cairo::RefPtr <Cairo::RadialGradient> refPattern =
      Cairo::RadialGradient::create(x_off,
                                    y_off,
                                    0,
                                    x_off,
                                    y_off,
                                    cent_point_radius);

    // Add color stops to the pattern
    refPattern->add_color_stop_rgba(0.0,
                                    0.7,
                                    0.7,
                                    0.7,
                                    0.8);
    refPattern->add_color_stop_rgba(1.0,
                                    0.1,
                                    0.1,
                                    0.1,
                                    0.8);

    // Set the pattern as the source for the context.
    refContext->set_source(refPattern);

    // Add a closed path and fill...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67060909

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档