Remove Cairo reference/destroy -- this is handled internally

This commit is contained in:
Joshua Granick
2015-09-22 14:18:22 -07:00
parent 0e42ea9159
commit 1ef975cb93
8 changed files with 11 additions and 222 deletions

View File

@@ -14,6 +14,7 @@ import lime.graphics.Renderer;
@:build(lime.system.CFFI.build())
#end
@:access(lime.graphics.cairo.Cairo)
@:access(lime.ui.Window)
@@ -120,12 +121,6 @@ class NativeRenderer {
if (cacheLock == null || cacheLock.pixels != lock.pixels || cacheLock.width != lock.width || cacheLock.height != lock.height) {
if (primarySurface != null) {
primarySurface.destroy ();
}
primarySurface = CairoImageSurface.create (lock.pixels, CairoFormat.ARGB32, lock.width, lock.height, lock.pitch);
if (cairo != null) {

View File

@@ -31,7 +31,6 @@ class Cairo {
public var matrix (get, set):Matrix3;
public var miterLimit (get, set):Float;
public var operator (get, set):CairoOperator;
public var referenceCount (get, never):Int;
public var source (get, set):CairoPattern;
public var target (get, null):CairoSurface;
public var tolerance (get, set):Float;
@@ -52,14 +51,6 @@ class Cairo {
}
public function recreate (surface:CairoSurface) : Void {
#if (lime_cairo && !macro)
destroy ();
handle = lime_cairo_create (surface);
#end
}
public function arc (xc:Float, yc:Float, radius:Float, angle1:Float, angle2:Float):Void {
@@ -133,15 +124,6 @@ class Cairo {
}
public function destroy ():Void {
#if (lime_cairo && !macro)
lime_cairo_destroy (handle);
#end
}
public function fill ():Void {
#if (lime_cairo && !macro)
@@ -312,6 +294,14 @@ class Cairo {
}
private function recreate (surface:CairoSurface):Void {
#if (lime_cairo && !macro)
handle = lime_cairo_create (surface);
#end
}
public function rectangle (x:Float, y:Float, width:Float, height:Float):Void {
#if (lime_cairo && !macro)
@@ -321,15 +311,6 @@ class Cairo {
}
public function reference ():Void {
#if (lime_cairo && !macro)
lime_cairo_reference (handle);
#end
}
public function relCurveTo (dx1:Float, dy1:Float, dx2:Float, dy2:Float, dx3:Float, dy3:Float):Void {
#if (lime_cairo && !macro)
@@ -808,17 +789,6 @@ class Cairo {
}
@:noCompletion private function get_referenceCount ():Int {
#if (lime_cairo && !macro)
return lime_cairo_get_reference_count (handle);
#else
return 0;
#end
}
@:noCompletion private function get_source ():CairoPattern {
#if (lime_cairo && !macro)
@@ -913,7 +883,6 @@ class Cairo {
@:cffi private static function lime_cairo_copy_page (handle:Dynamic):Void;
@:cffi private static function lime_cairo_create (handle:Dynamic):Dynamic;
@:cffi private static function lime_cairo_curve_to (handle:Dynamic, x1:Float, y1:Float, x2:Float, y2:Float, x3:Float, y3:Float):Void;
@:cffi private static function lime_cairo_destroy (handle:Dynamic):Void;
@:cffi private static function lime_cairo_fill (handle:Dynamic):Void;
@:cffi private static function lime_cairo_fill_extents (handle:Dynamic, x1:Float, y1:Float, x2:Float, y2:Float):Void;
@:cffi private static function lime_cairo_fill_preserve (handle:Dynamic):Void;
@@ -931,7 +900,6 @@ class Cairo {
@:cffi private static function lime_cairo_get_matrix (handle:Dynamic):Dynamic;
@:cffi private static function lime_cairo_get_miter_limit (handle:Dynamic):Float;
@:cffi private static function lime_cairo_get_operator (handle:Dynamic):Int;
@:cffi private static function lime_cairo_get_reference_count (handle:Dynamic):Int;
@:cffi private static function lime_cairo_get_source (handle:Dynamic):Dynamic;
@:cffi private static function lime_cairo_get_target (handle:Dynamic):Dynamic;
@:cffi private static function lime_cairo_get_tolerance (handle:Dynamic):Float;
@@ -952,7 +920,6 @@ class Cairo {
@:cffi private static function lime_cairo_push_group (handle:Dynamic):Void;
@:cffi private static function lime_cairo_push_group_with_content (handle:Dynamic, content:Int):Void;
@:cffi private static function lime_cairo_rectangle (handle:Dynamic, x:Float, y:Float, width:Float, height:Float):Void;
@:cffi private static function lime_cairo_reference (handle:Dynamic):Void;
@:cffi private static function lime_cairo_rel_curve_to (handle:Dynamic, dx1:Float, dy1:Float, dx2:Float, dy2:Float, dx3:Float, dy3:Float):Void;
@:cffi private static function lime_cairo_rel_line_to (handle:Dynamic, dx:Float, dy:Float):Void;
@:cffi private static function lime_cairo_rel_move_to (handle:Dynamic, dx:Float, dy:Float):Void;

View File

@@ -4,7 +4,7 @@ package lime.graphics.cairo;
@:enum abstract CairoContent(Int) from Int to Int from UInt to UInt {
public var COLOR = 0x1000;
public var ALPHA = 0x2000;
public var COLOR_ALPHA = 0x3000;
public var ALPHA = 0x2000;
public var COLOR_ALPHA = 0x3000;
}

View File

@@ -9,9 +9,6 @@ package lime.graphics.cairo;
abstract CairoFontFace(Dynamic) {
public var referenceCount (get, never):Int;
private function new () {
this = null;
@@ -19,26 +16,6 @@ abstract CairoFontFace(Dynamic) {
}
public function destroy ():Void {
#if (lime_cairo && !macro)
lime_cairo_font_face_destroy (this);
#end
}
public function reference ():CairoFontFace {
#if (lime_cairo && !macro)
lime_cairo_font_face_reference (this);
#end
return this;
}
public function status ():CairoStatus {
#if (lime_cairo && !macro)
@@ -52,33 +29,12 @@ abstract CairoFontFace(Dynamic) {
// Get & Set Methods
@:noCompletion private function get_referenceCount ():Int {
#if (lime_cairo && !macro)
return lime_cairo_font_face_get_reference_count (this);
#else
return 0;
#end
}
// Native Methods
#if ((cpp || neko || nodejs) && !macro)
@:cffi private static function lime_cairo_font_face_destroy (handle:Dynamic):Void;
@:cffi private static function lime_cairo_font_face_get_reference_count (handle:Dynamic):Int;
@:cffi private static function lime_cairo_font_face_reference (handle:Dynamic):Void;
@:cffi private static function lime_cairo_font_face_status (handle:Dynamic):Int;
#end

View File

@@ -28,15 +28,6 @@ abstract CairoFontOptions(Dynamic) {
}
public function destroy ():Void {
#if (lime_cairo && !macro)
lime_cairo_font_options_destroy (this);
#end
}
// Get & Set Methods
@@ -142,7 +133,6 @@ abstract CairoFontOptions(Dynamic) {
#if ((cpp || neko || nodejs) && !macro)
@:cffi private static function lime_cairo_font_options_create ():Dynamic;
@:cffi private static function lime_cairo_font_options_destroy (handle:Float):Void;
@:cffi private static function lime_cairo_font_options_get_antialias (handle:Float):Int;
@:cffi private static function lime_cairo_font_options_get_hint_metrics (handle:Float):Int;
@:cffi private static function lime_cairo_font_options_get_hint_style (handle:Float):Int;

View File

@@ -97,15 +97,6 @@ abstract CairoPattern(Dynamic) {
}
public function destroy ():Void {
#if (lime_cairo && !macro)
lime_cairo_pattern_destroy (this);
#end
}
// Get & Set Methods
@@ -206,7 +197,6 @@ abstract CairoPattern(Dynamic) {
@:cffi private static function lime_cairo_pattern_create_radial (cx0:Float, cy0:Float, radius0:Float, cx1:Float, cy1:Float, radius1:Float):Dynamic;
@:cffi private static function lime_cairo_pattern_create_rgb (r:Float, g:Float, b:Float):Dynamic;
@:cffi private static function lime_cairo_pattern_create_rgba (r:Float, g:Float, b:Float, a:Float):Dynamic;
@:cffi private static function lime_cairo_pattern_destroy (handle:Dynamic):Void;
@:cffi private static function lime_cairo_pattern_get_color_stop_count (handle:Float):Int;
@:cffi private static function lime_cairo_pattern_get_extend (handle:Dynamic):Int;
@:cffi private static function lime_cairo_pattern_get_filter (handle:Dynamic):Int;

View File

@@ -9,15 +9,6 @@ package lime.graphics.cairo;
abstract CairoSurface(Dynamic) {
public function destroy ():Void {
#if (lime_cairo && !macro)
lime_cairo_surface_destroy (this);
#end
}
public function flush ():Void {
#if (lime_cairo && !macro)
@@ -27,15 +18,6 @@ abstract CairoSurface(Dynamic) {
}
public function reference ():Void {
#if (lime_cairo && !macro)
lime_cairo_surface_reference (this);
#end
}
// Native Methods
@@ -44,9 +26,7 @@ abstract CairoSurface(Dynamic) {
#if (lime_cairo && !macro)
@:cffi private static function lime_cairo_surface_destroy (surface:Dynamic):Void;
@:cffi private static function lime_cairo_surface_flush (surface:Dynamic):Void;
@:cffi private static function lime_cairo_surface_reference (surface:Dynamic):Void;
#end

View File

@@ -121,7 +121,6 @@ namespace lime {
value lime_cairo_create (value surface) {
cairo_t* cairo = cairo_create ((cairo_surface_t*)val_data (surface));
cairo_reference (cairo);
value handle = cffi::alloc_pointer (cairo);
val_gc (handle, gc_cairo);
return handle;
@@ -136,13 +135,6 @@ namespace lime {
}
void lime_cairo_destroy (value handle) {
cairo_destroy ((cairo_t*)val_data (handle));
}
void lime_cairo_fill (value handle) {
cairo_fill ((cairo_t*)val_data (handle));
@@ -163,26 +155,6 @@ namespace lime {
}
void lime_cairo_font_face_destroy (value handle) {
cairo_font_face_destroy ((cairo_font_face_t*)val_data (handle));
}
int lime_cairo_font_face_get_reference_count (value handle) {
return cairo_font_face_get_reference_count ((cairo_font_face_t*)val_data (handle));
}
void lime_cairo_font_face_reference (value handle) {
cairo_font_face_reference ((cairo_font_face_t*)val_data (handle));
}
int lime_cairo_font_face_status (value handle) {
@@ -200,14 +172,6 @@ namespace lime {
}
void lime_cairo_font_options_destroy (value handle) {
cairo_font_options_destroy ((cairo_font_options_t*)val_data (handle));
free_abstract (handle);
}
int lime_cairo_font_options_get_antialias (value handle) {
return cairo_font_options_get_antialias ((cairo_font_options_t*)val_data (handle));
@@ -269,7 +233,6 @@ namespace lime {
#ifdef LIME_FREETYPE
Font *font = (Font*)val_data (face);
cairo_font_face_t* cairoFont = cairo_ft_font_face_create_for_ft_face ((FT_Face)font->face, flags);
cairo_font_face_reference (cairoFont);
value handle = cffi::alloc_pointer (cairoFont);
val_gc (handle, gc_cairo_font_face);
return handle;
@@ -412,13 +375,6 @@ namespace lime {
}
int lime_cairo_get_reference_count (value handle) {
return cairo_get_reference_count ((cairo_t*)val_data (handle));
}
value lime_cairo_get_source (value handle) {
cairo_pattern_t* pattern = cairo_get_source ((cairo_t*)val_data (handle));
@@ -465,7 +421,6 @@ namespace lime {
value lime_cairo_image_surface_create (int format, int width, int height) {
cairo_surface_t* surface = cairo_image_surface_create ((cairo_format_t)format, width, height);
cairo_surface_reference (surface);
value handle = cffi::alloc_pointer (surface);
val_gc (handle, gc_cairo_surface);
return handle;
@@ -476,7 +431,6 @@ namespace lime {
value lime_cairo_image_surface_create_for_data (double data, int format, int width, int height, int stride) {
cairo_surface_t* surface = cairo_image_surface_create_for_data ((unsigned char*)(intptr_t)data, (cairo_format_t)format, width, height, stride);
cairo_surface_reference (surface);
value handle = cffi::alloc_pointer (surface);
val_gc (handle, gc_cairo_surface);
return handle;
@@ -606,7 +560,6 @@ namespace lime {
value lime_cairo_pattern_create_for_surface (value surface) {
cairo_pattern_t* pattern = cairo_pattern_create_for_surface ((cairo_surface_t*)val_data (surface));
cairo_pattern_reference (pattern);
value handle = cffi::alloc_pointer (pattern);
val_gc (handle, gc_cairo_pattern);
return handle;
@@ -617,7 +570,6 @@ namespace lime {
value lime_cairo_pattern_create_linear (double x0, double y0, double x1, double y1) {
cairo_pattern_t* pattern = cairo_pattern_create_linear (x0, y0, x1, y1);
cairo_pattern_reference (pattern);
value handle = cffi::alloc_pointer (pattern);
val_gc (handle, gc_cairo_pattern);
return handle;
@@ -628,7 +580,6 @@ namespace lime {
value lime_cairo_pattern_create_radial (double cx0, double cy0, double radius0, double cx1, double cy1, double radius1) {
cairo_pattern_t* pattern = cairo_pattern_create_radial (cx0, cy0, radius0, cx1, cy1, radius1);
cairo_pattern_reference (pattern);
value handle = cffi::alloc_pointer (pattern);
val_gc (handle, gc_cairo_pattern);
return handle;
@@ -639,7 +590,6 @@ namespace lime {
value lime_cairo_pattern_create_rgb (double r, double g, double b) {
cairo_pattern_t* pattern = cairo_pattern_create_rgb (r, g, b);
cairo_pattern_reference (pattern);
value handle = cffi::alloc_pointer (pattern);
val_gc (handle, gc_cairo_pattern);
return handle;
@@ -650,7 +600,6 @@ namespace lime {
value lime_cairo_pattern_create_rgba (double r, double g, double b, double a) {
cairo_pattern_t* pattern = cairo_pattern_create_rgba (r, g, b, a);
cairo_pattern_reference (pattern);
value handle = cffi::alloc_pointer (pattern);
val_gc (handle, gc_cairo_pattern);
return handle;
@@ -658,13 +607,6 @@ namespace lime {
}
void lime_cairo_pattern_destroy (value handle) {
cairo_pattern_destroy ((cairo_pattern_t*)val_data (handle));
}
int lime_cairo_pattern_get_color_stop_count (value handle) {
int count;
@@ -763,13 +705,6 @@ namespace lime {
}
void lime_cairo_reference (value handle) {
cairo_reference ((cairo_t*)val_data (handle));
}
void lime_cairo_rel_curve_to (value handle, double dx1, double dy1, double dx2, double dy2, double dx3, double dy3) {
cairo_rel_curve_to ((cairo_t*)val_data (handle), dx1, dy1, dx2, dy2, dx3, dy3);
@@ -1003,13 +938,6 @@ namespace lime {
}
void lime_cairo_surface_destroy (value handle) {
cairo_surface_destroy ((cairo_surface_t*)val_data (handle));
}
void lime_cairo_surface_flush (value handle) {
cairo_surface_flush ((cairo_surface_t*)val_data (handle));
@@ -1017,13 +945,6 @@ namespace lime {
}
void lime_cairo_surface_reference (value handle) {
cairo_surface_reference ((cairo_surface_t*)val_data (handle));
}
void lime_cairo_transform (value handle, value matrix) {
Matrix3 mat3 = Matrix3 (matrix);
@@ -1067,17 +988,12 @@ namespace lime {
DEFINE_PRIME1v (lime_cairo_copy_page);
DEFINE_PRIME1 (lime_cairo_create);
DEFINE_PRIME7v (lime_cairo_curve_to);
DEFINE_PRIME1v (lime_cairo_destroy);
DEFINE_PRIME1v (lime_cairo_fill);
DEFINE_PRIME5v (lime_cairo_fill_extents);
DEFINE_PRIME1v (lime_cairo_fill_preserve);
DEFINE_PRIME2 (lime_cairo_ft_font_face_create);
DEFINE_PRIME1v (lime_cairo_font_face_destroy);
DEFINE_PRIME1 (lime_cairo_font_face_get_reference_count);
DEFINE_PRIME1v (lime_cairo_font_face_reference);
DEFINE_PRIME1 (lime_cairo_font_face_status);
DEFINE_PRIME0 (lime_cairo_font_options_create);
DEFINE_PRIME1v (lime_cairo_font_options_destroy);
DEFINE_PRIME1 (lime_cairo_font_options_get_antialias);
DEFINE_PRIME1 (lime_cairo_font_options_get_subpixel_order);
DEFINE_PRIME1 (lime_cairo_font_options_get_hint_style);
@@ -1100,7 +1016,6 @@ namespace lime {
DEFINE_PRIME1 (lime_cairo_get_matrix);
DEFINE_PRIME1 (lime_cairo_get_miter_limit);
DEFINE_PRIME1 (lime_cairo_get_operator);
DEFINE_PRIME1 (lime_cairo_get_reference_count);
DEFINE_PRIME1 (lime_cairo_get_source);
DEFINE_PRIME1 (lime_cairo_get_target);
DEFINE_PRIME1 (lime_cairo_get_tolerance);
@@ -1130,7 +1045,6 @@ namespace lime {
DEFINE_PRIME6 (lime_cairo_pattern_create_radial);
DEFINE_PRIME3 (lime_cairo_pattern_create_rgb);
DEFINE_PRIME4 (lime_cairo_pattern_create_rgba);
DEFINE_PRIME1v (lime_cairo_pattern_destroy);
DEFINE_PRIME1 (lime_cairo_pattern_get_color_stop_count);
DEFINE_PRIME1 (lime_cairo_pattern_get_extend);
DEFINE_PRIME1 (lime_cairo_pattern_get_filter);
@@ -1143,7 +1057,6 @@ namespace lime {
DEFINE_PRIME1v (lime_cairo_push_group);
DEFINE_PRIME2v (lime_cairo_push_group_with_content);
DEFINE_PRIME5v (lime_cairo_rectangle);
DEFINE_PRIME1v (lime_cairo_reference);
DEFINE_PRIME7v (lime_cairo_rel_curve_to);
DEFINE_PRIME3v (lime_cairo_rel_line_to);
DEFINE_PRIME3v (lime_cairo_rel_move_to);
@@ -1175,9 +1088,7 @@ namespace lime {
DEFINE_PRIME1v (lime_cairo_stroke);
DEFINE_PRIME5v (lime_cairo_stroke_extents);
DEFINE_PRIME1v (lime_cairo_stroke_preserve);
DEFINE_PRIME1v (lime_cairo_surface_destroy);
DEFINE_PRIME1v (lime_cairo_surface_flush);
DEFINE_PRIME1v (lime_cairo_surface_reference);
DEFINE_PRIME2v (lime_cairo_transform);
DEFINE_PRIME3v (lime_cairo_translate);
DEFINE_PRIME0 (lime_cairo_version);