From 24fca8c62ccc385d3c7e9e9e0a8f290948fdb2c0 Mon Sep 17 00:00:00 2001 From: Timo Bryant Date: Fri, 5 Jan 2024 18:01:48 +0100 Subject: [PATCH] korge: add basic interaction --- .../de/itkl/documentViewer/DocumentViewer.kt | 29 -------- apps/documentViewerKorge/deps.kproject.yml | 2 + .../de/itkl/documentViewerKorge/main.kt | 69 +++++++++++++++---- .../src/jvmMain/resources/clear_sans.fnt | 1 + 4 files changed, 57 insertions(+), 44 deletions(-) create mode 100644 apps/documentViewerKorge/deps.kproject.yml create mode 100644 apps/documentViewerKorge/src/jvmMain/resources/clear_sans.fnt diff --git a/apps/documentViewer/src/main/kotlin/de/itkl/documentViewer/DocumentViewer.kt b/apps/documentViewer/src/main/kotlin/de/itkl/documentViewer/DocumentViewer.kt index 9310ed8..c8b171c 100644 --- a/apps/documentViewer/src/main/kotlin/de/itkl/documentViewer/DocumentViewer.kt +++ b/apps/documentViewer/src/main/kotlin/de/itkl/documentViewer/DocumentViewer.kt @@ -164,28 +164,6 @@ fun ZoomedImage( fun loadImageBitmap(file: File): ImageBitmap = file.inputStream().buffered().use(::loadImageBitmap) -data class PointConverter( - val docWidth: Int, - val docHeight: Int, - val canvasWidth: Float, - val canvasHeight: Float -) { - fun convertX(x: Int): Float { - val xf = x.toFloat() - val relXf = docWidth / xf - val scaledXf = canvasWidth * relXf -// println("X: $scaledXf") - return scaledXf - } - fun convertY(y: Int): Float { - val yf = y.toFloat() - val relYf = docHeight / yf - val scaledYf = canvasHeight * relYf -// println("Y: $scaledYf") - return scaledYf - } -} - @OptIn(ExperimentalFoundationApi::class) @Composable fun shapes(zoomableState: ZoomableState) { @@ -215,13 +193,6 @@ fun canvas(zoomableState: ZoomableState, first: OcrPage) { // } ) { - val converter = PointConverter( - docWidth = 2481, - docHeight = 3507, - canvasWidth = this.size.width, - canvasHeight = this.size.height - ) - first.words.forEach { word -> val rect = word.rectangle drawRect( diff --git a/apps/documentViewerKorge/deps.kproject.yml b/apps/documentViewerKorge/deps.kproject.yml new file mode 100644 index 0000000..68944d9 --- /dev/null +++ b/apps/documentViewerKorge/deps.kproject.yml @@ -0,0 +1,2 @@ +dependencies: + - https://github.com/korlibs/korge-box2d/tree/v0.1.2/korge-box2d##b1737ab3985c0bd3e2f002346ff2ac43ca1ebf48 \ No newline at end of file diff --git a/apps/documentViewerKorge/src/jvmMain/kotlin/de/itkl/documentViewerKorge/main.kt b/apps/documentViewerKorge/src/jvmMain/kotlin/de/itkl/documentViewerKorge/main.kt index 4ab2eb4..a8012e6 100644 --- a/apps/documentViewerKorge/src/jvmMain/kotlin/de/itkl/documentViewerKorge/main.kt +++ b/apps/documentViewerKorge/src/jvmMain/kotlin/de/itkl/documentViewerKorge/main.kt @@ -1,37 +1,76 @@ -import korlibs.time.* +import korlibs.event.Key +import korlibs.image.bitmap.context2d import korlibs.korge.* import korlibs.korge.scene.* -import korlibs.korge.tween.* import korlibs.korge.view.* import korlibs.image.color.* +import korlibs.image.font.readBitmapFont import korlibs.image.format.* import korlibs.io.file.std.* +import korlibs.korge.input.* +import korlibs.korge.tween.get +import korlibs.korge.tween.tween +import korlibs.korge.ui.uiButton +import korlibs.korge.ui.uiCheckBox import korlibs.math.geom.* -import korlibs.math.interpolation.* +import korlibs.math.interpolation.Easing +import korlibs.render.platform.DummyOpenglContext.scaleFactor +import kotlin.time.Duration.Companion.seconds suspend fun main() { Korge(windowSize = Size(512, 512), backgroundColor = Colors["#2b2b2b"]) { val sceneContainer = sceneContainer() - sceneContainer.changeTo({ MyScene() }) + sceneContainer.changeTo { ViewDocument() } } } -class MyScene : Scene() { +class ViewDocument : Scene() { override suspend fun SContainer.sceneMain() { - val minDegrees = (-18).degrees - val maxDegrees = (+16).degrees + var scaleFactor = 0.5 + var offset = Point(0.0,0.0) + val moveFactor = 50.0 + scale(scaleFactor) - val image = image(resourcesVfs["kitten_pixelated.png"].readBitmap()) { - rotation = maxDegrees - anchor(.5, .5) - scale(0.8) - position(256, 256) + suspend fun zoom(amount: Double) { + scaleFactor += amount + tween( + this@sceneMain::scale[scaleFactor], + time = 0.1.seconds, + easing = Easing.EASE_IN_OUT + ) } - while (true) { - image.tween(image::rotation[minDegrees], time = 1.seconds, easing = Easing.EASE_IN_OUT) - image.tween(image::rotation[maxDegrees], time = 1.seconds, easing = Easing.EASE_IN_OUT) + suspend fun moveX(amount: Double) { + offset = offset.copy(x = offset.x + amount) + tween( + this@sceneMain::x[offset.x], + time = 0.1.seconds, + easing = Easing.EASE_IN_OUT) + } + suspend fun moveY(amount: Double) { + offset = offset.copy(y = offset.y + amount) + tween( + this@sceneMain::y[offset.y], + time = 0.1.seconds, + easing = Easing.EASE_IN_OUT) + } + + keys { + down { key -> + when (key.key) { + Key.EQUAL -> zoom(0.05) + Key.MINUS -> zoom(-0.05) + Key.UP -> moveY(moveFactor) + Key.DOWN -> moveY(-moveFactor) + Key.RIGHT -> moveX(moveFactor) + Key.LEFT -> moveX(-moveFactor) + else -> {} + } + } + + val imageFile = localCurrentDirVfs["assets/xs-reg/00001.jpg"].readBitmap() + image(imageFile) } } } \ No newline at end of file diff --git a/apps/documentViewerKorge/src/jvmMain/resources/clear_sans.fnt b/apps/documentViewerKorge/src/jvmMain/resources/clear_sans.fnt new file mode 100644 index 0000000..56039ee --- /dev/null +++ b/apps/documentViewerKorge/src/jvmMain/resources/clear_sans.fnt @@ -0,0 +1 @@ +{"payload":{"allShortcutsEnabled":false,"fileTree":{"src/commonMain/resources":{"items":[{"name":"clear_sans.fnt","path":"src/commonMain/resources/clear_sans.fnt","contentType":"file"},{"name":"clear_sans.png","path":"src/commonMain/resources/clear_sans.png","contentType":"file"},{"name":"korge.png","path":"src/commonMain/resources/korge.png","contentType":"file"},{"name":"restart.png","path":"src/commonMain/resources/restart.png","contentType":"file"},{"name":"undo.png","path":"src/commonMain/resources/undo.png","contentType":"file"}],"totalCount":5},"src/commonMain":{"items":[{"name":"kotlin","path":"src/commonMain/kotlin","contentType":"directory"},{"name":"resources","path":"src/commonMain/resources","contentType":"directory"}],"totalCount":2},"src":{"items":[{"name":"commonMain","path":"src/commonMain","contentType":"directory"},{"name":"commonTest","path":"src/commonTest","contentType":"directory"}],"totalCount":2},"":{"items":[{"name":"gradle","path":"gradle","contentType":"directory"},{"name":"src","path":"src","contentType":"directory"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"README.md","path":"README.md","contentType":"file"},{"name":"build.gradle.kts","path":"build.gradle.kts","contentType":"file"},{"name":"gradle.properties","path":"gradle.properties","contentType":"file"},{"name":"gradlew","path":"gradlew","contentType":"file"},{"name":"gradlew.bat","path":"gradlew.bat","contentType":"file"},{"name":"gradlew_linux","path":"gradlew_linux","contentType":"file"},{"name":"gradlew_win","path":"gradlew_win","contentType":"file"},{"name":"gradlew_wine","path":"gradlew_wine","contentType":"file"},{"name":"settings.gradle","path":"settings.gradle","contentType":"file"},{"name":"testJs.sh","path":"testJs.sh","contentType":"file"}],"totalCount":14}},"fileTreeProcessingTime":13.774688,"foldersToFetch":[],"reducedMotionEnabled":null,"repo":{"id":247419648,"defaultBranch":"master","name":"2048","ownerLogin":"RezMike","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2020-03-15T07:18:14.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/19624167?v=4","public":true,"private":false,"isOrgOwned":false},"symbolsExpanded":false,"treeExpanded":true,"refInfo":{"name":"master","listCacheKey":"v0:1584256696.0","canEdit":false,"refType":"branch","currentOid":"6d19c777fd316530d9ce870e2962e12d20bb77f5"},"path":"src/commonMain/resources/clear_sans.fnt","currentUser":null,"blob":{"rawLines":["info face=\"Clear Sans\" size=64 bold=0 italic=0 charset=\"\" unicode=1 stretchH=100 smooth=1 aa=1 padding=0,0,0,0 spacing=1,1 outline=0","common lineHeight=62 base=48 scaleW=256 scaleH=256 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4","page id=0 file=\"clear_sans.png\"","chars count=95","char id=32 x=100 y=41 width=1 height=1 xoffset=0 yoffset=0 xadvance=12 page=0 chnl=15","char id=33 x=128 y=173 width=7 height=31 xoffset=2 yoffset=17 xadvance=12 page=0 chnl=15","char id=34 x=95 y=230 width=13 height=13 xoffset=4 yoffset=17 xadvance=20 page=0 chnl=15","char id=35 x=67 y=77 width=28 height=31 xoffset=2 yoffset=17 xadvance=32 page=0 chnl=15","char id=36 x=221 y=0 width=21 height=34 xoffset=3 yoffset=17 xadvance=28 page=0 chnl=15","char id=37 x=189 y=39 width=43 height=32 xoffset=1 yoffset=16 xadvance=46 page=0 chnl=15","char id=38 x=124 y=75 width=27 height=31 xoffset=2 yoffset=17 xadvance=31 page=0 chnl=15","char id=39 x=109 y=230 width=5 height=13 xoffset=4 yoffset=17 xadvance=12 page=0 chnl=15","char id=40 x=38 y=0 width=14 height=42 xoffset=2 yoffset=15 xadvance=18 page=0 chnl=15","char id=41 x=53 y=0 width=14 height=42 xoffset=1 yoffset=15 xadvance=18 page=0 chnl=15","char id=42 x=50 y=230 width=18 height=16 xoffset=1 yoffset=15 xadvance=21 page=0 chnl=15","char id=43 x=160 y=171 width=25 height=25 xoffset=3 yoffset=23 xadvance=31 page=0 chnl=15","char id=44 x=115 y=230 width=7 height=12 xoffset=2 yoffset=43 xadvance=12 page=0 chnl=15","char id=45 x=233 y=99 width=15 height=4 xoffset=1 yoffset=35 xadvance=18 page=0 chnl=15","char id=46 x=160 y=222 width=7 height=5 xoffset=2 yoffset=43 xadvance=12 page=0 chnl=15","char id=47 x=122 y=0 width=20 height=40 xoffset=0 yoffset=15 xadvance=22 page=0 chnl=15","char id=48 x=96 y=141 width=23 height=31 xoffset=2 yoffset=17 xadvance=28 page=0 chnl=15","char id=49 x=115 y=173 width=12 height=31 xoffset=6 yoffset=17 xadvance=28 page=0 chnl=15","char id=50 x=167 y=139 width=22 height=31 xoffset=2 yoffset=17 xadvance=26 page=0 chnl=15","char id=51 x=0 y=173 width=21 height=31 xoffset=1 yoffset=17 xadvance=26 page=0 chnl=15","char id=52 x=27 y=109 width=26 height=31 xoffset=0 yoffset=17 xadvance=28 page=0 chnl=15","char id=53 x=144 y=139 width=22 height=31 xoffset=1 yoffset=17 xadvance=26 page=0 chnl=15","char id=54 x=233 y=35 width=22 height=31 xoffset=2 yoffset=17 xadvance=26 page=0 chnl=15","char id=55 x=24 y=141 width=23 height=31 xoffset=2 yoffset=17 xadvance=28 page=0 chnl=15","char id=56 x=48 y=141 width=23 height=31 xoffset=1 yoffset=17 xadvance=26 page=0 chnl=15","char id=57 x=120 y=141 width=23 height=31 xoffset=1 yoffset=17 xadvance=26 page=0 chnl=15","char id=58 x=19 y=230 width=7 height=23 xoffset=2 yoffset=25 xadvance=12 page=0 chnl=15","char id=59 x=152 y=171 width=7 height=30 xoffset=2 yoffset=25 xadvance=12 page=0 chnl=15","char id=60 x=0 y=205 width=26 height=24 xoffset=3 yoffset=24 xadvance=31 page=0 chnl=15","char id=61 x=69 y=230 width=25 height=14 xoffset=3 yoffset=28 xadvance=31 page=0 chnl=15","char id=62 x=27 y=205 width=25 height=24 xoffset=2 yoffset=24 xadvance=31 page=0 chnl=15","char id=63 x=235 y=136 width=20 height=31 xoffset=1 yoffset=17 xadvance=23 page=0 chnl=15","char id=64 x=156 y=0 width=38 height=38 xoffset=2 yoffset=17 xadvance=43 page=0 chnl=15","char id=65 x=96 y=77 width=27 height=31 xoffset=0 yoffset=17 xadvance=28 page=0 chnl=15","char id=66 x=190 y=137 width=22 height=31 xoffset=3 yoffset=17 xadvance=28 page=0 chnl=15","char id=67 x=80 y=109 width=25 height=31 xoffset=2 yoffset=17 xadvance=29 page=0 chnl=15","char id=68 x=233 y=67 width=22 height=31 xoffset=3 yoffset=17 xadvance=28 page=0 chnl=15","char id=69 x=22 y=173 width=20 height=31 xoffset=3 yoffset=17 xadvance=25 page=0 chnl=15","char id=70 x=43 y=173 width=20 height=31 xoffset=3 yoffset=17 xadvance=24 page=0 chnl=15","char id=71 x=179 y=73 width=26 height=31 xoffset=2 yoffset=17 xadvance=31 page=0 chnl=15","char id=72 x=132 y=107 width=24 height=31 xoffset=3 yoffset=17 xadvance=30 page=0 chnl=15","char id=73 x=100 y=173 width=14 height=31 xoffset=1 yoffset=17 xadvance=17 page=0 chnl=15","char id=74 x=84 y=173 width=15 height=31 xoffset=0 yoffset=17 xadvance=19 page=0 chnl=15","char id=75 x=182 y=105 width=24 height=31 xoffset=3 yoffset=17 xadvance=28 page=0 chnl=15","char id=76 x=64 y=173 width=19 height=31 xoffset=3 yoffset=17 xadvance=23 page=0 chnl=15","char id=77 x=38 y=77 width=28 height=31 xoffset=3 yoffset=17 xadvance=35 page=0 chnl=15","char id=78 x=232 y=104 width=23 height=31 xoffset=3 yoffset=17 xadvance=30 page=0 chnl=15","char id=79 x=54 y=109 width=25 height=31 xoffset=2 yoffset=17 xadvance=30 page=0 chnl=15","char id=80 x=213 y=136 width=21 height=31 xoffset=3 yoffset=17 xadvance=26 page=0 chnl=15","char id=81 x=195 y=0 width=25 height=38 xoffset=2 yoffset=17 xadvance=30 page=0 chnl=15","char id=82 x=72 y=141 width=23 height=31 xoffset=3 yoffset=17 xadvance=27 page=0 chnl=15","char id=83 x=157 y=107 width=24 height=31 xoffset=1 yoffset=17 xadvance=27 page=0 chnl=15","char id=84 x=152 y=75 width=26 height=31 xoffset=0 yoffset=17 xadvance=26 page=0 chnl=15","char id=85 x=106 y=109 width=25 height=31 xoffset=3 yoffset=17 xadvance=31 page=0 chnl=15","char id=86 x=206 y=72 width=26 height=31 xoffset=0 yoffset=17 xadvance=27 page=0 chnl=15","char id=87 x=0 y=77 width=37 height=31 xoffset=1 yoffset=17 xadvance=39 page=0 chnl=15","char id=88 x=0 y=109 width=26 height=31 xoffset=0 yoffset=17 xadvance=27 page=0 chnl=15","char id=89 x=207 y=104 width=24 height=31 xoffset=0 yoffset=17 xadvance=25 page=0 chnl=15","char id=90 x=0 y=141 width=23 height=31 xoffset=1 yoffset=17 xadvance=26 page=0 chnl=15","char id=91 x=81 y=0 width=12 height=42 xoffset=3 yoffset=15 xadvance=18 page=0 chnl=15","char id=92 x=100 y=0 width=21 height=40 xoffset=1 yoffset=15 xadvance=22 page=0 chnl=15","char id=93 x=68 y=0 width=12 height=42 xoffset=2 yoffset=15 xadvance=18 page=0 chnl=15","char id=94 x=27 y=230 width=22 height=19 xoffset=2 yoffset=17 xadvance=27 page=0 chnl=15","char id=95 x=168 y=222 width=23 height=4 xoffset=0 yoffset=50 xadvance=23 page=0 chnl=15","char id=96 x=123 y=230 width=10 height=9 xoffset=5 yoffset=14 xadvance=24 page=0 chnl=15","char id=97 x=160 y=197 width=20 height=24 xoffset=1 yoffset=24 xadvance=24 page=0 chnl=15","char id=98 x=89 y=43 width=20 height=33 xoffset=3 yoffset=15 xadvance=26 page=0 chnl=15","char id=99 x=181 y=197 width=19 height=24 xoffset=2 yoffset=24 xadvance=23 page=0 chnl=15","char id=100 x=67 y=43 width=21 height=33 xoffset=2 yoffset=15 xadvance=26 page=0 chnl=15","char id=101 x=97 y=205 width=20 height=24 xoffset=2 yoffset=24 xadvance=24 page=0 chnl=15","char id=102 x=172 y=39 width=16 height=33 xoffset=0 yoffset=15 xadvance=14 page=0 chnl=15","char id=103 x=45 y=43 width=21 height=33 xoffset=2 yoffset=24 xadvance=26 page=0 chnl=15","char id=104 x=131 y=41 width=20 height=33 xoffset=3 yoffset=15 xadvance=26 page=0 chnl=15","char id=105 x=249 y=0 width=6 height=31 xoffset=2 yoffset=17 xadvance=11 page=0 chnl=15","char id=106 x=143 y=0 width=12 height=40 xoffset=-3 yoffset=17 xadvance=12 page=0 chnl=15","char id=107 x=152 y=41 width=19 height=33 xoffset=3 yoffset=15 xadvance=23 page=0 chnl=15","char id=108 x=243 y=0 width=5 height=33 xoffset=3 yoffset=15 xadvance=12 page=0 chnl=15","char id=109 x=186 y=171 width=32 height=24 xoffset=3 yoffset=24 xadvance=38 page=0 chnl=15","char id=110 x=118 y=205 width=20 height=24 xoffset=3 yoffset=24 xadvance=26 page=0 chnl=15","char id=111 x=139 y=204 width=20 height=24 xoffset=2 yoffset=24 xadvance=25 page=0 chnl=15","char id=112 x=110 y=41 width=20 height=33 xoffset=3 yoffset=24 xadvance=26 page=0 chnl=15","char id=113 x=23 y=43 width=21 height=33 xoffset=2 yoffset=24 xadvance=26 page=0 chnl=15","char id=114 x=241 y=193 width=14 height=24 xoffset=3 yoffset=24 xadvance=18 page=0 chnl=15","char id=115 x=0 y=230 width=18 height=24 xoffset=1 yoffset=24 xadvance=22 page=0 chnl=15","char id=116 x=136 y=173 width=15 height=30 xoffset=0 yoffset=18 xadvance=16 page=0 chnl=15","char id=117 x=201 y=196 width=19 height=24 xoffset=3 yoffset=24 xadvance=26 page=0 chnl=15","char id=118 x=53 y=205 width=21 height=24 xoffset=0 yoffset=24 xadvance=22 page=0 chnl=15","char id=119 x=219 y=168 width=31 height=24 xoffset=0 yoffset=24 xadvance=32 page=0 chnl=15","char id=120 x=75 y=205 width=21 height=24 xoffset=0 yoffset=24 xadvance=22 page=0 chnl=15","char id=121 x=0 y=43 width=22 height=33 xoffset=0 yoffset=24 xadvance=23 page=0 chnl=15","char id=122 x=221 y=193 width=19 height=24 xoffset=1 yoffset=24 xadvance=21 page=0 chnl=15","char id=123 x=0 y=0 width=19 height=42 xoffset=1 yoffset=15 xadvance=21 page=0 chnl=15","char id=124 x=94 y=0 width=5 height=42 xoffset=7 yoffset=15 xadvance=19 page=0 chnl=15","char id=125 x=20 y=0 width=17 height=42 xoffset=2 yoffset=15 xadvance=21 page=0 chnl=15","char id=126 x=134 y=230 width=25 height=7 xoffset=3 yoffset=29 xadvance=31 page=0 chnl=15"],"stylingDirectives":[[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[],[]],"csv":null,"csvError":null,"dependabotInfo":{"showConfigurationBanner":false,"configFilePath":null,"networkDependabotPath":"/RezMike/2048/network/updates","dismissConfigurationNoticePath":"/settings/dismiss-notice/dependabot_configuration_notice","configurationNoticeDismissed":null,"repoAlertsPath":"/RezMike/2048/security/dependabot","repoSecurityAndAnalysisPath":"/RezMike/2048/settings/security_analysis","repoOwnerIsOrg":false,"currentUserCanAdminRepo":false},"displayName":"clear_sans.fnt","displayUrl":"https://github.com/RezMike/2048/blob/master/src/commonMain/resources/clear_sans.fnt?raw=true","headerInfo":{"blobSize":"10.8 KB","deleteInfo":{"deleteTooltip":"You must be signed in to make or propose changes"},"editInfo":{"editTooltip":"You must be signed in to make or propose changes"},"ghDesktopPath":"https://desktop.github.com","gitLfsPath":null,"onBranch":true,"shortPath":"268c7be","siteNavLoginPath":"/login?return_to=https%3A%2F%2Fgithub.com%2FRezMike%2F2048%2Fblob%2Fmaster%2Fsrc%2FcommonMain%2Fresources%2Fclear_sans.fnt","isCSV":false,"isRichtext":false,"toc":null,"lineInfo":{"truncatedLoc":"99","truncatedSloc":"99"},"mode":"file"},"image":false,"isCodeownersFile":null,"isPlain":false,"isValidLegacyIssueTemplate":false,"issueTemplateHelpUrl":"https://docs.github.com/articles/about-issue-and-pull-request-templates","issueTemplate":null,"discussionTemplate":null,"language":null,"languageID":null,"large":false,"loggedIn":false,"newDiscussionPath":"/RezMike/2048/discussions/new","newIssuePath":"/RezMike/2048/issues/new","planSupportInfo":{"repoIsFork":null,"repoOwnedByCurrentUser":null,"requestFullPath":"/RezMike/2048/blob/master/src/commonMain/resources/clear_sans.fnt","showFreeOrgGatedFeatureMessage":null,"showPlanSupportBanner":null,"upgradeDataAttributes":null,"upgradePath":null},"publishBannersInfo":{"dismissActionNoticePath":"/settings/dismiss-notice/publish_action_from_dockerfile","dismissStackNoticePath":"/settings/dismiss-notice/publish_stack_from_file","releasePath":"/RezMike/2048/releases/new?marketplace=true","showPublishActionBanner":false,"showPublishStackBanner":false},"rawBlobUrl":"https://github.com/RezMike/2048/raw/master/src/commonMain/resources/clear_sans.fnt","renderImageOrRaw":false,"richText":null,"renderedFileInfo":null,"shortPath":null,"tabSize":8,"topBannersInfo":{"overridingGlobalFundingFile":false,"globalPreferredFundingPath":null,"repoOwner":"RezMike","repoName":"2048","showInvalidCitationWarning":false,"citationHelpUrl":"https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/creating-a-repository-on-github/about-citation-files","showDependabotConfigurationBanner":false,"actionsOnboardingTip":null},"truncated":false,"viewable":true,"workflowRedirectUrl":null,"symbols":{"timed_out":false,"not_analyzed":true,"symbols":[]}},"copilotInfo":null,"copilotAccessAllowed":false,"csrf_tokens":{"/RezMike/2048/branches":{"post":"_0uqfhHH8ytKJGhSoRJpDL87BENKuZSkFuzB7NGjXwXslTzjwfyrTOEI3bUsStqnsQ7O3LtLUACFnmhabEcS6A"},"/repos/preferences":{"post":"K1rBLNVZkI7qpw65ijAbOGoOWELPW8jxlmFDrAHbyG7830zK9-KEbMU3m6ppoYcgq3oSzYMd0s3J8FS0yH-0XQ"}}},"title":"2048/src/commonMain/resources/clear_sans.fnt at master ยท RezMike/2048"} \ No newline at end of file