Skip to content

Commit 6bad027

Browse files
committed
example: Opt FPSMonitor
1 parent a81392e commit 6bad027

File tree

4 files changed

+20
-7
lines changed

4 files changed

+20
-7
lines changed

composeApp/src/commonMain/kotlin/UITest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,7 +82,7 @@ fun UITest(
8282
}
8383
}
8484

85-
val showFPSMonitor = remember { mutableStateOf(false) }
85+
val showFPSMonitor = remember { mutableStateOf(true) }
8686
val showTopAppBar = remember { mutableStateOf(true) }
8787
val showBottomBar = remember { mutableStateOf(true) }
8888
val showFloatingActionButton = remember { mutableStateOf(true) }
@@ -165,7 +165,7 @@ fun UITest(
165165
FPSMonitor(
166166
modifier = Modifier
167167
.statusBarsPadding()
168-
.padding(horizontal = 28.dp)
168+
.padding(start = 28.dp, top = 18.dp)
169169
)
170170
}
171171
}

composeApp/src/commonMain/kotlin/utils/FPSMonitor.kt

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,26 @@ import top.yukonga.miuix.kmp.basic.Text
1919
@Composable
2020
fun FPSMonitor(modifier: Modifier = Modifier) {
2121
var fps by remember { mutableStateOf(0) }
22+
var maxFps by remember { mutableStateOf(0) }
2223
var lastFrameTime by remember { mutableStateOf(0L) }
2324
var frameCount by remember { mutableStateOf(0) }
2425
var totalFrameTime by remember { mutableStateOf(0L) }
2526

27+
if (fps > maxFps) {
28+
maxFps = fps
29+
}
30+
31+
val color = when {
32+
fps >= maxFps - 2 -> Color.Green
33+
fps >= maxFps - 6 -> Color.Blue
34+
fps >= maxFps - 15 -> Color(0xFFFFD700)
35+
else -> Color.Red
36+
}
37+
2638
Text(
2739
text = "FPS: $fps",
2840
modifier = modifier,
29-
color = if (fps < 57) Color.Red else Color.Green
41+
color = color
3042
)
3143

3244
LaunchedEffect(Unit) {

miuix/src/commonMain/kotlin/top/yukonga/miuix/kmp/extra/SuperDialog.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,8 +72,8 @@ fun SuperDialog(
7272
) {
7373
val density = LocalDensity.current
7474
val getWindowSize by rememberUpdatedState(getWindowSize())
75-
val windowWidth = getWindowSize.width.dp / density.density
76-
val windowHeight = getWindowSize.height.dp / density.density
75+
val windowWidth by rememberUpdatedState(getWindowSize.width.dp / density.density)
76+
val windowHeight by rememberUpdatedState(getWindowSize.height.dp / density.density)
7777
val paddingModifier = remember(outsideMargin) { Modifier.padding(horizontal = outsideMargin.width).padding(bottom = outsideMargin.height) }
7878
val roundedCorner by rememberUpdatedState(getRoundedCorner())
7979
val bottomCornerRadius by remember { derivedStateOf { if (roundedCorner != 0.dp) roundedCorner - outsideMargin.width else 32.dp } }

miuix/src/commonMain/kotlin/top/yukonga/miuix/kmp/extra/SuperDropdown.kt

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,9 @@ fun SuperDropdown(
117117
val textMeasurer = rememberTextMeasurer()
118118
val textStyle = remember { TextStyle(fontWeight = FontWeight.Medium, fontSize = 17.sp) }
119119
val textWidthDp = remember(items) { items.maxOfOrNull { with(density) { textMeasurer.measure(text = it, style = textStyle).size.width.toDp() } } }
120-
val windowWeightPx by rememberUpdatedState(getWindowSize().width)
121-
val windowHeightPx by rememberUpdatedState(getWindowSize().height)
120+
val getWindowSize = rememberUpdatedState(getWindowSize())
121+
val windowWeightPx by rememberUpdatedState(getWindowSize.value.width)
122+
val windowHeightPx by rememberUpdatedState(getWindowSize.value.height)
122123
var dropdownOffsetPx by remember { mutableStateOf(0) }
123124
var dropdownHeightPx by remember { mutableStateOf(0) }
124125
var componentHeightPx by remember { mutableStateOf(0) }

0 commit comments

Comments
 (0)