25 const std::shared_ptr<const fml::Mapping>& mapping,
28 auto multi_archive = std::make_shared<MultiArchShaderArchive>(mapping);
29 if (multi_archive->IsValid()) {
30 return multi_archive->GetShaderArchive(
backend);
36 if (single_archive->IsValid()) {
37 return single_archive;
44 const std::shared_ptr<const fml::Mapping>& mapping) {
49 if (!fb::MultiArchShaderArchiveBufferHasIdentifier(mapping->GetMapping())) {
53 const auto* multi_arch = fb::GetMultiArchShaderArchive(mapping->GetMapping());
59 if (
auto archives = multi_arch->items()) {
60 for (
auto i = archives->begin(),
end = archives->end(); i !=
end; i++) {
64 std::make_shared<fml::NonOwnedMapping>(i->mapping()->Data(),
66 [mapping](
auto,
auto) {