#pragma once #include "assets/prefetch_queue.hpp" #include "assets/components/material_components.hpp" #include "assets/dynamic_read_buffers/dynamic_material_library_buffer.hpp" #include "assets/dynamic_data_stores/dynamic_material_library_store.hpp" #include "assets/prefetch_lookups/material_library_prefetch_lookup.hpp" #include "generic/base_dynamic_loader.hpp" #include "assets/data_loaders/mtl_loader.hpp" #include "util/string_list.hpp" class dynamic_material_library_loader : public base_dynamic_loader< components::material::flags, mtl_loader > { public: [[nodiscard]] std::error_code prefetch( loader_id_type loader_id, const ztu::string_list& directories, prefetch_queue& queue ); [[nodiscard]] std::error_code load( loader_id_type loader_id, const ztu::string_list& directories, dynamic_material_library_store& store, dynamic_material_store& material_store, material_library_prefetch_lookup& id_lookup, bool pedantic = false ); private: dynamic_material_library_buffer m_buffer{}; };