From 44b14e283c78d671f08d266c57f205ca403c5082 Mon Sep 17 00:00:00 2001 From: Joshua Granick Date: Fri, 1 May 2015 12:52:16 -0700 Subject: [PATCH] Running simple sample --- lime/graphics/cairo/Cairo.hx | 20 ++++++++++++ project/src/graphics/cairo/CairoBindings.cpp | 34 +++++++++++++++----- 2 files changed, 46 insertions(+), 8 deletions(-) diff --git a/lime/graphics/cairo/Cairo.hx b/lime/graphics/cairo/Cairo.hx index be9cc9f50..adade6715 100644 --- a/lime/graphics/cairo/Cairo.hx +++ b/lime/graphics/cairo/Cairo.hx @@ -35,6 +35,15 @@ class Cairo { } + public function arc (xc:Float, yc:Float, radius:Float, angle1:Float, angle2:Float):Void { + + #if lime_cairo + lime_cairo_arc (handle, xc, yc, radius, angle1, angle2); + #end + + } + + public function clip ():Void { #if lime_cairo @@ -208,6 +217,15 @@ class Cairo { } + public function setSourceRGB (r:Float, g:Float, b:Float):Void { + + #if lime_cairo + lime_cairo_set_source_rgb (handle, r, g, b); + #end + + } + + public function setSourceRGBA (r:Float, g:Float, b:Float, a:Float):Void { #if lime_cairo @@ -445,6 +463,7 @@ class Cairo { #if lime_cairo + private static var lime_cairo_arc = System.load ("lime", "lime_cairo_arc", -1); private static var lime_cairo_clip = System.load ("lime", "lime_cairo_clip", 1); private static var lime_cairo_close_path = System.load ("lime", "lime_cairo_close_path", 1); private static var lime_cairo_create = System.load ("lime", "lime_cairo_create", 1); @@ -479,6 +498,7 @@ class Cairo { private static var lime_cairo_set_miter_limit = System.load ("lime", "lime_cairo_set_miter_limit", 2); private static var lime_cairo_set_operator = System.load ("lime", "lime_cairo_set_operator", 2); private static var lime_cairo_set_source = System.load ("lime", "lime_cairo_set_source", 2); + private static var lime_cairo_set_source_rgb = System.load ("lime", "lime_cairo_set_source_rgb", 4); private static var lime_cairo_set_source_rgba = System.load ("lime", "lime_cairo_set_source_rgba", 5); private static var lime_cairo_set_source_surface = System.load ("lime", "lime_cairo_set_source_surface", 4); private static var lime_cairo_stroke = System.load ("lime", "lime_cairo_stroke", 1); diff --git a/project/src/graphics/cairo/CairoBindings.cpp b/project/src/graphics/cairo/CairoBindings.cpp index ab0bada82..281d5c47f 100644 --- a/project/src/graphics/cairo/CairoBindings.cpp +++ b/project/src/graphics/cairo/CairoBindings.cpp @@ -6,6 +6,14 @@ namespace lime { + value lime_cairo_arc (value *arg, int argCount) { + + cairo_arc ((cairo_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_clip (value handle) { cairo_clip ((cairo_t*)(intptr_t)val_float (handle)); @@ -121,7 +129,7 @@ namespace lime { value lime_cairo_line_to (value handle, value x, value y) { - cairo_line_to ((cairo_t*)(intptr_t)val_float (handle), val_float (x), val_float (y)); + cairo_line_to ((cairo_t*)(intptr_t)val_float (handle), val_number (x), val_number (y)); return alloc_null (); } @@ -137,7 +145,7 @@ namespace lime { value lime_cairo_move_to (value handle, value x, value y) { - cairo_move_to ((cairo_t*)(intptr_t)val_float (handle), val_float (x), val_float (y)); + cairo_move_to ((cairo_t*)(intptr_t)val_float (handle), val_number (x), val_number (y)); return alloc_null (); } @@ -161,7 +169,7 @@ namespace lime { value lime_cairo_paint_with_alpha (value handle, value alpha) { - cairo_paint_with_alpha ((cairo_t*)(intptr_t)val_float (handle), val_float (alpha)); + cairo_paint_with_alpha ((cairo_t*)(intptr_t)val_float (handle), val_number (alpha)); return alloc_null (); } @@ -200,7 +208,7 @@ namespace lime { value lime_cairo_rectangle (value handle, value x, value y, value width, value height) { - cairo_rectangle ((cairo_t*)(intptr_t)val_float (handle), val_float (x), val_float (y), val_float (width), val_float (height)); + cairo_rectangle ((cairo_t*)(intptr_t)val_float (handle), val_number (x), val_number (y), val_number (width), val_number (height)); return alloc_null (); } @@ -248,7 +256,7 @@ namespace lime { value lime_cairo_set_line_width (value handle, value width) { - cairo_set_line_width ((cairo_t*)(intptr_t)val_float (handle), val_float (width)); + cairo_set_line_width ((cairo_t*)(intptr_t)val_float (handle), val_number (width)); return alloc_null (); } @@ -269,7 +277,7 @@ namespace lime { value lime_cairo_set_miter_limit (value handle, value miterLimit) { - cairo_set_miter_limit ((cairo_t*)(intptr_t)val_float (handle), val_float (miterLimit)); + cairo_set_miter_limit ((cairo_t*)(intptr_t)val_float (handle), val_number (miterLimit)); return alloc_null (); } @@ -291,9 +299,17 @@ namespace lime { } + value lime_cairo_set_source_rgb (value handle, value r, value g, value b) { + + cairo_set_source_rgb ((cairo_t*)(intptr_t)val_float (handle), val_number (r), val_number (g), val_number (b)); + return alloc_null (); + + } + + value lime_cairo_set_source_rgba (value handle, value r, value g, value b, value a) { - cairo_set_source_rgba ((cairo_t*)(intptr_t)val_float (handle), val_float (r), val_float (g), val_float (b), val_float (a)); + cairo_set_source_rgba ((cairo_t*)(intptr_t)val_float (handle), val_number (r), val_number (g), val_number (b), val_number (a)); return alloc_null (); } @@ -301,7 +317,7 @@ namespace lime { value lime_cairo_set_source_surface (value handle, value surface, value x, value y) { - cairo_set_source_surface ((cairo_t*)(intptr_t)val_float (handle), (cairo_surface_t*)(intptr_t)val_float (surface), val_float (x), val_float (y)); + cairo_set_source_surface ((cairo_t*)(intptr_t)val_float (handle), (cairo_surface_t*)(intptr_t)val_float (surface), val_number (x), val_number (y)); return alloc_null (); } @@ -426,6 +442,7 @@ namespace lime { } + DEFINE_PRIM_MULT (lime_cairo_arc); DEFINE_PRIM (lime_cairo_clip, 1); DEFINE_PRIM (lime_cairo_close_path, 1); DEFINE_PRIM (lime_cairo_create, 1); @@ -462,6 +479,7 @@ namespace lime { DEFINE_PRIM (lime_cairo_set_miter_limit, 2); DEFINE_PRIM (lime_cairo_set_operator, 2); DEFINE_PRIM (lime_cairo_set_source, 2); + DEFINE_PRIM (lime_cairo_set_source_rgb, 4); DEFINE_PRIM (lime_cairo_set_source_rgba, 5); DEFINE_PRIM (lime_cairo_set_source_surface, 4); DEFINE_PRIM (lime_cairo_stroke, 1);