dev:epic
This is an old revision of the document!
Table of Contents
tolua Notes
Here are my notes I use when I have to work on this system.
C++ calling lua
Here is how a C++ class can call into it's lua instance. I think this is where I was confused by what was being asking. Sorry, I don't know why it wasn't apparent to me.
- I have a LuaObject that has access to it's Rtti/metadata.
- I also have my own header parser that generates this code.
- So I have access to the actual class name such as “Forge::Light”.
- Every class has a class metatable that represent that class in lua
- These metatables are created and populated during initialization.
- There is master table stored in the lua registry that has a mapping from class names to metatables.
- There is also a mapping of c++ lightuserdata (pointer/instance) to metatables.
- To allow lua full ownership of C++ instances, there is a lua table for garbage collection.
- When a userdata is collected, this list is checked too see if the instance needs collecting.
- If it does, it uses the class destructor if it was exposed in the C++ header.
Editor
lua calling C++
/home/admin/domains/wiki.d20dungeons.com/public_html/data/attic/dev/epic.1666890441.txt.gz · Last modified: (external edit)




