From c8d3264da2daf844c06fc101e5faf32ce3b07b6a Mon Sep 17 00:00:00 2001 From: soywiz Date: Tue, 10 Dec 2019 11:48:33 +0100 Subject: [PATCH] UI - Let's use debug font for faster startup (instead of generating the font at runtime) --- sample-ui/src/commonMain/kotlin/SampleUi.kt | 11 +++++++---- .../kotlin/com/soywiz/korge/newui/UIButton.kt | 2 +- .../kotlin/com/soywiz/korge/newui/UICheckBox.kt | 4 ++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/sample-ui/src/commonMain/kotlin/SampleUi.kt b/sample-ui/src/commonMain/kotlin/SampleUi.kt index 4875513..b2d76e5 100644 --- a/sample-ui/src/commonMain/kotlin/SampleUi.kt +++ b/sample-ui/src/commonMain/kotlin/SampleUi.kt @@ -1,7 +1,9 @@ import com.soywiz.klock.* import com.soywiz.korge.* +import com.soywiz.korge.html.* import com.soywiz.korge.input.* import com.soywiz.korge.newui.* +import com.soywiz.korge.scene.* import com.soywiz.korge.tween.* import com.soywiz.korge.view.* import com.soywiz.korgw.* @@ -11,7 +13,7 @@ import com.soywiz.korio.async.* import com.soywiz.korma.interpolation.* suspend fun main() = Korge(quality = GameWindow.Quality.PERFORMANCE, title = "UI") { - uiSkin(OtherUISkin) { + uiSkin(OtherUISkin()) { uiButton(256.0, 32.0) { label = "Disabled Button" position(128, 128) @@ -77,11 +79,12 @@ private val OTHER_UI_SKIN_IMG by lazy { DEFAULT_UI_SKIN_IMG.withColorTransform(otherColorTransform) } -val OtherUISkin by lazy { - DefaultUISkin.copy( +suspend fun OtherUISkin(): UISkin { + return DefaultUISkin.copy( normal = OTHER_UI_SKIN_IMG.sliceWithSize(0, 0, 64, 64), hover = OTHER_UI_SKIN_IMG.sliceWithSize(64, 0, 64, 64), down = OTHER_UI_SKIN_IMG.sliceWithSize(127, 0, 64, 64), - backColor = DefaultUISkin.backColor.transform(otherColorTransform) + backColor = DefaultUISkin.backColor.transform(otherColorTransform), + font = Html.FontFace.Bitmap(getDebugBmpFontOnce()) ) } diff --git a/sample-ui/src/commonMain/kotlin/com/soywiz/korge/newui/UIButton.kt b/sample-ui/src/commonMain/kotlin/com/soywiz/korge/newui/UIButton.kt index 3162403..627dde2 100644 --- a/sample-ui/src/commonMain/kotlin/com/soywiz/korge/newui/UIButton.kt +++ b/sample-ui/src/commonMain/kotlin/com/soywiz/korge/newui/UIButton.kt @@ -84,7 +84,7 @@ open class UIButton( rect.tex = skin.normal } } - text.format = Html.Format(align = Html.Alignment.MIDDLE_CENTER) + text.format = Html.Format(face = skin.font, align = Html.Alignment.MIDDLE_CENTER, color = Colors.WHITE) text.setTextBounds(Rectangle(0, 0, width, height)) text.setText(label) textShadow.format = Html.Format(face = skin.font, align = Html.Alignment.MIDDLE_CENTER, color = Colors.BLACK.withA(64)) diff --git a/sample-ui/src/commonMain/kotlin/com/soywiz/korge/newui/UICheckBox.kt b/sample-ui/src/commonMain/kotlin/com/soywiz/korge/newui/UICheckBox.kt index a21dcee..c403a11 100644 --- a/sample-ui/src/commonMain/kotlin/com/soywiz/korge/newui/UICheckBox.kt +++ b/sample-ui/src/commonMain/kotlin/com/soywiz/korge/newui/UICheckBox.kt @@ -21,7 +21,7 @@ open class UICheckBox( width: Double = 96.0, height: Double = 32.0, label: String = "CheckBox", - skin: UISkin = DefaultUISkin + private val skin: UISkin = DefaultUISkin ) : UIView(width, height) { var checked by uiObservable(checked) { onPropsUpdate() } var label by uiObservable(label) { onPropsUpdate() } @@ -52,7 +52,7 @@ open class UICheckBox( } } text.position(height + 8.0, 0) - .also { it.format = Html.Format(align = Html.Alignment.MIDDLE_LEFT) } + .also { it.format = Html.Format(face = skin.font, align = Html.Alignment.MIDDLE_LEFT) } .also { it.setTextBounds(Rectangle(0, 0, width - height, height)) } .setText(label) }