From 85584cfb5bdff021fbf86e7b3009080b9dad1dc8 Mon Sep 17 00:00:00 2001 From: Ian Gulliver Date: Tue, 8 Aug 2017 22:52:29 -0700 Subject: [PATCH] Fix cast resulting in large color values --- piraw.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/piraw.h b/piraw.h index 937897a..630a924 100644 --- a/piraw.h +++ b/piraw.h @@ -99,12 +99,12 @@ constexpr typename PiRaw::Chunk PiRaw::GetChunk(co // Function is bit depth & layout specific static_assert(D == 10); - auto start = y * GetRowBytes() + x_chunk * GetChunkBytes(); - auto high0 = static_cast(raw.at(start + 0)); - auto high1 = static_cast(raw.at(start + 1)); - auto high2 = static_cast(raw.at(start + 2)); - auto high3 = static_cast(raw.at(start + 3)); - auto packed_low = static_cast(raw.at(start + 4)); + uint32_t start = y * GetRowBytes() + x_chunk * GetChunkBytes(); + uint32_t high0 = static_cast(raw.at(start + 0)); + uint32_t high1 = static_cast(raw.at(start + 1)); + uint32_t high2 = static_cast(raw.at(start + 2)); + uint32_t high3 = static_cast(raw.at(start + 3)); + uint32_t packed_low = static_cast(raw.at(start + 4)); Chunk ret; ret.at(0) = ((high0 << 2) | ((packed_low >> 6) & 0b11)) << 6;