Fix color conversion to ensure proper type casting in SNES color functions

- Updated ConvertRgbToSnes function to use static_cast for color channel values, ensuring correct conversion to uint8_t.
- Modified SnesColor constructor to apply static_cast for color channel values during initialization, improving accuracy in color representation.
This commit is contained in:
scawful
2025-05-15 22:59:17 -04:00
parent 47ab1bdfd5
commit ab729fc198
2 changed files with 6 additions and 6 deletions

View File

@@ -39,9 +39,9 @@ uint16_t ConvertRgbToSnes(const snes_color& color) {
uint16_t ConvertRgbToSnes(const ImVec4& color) {
snes_color new_color;
new_color.red = color.x * kColorByteMax;
new_color.green = color.y * kColorByteMax;
new_color.blue = color.z * kColorByteMax;
new_color.red = static_cast<uint8_t>(color.x) * kColorByteMax;
new_color.green = static_cast<uint8_t>(color.y) * kColorByteMax;
new_color.blue = static_cast<uint8_t>(color.z) * kColorByteMax;
return ConvertRgbToSnes(new_color);
}

View File

@@ -42,9 +42,9 @@ class SnesColor {
constexpr explicit SnesColor(const ImVec4 val) : rgb_(val) {
snes_color color;
color.red = val.x / kColorByteMax;
color.green = val.y / kColorByteMax;
color.blue = val.z / kColorByteMax;
color.red = static_cast<uint8_t>(val.x) / kColorByteMax;
color.green = static_cast<uint8_t>(val.y) / kColorByteMax;
color.blue = static_cast<uint8_t>(val.z) / kColorByteMax;
snes_ = ConvertRgbToSnes(color);
}