[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: Namespace advice needed
- From: Sam Roberts <vieuxtech@...>
- Date: Wed, 23 Feb 2011 16:16:07 -0800
> 3) Take the above Lua code, and translate it into the equivalent C API
> functions. I dont know how I would move a table though in C ?
>
> None of the above sound very easy or pleasant, however I am probably
> missing the obvious and elegant way to achieve this ?
>
> Any advice or code examples would be welcomed please. Thanks
Best way would be for your system to include a lua program text file,
which it runs at startup using luaL_dofile().
Its pretty common for bindings to have a core of C code, and then a
layer on top implemented in lua that makes the whole thing a little
easier to use.
I suspect that you'll find there is more and more simple setup and
arrangement tasks and convenience functions you'll want to layer on
top of your C bindings, or in this example, rearrangement of the C
bindings into new namespaces. Writing this stuff in lua is the easy
way.
If you don't have a filesystem, or its otherwise difficult to arrange
this (I think you said you're on an embedded system of some sort),
then build the startup code lua into your system as a string, and do a
luaL_dostring() on it.
If you have to do it in C, doing what Luiz suggested is fairly easy,
you'd use a combinatin of lua_newtable(), lua_getglobal(),
lua_setglobal(), and lua_setfield() in order to get the graphics
global that swig created, and put it as a field called graphics inside
a new table you make, which you then assign to the global "acme". Then
assign nil to the global graphics.
Cheers,
Sam