/*
 * This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at https://mozilla.org/MPL/2.0/.
 */

#pragma once

#include "ImageLoader.hpp"

namespace OpenVulkano::Image
{
	class ImageLoaderJpeg : public IImageLoader
	{
	public:
		std::unique_ptr<Image> loadFromFile(const std::string& filePath) override;
		std::unique_ptr<Image> loadFromMemory(const std::vector<uint8_t>& buffer) override;
		Math::Vector2i GetImageDimensions(const std::string& filename) override;
	private:
		std::unique_ptr<Image> loadJpeg(const uint8_t* data, size_t size);
	};
}