|
Deki 0.19.0
Modular C++ 2D engine for embedded displays and desktop
|
What the plugin was compiled against. More...
#include <C:/Users/kirby/Documents/Github/deki/deki-editor/deki-editor/include/deki-editor/build/BuilderPlugin.h>
Public Attributes | |
| uint32_t | version |
| kDekiBuilderAbiVersion the plugin compiled with | |
| uint32_t | structSize |
| sizeof(DekiBuilderAbi) as the plugin sees it | |
| uint32_t | platformConfigSize |
| sizeof(DekiEditor::PlatformConfig) | |
| uint32_t | packageEntrySize |
| sizeof(DekiEditor::CMakeGen::PackageEntry), returned by value | |
| uint32_t | stdStringSize |
| sizeof(std::string) | |
| uint32_t | stdVectorSize |
| sizeof(std::vector<int>) | |
| uint32_t | compilerTag |
| compiler + STL identity; see DekiBuilderThisAbi | |
What the plugin was compiled against.
A builder plugin shares C++ objects with the editor: PlatformConfig by reference, std::string and std::vector across the boundary, a vtable it inherits. That works only when both sides agree on their layout; when they do not, the result is a corrupted field or a crash somewhere unrelated, not an error. So the editor refuses a plugin that cannot show it matches, like the package loader's reflection ABI guard.
Read version through the pointer before copying the struct: a plugin built against another revision may return a struct of another size.
| uint32_t DekiBuilderAbi::version |
kDekiBuilderAbiVersion the plugin compiled with
| uint32_t DekiBuilderAbi::structSize |
sizeof(DekiBuilderAbi) as the plugin sees it
| uint32_t DekiBuilderAbi::platformConfigSize |
sizeof(DekiEditor::PlatformConfig)
| uint32_t DekiBuilderAbi::packageEntrySize |
sizeof(DekiEditor::CMakeGen::PackageEntry), returned by value
| uint32_t DekiBuilderAbi::stdStringSize |
sizeof(std::string)
| uint32_t DekiBuilderAbi::stdVectorSize |
sizeof(std::vector<int>)
| uint32_t DekiBuilderAbi::compilerTag |
compiler + STL identity; see DekiBuilderThisAbi