/** * Constructs a new Pattern that can be used to draw an SVG style radial gradient. Before using * the pattern, at least two color stops must be added. * * <p>This operation requires the operating system's advanced graphics subsystem which may not be * available on some platforms. * * @param device the device on which to allocate the pattern * @param cx the x coordinate of the center of the largest (i.e., outermost) circle for the radial * gradient. The gradient will be drawn such that the 100% gradient stop is mapped to the * perimeter of this largest (i.e., outermost) circle. * @param cy the y coordinate of the center of the largest (i.e., outermost) circle * @param fx the x coordinate of the focal point for the radial gradient. The gradient will be * drawn such that the 0% gradient stop is mapped to (fx, fy). * @param fy the y coordinate of the focal point * @param r the radius of the largest (i.e., outermost) circle * @exception SWTException * <ul> * <li>ERROR_NO_GRAPHICS_LIBRARY - if advanced graphics are not available * </ul> * * @see #addStop(Color, float) * @see #addStop(Color, float, int) * @since ??? */ public Pattern(Device device, float cx, float cy, float fx, float fy, float r) { super(device); this.device.checkCairo(); handle = Cairo.cairo_pattern_create_radial(fx, fy, 0, cx, cy, r); Cairo.cairo_pattern_set_extend(handle, Cairo.CAIRO_EXTEND_PAD); init(); }