From 02bac0c85067780ebb203ef6c0967b3aaf7954f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Du=C5=A1an=20Poizl?= Date: Sat, 24 Aug 2024 17:14:02 +0200 Subject: [PATCH] Fix compiler error with float16 --- rawimage.cpp | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/rawimage.cpp b/rawimage.cpp index b051774..664734a 100644 --- a/rawimage.cpp +++ b/rawimage.cpp @@ -411,7 +411,7 @@ void RawImage::convertToThumbnail() if(m_thumbAspect == 0.0f) m_thumbAspect = (float)width() / height(); - std::unique_ptr outptr = std::make_unique(THUMB_SIZE * THUMB_SIZE * 4 * sizeof(qfloat16)); + std::unique_ptr outptr = std::make_unique(THUMB_SIZE * THUMB_SIZE * 4 * sizeof(F16)); F16 *out = reinterpret_cast(outptr.get()); auto loop = [&](F16 *out, auto *in, float scale) @@ -425,15 +425,15 @@ void RawImage::convertToThumbnail() if(m_channels == 1) { - out[idx] = out[idx + 1] = out[idx + 2] = in[idx2] * scale; + out[idx] = out[idx + 1] = out[idx + 2] = (F16)(in[idx2] * scale); } else { - out[idx] = in[idx2] * scale;; - out[idx + 1] = in[idx2 + 1] * scale;; - out[idx + 2] = in[idx2 + 2] * scale;; + out[idx] = (F16)(in[idx2] * scale); + out[idx + 1] = (F16)(in[idx2 + 1] * scale); + out[idx + 2] = (F16)(in[idx2 + 2] * scale); } - out[idx + 3] = 1.0f; + out[idx + 3] = (F16)1.0f; } } }; @@ -502,7 +502,7 @@ void RawImage::convertToGLFormat() uint16_t *src = reinterpret_cast(m_original.get()); for(size_t i = 0; i < s; i++) - dst[i] = src[i] / (float)UINT16_MAX; + dst[i] = (F16)(src[i] / (float)UINT16_MAX); } } @@ -901,19 +901,19 @@ void RawImage::generateLUT() const int LUT_SIZE = 32; const float LUT_SIZEF = LUT_SIZE - 1; - std::vector lut(LUT_SIZE * LUT_SIZE * LUT_SIZE * 4); + std::vector lut(LUT_SIZE * LUT_SIZE * LUT_SIZE * 4); m_lut.resize(lut.size()); for(int z = 0; z < LUT_SIZE; z++) { for(int y = 0; y < LUT_SIZE; y++) { - qfloat16 *line = &lut[(z*LUT_SIZE*LUT_SIZE + y*LUT_SIZE) * 4]; + F16 *line = &lut[(z*LUT_SIZE*LUT_SIZE + y*LUT_SIZE) * 4]; for(int x = 0; x < LUT_SIZE; x++) { - line[x*4 + 0] = x / LUT_SIZEF; - line[x*4 + 1] = y / LUT_SIZEF; - line[x*4 + 2] = z / LUT_SIZEF; - line[x*4 + 3] = 1.0f; + line[x*4 + 0] = (F16)(x / LUT_SIZEF); + line[x*4 + 1] = (F16)(y / LUT_SIZEF); + line[x*4 + 2] = (F16)(z / LUT_SIZEF); + line[x*4 + 3] = (F16)1.0f; } } }