refactor: applied aaa principle
This commit is contained in:
		
							parent
							
								
									83f27e12c0
								
							
						
					
					
						commit
						2341be0c70
					
				
					 5 changed files with 22 additions and 19 deletions
				
			
		| 
						 | 
					@ -21,16 +21,18 @@ void log(Args &&...args)
 | 
				
			||||||
	std::cout << '\n';
 | 
						std::cout << '\n';
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool convert_image(const std::filesystem::path &input, const std::filesystem::path &output)
 | 
					auto convert_image(const std::filesystem::path &input, const std::filesystem::path &output) -> bool
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	int width, height, channels;
 | 
						auto width = int {};
 | 
				
			||||||
 | 
						auto height = int {};
 | 
				
			||||||
 | 
						auto channels = int {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	stbi_uc *pixels = stbi_load(input.string().c_str(), &width, &height, &channels, 4);
 | 
						auto *pixels = stbi_load(input.string().c_str(), &width, &height, &channels, 4);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (!pixels)
 | 
						if (!pixels)
 | 
				
			||||||
		return false;
 | 
							return false;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Assets::TextureInfo texInfo {
 | 
						auto texture_info = Assets::TextureInfo {
 | 
				
			||||||
		.size       = static_cast<size_t>(width * height * 4),
 | 
							.size       = static_cast<size_t>(width * height * 4),
 | 
				
			||||||
		.format     = Assets::TextureFormat::RGBA8,
 | 
							.format     = Assets::TextureFormat::RGBA8,
 | 
				
			||||||
		.pixel_size = {
 | 
							.pixel_size = {
 | 
				
			||||||
| 
						 | 
					@ -41,7 +43,7 @@ bool convert_image(const std::filesystem::path &input, const std::filesystem::pa
 | 
				
			||||||
		.original_file = input.string(),
 | 
							.original_file = input.string(),
 | 
				
			||||||
	};
 | 
						};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	Assets::AssetFile file = Assets::pack_texture(&texInfo, pixels);
 | 
						auto file = Assets::pack_texture(&texture_info, pixels);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	stbi_image_free(pixels);
 | 
						stbi_image_free(pixels);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -59,7 +61,7 @@ int main(int argc, char *argv[])
 | 
				
			||||||
	    "Argc MUST be 3, 1: execution-path(implicit), 2: input-directory, 3: output-directory"
 | 
						    "Argc MUST be 3, 1: execution-path(implicit), 2: input-directory, 3: output-directory"
 | 
				
			||||||
	);
 | 
						);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (auto &p : std::filesystem::directory_iterator(argv[1]))
 | 
						for (const auto &p : std::filesystem::directory_iterator(argv[1]))
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		if (p.path().extension() == ".png")
 | 
							if (p.path().extension() == ".png")
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,10 +1,11 @@
 | 
				
			||||||
#pragma once
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <array>
 | 
				
			||||||
#include <asset_parser/parser.hpp>
 | 
					#include <asset_parser/parser.hpp>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Assets {
 | 
					namespace Assets {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
enum class TextureFormat
 | 
					enum class TextureFormat : uint8_t
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	None = 0,
 | 
						None = 0,
 | 
				
			||||||
	RGBA8,
 | 
						RGBA8,
 | 
				
			||||||
| 
						 | 
					@ -15,11 +16,11 @@ struct TextureInfo
 | 
				
			||||||
	size_t size;
 | 
						size_t size;
 | 
				
			||||||
	CompressionMode compression_mode;
 | 
						CompressionMode compression_mode;
 | 
				
			||||||
	TextureFormat format;
 | 
						TextureFormat format;
 | 
				
			||||||
	uint32_t pixel_size[3];
 | 
						std::array<uint32_t, 3> pixel_size;
 | 
				
			||||||
	std::string original_file;
 | 
						std::string original_file;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TextureInfo read_texture_info(AssetFile *file);
 | 
					auto read_texture_info(AssetFile *file) -> TextureInfo;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void unpack_texture(
 | 
					void unpack_texture(
 | 
				
			||||||
    TextureInfo *info,
 | 
					    TextureInfo *info,
 | 
				
			||||||
| 
						 | 
					@ -28,6 +29,6 @@ void unpack_texture(
 | 
				
			||||||
    void *destination
 | 
					    void *destination
 | 
				
			||||||
);
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
AssetFile pack_texture(TextureInfo *info, void *pixel_data);
 | 
					auto pack_texture(TextureInfo *info, void *pixel_data) -> AssetFile;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
} // namespace Assets
 | 
					} // namespace Assets
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
#pragma once
 | 
					#pragma once
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <stdint.h>
 | 
					#include <cstdint>
 | 
				
			||||||
#include <string>
 | 
					#include <string>
 | 
				
			||||||
#include <vector>
 | 
					#include <vector>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -10,7 +10,7 @@ struct AssetFile
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	uint32_t version;
 | 
						uint32_t version;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	enum class Type : uint32_t
 | 
						enum class Type : uint32_t // NOLINT(performance-enum-size)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		Texture,
 | 
							Texture,
 | 
				
			||||||
		Mesh,
 | 
							Mesh,
 | 
				
			||||||
| 
						 | 
					@ -21,14 +21,14 @@ struct AssetFile
 | 
				
			||||||
	std::vector<uint8_t> blob;
 | 
						std::vector<uint8_t> blob;
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
enum class CompressionMode : uint32_t
 | 
					enum class CompressionMode : uint32_t // NOLINT(performance-enum-size)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	None,
 | 
						None,
 | 
				
			||||||
	LZ4,
 | 
						LZ4,
 | 
				
			||||||
	LZ4HC,
 | 
						LZ4HC,
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool save_binary_file(const char* path, const AssetFile& in_file);
 | 
					auto save_binary_file(const char *path, const AssetFile &in_file) -> bool;
 | 
				
			||||||
bool load_binary_file(const char* path, AssetFile& out_file);
 | 
					auto load_binary_file(const char *path, AssetFile &out_file) -> bool;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
} // namespace Assets
 | 
					} // namespace Assets
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -6,7 +6,7 @@ namespace Assets {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
using namespace nlohmann;
 | 
					using namespace nlohmann;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
TextureInfo read_texture_info(AssetFile *file)
 | 
					auto read_texture_info(AssetFile *file) -> TextureInfo
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	json texture_meta_data = json::parse(file->json);
 | 
						json texture_meta_data = json::parse(file->json);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -45,7 +45,7 @@ void unpack_texture(
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
AssetFile pack_texture(TextureInfo *info, void *pixel_data)
 | 
					auto pack_texture(TextureInfo *info, void *pixel_data) -> AssetFile
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	json metadata;
 | 
						json metadata;
 | 
				
			||||||
	metadata["format"] = info->format;
 | 
						metadata["format"] = info->format;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -5,7 +5,7 @@
 | 
				
			||||||
 | 
					
 | 
				
			||||||
namespace Assets {
 | 
					namespace Assets {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool save_binary_file(const char *path, const AssetFile &file)
 | 
					auto save_binary_file(const char *path, const AssetFile &file) -> bool
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	std::ofstream outstream(path, std::ios::binary | std::ios::out);
 | 
						std::ofstream outstream(path, std::ios::binary | std::ios::out);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -27,7 +27,7 @@ bool save_binary_file(const char *path, const AssetFile &file)
 | 
				
			||||||
	return true;
 | 
						return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bool load_binary_file(const char *path, AssetFile &out_file)
 | 
					auto load_binary_file(const char *path, AssetFile &out_file) -> bool
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	std::ifstream instream(path, std::ios::binary);
 | 
						std::ifstream instream(path, std::ios::binary);
 | 
				
			||||||
	instream.seekg(0ull);
 | 
						instream.seekg(0ull);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		
		Reference in a new issue