diff --git a/include/rendering/vk_texture.hpp b/include/rendering/vk_texture.hpp index fb0e01f1..985f699d 100644 --- a/include/rendering/vk_texture.hpp +++ b/include/rendering/vk_texture.hpp @@ -60,7 +60,7 @@ public: uint32_t getHeight() const { return image_.extent.height; } VkFormat getFormat() const { return image_.format; } uint32_t getMipLevels() const { return mipLevels_; } - bool isValid() const { return image_.image != VK_NULL_HANDLE; } + bool isValid() const { return image_.image != VK_NULL_HANDLE && sampler_ != VK_NULL_HANDLE; } // Write descriptor info for binding VkDescriptorImageInfo descriptorInfo(VkImageLayout layout = diff --git a/tools/asset_extract/extractor.cpp b/tools/asset_extract/extractor.cpp index 81c32ba1..0612c6fa 100644 --- a/tools/asset_extract/extractor.cpp +++ b/tools/asset_extract/extractor.cpp @@ -866,7 +866,7 @@ bool Extractor::run(const Options& opts) { // Merge with existing manifest so partial extractions don't nuke prior entries fs::path manifestPath = fs::path(effectiveOutputDir) / "manifest.json"; if (fs::exists(manifestPath)) { - auto existing = loadManifestEntries(manifestPath); + auto existing = loadManifestEntries(manifestPath.string()); if (!existing.empty()) { // New entries override existing ones with same key for (auto& entry : manifestEntries) { @@ -889,7 +889,7 @@ bool Extractor::run(const Options& opts) { }); // basePath is "." since manifest sits inside the output directory - if (!ManifestWriter::write(manifestPath, ".", manifestEntries)) { + if (!ManifestWriter::write(manifestPath.string(), ".", manifestEntries)) { std::cerr << "Failed to write manifest: " << manifestPath << "\n"; return false; }