diff --git a/openVulkanoCpp/IO/Files/Pfm.hpp b/openVulkanoCpp/IO/Files/Pfm.hpp index 301da76..42dbb59 100644 --- a/openVulkanoCpp/IO/Files/Pfm.hpp +++ b/openVulkanoCpp/IO/Files/Pfm.hpp @@ -107,7 +107,7 @@ namespace openVulkanoCpp } image = std::make_unique(size); - inStream.read(reinterpret_cast(image.get()), size); + inStream.read(reinterpret_cast(image.get()), size * sizeof(float)); } static PfmImage ReadImage(std::istream& inStream) diff --git a/openVulkanoCpp/IO/Files/Pnm.hpp b/openVulkanoCpp/IO/Files/Pnm.hpp index 991ab64..e3df002 100644 --- a/openVulkanoCpp/IO/Files/Pnm.hpp +++ b/openVulkanoCpp/IO/Files/Pnm.hpp @@ -63,10 +63,15 @@ namespace openVulkanoCpp return value; } + [[nodiscard]] constexpr char GetMagicNumberChar() const + { + return '0' + static_cast(GetMagicNumberValue()); + } + friend std::ostream& operator<< (std::ostream& outStream, const PnmHeader& pnmHeader) { outStream << 'P'; - outStream << ('0' + pnmHeader.GetMagicNumberValue()); + outStream << pnmHeader.GetMagicNumberChar(); outStream << '\n'; outStream << pnmHeader.width << ' ' << pnmHeader.height << '\n'; outStream << pnmHeader.maxValue << '\n'; @@ -81,7 +86,7 @@ namespace openVulkanoCpp uint8_t val = marker[1] - '0'; if (val > 6) throw std::runtime_error("Malformed PNM header!"); pnmHeader.ascii = val < 4; - pnmHeader.color = static_cast(val & 0x11); + pnmHeader.color = static_cast(val - 3); inStream >> pnmHeader.width >> pnmHeader.height; inStream >> pnmHeader.maxValue; inStream.get();