From 87f7ad32a22564c9211d49139a8cd4cfa21ff44a Mon Sep 17 00:00:00 2001 From: Joshua Granick Date: Fri, 28 Aug 2015 19:55:52 -0700 Subject: [PATCH] Use CFFI prime bindings, refine Cairo font --- lime/_backend/native/NativeApplication.hx | 56 +- lime/_backend/native/NativeMouse.hx | 20 +- lime/_backend/native/NativeRenderer.hx | 26 +- lime/_backend/native/NativeWindow.hx | 64 +- lime/audio/AudioBuffer.hx | 6 +- lime/graphics/cairo/Cairo.hx | 410 +++---- lime/graphics/cairo/CairoFTFontFace.hx | 44 + lime/graphics/cairo/CairoFont.hx | 63 -- lime/graphics/cairo/CairoFontFace.hx | 84 ++ lime/graphics/cairo/CairoFontOptions.hx | 58 +- lime/graphics/cairo/CairoImageSurface.hx | 32 +- lime/graphics/cairo/CairoPattern.hx | 60 +- lime/graphics/cairo/CairoSurface.hx | 12 +- lime/graphics/format/JPEG.hx | 12 +- lime/graphics/format/PNG.hx | 12 +- lime/graphics/utils/ImageDataUtil.hx | 48 +- lime/system/Clipboard.hx | 8 +- lime/system/System.hx | 86 +- lime/text/Font.hx | 70 +- lime/text/TextLayout.hx | 20 +- lime/ui/FileDialog.hx | 16 +- lime/ui/Gamepad.hx | 12 +- lime/utils/ByteArray.hx | 12 +- lime/utils/LZMA.hx | 8 +- lime/vm/NekoVM.hx | 4 +- project/src/ExternalInterface.cpp | 899 +++++++-------- project/src/graphics/cairo/CairoBindings.cpp | 1065 +++++++++--------- svg.n | Bin 1062966 -> 1077410 bytes 28 files changed, 1625 insertions(+), 1582 deletions(-) create mode 100644 lime/graphics/cairo/CairoFTFontFace.hx delete mode 100644 lime/graphics/cairo/CairoFont.hx create mode 100644 lime/graphics/cairo/CairoFontFace.hx diff --git a/lime/_backend/native/NativeApplication.hx b/lime/_backend/native/NativeApplication.hx index 77720e4f6..15f96af0a 100644 --- a/lime/_backend/native/NativeApplication.hx +++ b/lime/_backend/native/NativeApplication.hx @@ -57,33 +57,33 @@ class NativeApplication { public function create (config:Config):Void { - handle = lime_application_create (null); + handle = lime_application_create.call (null); } public function exec ():Int { - lime_application_event_manager_register (handleApplicationEvent, applicationEventInfo); - lime_gamepad_event_manager_register (handleGamepadEvent, gamepadEventInfo); - lime_key_event_manager_register (handleKeyEvent, keyEventInfo); - lime_mouse_event_manager_register (handleMouseEvent, mouseEventInfo); - lime_render_event_manager_register (handleRenderEvent, renderEventInfo); - lime_text_event_manager_register (handleTextEvent, textEventInfo); - lime_touch_event_manager_register (handleTouchEvent, touchEventInfo); - lime_window_event_manager_register (handleWindowEvent, windowEventInfo); + lime_application_event_manager_register.call (handleApplicationEvent, applicationEventInfo); + lime_gamepad_event_manager_register.call (handleGamepadEvent, gamepadEventInfo); + lime_key_event_manager_register.call (handleKeyEvent, keyEventInfo); + lime_mouse_event_manager_register.call (handleMouseEvent, mouseEventInfo); + lime_render_event_manager_register.call (handleRenderEvent, renderEventInfo); + lime_text_event_manager_register.call (handleTextEvent, textEventInfo); + lime_touch_event_manager_register.call (handleTouchEvent, touchEventInfo); + lime_window_event_manager_register.call (handleWindowEvent, windowEventInfo); #if nodejs - lime_application_init (handle); + lime_application_init.call (handle); var eventLoop = function () { - var active = lime_application_update (handle); + var active = lime_application_update.call (handle); if (!active) { - var result = lime_application_quit (handle); + var result = lime_application_quit.call (handle); System.exit (result); } @@ -97,7 +97,7 @@ class NativeApplication { #elseif (cpp || neko) - var result = lime_application_exec (handle); + var result = lime_application_exec.call (handle); parent.onExit.dispatch (result); return result; @@ -449,7 +449,7 @@ class NativeApplication { public function setFrameRate (value:Float):Float { - lime_application_set_frame_rate (handle, value); + lime_application_set_frame_rate.call (handle, value); return frameRate = value; } @@ -495,20 +495,20 @@ class NativeApplication { } - private static var lime_application_create = System.load ("lime", "lime_application_create", 1); - private static var lime_application_event_manager_register = System.load ("lime", "lime_application_event_manager_register", 2); - private static var lime_application_exec = System.load ("lime", "lime_application_exec", 1); - private static var lime_application_init = System.load ("lime", "lime_application_init", 1); - private static var lime_application_set_frame_rate = System.load ("lime", "lime_application_set_frame_rate", 2); - private static var lime_application_update = System.load ("lime", "lime_application_update", 1); - private static var lime_application_quit = System.load ("lime", "lime_application_quit", 1); - private static var lime_gamepad_event_manager_register = System.load ("lime", "lime_gamepad_event_manager_register", 2); - private static var lime_key_event_manager_register = System.load ("lime", "lime_key_event_manager_register", 2); - private static var lime_mouse_event_manager_register = System.load ("lime", "lime_mouse_event_manager_register", 2); - private static var lime_render_event_manager_register = System.load ("lime", "lime_render_event_manager_register", 2); - private static var lime_text_event_manager_register = System.load ("lime", "lime_text_event_manager_register", 2); - private static var lime_touch_event_manager_register = System.load ("lime", "lime_touch_event_manager_register", 2); - private static var lime_window_event_manager_register = System.load ("lime", "lime_window_event_manager_register", 2); + private static var lime_application_create = System.loadPrime ("lime", "lime_application_create", "oo"); + private static var lime_application_event_manager_register = System.loadPrime ("lime", "lime_application_event_manager_register", "oov"); + private static var lime_application_exec = System.loadPrime ("lime", "lime_application_exec", "di"); + private static var lime_application_init = System.loadPrime ("lime", "lime_application_init", "dv"); + private static var lime_application_quit = System.loadPrime ("lime", "lime_application_quit", "di"); + private static var lime_application_set_frame_rate = System.loadPrime ("lime", "lime_application_set_frame_rate", "ddv"); + private static var lime_application_update = System.loadPrime ("lime", "lime_application_update", "db"); + private static var lime_gamepad_event_manager_register = System.loadPrime ("lime", "lime_gamepad_event_manager_register", "oov"); + private static var lime_key_event_manager_register = System.loadPrime ("lime", "lime_key_event_manager_register", "oov"); + private static var lime_mouse_event_manager_register = System.loadPrime ("lime", "lime_mouse_event_manager_register", "oov"); + private static var lime_render_event_manager_register = System.loadPrime ("lime", "lime_render_event_manager_register", "oov"); + private static var lime_text_event_manager_register = System.loadPrime ("lime", "lime_text_event_manager_register", "oov"); + private static var lime_touch_event_manager_register = System.loadPrime ("lime", "lime_touch_event_manager_register", "oov"); + private static var lime_window_event_manager_register = System.loadPrime ("lime", "lime_window_event_manager_register", "oov"); } diff --git a/lime/_backend/native/NativeMouse.hx b/lime/_backend/native/NativeMouse.hx index 356d3dc5e..80a4f106a 100644 --- a/lime/_backend/native/NativeMouse.hx +++ b/lime/_backend/native/NativeMouse.hx @@ -22,7 +22,7 @@ class NativeMouse { __hidden = true; - lime_mouse_hide (); + lime_mouse_hide.call (); } @@ -35,7 +35,7 @@ class NativeMouse { __hidden = false; - lime_mouse_show (); + lime_mouse_show.call (); } @@ -44,7 +44,7 @@ class NativeMouse { public static function warp (x:Int, y:Int, window:Window):Void { - lime_mouse_warp (x, y, window == null ? null : window.backend.handle); + lime_mouse_warp.call (x, y, window == null ? null : window.backend.handle); } @@ -87,7 +87,7 @@ class NativeMouse { } - lime_mouse_set_cursor (type); + lime_mouse_set_cursor.call (type); } @@ -111,7 +111,7 @@ class NativeMouse { if (__lock != value) { - lime_mouse_set_lock (value); + lime_mouse_set_lock.call (value); __hidden = value; __lock = value; @@ -130,11 +130,11 @@ class NativeMouse { - private static var lime_mouse_hide = System.load ("lime", "lime_mouse_hide", 0); - private static var lime_mouse_set_cursor = System.load ("lime", "lime_mouse_set_cursor", 1); - private static var lime_mouse_set_lock = System.load ("lime", "lime_mouse_set_lock", 1); - private static var lime_mouse_show = System.load ("lime", "lime_mouse_show", 0); - private static var lime_mouse_warp = System.load ("lime", "lime_mouse_warp", 3); + private static var lime_mouse_hide = System.loadPrime ("lime", "lime_mouse_hide", "v"); + private static var lime_mouse_set_cursor = System.loadPrime ("lime", "lime_mouse_set_cursor", "iv"); + private static var lime_mouse_set_lock = System.loadPrime ("lime", "lime_mouse_set_lock", "bv"); + private static var lime_mouse_show = System.loadPrime ("lime", "lime_mouse_show", "v"); + private static var lime_mouse_warp = System.loadPrime ("lime", "lime_mouse_warp", "iidv"); } diff --git a/lime/_backend/native/NativeRenderer.hx b/lime/_backend/native/NativeRenderer.hx index f211b3d25..0fc3402c5 100644 --- a/lime/_backend/native/NativeRenderer.hx +++ b/lime/_backend/native/NativeRenderer.hx @@ -38,7 +38,7 @@ class NativeRenderer { public function create ():Void { - handle = lime_renderer_create (parent.window.backend.handle); + handle = lime_renderer_create.call (parent.window.backend.handle); #if lime_console @@ -47,7 +47,7 @@ class NativeRenderer { #else - var type = lime_renderer_get_type (handle); + var type = lime_renderer_get_type.call (handle); switch (type) { @@ -92,23 +92,23 @@ class NativeRenderer { } #end - lime_renderer_unlock (handle); + lime_renderer_unlock.call (handle); } - lime_renderer_flip (handle); + lime_renderer_flip.call (handle); } public function render ():Void { - lime_renderer_make_current (handle); + lime_renderer_make_current.call (handle); if (!useHardware) { #if lime_cairo - var lock = lime_renderer_lock (handle); + var lock = lime_renderer_lock.call (handle); if (cacheLock == null || cacheLock.pixels != lock.pixels || cacheLock.width != lock.width || cacheLock.height != lock.height) { @@ -149,13 +149,13 @@ class NativeRenderer { - private static var lime_renderer_create = System.load ("lime", "lime_renderer_create", 1); - private static var lime_renderer_flip = System.load ("lime", "lime_renderer_flip", 1); - private static var lime_renderer_get_context = System.load ("lime", "lime_renderer_get_context", 1); - private static var lime_renderer_get_type = System.load ("lime", "lime_renderer_get_type", 1); - private static var lime_renderer_lock = System.load ("lime", "lime_renderer_lock", 1); - private static var lime_renderer_make_current = System.load ("lime", "lime_renderer_make_current", 1); - private static var lime_renderer_unlock = System.load ("lime", "lime_renderer_unlock", 1); + private static var lime_renderer_create = System.loadPrime ("lime", "lime_renderer_create", "dd"); + private static var lime_renderer_flip = System.loadPrime ("lime", "lime_renderer_flip", "dv"); + private static var lime_renderer_get_context = System.loadPrime ("lime", "lime_renderer_get_context", "dd"); + private static var lime_renderer_get_type = System.loadPrime ("lime", "lime_renderer_get_type", "ds"); + private static var lime_renderer_lock = System.loadPrime ("lime", "lime_renderer_lock", "do"); + private static var lime_renderer_make_current = System.loadPrime ("lime", "lime_renderer_make_current", "dv"); + private static var lime_renderer_unlock = System.loadPrime ("lime", "lime_renderer_unlock", "dv"); } diff --git a/lime/_backend/native/NativeWindow.hx b/lime/_backend/native/NativeWindow.hx index 96a834b2e..8000478ca 100644 --- a/lime/_backend/native/NativeWindow.hx +++ b/lime/_backend/native/NativeWindow.hx @@ -32,7 +32,7 @@ class NativeWindow { if (handle != null) { - lime_window_close (handle); + lime_window_close.call (handle); handle = null; } @@ -77,15 +77,15 @@ class NativeWindow { } - handle = lime_window_create (application.backend.handle, parent.width, parent.height, flags, title); + handle = lime_window_create.call (application.backend.handle, parent.width, parent.height, flags, title); if (handle != null) { - parent.__width = lime_window_get_width (handle); - parent.__height = lime_window_get_height (handle); - parent.__x = lime_window_get_x (handle); - parent.__y = lime_window_get_y (handle); - parent.id = lime_window_get_id (handle); + parent.__width = lime_window_get_width.call (handle); + parent.__height = lime_window_get_height.call (handle); + parent.__x = lime_window_get_x.call (handle); + parent.__y = lime_window_get_y.call (handle); + parent.id = lime_window_get_id.call (handle); } @@ -96,7 +96,7 @@ class NativeWindow { if (handle != null) { - lime_window_focus (handle); + lime_window_focus.call (handle); } @@ -130,7 +130,7 @@ class NativeWindow { if (handle != null) { - return lime_window_get_enable_text_events (handle); + return lime_window_get_enable_text_events.call (handle); } @@ -143,7 +143,7 @@ class NativeWindow { if (handle != null) { - lime_window_move (handle, x, y); + lime_window_move.call (handle, x, y); } @@ -154,7 +154,7 @@ class NativeWindow { if (handle != null) { - lime_window_resize (handle, width, height); + lime_window_resize.call (handle, width, height); } @@ -165,7 +165,7 @@ class NativeWindow { if (handle != null) { - return lime_window_set_enable_text_events (handle, value); + return lime_window_set_enable_text_events.call (handle, value); } @@ -178,7 +178,7 @@ class NativeWindow { if (handle != null) { - value = lime_window_set_fullscreen (handle, value); + value = lime_window_set_fullscreen.call (handle, value); if (value) { @@ -197,7 +197,7 @@ class NativeWindow { if (handle != null) { - lime_window_set_icon (handle, image.buffer); + lime_window_set_icon.call (handle, image.buffer); } @@ -208,7 +208,7 @@ class NativeWindow { if (handle != null) { - return lime_window_set_minimized (handle, value); + return lime_window_set_minimized.call (handle, value); } @@ -221,7 +221,7 @@ class NativeWindow { if (handle != null) { - return lime_window_set_title (handle, value); + return lime_window_set_title.call (handle, value); } @@ -230,22 +230,22 @@ class NativeWindow { } - private static var lime_window_close = System.load ("lime", "lime_window_close", 1); - private static var lime_window_create = System.load ("lime", "lime_window_create", 5); - private static var lime_window_focus = System.load ("lime", "lime_window_focus", 1); - private static var lime_window_get_enable_text_events = System.load ("lime", "lime_window_get_enable_text_events", 1); - private static var lime_window_get_height = System.load ("lime", "lime_window_get_height", 1); - private static var lime_window_get_id = System.load ("lime", "lime_window_get_id", 1); - private static var lime_window_get_width = System.load ("lime", "lime_window_get_width", 1); - private static var lime_window_get_x = System.load ("lime", "lime_window_get_x", 1); - private static var lime_window_get_y = System.load ("lime", "lime_window_get_y", 1); - private static var lime_window_move = System.load ("lime", "lime_window_move", 3); - private static var lime_window_resize = System.load ("lime", "lime_window_resize", 3); - private static var lime_window_set_enable_text_events = System.load ("lime", "lime_window_set_enable_text_events", 2); - private static var lime_window_set_fullscreen = System.load ("lime", "lime_window_set_fullscreen", 2); - private static var lime_window_set_icon = System.load ("lime", "lime_window_set_icon", 2); - private static var lime_window_set_minimized = System.load ("lime", "lime_window_set_minimized", 2); - private static var lime_window_set_title = System.load ("lime", "lime_window_set_title", 2); + private static var lime_window_close = System.loadPrime ("lime", "lime_window_close", "dv"); + private static var lime_window_create = System.loadPrime ("lime", "lime_window_create", "diiisd"); + private static var lime_window_focus = System.loadPrime ("lime", "lime_window_focus", "dv"); + private static var lime_window_get_enable_text_events = System.loadPrime ("lime", "lime_window_get_enable_text_events", "db"); + private static var lime_window_get_height = System.loadPrime ("lime", "lime_window_get_height", "di"); + private static var lime_window_get_id = System.loadPrime ("lime", "lime_window_get_id", "di"); + private static var lime_window_get_width = System.loadPrime ("lime", "lime_window_get_width", "di"); + private static var lime_window_get_x = System.loadPrime ("lime", "lime_window_get_x", "di"); + private static var lime_window_get_y = System.loadPrime ("lime", "lime_window_get_y", "di"); + private static var lime_window_move = System.loadPrime ("lime", "lime_window_move", "diiv"); + private static var lime_window_resize = System.loadPrime ("lime", "lime_window_resize", "diiv"); + private static var lime_window_set_enable_text_events = System.loadPrime ("lime", "lime_window_set_enable_text_events", "dbv"); + private static var lime_window_set_fullscreen = System.loadPrime ("lime", "lime_window_set_fullscreen", "dbb"); + private static var lime_window_set_icon = System.loadPrime ("lime", "lime_window_set_icon", "dov"); + private static var lime_window_set_minimized = System.loadPrime ("lime", "lime_window_set_minimized", "dbb"); + private static var lime_window_set_title = System.loadPrime ("lime", "lime_window_set_title", "dss"); } diff --git a/lime/audio/AudioBuffer.hx b/lime/audio/AudioBuffer.hx index a3a6f17fc..91bdf464d 100644 --- a/lime/audio/AudioBuffer.hx +++ b/lime/audio/AudioBuffer.hx @@ -78,7 +78,7 @@ class AudioBuffer { #elseif (cpp || neko || nodejs) - var data = lime_audio_load (bytes); + var data = lime_audio_load.call (bytes); if (data != null) { @@ -118,7 +118,7 @@ class AudioBuffer { #elseif (cpp || neko || nodejs) - var data = lime_audio_load (path); + var data = lime_audio_load.call (path); if (data != null) { @@ -179,7 +179,7 @@ class AudioBuffer { #if (cpp || neko || nodejs) - private static var lime_audio_load:Dynamic = System.load ("lime", "lime_audio_load", 1); + private static var lime_audio_load:Dynamic = System.loadPrime ("lime", "lime_audio_load", "oo"); #end diff --git a/lime/graphics/cairo/Cairo.hx b/lime/graphics/cairo/Cairo.hx index 38f3a8f5f..bc7947f38 100644 --- a/lime/graphics/cairo/Cairo.hx +++ b/lime/graphics/cairo/Cairo.hx @@ -17,6 +17,8 @@ class Cairo { public var dash (get, set):Array; public var dashCount (get, never):Int; public var fillRule (get, set):CairoFillRule; + public var fontFace (get, set):CairoFontFace; + public var fontOptions (get, set):CairoFontOptions; public var groupTarget (get, never):CairoSurface; public var hasCurrentPoint (get, never):Bool; public var lineCap (get, set):CairoLineCap; @@ -39,7 +41,7 @@ class Cairo { if (surface != null) { #if lime_cairo - handle = lime_cairo_create (surface); + handle = lime_cairo_create.call (surface); #end } @@ -49,8 +51,8 @@ class Cairo { public function recreate (surface:CairoSurface) : Void { #if lime_cairo - destroy(); - handle = lime_cairo_create (surface); + destroy (); + handle = lime_cairo_create.call (surface); #end } @@ -58,7 +60,7 @@ 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); + lime_cairo_arc.call (handle, xc, yc, radius, angle1, angle2); #end } @@ -67,7 +69,7 @@ class Cairo { public function arcNegative (xc:Float, yc:Float, radius:Float, angle1:Float, angle2:Float):Void { #if lime_cairo - lime_cairo_arc_negative (handle, xc, yc, radius, angle1, angle2); + lime_cairo_arc_negative.call (handle, xc, yc, radius, angle1, angle2); #end } @@ -76,7 +78,7 @@ class Cairo { public function clip ():Void { #if lime_cairo - lime_cairo_clip (handle); + lime_cairo_clip.call (handle); #end } @@ -85,7 +87,7 @@ class Cairo { public function clipExtents (x1:Float, y1:Float, x2:Float, y2:Float):Void { #if lime_cairo - lime_cairo_clip_extents (handle, x1, y1, x2, y2); + lime_cairo_clip_extents.call (handle, x1, y1, x2, y2); #end } @@ -94,7 +96,7 @@ class Cairo { public function clipPreserve ():Void { #if lime_cairo - lime_cairo_clip_preserve (handle); + lime_cairo_clip_preserve.call (handle); #end } @@ -103,7 +105,7 @@ class Cairo { public function closePath ():Void { #if lime_cairo - lime_cairo_close_path (handle); + lime_cairo_close_path.call (handle); #end } @@ -112,7 +114,7 @@ class Cairo { public function copyPage ():Void { #if lime_cairo - lime_cairo_copy_page (handle); + lime_cairo_copy_page.call (handle); #end } @@ -121,7 +123,7 @@ class Cairo { public function curveTo (x1:Float, y1:Float, x2:Float, y2:Float, x3:Float, y3:Float):Void { #if lime_cairo - lime_cairo_curve_to (handle, x1, y1, x2, y2, x3, y3); + lime_cairo_curve_to.call (handle, x1, y1, x2, y2, x3, y3); #end } @@ -130,7 +132,7 @@ class Cairo { public function destroy ():Void { #if lime_cairo - lime_cairo_destroy (handle); + lime_cairo_destroy.call (handle); #end } @@ -139,7 +141,7 @@ class Cairo { public function fill ():Void { #if lime_cairo - lime_cairo_fill (handle); + lime_cairo_fill.call (handle); #end } @@ -148,7 +150,7 @@ class Cairo { public function fillExtents (x1:Float, y1:Float, x2:Float, y2:Float):Void { #if lime_cairo - lime_cairo_fill_extents (x1, y1, x2, y2); + lime_cairo_fill_extents.call (x1, y1, x2, y2); #end } @@ -157,7 +159,7 @@ class Cairo { public function fillPreserve ():Void { #if lime_cairo - lime_cairo_fill_preserve (handle); + lime_cairo_fill_preserve.call (handle); #end } @@ -166,7 +168,7 @@ class Cairo { public function identityMatrix ():Void { #if lime_cairo - lime_cairo_identity_matrix (handle); + lime_cairo_identity_matrix.call (handle); #end } @@ -175,7 +177,7 @@ class Cairo { public function inClip (x:Float, y:Float):Bool { #if lime_cairo - return lime_cairo_in_clip (handle, x, y); + return lime_cairo_in_clip.call (handle, x, y); #else return false; #end @@ -186,7 +188,7 @@ class Cairo { public function inFill (x:Float, y:Float):Bool { #if lime_cairo - return lime_cairo_in_fill (handle, x, y); + return lime_cairo_in_fill.call (handle, x, y); #else return false; #end @@ -197,7 +199,7 @@ class Cairo { public function inStroke (x:Float, y:Float):Bool { #if lime_cairo - return lime_cairo_in_stroke (handle, x, y); + return lime_cairo_in_stroke.call (handle, x, y); #else return false; #end @@ -208,7 +210,7 @@ class Cairo { public function lineTo (x:Float, y:Float):Void { #if lime_cairo - lime_cairo_line_to (handle, x, y); + lime_cairo_line_to.call (handle, x, y); #end } @@ -217,7 +219,7 @@ class Cairo { public function moveTo (x:Float, y:Float):Void { #if lime_cairo - lime_cairo_move_to (handle, x, y); + lime_cairo_move_to.call (handle, x, y); #end } @@ -226,7 +228,7 @@ class Cairo { public function mask (pattern:CairoPattern):Void { #if lime_cairo - lime_cairo_mask (handle, pattern); + lime_cairo_mask.call (handle, pattern); #end } @@ -235,7 +237,7 @@ class Cairo { public function maskSurface (surface:CairoSurface, x:Float, y:Float):Void { #if lime_cairo - lime_cairo_mask_surface (surface, x, y); + lime_cairo_mask_surface.call (surface, x, y); #end } @@ -244,7 +246,7 @@ class Cairo { public function newPath ():Void { #if lime_cairo - lime_cairo_new_path (handle); + lime_cairo_new_path.call (handle); #end } @@ -253,7 +255,7 @@ class Cairo { public function paint ():Void { #if lime_cairo - lime_cairo_paint (handle); + lime_cairo_paint.call (handle); #end } @@ -262,7 +264,7 @@ class Cairo { public function paintWithAlpha (alpha:Float):Void { #if lime_cairo - lime_cairo_paint_with_alpha (handle, alpha); + lime_cairo_paint_with_alpha.call (handle, alpha); #end } @@ -271,7 +273,7 @@ class Cairo { public function popGroup ():CairoPattern { #if lime_cairo - return lime_cairo_pop_group (handle); + return lime_cairo_pop_group.call (handle); #else return null; #end @@ -282,7 +284,7 @@ class Cairo { public function popGroupToSource ():Void { #if lime_cairo - lime_cairo_pop_group_to_source (handle); + lime_cairo_pop_group_to_source.call (handle); #end } @@ -291,7 +293,7 @@ class Cairo { public function pushGroup ():Void { #if lime_cairo - lime_cairo_push_group (handle); + lime_cairo_push_group.call (handle); #end } @@ -300,7 +302,7 @@ class Cairo { public function pushGroupWithContent (content:CairoContent):Void { #if lime_cairo - lime_cairo_push_group_with_content (handle, content); + lime_cairo_push_group_with_content.call (handle, content); #end } @@ -309,7 +311,7 @@ class Cairo { public function rectangle (x:Float, y:Float, width:Float, height:Float):Void { #if lime_cairo - lime_cairo_rectangle (handle, x, y, width, height); + lime_cairo_rectangle.call (handle, x, y, width, height); #end } @@ -318,7 +320,7 @@ class Cairo { public function reference ():Void { #if lime_cairo - lime_cairo_reference (handle); + lime_cairo_reference.call (handle); #end } @@ -327,7 +329,7 @@ class Cairo { public function relCurveTo (dx1:Float, dy1:Float, dx2:Float, dy2:Float, dx3:Float, dy3:Float):Void { #if lime_cairo - lime_cairo_rel_curve_to (handle, dx1, dy1, dx2, dy2, dx3, dy3); + lime_cairo_rel_curve_to.call (handle, dx1, dy1, dx2, dy2, dx3, dy3); #end } @@ -336,7 +338,7 @@ class Cairo { public function relLineTo (dx:Float, dy:Float):Void { #if lime_cairo - lime_cairo_rel_line_to (handle, dx, dy); + lime_cairo_rel_line_to.call (handle, dx, dy); #end } @@ -345,7 +347,7 @@ class Cairo { public function relMoveTo (dx:Float, dy:Float):Void { #if lime_cairo - lime_cairo_rel_move_to (handle, dx, dy); + lime_cairo_rel_move_to.call (handle, dx, dy); #end } @@ -354,7 +356,7 @@ class Cairo { public function resetClip ():Void { #if lime_cairo - lime_cairo_reset_clip (handle); + lime_cairo_reset_clip.call (handle); #end } @@ -363,7 +365,7 @@ class Cairo { public function restore ():Void { #if lime_cairo - lime_cairo_restore (handle); + lime_cairo_restore.call (handle); #end } @@ -372,43 +374,17 @@ class Cairo { public function save ():Void { #if lime_cairo - lime_cairo_save (handle); + lime_cairo_save.call (handle); #end } - public function setFontFace( face:CairoFont ) { + + public function setFontSize (size:Float):Void { #if lime_cairo - lime_cairo_set_font_face( handle, face.handle ); + lime_cairo_set_font_size.call (handle, size); #end - } - - public function setFontSize( size:Float ) { - - #if lime_cairo - lime_cairo_set_font_size( handle, size ); - #end - } - - public function getFontOptions ():CairoFontOptions { - - #if lime_cairo - return new CairoFontOptions( handle ); - #end - - return null; - - } - - - public function setFontOptions (value:CairoFontOptions):CairoFontOptions { - - #if lime_cairo - lime_cairo_set_font_options (handle, value.handle); - #end - - return value; } @@ -416,7 +392,7 @@ class Cairo { public function setSourceRGB (r:Float, g:Float, b:Float):Void { #if lime_cairo - lime_cairo_set_source_rgb (handle, r, g, b); + lime_cairo_set_source_rgb.call (handle, r, g, b); #end } @@ -425,7 +401,7 @@ class Cairo { public function setSourceRGBA (r:Float, g:Float, b:Float, a:Float):Void { #if lime_cairo - lime_cairo_set_source_rgba (handle, r, g, b, a); + lime_cairo_set_source_rgba.call (handle, r, g, b, a); #end } @@ -434,7 +410,7 @@ class Cairo { public function setSourceSurface (surface:CairoSurface, x:Float, y:Float):Void { #if lime_cairo - lime_cairo_set_source_surface (handle, surface, x, y); + lime_cairo_set_source_surface.call (handle, surface, x, y); #end } @@ -443,15 +419,16 @@ class Cairo { public function showPage ():Void { #if lime_cairo - lime_cairo_show_page (handle); + lime_cairo_show_page.call (handle); #end } - public function showText ( utf8:String ) { + + public function showText (utf8:String):Void { #if lime_cairo - lime_cairo_show_text( handle, utf8 ); + lime_cairo_show_text.call (handle, utf8); #end } @@ -460,7 +437,7 @@ class Cairo { public function status ():CairoStatus { #if lime_cairo - return lime_cairo_status (handle); + return lime_cairo_status.call (handle); #else return cast 0; #end @@ -471,7 +448,7 @@ class Cairo { public function stroke ():Void { #if lime_cairo - lime_cairo_stroke (handle); + lime_cairo_stroke.call (handle); #end } @@ -480,7 +457,7 @@ class Cairo { public function strokeExtents (x1:Float, y1:Float, x2:Float, y2:Float):Void { #if lime_cairo - lime_cairo_stroke_extents (handle, x1, y1, x2, y2); + lime_cairo_stroke_extents.call (handle, x1, y1, x2, y2); #end } @@ -489,7 +466,7 @@ class Cairo { public function strokePreserve ():Void { #if lime_cairo - lime_cairo_stroke_preserve (handle); + lime_cairo_stroke_preserve.call (handle); #end } @@ -498,7 +475,7 @@ class Cairo { public function transform (matrix:Matrix3):Void { #if lime_cairo - lime_cairo_transform (handle, matrix); + lime_cairo_transform.call (handle, matrix); #end } @@ -506,7 +483,7 @@ class Cairo { public function rotate (amount:Float):Void { #if lime_cairo - lime_cairo_rotate (handle, amount); + lime_cairo_rotate.call (handle, amount); #end } @@ -514,7 +491,7 @@ class Cairo { public function scale (x:Float, y:Float):Void { #if lime_cairo - lime_cairo_scale (handle, x, y); + lime_cairo_scale.call (handle, x, y); #end } @@ -523,7 +500,7 @@ class Cairo { public function translate (x:Float, y:Float):Void { #if lime_cairo - lime_cairo_translate (handle, x, y); + lime_cairo_translate.call (handle, x, y); #end } @@ -541,7 +518,7 @@ class Cairo { @:noCompletion private function get_antialias ():CairoAntialias { #if lime_cairo - return lime_cairo_get_antialias (handle); + return lime_cairo_get_antialias.call (handle); #end return cast 0; @@ -552,7 +529,7 @@ class Cairo { @:noCompletion private function set_antialias (value:CairoAntialias):CairoAntialias { #if lime_cairo - lime_cairo_set_antialias (handle, value); + lime_cairo_set_antialias.call (handle, value); #end return value; @@ -563,7 +540,7 @@ class Cairo { @:noCompletion private function get_currentPoint ():Vector2 { #if lime_cairo - var vec = lime_cairo_get_current_point (handle); + var vec = lime_cairo_get_current_point.call (handle); return new Vector2 (vec.x, vec.y); #end @@ -575,7 +552,7 @@ class Cairo { @:noCompletion private function get_dash ():Array { #if lime_cairo - return lime_cairo_get_dash (handle); + return lime_cairo_get_dash.call (handle); #end return []; @@ -586,7 +563,7 @@ class Cairo { @:noCompletion private function set_dash (value:Array):Array { #if lime_cairo - lime_cairo_set_dash (handle, value); + lime_cairo_set_dash.call (handle, value); #end return value; @@ -597,7 +574,7 @@ class Cairo { @:noCompletion private function get_dashCount ():Int { #if lime_cairo - return lime_cairo_get_dash_count (handle); + return lime_cairo_get_dash_count.call (handle); #end return 0; @@ -608,7 +585,7 @@ class Cairo { @:noCompletion private function get_fillRule ():CairoFillRule { #if lime_cairo - return lime_cairo_get_fill_rule (handle); + return lime_cairo_get_fill_rule.call (handle); #end return cast 0; @@ -619,7 +596,51 @@ class Cairo { @:noCompletion private function set_fillRule (value:CairoFillRule):CairoFillRule { #if lime_cairo - lime_cairo_set_fill_rule (handle, value); + lime_cairo_set_fill_rule.call (handle, value); + #end + + return value; + + } + + + @:noCompletion private function get_fontFace ():CairoFontFace { + + #if lime_cairo + return lime_cairo_get_font_face.call (handle); + #end + + return cast 0; + + } + + + @:noCompletion private function set_fontFace (value:CairoFontFace):CairoFontFace { + + #if lime_cairo + lime_cairo_set_font_face.call (handle, value); + #end + + return value; + + } + + + @:noCompletion private function get_fontOptions ():CairoFontOptions { + + #if lime_cairo + return lime_cairo_get_font_options.call (handle); + #else + return null; + #end + + } + + + @:noCompletion private function set_fontOptions (value:CairoFontOptions):CairoFontOptions { + + #if lime_cairo + lime_cairo_set_font_options.call (handle, value); #end return value; @@ -630,7 +651,7 @@ class Cairo { @:noCompletion private function get_groupTarget ():CairoSurface { #if lime_cairo - return lime_cairo_get_group_target (handle); + return lime_cairo_get_group_target.call (handle); #else return cast 0; #end @@ -641,7 +662,7 @@ class Cairo { @:noCompletion private function get_hasCurrentPoint ():Bool { #if lime_cairo - return lime_cairo_has_current_point (handle); + return lime_cairo_has_current_point.call (handle); #end return false; @@ -652,7 +673,7 @@ class Cairo { @:noCompletion private function get_lineCap ():CairoLineCap { #if lime_cairo - return lime_cairo_get_line_cap (handle); + return lime_cairo_get_line_cap.call (handle); #end return 0; @@ -663,7 +684,7 @@ class Cairo { @:noCompletion private function set_lineCap (value:CairoLineCap):CairoLineCap { #if lime_cairo - lime_cairo_set_line_cap (handle, value); + lime_cairo_set_line_cap.call (handle, value); #end return value; @@ -674,7 +695,7 @@ class Cairo { @:noCompletion private function get_lineJoin ():CairoLineJoin { #if lime_cairo - return lime_cairo_get_line_join (handle); + return lime_cairo_get_line_join.call (handle); #end return 0; @@ -685,7 +706,7 @@ class Cairo { @:noCompletion private function set_lineJoin (value:CairoLineJoin):CairoLineJoin { #if lime_cairo - lime_cairo_set_line_join (handle, value); + lime_cairo_set_line_join.call (handle, value); #end return value; @@ -696,7 +717,7 @@ class Cairo { @:noCompletion private function get_lineWidth ():Float { #if lime_cairo - return lime_cairo_get_line_width (handle); + return lime_cairo_get_line_width.call (handle); #end return 0; @@ -707,7 +728,7 @@ class Cairo { @:noCompletion private function set_lineWidth (value:Float):Float { #if lime_cairo - lime_cairo_set_line_width (handle, value); + lime_cairo_set_line_width.call (handle, value); #end return value; @@ -718,7 +739,7 @@ class Cairo { @:noCompletion private function get_matrix ():Matrix3 { #if lime_cairo - var m = lime_cairo_get_matrix (handle); + var m = lime_cairo_get_matrix.call (handle); return new Matrix3 (m.a, m.b, m.c, m.d, m.tx, m.ty); #end @@ -730,7 +751,7 @@ class Cairo { @:noCompletion private function set_matrix (value:Matrix3):Matrix3 { #if lime_cairo - lime_cairo_set_matrix (handle, value); + lime_cairo_set_matrix.call (handle, value); #end return value; @@ -741,7 +762,7 @@ class Cairo { @:noCompletion private function get_miterLimit ():Float { #if lime_cairo - return lime_cairo_get_miter_limit (handle); + return lime_cairo_get_miter_limit.call (handle); #end return 0; @@ -752,7 +773,7 @@ class Cairo { @:noCompletion private function set_miterLimit (value:Float):Float { #if lime_cairo - lime_cairo_set_miter_limit (handle, value); + lime_cairo_set_miter_limit.call (handle, value); #end return value; @@ -763,7 +784,7 @@ class Cairo { @:noCompletion private function get_operator ():CairoOperator { #if lime_cairo - return lime_cairo_get_operator (handle); + return lime_cairo_get_operator.call (handle); #end return cast 0; @@ -774,7 +795,7 @@ class Cairo { @:noCompletion private function set_operator (value:CairoOperator):CairoOperator { #if lime_cairo - lime_cairo_set_operator (handle, value); + lime_cairo_set_operator.call (handle, value); #end return value; @@ -785,7 +806,7 @@ class Cairo { @:noCompletion private function get_referenceCount ():Int { #if lime_cairo - return lime_cairo_get_reference_count (); + return lime_cairo_get_reference_count.call (); #else return 0; #end @@ -796,7 +817,7 @@ class Cairo { @:noCompletion private function get_source ():CairoPattern { #if lime_cairo - return lime_cairo_get_source (handle); + return lime_cairo_get_source.call (handle); #end return cast 0; @@ -807,7 +828,7 @@ class Cairo { @:noCompletion private function set_source (value:CairoPattern):CairoPattern { #if lime_cairo - lime_cairo_set_source (handle, value); + lime_cairo_set_source.call (handle, value); #end return value; @@ -818,7 +839,7 @@ class Cairo { @:noCompletion private function get_target ():CairoSurface { #if lime_cairo - return lime_cairo_get_target (handle); + return lime_cairo_get_target.call (handle); #else return cast 0; #end @@ -829,7 +850,7 @@ class Cairo { @:noCompletion private function get_tolerance ():Float { #if lime_cairo - return lime_cairo_get_tolerance (); + return lime_cairo_get_tolerance.call (); #else return 0; #end @@ -840,7 +861,7 @@ class Cairo { @:noCompletion private function set_tolerance (value:Float):Float { #if lime_cairo - lime_cairo_set_tolerance (value); + lime_cairo_set_tolerance.call (value); #end return value; @@ -851,7 +872,7 @@ class Cairo { private static function get_version ():Int { #if lime_cairo - return lime_cairo_version (); + return lime_cairo_version.call (); #else return 0; #end @@ -862,7 +883,7 @@ class Cairo { private static function get_versionString ():String { #if lime_cairo - return lime_cairo_version_string (); + return lime_cairo_version_string.call (); #else return ""; #end @@ -878,89 +899,90 @@ class Cairo { #if lime_cairo - private static var lime_cairo_arc = System.load ("lime", "lime_cairo_arc", -1); - private static var lime_cairo_arc_negative = System.load ("lime", "lime_cairo_arc_negative", -1); - private static var lime_cairo_clip = System.load ("lime", "lime_cairo_clip", 1); - private static var lime_cairo_clip_preserve = System.load ("lime", "lime_cairo_clip_preserve", 1); - private static var lime_cairo_clip_extents = System.load ("lime", "lime_cairo_clip_extents", 5); - private static var lime_cairo_close_path = System.load ("lime", "lime_cairo_close_path", 1); - private static var lime_cairo_copy_page = System.load ("lime", "lime_cairo_copy_page", 1); - private static var lime_cairo_create = System.load ("lime", "lime_cairo_create", 1); - private static var lime_cairo_curve_to = System.load ("lime", "lime_cairo_curve_to", -1); - private static var lime_cairo_destroy = System.load ("lime", "lime_cairo_destroy", 1); - private static var lime_cairo_fill = System.load ("lime", "lime_cairo_fill", 1); - private static var lime_cairo_fill_extents = System.load ("lime", "lime_cairo_fill_extents", 5); - private static var lime_cairo_fill_preserve = System.load ("lime", "lime_cairo_fill_preserve", 1); - private static var lime_cairo_get_antialias = System.load ("lime", "lime_cairo_get_antialias", 1); - private static var lime_cairo_get_current_point = System.load ("lime", "lime_cairo_get_current_point", 1); - private static var lime_cairo_get_dash = System.load ("lime", "lime_cairo_get_dash", 1); - private static var lime_cairo_get_dash_count = System.load ("lime", "lime_cairo_get_dash_count", 1); - private static var lime_cairo_get_fill_rule = System.load ("lime", "lime_cairo_get_fill_rule", 1); - private static var lime_cairo_get_group_target = System.load ("lime", "lime_cairo_get_group_target", 1); - private static var lime_cairo_get_line_cap = System.load ("lime", "lime_cairo_get_line_cap", 1); - private static var lime_cairo_get_line_join = System.load ("lime", "lime_cairo_get_line_join", 1); - private static var lime_cairo_get_line_width = System.load ("lime", "lime_cairo_get_line_width", 1); - private static var lime_cairo_get_matrix = System.load ("lime", "lime_cairo_get_matrix", 1); - private static var lime_cairo_get_miter_limit = System.load ("lime", "lime_cairo_get_miter_limit", 1); - private static var lime_cairo_get_operator = System.load ("lime", "lime_cairo_get_operator", 1); - private static var lime_cairo_get_reference_count = System.load ("lime", "lime_cairo_get_reference_count", 1); - private static var lime_cairo_get_source = System.load ("lime", "lime_cairo_get_source", 1); - private static var lime_cairo_get_target = System.load ("lime", "lime_cairo_get_target", 1); - private static var lime_cairo_get_tolerance = System.load ("lime", "lime_cairo_get_tolerance", 1); - private static var lime_cairo_has_current_point = System.load ("lime", "lime_cairo_has_current_point", 1); - private static var lime_cairo_identity_matrix = System.load ("lime", "lime_cairo_identity_matrix", 1); - private static var lime_cairo_in_clip = System.load ("lime", "lime_cairo_in_clip", 3); - private static var lime_cairo_in_fill = System.load ("lime", "lime_cairo_in_fill", 3); - private static var lime_cairo_in_stroke = System.load ("lime", "lime_cairo_in_stroke", 3); - private static var lime_cairo_line_to = System.load ("lime", "lime_cairo_line_to", 3); - private static var lime_cairo_mask = System.load ("lime", "lime_cairo_mask", 2); - private static var lime_cairo_mask_surface = System.load ("lime", "lime_cairo_mask_surface", 4); - private static var lime_cairo_move_to = System.load ("lime", "lime_cairo_move_to", 3); - private static var lime_cairo_new_path = System.load ("lime", "lime_cairo_new_path", 1); - private static var lime_cairo_paint = System.load ("lime", "lime_cairo_paint", 1); - private static var lime_cairo_paint_with_alpha = System.load ("lime", "lime_cairo_paint_with_alpha", 2); - private static var lime_cairo_pop_group = System.load ("lime", "lime_cairo_pop_group", 1); - private static var lime_cairo_pop_group_to_source = System.load ("lime", "lime_cairo_pop_group_to_source", 1); - private static var lime_cairo_push_group = System.load ("lime", "lime_cairo_push_group", 1); - private static var lime_cairo_push_group_with_content = System.load ("lime", "lime_cairo_push_group_with_content", 2); - private static var lime_cairo_rectangle = System.load ("lime", "lime_cairo_rectangle", 5); - private static var lime_cairo_reference = System.load ("lime", "lime_cairo_reference", 1); - private static var lime_cairo_rel_curve_to = System.load ("lime", "lime_cairo_rel_curve_to", -1); - private static var lime_cairo_rel_line_to = System.load ("lime", "lime_cairo_rel_line_to", 3); - private static var lime_cairo_rel_move_to = System.load ("lime", "lime_cairo_rel_move_to", 3); - private static var lime_cairo_reset_clip = System.load ("lime", "lime_cairo_reset_clip", 1); - private static var lime_cairo_restore = System.load ("lime", "lime_cairo_restore", 1); - private static var lime_cairo_save = System.load ("lime", "lime_cairo_save", 1); - private static var lime_cairo_set_antialias = System.load ("lime", "lime_cairo_set_antialias", 2); - private static var lime_cairo_set_dash = System.load ("lime", "lime_cairo_set_dash", 2); - private static var lime_cairo_set_font_face = System.load ("lime", "lime_cairo_set_font_face", 2); - private static var lime_cairo_set_font_size = System.load ("lime", "lime_cairo_set_font_size", 2); - private static var lime_cairo_set_fill_rule = System.load ("lime", "lime_cairo_set_fill_rule", 2); - private static var lime_cairo_set_font_options = System.load ("lime", "lime_cairo_set_font_options", 2); - private static var lime_cairo_get_font_options = System.load ("lime", "lime_cairo_get_font_options", 1); - private static var lime_cairo_set_line_cap = System.load ("lime", "lime_cairo_set_line_cap", 2); - private static var lime_cairo_set_line_join = System.load ("lime", "lime_cairo_set_line_join", 2); - private static var lime_cairo_set_line_width = System.load ("lime", "lime_cairo_set_line_width", 2); - private static var lime_cairo_set_matrix = System.load ("lime", "lime_cairo_set_matrix", 2); - 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_set_tolerance = System.load ("lime", "lime_cairo_set_tolerance", 2); - private static var lime_cairo_show_page = System.load ("lime", "lime_cairo_show_page", 1); - private static var lime_cairo_show_text = System.load ("lime", "lime_cairo_show_text", 2); - private static var lime_cairo_status = System.load ("lime", "lime_cairo_status", 1); - private static var lime_cairo_stroke = System.load ("lime", "lime_cairo_stroke", 1); - private static var lime_cairo_stroke_extents = System.load ("lime", "lime_cairo_stroke_extents", 5); - private static var lime_cairo_stroke_preserve = System.load ("lime", "lime_cairo_stroke_preserve", 1); - private static var lime_cairo_transform = System.load ("lime", "lime_cairo_transform", 2); - private static var lime_cairo_rotate = System.load ("lime", "lime_cairo_rotate", 2); - private static var lime_cairo_scale = System.load ("lime", "lime_cairo_scale", 3); - private static var lime_cairo_translate = System.load ("lime", "lime_cairo_translate", 3); - private static var lime_cairo_version = System.load ("lime", "lime_cairo_version", 0); - private static var lime_cairo_version_string = System.load ("lime", "lime_cairo_version_string", 0); + private static var lime_cairo_arc = System.loadPrime ("lime", "lime_cairo_arc", "ddddddv"); + private static var lime_cairo_arc_negative = System.loadPrime ("lime", "lime_cairo_arc_negative", "ddddddv"); + private static var lime_cairo_clip = System.loadPrime ("lime", "lime_cairo_clip", "dv"); + private static var lime_cairo_clip_preserve = System.loadPrime ("lime", "lime_cairo_clip_preserve", "dv"); + private static var lime_cairo_clip_extents = System.loadPrime ("lime", "lime_cairo_clip_extents", "dddddv"); + private static var lime_cairo_close_path = System.loadPrime ("lime", "lime_cairo_close_path", "dv"); + private static var lime_cairo_copy_page = System.loadPrime ("lime", "lime_cairo_copy_page", "dv"); + private static var lime_cairo_create = System.loadPrime ("lime", "lime_cairo_create", "dd"); + private static var lime_cairo_curve_to = System.loadPrime ("lime", "lime_cairo_curve_to", "dddddddv"); + private static var lime_cairo_destroy = System.loadPrime ("lime", "lime_cairo_destroy", "dv"); + private static var lime_cairo_fill = System.loadPrime ("lime", "lime_cairo_fill", "dv"); + private static var lime_cairo_fill_extents = System.loadPrime ("lime", "lime_cairo_fill_extents", "dddddv"); + private static var lime_cairo_fill_preserve = System.loadPrime ("lime", "lime_cairo_fill_preserve", "dv"); + private static var lime_cairo_get_antialias = System.loadPrime ("lime", "lime_cairo_get_antialias", "di"); + private static var lime_cairo_get_current_point = System.loadPrime ("lime", "lime_cairo_get_current_point", "do"); + private static var lime_cairo_get_dash = System.loadPrime ("lime", "lime_cairo_get_dash", "do"); + private static var lime_cairo_get_dash_count = System.loadPrime ("lime", "lime_cairo_get_dash_count", "di"); + private static var lime_cairo_get_fill_rule = System.loadPrime ("lime", "lime_cairo_get_fill_rule", "di"); + private static var lime_cairo_get_font_face = System.loadPrime ("lime", "lime_cairo_get_font_face", "dd"); + private static var lime_cairo_get_font_options = System.loadPrime ("lime", "lime_cairo_get_font_options", "dd"); + private static var lime_cairo_get_group_target = System.loadPrime ("lime", "lime_cairo_get_group_target", "dd"); + private static var lime_cairo_get_line_cap = System.loadPrime ("lime", "lime_cairo_get_line_cap", "di"); + private static var lime_cairo_get_line_join = System.loadPrime ("lime", "lime_cairo_get_line_join", "di"); + private static var lime_cairo_get_line_width = System.loadPrime ("lime", "lime_cairo_get_line_width", "dd"); + private static var lime_cairo_get_matrix = System.loadPrime ("lime", "lime_cairo_get_matrix", "do"); + private static var lime_cairo_get_miter_limit = System.loadPrime ("lime", "lime_cairo_get_miter_limit", "dd"); + private static var lime_cairo_get_operator = System.loadPrime ("lime", "lime_cairo_get_operator", "di"); + private static var lime_cairo_get_reference_count = System.loadPrime ("lime", "lime_cairo_get_reference_count", "di"); + private static var lime_cairo_get_source = System.loadPrime ("lime", "lime_cairo_get_source", "dd"); + private static var lime_cairo_get_target = System.loadPrime ("lime", "lime_cairo_get_target", "dd"); + private static var lime_cairo_get_tolerance = System.loadPrime ("lime", "lime_cairo_get_tolerance", "dd"); + private static var lime_cairo_has_current_point = System.loadPrime ("lime", "lime_cairo_has_current_point", "db"); + private static var lime_cairo_identity_matrix = System.loadPrime ("lime", "lime_cairo_identity_matrix", "dv"); + private static var lime_cairo_in_clip = System.loadPrime ("lime", "lime_cairo_in_clip", "dddb"); + private static var lime_cairo_in_fill = System.loadPrime ("lime", "lime_cairo_in_fill", "dddb"); + private static var lime_cairo_in_stroke = System.loadPrime ("lime", "lime_cairo_in_stroke", "dddb"); + private static var lime_cairo_line_to = System.loadPrime ("lime", "lime_cairo_line_to", "dddv"); + private static var lime_cairo_mask = System.loadPrime ("lime", "lime_cairo_mask", "ddv"); + private static var lime_cairo_mask_surface = System.loadPrime ("lime", "lime_cairo_mask_surface", "ddddv"); + private static var lime_cairo_move_to = System.loadPrime ("lime", "lime_cairo_move_to", "dddv"); + private static var lime_cairo_new_path = System.loadPrime ("lime", "lime_cairo_new_path", "dv"); + private static var lime_cairo_paint = System.loadPrime ("lime", "lime_cairo_paint", "dv"); + private static var lime_cairo_paint_with_alpha = System.loadPrime ("lime", "lime_cairo_paint_with_alpha", "ddv"); + private static var lime_cairo_pop_group = System.loadPrime ("lime", "lime_cairo_pop_group", "dd"); + private static var lime_cairo_pop_group_to_source = System.loadPrime ("lime", "lime_cairo_pop_group_to_source", "dv"); + private static var lime_cairo_push_group = System.loadPrime ("lime", "lime_cairo_push_group", "dv"); + private static var lime_cairo_push_group_with_content = System.loadPrime ("lime", "lime_cairo_push_group_with_content", "div"); + private static var lime_cairo_rectangle = System.loadPrime ("lime", "lime_cairo_rectangle", "dddddv"); + private static var lime_cairo_reference = System.loadPrime ("lime", "lime_cairo_reference", "dv"); + private static var lime_cairo_rel_curve_to = System.loadPrime ("lime", "lime_cairo_rel_curve_to", "dddddddv"); + private static var lime_cairo_rel_line_to = System.loadPrime ("lime", "lime_cairo_rel_line_to", "dddv"); + private static var lime_cairo_rel_move_to = System.loadPrime ("lime", "lime_cairo_rel_move_to", "dddv"); + private static var lime_cairo_reset_clip = System.loadPrime ("lime", "lime_cairo_reset_clip", "dv"); + private static var lime_cairo_restore = System.loadPrime ("lime", "lime_cairo_restore", "dv"); + private static var lime_cairo_rotate = System.loadPrime ("lime", "lime_cairo_rotate", "ddv"); + private static var lime_cairo_save = System.loadPrime ("lime", "lime_cairo_save", "dv"); + private static var lime_cairo_scale = System.loadPrime ("lime", "lime_cairo_scale", "dddv"); + private static var lime_cairo_set_antialias = System.loadPrime ("lime", "lime_cairo_set_antialias", "div"); + private static var lime_cairo_set_dash = System.loadPrime ("lime", "lime_cairo_set_dash", "dov"); + private static var lime_cairo_set_font_face = System.loadPrime ("lime", "lime_cairo_set_font_face", "ddv"); + private static var lime_cairo_set_font_size = System.loadPrime ("lime", "lime_cairo_set_font_size", "ddv"); + private static var lime_cairo_set_fill_rule = System.loadPrime ("lime", "lime_cairo_set_fill_rule", "div"); + private static var lime_cairo_set_font_options = System.loadPrime ("lime", "lime_cairo_set_font_options", "ddv"); + private static var lime_cairo_set_line_cap = System.loadPrime ("lime", "lime_cairo_set_line_cap", "div"); + private static var lime_cairo_set_line_join = System.loadPrime ("lime", "lime_cairo_set_line_join", "div"); + private static var lime_cairo_set_line_width = System.loadPrime ("lime", "lime_cairo_set_line_width", "ddv"); + private static var lime_cairo_set_matrix = System.loadPrime ("lime", "lime_cairo_set_matrix", "dov"); + private static var lime_cairo_set_miter_limit = System.loadPrime ("lime", "lime_cairo_set_miter_limit", "ddv"); + private static var lime_cairo_set_operator = System.loadPrime ("lime", "lime_cairo_set_operator", "div"); + private static var lime_cairo_set_source = System.loadPrime ("lime", "lime_cairo_set_source", "ddv"); + private static var lime_cairo_set_source_rgb = System.loadPrime ("lime", "lime_cairo_set_source_rgb", "ddddv"); + private static var lime_cairo_set_source_rgba = System.loadPrime ("lime", "lime_cairo_set_source_rgba", "dddddv"); + private static var lime_cairo_set_source_surface = System.loadPrime ("lime", "lime_cairo_set_source_surface", "ddddv"); + private static var lime_cairo_set_tolerance = System.loadPrime ("lime", "lime_cairo_set_tolerance", "ddv"); + private static var lime_cairo_show_page = System.loadPrime ("lime", "lime_cairo_show_page", "dv"); + private static var lime_cairo_show_text = System.loadPrime ("lime", "lime_cairo_show_text", "dsv"); + private static var lime_cairo_status = System.loadPrime ("lime", "lime_cairo_status", "di"); + private static var lime_cairo_stroke = System.loadPrime ("lime", "lime_cairo_stroke", "dv"); + private static var lime_cairo_stroke_extents = System.loadPrime ("lime", "lime_cairo_stroke_extents", "dddddv"); + private static var lime_cairo_stroke_preserve = System.loadPrime ("lime", "lime_cairo_stroke_preserve", "dv"); + private static var lime_cairo_transform = System.loadPrime ("lime", "lime_cairo_transform", "dov"); + private static var lime_cairo_translate = System.loadPrime ("lime", "lime_cairo_translate", "dddv"); + private static var lime_cairo_version = System.loadPrime ("lime", "lime_cairo_version", "i"); + private static var lime_cairo_version_string = System.loadPrime ("lime", "lime_cairo_version_string", "s"); #end diff --git a/lime/graphics/cairo/CairoFTFontFace.hx b/lime/graphics/cairo/CairoFTFontFace.hx new file mode 100644 index 000000000..5fe78ce10 --- /dev/null +++ b/lime/graphics/cairo/CairoFTFontFace.hx @@ -0,0 +1,44 @@ +package lime.graphics.cairo; + + +import lime.system.System; +import lime.text.Font; + + +abstract CairoFTFontFace(CairoFontFace) from CairoFontFace to CairoFontFace { + + + public static inline var FT_LOAD_FORCE_AUTOHINT = (1 << 5); + + + private function new () { + + this = cast 0; + + } + + + public static function create (face:Font, loadFlags:Int):CairoFTFontFace { + + #if lime_cairo + return lime_cairo_ft_font_face_create.call (face.src, loadFlags); + #else + return cast 0; + #end + + } + + + + + // Native Methods + + + + + #if (cpp || neko || nodejs) + private static var lime_cairo_ft_font_face_create = System.loadPrime ("lime", "lime_cairo_ft_font_face_create", "did"); + #end + + +} \ No newline at end of file diff --git a/lime/graphics/cairo/CairoFont.hx b/lime/graphics/cairo/CairoFont.hx deleted file mode 100644 index 726eafb91..000000000 --- a/lime/graphics/cairo/CairoFont.hx +++ /dev/null @@ -1,63 +0,0 @@ -package lime.graphics.cairo; - - -import lime.text.Font; -import lime.system.System; - - -class CairoFont { - - - public static inline var FT_LOAD_FORCE_AUTOHINT = (1 << 5); - - public var font (default, null):Font; - - @:noCompletion @:dox(hide) public var handle:Dynamic; - - - public function new (font:Font, flags:Int = 0) { - - #if lime_cairo - - this.font = font; - - if (font != null && font.src != null) { - - handle = lime_cairo_ft_font_face_create_for_ft_face (font.src, flags); - - } - - #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/lime/graphics/cairo/CairoFontFace.hx b/lime/graphics/cairo/CairoFontFace.hx new file mode 100644 index 000000000..6cd5a8e69 --- /dev/null +++ b/lime/graphics/cairo/CairoFontFace.hx @@ -0,0 +1,84 @@ +package lime.graphics.cairo; + + +import lime.system.System; + + +abstract CairoFontFace(Dynamic) { + + + public var referenceCount (get, never):Int; + + + private function new () { + + this = cast 0; + + } + + + public function destroy ():Void { + + #if lime_cairo + lime_cairo_font_face_destroy.call (this); + #end + + } + + + public function reference ():CairoFontFace { + + #if lime_cairo + lime_cairo_font_face_reference.call (this); + #end + + return this; + + } + + + public function status ():CairoStatus { + + #if lime_cairo + return lime_cairo_font_face_status.call (this); + #else + return 0; + #end + + } + + + + + // Get & Set Methods + + + + + @:noCompletion private function get_referenceCount ():Int { + + #if lime_cairo + return lime_cairo_font_face_get_reference_count (); + #else + return 0; + #end + + } + + + + + // Native Methods + + + + + #if (cpp || neko || nodejs) + private static var lime_cairo_font_face_destroy = System.loadPrime ("lime", "lime_cairo_font_face_destroy", "dv"); + private static var lime_cairo_font_face_get_reference_count = System.loadPrime ("lime", "lime_cairo_font_face_get_reference_count", "di"); + private static var lime_cairo_font_face_reference = System.loadPrime ("lime", "lime_cairo_font_face_reference", "dv"); + private static var lime_cairo_font_face_status = System.loadPrime ("lime", "lime_cairo_font_face_status", "di"); + #end + + +} \ No newline at end of file diff --git a/lime/graphics/cairo/CairoFontOptions.hx b/lime/graphics/cairo/CairoFontOptions.hx index 748a29f63..3511045b9 100644 --- a/lime/graphics/cairo/CairoFontOptions.hx +++ b/lime/graphics/cairo/CairoFontOptions.hx @@ -5,7 +5,7 @@ import lime.text.Font; import lime.system.System; -class CairoFontOptions { +abstract CairoFontOptions(Dynamic) { public var antialias (get, set):CairoAntialias; @@ -13,20 +13,23 @@ class CairoFontOptions { public var hintStyle (get, set):CairoHintStyle; public var subpixelOrder (get, set):CairoSubpixelOrder; - @:noCompletion @:dox(hide) public var handle:Dynamic; - - public function new (handle:Dynamic = null) { + public function new () { #if lime_cairo - if (handle == null) { - - handle = lime_cairo_font_options_create (); - - } + this = lime_cairo_font_options_create.call (); + #else + this = cast 0; #end - this.handle = handle; + } + + + public function destroy ():Void { + + #if lime_cairo + lime_cairo_font_options_destroy.call (this); + #end } @@ -41,7 +44,7 @@ class CairoFontOptions { @:noCompletion private function get_antialias ():CairoAntialias { #if lime_cairo - return lime_cairo_font_options_get_antialias (handle); + return lime_cairo_font_options_get_antialias.call (this); #end return cast 0; @@ -52,7 +55,7 @@ class CairoFontOptions { @:noCompletion private function set_antialias (value:CairoAntialias):CairoAntialias { #if lime_cairo - lime_cairo_font_options_set_antialias (handle, value); + lime_cairo_font_options_set_antialias.call (this, value); #end return value; @@ -63,7 +66,7 @@ class CairoFontOptions { @:noCompletion private function get_hintMetrics ():CairoHintMetrics { #if lime_cairo - return lime_cairo_font_options_get_hint_metrics (handle); + return lime_cairo_font_options_get_hint_metrics.call (this); #end return cast 0; @@ -74,7 +77,7 @@ class CairoFontOptions { @:noCompletion private function set_hintMetrics (value:CairoHintMetrics):CairoHintMetrics { #if lime_cairo - lime_cairo_font_options_set_hint_metrics (handle, value); + lime_cairo_font_options_set_hint_metrics.call (this, value); #end return value; @@ -86,7 +89,7 @@ class CairoFontOptions { @:noCompletion private function get_hintStyle ():CairoHintStyle { #if lime_cairo - return lime_cairo_font_options_get_hint_style (handle); + return lime_cairo_font_options_get_hint_style.call (this); #end return cast 0; @@ -97,7 +100,7 @@ class CairoFontOptions { @:noCompletion private function set_hintStyle (value:CairoHintStyle):CairoHintStyle { #if lime_cairo - lime_cairo_font_options_set_hint_style (handle, value); + lime_cairo_font_options_set_hint_style.call (this, value); #end return value; @@ -108,7 +111,7 @@ class CairoFontOptions { @:noCompletion private function get_subpixelOrder ():CairoSubpixelOrder { #if lime_cairo - return lime_cairo_font_options_get_subpixel_order (handle); + return lime_cairo_font_options_get_subpixel_order.call (this); #end return cast 0; @@ -119,7 +122,7 @@ class CairoFontOptions { @:noCompletion private function set_subpixelOrder (value:CairoSubpixelOrder):CairoSubpixelOrder { #if lime_cairo - lime_cairo_font_options_set_subpixel_order (handle, value); + lime_cairo_font_options_set_subpixel_order.call (this, value); #end return value; @@ -135,15 +138,16 @@ class CairoFontOptions { #if (cpp || neko || nodejs) - private static var lime_cairo_font_options_create = System.load ("lime", "lime_cairo_font_options_create", 0); - private static var lime_cairo_font_options_get_antialias = System.load ("lime", "lime_cairo_font_options_get_antialias", 1); - private static var lime_cairo_font_options_get_hint_metrics = System.load ("lime", "lime_cairo_font_options_get_hint_metrics", 1); - private static var lime_cairo_font_options_get_hint_style = System.load ("lime", "lime_cairo_font_options_get_hint_style", 1); - private static var lime_cairo_font_options_get_subpixel_order = System.load ("lime", "lime_cairo_font_options_get_subpixel_order", 1); - private static var lime_cairo_font_options_set_antialias = System.load ("lime", "lime_cairo_font_options_set_antialias", 2); - private static var lime_cairo_font_options_set_hint_metrics = System.load ("lime", "lime_cairo_font_options_set_hint_metrics", 2); - private static var lime_cairo_font_options_set_hint_style = System.load ("lime", "lime_cairo_font_options_set_hint_style", 2); - private static var lime_cairo_font_options_set_subpixel_order = System.load ("lime", "lime_cairo_font_options_set_subpixel_order", 2); + private static var lime_cairo_font_options_create = System.loadPrime ("lime", "lime_cairo_font_options_create", "v"); + private static var lime_cairo_font_options_destroy = System.loadPrime ("lime", "lime_cairo_font_options_destroy", "dv"); + private static var lime_cairo_font_options_get_antialias = System.loadPrime ("lime", "lime_cairo_font_options_get_antialias", "di"); + private static var lime_cairo_font_options_get_hint_metrics = System.loadPrime ("lime", "lime_cairo_font_options_get_hint_metrics", "di"); + private static var lime_cairo_font_options_get_hint_style = System.loadPrime ("lime", "lime_cairo_font_options_get_hint_style", "di"); + private static var lime_cairo_font_options_get_subpixel_order = System.loadPrime ("lime", "lime_cairo_font_options_get_subpixel_order", "di"); + private static var lime_cairo_font_options_set_antialias = System.loadPrime ("lime", "lime_cairo_font_options_set_antialias", "div"); + private static var lime_cairo_font_options_set_hint_metrics = System.loadPrime ("lime", "lime_cairo_font_options_set_hint_metrics", "div"); + private static var lime_cairo_font_options_set_hint_style = System.loadPrime ("lime", "lime_cairo_font_options_set_hint_style", "div"); + private static var lime_cairo_font_options_set_subpixel_order = System.loadPrime ("lime", "lime_cairo_font_options_set_subpixel_order", "div"); #end diff --git a/lime/graphics/cairo/CairoImageSurface.hx b/lime/graphics/cairo/CairoImageSurface.hx index 0f83305df..d3b5590e7 100644 --- a/lime/graphics/cairo/CairoImageSurface.hx +++ b/lime/graphics/cairo/CairoImageSurface.hx @@ -17,7 +17,7 @@ import lime.system.System; public function new (format:CairoFormat, width:Int, height:Int):CairoSurface { #if lime_cairo - this = lime_cairo_image_surface_create (format, width, height); + this = lime_cairo_image_surface_create.call (format, width, height); #else this = cast 0; #end @@ -28,7 +28,7 @@ import lime.system.System; public static function create (data:Dynamic, format:CairoFormat, width:Int, height:Int, stride:Int):CairoSurface { #if lime_cairo - return lime_cairo_image_surface_create_for_data (data, format, width, height, stride); + return lime_cairo_image_surface_create_for_data.call (data, format, width, height, stride); #else return cast 0; #end @@ -39,7 +39,7 @@ import lime.system.System; public static function fromImage (image:Image):CairoSurface { #if lime_cairo - return create (lime_bytes_get_data_pointer (#if nodejs image.data #else image.data.buffer #end), CairoFormat.ARGB32, image.width, image.height, image.buffer.stride); + return create (lime_bytes_get_data_pointer.call (#if nodejs image.data #else image.data.buffer #end), CairoFormat.ARGB32, image.width, image.height, image.buffer.stride); #else return null; #end @@ -57,7 +57,7 @@ import lime.system.System; @:noCompletion private function get_data ():Dynamic { #if lime_cairo - return lime_cairo_image_surface_get_data (this); + return lime_cairo_image_surface_get_data.call (this); #else return null; #end @@ -68,7 +68,7 @@ import lime.system.System; @:noCompletion private function get_format ():CairoFormat { #if lime_cairo - return lime_cairo_image_surface_get_format (this); + return lime_cairo_image_surface_get_format.call (this); #else return 0; #end @@ -79,7 +79,7 @@ import lime.system.System; @:noCompletion private function get_height ():Int { #if lime_cairo - return lime_cairo_image_surface_get_height (this); + return lime_cairo_image_surface_get_height.call (this); #else return 0; #end @@ -90,7 +90,7 @@ import lime.system.System; @:noCompletion private function get_stride ():Int { #if lime_cairo - return lime_cairo_image_surface_get_stride (this); + return lime_cairo_image_surface_get_stride.call (this); #else return 0; #end @@ -101,7 +101,7 @@ import lime.system.System; @:noCompletion private function get_width ():Int { #if lime_cairo - return lime_cairo_image_surface_get_width (this); + return lime_cairo_image_surface_get_width.call (this); #else return 0; #end @@ -117,14 +117,14 @@ import lime.system.System; #if lime_cairo - private static var lime_bytes_get_data_pointer = System.load ("lime", "lime_bytes_get_data_pointer", 1); - private static var lime_cairo_image_surface_create = System.load ("lime", "lime_cairo_image_surface_create", 3); - private static var lime_cairo_image_surface_create_for_data = System.load ("lime", "lime_cairo_image_surface_create_for_data", 5); - private static var lime_cairo_image_surface_get_data = System.load ("lime", "lime_cairo_image_surface_get_data", 1); - private static var lime_cairo_image_surface_get_format = System.load ("lime", "lime_cairo_image_surface_get_format", 1); - private static var lime_cairo_image_surface_get_height = System.load ("lime", "lime_cairo_image_surface_get_height", 1); - private static var lime_cairo_image_surface_get_stride = System.load ("lime", "lime_cairo_image_surface_get_stride", 1); - private static var lime_cairo_image_surface_get_width = System.load ("lime", "lime_cairo_image_surface_get_width", 1); + private static var lime_bytes_get_data_pointer = System.loadPrime ("lime", "lime_bytes_get_data_pointer", "od"); + private static var lime_cairo_image_surface_create = System.loadPrime ("lime", "lime_cairo_image_surface_create", "iiid"); + private static var lime_cairo_image_surface_create_for_data = System.loadPrime ("lime", "lime_cairo_image_surface_create_for_data", "diiiid"); + private static var lime_cairo_image_surface_get_data = System.loadPrime ("lime", "lime_cairo_image_surface_get_data", "dd"); + private static var lime_cairo_image_surface_get_format = System.loadPrime ("lime", "lime_cairo_image_surface_get_format", "di"); + private static var lime_cairo_image_surface_get_height = System.loadPrime ("lime", "lime_cairo_image_surface_get_height", "di"); + private static var lime_cairo_image_surface_get_stride = System.loadPrime ("lime", "lime_cairo_image_surface_get_stride", "di"); + private static var lime_cairo_image_surface_get_width = System.loadPrime ("lime", "lime_cairo_image_surface_get_width", "di"); #end diff --git a/lime/graphics/cairo/CairoPattern.hx b/lime/graphics/cairo/CairoPattern.hx index 2b0ac4915..d4277191f 100644 --- a/lime/graphics/cairo/CairoPattern.hx +++ b/lime/graphics/cairo/CairoPattern.hx @@ -24,7 +24,7 @@ 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); + lime_cairo_pattern_add_color_stop_rgb.call (this, offset, r, g, b); #end } @@ -33,7 +33,7 @@ abstract CairoPattern(Dynamic) { 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); + lime_cairo_pattern_add_color_stop_rgba.call (this, offset, r, g, b, a); #end } @@ -42,7 +42,7 @@ abstract CairoPattern(Dynamic) { public static function createForSurface (surface:CairoSurface):CairoPattern { #if lime_cairo - return lime_cairo_pattern_create_for_surface (surface); + return lime_cairo_pattern_create_for_surface.call (surface); #else return cast 0; #end @@ -53,7 +53,7 @@ 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); + return lime_cairo_pattern_create_linear.call (x0, y0, x1, y1); #else return cast 0; #end @@ -64,7 +64,7 @@ abstract CairoPattern(Dynamic) { 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); + return lime_cairo_pattern_create_radial.call (cx0, cy0, radius0, cx1, cy1, radius1); #else return cast 0; #end @@ -75,7 +75,7 @@ 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); + return lime_cairo_pattern_create_rgb.call (r, g, b); #else return cast 0; #end @@ -86,7 +86,7 @@ abstract CairoPattern(Dynamic) { 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); + return lime_cairo_pattern_create_rgba.call (r, g, b, a); #else return cast 0; #end @@ -97,7 +97,7 @@ abstract CairoPattern(Dynamic) { public function destroy ():Void { #if lime_cairo - lime_cairo_pattern_destroy (this); + lime_cairo_pattern_destroy.call (this); #end } @@ -113,7 +113,7 @@ abstract CairoPattern(Dynamic) { @:noCompletion private function get_colorStopCount ():Int { #if lime_cairo - return lime_cairo_pattern_get_color_stop_count (this); + return lime_cairo_pattern_get_color_stop_count.call (this); #else return 0; #end @@ -124,7 +124,7 @@ abstract CairoPattern(Dynamic) { @:noCompletion private function get_extend ():CairoExtend { #if lime_cairo - return lime_cairo_pattern_get_extend (this); + return lime_cairo_pattern_get_extend.call (this); #else return 0; #end @@ -135,7 +135,7 @@ abstract CairoPattern(Dynamic) { @:noCompletion private function set_extend (value:CairoExtend):CairoExtend { #if lime_cairo - lime_cairo_pattern_set_extend (this, value); + lime_cairo_pattern_set_extend.call (this, value); #end return value; @@ -146,7 +146,7 @@ abstract CairoPattern(Dynamic) { @:noCompletion private function get_filter ():CairoFilter { #if lime_cairo - return lime_cairo_pattern_get_filter (this); + return lime_cairo_pattern_get_filter.call (this); #else return 0; #end @@ -157,7 +157,7 @@ abstract CairoPattern(Dynamic) { @:noCompletion private function set_filter (value:CairoFilter):CairoFilter { #if lime_cairo - lime_cairo_pattern_set_filter (this, value); + lime_cairo_pattern_set_filter.call (this, value); #end return value; @@ -168,7 +168,7 @@ abstract CairoPattern(Dynamic) { @:noCompletion private function get_matrix ():Matrix3 { #if lime_cairo - var m = lime_cairo_pattern_get_matrix (this); + var m = lime_cairo_pattern_get_matrix.call (this); return new Matrix3 (m.a, m.b, m.c, m.d, m.tx, m.ty); #else return null; @@ -180,7 +180,7 @@ abstract CairoPattern(Dynamic) { @:noCompletion private function set_matrix (value:Matrix3):Matrix3 { #if lime_cairo - lime_cairo_pattern_set_matrix (this, value); + lime_cairo_pattern_set_matrix.call (this, value); #end return value; @@ -196,21 +196,21 @@ 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); - private static var lime_cairo_pattern_set_extend = System.load ("lime", "lime_cairo_pattern_set_extend", 2); - private static var lime_cairo_pattern_set_filter = System.load ("lime", "lime_cairo_pattern_set_filter", 2); - private static var lime_cairo_pattern_set_matrix = System.load ("lime", "lime_cairo_pattern_set_matrix", 2); + private static var lime_cairo_pattern_add_color_stop_rgb = System.loadPrime ("lime", "lime_cairo_pattern_add_color_stop_rgb", "dddddv"); + private static var lime_cairo_pattern_add_color_stop_rgba = System.loadPrime ("lime", "lime_cairo_pattern_add_color_stop_rgba", "ddddddv"); + private static var lime_cairo_pattern_create_for_surface = System.loadPrime ("lime", "lime_cairo_pattern_create_for_surface", "dd"); + private static var lime_cairo_pattern_create_linear = System.loadPrime ("lime", "lime_cairo_pattern_create_linear", "ddddd"); + private static var lime_cairo_pattern_create_radial = System.loadPrime ("lime", "lime_cairo_pattern_create_radial", "ddddddd"); + private static var lime_cairo_pattern_create_rgb = System.loadPrime ("lime", "lime_cairo_pattern_create_rgb", "dddd"); + private static var lime_cairo_pattern_create_rgba = System.loadPrime ("lime", "lime_cairo_pattern_create_rgba", "ddddd"); + private static var lime_cairo_pattern_destroy = System.loadPrime ("lime", "lime_cairo_pattern_destroy", "dv"); + private static var lime_cairo_pattern_get_color_stop_count = System.loadPrime ("lime", "lime_cairo_pattern_get_color_stop_count", "di"); + private static var lime_cairo_pattern_get_extend = System.loadPrime ("lime", "lime_cairo_pattern_get_extend", "di"); + private static var lime_cairo_pattern_get_filter = System.loadPrime ("lime", "lime_cairo_pattern_get_filter", "di"); + private static var lime_cairo_pattern_get_matrix = System.loadPrime ("lime", "lime_cairo_pattern_get_matrix", "do"); + private static var lime_cairo_pattern_set_extend = System.loadPrime ("lime", "lime_cairo_pattern_set_extend", "div"); + private static var lime_cairo_pattern_set_filter = System.loadPrime ("lime", "lime_cairo_pattern_set_filter", "div"); + private static var lime_cairo_pattern_set_matrix = System.loadPrime ("lime", "lime_cairo_pattern_set_matrix", "dov"); #end diff --git a/lime/graphics/cairo/CairoSurface.hx b/lime/graphics/cairo/CairoSurface.hx index 5ef637b19..d38816fdf 100644 --- a/lime/graphics/cairo/CairoSurface.hx +++ b/lime/graphics/cairo/CairoSurface.hx @@ -1,11 +1,7 @@ package lime.graphics.cairo; #if !macro -import lime.graphics.Image; import lime.system.System; -import lime.utils.ByteArray; - -@:access(haxe.io.Bytes) abstract CairoSurface(Dynamic) { @@ -14,7 +10,7 @@ abstract CairoSurface(Dynamic) { public function destroy ():Void { #if lime_cairo - lime_cairo_surface_destroy (this); + lime_cairo_surface_destroy.call (this); #end } @@ -23,7 +19,7 @@ abstract CairoSurface(Dynamic) { public function flush ():Void { #if lime_cairo - lime_cairo_surface_flush (this); + lime_cairo_surface_flush.call (this); #end } @@ -37,8 +33,8 @@ abstract CairoSurface(Dynamic) { #if lime_cairo - private static var lime_cairo_surface_destroy = System.load ("lime", "lime_cairo_surface_destroy", 1); - private static var lime_cairo_surface_flush = System.load ("lime", "lime_cairo_surface_flush", 1); + private static var lime_cairo_surface_destroy = System.loadPrime ("lime", "lime_cairo_surface_destroy", "dv"); + private static var lime_cairo_surface_flush = System.loadPrime ("lime", "lime_cairo_surface_flush", "dv"); #end diff --git a/lime/graphics/format/JPEG.hx b/lime/graphics/format/JPEG.hx index d4957d909..28327442b 100644 --- a/lime/graphics/format/JPEG.hx +++ b/lime/graphics/format/JPEG.hx @@ -15,7 +15,7 @@ class JPEG { #if (cpp || neko || nodejs) - var bufferData = lime_jpeg_decode_bytes (bytes, decodeData); + var bufferData = lime_jpeg_decode_bytes.call (bytes, decodeData); if (bufferData != null) { @@ -36,7 +36,7 @@ class JPEG { #if (cpp || neko || nodejs) - var bufferData = lime_jpeg_decode_file (path, decodeData); + var bufferData = lime_jpeg_decode_file.call (path, decodeData); if (bufferData != null) { @@ -69,7 +69,7 @@ class JPEG { #elseif (sys && (!disable_cffi || !format)) - var data:Dynamic = lime_image_encode (image.buffer, 1, quality); + var data:Dynamic = lime_image_encode.call (image.buffer, 1, quality); var bytes = @:privateAccess new Bytes (data.length, data.b); return ByteArray.fromBytes (bytes); @@ -88,9 +88,9 @@ class JPEG { #if (cpp || neko || nodejs) - private static var lime_jpeg_decode_bytes:ByteArray -> Bool -> Dynamic = System.load ("lime", "lime_jpeg_decode_bytes", 2); - private static var lime_jpeg_decode_file:String -> Bool -> Dynamic = System.load ("lime", "lime_jpeg_decode_file", 2); - private static var lime_image_encode = System.load ("lime", "lime_image_encode", 3); + private static var lime_jpeg_decode_bytes = System.loadPrime ("lime", "lime_jpeg_decode_bytes", "obo"); + private static var lime_jpeg_decode_file = System.loadPrime ("lime", "lime_jpeg_decode_file", "sbo"); + private static var lime_image_encode = System.loadPrime ("lime", "lime_image_encode", "oiio"); #end diff --git a/lime/graphics/format/PNG.hx b/lime/graphics/format/PNG.hx index 9488a8302..1fce9573b 100644 --- a/lime/graphics/format/PNG.hx +++ b/lime/graphics/format/PNG.hx @@ -22,7 +22,7 @@ class PNG { #if (cpp || neko || nodejs) - var bufferData = lime_png_decode_bytes (bytes, decodeData); + var bufferData = lime_png_decode_bytes.call (bytes, decodeData); if (bufferData != null) { @@ -43,7 +43,7 @@ class PNG { #if (cpp || neko || nodejs) - var bufferData = lime_png_decode_file (path, decodeData); + var bufferData = lime_png_decode_file.call (path, decodeData); if (bufferData != null) { @@ -78,7 +78,7 @@ class PNG { if (!System.disableCFFI) { - var data = lime_image_encode (image.buffer, 0, 0); + var data = lime_image_encode.call (image.buffer, 0, 0); var bytes = @:privateAccess new Bytes (data.length, data.b); return ByteArray.fromBytes (bytes); @@ -145,9 +145,9 @@ class PNG { #if (cpp || neko || nodejs) - private static var lime_png_decode_bytes:ByteArray -> Bool -> Dynamic = System.load ("lime", "lime_png_decode_bytes", 2); - private static var lime_png_decode_file = System.load ("lime", "lime_png_decode_file", 2); - private static var lime_image_encode = System.load ("lime", "lime_image_encode", 3); + private static var lime_png_decode_bytes = System.loadPrime ("lime", "lime_png_decode_bytes", "obo"); + private static var lime_png_decode_file = System.loadPrime ("lime", "lime_png_decode_file", "sbo"); + private static var lime_image_encode = System.loadPrime ("lime", "lime_image_encode", "oiio"); #end diff --git a/lime/graphics/utils/ImageDataUtil.hx b/lime/graphics/utils/ImageDataUtil.hx index f17a63fb5..56e65ac9b 100644 --- a/lime/graphics/utils/ImageDataUtil.hx +++ b/lime/graphics/utils/ImageDataUtil.hx @@ -29,7 +29,7 @@ class ImageDataUtil { if (data == null) return; #if ((cpp || neko) && !disable_cffi) - if (!System.disableCFFI) lime_image_data_util_color_transform (image, rect, colorMatrix); else + if (!System.disableCFFI) lime_image_data_util_color_transform.call (image, rect, colorMatrix); else #end { @@ -94,7 +94,7 @@ class ImageDataUtil { if (srcData == null || destData == null) return; #if ((cpp || neko) && !disable_cffi) - if (!System.disableCFFI) lime_image_data_util_copy_channel (image, sourceImage, sourceRect, destPoint, srcIdx, destIdx); else + if (!System.disableCFFI) lime_image_data_util_copy_channel.call (image, sourceImage, sourceRect, destPoint, srcIdx, destIdx); else #end { @@ -155,7 +155,7 @@ class ImageDataUtil { public static function copyPixels (image:Image, sourceImage:Image, sourceRect:Rectangle, destPoint:Vector2, alphaImage:Image = null, alphaPoint:Vector2 = null, mergeAlpha:Bool = false):Void { #if ((cpp || neko) && !disable_cffi) - if (!System.disableCFFI) lime_image_data_util_copy_pixels (image, sourceImage, sourceRect, destPoint, alphaImage, alphaPoint, mergeAlpha); else + if (!System.disableCFFI) lime_image_data_util_copy_pixels.call (image, sourceImage, sourceRect, destPoint, alphaImage, alphaPoint, mergeAlpha); else #end { @@ -320,7 +320,7 @@ class ImageDataUtil { if (data == null) return; #if ((cpp || neko) && !disable_cffi) - if (!System.disableCFFI) lime_image_data_util_fill_rect (image, rect, (fillColor >> 16) & 0xFFFF, (fillColor) & 0xFFFF); else // TODO: Better Int32 solution + if (!System.disableCFFI) lime_image_data_util_fill_rect.call (image, rect, (fillColor >> 16) & 0xFFFF, (fillColor) & 0xFFFF); else // TODO: Better Int32 solution #end { @@ -357,7 +357,7 @@ class ImageDataUtil { if (format == ARGB32) color = ((color & 0xFFFFFF) << 8) | ((color >> 24) & 0xFF); #if ((cpp || neko) && !disable_cffi) - if (!System.disableCFFI) lime_image_data_util_flood_fill (image, x, y, (color >> 16) & 0xFFFF, (color) & 0xFFFF); else // TODO: Better Int32 solution + if (!System.disableCFFI) lime_image_data_util_flood_fill.call (image, x, y, (color >> 16) & 0xFFFF, (color) & 0xFFFF); else // TODO: Better Int32 solution #end { @@ -647,7 +647,7 @@ class ImageDataUtil { #end #if ((cpp || neko) && !disable_cffi) - if (!System.disableCFFI) lime_image_data_util_get_pixels (image, rect, format, byteArray); else + if (!System.disableCFFI) lime_image_data_util_get_pixels.call (image, rect, format, byteArray); else #end { @@ -709,7 +709,7 @@ class ImageDataUtil { if (image.buffer.data == null || sourceImage.buffer.data == null) return; #if ((cpp || neko) && !disable_cffi) - if (!System.disableCFFI) lime_image_data_util_merge (image, sourceImage, sourceRect, destPoint, redMultiplier, greenMultiplier, blueMultiplier, alphaMultiplier); else + if (!System.disableCFFI) lime_image_data_util_merge.call (image, sourceImage, sourceRect, destPoint, redMultiplier, greenMultiplier, blueMultiplier, alphaMultiplier); else #end { @@ -762,7 +762,7 @@ class ImageDataUtil { if (data == null || !image.buffer.transparent) return; #if ((cpp || neko) && !disable_cffi) - if (!System.disableCFFI) lime_image_data_util_multiply_alpha (image); else + if (!System.disableCFFI) lime_image_data_util_multiply_alpha.call (image); else #end { @@ -792,7 +792,7 @@ class ImageDataUtil { var newBuffer = new ImageBuffer (new UInt8Array (newWidth * newHeight * 4), newWidth, newHeight); #if ((cpp || neko) && !disable_cffi) - if (!System.disableCFFI) lime_image_data_util_resize (image, newBuffer, newWidth, newHeight); else + if (!System.disableCFFI) lime_image_data_util_resize.call (image, newBuffer, newWidth, newHeight); else #end { @@ -894,7 +894,7 @@ class ImageDataUtil { if (data == null) return; #if ((cpp || neko) && !disable_cffi) - if (!System.disableCFFI) lime_image_data_util_set_format (image, format); else + if (!System.disableCFFI) lime_image_data_util_set_format.call (image, format); else #end { @@ -1022,7 +1022,7 @@ class ImageDataUtil { if (image.buffer.data == null) return; #if ((cpp || neko) && !disable_cffi) - if (!System.disableCFFI) lime_image_data_util_set_pixels (image, rect, byteArray, format); else + if (!System.disableCFFI) lime_image_data_util_set_pixels.call (image, rect, byteArray, format); else #end { @@ -1069,7 +1069,7 @@ class ImageDataUtil { if (data == null) return; #if ((cpp || neko) && !disable_cffi) - if (!System.disableCFFI) lime_image_data_util_unmultiply_alpha (image); else + if (!System.disableCFFI) lime_image_data_util_unmultiply_alpha.call (image); else #end { @@ -1100,18 +1100,18 @@ class ImageDataUtil { #if (cpp || neko || nodejs) - private static var lime_image_data_util_color_transform = System.load ("lime", "lime_image_data_util_color_transform", 3); - private static var lime_image_data_util_copy_channel = System.load ("lime", "lime_image_data_util_copy_channel", -1); - private static var lime_image_data_util_copy_pixels = System.load ("lime", "lime_image_data_util_copy_pixels", -1); - private static var lime_image_data_util_fill_rect = System.load ("lime", "lime_image_data_util_fill_rect", 4); - private static var lime_image_data_util_flood_fill = System.load ("lime", "lime_image_data_util_flood_fill", 5); - private static var lime_image_data_util_get_pixels = System.load ("lime", "lime_image_data_util_get_pixels", 4); - private static var lime_image_data_util_merge = System.load ("lime", "lime_image_data_util_merge", -1); - private static var lime_image_data_util_multiply_alpha = System.load ("lime", "lime_image_data_util_multiply_alpha", 1); - private static var lime_image_data_util_resize = System.load ("lime", "lime_image_data_util_resize", 4); - private static var lime_image_data_util_set_format = System.load ("lime", "lime_image_data_util_set_format", 2); - private static var lime_image_data_util_set_pixels = System.load ("lime", "lime_image_data_util_set_pixels", 4); - private static var lime_image_data_util_unmultiply_alpha = System.load ("lime", "lime_image_data_util_unmultiply_alpha", 1); + private static var lime_image_data_util_color_transform = System.loadPrime ("lime", "lime_image_data_util_color_transform", "ooov"); + private static var lime_image_data_util_copy_channel = System.loadPrime ("lime", "lime_image_data_util_copy_channel", "ooooiiv"); + private static var lime_image_data_util_copy_pixels = System.loadPrime ("lime", "lime_image_data_util_copy_pixels", "oooooobv"); + private static var lime_image_data_util_fill_rect = System.loadPrime ("lime", "lime_image_data_util_fill_rect", "ooiiv"); + private static var lime_image_data_util_flood_fill = System.loadPrime ("lime", "lime_image_data_util_flood_fill", "oiiiiv"); + private static var lime_image_data_util_get_pixels = System.loadPrime ("lime", "lime_image_data_util_get_pixels", "ooiov"); + private static var lime_image_data_util_merge = System.loadPrime ("lime", "lime_image_data_util_merge", "ooooiiiiv"); + private static var lime_image_data_util_multiply_alpha = System.loadPrime ("lime", "lime_image_data_util_multiply_alpha", "ov"); + private static var lime_image_data_util_resize = System.loadPrime ("lime", "lime_image_data_util_resize", "ooiiv"); + private static var lime_image_data_util_set_format = System.loadPrime ("lime", "lime_image_data_util_set_format", "oiv"); + private static var lime_image_data_util_set_pixels = System.loadPrime ("lime", "lime_image_data_util_set_pixels", "oooiv"); + private static var lime_image_data_util_unmultiply_alpha = System.loadPrime ("lime", "lime_image_data_util_unmultiply_alpha", "ov"); #end diff --git a/lime/system/Clipboard.hx b/lime/system/Clipboard.hx index 5c0ac8d5a..4ead0e2a6 100644 --- a/lime/system/Clipboard.hx +++ b/lime/system/Clipboard.hx @@ -22,7 +22,7 @@ class Clipboard { private static function get_text ():String { #if (cpp || neko || nodejs) - return lime_clipboard_get_text (); + return lime_clipboard_get_text.call (); #elseif flash if (FlashClipboard.generalClipboard.hasFormat (TEXT_FORMAT)) { @@ -39,7 +39,7 @@ class Clipboard { private static function set_text (value:String):String { #if (cpp || neko || nodejs) - lime_clipboard_set_text (value); + lime_clipboard_set_text.call (value); return value; #elseif flash FlashClipboard.generalClipboard.setData (TEXT_FORMAT, value); @@ -59,8 +59,8 @@ class Clipboard { #if (cpp || neko || nodejs) - private static var lime_clipboard_get_text = System.load ("lime", "lime_clipboard_get_text", 0); - private static var lime_clipboard_set_text = System.load ("lime", "lime_clipboard_set_text", 1); + private static var lime_clipboard_get_text = System.loadPrime ("lime", "lime_clipboard_get_text", "s"); + private static var lime_clipboard_set_text = System.loadPrime ("lime", "lime_clipboard_set_text", "sv"); #end diff --git a/lime/system/System.hx b/lime/system/System.hx index 0f988c72b..a361145ab 100644 --- a/lime/system/System.hx +++ b/lime/system/System.hx @@ -5,6 +5,8 @@ import lime.math.Rectangle; #if !macro import lime.app.Application; +#else +import haxe.macro.Expr; #end #if flash @@ -181,7 +183,7 @@ class System { public static function getDisplay (id:Int):Display { #if (cpp || neko || nodejs) - var displayInfo = lime_system_get_display (id); + var displayInfo = lime_system_get_display.call (id); if (displayInfo != null) { @@ -236,7 +238,7 @@ class System { #elseif js return cast Date.now ().getTime (); #elseif !disable_cffi - return lime_system_get_timer (); + return lime_system_get_timer.call (); #elseif cpp return Std.int (untyped __global__.__time_stamp () * 1000); #elseif sys @@ -248,6 +250,14 @@ class System { } + /** + * Tries to load a native CFFI primitive on compatible platforms + * @param library The name of the native library (such as "lime") + * @param method The exported primitive method name + * @param args The number of arguments + * @param lazy Whether to load the symbol immediately, or to allow lazy loading + * @return The loaded method + */ public static function load (library:String, method:String, args:Int = 0, lazy:Bool = false):Dynamic { #if (disable_cffi || macro) @@ -389,6 +399,56 @@ class System { } + #if ((haxe >= 3.2) && !debug_cffi) + public static inline macro function loadPrime (library:Expr, method:Expr, signature:Expr) { + + return macro cpp.Prime.load ($library, $method, $signature); + + } + #else + public static function loadPrime (library:String, method:String, signature:String):Dynamic { + + var args = signature.length - 1; + + if (args > 5) { + + args = -1; + + } + + // TODO: Need a macro function for debug to work on C++ + + #if (!debug_cffi || cpp) + + return { call: System.load (library, method, args) }; + + #else + + var handle = System.load (library, method, args); + return { call: Reflect.makeVarArgs (function (args) { + + #if neko + Sys.println ('$library@$method'); + #if debug_cffi_args + Sys.println (args); + #end + #else + trace ('$library@$method'); + #if debug_cffi_args + trace (args); + #end + #end + + return Reflect.callMethod (handle, handle, args); + + }) }; + + #end + + } + #end + + private static function sysName ():String { #if (sys && !html5) @@ -541,7 +601,7 @@ class System { private static function get_applicationDirectory ():String { #if (cpp || neko || nodejs) - return lime_system_get_directory (SystemDirectory.APPLICATION, null, null); + return lime_system_get_directory.call (SystemDirectory.APPLICATION, null, null); #elseif flash if (Capabilities.playerType == "Desktop") { @@ -583,7 +643,7 @@ class System { #end #if (cpp || neko || nodejs) - return lime_system_get_directory (SystemDirectory.APPLICATION_STORAGE, company, file); + return lime_system_get_directory.call (SystemDirectory.APPLICATION_STORAGE, company, file); #elseif flash if (Capabilities.playerType == "Desktop") { @@ -604,7 +664,7 @@ class System { private static function get_desktopDirectory ():String { #if (cpp || neko || nodejs) - return lime_system_get_directory (SystemDirectory.DESKTOP, null, null); + return lime_system_get_directory.call (SystemDirectory.DESKTOP, null, null); #elseif flash if (Capabilities.playerType == "Desktop") { @@ -625,7 +685,7 @@ class System { private static function get_documentsDirectory ():String { #if (cpp || neko || nodejs) - return lime_system_get_directory (SystemDirectory.DOCUMENTS, null, null); + return lime_system_get_directory.call (SystemDirectory.DOCUMENTS, null, null); #elseif flash if (Capabilities.playerType == "Desktop") { @@ -646,7 +706,7 @@ class System { private static function get_fontsDirectory ():String { #if (cpp || neko || nodejs) - return lime_system_get_directory (SystemDirectory.FONTS, null, null); + return lime_system_get_directory.call (SystemDirectory.FONTS, null, null); #else return null; #end @@ -657,7 +717,7 @@ class System { private static function get_numDisplays ():Int { #if (cpp || neko || nodejs) - return lime_system_get_num_displays (); + return lime_system_get_num_displays.call (); #else return 1; #end @@ -668,7 +728,7 @@ class System { private static function get_userDirectory ():String { #if (cpp || neko || nodejs) - return lime_system_get_directory (SystemDirectory.USER, null, null); + return lime_system_get_directory.call (SystemDirectory.USER, null, null); #elseif flash if (Capabilities.playerType == "Desktop") { @@ -707,10 +767,10 @@ class System { #if (cpp || neko || nodejs) - private static var lime_system_get_directory = System.load ("lime", "lime_system_get_directory", 3); - private static var lime_system_get_display = System.load ("lime", "lime_system_get_display", 1); - private static var lime_system_get_num_displays = System.load ("lime", "lime_system_get_num_displays", 0); - private static var lime_system_get_timer = System.load ("lime", "lime_system_get_timer", 0); + private static var lime_system_get_directory = System.loadPrime ("lime", "lime_system_get_directory", "isss"); + private static var lime_system_get_display = System.loadPrime ("lime", "lime_system_get_display", "io"); + private static var lime_system_get_num_displays = System.loadPrime ("lime", "lime_system_get_num_displays", "i"); + private static var lime_system_get_timer = System.loadPrime ("lime", "lime_system_get_timer", "d"); #end diff --git a/lime/text/Font.hx b/lime/text/Font.hx index 56271c250..5229d93e5 100644 --- a/lime/text/Font.hx +++ b/lime/text/Font.hx @@ -58,7 +58,7 @@ class Font { #if (cpp || neko || nodejs) if (src == null) throw "Uninitialized font handle."; - return lime_font_outline_decompose (src, 1024 * 20); + return lime_font_outline_decompose.call (src, 1024 * 20); #else @@ -100,7 +100,7 @@ class Font { public function getGlyph (character:String):Glyph { #if (cpp || neko || nodejs) - return lime_font_get_glyph_index (src, character); + return lime_font_get_glyph_index.call (src, character); #else return -1; #end @@ -111,7 +111,7 @@ class Font { public function getGlyphs (characters:String = #if (display && haxe_ver < "3.2") "" #else "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#$%^`'\"/\\&*()[]{}<>|:;_-+=?,. " #end):Array { #if (cpp || neko || nodejs) - return lime_font_get_glyph_indices (src, characters); + return lime_font_get_glyph_indices.call (src, characters); #else return null; #end @@ -122,7 +122,7 @@ class Font { public function getGlyphMetrics (glyph:Glyph):GlyphMetrics { #if (cpp || neko || nodejs) - var value = lime_font_get_glyph_metrics (src, glyph); + var value = lime_font_get_glyph_metrics.call (src, glyph); var metrics = new GlyphMetrics (); metrics.advance = new Vector2 (value.horizontalAdvance, value.verticalAdvance); @@ -142,12 +142,12 @@ class Font { #if (cpp || neko || nodejs) - lime_font_set_size (src, fontSize); + lime_font_set_size.call (src, fontSize); var bytes = new ByteArray (); bytes.endian = (System.endianness == BIG_ENDIAN ? "bigEndian" : "littleEndian"); - if (lime_font_render_glyph (src, glyph, bytes)) { + if (lime_font_render_glyph.call (src, glyph, bytes)) { bytes.position = 0; @@ -200,12 +200,12 @@ class Font { } - lime_font_set_size (src, fontSize); + lime_font_set_size.call (src, fontSize); var bytes = new ByteArray (); bytes.endian = (System.endianness == BIG_ENDIAN ? "bigEndian" : "littleEndian"); - if (lime_font_render_glyphs (src, glyphList, bytes)) { + if (lime_font_render_glyphs.call (src, glyphList, bytes)) { bytes.position = 0; @@ -350,11 +350,11 @@ class Font { #if (cpp || neko || nodejs) - src = lime_font_load (bytes); + src = lime_font_load.call (bytes); if (src != null && name == null) { - name = lime_font_get_family_name (src); + name = lime_font_get_family_name.call (src); } @@ -369,11 +369,11 @@ class Font { #if (cpp || neko || nodejs) - src = lime_font_load (__fontPath); + src = lime_font_load.call (__fontPath); if (src != null && name == null) { - name = lime_font_get_family_name (src); + name = lime_font_get_family_name.call (src); } @@ -392,7 +392,7 @@ class Font { private function get_ascender ():Int { #if (cpp || neko || nodejs) - return lime_font_get_ascender (src); + return lime_font_get_ascender.call (src); #else return 0; #end @@ -403,7 +403,7 @@ class Font { private function get_descender ():Int { #if (cpp || neko || nodejs) - return lime_font_get_descender (src); + return lime_font_get_descender.call (src); #else return 0; #end @@ -414,7 +414,7 @@ class Font { private function get_height ():Int { #if (cpp || neko || nodejs) - return lime_font_get_height (src); + return lime_font_get_height.call (src); #else return 0; #end @@ -425,7 +425,7 @@ class Font { private function get_numGlyphs ():Int { #if (cpp || neko || nodejs) - return lime_font_get_num_glyphs (src); + return lime_font_get_num_glyphs.call (src); #else return 0; #end @@ -436,7 +436,7 @@ class Font { private function get_underlinePosition ():Int { #if (cpp || neko || nodejs) - return lime_font_get_underline_position (src); + return lime_font_get_underline_position.call (src); #else return 0; #end @@ -447,7 +447,7 @@ class Font { private function get_underlineThickness ():Int { #if (cpp || neko || nodejs) - return lime_font_get_underline_thickness (src); + return lime_font_get_underline_thickness.call (src); #else return 0; #end @@ -458,7 +458,7 @@ class Font { private function get_unitsPerEM ():Int { #if (cpp || neko || nodejs) - return lime_font_get_units_per_em (src); + return lime_font_get_units_per_em.call (src); #else return 0; #end @@ -474,22 +474,22 @@ class Font { #if (cpp || neko || nodejs) - private static var lime_font_get_ascender = System.load ("lime", "lime_font_get_ascender", 1); - private static var lime_font_get_descender = System.load ("lime", "lime_font_get_descender", 1); - private static var lime_font_get_family_name = System.load ("lime", "lime_font_get_family_name", 1); - private static var lime_font_get_glyph_index = System.load ("lime", "lime_font_get_glyph_index", 2); - private static var lime_font_get_glyph_indices = System.load ("lime", "lime_font_get_glyph_indices", 2); - private static var lime_font_get_glyph_metrics = System.load ("lime", "lime_font_get_glyph_metrics", 2); - private static var lime_font_get_height = System.load ("lime", "lime_font_get_height", 1); - private static var lime_font_get_num_glyphs = System.load ("lime", "lime_font_get_num_glyphs", 1); - private static var lime_font_get_underline_position = System.load ("lime", "lime_font_get_underline_position", 1); - private static var lime_font_get_underline_thickness = System.load ("lime", "lime_font_get_underline_thickness", 1); - private static var lime_font_get_units_per_em = System.load ("lime", "lime_font_get_units_per_em", 1); - private static var lime_font_load:Dynamic = System.load ("lime", "lime_font_load", 1); - private static var lime_font_outline_decompose = System.load ("lime", "lime_font_outline_decompose", 2); - private static var lime_font_render_glyph = System.load ("lime", "lime_font_render_glyph", 3); - private static var lime_font_render_glyphs = System.load ("lime", "lime_font_render_glyphs", 3); - private static var lime_font_set_size = System.load ("lime", "lime_font_set_size", 2); + private static var lime_font_get_ascender = System.loadPrime ("lime", "lime_font_get_ascender", "di"); + private static var lime_font_get_descender = System.loadPrime ("lime", "lime_font_get_descender", "di"); + private static var lime_font_get_family_name = System.loadPrime ("lime", "lime_font_get_family_name", "ds"); + private static var lime_font_get_glyph_index = System.loadPrime ("lime", "lime_font_get_glyph_index", "dsi"); + private static var lime_font_get_glyph_indices = System.loadPrime ("lime", "lime_font_get_glyph_indices", "dso"); + private static var lime_font_get_glyph_metrics = System.loadPrime ("lime", "lime_font_get_glyph_metrics", "dio"); + private static var lime_font_get_height = System.loadPrime ("lime", "lime_font_get_height", "di"); + private static var lime_font_get_num_glyphs = System.loadPrime ("lime", "lime_font_get_num_glyphs", "di"); + private static var lime_font_get_underline_position = System.loadPrime ("lime", "lime_font_get_underline_position", "di"); + private static var lime_font_get_underline_thickness = System.loadPrime ("lime", "lime_font_get_underline_thickness", "di"); + private static var lime_font_get_units_per_em = System.loadPrime ("lime", "lime_font_get_units_per_em", "di"); + private static var lime_font_load:Dynamic = System.loadPrime ("lime", "lime_font_load", "oo"); + private static var lime_font_outline_decompose = System.loadPrime ("lime", "lime_font_outline_decompose", "dio"); + private static var lime_font_render_glyph = System.loadPrime ("lime", "lime_font_render_glyph", "diob"); + private static var lime_font_render_glyphs = System.loadPrime ("lime", "lime_font_render_glyphs", "doob"); + private static var lime_font_set_size = System.loadPrime ("lime", "lime_font_set_size", "div"); #end diff --git a/lime/text/TextLayout.hx b/lime/text/TextLayout.hx index 3a8e7f40a..a5122678c 100644 --- a/lime/text/TextLayout.hx +++ b/lime/text/TextLayout.hx @@ -42,7 +42,7 @@ class TextLayout { __dirty = true; #if (cpp || neko || nodejs) - __handle = lime_text_layout_create (__direction, __script, __language); + __handle = lime_text_layout_create.call (__direction, __script, __language); #end } @@ -62,7 +62,7 @@ class TextLayout { } - var data = lime_text_layout_position (__handle, font.src, size, text, __buffer); + var data = lime_text_layout_position.call (__handle, font.src, size, text, __buffer); if (__buffer.length > 4) { @@ -126,7 +126,7 @@ class TextLayout { __direction = value; #if (cpp || neko || nodejs) - lime_text_layout_set_direction (__handle, value); + lime_text_layout_set_direction.call (__handle, value); #end __dirty = true; @@ -176,7 +176,7 @@ class TextLayout { __language = value; #if (cpp || neko || nodejs) - lime_text_layout_set_language (__handle, value); + lime_text_layout_set_language.call (__handle, value); #end __dirty = true; @@ -200,7 +200,7 @@ class TextLayout { __script = value; #if (cpp || neko || nodejs) - lime_text_layout_set_script (__handle, value); + lime_text_layout_set_script.call (__handle, value); #end __dirty = true; @@ -240,11 +240,11 @@ class TextLayout { #if (cpp || neko || nodejs) - private static var lime_text_layout_create = System.load ("lime", "lime_text_layout_create", 3); - private static var lime_text_layout_position = System.load ("lime", "lime_text_layout_position", 5); - private static var lime_text_layout_set_direction = System.load ("lime", "lime_text_layout_set_direction", 2); - private static var lime_text_layout_set_language = System.load ("lime", "lime_text_layout_set_language", 2); - private static var lime_text_layout_set_script = System.load ("lime", "lime_text_layout_set_script", 2); + private static var lime_text_layout_create = System.loadPrime ("lime", "lime_text_layout_create", "isso"); + private static var lime_text_layout_position = System.loadPrime ("lime", "lime_text_layout_position", "ddisoo"); + private static var lime_text_layout_set_direction = System.loadPrime ("lime", "lime_text_layout_set_direction", "div"); + private static var lime_text_layout_set_language = System.loadPrime ("lime", "lime_text_layout_set_language", "dsv"); + private static var lime_text_layout_set_script = System.loadPrime ("lime", "lime_text_layout_set_script", "dsv"); #end diff --git a/lime/ui/FileDialog.hx b/lime/ui/FileDialog.hx index 505b17a9e..992fd7969 100644 --- a/lime/ui/FileDialog.hx +++ b/lime/ui/FileDialog.hx @@ -42,15 +42,15 @@ class FileDialog { case OPEN: - worker.sendComplete (lime_file_dialog_open_file (filter, defaultPath)); + worker.sendComplete (lime_file_dialog_open_file.call (filter, defaultPath)); case OPEN_MULTIPLE: - worker.sendComplete (lime_file_dialog_open_files (filter, defaultPath)); + worker.sendComplete (lime_file_dialog_open_files.call (filter, defaultPath)); case SAVE: - worker.sendComplete (lime_file_dialog_save_file (filter, defaultPath)); + worker.sendComplete (lime_file_dialog_save_file.call (filter, defaultPath)); } @@ -113,7 +113,7 @@ class FileDialog { worker.doWork.add (function (_) { - worker.sendComplete (lime_file_dialog_open_file (filter, defaultPath)); + worker.sendComplete (lime_file_dialog_open_file.call (filter, defaultPath)); }); @@ -156,7 +156,7 @@ class FileDialog { worker.doWork.add (function (_) { - worker.sendComplete (lime_file_dialog_save_file (filter, defaultPath)); + worker.sendComplete (lime_file_dialog_save_file.call (filter, defaultPath)); }); @@ -199,9 +199,9 @@ class FileDialog { #if (cpp || neko || nodejs) - private static var lime_file_dialog_open_file = System.load ("lime", "lime_file_dialog_open_file", 2); - private static var lime_file_dialog_open_files = System.load ("lime", "lime_file_dialog_open_files", 2); - private static var lime_file_dialog_save_file = System.load ("lime", "lime_file_dialog_save_file", 2); + private static var lime_file_dialog_open_file = System.loadPrime ("lime", "lime_file_dialog_open_file", "sss"); + private static var lime_file_dialog_open_files = System.loadPrime ("lime", "lime_file_dialog_open_files", "sso"); + private static var lime_file_dialog_save_file = System.loadPrime ("lime", "lime_file_dialog_save_file", "sss"); #end diff --git a/lime/ui/Gamepad.hx b/lime/ui/Gamepad.hx index 9535e494f..b1756e3b4 100644 --- a/lime/ui/Gamepad.hx +++ b/lime/ui/Gamepad.hx @@ -32,7 +32,7 @@ class Gamepad { public static function addMappings (mappings:Array):Void { #if (cpp || neko || nodejs) - lime_gamepad_add_mappings (mappings); + lime_gamepad_add_mappings.call (mappings); #end } @@ -48,7 +48,7 @@ class Gamepad { @:noCompletion private inline function get_guid ():String { #if (cpp || neko || nodejs) - return lime_gamepad_get_device_guid (this.id); + return lime_gamepad_get_device_guid.call (this.id); #else return null; #end @@ -59,7 +59,7 @@ class Gamepad { @:noCompletion private inline function get_name ():String { #if (cpp || neko || nodejs) - return lime_gamepad_get_device_name (this.id); + return lime_gamepad_get_device_name.call (this.id); #else return null; #end @@ -75,9 +75,9 @@ class Gamepad { #if (cpp || neko || nodejs) - private static var lime_gamepad_add_mappings = System.load ("lime", "lime_gamepad_add_mappings", 1); - private static var lime_gamepad_get_device_guid = System.load ("lime", "lime_gamepad_get_device_guid", 1); - private static var lime_gamepad_get_device_name = System.load ("lime", "lime_gamepad_get_device_name", 1); + private static var lime_gamepad_add_mappings = System.loadPrime ("lime", "lime_gamepad_add_mappings", "ov"); + private static var lime_gamepad_get_device_guid = System.loadPrime ("lime", "lime_gamepad_get_device_guid", "is"); + private static var lime_gamepad_get_device_name = System.loadPrime ("lime", "lime_gamepad_get_device_name", "is"); #end diff --git a/lime/utils/ByteArray.hx b/lime/utils/ByteArray.hx index 712f2b95c..69ae715c8 100644 --- a/lime/utils/ByteArray.hx +++ b/lime/utils/ByteArray.hx @@ -329,7 +329,7 @@ class ByteArray #if !js extends Bytes implements ArrayAccess implements IDa public static function readFile (path:String):ByteArray { #if !html5 - var data = lime_bytes_read_file (path); + var data = lime_bytes_read_file.call (path); if (data != null) return ByteArray.fromBytes (@:privateAccess new Bytes (data.length, data.b)); #end return null; @@ -908,7 +908,7 @@ class ByteArray #if !js extends Bytes implements ArrayAccess implements IDa #if (cpp || neko || nodejs) public static function __fromNativePointer (data:Dynamic, length:Int):ByteArray { - var bytes = lime_bytes_from_data_pointer (data, length); + var bytes = lime_bytes_from_data_pointer.call (data, length); return ByteArray.fromBytes (@:privateAccess new Bytes (bytes.length, bytes.b)); } @@ -944,7 +944,7 @@ class ByteArray #if !js extends Bytes implements ArrayAccess implements IDa #if (cpp || neko || nodejs) public function __getNativePointer ():Dynamic { - return lime_bytes_get_data_pointer (this); + return lime_bytes_get_data_pointer.call (this); } #end @@ -1102,9 +1102,9 @@ class ByteArray #if !js extends Bytes implements ArrayAccess implements IDa - private static var lime_bytes_from_data_pointer = System.load ("lime", "lime_bytes_from_data_pointer", 2); - private static var lime_bytes_get_data_pointer = System.load ("lime", "lime_bytes_get_data_pointer", 1); - private static var lime_bytes_read_file = System.load ("lime", "lime_bytes_read_file", 1); + private static var lime_bytes_from_data_pointer = System.loadPrime ("lime", "lime_bytes_from_data_pointer", "oio"); + private static var lime_bytes_get_data_pointer = System.loadPrime ("lime", "lime_bytes_get_data_pointer", "od"); + private static var lime_bytes_read_file = System.loadPrime ("lime", "lime_bytes_read_file", "so"); } diff --git a/lime/utils/LZMA.hx b/lime/utils/LZMA.hx index a3b097369..f46ef35b3 100644 --- a/lime/utils/LZMA.hx +++ b/lime/utils/LZMA.hx @@ -11,7 +11,7 @@ class LZMA { public static function decode (bytes:ByteArray):ByteArray { #if (cpp || neko || nodejs) - var data = lime_lzma_decode (bytes); + var data = lime_lzma_decode.call (bytes); return ByteArray.fromBytes (@:privateAccess new Bytes (data.length, data.b)); #else return null; @@ -23,7 +23,7 @@ class LZMA { public static function encode (bytes:ByteArray):ByteArray { #if (cpp || neko || nodejs) - var data = lime_lzma_encode (bytes); + var data = lime_lzma_encode.call (bytes); return ByteArray.fromBytes (@:privateAccess new Bytes (data.length, data.b)); #else return null; @@ -40,8 +40,8 @@ class LZMA { #if (cpp || neko || nodejs) - private static var lime_lzma_decode = System.load ("lime", "lime_lzma_decode", 1); - private static var lime_lzma_encode = System.load ("lime", "lime_lzma_encode", 1); + private static var lime_lzma_decode = System.loadPrime ("lime", "lime_lzma_decode", "oo"); + private static var lime_lzma_encode = System.loadPrime ("lime", "lime_lzma_encode", "oo"); #end diff --git a/lime/vm/NekoVM.hx b/lime/vm/NekoVM.hx index 63744c420..ef1cf5a48 100644 --- a/lime/vm/NekoVM.hx +++ b/lime/vm/NekoVM.hx @@ -9,12 +9,12 @@ class NekoVM { public static function loadModule (path:String):Void { - lime_neko_execute (path); + lime_neko_execute.call (path); } - private static var lime_neko_execute = System.load ("lime", "lime_neko_execute", 1); + private static var lime_neko_execute = System.loadPrime ("lime", "lime_neko_execute", "sv"); } \ No newline at end of file diff --git a/project/src/ExternalInterface.cpp b/project/src/ExternalInterface.cpp index 7cf4b98a6..eb55361df 100644 --- a/project/src/ExternalInterface.cpp +++ b/project/src/ExternalInterface.cpp @@ -7,7 +7,7 @@ #endif -#include +#include #include #include #include