61 lines
1.6 KiB
C++
61 lines
1.6 KiB
C++
#pragma once
|
|
|
|
#include <optional>
|
|
#include <filesystem>
|
|
#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<dynamic_texture_loader, ztu::u8>;
|
|
|
|
explicit dynamic_texture_loader(components::texture::flags enabled_components);
|
|
|
|
[[nodiscard]] std::optional<loader_id_type> 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<loader_id_type> m_loader_id_lookup{};
|
|
components::texture::flags m_enabled_components{ components::texture::flags::none };
|
|
};
|