Add Cairo bindings for gradient patterns
This commit is contained in:
@@ -8,6 +8,7 @@ import lime.system.System;
|
||||
abstract CairoPattern(Dynamic) {
|
||||
|
||||
|
||||
public var colorStopCount (get, never):Int;
|
||||
public var extend (get, set):CairoExtend;
|
||||
public var filter (get, set):CairoFilter;
|
||||
public var matrix (get, set):Matrix3;
|
||||
@@ -20,6 +21,24 @@ abstract CairoPattern(Dynamic) {
|
||||
}
|
||||
|
||||
|
||||
public function addColorStopRGB (offset:Float, r:Float, g:Float, b:Float):Void {
|
||||
|
||||
#if lime_cairo
|
||||
lime_cairo_pattern_add_color_stop_rgb (this, offset, r, g, b);
|
||||
#end
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function addColorStopRGBA (offset:Float, r:Float, g:Float, b:Float, a:Float):Void {
|
||||
|
||||
#if lime_cairo
|
||||
lime_cairo_pattern_add_color_stop_rgba (this, offset, r, g, b, a);
|
||||
#end
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static function createForSurface (surface:CairoSurface):CairoPattern {
|
||||
|
||||
#if lime_cairo
|
||||
@@ -31,6 +50,28 @@ abstract CairoPattern(Dynamic) {
|
||||
}
|
||||
|
||||
|
||||
public static function createLinear (x0:Float, y0:Float, x1:Float, y1:Float):CairoPattern {
|
||||
|
||||
#if lime_cairo
|
||||
return lime_cairo_pattern_create_linear (x0, y0, x1, y1);
|
||||
#else
|
||||
return cast 0;
|
||||
#end
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static function createRadial (cx0:Float, cy0:Float, radius0:Float, cx1:Float, cy1:Float, radius1:Float):CairoPattern {
|
||||
|
||||
#if lime_cairo
|
||||
return lime_cairo_pattern_create_radial (cx0, cy0, radius0, cx1, cy1, radius1);
|
||||
#else
|
||||
return cast 0;
|
||||
#end
|
||||
|
||||
}
|
||||
|
||||
|
||||
public static function createRGB (r:Float, g:Float, b:Float):CairoPattern {
|
||||
|
||||
#if lime_cairo
|
||||
@@ -69,6 +110,17 @@ abstract CairoPattern(Dynamic) {
|
||||
|
||||
|
||||
|
||||
public function get_colorStopCount ():Int {
|
||||
|
||||
#if lime_cairo
|
||||
return lime_cairo_pattern_get_color_stop_count (this);
|
||||
#else
|
||||
return 0;
|
||||
#end
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function get_extend ():CairoExtend {
|
||||
|
||||
#if lime_cairo
|
||||
@@ -144,10 +196,15 @@ abstract CairoPattern(Dynamic) {
|
||||
|
||||
|
||||
#if lime_cairo
|
||||
private static var lime_cairo_pattern_add_color_stop_rgb = System.load ("lime", "lime_cairo_pattern_add_color_stop_rgb", 5);
|
||||
private static var lime_cairo_pattern_add_color_stop_rgba = System.load ("lime", "lime_cairo_pattern_add_color_stop_rgba", -1);
|
||||
private static var lime_cairo_pattern_create_for_surface = System.load ("lime", "lime_cairo_pattern_create_for_surface", 1);
|
||||
private static var lime_cairo_pattern_create_linear = System.load ("lime", "lime_cairo_pattern_create_linear", 4);
|
||||
private static var lime_cairo_pattern_create_radial = System.load ("lime", "lime_cairo_pattern_create_radial", -1);
|
||||
private static var lime_cairo_pattern_create_rgb = System.load ("lime", "lime_cairo_pattern_create_rgb", 3);
|
||||
private static var lime_cairo_pattern_create_rgba = System.load ("lime", "lime_cairo_pattern_create_rgba", 4);
|
||||
private static var lime_cairo_pattern_destroy = System.load ("lime", "lime_cairo_pattern_destroy", 1);
|
||||
private static var lime_cairo_pattern_get_color_stop_count = System.load ("lime", "lime_cairo_pattern_get_color_stop_count", 1);
|
||||
private static var lime_cairo_pattern_get_extend = System.load ("lime", "lime_cairo_pattern_get_extend", 1);
|
||||
private static var lime_cairo_pattern_get_filter = System.load ("lime", "lime_cairo_pattern_get_filter", 1);
|
||||
private static var lime_cairo_pattern_get_matrix = System.load ("lime", "lime_cairo_pattern_get_matrix", 1);
|
||||
|
||||
@@ -374,6 +374,22 @@ namespace lime {
|
||||
}
|
||||
|
||||
|
||||
value lime_cairo_pattern_add_color_stop_rgb (value handle, value offset, value red, value green, value blue) {
|
||||
|
||||
cairo_pattern_add_color_stop_rgb ((cairo_pattern_t*)(intptr_t)val_float (handle), val_number (offset), val_number (red), val_number (green), val_number (blue));
|
||||
return alloc_null ();
|
||||
|
||||
}
|
||||
|
||||
|
||||
value lime_cairo_pattern_add_color_stop_rgba (value *arg, int argCount) {
|
||||
|
||||
cairo_pattern_add_color_stop_rgba ((cairo_pattern_t*)(intptr_t)val_float (arg[0]), val_number (arg[1]), val_number (arg[2]), val_number (arg[3]), val_number (arg[4]), val_number (arg[5]));
|
||||
return alloc_null ();
|
||||
|
||||
}
|
||||
|
||||
|
||||
value lime_cairo_pattern_create_for_surface (value surface) {
|
||||
|
||||
return alloc_float ((intptr_t)cairo_pattern_create_for_surface ((cairo_surface_t*)(intptr_t)val_float (surface)));
|
||||
@@ -381,6 +397,20 @@ namespace lime {
|
||||
}
|
||||
|
||||
|
||||
value lime_cairo_pattern_create_linear (value x0, value y0, value x1, value y1) {
|
||||
|
||||
return alloc_float ((intptr_t)cairo_pattern_create_linear (val_number (x0), val_number (y0), val_number (x1), val_number (y1)));
|
||||
|
||||
}
|
||||
|
||||
|
||||
value lime_cairo_pattern_create_radial (value *arg, int argCount) {
|
||||
|
||||
return alloc_float ((intptr_t)cairo_pattern_create_radial (val_number (arg[0]), val_number (arg[1]), val_number (arg[2]), val_number (arg[3]), val_number (arg[4]), val_number (arg[5])));
|
||||
|
||||
}
|
||||
|
||||
|
||||
value lime_cairo_pattern_create_rgb (value r, value g, value b) {
|
||||
|
||||
return alloc_float ((intptr_t)cairo_pattern_create_rgb (val_number (r), val_number (g), val_number (b)));
|
||||
@@ -403,6 +433,15 @@ namespace lime {
|
||||
}
|
||||
|
||||
|
||||
value lime_cairo_pattern_get_color_stop_count (value handle) {
|
||||
|
||||
int count;
|
||||
cairo_pattern_get_color_stop_count ((cairo_pattern_t*)(intptr_t)val_float (handle), &count);
|
||||
return alloc_int (count);
|
||||
|
||||
}
|
||||
|
||||
|
||||
value lime_cairo_pattern_get_extend (value handle) {
|
||||
|
||||
return alloc_int (cairo_pattern_get_extend ((cairo_pattern_t*)(intptr_t)val_float (handle)));
|
||||
@@ -819,10 +858,15 @@ namespace lime {
|
||||
DEFINE_PRIM (lime_cairo_new_path, 1);
|
||||
DEFINE_PRIM (lime_cairo_paint, 1);
|
||||
DEFINE_PRIM (lime_cairo_paint_with_alpha, 2);
|
||||
DEFINE_PRIM (lime_cairo_pattern_add_color_stop_rgb, 5);
|
||||
DEFINE_PRIM_MULT (lime_cairo_pattern_add_color_stop_rgba);
|
||||
DEFINE_PRIM (lime_cairo_pattern_create_for_surface, 1);
|
||||
DEFINE_PRIM (lime_cairo_pattern_create_linear, 4);
|
||||
DEFINE_PRIM_MULT (lime_cairo_pattern_create_radial);
|
||||
DEFINE_PRIM (lime_cairo_pattern_create_rgb, 3);
|
||||
DEFINE_PRIM (lime_cairo_pattern_create_rgba, 4);
|
||||
DEFINE_PRIM (lime_cairo_pattern_destroy, 1);
|
||||
DEFINE_PRIM (lime_cairo_pattern_get_color_stop_count, 1);
|
||||
DEFINE_PRIM (lime_cairo_pattern_get_extend, 1);
|
||||
DEFINE_PRIM (lime_cairo_pattern_get_filter, 1);
|
||||
DEFINE_PRIM (lime_cairo_pattern_get_matrix, 1);
|
||||
|
||||
Reference in New Issue
Block a user