More native code gen functionality.
Allow tables to be mapped to native types directly. For example, a table representing a vector3 (eg. table Vec3 { x:float; y:float; z:float; }) can be mapped to a "mathfu::vec3" native type in NativeTables. This requires users to provide Pack and UnPack functions that convert between the Table and native types. This is done by adding the "native_type" attribute to the table definition. To support user-defined flatbuffers::Pack and flatbuffers::UnPack functions, support a "native_include" markup that will generate a corresponding Also add an UnPackTo function which allows users to pass in a pointer to a NativeTable object into which to UnPack the Table. The existing UnPack function is now simply: NativeTable* UnPack() { NativeTable* obj = new NativeTable(); Table::UnPackTo(obj); return obj; } Finally, allow native types to be given a default value as well which are set in the NativeTable constructor. This is done by providing a "native_default" attribute to the member of a table. Change-Id: Ic45cb48b0e6d7cfa5734b24819e54aa96d847cfd
Showing
- docs/source/CppUsage.md 69 additions, 3 deletionsdocs/source/CppUsage.md
- docs/source/Schemas.md 4 additions, 0 deletionsdocs/source/Schemas.md
- include/flatbuffers/idl.h 3 additions, 0 deletionsinclude/flatbuffers/idl.h
- samples/monster_generated.h 44 additions, 21 deletionssamples/monster_generated.h
- src/idl_gen_cpp.cpp 79 additions, 12 deletionssrc/idl_gen_cpp.cpp
- src/idl_parser.cpp 10 additions, 1 deletionsrc/idl_parser.cpp
- tests/monster_test_generated.h 108 additions, 52 deletionstests/monster_test_generated.h
Loading
Please register or sign in to comment