#pragma once #include #include #include "util/uix.hpp" #include "util/id_type.hpp" #include "util/string_lookup.hpp" #include "util/result.hpp" #include "assets/components/texture_components.hpp" #include "assets/dynamic_read_buffers/dynamic_texture_buffer.hpp" #include "assets/dynamic_data_stores/dynamic_texture_store.hpp" #include "assets/dynamic_data_loader_ctx.hpp" #include "assets/prefetch_queue.hpp" #include "assets/prefetch_lookups/texture_prefetch_lookup.hpp" #include "util/string_list.hpp" /* * [[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_point_cloud_store& store, point_cloud_prefetch_lookup& id_lookup, bool pedantic = false ); */ class dynamic_texture_loader { public: using loader_id_type = ztu::id_type_for; explicit dynamic_texture_loader(components::texture::flags enabled_components); [[nodiscard]] std::optional find_loader(const std::string_view& name); [[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_texture_store& store, texture_prefetch_lookup& id_lookup, bool pedantic = false ); private: ztu::string_lookup m_loader_id_lookup{}; components::texture::flags m_enabled_components{ components::texture::flags::none }; };