diff --git a/filament/src/details/Material.h b/filament/src/details/Material.h index b62dd95f06..b75ecfefee 100644 --- a/filament/src/details/Material.h +++ b/filament/src/details/Material.h @@ -151,8 +151,6 @@ public: static void onEditCallback(void* userdata, const utils::CString& name, const void* packageData, size_t packageSize); - using VariantList = utils::bitset; - /** * Returns a list of "active" variants. * diff --git a/libs/filabridge/include/private/filament/Variant.h b/libs/filabridge/include/private/filament/Variant.h index c965fd9735..ba7aca115f 100644 --- a/libs/filabridge/include/private/filament/Variant.h +++ b/libs/filabridge/include/private/filament/Variant.h @@ -23,9 +23,10 @@ #include namespace filament { - static constexpr size_t VARIANT_COUNT = 128; + static constexpr size_t VARIANT_BITS = 7; + static constexpr size_t VARIANT_COUNT = 1 << VARIANT_BITS; - using VariantList = utils::bitset; + using VariantList = utils::bitset; // IMPORTANT: update filterVariant() when adding more variants // Also be sure to update formatVariantString inside CommonWriter.cpp diff --git a/libs/utils/include/utils/bitset.h b/libs/utils/include/utils/bitset.h index 221f7a8cd7..45112cec93 100644 --- a/libs/utils/include/utils/bitset.h +++ b/libs/utils/include/utils/bitset.h @@ -19,6 +19,7 @@ #include #include +#include #include #include @@ -59,10 +60,12 @@ public: } T getBitsAt(size_t n) const noexcept { + assert_invariant(n