Skip to content

Commit bb14ce2

Browse files
committed
library: Fix a crash with web targets
1 parent 30c74f2 commit bb14ce2

File tree

2 files changed

+17
-27
lines changed

2 files changed

+17
-27
lines changed

iosApp/iosApp/Info.plist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<key>CFBundleShortVersionString</key>
1818
<string>1.0.4</string>
1919
<key>CFBundleVersion</key>
20-
<string>480</string>
20+
<string>482</string>
2121
<key>LSRequiresIPhoneOS</key>
2222
<true/>
2323
<key>CADisableMinimumFrameDurationOnPhone</key>

miuix/src/commonMain/kotlin/top/yukonga/miuix/kmp/utils/ColorUtils.kt

Lines changed: 16 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33

44
package top.yukonga.miuix.kmp.utils
55

6+
import androidx.annotation.IntRange
7+
import androidx.annotation.Size
8+
69
object ColorUtils {
710
/**
811
* Converts RGB color values to HSV color space.
@@ -16,17 +19,11 @@ object ColorUtils {
1619
* - value: 0.0-1.0
1720
*/
1821
fun rgbToHsv(
19-
r: Int,
20-
g: Int,
21-
b: Int,
22-
hsv: FloatArray,
22+
@IntRange(from = 0, to = 255) r: Int,
23+
@IntRange(from = 0, to = 255) g: Int,
24+
@IntRange(from = 0, to = 255) b: Int,
25+
@Size(3) hsv: FloatArray,
2326
) {
24-
require(hsv.size >= 3) { "HSV array must have at least 3 elements" }
25-
require(r in 0..255) { "Red component must be in range 0-255, got $r" }
26-
require(g in 0..255) { "Green component must be in range 0-255, got $g" }
27-
require(b in 0..255) { "Blue component must be in range 0-255, got $b" }
28-
29-
// Normalize RGB values to 0.0-1.0 range
3027
val rf = r * INV_255
3128
val gf = g * INV_255
3229
val bf = b * INV_255
@@ -35,24 +32,17 @@ object ColorUtils {
3532
val min = minOf(rf, gf, bf)
3633
val delta = max - min
3734

38-
// Value (brightness)
39-
hsv[2] = max
40-
41-
// Saturation
42-
hsv[1] = if (max > 0f) delta / max else 0f
43-
44-
// Hue
45-
hsv[0] = when {
35+
val hue = when {
4636
delta == 0f -> 0f
47-
max == rf -> {
48-
val hue = (gf - bf) / delta * 60f
49-
if (hue < 0f) hue + 360f else hue
50-
}
51-
52-
max == gf -> (bf - rf) / delta * 60f + 120f
53-
else -> (rf - gf) / delta * 60f + 240f
37+
max == rf -> (60f * ((gf - bf) / delta) + 360f) % 360f
38+
max == gf -> (60f * ((bf - rf) / delta) + 120f) % 360f
39+
else -> (60f * ((rf - gf) / delta) + 240f) % 360f
5440
}
41+
42+
hsv[0] = hue
43+
hsv[1] = if (max > 0f) delta / max else 0f
44+
hsv[2] = max
5545
}
5646

5747
private const val INV_255 = 1f / 255f
58-
}
48+
}

0 commit comments

Comments
 (0)