[Date Prev][Date Next][Thread Prev][Thread Next]
[Date Index]
[Thread Index]
- Subject: Re: glua (was: Function lua_register)
- From: "Daniel Vollmer" <maven@...>
- Date: Fri, 11 Jan 2002 18:50:33 +0100
interest!
----- Original Message -----
From: Enrico Colombini <erix@erix.it>
To: Multiple recipients of list <lua-l@tecgraf.puc-rio.br>
Sent: Friday, January 11, 2002 6:45 PM
Subject: glua (was: Function lua_register)
> >you might want to take a look at tolua
> >(http://www.tecgraf.puc-rio.br/~celes/tolua/)
> >or one of the other code wrappers on the page
http://www.lua.org/addons.html
>
> By the way... after using tolua for a while, I decided that I needed
> something simpler but more suited to low-level hand-crafted code (e.g.
> functions accepting a variable number of arguments), so I wrote yet
another
> "code wrapper".
> It is called "glua" (Lua-C glue), it is minimalist but very efficient and
> it has error checking and meaningful error messages like tolua (usertypes
> included). A typical C definition looks like this:
>
> /*----- A minimal function: compute a bitwise AND -----*/
>
> /* Lua: c = Bitand(a, b) [a,b,c: integers] */
>
> glua_function(Bitand)
> int a = glua_getInteger(1); /* get arg #1 */
> int b = glua_getInteger(2); /* get arg #2 */
> glua_getNone(3); /* error if extra args */
> glua_pushNumber(a & b); /* compute and return 1 numeric result */
> return 1;
> }
>
> (the missing open brace is intentional -- macros at work)
> and, later in the file:
>
> /*----- List of functions visible from Lua -----*/
>
> static glua_fitem flist[] = {
> glua_fn(Bitand)
> /* ... */
> };
>
> /*----- Initialization -----*/
>
> void gluatest_open (lua_State* lua)
> {
> glua_regFunctions(flist); /* functions */
> /* numeric constants can be defined too */
> /* usertags are defined and registered here */
> }
>
> I wrote glua a few months ago to interface with low-level graphics, than I
> had a work overload and never got around to write a documentation.
> If somebody is interested, I can try to find time to make that last step.
>
> Enrico
>
>