Skip to content

Commit

Permalink
example: Opt FPSMonitor
Browse files Browse the repository at this point in the history
  • Loading branch information
YuKongA committed Oct 11, 2024
1 parent a81392e commit 6bad027
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 7 deletions.
4 changes: 2 additions & 2 deletions composeApp/src/commonMain/kotlin/UITest.kt
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ fun UITest(
}
}

val showFPSMonitor = remember { mutableStateOf(false) }
val showFPSMonitor = remember { mutableStateOf(true) }
val showTopAppBar = remember { mutableStateOf(true) }
val showBottomBar = remember { mutableStateOf(true) }
val showFloatingActionButton = remember { mutableStateOf(true) }
Expand Down Expand Up @@ -165,7 +165,7 @@ fun UITest(
FPSMonitor(
modifier = Modifier
.statusBarsPadding()
.padding(horizontal = 28.dp)
.padding(start = 28.dp, top = 18.dp)
)
}
}
Expand Down
14 changes: 13 additions & 1 deletion composeApp/src/commonMain/kotlin/utils/FPSMonitor.kt
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,26 @@ import top.yukonga.miuix.kmp.basic.Text
@Composable
fun FPSMonitor(modifier: Modifier = Modifier) {
var fps by remember { mutableStateOf(0) }
var maxFps by remember { mutableStateOf(0) }
var lastFrameTime by remember { mutableStateOf(0L) }
var frameCount by remember { mutableStateOf(0) }
var totalFrameTime by remember { mutableStateOf(0L) }

if (fps > maxFps) {
maxFps = fps
}

val color = when {
fps >= maxFps - 2 -> Color.Green
fps >= maxFps - 6 -> Color.Blue
fps >= maxFps - 15 -> Color(0xFFFFD700)
else -> Color.Red
}

Text(
text = "FPS: $fps",
modifier = modifier,
color = if (fps < 57) Color.Red else Color.Green
color = color
)

LaunchedEffect(Unit) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -72,8 +72,8 @@ fun SuperDialog(
) {
val density = LocalDensity.current
val getWindowSize by rememberUpdatedState(getWindowSize())
val windowWidth = getWindowSize.width.dp / density.density
val windowHeight = getWindowSize.height.dp / density.density
val windowWidth by rememberUpdatedState(getWindowSize.width.dp / density.density)
val windowHeight by rememberUpdatedState(getWindowSize.height.dp / density.density)
val paddingModifier = remember(outsideMargin) { Modifier.padding(horizontal = outsideMargin.width).padding(bottom = outsideMargin.height) }
val roundedCorner by rememberUpdatedState(getRoundedCorner())
val bottomCornerRadius by remember { derivedStateOf { if (roundedCorner != 0.dp) roundedCorner - outsideMargin.width else 32.dp } }
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -117,8 +117,9 @@ fun SuperDropdown(
val textMeasurer = rememberTextMeasurer()
val textStyle = remember { TextStyle(fontWeight = FontWeight.Medium, fontSize = 17.sp) }
val textWidthDp = remember(items) { items.maxOfOrNull { with(density) { textMeasurer.measure(text = it, style = textStyle).size.width.toDp() } } }
val windowWeightPx by rememberUpdatedState(getWindowSize().width)
val windowHeightPx by rememberUpdatedState(getWindowSize().height)
val getWindowSize = rememberUpdatedState(getWindowSize())
val windowWeightPx by rememberUpdatedState(getWindowSize.value.width)
val windowHeightPx by rememberUpdatedState(getWindowSize.value.height)
var dropdownOffsetPx by remember { mutableStateOf(0) }
var dropdownHeightPx by remember { mutableStateOf(0) }
var componentHeightPx by remember { mutableStateOf(0) }
Expand Down

0 comments on commit 6bad027

Please sign in to comment.