From e789c569dbc7870119fcffbee44a2fb11539c350 Mon Sep 17 00:00:00 2001 From: ohyzha Date: Thu, 2 Jan 2025 17:40:15 +0200 Subject: [PATCH] fix image loader bug where rows and cols were misinterpreted --- openVulkanoCpp/Image/ImageLoader.cpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/openVulkanoCpp/Image/ImageLoader.cpp b/openVulkanoCpp/Image/ImageLoader.cpp index 14c51e5..f81b6ef 100644 --- a/openVulkanoCpp/Image/ImageLoader.cpp +++ b/openVulkanoCpp/Image/ImageLoader.cpp @@ -16,9 +16,9 @@ namespace OpenVulkano::Image std::unique_ptr IImageLoader::loadData(const uint8_t* data, int size, int desiredChannels) { Image result; - int rows, cols, channels; + int width, height, channels; stbi_set_flip_vertically_on_load(true); - uint8_t* pixelData = stbi_load_from_memory(data, static_cast(size), &rows, &cols, &channels, desiredChannels); + uint8_t* pixelData = stbi_load_from_memory(data, static_cast(size), &width, &height, &channels, desiredChannels); if (desiredChannels != 0 && channels < desiredChannels) { Logger::INPUT->warn( @@ -38,13 +38,13 @@ namespace OpenVulkano::Image result.dataFormat = OpenVulkano::DataFormat::R8G8B8A8_UNORM; break; } - result.resolution.x = cols; - result.resolution.y = rows; + result.resolution.x = width; + result.resolution.y = height; result.resolution.z = 1; if (channels == 3) { - result.data = OpenVulkano::Array(cols * rows * 4); - for (size_t srcPos = 0, dstPos = 0; srcPos < cols * rows * 3; srcPos += 3, dstPos += 4) + result.data = OpenVulkano::Array(width * height * 4); + for (size_t srcPos = 0, dstPos = 0; srcPos < width * height * 3; srcPos += 3, dstPos += 4) { result.data[dstPos] = pixelData[srcPos]; result.data[dstPos + 1] = pixelData[srcPos + 1]; @@ -54,7 +54,7 @@ namespace OpenVulkano::Image } else { - result.data = OpenVulkano::Array(cols * rows * channels); + result.data = OpenVulkano::Array(width * height * channels); std::memcpy(result.data.Data(), pixelData, result.data.Size()); } stbi_image_free(pixelData);