From a5238035957a7030f44243a3de0afce0a5783e6f Mon Sep 17 00:00:00 2001 From: Joshua Granick Date: Tue, 5 May 2015 23:03:15 -0700 Subject: [PATCH] Add a few more bindings --- lime/graphics/cairo/CairoPattern.hx | 24 ++++++++++++++++++++ project/src/graphics/cairo/CairoBindings.cpp | 16 +++++++++++++ 2 files changed, 40 insertions(+) diff --git a/lime/graphics/cairo/CairoPattern.hx b/lime/graphics/cairo/CairoPattern.hx index 9c108da64..05d5c2eb2 100644 --- a/lime/graphics/cairo/CairoPattern.hx +++ b/lime/graphics/cairo/CairoPattern.hx @@ -31,6 +31,28 @@ abstract CairoPattern(Dynamic) { } + public static function createRGB (r:Float, g:Float, b:Float):CairoPattern { + + #if lime_cairo + return lime_cairo_pattern_create_rgb (r, g, b); + #else + return cast 0; + #end + + } + + + public static function createRGBA (r:Float, g:Float, b:Float, a:Float):CairoPattern { + + #if lime_cairo + return lime_cairo_pattern_create_rgba (r, g, b, a); + #else + return cast 0; + #end + + } + + public function destroy ():Void { #if lime_cairo @@ -123,6 +145,8 @@ abstract CairoPattern(Dynamic) { #if lime_cairo 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_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_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); diff --git a/project/src/graphics/cairo/CairoBindings.cpp b/project/src/graphics/cairo/CairoBindings.cpp index 02c28d4ae..551fa392b 100644 --- a/project/src/graphics/cairo/CairoBindings.cpp +++ b/project/src/graphics/cairo/CairoBindings.cpp @@ -363,6 +363,20 @@ namespace lime { } + 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))); + + } + + + value lime_cairo_pattern_create_rgba (value r, value g, value b, value a) { + + return alloc_float ((intptr_t)cairo_pattern_create_rgba (val_number (r), val_number (g), val_number (b), val_number (a))); + + } + + value lime_cairo_pattern_destroy (value handle) { cairo_pattern_destroy ((cairo_pattern_t*)(intptr_t)val_float (handle)); @@ -786,6 +800,8 @@ namespace lime { DEFINE_PRIM (lime_cairo_paint, 1); DEFINE_PRIM (lime_cairo_paint_with_alpha, 2); DEFINE_PRIM (lime_cairo_pattern_create_for_surface, 1); + 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_extend, 1); DEFINE_PRIM (lime_cairo_pattern_get_filter, 1);