summaryrefslogtreecommitdiff
path: root/src/bindings/mono/efl_mono/efl_all.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/bindings/mono/efl_mono/efl_all.cs')
-rw-r--r--src/bindings/mono/efl_mono/efl_all.cs18
1 files changed, 17 insertions, 1 deletions
diff --git a/src/bindings/mono/efl_mono/efl_all.cs b/src/bindings/mono/efl_mono/efl_all.cs
index a8436bd..d8c08d3 100644
--- a/src/bindings/mono/efl_mono/efl_all.cs
+++ b/src/bindings/mono/efl_mono/efl_all.cs
@@ -9,15 +9,31 @@ using static Efl.UnsafeNativeMethods;
9namespace Efl { 9namespace Efl {
10 10
11static class UnsafeNativeMethods { 11static class UnsafeNativeMethods {
12
13 private delegate void init_func_delegate();
12 [DllImport(efl.Libs.Ecore)] public static extern void ecore_init(); 14 [DllImport(efl.Libs.Ecore)] public static extern void ecore_init();
13 [DllImport(efl.Libs.Ecore)] public static extern void ecore_shutdown(); 15 [DllImport(efl.Libs.Ecore)] public static extern void ecore_shutdown();
14 [DllImport(efl.Libs.Evas)] public static extern void evas_init(); 16 // dotnet loads libraries from DllImport with RTLD_LOCAL. Due to the
17 // way evas modules are built with meson, currently they do not link directly
18 // with libevas, leading to symbol not found errors when trying to open them.
19 // The call to FunctionWrapper makes sure evas is loaded with RTLD_GLOBAL,
20 // allowing the symbols to remain visible for the modules until the build
21 // is sorted out.
22 private static Efl.Eo.FunctionWrapper<init_func_delegate> _evas_init;
15 [DllImport(efl.Libs.Evas)] public static extern void evas_shutdown(); 23 [DllImport(efl.Libs.Evas)] public static extern void evas_shutdown();
16 [DllImport(efl.Libs.Elementary)] public static extern int elm_init(int argc, IntPtr argv); 24 [DllImport(efl.Libs.Elementary)] public static extern int elm_init(int argc, IntPtr argv);
17 [DllImport(efl.Libs.Elementary)] public static extern void elm_policy_set(int policy, int policy_detail); 25 [DllImport(efl.Libs.Elementary)] public static extern void elm_policy_set(int policy, int policy_detail);
18 [DllImport(efl.Libs.Elementary)] public static extern void elm_shutdown(); 26 [DllImport(efl.Libs.Elementary)] public static extern void elm_shutdown();
19 [DllImport(efl.Libs.Elementary)] public static extern void elm_run(); 27 [DllImport(efl.Libs.Elementary)] public static extern void elm_run();
20 [DllImport(efl.Libs.Elementary)] public static extern void elm_exit(); 28 [DllImport(efl.Libs.Elementary)] public static extern void elm_exit();
29
30 static UnsafeNativeMethods() {
31 _evas_init = new Efl.Eo.FunctionWrapper<init_func_delegate>("evas", "evas_init");
32 }
33 public static void evas_init()
34 {
35 _evas_init.Value.Delegate();
36 }
21} 37}
22 38
23public enum Components { 39public enum Components {