diff --git a/conanfile.py b/conanfile.py index dc841fe..0c9ccfc 100644 --- a/conanfile.py +++ b/conanfile.py @@ -30,7 +30,6 @@ class LightRecipe(ConanFile): def requirements(self): self.requires("entt/3.15.0") - self.requires("stb/cci.20240531") self.requires("lz4/1.10.0") def layout(self): diff --git a/modules/asset_baker/CMakeLists.txt b/modules/asset_baker/CMakeLists.txt index eca7ceb..a3814d1 100644 --- a/modules/asset_baker/CMakeLists.txt +++ b/modules/asset_baker/CMakeLists.txt @@ -5,6 +5,5 @@ add_executable_module( target_link_libraries( asset_baker PRIVATE asset_parser - PRIVATE stb::stb PRIVATE logger ) diff --git a/modules/asset_baker/public/bakers.hpp b/modules/asset_baker/public/bakers.hpp index b3c296b..c16a803 100644 --- a/modules/asset_baker/public/bakers.hpp +++ b/modules/asset_baker/public/bakers.hpp @@ -7,9 +7,6 @@ #include #include -#define STB_IMAGE_IMPLEMENTATION -#include - namespace lt { class Loader @@ -42,78 +39,11 @@ public: = 0; }; - -class StbLoader: public TextureLoader -{ -public: - StbLoader() = default; - - void load(std::filesystem::path path); - - [[nodiscard]] static auto get_supported_extensions() -> std::unordered_set - { - return { ".png" }; - } - - [[nodiscard]] auto get_name() const -> std::string_view override - { - return "StbLoader"; - } - - [[nodiscard]] auto load(std::filesystem::path file_path) const - -> Assets::TextureAsset::PackageData override - { - auto width = int {}; - auto height = int {}; - auto channels = int {}; - - auto *pixels = stbi_load(file_path.string().c_str(), &width, &height, &channels, 4); - if (!pixels) - { - throw std::runtime_error { - std::format("Failed to load image file at: {} using stbi_load", file_path.string()), - }; - } - - const auto metadata = Assets::Asset::Metadata { - .type = Assets::Asset::Type::Texture, - }; - - const auto texture_metadata = Assets::TextureAsset::Metadata { - .format = Assets::TextureAsset::Format::RGBA8, - .num_components = static_cast(channels), - .pixel_size = { - static_cast(width), - static_cast(height), - {}, - }, - }; - - auto pixels_blob = Assets::Blob {}; - pixels_blob.resize(static_cast(width) * height * channels); - - // TODO(Light): figure out if it's possible to directly populate a blob with stbi functions - memcpy(pixels_blob.data(), pixels, pixels_blob.size()); - stbi_image_free(pixels); - - return Assets::TextureAsset::PackageData { - .metadata = metadata, - .texture_metadata = texture_metadata, - .pixels = std::move(pixels_blob), - }; - } -}; - class TextureLoaderFactory { public: static auto create(std::string_view file_extension) -> std::unique_ptr { - if (StbLoader::get_supported_extensions().contains(file_extension)) - { - return std::make_unique(); - } - return {}; } }; diff --git a/tools/cmake/dependencies.cmake b/tools/cmake/dependencies.cmake index 342ba3f..92be1ef 100644 --- a/tools/cmake/dependencies.cmake +++ b/tools/cmake/dependencies.cmake @@ -1,4 +1,2 @@ -find_package(stb REQUIRED) -find_package(yaml-cpp REQUIRED) find_package(EnTT REQUIRED) find_package(lz4 REQUIRED)