32 std::optional<Kakshya::Region> region = std::nullopt);
36 [[nodiscard]]
bool can_read(
const std::string& filepath)
const override;
37 bool open(
const std::string& filepath,
FileReadOptions options = FileReadOptions::ALL)
override;
38 void close()
override;
39 [[nodiscard]]
bool is_open()
const override;
40 [[nodiscard]] std::optional<FileMetadata> get_metadata()
const override;
41 [[nodiscard]] std::vector<FileRegion> get_regions()
const override;
42 std::vector<Kakshya::DataVariant> read_all()
override;
43 std::vector<Kakshya::DataVariant> read_region(
const FileRegion& region)
override;
45 bool load_into_container(std::shared_ptr<Kakshya::SignalSourceContainer> container)
override;
46 [[nodiscard]] std::vector<uint64_t> get_read_position()
const override;
47 bool seek(
const std::vector<uint64_t>&
position)
override;
48 [[nodiscard]] std::vector<std::string> get_supported_extensions()
const override;
49 [[nodiscard]] std::type_index get_data_type()
const override;
50 [[nodiscard]] std::type_index get_container_type()
const override;
51 [[nodiscard]] std::string get_last_error()
const override;
52 [[nodiscard]]
bool supports_streaming()
const override;
53 [[nodiscard]] uint64_t get_preferred_chunk_size()
const override;
54 [[nodiscard]]
size_t get_num_dimensions()
const override;
55 [[nodiscard]] std::vector<uint64_t> get_dimension_sizes()
const override;
63 static std::optional<ImageData> load_from_memory(
const void* data,
size_t size);
72 static std::optional<ImageData> load(
73 const std::string& path,
int desired_channels = 4,
74 std::optional<Kakshya::Region> region = std::nullopt);
83 static std::optional<ImageData> load(
84 const std::filesystem::path& path,
int desired_channels = 4,
85 std::optional<Kakshya::Region> region = std::nullopt);
94 static std::shared_ptr<Core::VKImage> load_texture(
95 const std::string& path,
int desired_channels = 4,
96 std::optional<Kakshya::Region> region = std::nullopt);
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);