Merge pull request #107 from ondys/patch-1

Fixing undefined behavior in basisu_etc.cpp
diff --git a/basisu_etc.cpp b/basisu_etc.cpp
index 244f1d2..2a23afb 100644
--- a/basisu_etc.cpp
+++ b/basisu_etc.cpp
@@ -730,9 +730,9 @@
 			const float avg_delta_g_f = static_cast<float>(delta_sum_g) / 8;
 			const float avg_delta_b_f = static_cast<float>(delta_sum_b) / 8;
 
-			const int br1 = clamp<int>(static_cast<uint32_t>((m_avg_color[0] - avg_delta_r_f) * m_limit / 255.0f + .5f), 0, m_limit);
-			const int bg1 = clamp<int>(static_cast<uint32_t>((m_avg_color[1] - avg_delta_g_f) * m_limit / 255.0f + .5f), 0, m_limit);
-			const int bb1 = clamp<int>(static_cast<uint32_t>((m_avg_color[2] - avg_delta_b_f) * m_limit / 255.0f + .5f), 0, m_limit);
+			const int br1 = clamp<int>(static_cast<int32_t>((m_avg_color[0] - avg_delta_r_f) * m_limit / 255.0f + .5f), 0, m_limit);
+			const int bg1 = clamp<int>(static_cast<int32_t>((m_avg_color[1] - avg_delta_g_f) * m_limit / 255.0f + .5f), 0, m_limit);
+			const int bb1 = clamp<int>(static_cast<int32_t>((m_avg_color[2] - avg_delta_b_f) * m_limit / 255.0f + .5f), 0, m_limit);
 
 #if BASISU_DEBUG_ETC_ENCODER_DEEPER
 			printf("Second refinement trial %u, avg_delta %f %f %f\n", i, avg_delta_r_f, avg_delta_g_f, avg_delta_b_f);