* gjs_cairo_pattern_from_pattern: * @cx: the context * @pattern: cairo_pattern to attach to the object * * Constructs a pattern wrapper given cairo pattern. A reference to @pattern * will be taken. */
| 102 | * will be taken. |
| 103 | */ |
| 104 | JSObject* gjs_cairo_pattern_from_pattern(JSContext* cx, |
| 105 | cairo_pattern_t* pattern) { |
| 106 | g_return_val_if_fail(cx, nullptr); |
| 107 | g_return_val_if_fail(pattern, nullptr); |
| 108 | |
| 109 | switch (cairo_pattern_get_type(pattern)) { |
| 110 | case CAIRO_PATTERN_TYPE_SOLID: |
| 111 | return CairoSolidPattern::from_c_ptr(cx, pattern); |
| 112 | case CAIRO_PATTERN_TYPE_SURFACE: |
| 113 | return CairoSurfacePattern::from_c_ptr(cx, pattern); |
| 114 | case CAIRO_PATTERN_TYPE_LINEAR: |
| 115 | return CairoLinearGradient::from_c_ptr(cx, pattern); |
| 116 | case CAIRO_PATTERN_TYPE_RADIAL: |
| 117 | return CairoRadialGradient::from_c_ptr(cx, pattern); |
| 118 | case CAIRO_PATTERN_TYPE_MESH: |
| 119 | case CAIRO_PATTERN_TYPE_RASTER_SOURCE: |
| 120 | default: |
| 121 | gjs_throw(cx, |
| 122 | "failed to create pattern, unsupported pattern type %d", |
| 123 | cairo_pattern_get_type(pattern)); |
| 124 | return nullptr; |
| 125 | } |
| 126 | } |
| 127 | |
| 128 | /** |
| 129 | * CairoPattern::for_js: |
no test coverage detected