class Cairo::GradientPattern
Public Instance Methods
add_color_stop(*args)
click to toggle source
static VALUE cr_gradient_pattern_add_color_stop_generic (int argc, VALUE *argv, VALUE self) { VALUE offset, red, green, blue, alpha; int n; n = rb_scan_args (argc, argv, "23", &offset, &red, &green, &blue, &alpha); if (n == 2) { VALUE color = red; color = cr_color_parse (color); if (rb_cairo__is_kind_of (color, rb_cCairo_Color_Base)) red = rb_funcall (rb_funcall (color, id_to_rgb, 0), id_to_a, 0); } if (n == 2 && rb_cairo__is_kind_of (red, rb_cArray)) { VALUE ary = red; n = (int) RARRAY_LEN (ary) + 1; red = rb_ary_entry (ary, 0); green = rb_ary_entry (ary, 1); blue = rb_ary_entry (ary, 2); alpha = rb_ary_entry (ary, 3); } if (n == 4 || (n == 5 && NIL_P (alpha))) { cairo_pattern_add_color_stop_rgb (_SELF (self), NUM2DBL (offset), NUM2DBL (red), NUM2DBL (green), NUM2DBL (blue)); } else if (n == 5) { cairo_pattern_add_color_stop_rgba (_SELF (self), NUM2DBL (offset), NUM2DBL (red), NUM2DBL (green), NUM2DBL (blue), NUM2DBL (alpha)); } else { VALUE inspected; inspected = rb_funcall (rb_ary_new4 (argc, argv), id_inspect, 0); rb_raise (rb_eArgError, "invalid argument: %s (expect " "(offset, color_name), " "(offset, color_hex_triplet), " "(offset, Cairo::Color::RGB), " "(offset, Cairo::Color::CMYK), " "(offset, Cairo::Color::HSV), " "(offset, red, green, blue), " "(offset, [red, green, blue]), " "(offset, red, green, blue, alpha) or " "(offset, [red, green, blue, alpha])" ")", RVAL2CSTR (inspected)); } cr_pattern_check_status (_SELF (self)); return self; }
Also aliased as: add_color_stop_rgb, add_color_stop_rgba
color_stop_count()
click to toggle source
static VALUE cr_gradient_pattern_get_color_stop_count (VALUE self) { cairo_status_t status; int count; status = cairo_pattern_get_color_stop_count (_SELF (self), &count); rb_cairo_check_status (status); return INT2NUM (count); }
get_color_stop_color(p1)
click to toggle source
static VALUE cr_gradient_pattern_get_color_stop_color (VALUE self, VALUE index) { VALUE result, offset, rgba; result = cr_gradient_pattern_get_color_stop_rgba (self, index); offset = rb_ary_shift (result); rgba = result; return rb_ary_new3 (2, offset, cr_color_parse (rgba)); }
get_color_stop_rgba(p1)
click to toggle source
static VALUE cr_gradient_pattern_get_color_stop_rgba (VALUE self, VALUE index) { cairo_status_t status; double offset, red, green, blue, alpha; status = cairo_pattern_get_color_stop_rgba (_SELF (self), NUM2INT (index), &offset, &red, &green, &blue, &alpha); rb_cairo_check_status (status); return rb_ary_new3 (5, rb_float_new (offset), rb_float_new (red), rb_float_new (green), rb_float_new (blue), rb_float_new (alpha)); }