diff --git a/Bigfoot/Sources/Engine/Asset/AssetTypeID.cpp b/Bigfoot/Sources/Engine/Asset/AssetTypeID.cpp index 6f6650b..a459a3b 100644 --- a/Bigfoot/Sources/Engine/Asset/AssetTypeID.cpp +++ b/Bigfoot/Sources/Engine/Asset/AssetTypeID.cpp @@ -8,14 +8,14 @@ namespace flatbuffers { -Bigfoot::Flat::AssetTypeID Pack(const Bigfoot::AssetTypeID& p_assetTypeID) +Flat::Bigfoot::AssetTypeID Pack(const Bigfoot::AssetTypeID& p_assetTypeID) { - return Bigfoot::Flat::AssetTypeID {p_assetTypeID}; + return Flat::Bigfoot::AssetTypeID {p_assetTypeID}; } /****************************************************************************************/ -Bigfoot::AssetTypeID UnPack(const Bigfoot::Flat::AssetTypeID& p_flatAssetTypeID) +Bigfoot::AssetTypeID UnPack(const Flat::Bigfoot::AssetTypeID& p_flatAssetTypeID) { return Bigfoot::AssetTypeID {p_flatAssetTypeID.value()}; } diff --git a/Bigfoot/Sources/Engine/Include/Engine/Asset/Asset.bfbs b/Bigfoot/Sources/Engine/Include/Engine/Asset/Asset.bfbs index 0090674..abcbec5 100644 Binary files a/Bigfoot/Sources/Engine/Include/Engine/Asset/Asset.bfbs and b/Bigfoot/Sources/Engine/Include/Engine/Asset/Asset.bfbs differ diff --git a/Bigfoot/Sources/Engine/Include/Engine/Asset/Asset.bfbs_generated.hpp b/Bigfoot/Sources/Engine/Include/Engine/Asset/Asset.bfbs_generated.hpp index 60e8486..1637a03 100644 --- a/Bigfoot/Sources/Engine/Include/Engine/Asset/Asset.bfbs_generated.hpp +++ b/Bigfoot/Sources/Engine/Include/Engine/Asset/Asset.bfbs_generated.hpp @@ -26,7 +26,7 @@ namespace Bigfoot 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{0x70}, std::byte{0x03}, std::byte{0x00}, std::byte{0x00}, std::byte{0xB0}, std::byte{0x02}, std::byte{0x00}, std::byte{0x00}, std::byte{0x60}, 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{0xB8}, 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{0x58}, 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{0x12}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, std::byte{0x2E}, 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{0x41}, std::byte{0x73}, std::byte{0x73}, std::byte{0x65}, std::byte{0x74}, std::byte{0x00}, std::byte{0x00}, std::byte{0x48}, 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}, @@ -39,8 +39,8 @@ namespace Bigfoot 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{0x78}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x18}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, std::byte{0x2E}, 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{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}, @@ -71,7 +71,7 @@ namespace Bigfoot std::byte{0x73}, std::byte{0x74}, std::byte{0x65}, std::byte{0x6D}, std::byte{0x2F}, std::byte{0x49}, std::byte{0x6E}, std::byte{0x63}, std::byte{0x6C}, std::byte{0x75}, std::byte{0x64}, std::byte{0x65}, std::byte{0x2F}, std::byte{0x53}, std::byte{0x79}, std::byte{0x73}, std::byte{0x74}, std::byte{0x65}, std::byte{0x6D}, std::byte{0x2F}, std::byte{0x55}, std::byte{0x55}, std::byte{0x49}, std::byte{0x44}, std::byte{0x2F}, std::byte{0x55}, std::byte{0x55}, std::byte{0x49}, std::byte{0x44}, std::byte{0x2E}, std::byte{0x66}, std::byte{0x62}, std::byte{0x73}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x1C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x11}, 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{0x55}, std::byte{0x55}, std::byte{0x49}, + std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, std::byte{0x2E}, 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{0x55}, std::byte{0x55}, std::byte{0x49}, std::byte{0x44}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x5C}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0xFF}, 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{0x04}, std::byte{0x00}, std::byte{0x05}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x06}, 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{0x11}, std::byte{0x04}, std::byte{0x10}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x05}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, @@ -80,8 +80,8 @@ namespace Bigfoot std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, 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{0x08}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x11}, 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{0x54}, std::byte{0x79}, std::byte{0x70}, std::byte{0x65}, std::byte{0x49}, std::byte{0x44}, std::byte{0x2E}, std::byte{0x66}, std::byte{0x62}, std::byte{0x73}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, - std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x2C}, 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{0x54}, std::byte{0x79}, + std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x2C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x18}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, + std::byte{0x2E}, 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{0x41}, std::byte{0x73}, std::byte{0x73}, std::byte{0x65}, std::byte{0x74}, std::byte{0x54}, std::byte{0x79}, std::byte{0x70}, std::byte{0x65}, std::byte{0x49}, std::byte{0x44}, std::byte{0x00}, 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{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{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, diff --git a/Bigfoot/Sources/Engine/Include/Engine/Asset/Asset.fbs b/Bigfoot/Sources/Engine/Include/Engine/Asset/Asset.fbs index 7f85446..542571d 100644 --- a/Bigfoot/Sources/Engine/Include/Engine/Asset/Asset.fbs +++ b/Bigfoot/Sources/Engine/Include/Engine/Asset/Asset.fbs @@ -4,7 +4,7 @@ native_include "Engine/Asset/AssetTypeID.hpp"; include "System/UUID/UUID.fbs"; native_include "System/UUID/UUID.hpp"; -namespace Bigfoot.Flat; +namespace Flat.Bigfoot; table AssetHeader { diff --git a/Bigfoot/Sources/Engine/Include/Engine/Asset/Asset.hpp b/Bigfoot/Sources/Engine/Include/Engine/Asset/Asset.hpp index 889a098..aa88891 100644 --- a/Bigfoot/Sources/Engine/Include/Engine/Asset/Asset.hpp +++ b/Bigfoot/Sources/Engine/Include/Engine/Asset/Asset.hpp @@ -36,7 +36,7 @@ class Asset ~Asset() = default; [[nodiscard]] - const Bigfoot::Flat::AssetHeaderT& GetHeader() const + const ::Flat::Bigfoot::AssetHeaderT& GetHeader() const { return m_header; } @@ -59,12 +59,12 @@ class Asset flatbuffers::FlatBufferBuilder assetFbb; assetFbb.Finish(FLAT_ASSET::Pack(assetFbb, &m_asset)); - Flat::AssetT outer; - outer.header = eastl::make_unique(m_header); + ::Flat::Bigfoot::AssetT outer; + outer.header = eastl::make_unique<::Flat::Bigfoot::AssetHeaderT>(m_header); outer.asset = {assetFbb.GetBufferSpan().begin(), assetFbb.GetBufferSpan().end()}; flatbuffers::FlatBufferBuilder fullFbb; - fullFbb.Finish(Flat::Asset::Pack(fullFbb, &outer)); + fullFbb.Finish(::Flat::Bigfoot::Asset::Pack(fullFbb, &outer)); return eastl::vector {std::bit_cast(fullFbb.GetBufferPointer()), std::bit_cast(fullFbb.GetBufferPointer() + fullFbb.GetSize())}; @@ -101,11 +101,11 @@ class Asset private: [[nodiscard]] - static Bigfoot::Flat::AssetHeaderT UnPackHeader(const eastl::span p_flatbuffer) + static ::Flat::Bigfoot::AssetHeaderT UnPackHeader(const eastl::span p_flatbuffer) { - Bigfoot::Flat::AssetHeaderT header; + ::Flat::Bigfoot::AssetHeaderT header; - flatbuffers::GetRoot(p_flatbuffer.data())->header()->UnPackTo(&header); + flatbuffers::GetRoot<::Flat::Bigfoot::Asset>(p_flatbuffer.data())->header()->UnPackTo(&header); return header; } @@ -115,14 +115,14 @@ class Asset { typename FLAT_ASSET::NativeTableType asset; - const Flat::Asset* outer = flatbuffers::GetRoot(p_flatbuffer.data()); + const ::Flat::Bigfoot::Asset* outer = flatbuffers::GetRoot<::Flat::Bigfoot::Asset>(p_flatbuffer.data()); flatbuffers::GetRoot(outer->asset()->data())->UnPackTo(&asset, nullptr); return asset; } private: - Flat::AssetHeaderT m_header; + ::Flat::Bigfoot::AssetHeaderT m_header; typename FLAT_ASSET::NativeTableType m_asset; }; } // namespace Bigfoot diff --git a/Bigfoot/Sources/Engine/Include/Engine/Asset/AssetTypeID.bfbs b/Bigfoot/Sources/Engine/Include/Engine/Asset/AssetTypeID.bfbs index 9431eae..17298c6 100644 Binary files a/Bigfoot/Sources/Engine/Include/Engine/Asset/AssetTypeID.bfbs and b/Bigfoot/Sources/Engine/Include/Engine/Asset/AssetTypeID.bfbs differ diff --git a/Bigfoot/Sources/Engine/Include/Engine/Asset/AssetTypeID.bfbs_generated.hpp b/Bigfoot/Sources/Engine/Include/Engine/Asset/AssetTypeID.bfbs_generated.hpp index 0b4cfa2..bbd85c2 100644 --- a/Bigfoot/Sources/Engine/Include/Engine/Asset/AssetTypeID.bfbs_generated.hpp +++ b/Bigfoot/Sources/Engine/Include/Engine/Asset/AssetTypeID.bfbs_generated.hpp @@ -24,7 +24,7 @@ namespace Bigfoot std::byte{0x28}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x11}, 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{0x54}, std::byte{0x79}, std::byte{0x70}, std::byte{0x65}, std::byte{0x49}, std::byte{0x44}, std::byte{0x2E}, std::byte{0x66}, std::byte{0x62}, std::byte{0x73}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x2C}, 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{0x18}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, std::byte{0x2E}, 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{0x41}, std::byte{0x73}, std::byte{0x73}, std::byte{0x65}, std::byte{0x74}, std::byte{0x54}, std::byte{0x79}, std::byte{0x70}, std::byte{0x65}, std::byte{0x49}, std::byte{0x44}, std::byte{0x00}, 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{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{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, diff --git a/Bigfoot/Sources/Engine/Include/Engine/Asset/AssetTypeID.fbs b/Bigfoot/Sources/Engine/Include/Engine/Asset/AssetTypeID.fbs index d7ac3b1..52c3b9a 100644 --- a/Bigfoot/Sources/Engine/Include/Engine/Asset/AssetTypeID.fbs +++ b/Bigfoot/Sources/Engine/Include/Engine/Asset/AssetTypeID.fbs @@ -1,4 +1,4 @@ -namespace Bigfoot.Flat; +namespace Flat.Bigfoot; struct AssetTypeID (native_type: "::Bigfoot::AssetTypeID") { diff --git a/Bigfoot/Sources/Engine/Include/Engine/Asset/AssetTypeID.hpp b/Bigfoot/Sources/Engine/Include/Engine/Asset/AssetTypeID.hpp index c024e3b..35f90bf 100644 --- a/Bigfoot/Sources/Engine/Include/Engine/Asset/AssetTypeID.hpp +++ b/Bigfoot/Sources/Engine/Include/Engine/Asset/AssetTypeID.hpp @@ -17,8 +17,8 @@ using AssetTypeID = std::uint64_t; namespace flatbuffers { -Bigfoot::Flat::AssetTypeID Pack(const Bigfoot::AssetTypeID& p_assetTypeID); -Bigfoot::AssetTypeID UnPack(const Bigfoot::Flat::AssetTypeID& p_flatAssetTypeID); +Flat::Bigfoot::AssetTypeID Pack(const Bigfoot::AssetTypeID& p_assetTypeID); +Bigfoot::AssetTypeID UnPack(const Flat::Bigfoot::AssetTypeID& p_flatAssetTypeID); } // namespace flatbuffers #endif diff --git a/Bigfoot/Sources/Engine/Include/Engine/Asset/AssetTypeID_generated.hpp b/Bigfoot/Sources/Engine/Include/Engine/Asset/AssetTypeID_generated.hpp index 450a892..1e2726b 100644 --- a/Bigfoot/Sources/Engine/Include/Engine/Asset/AssetTypeID_generated.hpp +++ b/Bigfoot/Sources/Engine/Include/Engine/Asset/AssetTypeID_generated.hpp @@ -1,8 +1,8 @@ // automatically generated by the FlatBuffers compiler, do not modify -#ifndef FLATBUFFERS_GENERATED_ASSETTYPEID_BIGFOOT_FLAT_H_ -#define FLATBUFFERS_GENERATED_ASSETTYPEID_BIGFOOT_FLAT_H_ +#ifndef FLATBUFFERS_GENERATED_ASSETTYPEID_FLAT_BIGFOOT_H_ +#define FLATBUFFERS_GENERATED_ASSETTYPEID_FLAT_BIGFOOT_H_ #include "flatbuffers/flatbuffers.h" @@ -16,8 +16,8 @@ static_assert(FLATBUFFERS_VERSION_MAJOR == 25 && #include "EASTL/unique_ptr.h" #include "EASTL/string.h" -namespace Bigfoot { namespace Flat { +namespace Bigfoot { struct AssetTypeID; @@ -33,7 +33,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(8) AssetTypeID FLATBUFFERS_FINAL_CLASS { return AssetTypeIDTypeTable(); } static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { - return "Bigfoot.Flat.AssetTypeID"; + return "Flat.Bigfoot.AssetTypeID"; } AssetTypeID() : value_(0) { @@ -65,7 +65,7 @@ inline const ::flatbuffers::TypeTable *AssetTypeIDTypeTable() { return &tt; } -} // namespace Flat } // namespace Bigfoot +} // namespace Flat -#endif // FLATBUFFERS_GENERATED_ASSETTYPEID_BIGFOOT_FLAT_H_ +#endif // FLATBUFFERS_GENERATED_ASSETTYPEID_FLAT_BIGFOOT_H_ diff --git a/Bigfoot/Sources/Engine/Include/Engine/Asset/Asset_generated.hpp b/Bigfoot/Sources/Engine/Include/Engine/Asset/Asset_generated.hpp index e779561..1f94f2b 100644 --- a/Bigfoot/Sources/Engine/Include/Engine/Asset/Asset_generated.hpp +++ b/Bigfoot/Sources/Engine/Include/Engine/Asset/Asset_generated.hpp @@ -1,8 +1,8 @@ // automatically generated by the FlatBuffers compiler, do not modify -#ifndef FLATBUFFERS_GENERATED_ASSET_BIGFOOT_FLAT_H_ -#define FLATBUFFERS_GENERATED_ASSET_BIGFOOT_FLAT_H_ +#ifndef FLATBUFFERS_GENERATED_ASSET_FLAT_BIGFOOT_H_ +#define FLATBUFFERS_GENERATED_ASSET_FLAT_BIGFOOT_H_ #include "flatbuffers/flatbuffers.h" @@ -22,8 +22,8 @@ static_assert(FLATBUFFERS_VERSION_MAJOR == 25 && #include "EASTL/unique_ptr.h" #include "EASTL/string.h" -namespace Bigfoot { namespace Flat { +namespace Bigfoot { struct AssetHeader; struct AssetHeaderBuilder; @@ -40,7 +40,7 @@ inline const ::flatbuffers::TypeTable *AssetTypeTable(); struct AssetHeaderT : public ::flatbuffers::NativeTable { typedef AssetHeader TableType; static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { - return "Bigfoot.Flat.AssetHeaderT"; + return "Flat.Bigfoot.AssetHeaderT"; } ::Bigfoot::UUID uuid{}; eastl::string name{}; @@ -58,7 +58,7 @@ struct AssetHeader FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { return AssetHeaderTypeTable(); } static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { - return "Bigfoot.Flat.AssetHeader"; + return "Flat.Bigfoot.AssetHeader"; } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_UUID = 4, @@ -68,14 +68,14 @@ struct AssetHeader FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { VT_VERSION = 12, VT_DEPENDENCIES = 14 }; - const Bigfoot::Flat::UUID *uuid() const { - return GetStruct(VT_UUID); + const Flat::Bigfoot::UUID *uuid() const { + return GetStruct(VT_UUID); } const ::flatbuffers::String *name() const { return GetPointer(VT_NAME); } - const Bigfoot::Flat::AssetTypeID *type_id() const { - return GetStruct(VT_TYPE_ID); + const Flat::Bigfoot::AssetTypeID *type_id() const { + return GetStruct(VT_TYPE_ID); } const ::flatbuffers::String *type_name() const { return GetPointer(VT_TYPE_NAME); @@ -83,16 +83,16 @@ struct AssetHeader FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { uint32_t version() const { return GetField(VT_VERSION, 0); } - const ::flatbuffers::Vector *dependencies() const { - return GetPointer *>(VT_DEPENDENCIES); + const ::flatbuffers::Vector *dependencies() const { + return GetPointer *>(VT_DEPENDENCIES); } template bool Verify(::flatbuffers::VerifierTemplate &verifier) const { return VerifyTableStart(verifier) && - VerifyFieldRequired(verifier, VT_UUID, 1) && + VerifyFieldRequired(verifier, VT_UUID, 1) && VerifyOffsetRequired(verifier, VT_NAME) && verifier.VerifyString(name()) && - VerifyFieldRequired(verifier, VT_TYPE_ID, 8) && + VerifyFieldRequired(verifier, VT_TYPE_ID, 8) && VerifyOffsetRequired(verifier, VT_TYPE_NAME) && verifier.VerifyString(type_name()) && VerifyField(verifier, VT_VERSION, 4) && @@ -109,13 +109,13 @@ struct AssetHeaderBuilder { typedef AssetHeader Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; - void add_uuid(const Bigfoot::Flat::UUID *uuid) { + void add_uuid(const Flat::Bigfoot::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) { + void add_type_id(const Flat::Bigfoot::AssetTypeID *type_id) { fbb_.AddStruct(AssetHeader::VT_TYPE_ID, type_id); } void add_type_name(::flatbuffers::Offset<::flatbuffers::String> type_name) { @@ -124,7 +124,7 @@ struct AssetHeaderBuilder { void add_version(uint32_t version) { fbb_.AddElement(AssetHeader::VT_VERSION, version, 0); } - void add_dependencies(::flatbuffers::Offset<::flatbuffers::Vector> dependencies) { + void add_dependencies(::flatbuffers::Offset<::flatbuffers::Vector> dependencies) { fbb_.AddOffset(AssetHeader::VT_DEPENDENCIES, dependencies); } explicit AssetHeaderBuilder(::flatbuffers::FlatBufferBuilder &_fbb) @@ -145,12 +145,12 @@ struct AssetHeaderBuilder { inline ::flatbuffers::Offset CreateAssetHeader( ::flatbuffers::FlatBufferBuilder &_fbb, - const Bigfoot::Flat::UUID *uuid = nullptr, + const Flat::Bigfoot::UUID *uuid = nullptr, ::flatbuffers::Offset<::flatbuffers::String> name = 0, - const Bigfoot::Flat::AssetTypeID *type_id = nullptr, + const Flat::Bigfoot::AssetTypeID *type_id = nullptr, ::flatbuffers::Offset<::flatbuffers::String> type_name = 0, uint32_t version = 0, - ::flatbuffers::Offset<::flatbuffers::Vector> dependencies = 0) { + ::flatbuffers::Offset<::flatbuffers::Vector> dependencies = 0) { AssetHeaderBuilder builder_(_fbb); builder_.add_dependencies(dependencies); builder_.add_version(version); @@ -171,9 +171,9 @@ struct AssetHeader::Traits { struct AssetT : public ::flatbuffers::NativeTable { typedef Asset TableType; static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { - return "Bigfoot.Flat.AssetT"; + return "Flat.Bigfoot.AssetT"; } - eastl::unique_ptr header{}; + eastl::unique_ptr header{}; std::vector asset{}; AssetT() = default; AssetT(const AssetT &o); @@ -189,14 +189,14 @@ struct Asset FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { return AssetTypeTable(); } static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { - return "Bigfoot.Flat.Asset"; + return "Flat.Bigfoot.Asset"; } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_HEADER = 4, VT_ASSET = 6 }; - const Bigfoot::Flat::AssetHeader *header() const { - return GetPointer(VT_HEADER); + const Flat::Bigfoot::AssetHeader *header() const { + return GetPointer(VT_HEADER); } const ::flatbuffers::Vector *asset() const { return GetPointer *>(VT_ASSET); @@ -219,7 +219,7 @@ struct AssetBuilder { typedef Asset Table; ::flatbuffers::FlatBufferBuilder &fbb_; ::flatbuffers::uoffset_t start_; - void add_header(::flatbuffers::Offset header) { + void add_header(::flatbuffers::Offset header) { fbb_.AddOffset(Asset::VT_HEADER, header); } void add_asset(::flatbuffers::Offset<::flatbuffers::Vector> asset) { @@ -240,7 +240,7 @@ struct AssetBuilder { inline ::flatbuffers::Offset CreateAsset( ::flatbuffers::FlatBufferBuilder &_fbb, - ::flatbuffers::Offset header = 0, + ::flatbuffers::Offset header = 0, ::flatbuffers::Offset<::flatbuffers::Vector> asset = 0) { AssetBuilder builder_(_fbb); builder_.add_asset(asset); @@ -285,8 +285,8 @@ inline ::flatbuffers::Offset AssetHeader::Pack(::flatbuffers::FlatB 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( + auto _dependencies = _fbb.CreateVectorOfNativeStructs(_o->dependencies); + return Flat::Bigfoot::CreateAssetHeader( _fbb, &_uuid, _name, @@ -297,7 +297,7 @@ inline ::flatbuffers::Offset AssetHeader::Pack(::flatbuffers::FlatB } inline AssetT::AssetT(const AssetT &o) - : header((o.header) ? new Bigfoot::Flat::AssetHeaderT(*o.header) : nullptr), + : header((o.header) ? new Flat::Bigfoot::AssetHeaderT(*o.header) : nullptr), asset(o.asset) { } @@ -316,7 +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 = 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 = 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 = asset(); if (_e) { _o->asset.resize(_e->size()); std::copy(_e->begin(), _e->end(), _o->asset.begin()); } } } @@ -330,7 +330,7 @@ inline ::flatbuffers::Offset Asset::Pack(::flatbuffers::FlatBufferBuilder struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const AssetT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; auto _header = _o->header ? CreateAssetHeader(_fbb, _o->header.get(), _rehasher) : 0; auto _asset = _fbb.CreateVector(_o->asset); - return Bigfoot::Flat::CreateAsset( + return Flat::Bigfoot::CreateAsset( _fbb, _header, _asset); @@ -346,8 +346,8 @@ inline const ::flatbuffers::TypeTable *AssetHeaderTypeTable() { { ::flatbuffers::ET_SEQUENCE, 1, 0 } }; static const ::flatbuffers::TypeFunction type_refs[] = { - Bigfoot::Flat::UUIDTypeTable, - Bigfoot::Flat::AssetTypeIDTypeTable + Flat::Bigfoot::UUIDTypeTable, + Flat::Bigfoot::AssetTypeIDTypeTable }; static const char * const names[] = { "uuid", @@ -369,7 +369,7 @@ inline const ::flatbuffers::TypeTable *AssetTypeTable() { { ::flatbuffers::ET_UCHAR, 1, -1 } }; static const ::flatbuffers::TypeFunction type_refs[] = { - Bigfoot::Flat::AssetHeaderTypeTable + Flat::Bigfoot::AssetHeaderTypeTable }; static const char * const names[] = { "header", @@ -381,24 +381,24 @@ inline const ::flatbuffers::TypeTable *AssetTypeTable() { return &tt; } -inline const Bigfoot::Flat::Asset *GetAsset(const void *buf) { - return ::flatbuffers::GetRoot(buf); +inline const Flat::Bigfoot::Asset *GetAsset(const void *buf) { + return ::flatbuffers::GetRoot(buf); } -inline const Bigfoot::Flat::Asset *GetSizePrefixedAsset(const void *buf) { - return ::flatbuffers::GetSizePrefixedRoot(buf); +inline const Flat::Bigfoot::Asset *GetSizePrefixedAsset(const void *buf) { + return ::flatbuffers::GetSizePrefixedRoot(buf); } template inline bool VerifyAssetBuffer( ::flatbuffers::VerifierTemplate &verifier) { - return verifier.template VerifyBuffer(nullptr); + return verifier.template VerifyBuffer(nullptr); } template inline bool VerifySizePrefixedAssetBuffer( ::flatbuffers::VerifierTemplate &verifier) { - return verifier.template VerifySizePrefixedBuffer(nullptr); + return verifier.template VerifySizePrefixedBuffer(nullptr); } inline const char *AssetExtension() { @@ -407,29 +407,29 @@ inline const char *AssetExtension() { inline void FinishAssetBuffer( ::flatbuffers::FlatBufferBuilder &fbb, - ::flatbuffers::Offset root) { + ::flatbuffers::Offset root) { fbb.Finish(root); } inline void FinishSizePrefixedAssetBuffer( ::flatbuffers::FlatBufferBuilder &fbb, - ::flatbuffers::Offset root) { + ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root); } -inline eastl::unique_ptr UnPackAsset( +inline eastl::unique_ptr UnPackAsset( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return eastl::unique_ptr(GetAsset(buf)->UnPack(res)); + return eastl::unique_ptr(GetAsset(buf)->UnPack(res)); } -inline eastl::unique_ptr UnPackSizePrefixedAsset( +inline eastl::unique_ptr UnPackSizePrefixedAsset( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return eastl::unique_ptr(GetSizePrefixedAsset(buf)->UnPack(res)); + return eastl::unique_ptr(GetSizePrefixedAsset(buf)->UnPack(res)); } -} // namespace Flat } // namespace Bigfoot +} // namespace Flat -#endif // FLATBUFFERS_GENERATED_ASSET_BIGFOOT_FLAT_H_ +#endif // FLATBUFFERS_GENERATED_ASSET_FLAT_BIGFOOT_H_ diff --git a/Bigfoot/Sources/Engine/Include/Engine/Asset/Reference.bfbs b/Bigfoot/Sources/Engine/Include/Engine/Asset/Reference.bfbs new file mode 100644 index 0000000..18303e3 Binary files /dev/null and b/Bigfoot/Sources/Engine/Include/Engine/Asset/Reference.bfbs differ diff --git a/Bigfoot/Sources/Engine/Include/Engine/Asset/Reference.bfbs_generated.hpp b/Bigfoot/Sources/Engine/Include/Engine/Asset/Reference.bfbs_generated.hpp new file mode 100644 index 0000000..e1ce6c6 --- /dev/null +++ b/Bigfoot/Sources/Engine/Include/Engine/Asset/Reference.bfbs_generated.hpp @@ -0,0 +1,57 @@ +/** + * Auto-generated header from: Reference.bfbs + * Generated by Bin2CPP + * + * DO NOT TOUCH + */ +#ifndef REFERENCE_BFBS_HPP +#define REFERENCE_BFBS_HPP +#include +#include + +namespace Bigfoot +{ + inline constexpr eastl::array g_Reference_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{0x24}, 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{0x00}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x1C}, std::byte{0x00}, std::byte{0x18}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x38}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x30}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x24}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x18}, 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{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{0xAC}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x38}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x4C}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x02}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x50}, std::byte{0xFE}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x54}, std::byte{0x01}, 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{0x60}, std::byte{0xFE}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x9C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, 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{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0xFC}, std::byte{0xFE}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, + std::byte{0x1C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x10}, 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{0x74}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x28}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x1E}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, std::byte{0x2E}, 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{0x52}, std::byte{0x65}, std::byte{0x66}, + std::byte{0x65}, std::byte{0x72}, std::byte{0x65}, std::byte{0x6E}, std::byte{0x63}, std::byte{0x65}, std::byte{0x2E}, std::byte{0x53}, std::byte{0x6F}, std::byte{0x66}, std::byte{0x74}, std::byte{0x52}, std::byte{0x65}, std::byte{0x66}, std::byte{0x00}, std::byte{0x00}, + std::byte{0xBC}, std::byte{0xFE}, std::byte{0xFF}, std::byte{0xFF}, 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{0x7C}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0xFF}, + 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{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x6C}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, + std::byte{0x30}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x24}, 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{0x0F}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x2F}, std::byte{0x2F}, std::byte{0x52}, std::byte{0x65}, std::byte{0x66}, std::byte{0x65}, std::byte{0x72}, std::byte{0x65}, + std::byte{0x6E}, std::byte{0x63}, std::byte{0x65}, std::byte{0x2E}, std::byte{0x66}, std::byte{0x62}, std::byte{0x73}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x28}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x1E}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, std::byte{0x2E}, 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{0x52}, std::byte{0x65}, std::byte{0x66}, std::byte{0x65}, std::byte{0x72}, std::byte{0x65}, std::byte{0x6E}, std::byte{0x63}, std::byte{0x65}, std::byte{0x2E}, std::byte{0x48}, std::byte{0x61}, std::byte{0x72}, std::byte{0x64}, std::byte{0x52}, + std::byte{0x65}, std::byte{0x66}, std::byte{0x00}, std::byte{0x00}, std::byte{0x40}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0xFF}, 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{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x1C}, std::byte{0x00}, + std::byte{0x08}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x07}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x18}, 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{0x54}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x48}, 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{0x31}, 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}, std::byte{0x2E}, std::byte{0x2F}, std::byte{0x53}, std::byte{0x79}, + std::byte{0x73}, std::byte{0x74}, std::byte{0x65}, std::byte{0x6D}, std::byte{0x2F}, std::byte{0x49}, std::byte{0x6E}, std::byte{0x63}, std::byte{0x6C}, std::byte{0x75}, std::byte{0x64}, std::byte{0x65}, std::byte{0x2F}, std::byte{0x53}, std::byte{0x79}, std::byte{0x73}, + std::byte{0x74}, std::byte{0x65}, std::byte{0x6D}, std::byte{0x2F}, std::byte{0x55}, std::byte{0x55}, std::byte{0x49}, std::byte{0x44}, std::byte{0x2F}, std::byte{0x55}, std::byte{0x55}, std::byte{0x49}, std::byte{0x44}, std::byte{0x2E}, std::byte{0x66}, std::byte{0x62}, + std::byte{0x73}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x24}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x11}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, std::byte{0x2E}, 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{0x55}, std::byte{0x55}, std::byte{0x49}, + std::byte{0x44}, 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{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{0x04}, std::byte{0x00}, std::byte{0x05}, std::byte{0x00}, + std::byte{0x00}, std::byte{0x00}, std::byte{0x06}, 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{0x11}, std::byte{0x04}, std::byte{0x10}, std::byte{0x00}, + std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x05}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x62}, std::byte{0x79}, std::byte{0x74}, std::byte{0x65}, std::byte{0x73}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00} + }; + +} // namespace Bigfoot + +#endif // REFERENCE_BFBS_HPP diff --git a/Bigfoot/Sources/Engine/Include/Engine/Asset/Reference.fbs b/Bigfoot/Sources/Engine/Include/Engine/Asset/Reference.fbs new file mode 100644 index 0000000..5d96978 --- /dev/null +++ b/Bigfoot/Sources/Engine/Include/Engine/Asset/Reference.fbs @@ -0,0 +1,14 @@ +include "System/UUID/UUID.fbs"; +native_include "System/UUID/UUID.hpp"; + +namespace Flat.Bigfoot.Reference; + +struct HardRef +{ + uuid:UUID (native_inline); +} + +struct SoftRef +{ + uuid:UUID (native_inline); +} \ No newline at end of file diff --git a/Bigfoot/Sources/Engine/Include/Engine/Asset/Reference.hpp b/Bigfoot/Sources/Engine/Include/Engine/Asset/Reference.hpp new file mode 100644 index 0000000..a6ec5fb --- /dev/null +++ b/Bigfoot/Sources/Engine/Include/Engine/Asset/Reference.hpp @@ -0,0 +1,124 @@ +/********************************************************************* + * \file Reference.hpp + * + * \author Romain BOULLARD + * \date April 2026 + *********************************************************************/ +#ifndef BIGFOOT_ENGINE_REFERENCE_HPP +#define BIGFOOT_ENGINE_REFERENCE_HPP +#include + +namespace Bigfoot +{ +template +class HardRef +{ + public: + HardRef() = default; + + HardRef(const UUID& p_uuid): + m_uuid(p_uuid) + { + } + + HardRef(const HardRef& p_ref) = default; + HardRef(HardRef&& p_ref) = default; + + [[nodiscard]] + const UUID& GetUUID() const + { + return m_uuid; + } + + ~HardRef() = default; + + HardRef& operator=(const HardRef& p_ref) = default; + HardRef& operator=(HardRef&& p_ref) = default; + + private: + UUID m_uuid = UUID::NULL_UUID; +}; + +template +class SoftRef +{ + public: + SoftRef() = default; + + SoftRef(const UUID& p_uuid): + m_uuid(p_uuid) + { + } + + SoftRef(const SoftRef& p_ref) = default; + SoftRef(SoftRef&& p_ref) = default; + + [[nodiscard]] + const UUID& GetUUID() const + { + return m_uuid; + } + + ~SoftRef() = default; + + SoftRef& operator=(const SoftRef& p_ref) = default; + SoftRef& operator=(SoftRef&& p_ref) = default; + + private: + UUID m_uuid = UUID::NULL_UUID; +}; +} // namespace Bigfoot + +/****************************************************************************************/ + +#define ASSET_HARD_REF_DECL(Ref, FlatRef) \ + namespace flatbuffers \ + { \ + ::Flat::Bigfoot::Reference::FlatRef Pack(const ::Bigfoot::HardRef<::Bigfoot::Ref>& p_ref); \ + ::Bigfoot::HardRef<::Bigfoot::Ref> UnPack(const ::Flat::Bigfoot::Reference::FlatRef& p_ref); \ + } // namespace flatbuffers + +#define ASSET_HARD_REF_IMPL(Ref, FlatRef) \ + namespace flatbuffers \ + { \ + ::Flat::Bigfoot::Reference::FlatRef Pack(const ::Bigfoot::HardRef<::Bigfoot::Ref>& p_ref) \ + { \ + return ::Flat::Bigfoot::Reference::FlatRef { \ + ::Flat::Bigfoot::Reference::HardRef {flatbuffers::Pack(p_ref.GetUUID())}}; \ + } \ + ::Bigfoot::HardRef<::Bigfoot::Ref> UnPack(const ::Flat::Bigfoot::Reference::FlatRef& p_ref) \ + { \ + return ::Bigfoot::HardRef<::Bigfoot::Ref> {flatbuffers::UnPack(p_ref.hard_ref().uuid())}; \ + } \ + } // namespace flatbuffers + +#define ASSET_SOFT_REF_DECL(Ref, FlatRef) \ + namespace flatbuffers \ + { \ + ::Flat::Bigfoot::Reference::FlatRef Pack(const ::Bigfoot::SoftRef<::Bigfoot::Ref>& p_ref); \ + ::Bigfoot::SoftRef<::Bigfoot::Ref> UnPack(const ::Flat::Bigfoot::Reference::FlatRef& p_ref); \ + } // namespace flatbuffers + +#define ASSET_SOFT_REF_IMPL(Ref, FlatRef) \ + namespace flatbuffers \ + { \ + ::Flat::Bigfoot::Reference::FlatRef Pack(const ::Bigfoot::SoftRef<::Bigfoot::Ref>& p_ref) \ + { \ + return ::Flat::Bigfoot::Reference::FlatRef { \ + ::Flat::Bigfoot::Reference::SoftRef {flatbuffers::Pack(p_ref.GetUUID())}}; \ + } \ + ::Bigfoot::SoftRef<::Bigfoot::Ref> UnPack(const ::Flat::Bigfoot::Reference::FlatRef& p_ref) \ + { \ + return ::Bigfoot::SoftRef<::Bigfoot::Ref> {flatbuffers::UnPack(p_ref.soft_ref().uuid())}; \ + } \ + } // namespace flatbuffers + +#define ASSET_REF_DECL(Ref) \ + ASSET_HARD_REF_DECL(Ref, Ref##HardRef) \ + ASSET_SOFT_REF_DECL(Ref, Ref##SoftRef) + +#define ASSET_REF_IMPL(Ref) \ + ASSET_HARD_REF_IMPL(Ref, Ref##HardRef) \ + ASSET_SOFT_REF_IMPL(Ref, Ref##SoftRef) + +#endif diff --git a/Bigfoot/Sources/Engine/Include/Engine/Asset/Reference_generated.hpp b/Bigfoot/Sources/Engine/Include/Engine/Asset/Reference_generated.hpp new file mode 100644 index 0000000..eb4e504 --- /dev/null +++ b/Bigfoot/Sources/Engine/Include/Engine/Asset/Reference_generated.hpp @@ -0,0 +1,128 @@ +// automatically generated by the FlatBuffers compiler, do not modify + + +#ifndef FLATBUFFERS_GENERATED_REFERENCE_FLAT_BIGFOOT_REFERENCE_H_ +#define FLATBUFFERS_GENERATED_REFERENCE_FLAT_BIGFOOT_REFERENCE_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 "System/UUID/UUID.hpp" +#include "System/UUID/UUID_generated.hpp" + +#include "EASTL/unique_ptr.h" +#include "EASTL/string.h" + +namespace Flat { +namespace Bigfoot { +namespace Reference { + +struct HardRef; + +struct SoftRef; + +inline const ::flatbuffers::TypeTable *HardRefTypeTable(); + +inline const ::flatbuffers::TypeTable *SoftRefTypeTable(); + +FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(1) HardRef FLATBUFFERS_FINAL_CLASS { + private: + Flat::Bigfoot::UUID uuid_; + + public: + struct Traits; + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { + return HardRefTypeTable(); + } + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { + return "Flat.Bigfoot.Reference.HardRef"; + } + HardRef() + : uuid_() { + } + HardRef(const Flat::Bigfoot::UUID &_uuid) + : uuid_(_uuid) { + } + const Flat::Bigfoot::UUID &uuid() const { + return uuid_; + } +}; +FLATBUFFERS_STRUCT_END(HardRef, 16); + +struct HardRef::Traits { + using type = HardRef; +}; + +FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(1) SoftRef FLATBUFFERS_FINAL_CLASS { + private: + Flat::Bigfoot::UUID uuid_; + + public: + struct Traits; + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { + return SoftRefTypeTable(); + } + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { + return "Flat.Bigfoot.Reference.SoftRef"; + } + SoftRef() + : uuid_() { + } + SoftRef(const Flat::Bigfoot::UUID &_uuid) + : uuid_(_uuid) { + } + const Flat::Bigfoot::UUID &uuid() const { + return uuid_; + } +}; +FLATBUFFERS_STRUCT_END(SoftRef, 16); + +struct SoftRef::Traits { + using type = SoftRef; +}; + +inline const ::flatbuffers::TypeTable *HardRefTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 } + }; + static const ::flatbuffers::TypeFunction type_refs[] = { + Flat::Bigfoot::UUIDTypeTable + }; + static const int64_t values[] = { 0, 16 }; + static const char * const names[] = { + "uuid" + }; + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 1, type_codes, type_refs, nullptr, values, names + }; + return &tt; +} + +inline const ::flatbuffers::TypeTable *SoftRefTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 } + }; + static const ::flatbuffers::TypeFunction type_refs[] = { + Flat::Bigfoot::UUIDTypeTable + }; + static const int64_t values[] = { 0, 16 }; + static const char * const names[] = { + "uuid" + }; + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 1, type_codes, type_refs, nullptr, values, names + }; + return &tt; +} + +} // namespace Reference +} // namespace Bigfoot +} // namespace Flat + +#endif // FLATBUFFERS_GENERATED_REFERENCE_FLAT_BIGFOOT_REFERENCE_H_ diff --git a/Bigfoot/Sources/System/Include/System/UUID/UUID.bfbs b/Bigfoot/Sources/System/Include/System/UUID/UUID.bfbs index 808bd0d..c86cae5 100644 Binary files a/Bigfoot/Sources/System/Include/System/UUID/UUID.bfbs and b/Bigfoot/Sources/System/Include/System/UUID/UUID.bfbs differ diff --git a/Bigfoot/Sources/System/Include/System/UUID/UUID.bfbs_generated.hpp b/Bigfoot/Sources/System/Include/System/UUID/UUID.bfbs_generated.hpp index 6bae358..ef94287 100644 --- a/Bigfoot/Sources/System/Include/System/UUID/UUID.bfbs_generated.hpp +++ b/Bigfoot/Sources/System/Include/System/UUID/UUID.bfbs_generated.hpp @@ -24,8 +24,8 @@ namespace Bigfoot 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{0x2C}, 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{0x10}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0A}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x2F}, std::byte{0x2F}, std::byte{0x55}, std::byte{0x55}, std::byte{0x49}, std::byte{0x44}, std::byte{0x2E}, std::byte{0x66}, std::byte{0x62}, std::byte{0x73}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, - std::byte{0x24}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x11}, 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{0x55}, std::byte{0x55}, std::byte{0x49}, std::byte{0x44}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, + std::byte{0x24}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x11}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, std::byte{0x2E}, 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{0x55}, std::byte{0x55}, std::byte{0x49}, std::byte{0x44}, 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{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{0x04}, std::byte{0x00}, std::byte{0x05}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x06}, 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{0x11}, std::byte{0x04}, std::byte{0x10}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x05}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, diff --git a/Bigfoot/Sources/System/Include/System/UUID/UUID.fbs b/Bigfoot/Sources/System/Include/System/UUID/UUID.fbs index 5dab21e..bbdfbd0 100644 --- a/Bigfoot/Sources/System/Include/System/UUID/UUID.fbs +++ b/Bigfoot/Sources/System/Include/System/UUID/UUID.fbs @@ -1,4 +1,4 @@ -namespace Bigfoot.Flat; +namespace Flat.Bigfoot; struct UUID (native_type: "::Bigfoot::UUID") { diff --git a/Bigfoot/Sources/System/Include/System/UUID/UUID.hpp b/Bigfoot/Sources/System/Include/System/UUID/UUID.hpp index 8fbf2da..06aef39 100644 --- a/Bigfoot/Sources/System/Include/System/UUID/UUID.hpp +++ b/Bigfoot/Sources/System/Include/System/UUID/UUID.hpp @@ -148,8 +148,8 @@ struct quill::Codec: quill::DeferredFormatCodec namespace flatbuffers { -Bigfoot::Flat::UUID Pack(const Bigfoot::UUID& p_uuid); -Bigfoot::UUID UnPack(const Bigfoot::Flat::UUID& p_flatUUID); +Flat::Bigfoot::UUID Pack(const Bigfoot::UUID& p_uuid); +Bigfoot::UUID UnPack(const Flat::Bigfoot::UUID& p_flatUUID); } // namespace flatbuffers #endif diff --git a/Bigfoot/Sources/System/Include/System/UUID/UUID_generated.hpp b/Bigfoot/Sources/System/Include/System/UUID/UUID_generated.hpp index 84b21fc..d743771 100644 --- a/Bigfoot/Sources/System/Include/System/UUID/UUID_generated.hpp +++ b/Bigfoot/Sources/System/Include/System/UUID/UUID_generated.hpp @@ -1,8 +1,8 @@ // automatically generated by the FlatBuffers compiler, do not modify -#ifndef FLATBUFFERS_GENERATED_UUID_BIGFOOT_FLAT_H_ -#define FLATBUFFERS_GENERATED_UUID_BIGFOOT_FLAT_H_ +#ifndef FLATBUFFERS_GENERATED_UUID_FLAT_BIGFOOT_H_ +#define FLATBUFFERS_GENERATED_UUID_FLAT_BIGFOOT_H_ #include "flatbuffers/flatbuffers.h" @@ -16,8 +16,8 @@ static_assert(FLATBUFFERS_VERSION_MAJOR == 25 && #include "EASTL/unique_ptr.h" #include "EASTL/string.h" -namespace Bigfoot { namespace Flat { +namespace Bigfoot { struct UUID; @@ -33,7 +33,7 @@ FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(1) UUID FLATBUFFERS_FINAL_CLASS { return UUIDTypeTable(); } static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { - return "Bigfoot.Flat.UUID"; + return "Flat.Bigfoot.UUID"; } UUID() : bytes_() { @@ -66,7 +66,7 @@ inline const ::flatbuffers::TypeTable *UUIDTypeTable() { return &tt; } -} // namespace Flat } // namespace Bigfoot +} // namespace Flat -#endif // FLATBUFFERS_GENERATED_UUID_BIGFOOT_FLAT_H_ +#endif // FLATBUFFERS_GENERATED_UUID_FLAT_BIGFOOT_H_ diff --git a/Bigfoot/Sources/System/UUID/UUID.cpp b/Bigfoot/Sources/System/UUID/UUID.cpp index 4e3ad2d..19fcd69 100644 --- a/Bigfoot/Sources/System/UUID/UUID.cpp +++ b/Bigfoot/Sources/System/UUID/UUID.cpp @@ -90,17 +90,17 @@ uuids::uuid_random_generator UUID::GetUUIDGenerator() namespace flatbuffers { -Bigfoot::Flat::UUID Pack(const Bigfoot::UUID& p_uuid) +Flat::Bigfoot::UUID Pack(const Bigfoot::UUID& p_uuid) { const std::span bytes = p_uuid; - return Bigfoot::Flat::UUID { + return Flat::Bigfoot::UUID { std::span {reinterpret_cast(bytes.data()), bytes.size()}}; } /****************************************************************************************/ -Bigfoot::UUID UnPack(const Bigfoot::Flat::UUID& p_flatUUID) +Bigfoot::UUID UnPack(const Flat::Bigfoot::UUID& p_flatUUID) { const std::span bytesView {p_flatUUID.bytes()->data(), p_flatUUID.bytes()->size()}; diff --git a/Bigfoot/Tests/Engine/Asset/Asset.cpp b/Bigfoot/Tests/Engine/Asset/Asset.cpp index 06f8ecc..824e465 100644 --- a/Bigfoot/Tests/Engine/Asset/Asset.cpp +++ b/Bigfoot/Tests/Engine/Asset/Asset.cpp @@ -14,6 +14,7 @@ #include #include +#include #include diff --git a/Bigfoot/Tests/Engine/EngineTests/AssetA.cpp b/Bigfoot/Tests/Engine/EngineTests/AssetA.cpp new file mode 100644 index 0000000..b62b395 --- /dev/null +++ b/Bigfoot/Tests/Engine/EngineTests/AssetA.cpp @@ -0,0 +1,9 @@ +/********************************************************************* + * \file AssetA.cpp + * + * \author Romain BOULLARD + * \date May 2026 + *********************************************************************/ +#include + +ASSET_REF_IMPL(AssetA) diff --git a/Bigfoot/Tests/Engine/EngineTests/AssetB.cpp b/Bigfoot/Tests/Engine/EngineTests/AssetB.cpp new file mode 100644 index 0000000..21c0018 --- /dev/null +++ b/Bigfoot/Tests/Engine/EngineTests/AssetB.cpp @@ -0,0 +1,9 @@ +/********************************************************************* + * \file AssetB.cpp + * + * \author Romain BOULLARD + * \date May 2026 + *********************************************************************/ +#include + +ASSET_REF_IMPL(AssetB) diff --git a/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetA.bfbs b/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetA.bfbs index 41bdf14..de7eb74 100644 Binary files a/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetA.bfbs and b/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetA.bfbs differ diff --git a/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetA.bfbs_generated.hpp b/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetA.bfbs_generated.hpp index 3fff57e..9b1056b 100644 --- a/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetA.bfbs_generated.hpp +++ b/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetA.bfbs_generated.hpp @@ -11,29 +11,81 @@ 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}, + inline constexpr eastl::array g_AssetA_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{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{0xA0}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x44}, 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{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} + std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x06}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x6C}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0xD8}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x58}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x94}, std::byte{0x02}, std::byte{0x00}, std::byte{0x00}, std::byte{0x20}, std::byte{0x02}, std::byte{0x00}, std::byte{0x00}, std::byte{0x68}, std::byte{0x03}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x03}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x30}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x1C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x2C}, std::byte{0xFC}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x54}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x84}, std::byte{0x02}, std::byte{0x00}, std::byte{0x00}, std::byte{0x40}, std::byte{0xFC}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x58}, 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{0x50}, std::byte{0xFC}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x6C}, std::byte{0x02}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x3C}, std::byte{0x03}, std::byte{0x00}, std::byte{0x00}, std::byte{0xF8}, std::byte{0xFC}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, + std::byte{0x1C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x10}, 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{0x08}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x30}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x24}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, std::byte{0x2E}, 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{0x52}, std::byte{0x65}, std::byte{0x66}, + std::byte{0x65}, std::byte{0x72}, std::byte{0x65}, std::byte{0x6E}, std::byte{0x63}, std::byte{0x65}, std::byte{0x2E}, std::byte{0x41}, std::byte{0x73}, std::byte{0x73}, std::byte{0x65}, std::byte{0x74}, std::byte{0x41}, std::byte{0x53}, std::byte{0x6F}, std::byte{0x66}, + std::byte{0x74}, std::byte{0x52}, std::byte{0x65}, std::byte{0x66}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0xB4}, std::byte{0xFC}, std::byte{0xFF}, std::byte{0xFF}, 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{0x80}, std::byte{0xFD}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0F}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x73}, std::byte{0x6F}, std::byte{0x66}, std::byte{0x74}, std::byte{0x5F}, std::byte{0x72}, std::byte{0x65}, std::byte{0x66}, + std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x74}, std::byte{0xFD}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x1C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x10}, 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{0x8C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x30}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x24}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, + std::byte{0x2E}, 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{0x52}, std::byte{0x65}, std::byte{0x66}, std::byte{0x65}, std::byte{0x72}, std::byte{0x65}, std::byte{0x6E}, + std::byte{0x63}, std::byte{0x65}, std::byte{0x2E}, std::byte{0x41}, std::byte{0x73}, std::byte{0x73}, std::byte{0x65}, std::byte{0x74}, std::byte{0x41}, std::byte{0x48}, std::byte{0x61}, std::byte{0x72}, std::byte{0x64}, std::byte{0x52}, std::byte{0x65}, std::byte{0x66}, + std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x30}, std::byte{0xFD}, std::byte{0xFF}, std::byte{0xFF}, 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{0xFC}, std::byte{0xFD}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0F}, 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{0x08}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x68}, std::byte{0x61}, std::byte{0x72}, std::byte{0x64}, std::byte{0x5F}, std::byte{0x72}, std::byte{0x65}, std::byte{0x66}, 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{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, + std::byte{0x2E}, 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{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}, std::byte{0xC8}, std::byte{0xFE}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, + std::byte{0x1C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x10}, 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{0x74}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x28}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x1E}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, std::byte{0x2E}, 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{0x52}, std::byte{0x65}, std::byte{0x66}, + std::byte{0x65}, std::byte{0x72}, std::byte{0x65}, std::byte{0x6E}, std::byte{0x63}, std::byte{0x65}, std::byte{0x2E}, std::byte{0x53}, std::byte{0x6F}, std::byte{0x66}, std::byte{0x74}, std::byte{0x52}, std::byte{0x65}, std::byte{0x66}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x7C}, std::byte{0xFE}, std::byte{0xFF}, std::byte{0xFF}, 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{0x48}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0xFF}, + std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0F}, std::byte{0x05}, 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{0x38}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, + std::byte{0x64}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x58}, 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{0x42}, 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}, std::byte{0x2E}, std::byte{0x2F}, std::byte{0x2E}, std::byte{0x2E}, std::byte{0x2F}, std::byte{0x53}, std::byte{0x6F}, std::byte{0x75}, std::byte{0x72}, std::byte{0x63}, std::byte{0x65}, std::byte{0x73}, + std::byte{0x2F}, std::byte{0x45}, std::byte{0x6E}, std::byte{0x67}, std::byte{0x69}, std::byte{0x6E}, std::byte{0x65}, std::byte{0x2F}, std::byte{0x49}, std::byte{0x6E}, std::byte{0x63}, std::byte{0x6C}, std::byte{0x75}, std::byte{0x64}, std::byte{0x65}, std::byte{0x2F}, + std::byte{0x45}, std::byte{0x6E}, std::byte{0x67}, std::byte{0x69}, std::byte{0x6E}, std::byte{0x65}, std::byte{0x2F}, std::byte{0x41}, std::byte{0x73}, std::byte{0x73}, std::byte{0x65}, std::byte{0x74}, std::byte{0x2F}, std::byte{0x52}, std::byte{0x65}, std::byte{0x66}, + std::byte{0x65}, std::byte{0x72}, std::byte{0x65}, std::byte{0x6E}, std::byte{0x63}, std::byte{0x65}, std::byte{0x2E}, std::byte{0x66}, std::byte{0x62}, std::byte{0x73}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x28}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x1E}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, std::byte{0x2E}, 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{0x52}, std::byte{0x65}, std::byte{0x66}, std::byte{0x65}, std::byte{0x72}, std::byte{0x65}, std::byte{0x6E}, std::byte{0x63}, std::byte{0x65}, std::byte{0x2E}, std::byte{0x48}, + std::byte{0x61}, std::byte{0x72}, std::byte{0x64}, std::byte{0x52}, std::byte{0x65}, std::byte{0x66}, std::byte{0x00}, std::byte{0x00}, std::byte{0x34}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0xFF}, 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{0x05}, 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{0x14}, std::byte{0x00}, std::byte{0x1C}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, std::byte{0x07}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x00}, std::byte{0x00}, std::byte{0x18}, 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{0x60}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x54}, 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{0x3C}, 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}, + std::byte{0x2E}, std::byte{0x2F}, std::byte{0x2E}, std::byte{0x2E}, std::byte{0x2F}, std::byte{0x53}, std::byte{0x6F}, std::byte{0x75}, std::byte{0x72}, std::byte{0x63}, std::byte{0x65}, std::byte{0x73}, std::byte{0x2F}, std::byte{0x53}, std::byte{0x79}, std::byte{0x73}, + std::byte{0x74}, std::byte{0x65}, std::byte{0x6D}, std::byte{0x2F}, std::byte{0x49}, std::byte{0x6E}, std::byte{0x63}, std::byte{0x6C}, std::byte{0x75}, std::byte{0x64}, std::byte{0x65}, std::byte{0x2F}, std::byte{0x53}, std::byte{0x79}, std::byte{0x73}, std::byte{0x74}, + std::byte{0x65}, std::byte{0x6D}, std::byte{0x2F}, std::byte{0x55}, std::byte{0x55}, std::byte{0x49}, std::byte{0x44}, std::byte{0x2F}, std::byte{0x55}, std::byte{0x55}, std::byte{0x49}, std::byte{0x44}, 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{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x24}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x11}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, std::byte{0x2E}, 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{0x55}, std::byte{0x55}, std::byte{0x49}, + std::byte{0x44}, 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{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{0x04}, std::byte{0x00}, std::byte{0x05}, std::byte{0x00}, + std::byte{0x00}, std::byte{0x00}, std::byte{0x06}, 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{0x11}, std::byte{0x04}, std::byte{0x10}, std::byte{0x00}, + std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x05}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x62}, std::byte{0x79}, std::byte{0x74}, std::byte{0x65}, std::byte{0x73}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00} }; } // namespace Bigfoot diff --git a/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetA.fbs b/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetA.fbs index c47497f..0a6c97e 100644 --- a/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetA.fbs +++ b/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetA.fbs @@ -1,4 +1,6 @@ -namespace Bigfoot.Flat; +include "Engine/Asset/Reference.fbs"; + +namespace Flat.Bigfoot; table AssetA { @@ -6,4 +8,15 @@ table AssetA mana: uint = 0; } -root_type AssetA; \ No newline at end of file +root_type AssetA; + +namespace Flat.Bigfoot.Reference; + +struct AssetAHardRef (native_type: "::Bigfoot::HardRef<::Bigfoot::AssetA>") +{ + hard_ref: HardRef; +} +struct AssetASoftRef (native_type: "::Bigfoot::SoftRef<::Bigfoot::AssetA>") +{ + soft_ref: SoftRef; +} \ No newline at end of file diff --git a/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetA.hpp b/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetA.hpp index 1b5f946..6018056 100644 --- a/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetA.hpp +++ b/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetA.hpp @@ -7,13 +7,14 @@ #ifndef BIGFOOT_ENGINE_ASSETA_HPP #define BIGFOOT_ENGINE_ASSETA_HPP #include +#include #include #include namespace Bigfoot { -class AssetA: public Asset +class AssetA: public Asset<::Flat::Bigfoot::AssetA> { public: AssetA() = default; @@ -40,4 +41,6 @@ class AssetA: public Asset }; } // namespace Bigfoot +ASSET_REF_DECL(AssetA) + #endif diff --git a/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetA_generated.hpp b/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetA_generated.hpp index 3b0b324..af9e2f7 100644 --- a/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetA_generated.hpp +++ b/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetA_generated.hpp @@ -1,8 +1,8 @@ // automatically generated by the FlatBuffers compiler, do not modify -#ifndef FLATBUFFERS_GENERATED_ASSETA_BIGFOOT_FLAT_H_ -#define FLATBUFFERS_GENERATED_ASSETA_BIGFOOT_FLAT_H_ +#ifndef FLATBUFFERS_GENERATED_ASSETA_FLAT_BIGFOOT_REFERENCE_H_ +#define FLATBUFFERS_GENERATED_ASSETA_FLAT_BIGFOOT_REFERENCE_H_ #include "flatbuffers/flatbuffers.h" @@ -13,22 +13,97 @@ static_assert(FLATBUFFERS_VERSION_MAJOR == 25 && FLATBUFFERS_VERSION_REVISION == 19, "Non-compatible flatbuffers version included"); +#include "System/UUID/UUID.hpp" +#include "Engine/Asset/Reference_generated.hpp" + #include "EASTL/unique_ptr.h" #include "EASTL/string.h" -namespace Bigfoot { namespace Flat { +namespace Bigfoot { struct AssetA; struct AssetABuilder; struct AssetAT; +namespace Reference { + +struct AssetAHardRef; + +struct AssetASoftRef; + +} // namespace Reference + inline const ::flatbuffers::TypeTable *AssetATypeTable(); +namespace Reference { + +inline const ::flatbuffers::TypeTable *AssetAHardRefTypeTable(); + +inline const ::flatbuffers::TypeTable *AssetASoftRefTypeTable(); + +FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(1) AssetAHardRef FLATBUFFERS_FINAL_CLASS { + private: + Flat::Bigfoot::Reference::HardRef hard_ref_; + + public: + struct Traits; + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { + return AssetAHardRefTypeTable(); + } + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { + return "Flat.Bigfoot.Reference.AssetAHardRef"; + } + AssetAHardRef() + : hard_ref_() { + } + AssetAHardRef(const Flat::Bigfoot::Reference::HardRef &_hard_ref) + : hard_ref_(_hard_ref) { + } + const Flat::Bigfoot::Reference::HardRef &hard_ref() const { + return hard_ref_; + } +}; +FLATBUFFERS_STRUCT_END(AssetAHardRef, 16); + +struct AssetAHardRef::Traits { + using type = AssetAHardRef; +}; + +FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(1) AssetASoftRef FLATBUFFERS_FINAL_CLASS { + private: + Flat::Bigfoot::Reference::SoftRef soft_ref_; + + public: + struct Traits; + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { + return AssetASoftRefTypeTable(); + } + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { + return "Flat.Bigfoot.Reference.AssetASoftRef"; + } + AssetASoftRef() + : soft_ref_() { + } + AssetASoftRef(const Flat::Bigfoot::Reference::SoftRef &_soft_ref) + : soft_ref_(_soft_ref) { + } + const Flat::Bigfoot::Reference::SoftRef &soft_ref() const { + return soft_ref_; + } +}; +FLATBUFFERS_STRUCT_END(AssetASoftRef, 16); + +struct AssetASoftRef::Traits { + using type = AssetASoftRef; +}; + +} // namespace Reference + struct AssetAT : public ::flatbuffers::NativeTable { typedef AssetA TableType; static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { - return "Bigfoot.Flat.AssetAT"; + return "Flat.Bigfoot.AssetAT"; } uint32_t health = 0; uint32_t mana = 0; @@ -42,7 +117,7 @@ struct AssetA FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { return AssetATypeTable(); } static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { - return "Bigfoot.Flat.AssetA"; + return "Flat.Bigfoot.AssetA"; } enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { VT_HEALTH = 4, @@ -127,7 +202,7 @@ inline ::flatbuffers::Offset AssetA::Pack(::flatbuffers::FlatBufferBuild 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( + return Flat::Bigfoot::CreateAssetA( _fbb, _health, _mana); @@ -148,24 +223,62 @@ inline const ::flatbuffers::TypeTable *AssetATypeTable() { return &tt; } -inline const Bigfoot::Flat::AssetA *GetAssetA(const void *buf) { - return ::flatbuffers::GetRoot(buf); +namespace Reference { + +inline const ::flatbuffers::TypeTable *AssetAHardRefTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 } + }; + static const ::flatbuffers::TypeFunction type_refs[] = { + Flat::Bigfoot::Reference::HardRefTypeTable + }; + static const int64_t values[] = { 0, 16 }; + static const char * const names[] = { + "hard_ref" + }; + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 1, type_codes, type_refs, nullptr, values, names + }; + return &tt; } -inline const Bigfoot::Flat::AssetA *GetSizePrefixedAssetA(const void *buf) { - return ::flatbuffers::GetSizePrefixedRoot(buf); +inline const ::flatbuffers::TypeTable *AssetASoftRefTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 } + }; + static const ::flatbuffers::TypeFunction type_refs[] = { + Flat::Bigfoot::Reference::SoftRefTypeTable + }; + static const int64_t values[] = { 0, 16 }; + static const char * const names[] = { + "soft_ref" + }; + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 1, type_codes, type_refs, nullptr, values, names + }; + return &tt; +} + +} // namespace Reference + +inline const Flat::Bigfoot::AssetA *GetAssetA(const void *buf) { + return ::flatbuffers::GetRoot(buf); +} + +inline const Flat::Bigfoot::AssetA *GetSizePrefixedAssetA(const void *buf) { + return ::flatbuffers::GetSizePrefixedRoot(buf); } template inline bool VerifyAssetABuffer( ::flatbuffers::VerifierTemplate &verifier) { - return verifier.template VerifyBuffer(nullptr); + return verifier.template VerifyBuffer(nullptr); } template inline bool VerifySizePrefixedAssetABuffer( ::flatbuffers::VerifierTemplate &verifier) { - return verifier.template VerifySizePrefixedBuffer(nullptr); + return verifier.template VerifySizePrefixedBuffer(nullptr); } inline const char *AssetAExtension() { @@ -174,29 +287,29 @@ inline const char *AssetAExtension() { inline void FinishAssetABuffer( ::flatbuffers::FlatBufferBuilder &fbb, - ::flatbuffers::Offset root) { + ::flatbuffers::Offset root) { fbb.Finish(root); } inline void FinishSizePrefixedAssetABuffer( ::flatbuffers::FlatBufferBuilder &fbb, - ::flatbuffers::Offset root) { + ::flatbuffers::Offset root) { fbb.FinishSizePrefixed(root); } -inline eastl::unique_ptr UnPackAssetA( +inline eastl::unique_ptr UnPackAssetA( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return eastl::unique_ptr(GetAssetA(buf)->UnPack(res)); + return eastl::unique_ptr(GetAssetA(buf)->UnPack(res)); } -inline eastl::unique_ptr UnPackSizePrefixedAssetA( +inline eastl::unique_ptr UnPackSizePrefixedAssetA( const void *buf, const ::flatbuffers::resolver_function_t *res = nullptr) { - return eastl::unique_ptr(GetSizePrefixedAssetA(buf)->UnPack(res)); + return eastl::unique_ptr(GetSizePrefixedAssetA(buf)->UnPack(res)); } -} // namespace Flat } // namespace Bigfoot +} // namespace Flat -#endif // FLATBUFFERS_GENERATED_ASSETA_BIGFOOT_FLAT_H_ +#endif // FLATBUFFERS_GENERATED_ASSETA_FLAT_BIGFOOT_REFERENCE_H_ diff --git a/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetB.bfbs b/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetB.bfbs new file mode 100644 index 0000000..47c73be Binary files /dev/null and b/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetB.bfbs differ diff --git a/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetB.bfbs_generated.hpp b/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetB.bfbs_generated.hpp new file mode 100644 index 0000000..343519f --- /dev/null +++ b/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetB.bfbs_generated.hpp @@ -0,0 +1,127 @@ +/** + * Auto-generated header from: AssetB.bfbs + * Generated by Bin2CPP + * + * DO NOT TOUCH + */ +#ifndef ASSETB_BFBS_HPP +#define ASSETB_BFBS_HPP +#include +#include + +namespace Bigfoot +{ + inline constexpr eastl::array g_AssetB_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}, + 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{0xB0}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x10}, 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{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{0x09}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x88}, std::byte{0x03}, std::byte{0x00}, std::byte{0x00}, std::byte{0x7C}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0xF0}, std::byte{0x02}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x70}, std::byte{0x02}, std::byte{0x00}, std::byte{0x00}, std::byte{0xF4}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x74}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0xA4}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x30}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x78}, std::byte{0x05}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x4C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x38}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x20}, 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{0xFA}, std::byte{0xFF}, std::byte{0xFF}, + std::byte{0x58}, std::byte{0x01}, 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{0x90}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x50}, std::byte{0x03}, std::byte{0x00}, std::byte{0x00}, std::byte{0x38}, std::byte{0xFA}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x48}, std::byte{0x03}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x78}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x4C}, std::byte{0xFA}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x4C}, std::byte{0x05}, 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{0x5C}, std::byte{0xFA}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x60}, std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x04}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x30}, std::byte{0x05}, std::byte{0x00}, std::byte{0x00}, std::byte{0x04}, std::byte{0xFB}, std::byte{0xFF}, std::byte{0xFF}, + std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x1C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x10}, 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{0xF4}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x30}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x24}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, std::byte{0x2E}, 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{0x52}, std::byte{0x65}, std::byte{0x66}, std::byte{0x65}, std::byte{0x72}, std::byte{0x65}, std::byte{0x6E}, std::byte{0x63}, std::byte{0x65}, std::byte{0x2E}, std::byte{0x41}, std::byte{0x73}, std::byte{0x73}, std::byte{0x65}, std::byte{0x74}, + std::byte{0x42}, std::byte{0x53}, std::byte{0x6F}, std::byte{0x66}, std::byte{0x74}, std::byte{0x52}, std::byte{0x65}, std::byte{0x66}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0xC0}, std::byte{0xFA}, std::byte{0xFF}, std::byte{0xFF}, + 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{0x8C}, std::byte{0xFB}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0F}, + std::byte{0x07}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x73}, std::byte{0x6F}, std::byte{0x66}, std::byte{0x74}, + std::byte{0x5F}, std::byte{0x72}, std::byte{0x65}, std::byte{0x66}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x80}, std::byte{0xFB}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, + std::byte{0x1C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x10}, 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{0x78}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x30}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x24}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, std::byte{0x2E}, 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{0x52}, std::byte{0x65}, std::byte{0x66}, + std::byte{0x65}, std::byte{0x72}, std::byte{0x65}, std::byte{0x6E}, std::byte{0x63}, std::byte{0x65}, std::byte{0x2E}, std::byte{0x41}, std::byte{0x73}, std::byte{0x73}, std::byte{0x65}, std::byte{0x74}, std::byte{0x42}, std::byte{0x48}, std::byte{0x61}, std::byte{0x72}, + std::byte{0x64}, std::byte{0x52}, std::byte{0x65}, std::byte{0x66}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x3C}, std::byte{0xFB}, std::byte{0xFF}, std::byte{0xFF}, 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{0x08}, std::byte{0xFC}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0F}, std::byte{0x06}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x68}, std::byte{0x61}, std::byte{0x72}, std::byte{0x64}, std::byte{0x5F}, std::byte{0x72}, std::byte{0x65}, std::byte{0x66}, + std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0C}, std::byte{0xFE}, std::byte{0xFF}, std::byte{0xFF}, 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{0x42}, 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{0xA0}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x38}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x13}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, + std::byte{0x2E}, 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{0x41}, std::byte{0x73}, std::byte{0x73}, std::byte{0x65}, std::byte{0x74}, std::byte{0x42}, std::byte{0x00}, + std::byte{0x1C}, 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{0x00}, 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{0x1C}, 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{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{0x61}, std::byte{0x73}, std::byte{0x73}, std::byte{0x65}, std::byte{0x74}, std::byte{0x5F}, std::byte{0x61}, std::byte{0x5F}, std::byte{0x72}, std::byte{0x65}, std::byte{0x66}, std::byte{0x73}, + std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x1C}, 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{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{0x05}, std::byte{0x00}, + std::byte{0x1C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, 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{0x04}, std::byte{0xFD}, std::byte{0xFF}, std::byte{0xFF}, 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{0x0B}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x61}, std::byte{0x73}, std::byte{0x73}, std::byte{0x65}, std::byte{0x74}, std::byte{0x5F}, std::byte{0x61}, std::byte{0x5F}, std::byte{0x72}, std::byte{0x65}, std::byte{0x66}, std::byte{0x00}, + std::byte{0xF8}, std::byte{0xFC}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x1C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x10}, 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{0x08}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x30}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x24}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, std::byte{0x2E}, 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{0x52}, std::byte{0x65}, std::byte{0x66}, std::byte{0x65}, std::byte{0x72}, std::byte{0x65}, std::byte{0x6E}, std::byte{0x63}, std::byte{0x65}, std::byte{0x2E}, std::byte{0x41}, + std::byte{0x73}, std::byte{0x73}, std::byte{0x65}, std::byte{0x74}, std::byte{0x41}, std::byte{0x53}, std::byte{0x6F}, std::byte{0x66}, std::byte{0x74}, std::byte{0x52}, std::byte{0x65}, std::byte{0x66}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0xB4}, std::byte{0xFC}, std::byte{0xFF}, std::byte{0xFF}, 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{0x80}, std::byte{0xFD}, std::byte{0xFF}, std::byte{0xFF}, + std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0F}, std::byte{0x07}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x73}, std::byte{0x6F}, std::byte{0x66}, std::byte{0x74}, std::byte{0x5F}, std::byte{0x72}, std::byte{0x65}, std::byte{0x66}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x74}, std::byte{0xFD}, std::byte{0xFF}, std::byte{0xFF}, + std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x1C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x10}, 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{0x8C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x30}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x24}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, std::byte{0x2E}, 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{0x52}, std::byte{0x65}, std::byte{0x66}, std::byte{0x65}, std::byte{0x72}, std::byte{0x65}, std::byte{0x6E}, std::byte{0x63}, std::byte{0x65}, std::byte{0x2E}, std::byte{0x41}, std::byte{0x73}, std::byte{0x73}, std::byte{0x65}, std::byte{0x74}, + std::byte{0x41}, std::byte{0x48}, std::byte{0x61}, std::byte{0x72}, std::byte{0x64}, std::byte{0x52}, std::byte{0x65}, std::byte{0x66}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x30}, std::byte{0xFD}, std::byte{0xFF}, std::byte{0xFF}, + 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{0xFC}, std::byte{0xFD}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0F}, + std::byte{0x06}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x68}, std::byte{0x61}, std::byte{0x72}, std::byte{0x64}, + std::byte{0x5F}, std::byte{0x72}, std::byte{0x65}, std::byte{0x66}, 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{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, std::byte{0x2E}, 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{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}, + std::byte{0xC8}, std::byte{0xFE}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x1C}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x10}, 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{0x74}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x28}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x1E}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, std::byte{0x2E}, 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{0x52}, std::byte{0x65}, std::byte{0x66}, std::byte{0x65}, std::byte{0x72}, std::byte{0x65}, std::byte{0x6E}, std::byte{0x63}, std::byte{0x65}, std::byte{0x2E}, std::byte{0x53}, + std::byte{0x6F}, std::byte{0x66}, std::byte{0x74}, std::byte{0x52}, std::byte{0x65}, std::byte{0x66}, std::byte{0x00}, std::byte{0x00}, std::byte{0x7C}, std::byte{0xFE}, std::byte{0xFF}, std::byte{0xFF}, 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{0x48}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x0F}, std::byte{0x08}, 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{0x38}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x64}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x58}, 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{0x42}, 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}, std::byte{0x2E}, std::byte{0x2F}, std::byte{0x2E}, std::byte{0x2E}, + std::byte{0x2F}, std::byte{0x53}, std::byte{0x6F}, std::byte{0x75}, std::byte{0x72}, std::byte{0x63}, std::byte{0x65}, std::byte{0x73}, std::byte{0x2F}, std::byte{0x45}, std::byte{0x6E}, std::byte{0x67}, std::byte{0x69}, std::byte{0x6E}, std::byte{0x65}, std::byte{0x2F}, + std::byte{0x49}, std::byte{0x6E}, std::byte{0x63}, std::byte{0x6C}, std::byte{0x75}, std::byte{0x64}, std::byte{0x65}, std::byte{0x2F}, std::byte{0x45}, std::byte{0x6E}, std::byte{0x67}, std::byte{0x69}, std::byte{0x6E}, std::byte{0x65}, std::byte{0x2F}, std::byte{0x41}, + std::byte{0x73}, std::byte{0x73}, std::byte{0x65}, std::byte{0x74}, std::byte{0x2F}, std::byte{0x52}, std::byte{0x65}, std::byte{0x66}, std::byte{0x65}, std::byte{0x72}, std::byte{0x65}, std::byte{0x6E}, std::byte{0x63}, std::byte{0x65}, std::byte{0x2E}, std::byte{0x66}, + std::byte{0x62}, std::byte{0x73}, std::byte{0x00}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x28}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x1E}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, std::byte{0x2E}, 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{0x52}, std::byte{0x65}, std::byte{0x66}, + std::byte{0x65}, std::byte{0x72}, std::byte{0x65}, std::byte{0x6E}, std::byte{0x63}, std::byte{0x65}, std::byte{0x2E}, std::byte{0x48}, std::byte{0x61}, std::byte{0x72}, std::byte{0x64}, std::byte{0x52}, std::byte{0x65}, std::byte{0x66}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x34}, std::byte{0xFF}, std::byte{0xFF}, std::byte{0xFF}, 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{0x08}, 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{0x14}, std::byte{0x00}, std::byte{0x1C}, std::byte{0x00}, std::byte{0x08}, std::byte{0x00}, std::byte{0x0C}, std::byte{0x00}, + std::byte{0x07}, std::byte{0x00}, std::byte{0x10}, std::byte{0x00}, std::byte{0x14}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x18}, 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{0x60}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x54}, 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{0x3C}, 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}, std::byte{0x2E}, std::byte{0x2F}, std::byte{0x2E}, std::byte{0x2E}, std::byte{0x2F}, std::byte{0x53}, std::byte{0x6F}, std::byte{0x75}, + std::byte{0x72}, std::byte{0x63}, std::byte{0x65}, std::byte{0x73}, std::byte{0x2F}, std::byte{0x53}, std::byte{0x79}, std::byte{0x73}, std::byte{0x74}, std::byte{0x65}, std::byte{0x6D}, std::byte{0x2F}, std::byte{0x49}, std::byte{0x6E}, std::byte{0x63}, std::byte{0x6C}, + std::byte{0x75}, std::byte{0x64}, std::byte{0x65}, std::byte{0x2F}, std::byte{0x53}, std::byte{0x79}, std::byte{0x73}, std::byte{0x74}, std::byte{0x65}, std::byte{0x6D}, std::byte{0x2F}, std::byte{0x55}, std::byte{0x55}, std::byte{0x49}, std::byte{0x44}, std::byte{0x2F}, + std::byte{0x55}, std::byte{0x55}, std::byte{0x49}, std::byte{0x44}, 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{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x24}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x11}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x46}, std::byte{0x6C}, std::byte{0x61}, std::byte{0x74}, std::byte{0x2E}, 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{0x55}, std::byte{0x55}, std::byte{0x49}, std::byte{0x44}, 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{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{0x04}, std::byte{0x00}, std::byte{0x05}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x06}, 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{0x11}, std::byte{0x04}, std::byte{0x10}, std::byte{0x00}, std::byte{0x01}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, std::byte{0x05}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00}, + std::byte{0x62}, std::byte{0x79}, std::byte{0x74}, std::byte{0x65}, std::byte{0x73}, std::byte{0x00}, std::byte{0x00}, std::byte{0x00} + }; + +} // namespace Bigfoot + +#endif // ASSETB_BFBS_HPP diff --git a/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetB.fbs b/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetB.fbs new file mode 100644 index 0000000..1403fc6 --- /dev/null +++ b/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetB.fbs @@ -0,0 +1,25 @@ +include "Engine/Asset/Reference.fbs"; + +include "EngineTests/Asset/AssetA.fbs"; +native_include "EngineTests/Asset/AssetA.hpp"; + +namespace Flat.Bigfoot; + +table AssetB +{ + asset_a_ref: Flat.Bigfoot.Reference.AssetAHardRef (native_inline); + asset_a_refs: [Flat.Bigfoot.Reference.AssetAHardRef] (native_inline); +} + +root_type AssetB; + +namespace Flat.Bigfoot.Reference; + +struct AssetBHardRef (native_type: "::Bigfoot::HardRef<::Bigfoot::AssetB>") +{ + hard_ref: HardRef; +} +struct AssetBSoftRef (native_type: "::Bigfoot::SoftRef<::Bigfoot::AssetB>") +{ + soft_ref: SoftRef; +} \ No newline at end of file diff --git a/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetB.hpp b/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetB.hpp new file mode 100644 index 0000000..ebedfed --- /dev/null +++ b/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetB.hpp @@ -0,0 +1,46 @@ +/********************************************************************* + * \file AssetA.hpp + * + * \author Romain BOULLARD + * \date April 2026 + *********************************************************************/ +#ifndef BIGFOOT_ENGINE_ASSETB_HPP +#define BIGFOOT_ENGINE_ASSETB_HPP +#include +#include + +#include +#include + +namespace Bigfoot +{ +class AssetB: public Asset<::Flat::Bigfoot::AssetB> +{ + public: + AssetB() = default; + + AssetB(const eastl::span p_flatbuffer): + Asset(p_flatbuffer) + { + } + + AssetB(const AssetB& p_asset) = default; + AssetB(AssetB&& p_asset) = default; + + ~AssetB() = default; + + [[nodiscard]] + AssetB& operator=(const AssetB& p_asset) = default; + [[nodiscard]] + AssetB& operator=(AssetB&& p_asset) = default; + + static constexpr eastl::span ReflectionInfo() + { + return g_AssetB_bfbs; + } +}; +} // namespace Bigfoot + +ASSET_REF_DECL(AssetB) + +#endif diff --git a/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetB_generated.hpp b/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetB_generated.hpp new file mode 100644 index 0000000..4a42014 --- /dev/null +++ b/Bigfoot/Tests/Engine/Include/EngineTests/Asset/AssetB_generated.hpp @@ -0,0 +1,321 @@ +// automatically generated by the FlatBuffers compiler, do not modify + + +#ifndef FLATBUFFERS_GENERATED_ASSETB_FLAT_BIGFOOT_REFERENCE_H_ +#define FLATBUFFERS_GENERATED_ASSETB_FLAT_BIGFOOT_REFERENCE_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 "System/UUID/UUID.hpp" +#include "EngineTests/Asset/AssetA.hpp" +#include "Engine/Asset/Reference_generated.hpp" +#include "EngineTests/Asset/AssetA_generated.hpp" + +#include "EASTL/unique_ptr.h" +#include "EASTL/string.h" + +namespace Flat { +namespace Bigfoot { + +struct AssetB; +struct AssetBBuilder; +struct AssetBT; + +namespace Reference { + +struct AssetBHardRef; + +struct AssetBSoftRef; + +} // namespace Reference + +inline const ::flatbuffers::TypeTable *AssetBTypeTable(); + +namespace Reference { + +inline const ::flatbuffers::TypeTable *AssetBHardRefTypeTable(); + +inline const ::flatbuffers::TypeTable *AssetBSoftRefTypeTable(); + +FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(1) AssetBHardRef FLATBUFFERS_FINAL_CLASS { + private: + Flat::Bigfoot::Reference::HardRef hard_ref_; + + public: + struct Traits; + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { + return AssetBHardRefTypeTable(); + } + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { + return "Flat.Bigfoot.Reference.AssetBHardRef"; + } + AssetBHardRef() + : hard_ref_() { + } + AssetBHardRef(const Flat::Bigfoot::Reference::HardRef &_hard_ref) + : hard_ref_(_hard_ref) { + } + const Flat::Bigfoot::Reference::HardRef &hard_ref() const { + return hard_ref_; + } +}; +FLATBUFFERS_STRUCT_END(AssetBHardRef, 16); + +struct AssetBHardRef::Traits { + using type = AssetBHardRef; +}; + +FLATBUFFERS_MANUALLY_ALIGNED_STRUCT(1) AssetBSoftRef FLATBUFFERS_FINAL_CLASS { + private: + Flat::Bigfoot::Reference::SoftRef soft_ref_; + + public: + struct Traits; + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { + return AssetBSoftRefTypeTable(); + } + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { + return "Flat.Bigfoot.Reference.AssetBSoftRef"; + } + AssetBSoftRef() + : soft_ref_() { + } + AssetBSoftRef(const Flat::Bigfoot::Reference::SoftRef &_soft_ref) + : soft_ref_(_soft_ref) { + } + const Flat::Bigfoot::Reference::SoftRef &soft_ref() const { + return soft_ref_; + } +}; +FLATBUFFERS_STRUCT_END(AssetBSoftRef, 16); + +struct AssetBSoftRef::Traits { + using type = AssetBSoftRef; +}; + +} // namespace Reference + +struct AssetBT : public ::flatbuffers::NativeTable { + typedef AssetB TableType; + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { + return "Flat.Bigfoot.AssetBT"; + } + ::Bigfoot::HardRef<::Bigfoot::AssetA> asset_a_ref{}; + std::vector<::Bigfoot::HardRef<::Bigfoot::AssetA>> asset_a_refs{}; +}; + +struct AssetB FLATBUFFERS_FINAL_CLASS : private ::flatbuffers::Table { + typedef AssetBT NativeTableType; + typedef AssetBBuilder Builder; + struct Traits; + static const ::flatbuffers::TypeTable *MiniReflectTypeTable() { + return AssetBTypeTable(); + } + static FLATBUFFERS_CONSTEXPR_CPP11 const char *GetFullyQualifiedName() { + return "Flat.Bigfoot.AssetB"; + } + enum FlatBuffersVTableOffset FLATBUFFERS_VTABLE_UNDERLYING_TYPE { + VT_ASSET_A_REF = 4, + VT_ASSET_A_REFS = 6 + }; + const Flat::Bigfoot::Reference::AssetAHardRef *asset_a_ref() const { + return GetStruct(VT_ASSET_A_REF); + } + const ::flatbuffers::Vector *asset_a_refs() const { + return GetPointer *>(VT_ASSET_A_REFS); + } + template + bool Verify(::flatbuffers::VerifierTemplate &verifier) const { + return VerifyTableStart(verifier) && + VerifyField(verifier, VT_ASSET_A_REF, 1) && + VerifyOffset(verifier, VT_ASSET_A_REFS) && + verifier.VerifyVector(asset_a_refs()) && + verifier.EndTable(); + } + AssetBT *UnPack(const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + void UnPackTo(AssetBT *_o, const ::flatbuffers::resolver_function_t *_resolver = nullptr) const; + static ::flatbuffers::Offset Pack(::flatbuffers::FlatBufferBuilder &_fbb, const AssetBT* _o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); +}; + +struct AssetBBuilder { + typedef AssetB Table; + ::flatbuffers::FlatBufferBuilder &fbb_; + ::flatbuffers::uoffset_t start_; + void add_asset_a_ref(const Flat::Bigfoot::Reference::AssetAHardRef *asset_a_ref) { + fbb_.AddStruct(AssetB::VT_ASSET_A_REF, asset_a_ref); + } + void add_asset_a_refs(::flatbuffers::Offset<::flatbuffers::Vector> asset_a_refs) { + fbb_.AddOffset(AssetB::VT_ASSET_A_REFS, asset_a_refs); + } + explicit AssetBBuilder(::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 CreateAssetB( + ::flatbuffers::FlatBufferBuilder &_fbb, + const Flat::Bigfoot::Reference::AssetAHardRef *asset_a_ref = nullptr, + ::flatbuffers::Offset<::flatbuffers::Vector> asset_a_refs = 0) { + AssetBBuilder builder_(_fbb); + builder_.add_asset_a_refs(asset_a_refs); + builder_.add_asset_a_ref(asset_a_ref); + return builder_.Finish(); +} + +struct AssetB::Traits { + using type = AssetB; + static auto constexpr Create = CreateAssetB; +}; + +::flatbuffers::Offset CreateAssetB(::flatbuffers::FlatBufferBuilder &_fbb, const AssetBT *_o, const ::flatbuffers::rehasher_function_t *_rehasher = nullptr); + +inline AssetBT *AssetB::UnPack(const ::flatbuffers::resolver_function_t *_resolver) const { + auto _o = std::make_unique(); + UnPackTo(_o.get(), _resolver); + return _o.release(); +} + +inline void AssetB::UnPackTo(AssetBT *_o, const ::flatbuffers::resolver_function_t *_resolver) const { + (void)_o; + (void)_resolver; + { auto _e = asset_a_ref(); if (_e) _o->asset_a_ref = ::flatbuffers::UnPack(*_e); } + { auto _e = asset_a_refs(); if (_e) { _o->asset_a_refs.resize(_e->size()); for (::flatbuffers::uoffset_t _i = 0; _i < _e->size(); _i++) { _o->asset_a_refs[_i] = ::flatbuffers::UnPack(*_e->Get(_i)); } } else { _o->asset_a_refs.resize(0); } } +} + +inline ::flatbuffers::Offset CreateAssetB(::flatbuffers::FlatBufferBuilder &_fbb, const AssetBT *_o, const ::flatbuffers::rehasher_function_t *_rehasher) { + return AssetB::Pack(_fbb, _o, _rehasher); +} + +inline ::flatbuffers::Offset AssetB::Pack(::flatbuffers::FlatBufferBuilder &_fbb, const AssetBT* _o, const ::flatbuffers::rehasher_function_t *_rehasher) { + (void)_rehasher; + (void)_o; + struct _VectorArgs { ::flatbuffers::FlatBufferBuilder *__fbb; const AssetBT* __o; const ::flatbuffers::rehasher_function_t *__rehasher; } _va = { &_fbb, _o, _rehasher}; (void)_va; + auto _asset_a_ref = ::flatbuffers::Pack(_o->asset_a_ref); + auto _asset_a_refs = _fbb.CreateVectorOfNativeStructs>(_o->asset_a_refs); + return Flat::Bigfoot::CreateAssetB( + _fbb, + &_asset_a_ref, + _asset_a_refs); +} + +inline const ::flatbuffers::TypeTable *AssetBTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 }, + { ::flatbuffers::ET_SEQUENCE, 1, 0 } + }; + static const ::flatbuffers::TypeFunction type_refs[] = { + Flat::Bigfoot::Reference::AssetAHardRefTypeTable + }; + static const char * const names[] = { + "asset_a_ref", + "asset_a_refs" + }; + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_TABLE, 2, type_codes, type_refs, nullptr, nullptr, names + }; + return &tt; +} + +namespace Reference { + +inline const ::flatbuffers::TypeTable *AssetBHardRefTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 } + }; + static const ::flatbuffers::TypeFunction type_refs[] = { + Flat::Bigfoot::Reference::HardRefTypeTable + }; + static const int64_t values[] = { 0, 16 }; + static const char * const names[] = { + "hard_ref" + }; + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 1, type_codes, type_refs, nullptr, values, names + }; + return &tt; +} + +inline const ::flatbuffers::TypeTable *AssetBSoftRefTypeTable() { + static const ::flatbuffers::TypeCode type_codes[] = { + { ::flatbuffers::ET_SEQUENCE, 0, 0 } + }; + static const ::flatbuffers::TypeFunction type_refs[] = { + Flat::Bigfoot::Reference::SoftRefTypeTable + }; + static const int64_t values[] = { 0, 16 }; + static const char * const names[] = { + "soft_ref" + }; + static const ::flatbuffers::TypeTable tt = { + ::flatbuffers::ST_STRUCT, 1, type_codes, type_refs, nullptr, values, names + }; + return &tt; +} + +} // namespace Reference + +inline const Flat::Bigfoot::AssetB *GetAssetB(const void *buf) { + return ::flatbuffers::GetRoot(buf); +} + +inline const Flat::Bigfoot::AssetB *GetSizePrefixedAssetB(const void *buf) { + return ::flatbuffers::GetSizePrefixedRoot(buf); +} + +template +inline bool VerifyAssetBBuffer( + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifyBuffer(nullptr); +} + +template +inline bool VerifySizePrefixedAssetBBuffer( + ::flatbuffers::VerifierTemplate &verifier) { + return verifier.template VerifySizePrefixedBuffer(nullptr); +} + +inline const char *AssetBExtension() { + return "bfbs"; +} + +inline void FinishAssetBBuffer( + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { + fbb.Finish(root); +} + +inline void FinishSizePrefixedAssetBBuffer( + ::flatbuffers::FlatBufferBuilder &fbb, + ::flatbuffers::Offset root) { + fbb.FinishSizePrefixed(root); +} + +inline eastl::unique_ptr UnPackAssetB( + const void *buf, + const ::flatbuffers::resolver_function_t *res = nullptr) { + return eastl::unique_ptr(GetAssetB(buf)->UnPack(res)); +} + +inline eastl::unique_ptr UnPackSizePrefixedAssetB( + const void *buf, + const ::flatbuffers::resolver_function_t *res = nullptr) { + return eastl::unique_ptr(GetSizePrefixedAssetB(buf)->UnPack(res)); +} + +} // namespace Bigfoot +} // namespace Flat + +#endif // FLATBUFFERS_GENERATED_ASSETB_FLAT_BIGFOOT_REFERENCE_H_