Re: [Lua-icxx-users] lua_icxx + swig
Brought to you by:
schoenborno
|
From: Domenico M. <dm...@gm...> - 2012-02-05 17:26:48
|
Hi .. more on this..
I found that I can use SWIG_Lua_NewPointerObj provided by swig generate
file to create the wrapping object
void execCallback()
{
SWIG_Lua_NewPointerObj( L, new Foo() .... )
cb();
}
SWIG_Lua_NewPointerObj pushes the object into lua stack.
Now the question is, can I call cb with no args given the pointer is
already in the stack ?
I'll give it a try..
Dom
On Sun, Feb 5, 2012 at 3:34 PM, Domenico Mangieri <dm...@gm...> wrote:
> Hi,
>
> I'm playing around with lua_icxx. I find it very useful with its unique
> approach to lua calls within c++.
>
> I'm currently using swig to wrap a large library and I'm using lua_icxx to
> provide callback supports from within c++ into lua.
>
> Here is an example
>
> *c++ *
>
> // Note : Foo is wrapped by swig
>
> class Foo
> {
> public:
>
> LuaFuncRef cb;
>
> void registerCallback(const char* cb)
> {
> cb = _lua.eval(cb);
> }
> .....
>
> void execCallback()
> {
> cb();
> }
> };
>
>
>
>
>
> *lua :*
>
>
> function test()
> print("cool")
> end
>
> f = Foo()
> f:registerCallback("test");
>
>
>
>
> That's all good.
>
> My problem now is to make use of swig wrap to pass c++ objects to lua
> callback;
>
> Something like this
>
> void execCallback()
> {
> cb( new Foo );
> }
>
> The callback works fine with basic types but not for UDT.
>
> Any idead how that could be solved ?
>
>
> Thank you for sharing this lib.
>
> Dom
>
>
|