diff --git a/lime/graphics/cairo/CairoFont.hx b/lime/graphics/cairo/CairoFont.hx index dc3a31f64..30ddd5622 100644 --- a/lime/graphics/cairo/CairoFont.hx +++ b/lime/graphics/cairo/CairoFont.hx @@ -1,30 +1,60 @@ package lime.graphics.cairo; + + import lime.text.Font; import lime.system.System; -class CairoFont -{ - @:noCompletion public var handle:Dynamic; - public var font(default,null):Font; +class CairoFont { - public function new( font : Font ) { + + public var font (default, null):Font; + @:noCompletion public var handle:Dynamic; + + + public function new (font:Font) { #if lime_cairo + this.font = font; - handle = lime_cairo_ft_font_face_create_for_ft_face( font.src, 0 ); + + if (font != null && font.src != null) { + + handle = lime_cairo_ft_font_face_create_for_ft_face (font.src, 0); + + } + #end + } - public function destroy() { - #if lime_cairo - lime_cairo_font_face_destroy (handle); - #end - } + + public function destroy () { + #if lime_cairo + + if (handle != null) { + + lime_cairo_font_face_destroy (handle); + + } + + #end + + } + + + + + // Native Methods + + + + #if (cpp || neko || nodejs) private static var lime_cairo_ft_font_face_create_for_ft_face = System.load ("lime", "lime_cairo_ft_font_face_create_for_ft_face", 2); private static var lime_cairo_font_face_destroy = System.load ("lime", "lime_cairo_font_face_destroy", 1); #end + } \ No newline at end of file diff --git a/templates/haxe/DefaultAssetLibrary.hx b/templates/haxe/DefaultAssetLibrary.hx index 71c610829..a0ff0a1ae 100644 --- a/templates/haxe/DefaultAssetLibrary.hx +++ b/templates/haxe/DefaultAssetLibrary.hx @@ -776,7 +776,7 @@ class DefaultAssetLibrary extends AssetLibrary { #else -::if (assets != null)::::foreach assets::::if (!embed)::::if (type == "font")::@:keep #if display private #end class __ASSET__::flatName:: extends lime.text.Font { public function new () { __fontPath = "::targetPath::"; name = "::fontName::"; super (); }} +::if (assets != null)::::foreach assets::::if (!embed)::::if (type == "font")::@:keep #if display private #end class __ASSET__::flatName:: extends lime.text.Font { public function new () { __fontPath = #if ios "assets/" + #end "::targetPath::"; name = "::fontName::"; super (); }} ::end::::end::::end::::end:: #if (windows || mac || linux) @@ -793,7 +793,7 @@ class DefaultAssetLibrary extends AssetLibrary { #end #if openfl -::if (assets != null)::::foreach assets::::if (type == "font")::@:keep #if display private #end class __ASSET__OPENFL__::flatName:: extends openfl.text.Font { public function new () { ::if (embed)::var font = new __ASSET__::flatName:: (); src = font.src; name = font.name;::else::__fontPath = "::targetPath::"; name = "::fontName::";::end:: super (); }} +::if (assets != null)::::foreach assets::::if (type == "font")::@:keep #if display private #end class __ASSET__OPENFL__::flatName:: extends openfl.text.Font { public function new () { ::if (embed)::var font = new __ASSET__::flatName:: (); src = font.src; name = font.name;::else::__fontPath = #if ios "assets/" + #end "::targetPath::"; name = "::fontName::";::end:: super (); }} ::end::::end::::end:: #end