如何解决将使用 cairo_t 实现的代码更改为 Cairo::RefPtr<Cairo::Context>
我有一些代码需要用 Cairo::RefPtrCairo::Context 重新实现......这有点令人困惑,因为我找不到使用模式的好例子,而我们有 Cairo::RefPtrCairo::Context 而不是cairo_t..
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,x_off,cent_point_radius);
cairo_pattern_add_color_stop_rgba(cp,0.0,0.7,0.8);
cairo_pattern_add_color_stop_rgba(cp,1.0,0.1,0.8);
cairo_set_source(cr,cp);
我如何将“cp”更改为可识别为 cr->set_resource().....cr 曾经是 cairo_t,但后来我不得不将其更改为 Cairo::RefPtrCairo::Context
最好的问候
解决方法
既然你已经决定用 C++ 的方式来做,为什么不全力以赴呢?
// 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,x_off,cent_point_radius);
// Add color stops to the pattern
refPattern->add_color_stop_rgba(0.0,0.7,0.8);
refPattern->add_color_stop_rgba(1.0,0.1,0.8);
// Set the pattern as the source for the context.
refContext->set_source(refPattern);
// Add a closed path and fill...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。