43 [[nodiscard]]
bool can_read(
const std::string& filepath)
const override;
44 bool open(
const std::string& filepath,
FileReadOptions options = FileReadOptions::ALL)
override;
45 void close()
override;
46 [[nodiscard]]
bool is_open()
const override;
47 [[nodiscard]] std::optional<FileMetadata> get_metadata()
const override;
48 [[nodiscard]] std::vector<FileRegion> get_regions()
const override;
49 std::vector<Kakshya::DataVariant> read_all()
override;
50 std::vector<Kakshya::DataVariant> read_region(
const FileRegion& region)
override;
52 bool load_into_container(std::shared_ptr<Kakshya::SignalSourceContainer> container)
override;
53 [[nodiscard]] std::vector<uint64_t> get_read_position()
const override;
54 bool seek(
const std::vector<uint64_t>& position)
override;
55 [[nodiscard]] std::vector<std::string> get_supported_extensions()
const override;
56 [[nodiscard]] std::type_index get_data_type()
const override;
57 [[nodiscard]] std::type_index get_container_type()
const override;
58 [[nodiscard]] std::string get_last_error()
const override;
59 [[nodiscard]]
bool supports_streaming()
const override;
60 [[nodiscard]] uint64_t get_preferred_chunk_size()
const override;
61 [[nodiscard]]
size_t get_num_dimensions()
const override;
62 [[nodiscard]] std::vector<uint64_t> get_dimension_sizes()
const override;
70 static std::optional<ImageData> load_from_memory(
const void* data,
size_t size);
78 static std::optional<ImageData> load(
79 const std::string& path,
int desired_channels = 4);
87 static std::optional<ImageData> load(
88 const std::filesystem::path& path,
int desired_channels = 4);
95 static std::shared_ptr<Core::VKImage> load_texture(
96 const std::string& path);
102 [[nodiscard]] std::optional<ImageData> get_image_data()
const;
113 std::shared_ptr<Buffers::TextureBuffer> create_texture_buffer();
120 bool load_into_buffer(
const std::shared_ptr<Buffers::VKBuffer>& buffer);