From 8ed70c66911b483cccfa0a7b0c26dd80a061966b Mon Sep 17 00:00:00 2001 From: jpbruyere Date: Tue, 6 Jun 2017 12:47:32 +0200 Subject: [PATCH] use internal calls for libcrow --- .gitignore | 1 + MDEmbedTest/MDEmbedTest.cproj | 2 +- MDEmbedTest/Makefile | 5 +++-- MDEmbedTest/libcrow.so | Bin 0 -> 61856 bytes MDEmbedTest/main.c | 26 +++++++++++++++++++++----- MDEmbedTest/main.o | Bin 14056 -> 0 bytes MDEmbedTest/mdembed | Bin 15016 -> 0 bytes MDEmbedTest/test.exe | Bin 3072 -> 0 bytes MDEmbedTest/test2.cs | 1 + MDEmbedTest/test2.exe | Bin 3584 -> 0 bytes src/Crow.Native/LibCrow.cs | 27 +++++++++++++++------------ testDrm/TestCrow.cs | 11 +++++------ 12 files changed, 47 insertions(+), 26 deletions(-) create mode 100755 MDEmbedTest/libcrow.so delete mode 100644 MDEmbedTest/main.o delete mode 100755 MDEmbedTest/mdembed delete mode 100755 MDEmbedTest/test.exe delete mode 100755 MDEmbedTest/test2.exe diff --git a/.gitignore b/.gitignore index 477bac00..6e57eec4 100644 --- a/.gitignore +++ b/.gitignore @@ -3,6 +3,7 @@ Win_x86 Crow.userprefs Debug packages +*.o *.nupkg /GOLib.suo /tmp diff --git a/MDEmbedTest/MDEmbedTest.cproj b/MDEmbedTest/MDEmbedTest.cproj index 3c209afc..43502bcd 100644 --- a/MDEmbedTest/MDEmbedTest.cproj +++ b/MDEmbedTest/MDEmbedTest.cproj @@ -24,7 +24,7 @@ - + diff --git a/MDEmbedTest/Makefile b/MDEmbedTest/Makefile index 631fa272..53da377d 100644 --- a/MDEmbedTest/Makefile +++ b/MDEmbedTest/Makefile @@ -2,12 +2,13 @@ export PKG_CONFIG_PATH = /opt/mono/lib/pkgconfig CC = gcc CFLAGS = -Wall -Wextra -O2 -g -DDEBUG -LDFLAGS = +LDFLAGS = -L/devel/crow/build/Debug TARGET = mdembed SOURCES = main.c OBJECTS = $(SOURCES:.c=.o) +CFLAGS += -lcrow CFLAGS += `pkg-config --cflags --libs mono-2` CFLAGS += `pkg-config --cflags --libs cairo` CFLAGS += `pkg-config --cflags --libs gl` @@ -28,4 +29,4 @@ clean: .PHONY: run run: - -./${TARGET} test.exe \ No newline at end of file + -./${TARGET} ../build/Debug/testDrm.exe diff --git a/MDEmbedTest/libcrow.so b/MDEmbedTest/libcrow.so new file mode 100755 index 0000000000000000000000000000000000000000..ff874cc49d17c457a6a6ec1da5712cdbab1c7e39 GIT binary patch literal 61856 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 J48URe{{u2B07C!( literal 0 HcmV?d00001 diff --git a/MDEmbedTest/main.c b/MDEmbedTest/main.c index 45a01cd3..a6f06783 100644 --- a/MDEmbedTest/main.c +++ b/MDEmbedTest/main.c @@ -3,6 +3,7 @@ #include #include #include +#include "../../libcrow/libcrow.h" /* * Very simple mono embedding example. @@ -26,16 +27,16 @@ static void main_function (MonoDomain *domain, const char *file, int argc, char* assembly = mono_domain_assembly_open (domain, file); if (!assembly) exit (2); - a2 = mono_domain_assembly_open (domain, "test2.exe"); - if (!a2) - exit (2); + //a2 = mono_domain_assembly_open (domain, "../build/Debug/testDrm.exe"); + //if (!a2) + // exit (2); /* * mono_jit_exec() will run the Main() method in the assembly. * The return value needs to be looked up from * System.Environment.ExitCode. */ mono_jit_exec (domain, assembly, argc, argv); - mono_jit_exec (domain, a2, argc, argv); + //mono_jit_exec (domain, a2, argc, argv); } int @@ -65,7 +66,22 @@ main(int argc, char* argv[]) { * We add our special internal call, so that C# code * can call us back. */ - mono_add_internal_call ("MonoEmbed::gimme", gimme); + mono_add_internal_call ("Crow.Native.LibCrow::gimme", gimme); + mono_add_internal_call ("Crow.Native.LibCrow::crow_context_create", crow_context_create); + mono_add_internal_call ("Crow.Native.LibCrow::crow_context_destroy", crow_context_destroy); + mono_add_internal_call ("Crow.Native.LibCrow::crow_context_set_root", crow_context_set_root); + mono_add_internal_call ("Crow.Native.LibCrow::crow_context_process_clipping", crow_context_process_clipping); + mono_add_internal_call ("Crow.Native.LibCrow::crow_context_process_layouting", crow_context_process_layouting); + mono_add_internal_call ("Crow.Native.LibCrow::crow_context_process_drawing", crow_context_process_drawing); + + mono_add_internal_call ("Crow.Native.LibCrow::crow_object_create", crow_object_create); + mono_add_internal_call ("Crow.Native.LibCrow::crow_object_destroy", crow_object_destroy); + mono_add_internal_call ("Crow.Native.LibCrow::crow_object_set_type", crow_object_set_type); + mono_add_internal_call ("Crow.Native.LibCrow::crow_object_do_layout", crow_object_do_layout); + mono_add_internal_call ("Crow.Native.LibCrow::crow_object_register_layouting", crow_object_register_layouting); + + mono_add_internal_call ("Crow.Native.LibCrow::crow_object_child_add", crow_object_child_add); + mono_add_internal_call ("Crow.Native.LibCrow::crow_object_child_remove", crow_object_child_remove); main_function (domain, file, argc - 1, argv + 1); diff --git a/MDEmbedTest/main.o b/MDEmbedTest/main.o deleted file mode 100644 index eb52af1381b0b026919fe5636d4b75d40458d38c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14056 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 X3@ZD_J;AI0Qy46iS4>sPrNV84LH diff --git a/MDEmbedTest/mdembed b/MDEmbedTest/mdembed deleted file mode 100755 index db17b65d5150956c8b85b1650090023ae87f4c9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15016 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 diff --git a/MDEmbedTest/test.exe b/MDEmbedTest/test.exe deleted file mode 100755 index b49eb85694605ca74ec0754fce5f3ae1b0caaa23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3072 zcmeHI-A^1<6#vb3AwY#`4F*CNOyt8Xv*&F?J{L{W-~L3 zU}ELLniyZ&{sI0C#uz1jBz^F;J{l7f!-Ma>8)N;QJNpGT%CqTN?#DUjchCKuGxuJW z-@b=a0FrEv9|H#*MRL0T_imr=ftSA-z?Z#`Mh=XnM4~7tRz=yz_*RD8_&aH@^e^X|E}&MJkXdJ8Rs*oOWe;@23AdR ze|+|e)--hRKFT;l{f744$89`EtrvoM7J057*7FhFzk<`OhJ_SfWWL>)Kyn|)#HTKK zH039J(VPO8m;G|xRada=d;Wa2q{>+Hc2wZpa*8Ea&GPQO9adZduw3nNvv^2)9U zPP7Nhj{E?#z8Cs#(~Awd)RN;VtdwpmJ3_^&Ruz_uj)zEv5w6$0$f+`PwN{LrlH)Se zKlW&VEI~Q03i2x0acmW$8rpu~Iwc*;QoD+W&eZwrYz*K1<-wVSPlvv`bKdx1LhMFT zYM+E*4DgIeGtNon3yGnPpjf-+d-J=tszr|P6}AHZz0lbI%rf>rI+m%ms)DK$hJ=N! z^xL);`?T4lmp0c`AoyuHx%{Qg*}5Cm12yfbdK47hw7FU@xsH8R?G^lOeLHHAu*WWc4~~o&tbDzzGw7&{r)@a!`Z`6THo*>)tcf*nVW6BbJo1K zz|C1dnBP_UlW4+9S!Gx56kqi7Fmrl#vd++V>umgrb}Wfcd*%st0m<8OBS)uPsD|t( zvYf5+jNfEGkL#Q*Vg=WzFS37wbCK_pzyH;|ecI6IUTciaJKO1#dv7pm5dq^kd_NRp zdbkC-9elrdMt}mnMOs7pi-?Hxsfm1u&y$BdN(MPaL^-rqo)GCfjmaQ`Nyg3~ixPX_ zCB85QW*M)_pW^C>yFh=c(GFit@4v@viy9|;n`~)~X)>QsNTTrzww+D&425iiwt<8 diff --git a/MDEmbedTest/test2.cs b/MDEmbedTest/test2.cs index eb23a837..ea85efd3 100644 --- a/MDEmbedTest/test2.cs +++ b/MDEmbedTest/test2.cs @@ -7,5 +7,6 @@ class MonoEmbed { static void Main() { Console.WriteLine ("test2 => " + gimme ()); + } } diff --git a/MDEmbedTest/test2.exe b/MDEmbedTest/test2.exe deleted file mode 100755 index c98fc48a815bb22ee6cdab437431eb5cd29c89cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3584 zcmeHJ&2Lmy6#u=UZAy_zi9%?icu8xl*t`t1Sevvs(3THrp<#xC#)Q6ky$sL3d2e#x z8*ELKN&HB3C0iFH{s%6M5~B;YCL}J5alwL>ap%SbaUuTBeKVa-C5Anm={@(Jk9+R# zocrE+U3~is>;TZi@$eyVo3l{S^8aT|n)5GypT{>l?;gDEEZjX2!amXN6y*h^aFj=$siq&4T_`4Axv?~ zWw^Pr_+>_ugLJ`@{#;4h0D{>+JTLV+1y674m#&on;SE!U&+kn&W1hw5H zbtMV59C}e#z-3;CLzz>n`V=0M4&+9OaNy9gVTAf9QS=EL7-g`5Lj+KI^MqrgXYj61 zxCM8-Fn)MS4(LTl-p{SW9|9@oUnmckQWHegL_AJ2*nZJnEMbLf-Y$kuT|6_#xlZ{H zkxztig|m>joGJr5Mflqp$G$AL-ppp7{q|aNZV%w67Ro+62bYDI<8#u7w=7??{3CoN zQCoglR)ZLzW)F1^mXugO-G9tVvc}*|80@8dS&4WP>lmW66XLT67r1)}9KuUGxDZc{JK|4|m#2V0tlLZG`$57UL+MuT}IaE=Je239bfS zCDgNgCy%GBaix)Jls1x7*W8l!8zx9M;QDE7kX=E`h}k&uy;P(Q7;6M#`(&- z+D}mpYBh~TFNl!pBt3!)jVKLjJgHXq(x4KAjQpP?TTZTc1)(-2ZLSBtPEbqy*n~kP z3+C!|4LqAdBSDHIP?%wzl+E|AJMQp}U+*3Na_QS!zu$Q9Id&*GJq~TX$mR3-9ym^( z&!PgVEUe%;sgG>D_}H50#=IL%wG)BJc_J=`U2YC)3FE!iwmN4J^O zm};XQQ_I?j|BO8A{EeyEMwm8?o{4lLHC{NTmKv2X@XzXva=fOanabp(cho=n+Tp43 z30-)7YOhny4VKn|IwSGYSbK(Z`oDYso#mm4`=51g8V`m$LSEi&)seeaVzYE*Ha7F? z+Fq80thKuu%6rH!!b?y^yL!r=gbFyepR&I;yR*%DTj3FU@sn@IC?Kx<^}H}G}OeYOOLm{NKL)K?!7=?CjmKmn7CUBCn?EA)%=)yE&)GiaTO9Q+oZ?$x$9FcdEz{TV ztWGWkeiu4JV)xNssv-T+aQ2vg2SKN60;3kk0{yDiOERis!y>8T8Y67Q+wsdPyUKkv z?lV}k*=N4f{DL{WTd8W*R#wh$=PGEVV*Iv~XWiT7YTfFx+AVQ!j8!z?)2o9#i=Scc a_Ss$)soPU}%nGRN|1c%5>r;B-D)2AyUs0+6 diff --git a/src/Crow.Native/LibCrow.cs b/src/Crow.Native/LibCrow.cs index 5496f19f..bd0a1473 100644 --- a/src/Crow.Native/LibCrow.cs +++ b/src/Crow.Native/LibCrow.cs @@ -25,35 +25,38 @@ // THE SOFTWARE. using System; using System.Runtime.InteropServices; +using System.Runtime.CompilerServices; namespace Crow.Native { - internal static class LibCrow + public static class LibCrow { + [MethodImplAttribute(MethodImplOptions.InternalCall)] + public unsafe extern static string gimme(); #region PINVOKE const string lib = "libcrow"; - [DllImport(lib, CallingConvention = CallingConvention.Cdecl)] + [MethodImplAttribute(MethodImplOptions.InternalCall)] internal static extern IntPtr crow_context_create (); - [DllImport(lib, CallingConvention = CallingConvention.Cdecl)] + [MethodImplAttribute(MethodImplOptions.InternalCall)] internal static extern void crow_context_destroy (IntPtr ctx); - [DllImport(lib, CallingConvention = CallingConvention.Cdecl)] + [MethodImplAttribute(MethodImplOptions.InternalCall)] unsafe internal static extern void crow_context_set_root (IntPtr ctx, crow_object_t* root); - [DllImport(lib, CallingConvention = CallingConvention.Cdecl)] + [MethodImplAttribute(MethodImplOptions.InternalCall)] internal static extern void crow_context_process_layouting (IntPtr ctx); - [DllImport(lib, CallingConvention = CallingConvention.Cdecl)] + [MethodImplAttribute(MethodImplOptions.InternalCall)] internal static extern void crow_context_process_clipping (IntPtr ctx); - [DllImport(lib, CallingConvention = CallingConvention.Cdecl)] + [MethodImplAttribute(MethodImplOptions.InternalCall)] internal static extern void crow_context_process_drawing (IntPtr ctx, IntPtr cairoCtx); - [DllImport(lib)] + [MethodImplAttribute(MethodImplOptions.InternalCall)] unsafe internal static extern crow_object_t* crow_object_create(); - [DllImport(lib, CallingConvention = CallingConvention.Cdecl)] + [MethodImplAttribute(MethodImplOptions.InternalCall)] unsafe internal static extern void crow_object_destroy(crow_object_t* go); - [DllImport(lib, CallingConvention = CallingConvention.Cdecl)] + [MethodImplAttribute(MethodImplOptions.InternalCall)] unsafe internal static extern void crow_object_set_type (crow_object_t* go, CrowType objType); - [DllImport(lib, CallingConvention = CallingConvention.Cdecl)] + [MethodImplAttribute(MethodImplOptions.InternalCall)] unsafe internal static extern byte crow_object_do_layout (crow_object_t* go, LayoutingType layout); - [DllImport(lib, CallingConvention = CallingConvention.Cdecl)] + [MethodImplAttribute(MethodImplOptions.InternalCall)] unsafe internal static extern byte crow_object_register_layouting (crow_object_t* go, LayoutingType layout); diff --git a/testDrm/TestCrow.cs b/testDrm/TestCrow.cs index 552b7198..5e98ab56 100644 --- a/testDrm/TestCrow.cs +++ b/testDrm/TestCrow.cs @@ -48,22 +48,21 @@ namespace testDrm public int a = 10,b=20; } - [MethodImplAttribute(MethodImplOptions.InternalCall)] - unsafe extern static string gimme(); + [DllImport(lib, CallingConvention = CallingConvention.Cdecl)] internal static extern void registerICall (); static void Main(){ - registerICall (); - Console.WriteLine (gimme()); + //registerICall (); + Console.WriteLine (Crow.Native.LibCrow. gimme()); - /*using (Interface iface = new Interface ()) { + using (Interface iface = new Interface ()) { Console.WriteLine ("is dirty: {0}", iface.IsDirty); iface.ProcessResize (new Rectangle (0, 0, 1024, 768)); iface.LoadInterface ("#testDrm.ui.go.crow"); iface.Update (); iface.DumpTo ("/home/jp/test.png"); - }*/ + } } } } -- 2.47.3