Difference between revisions of "Conversion between love objects and FFI structures"
m |
m |
||
Line 1: | Line 1: | ||
− | {{notice|This is | + | {{notice|This is '''NOT''' recommended for ''anyone'' to use. It will break at any time. The only non-breaking conversion between love objects and FFI data is via [[Data:getPointer]], which you can cast to a FFI pointer via ffi.cast.}} |
This page leads to conversion between löve objects and FFI (Foreign Function Interface) structures. | This page leads to conversion between löve objects and FFI (Foreign Function Interface) structures. |
Revision as of 19:44, 24 May 2016
This is NOT recommended for anyone to use. It will break at any time. The only non-breaking conversion between love objects and FFI data is via Data:getPointer, which you can cast to a FFI pointer via ffi.cast. |
This page leads to conversion between löve objects and FFI (Foreign Function Interface) structures.
- If you don't know what FFI is, check http://luajit.org/ext_ffi.html
- Download the code from here http://pastebin.com/Ad9dPKiZ
Love objects in lua are always stored in a userdata object (Proxy) that contains the object itself and a type identifier.
- Check the line 99 to see the structure of the Proxy object
Functions
cdata Object, number Type, string TypeName = love.ffi(Object Object)
Description: This function converts a love object into a FFI cdata object. It returns the object itself (not the Proxy object), it's type and type name.
Object Object = love.fromffi(cdata Object, number Type, string TypeName)
Description: This function converts a FFI cdata object into a Proxy userdata object, it is required to give the type name to assign the metatable to the userdata object, and the type id for the Proxy object.