From 334390b8e8d6419d47832fc45a782d066fa7cb62 Mon Sep 17 00:00:00 2001 From: Romain BOULLARD Date: Sun, 26 Apr 2026 14:18:28 +0200 Subject: [PATCH] Asset --- .../Include/Engine/BigFile/Asset/Asset.bfbs | Bin 1088 -> 1200 bytes .../BigFile/Asset/Asset.bfbs_generated.hpp | 49 ++-- .../Include/Engine/BigFile/Asset/Asset.fbs | 21 +- .../Include/Engine/BigFile/Asset/Asset.hpp | 68 +++++ .../Engine/BigFile/Asset/Asset_generated.hpp | 275 +++++++++++++----- Bigfoot/Tests/Engine/BigFile/BigFile.cpp | 8 + .../EngineTests/BigFile/Asset/AssetA.bfbs | Bin 0 -> 340 bytes .../BigFile/Asset/AssetA.bfbs_generated.hpp | 41 +++ .../EngineTests/BigFile/Asset/AssetA.fbs | 9 + .../EngineTests/BigFile/Asset/AssetA.hpp | 20 ++ .../BigFile/Asset/AssetA_generated.hpp | 202 +++++++++++++ 11 files changed, 592 insertions(+), 101 deletions(-) create mode 100644 Bigfoot/Sources/Engine/Include/Engine/BigFile/Asset/Asset.hpp create mode 100644 Bigfoot/Tests/Engine/Include/EngineTests/BigFile/Asset/AssetA.bfbs create mode 100644 Bigfoot/Tests/Engine/Include/EngineTests/BigFile/Asset/AssetA.bfbs_generated.hpp create mode 100644 Bigfoot/Tests/Engine/Include/EngineTests/BigFile/Asset/AssetA.fbs create mode 100644 Bigfoot/Tests/Engine/Include/EngineTests/BigFile/Asset/AssetA.hpp create mode 100644 Bigfoot/Tests/Engine/Include/EngineTests/BigFile/Asset/AssetA_generated.hpp diff --git a/Bigfoot/Sources/Engine/Include/Engine/BigFile/Asset/Asset.bfbs b/Bigfoot/Sources/Engine/Include/Engine/BigFile/Asset/Asset.bfbs index 8ef4efe492f021311816fb968c54c43b664b8df3..69ba5e8852cff9d49460f40d85fa4c28492f975e 100644 GIT binary patch delta 342 zcmXw!y-EX75QS%Um#`s$^=B70ptzt#iXeyzDHK95Vi~ZpNFyX6onV#D7qD5bRu(oE zmO?Boe1-HDDSQm^`VEN}K4#9$xo7u&#&6Z65RvYA_mU#1w8|uFbZFbqf&%U#g_H7h zx9mrE5&ad^RpccUSp*^!sY4UYoBw$K&D^|pn&<~i|GJG{FgJ}&rtIEn2HyKEv}F-5 zA7J|e2CyOGHZ`lA{d$j7m5Mvm@4Gy0!mH@x)B*D|Xga u@0;&zo6#P>$E`2wD@^F8)ZDFW7GJDl+*tQDbdUO^fjbDEHJr_Z8~p=8MmUxL delta 256 zcmXwzzYYOG5Qk^>{0)hdoI;RDGzx`+j)W^zI;{uLX%q?xy~br5i2`pR@d6%0BT;w^ zalVz9&6oN8W@cyilD%aLbrA_i;e;fCG^0YP+(UMt302sG51pvrSbK;W^bkuU;(Q+5 zZ~&Wk9IvP+&@OiP7DIo3!n+5YXH0y0V?@A7NQR2r=EDE&8=%}L6u4uzTCAnf3uwcX oMgULriF}D3mE7wS$9PSNZ$0hWySCKWq&cYCvpK4{4!ya40rA=<1poj5 diff --git a/Bigfoot/Sources/Engine/Include/Engine/BigFile/Asset/Asset.bfbs_generated.hpp b/Bigfoot/Sources/Engine/Include/Engine/BigFile/Asset/Asset.bfbs_generated.hpp index db43e55..8f3b3ca 100644 --- a/Bigfoot/Sources/Engine/Include/Engine/BigFile/Asset/Asset.bfbs_generated.hpp +++ b/Bigfoot/Sources/Engine/Include/Engine/BigFile/Asset/Asset.bfbs_generated.hpp @@ -11,33 +11,40 @@ namespace Bigfoot { - inline constexpr eastl::array g_Asset_bfbs = { - std::byte{0x20}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x42}, std::byte{0x46}, std::byte{0x42}, std::byte{0x53}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x28}, std::byte{0x00}, + inline constexpr eastl::array g_Asset_bfbs = { + std::byte{0x20}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x42}, std::byte{0x46}, std::byte{0x42}, std::byte{0x53}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x2C}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x18}, std::byte{0x00}, std::byte{0x20}, std::byte{0x00}, std::byte{0x1C}, std::byte{0x00}, - std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x3C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x34}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x28}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, - std::byte{0x1C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x98}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x34}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x40}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x38}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x2C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x20}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x8C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x3C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, - std::byte{0x03}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x68}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x3C}, std::byte{0x03}, std::byte{0x00}, std::byte{0x00}, std::byte{0x78}, std::byte{0x02}, std::byte{0x00}, std::byte{0x00}, - std::byte{0x03}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x28}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, - std::byte{0x80}, std::byte{0xFC}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x7C}, std::byte{0x02}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, - std::byte{0x90}, std::byte{0xFC}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x2C}, std::byte{0x03}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, - std::byte{0xA0}, std::byte{0xFC}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x3C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x02}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, - std::byte{0x10}, std::byte{0x03}, std::byte{0x00}, std::byte{0x00}, std::byte{0x4C}, std::byte{0x02}, std::byte{0x00}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, - std::byte{0x00}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, - std::byte{0x40}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x1C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, - std::byte{0x0B}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x2F}, std::byte{0x2F}, std::byte{0x41}, std::byte{0x73}, std::byte{0x73}, std::byte{0x65}, std::byte{0x74}, std::byte{0x2E}, std::byte{0x66}, std::byte{0x62}, std::byte{0x73}, std::byte{0x00}, - std::byte{0x07}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x74}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x30}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x5C}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, - std::byte{0x14}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0xE0}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0xA0}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0xB0}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x58}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, + std::byte{0xA4}, std::byte{0x03}, std::byte{0x00}, std::byte{0x00}, std::byte{0xE0}, std::byte{0x02}, std::byte{0x00}, std::byte{0x00}, std::byte{0x03}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x28}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x18}, std::byte{0xFC}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0xE4}, std::byte{0x02}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x28}, std::byte{0xFC}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x94}, std::byte{0x03}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x38}, std::byte{0xFC}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0xE0}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x02}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x78}, std::byte{0x03}, std::byte{0x00}, std::byte{0x00}, std::byte{0xB4}, std::byte{0x02}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x5C}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x1C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0xBC}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x02}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x20}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x5C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x12}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x42}, std::byte{0x69}, std::byte{0x67}, std::byte{0x66}, std::byte{0x6F}, std::byte{0x6F}, std::byte{0x74}, std::byte{0x2E}, std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, - std::byte{0x2E}, std::byte{0x41}, std::byte{0x73}, std::byte{0x73}, std::byte{0x65}, std::byte{0x74}, std::byte{0x00}, std::byte{0x00}, std::byte{0xE4}, std::byte{0xFE}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, - std::byte{0x06}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x24}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, + std::byte{0x2E}, std::byte{0x41}, std::byte{0x73}, std::byte{0x73}, std::byte{0x65}, std::byte{0x74}, std::byte{0x00}, std::byte{0x00}, std::byte{0x44}, std::byte{0xFE}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, + std::byte{0x01}, std::byte{0x00}, std::byte{0x06}, std::byte{0x00}, std::byte{0x24}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x06}, std::byte{0x00}, std::byte{0x07}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0E}, std::byte{0x04}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0A}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x66}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, - std::byte{0x62}, std::byte{0x75}, std::byte{0x66}, std::byte{0x66}, std::byte{0x65}, std::byte{0x72}, std::byte{0x00}, std::byte{0x00}, std::byte{0x24}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, + std::byte{0x62}, std::byte{0x75}, std::byte{0x66}, std::byte{0x66}, std::byte{0x65}, std::byte{0x72}, std::byte{0x00}, std::byte{0x00}, std::byte{0x34}, std::byte{0xFE}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x01}, std::byte{0x04}, std::byte{0x00}, + std::byte{0x18}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x20}, std::byte{0xFE}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0F}, + std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x06}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x68}, std::byte{0x65}, std::byte{0x61}, std::byte{0x64}, + std::byte{0x65}, std::byte{0x72}, std::byte{0x00}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, + std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x3C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x1C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0B}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x2F}, std::byte{0x2F}, std::byte{0x41}, std::byte{0x73}, std::byte{0x73}, std::byte{0x65}, std::byte{0x74}, std::byte{0x2E}, std::byte{0x66}, std::byte{0x62}, std::byte{0x73}, std::byte{0x00}, std::byte{0x06}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x38}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x24}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0xDC}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0xA8}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x68}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x78}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x18}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x42}, std::byte{0x69}, std::byte{0x67}, std::byte{0x66}, + std::byte{0x6F}, std::byte{0x6F}, std::byte{0x74}, std::byte{0x2E}, std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, std::byte{0x2E}, std::byte{0x41}, std::byte{0x73}, std::byte{0x73}, std::byte{0x65}, std::byte{0x74}, std::byte{0x48}, std::byte{0x65}, + std::byte{0x61}, std::byte{0x64}, std::byte{0x65}, std::byte{0x72}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x24}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x05}, std::byte{0x00}, std::byte{0x0E}, std::byte{0x00}, std::byte{0x28}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x06}, std::byte{0x00}, std::byte{0x07}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, - std::byte{0x00}, std::byte{0x00}, std::byte{0x0E}, std::byte{0x0F}, std::byte{0x02}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x00}, std::byte{0x00}, std::byte{0x0E}, std::byte{0x0F}, std::byte{0x03}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x64}, std::byte{0x65}, std::byte{0x70}, std::byte{0x65}, std::byte{0x6E}, std::byte{0x64}, std::byte{0x65}, std::byte{0x6E}, std::byte{0x63}, std::byte{0x69}, std::byte{0x65}, std::byte{0x73}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x06}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x60}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0xFF}, @@ -47,7 +54,7 @@ namespace Bigfoot std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x09}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x74}, std::byte{0x79}, std::byte{0x70}, std::byte{0x65}, std::byte{0x5F}, std::byte{0x6E}, std::byte{0x61}, std::byte{0x6D}, std::byte{0x65}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0xD0}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x02}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x18}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x70}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0F}, - std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x07}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x74}, std::byte{0x79}, std::byte{0x70}, std::byte{0x65}, + std::byte{0x02}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x07}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x74}, std::byte{0x79}, std::byte{0x70}, std::byte{0x65}, std::byte{0x5F}, std::byte{0x69}, std::byte{0x64}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x0A}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x07}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x01}, std::byte{0x00}, std::byte{0x06}, std::byte{0x00}, std::byte{0x24}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, @@ -57,7 +64,7 @@ namespace Bigfoot std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x05}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x04}, std::byte{0x00}, std::byte{0x28}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x07}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0F}, - std::byte{0x02}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x75}, std::byte{0x75}, std::byte{0x69}, std::byte{0x64}, + std::byte{0x03}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x75}, std::byte{0x75}, std::byte{0x69}, std::byte{0x64}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x54}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x58}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x4C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x34}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x2F}, std::byte{0x2F}, std::byte{0x2E}, std::byte{0x2E}, std::byte{0x2F}, std::byte{0x2E}, std::byte{0x2E}, std::byte{0x2F}, std::byte{0x2E}, std::byte{0x2E}, std::byte{0x2F}, std::byte{0x2E}, diff --git a/Bigfoot/Sources/Engine/Include/Engine/BigFile/Asset/Asset.fbs b/Bigfoot/Sources/Engine/Include/Engine/BigFile/Asset/Asset.fbs index a4fb08d..3336899 100644 --- a/Bigfoot/Sources/Engine/Include/Engine/BigFile/Asset/Asset.fbs +++ b/Bigfoot/Sources/Engine/Include/Engine/BigFile/Asset/Asset.fbs @@ -6,17 +6,20 @@ native_include "System/UUID/UUID.hpp"; namespace Bigfoot.Flat; +table AssetHeader +{ + uuid: UUID (required, native_inline, id: 0); + name: string (required, id: 1); + type_id: AssetTypeID (required, native_inline, id: 2); + type_name: string (required, id: 3); + version: uint = 0 (id: 4); + dependencies: [UUID] (required, native_inline, id: 5); +} + table Asset { - uuid: UUID (required, native_inline, id: 0); - name: string (required, id: 1); - type_id: AssetTypeID (required, native_inline, id: 2); - type_name: string (required, id: 3); - version: uint = 0 (id: 4); - - dependencies: [UUID] (required, native_inline, id: 5); - - flatbuffer: [ubyte] (required, id: 6); // The actual asset + header: AssetHeader (required, id: 0); + flatbuffer: [ubyte] (required, id: 1); } root_type Asset; \ No newline at end of file diff --git a/Bigfoot/Sources/Engine/Include/Engine/BigFile/Asset/Asset.hpp b/Bigfoot/Sources/Engine/Include/Engine/BigFile/Asset/Asset.hpp new file mode 100644 index 0000000..be99732 --- /dev/null +++ b/Bigfoot/Sources/Engine/Include/Engine/BigFile/Asset/Asset.hpp @@ -0,0 +1,68 @@ +/********************************************************************* + * \file Asset.hpp + * + * \author Romain BOULLARD + * \date April 2026 + *********************************************************************/ +#ifndef BIGFOOT_ENGINE_ASSET_HPP +#define BIGFOOT_ENGINE_ASSET_HPP +#include + +#include + +namespace Bigfoot +{ +template +class Asset +{ + public: + Asset() = default; + + explicit Asset(const Bigfoot::Flat::Asset* flat): + m_header(UnPackHeader(flat)), + m_asset(UnPackInnerAsset(flat)) + { + } + + const Bigfoot::Flat::AssetHeaderT& GetHeader() const + { + return m_header; + } + + Bigfoot::Flat::AssetHeaderT& GetHeader() + { + return m_header; + } + + const typename FLAT_ASSET::NativeTableType& GetAsset() const + { + return m_asset; + } + + typename FLAT_ASSET::NativeTableType& GetAsset() + { + return m_asset; + } + + private: + static Bigfoot::Flat::AssetHeaderT UnPackHeader(const Bigfoot::Flat::Asset* flat) + { + Bigfoot::Flat::AssetHeaderT header; + flat->header()->UnPackTo(&header); + return header; + } + + static typename FLAT_ASSET::NativeTableType UnPackInnerAsset(const Bigfoot::Flat::Asset* flat) + { + typename FLAT_ASSET::NativeTableType asset; + flatbuffers::GetRoot(flat->flatbuffer()->data())->UnPackTo(&asset, nullptr); + return asset; + } + + private: + Flat::AssetHeaderT m_header; + typename FLAT_ASSET::NativeTableType m_asset; +}; +} // namespace Bigfoot + +#endif diff --git a/Bigfoot/Sources/Engine/Include/Engine/BigFile/Asset/Asset_generated.hpp b/Bigfoot/Sources/Engine/Include/Engine/BigFile/Asset/Asset_generated.hpp index a66975d..974eaee 100644 --- a/Bigfoot/Sources/Engine/Include/Engine/BigFile/Asset/Asset_generated.hpp +++ b/Bigfoot/Sources/Engine/Include/Engine/BigFile/Asset/Asset_generated.hpp @@ -25,16 +25,22 @@ static_assert(FLATBUFFERS_VERSION_MAJOR == 25 && namespace Bigfoot { namespace Flat { +struct AssetHeader; +struct AssetHeaderBuilder; +struct AssetHeaderT; + struct Asset; struct AssetBuilder; struct AssetT; +inline const ::flatbuffers::TypeTable *AssetHeaderTypeTable(); + inline const ::flatbuffers::TypeTable *AssetTypeTable(); -struct AssetT : public ::flatbuffers::NativeTable { - typedef Asset TableType; +struct AssetHeaderT : public ::flatbuffers::NativeTable { + typedef AssetHeader TableType; static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { - return "Bigfoot.Flat.AssetT"; + return "Bigfoot.Flat.AssetHeaderT"; } ::Bigfoot::UUID uuid{}; eastl::string name{}; @@ -42,18 +48,17 @@ struct AssetT : public ::flatbuffers::NativeTable { eastl::string type_name{}; uint32_t version = 0; std::vector<::Bigfoot::UUID> dependencies{}; - std::vector flatbuffer{}; }; -struct Asset FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { - typedef AssetT NativeTableType; - typedef AssetBuilder Builder; +struct AssetHeader FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { + typedef AssetHeaderT NativeTableType; + typedef AssetHeaderBuilder Builder; struct Traits; static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { - return AssetTypeTable(); + return AssetHeaderTypeTable(); } static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { - return "Bigfoot.Flat.Asset"; + return "Bigfoot.Flat.AssetHeader"; } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_UUID = 4, @@ -61,8 +66,7 @@ struct Asset FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { VT_TYPE_ID = 8, VT_TYPE_NAME = 10, VT_VERSION = 12, - VT_DEPENDENCIES = 14, - VT_FLATBUFFER = 16 + VT_DEPENDENCIES = 14 }; const Bigfoot::Flat::UUID *uuid() const { return GetStruct(VT_UUID); @@ -82,9 +86,6 @@ struct Asset FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { const ::flatbuffers::Vector *dependencies() const { return GetPointer *>(VT_DEPENDENCIES); } - const ::flatbuffers::Vector *flatbuffer() const { - return GetPointer *>(VT_FLATBUFFER); - } template bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && @@ -97,6 +98,114 @@ struct Asset FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { VerifyField(verifier, VT_VERSION, 4) && VerifyOffsetRequired(verifier, VT_DEPENDENCIES) && verifier.VerifyVector(dependencies()) && + verifier.EndTable(); + } + AssetHeaderT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(AssetHeaderT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const AssetHeaderT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); +}; + +struct AssetHeaderBuilder { + typedef AssetHeader Table; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_uuid(const Bigfoot::Flat::UUID *uuid) { + fbb_.AddStruct(AssetHeader::VT_UUID, uuid); + } + void add_name(::flatbuffers::Offset<::flatbuffers::String> name) { + fbb_.AddOffset(AssetHeader::VT_NAME, name); + } + void add_type_id(const Bigfoot::Flat::AssetTypeID *type_id) { + fbb_.AddStruct(AssetHeader::VT_TYPE_ID, type_id); + } + void add_type_name(::flatbuffers::Offset<::flatbuffers::String> type_name) { + fbb_.AddOffset(AssetHeader::VT_TYPE_NAME, type_name); + } + void add_version(uint32_t version) { + fbb_.AddElement(AssetHeader::VT_VERSION, version, 0); + } + void add_dependencies(::flatbuffers::Offset<::flatbuffers::Vector> dependencies) { + fbb_.AddOffset(AssetHeader::VT_DEPENDENCIES, dependencies); + } + explicit AssetHeaderBuilder(::flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + ::flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = ::flatbuffers::Offset(end); + fbb_.Required(o, AssetHeader::VT_UUID); + fbb_.Required(o, AssetHeader::VT_NAME); + fbb_.Required(o, AssetHeader::VT_TYPE_ID); + fbb_.Required(o, AssetHeader::VT_TYPE_NAME); + fbb_.Required(o, AssetHeader::VT_DEPENDENCIES); + return o; + } +}; + +inline ::flatbuffers::Offset CreateAssetHeader( + ::flatbuffers::FlatBufferBuilder &_fbb, + const Bigfoot::Flat::UUID *uuid = nullptr, + ::flatbuffers::Offset<::flatbuffers::String> name = 0, + const Bigfoot::Flat::AssetTypeID *type_id = nullptr, + ::flatbuffers::Offset<::flatbuffers::String> type_name = 0, + uint32_t version = 0, + ::flatbuffers::Offset<::flatbuffers::Vector> dependencies = 0) { + AssetHeaderBuilder builder_(_fbb); + builder_.add_dependencies(dependencies); + builder_.add_version(version); + builder_.add_type_name(type_name); + builder_.add_type_id(type_id); + builder_.add_name(name); + builder_.add_uuid(uuid); + return builder_.Finish(); +} + +struct AssetHeader::Traits { + using type = AssetHeader; + static auto constexpr Create = CreateAssetHeader; +}; + +::flatbuffers::Offset CreateAssetHeader(::flatbuffers::FlatBufferBuilder &_fbb, const AssetHeaderT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); + +struct AssetT : public ::flatbuffers::NativeTable { + typedef Asset TableType; + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { + return "Bigfoot.Flat.AssetT"; + } + eastl::unique_ptr header{}; + std::vector flatbuffer{}; + AssetT() = default; + AssetT(const AssetT &o); + AssetT(AssetT&&) FLATBUFFERS_NOEXCEPT = default; + AssetT &operator=(AssetT o) FLATBUFFERS_NOEXCEPT; +}; + +struct Asset FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { + typedef AssetT NativeTableType; + typedef AssetBuilder Builder; + struct Traits; + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { + return AssetTypeTable(); + } + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { + return "Bigfoot.Flat.Asset"; + } + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_HEADER = 4, + VT_FLATBUFFER = 6 + }; + const Bigfoot::Flat::AssetHeader *header() const { + return GetPointer(VT_HEADER); + } + const ::flatbuffers::Vector *flatbuffer() const { + return GetPointer *>(VT_FLATBUFFER); + } + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + return VerifyTableStart(verifier) && + VerifyOffsetRequired(verifier, VT_HEADER) && + verifier.VerifyTable(header()) && VerifyOffsetRequired(verifier, VT_FLATBUFFER) && verifier.VerifyVector(flatbuffer()) && verifier.EndTable(); @@ -110,23 +219,8 @@ struct AssetBuilder { typedef Asset Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; - void add_uuid(const Bigfoot::Flat::UUID *uuid) { - fbb_.AddStruct(Asset::VT_UUID, uuid); - } - void add_name(::flatbuffers::Offset<::flatbuffers::String> name) { - fbb_.AddOffset(Asset::VT_NAME, name); - } - void add_type_id(const Bigfoot::Flat::AssetTypeID *type_id) { - fbb_.AddStruct(Asset::VT_TYPE_ID, type_id); - } - void add_type_name(::flatbuffers::Offset<::flatbuffers::String> type_name) { - fbb_.AddOffset(Asset::VT_TYPE_NAME, type_name); - } - void add_version(uint32_t version) { - fbb_.AddElement(Asset::VT_VERSION, version, 0); - } - void add_dependencies(::flatbuffers::Offset<::flatbuffers::Vector> dependencies) { - fbb_.AddOffset(Asset::VT_DEPENDENCIES, dependencies); + void add_header(::flatbuffers::Offset header) { + fbb_.AddOffset(Asset::VT_HEADER, header); } void add_flatbuffer(::flatbuffers::Offset<::flatbuffers::Vector> flatbuffer) { fbb_.AddOffset(Asset::VT_FLATBUFFER, flatbuffer); @@ -138,11 +232,7 @@ struct AssetBuilder { ::flatbuffers::Offset Finish() { const auto end = fbb_.EndTable(start_); auto o = ::flatbuffers::Offset(end); - fbb_.Required(o, Asset::VT_UUID); - fbb_.Required(o, Asset::VT_NAME); - fbb_.Required(o, Asset::VT_TYPE_ID); - fbb_.Required(o, Asset::VT_TYPE_NAME); - fbb_.Required(o, Asset::VT_DEPENDENCIES); + fbb_.Required(o, Asset::VT_HEADER); fbb_.Required(o, Asset::VT_FLATBUFFER); return o; } @@ -150,21 +240,11 @@ struct AssetBuilder { inline ::flatbuffers::Offset CreateAsset( ::flatbuffers::FlatBufferBuilder &_fbb, - const Bigfoot::Flat::UUID *uuid = nullptr, - ::flatbuffers::Offset<::flatbuffers::String> name = 0, - const Bigfoot::Flat::AssetTypeID *type_id = nullptr, - ::flatbuffers::Offset<::flatbuffers::String> type_name = 0, - uint32_t version = 0, - ::flatbuffers::Offset<::flatbuffers::Vector> dependencies = 0, + ::flatbuffers::Offset header = 0, ::flatbuffers::Offset<::flatbuffers::Vector> flatbuffer = 0) { AssetBuilder builder_(_fbb); builder_.add_flatbuffer(flatbuffer); - builder_.add_dependencies(dependencies); - builder_.add_version(version); - builder_.add_type_name(type_name); - builder_.add_type_id(type_id); - builder_.add_name(name); - builder_.add_uuid(uuid); + builder_.add_header(header); return builder_.Finish(); } @@ -175,6 +255,58 @@ struct Asset::Traits { ::flatbuffers::Offset CreateAsset(::flatbuffers::FlatBufferBuilder &_fbb, const AssetT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); +inline AssetHeaderT *AssetHeader::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { + auto _o = std::make_unique(); + UnPackTo(_o.get(), _resolver); + return _o.release(); +} + +inline void AssetHeader::UnPackTo(AssetHeaderT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; + { auto _e = uuid(); if (_e) _o->uuid = ::flatbuffers::UnPack(*_e); } + { auto _e = name(); if (_e) _o->name = eastl::string(_e->c_str(), _e->size()); } + { auto _e = type_id(); if (_e) _o->type_id = ::flatbuffers::UnPack(*_e); } + { auto _e = type_name(); if (_e) _o->type_name = eastl::string(_e->c_str(), _e->size()); } + { auto _e = version(); _o->version = _e; } + { auto _e = dependencies(); if (_e) { _o->dependencies.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->dependencies[_i] = ::flatbuffers::UnPack(*_e->Get(_i)); } } else { _o->dependencies.resize(0); } } +} + +inline ::flatbuffers::Offset CreateAssetHeader(::flatbuffers::FlatBufferBuilder &_fbb, const AssetHeaderT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { + return AssetHeader::Pack(_fbb, _o, _rehasher); +} + +inline ::flatbuffers::Offset AssetHeader::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const AssetHeaderT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { + (void)_rehasher; + (void)_o; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const AssetHeaderT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + auto _uuid = ::flatbuffers::Pack(_o->uuid); + auto _name = _fbb.CreateString(_o->name); + auto _type_id = ::flatbuffers::Pack(_o->type_id); + auto _type_name = _fbb.CreateString(_o->type_name); + auto _version = _o->version; + auto _dependencies = _fbb.CreateVectorOfNativeStructs(_o->dependencies); + return Bigfoot::Flat::CreateAssetHeader( + _fbb, + &_uuid, + _name, + &_type_id, + _type_name, + _version, + _dependencies); +} + +inline AssetT::AssetT(const AssetT &o) + : header((o.header) ? new Bigfoot::Flat::AssetHeaderT(*o.header) : nullptr), + flatbuffer(o.flatbuffer) { +} + +inline AssetT &AssetT::operator=(AssetT o) FLATBUFFERS_NOEXCEPT { + std::swap(header, o.header); + std::swap(flatbuffer, o.flatbuffer); + return *this; +} + inline AssetT *Asset::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { auto _o = std::make_unique(); UnPackTo(_o.get(), _resolver); @@ -184,12 +316,7 @@ inline AssetT *Asset::UnPack(const ::flatbuffers::resolver_function_t *_resolver inline void Asset::UnPackTo(AssetT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { (void)_o; (void)_resolver; - { auto _e = uuid(); if (_e) _o->uuid = ::flatbuffers::UnPack(*_e); } - { auto _e = name(); if (_e) _o->name = eastl::string(_e->c_str(), _e->size()); } - { auto _e = type_id(); if (_e) _o->type_id = ::flatbuffers::UnPack(*_e); } - { auto _e = type_name(); if (_e) _o->type_name = eastl::string(_e->c_str(), _e->size()); } - { auto _e = version(); _o->version = _e; } - { auto _e = dependencies(); if (_e) { _o->dependencies.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->dependencies[_i] = ::flatbuffers::UnPack(*_e->Get(_i)); } } else { _o->dependencies.resize(0); } } + { auto _e = header(); if (_e) { if(_o->header) { _e->UnPackTo(_o->header.get(), _resolver); } else { _o->header = eastl::unique_ptr(_e->UnPack(_resolver)); } } else if (_o->header) { _o->header.reset(); } } { auto _e = flatbuffer(); if (_e) { _o->flatbuffer.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->flatbuffer.begin()); } } } @@ -201,33 +328,22 @@ inline ::flatbuffers::Offset Asset::Pack(::flatbuffers::FlatBufferBuilder (void)_rehasher; (void)_o; struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const AssetT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; - auto _uuid = ::flatbuffers::Pack(_o->uuid); - auto _name = _fbb.CreateString(_o->name); - auto _type_id = ::flatbuffers::Pack(_o->type_id); - auto _type_name = _fbb.CreateString(_o->type_name); - auto _version = _o->version; - auto _dependencies = _fbb.CreateVectorOfNativeStructs(_o->dependencies); + auto _header = _o->header ? CreateAssetHeader(_fbb, _o->header.get(), _rehasher) : 0; auto _flatbuffer = _fbb.CreateVector(_o->flatbuffer); return Bigfoot::Flat::CreateAsset( _fbb, - &_uuid, - _name, - &_type_id, - _type_name, - _version, - _dependencies, + _header, _flatbuffer); } -inline const ::flatbuffers::TypeTable *AssetTypeTable() { +inline const ::flatbuffers::TypeTable *AssetHeaderTypeTable() { static const ::flatbuffers::TypeCode type_codes[] = { { ::flatbuffers::ET_SEQUENCE, 0, 0 }, { ::flatbuffers::ET_STRING, 0, -1 }, { ::flatbuffers::ET_SEQUENCE, 0, 1 }, { ::flatbuffers::ET_STRING, 0, -1 }, { ::flatbuffers::ET_UINT, 0, -1 }, - { ::flatbuffers::ET_SEQUENCE, 1, 0 }, - { ::flatbuffers::ET_UCHAR, 1, -1 } + { ::flatbuffers::ET_SEQUENCE, 1, 0 } }; static const ::flatbuffers::TypeFunction type_refs[] = { Bigfoot::Flat::UUIDTypeTable, @@ -239,11 +355,28 @@ inline const ::flatbuffers::TypeTable *AssetTypeTable() { "type_id", "type_name", "version", - "dependencies", + "dependencies" + }; + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 6, type_codes, type_refs, nullptr, nullptr, names + }; + return &tt; +} + +inline const ::flatbuffers::TypeTable *AssetTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_UCHAR, 1, -1 } + }; + static const ::flatbuffers::TypeFunction type_refs[] = { + Bigfoot::Flat::AssetHeaderTypeTable + }; + static const char * const names[] = { + "header", "flatbuffer" }; static const ::flatbuffers::TypeTable tt = { - ::flatbuffers::ST_TABLE, 7, type_codes, type_refs, nullptr, nullptr, names + ::flatbuffers::ST_TABLE, 2, type_codes, type_refs, nullptr, nullptr, names }; return &tt; } diff --git a/Bigfoot/Tests/Engine/BigFile/BigFile.cpp b/Bigfoot/Tests/Engine/BigFile/BigFile.cpp index fa6b5f6..54c6a44 100644 --- a/Bigfoot/Tests/Engine/BigFile/BigFile.cpp +++ b/Bigfoot/Tests/Engine/BigFile/BigFile.cpp @@ -15,6 +15,7 @@ #include #include +#include #include #include @@ -49,6 +50,13 @@ class BigFileFixture: public ::testing::Test /****************************************************************************************/ +TEST_F(BigFileFixture, Asset) +{ + AssetA assetA; +} + +/****************************************************************************************/ + TEST_F(BigFileFixture, Lol) { UUID uuid; diff --git a/Bigfoot/Tests/Engine/Include/EngineTests/BigFile/Asset/AssetA.bfbs b/Bigfoot/Tests/Engine/Include/EngineTests/BigFile/Asset/AssetA.bfbs new file mode 100644 index 0000000000000000000000000000000000000000..41bdf148a8df9a3f2875e21ef53b05fc13fb828a GIT binary patch literal 340 zcmZ{fu?~Vj5JU$GjJjYQV`WGiOG)qi+~4bqMQ)9%3E{t3yC7*C*5~R(Qe>K z3Zi-S%A>04dG2go_P3cOR-`3+vLVgm-cOS)FQc)gZ*_0+yCdfjAaefld@sww6n}R- i&C9U<&49hys~hO8x>rhNEy+d9+W*KSB130JI{+WJycs3{ literal 0 HcmV?d00001 diff --git a/Bigfoot/Tests/Engine/Include/EngineTests/BigFile/Asset/AssetA.bfbs_generated.hpp b/Bigfoot/Tests/Engine/Include/EngineTests/BigFile/Asset/AssetA.bfbs_generated.hpp new file mode 100644 index 0000000..3fff57e --- /dev/null +++ b/Bigfoot/Tests/Engine/Include/EngineTests/BigFile/Asset/AssetA.bfbs_generated.hpp @@ -0,0 +1,41 @@ +/** + * Auto-generated header from: AssetA.bfbs + * Generated by Bin2CPP + * + * DO NOT TOUCH + */ +#ifndef ASSETA_BFBS_HPP +#define ASSETA_BFBS_HPP +#include +#include + +namespace Bigfoot +{ + inline constexpr eastl::array g_AssetA_bfbs = { + std::byte{0x1C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x42}, std::byte{0x46}, std::byte{0x42}, std::byte{0x53}, std::byte{0x14}, std::byte{0x00}, std::byte{0x20}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, + std::byte{0x0C}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x18}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x1C}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x34}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x2C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x20}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x60}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x24}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x38}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x0C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x34}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, + std::byte{0x04}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, + std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x30}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x20}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x2F}, std::byte{0x2F}, std::byte{0x41}, std::byte{0x73}, std::byte{0x73}, std::byte{0x65}, std::byte{0x74}, std::byte{0x41}, + std::byte{0x2E}, std::byte{0x66}, std::byte{0x62}, std::byte{0x73}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x02}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x60}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x28}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x13}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x42}, std::byte{0x69}, std::byte{0x67}, std::byte{0x66}, std::byte{0x6F}, std::byte{0x6F}, std::byte{0x74}, std::byte{0x2E}, + std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, std::byte{0x2E}, std::byte{0x41}, std::byte{0x73}, std::byte{0x73}, std::byte{0x65}, std::byte{0x74}, std::byte{0x41}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, + std::byte{0x08}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x06}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x06}, std::byte{0x00}, + std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0xCC}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x08}, + std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x6D}, std::byte{0x61}, std::byte{0x6E}, std::byte{0x61}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x0C}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x06}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x24}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, + std::byte{0x07}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x08}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x06}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x68}, std::byte{0x65}, std::byte{0x61}, std::byte{0x6C}, + std::byte{0x74}, std::byte{0x68}, std::byte{0x00}, std::byte{0x00} + }; + +} // namespace Bigfoot + +#endif // ASSETA_BFBS_HPP diff --git a/Bigfoot/Tests/Engine/Include/EngineTests/BigFile/Asset/AssetA.fbs b/Bigfoot/Tests/Engine/Include/EngineTests/BigFile/Asset/AssetA.fbs new file mode 100644 index 0000000..c47497f --- /dev/null +++ b/Bigfoot/Tests/Engine/Include/EngineTests/BigFile/Asset/AssetA.fbs @@ -0,0 +1,9 @@ +namespace Bigfoot.Flat; + +table AssetA +{ + health: uint = 0; + mana: uint = 0; +} + +root_type AssetA; \ No newline at end of file diff --git a/Bigfoot/Tests/Engine/Include/EngineTests/BigFile/Asset/AssetA.hpp b/Bigfoot/Tests/Engine/Include/EngineTests/BigFile/Asset/AssetA.hpp new file mode 100644 index 0000000..bc65985 --- /dev/null +++ b/Bigfoot/Tests/Engine/Include/EngineTests/BigFile/Asset/AssetA.hpp @@ -0,0 +1,20 @@ +/********************************************************************* + * \file AssetA.hpp + * + * \author Romain BOULLARD + * \date April 2026 + *********************************************************************/ +#ifndef BIGFOOT_ENGINE_ASSETA_HPP +#define BIGFOOT_ENGINE_ASSETA_HPP +#include + +#include + +namespace Bigfoot +{ +class AssetA: public Asset +{ +}; +} // namespace Bigfoot + +#endif diff --git a/Bigfoot/Tests/Engine/Include/EngineTests/BigFile/Asset/AssetA_generated.hpp b/Bigfoot/Tests/Engine/Include/EngineTests/BigFile/Asset/AssetA_generated.hpp new file mode 100644 index 0000000..3b0b324 --- /dev/null +++ b/Bigfoot/Tests/Engine/Include/EngineTests/BigFile/Asset/AssetA_generated.hpp @@ -0,0 +1,202 @@ +// automatically generated by the FlatBuffers compiler, do not modify + + +#ifndef FLATBUFFERS_GENERATED_ASSETA_BIGFOOT_FLAT_H_ +#define FLATBUFFERS_GENERATED_ASSETA_BIGFOOT_FLAT_H_ + +#include "flatbuffers/flatbuffers.h" + +// Ensure the included flatbuffers.h is the same version as when this file was +// generated, otherwise it may not be compatible. +static_assert(FLATBUFFERS_VERSION_MAJOR == 25 && + FLATBUFFERS_VERSION_MINOR == 12 && + FLATBUFFERS_VERSION_REVISION == 19, + "Non-compatible flatbuffers version included"); + +#include "EASTL/unique_ptr.h" +#include "EASTL/string.h" + +namespace Bigfoot { +namespace Flat { + +struct AssetA; +struct AssetABuilder; +struct AssetAT; + +inline const ::flatbuffers::TypeTable *AssetATypeTable(); + +struct AssetAT : public ::flatbuffers::NativeTable { + typedef AssetA TableType; + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { + return "Bigfoot.Flat.AssetAT"; + } + uint32_t health = 0; + uint32_t mana = 0; +}; + +struct AssetA FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { + typedef AssetAT NativeTableType; + typedef AssetABuilder Builder; + struct Traits; + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { + return AssetATypeTable(); + } + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { + return "Bigfoot.Flat.AssetA"; + } + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_HEALTH = 4, + VT_MANA = 6 + }; + uint32_t health() const { + return GetField(VT_HEALTH, 0); + } + uint32_t mana() const { + return GetField(VT_MANA, 0); + } + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + return VerifyTableStart(verifier) && + VerifyField(verifier, VT_HEALTH, 4) && + VerifyField(verifier, VT_MANA, 4) && + verifier.EndTable(); + } + AssetAT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(AssetAT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const AssetAT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); +}; + +struct AssetABuilder { + typedef AssetA Table; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_health(uint32_t health) { + fbb_.AddElement(AssetA::VT_HEALTH, health, 0); + } + void add_mana(uint32_t mana) { + fbb_.AddElement(AssetA::VT_MANA, mana, 0); + } + explicit AssetABuilder(::flatbuffers::FlatBufferBuilder &_fbb) + : fbb_(_fbb) { + start_ = fbb_.StartTable(); + } + ::flatbuffers::Offset Finish() { + const auto end = fbb_.EndTable(start_); + auto o = ::flatbuffers::Offset(end); + return o; + } +}; + +inline ::flatbuffers::Offset CreateAssetA( + ::flatbuffers::FlatBufferBuilder &_fbb, + uint32_t health = 0, + uint32_t mana = 0) { + AssetABuilder builder_(_fbb); + builder_.add_mana(mana); + builder_.add_health(health); + return builder_.Finish(); +} + +struct AssetA::Traits { + using type = AssetA; + static auto constexpr Create = CreateAssetA; +}; + +::flatbuffers::Offset CreateAssetA(::flatbuffers::FlatBufferBuilder &_fbb, const AssetAT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); + +inline AssetAT *AssetA::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { + auto _o = std::make_unique(); + UnPackTo(_o.get(), _resolver); + return _o.release(); +} + +inline void AssetA::UnPackTo(AssetAT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; + { auto _e = health(); _o->health = _e; } + { auto _e = mana(); _o->mana = _e; } +} + +inline ::flatbuffers::Offset CreateAssetA(::flatbuffers::FlatBufferBuilder &_fbb, const AssetAT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { + return AssetA::Pack(_fbb, _o, _rehasher); +} + +inline ::flatbuffers::Offset AssetA::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const AssetAT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { + (void)_rehasher; + (void)_o; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const AssetAT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + auto _health = _o->health; + auto _mana = _o->mana; + return Bigfoot::Flat::CreateAssetA( + _fbb, + _health, + _mana); +} + +inline const ::flatbuffers::TypeTable *AssetATypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_UINT, 0, -1 }, + { ::flatbuffers::ET_UINT, 0, -1 } + }; + static const char * const names[] = { + "health", + "mana" + }; + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 2, type_codes, nullptr, nullptr, nullptr, names + }; + return &tt; +} + +inline const Bigfoot::Flat::AssetA *GetAssetA(const void *buf) { + return ::flatbuffers::GetRoot(buf); +} + +inline const Bigfoot::Flat::AssetA *GetSizePrefixedAssetA(const void *buf) { + return ::flatbuffers::GetSizePrefixedRoot(buf); +} + +template +inline bool VerifyAssetABuffer( + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifyBuffer(nullptr); +} + +template +inline bool VerifySizePrefixedAssetABuffer( + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifySizePrefixedBuffer(nullptr); +} + +inline const char *AssetAExtension() { + return "bfbs"; +} + +inline void FinishAssetABuffer( + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { + fbb.Finish(root); +} + +inline void FinishSizePrefixedAssetABuffer( + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { + fbb.FinishSizePrefixed(root); +} + +inline eastl::unique_ptr UnPackAssetA( + const void *buf, + const ::flatbuffers::resolver_function_t *res = nullptr) { + return eastl::unique_ptr(GetAssetA(buf)->UnPack(res)); +} + +inline eastl::unique_ptr UnPackSizePrefixedAssetA( + const void *buf, + const ::flatbuffers::resolver_function_t *res = nullptr) { + return eastl::unique_ptr(GetSizePrefixedAssetA(buf)->UnPack(res)); +} + +} // namespace Flat +} // namespace Bigfoot + +#endif // FLATBUFFERS_GENERATED_ASSETA_BIGFOOT_FLAT_H_