diff --git a/selfdrive/assets/fonts/Pretendard-LICENSE.txt b/selfdrive/assets/fonts/Pretendard-LICENSE.txt new file mode 100644 index 0000000000..497b88f9fa --- /dev/null +++ b/selfdrive/assets/fonts/Pretendard-LICENSE.txt @@ -0,0 +1,94 @@ +Copyright (c) 2021, Kil Hyung-jin (https://github.com/orioncactus/pretendard), +with Reserved Font Name Pretendard. + +This Font Software is licensed under the SIL Open Font License, Version 1.1. +This license is copied below, and is also available with a FAQ at: +https://scripts.sil.org/OFL + + +----------------------------------------------------------- +SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007 +----------------------------------------------------------- + +PREAMBLE +The goals of the Open Font License (OFL) are to stimulate worldwide +development of collaborative font projects, to support the font creation +efforts of academic and linguistic communities, and to provide a free and +open framework in which fonts may be shared and improved in partnership +with others. + +The OFL allows the licensed fonts to be used, studied, modified and +redistributed freely as long as they are not sold by themselves. The +fonts, including any derivative works, can be bundled, embedded, +redistributed and/or sold with any software provided that any reserved +names are not used by derivative works. The fonts and derivatives, +however, cannot be released under any other type of license. The +requirement for fonts to remain under this license does not apply +to any document created using the fonts or their derivatives. + +DEFINITIONS +"Font Software" refers to the set of files released by the Copyright +Holder(s) under this license and clearly marked as such. This may +include source files, build scripts and documentation. + +"Reserved Font Name" refers to any names specified as such after the +copyright statement(s). + +"Original Version" refers to the collection of Font Software components as +distributed by the Copyright Holder(s). + +"Modified Version" refers to any derivative made by adding to, deleting, +or substituting -- in part or in whole -- any of the components of the +Original Version, by changing formats or by porting the Font Software to a +new environment. + +"Author" refers to any designer, engineer, programmer, technical +writer or other person who contributed to the Font Software. + +PERMISSION & CONDITIONS +Permission is hereby granted, free of charge, to any person obtaining +a copy of the Font Software, to use, study, copy, merge, embed, modify, +redistribute, and sell modified and unmodified copies of the Font +Software, subject to the following conditions: + +1) Neither the Font Software nor any of its individual components, +in Original or Modified Versions, may be sold by itself. + +2) Original or Modified Versions of the Font Software may be bundled, +redistributed and/or sold with any software, provided that each copy +contains the above copyright notice and this license. These can be +included either as stand-alone text files, human-readable headers or +in the appropriate machine-readable metadata fields within text or +binary files as long as those fields can be easily viewed by the user. + +3) No Modified Version of the Font Software may use the Reserved Font +Name(s) unless explicit written permission is granted by the corresponding +Copyright Holder. This restriction only applies to the primary font name as +presented to the users. + +4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font +Software shall not be used to promote, endorse or advertise any +Modified Version, except to acknowledge the contribution(s) of the +Copyright Holder(s) and the Author(s) or with their explicit written +permission. + +5) The Font Software, modified or unmodified, in part or in whole, +must be distributed entirely under this license, and must not be +distributed under any other license. The requirement for fonts to +remain under this license does not apply to any document created +using the Font Software. + +TERMINATION +This license becomes null and void if any of the above conditions are +not met. + +DISCLAIMER +THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT +OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE +COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL +DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM +OTHER DEALINGS IN THE FONT SOFTWARE. diff --git a/selfdrive/assets/fonts/Pretendard-Medium.fnt b/selfdrive/assets/fonts/Pretendard-Medium.fnt new file mode 100644 index 0000000000..3663794594 --- /dev/null +++ b/selfdrive/assets/fonts/Pretendard-Medium.fnt @@ -0,0 +1,230 @@ +info face="Pretendard-Medium" size=-200 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=0 aa=1 padding=0,0,0,0 spacing=0,0 outline=0 +common lineHeight=200 base=200 scaleW=4096 scaleH=2048 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4 +page id=0 file="Pretendard-Medium.png" +chars count=226 +char id=10 x=6 y=6 width=0 height=0 xoffset=0 yoffset=0 xadvance=0 page=0 chnl=15 +char id=32 x=18 y=6 width=40 height=200 xoffset=0 yoffset=0 xadvance=40 page=0 chnl=15 +char id=33 x=70 y=6 width=24 height=121 xoffset=11 yoffset=40 xadvance=45 page=0 chnl=15 +char id=34 x=106 y=6 width=45 height=43 xoffset=9 yoffset=40 xadvance=63 page=0 chnl=15 +char id=35 x=163 y=6 width=100 height=119 xoffset=1 yoffset=40 xadvance=101 page=0 chnl=15 +char id=36 x=275 y=6 width=89 height=149 xoffset=7 yoffset=25 xadvance=102 page=0 chnl=15 +char id=37 x=376 y=6 width=126 height=124 xoffset=12 yoffset=38 xadvance=149 page=0 chnl=15 +char id=38 x=514 y=6 width=98 height=122 xoffset=6 yoffset=39 xadvance=104 page=0 chnl=15 +char id=39 x=624 y=6 width=15 height=43 xoffset=9 yoffset=40 xadvance=33 page=0 chnl=15 +char id=40 x=651 y=6 width=41 height=158 xoffset=14 yoffset=35 xadvance=59 page=0 chnl=15 +char id=41 x=704 y=6 width=41 height=158 xoffset=5 yoffset=35 xadvance=59 page=0 chnl=15 +char id=42 x=757 y=6 width=65 height=68 xoffset=9 yoffset=40 xadvance=82 page=0 chnl=15 +char id=43 x=834 y=6 width=79 height=79 xoffset=14 yoffset=73 xadvance=106 page=0 chnl=15 +char id=44 x=925 y=6 width=28 height=46 xoffset=4 yoffset=147 xadvance=44 page=0 chnl=15 +char id=45 x=965 y=6 width=54 height=16 xoffset=10 yoffset=101 xadvance=73 page=0 chnl=15 +char id=46 x=1031 y=6 width=24 height=25 xoffset=10 yoffset=136 xadvance=44 page=0 chnl=15 +char id=47 x=1067 y=6 width=54 height=143 xoffset=2 yoffset=34 xadvance=58 page=0 chnl=15 +char id=48 x=1133 y=6 width=88 height=123 xoffset=8 yoffset=38 xadvance=103 page=0 chnl=15 +char id=49 x=1233 y=6 width=48 height=119 xoffset=8 yoffset=40 xadvance=75 page=0 chnl=15 +char id=50 x=1293 y=6 width=81 height=121 xoffset=10 yoffset=38 xadvance=99 page=0 chnl=15 +char id=51 x=1386 y=6 width=87 height=123 xoffset=9 yoffset=38 xadvance=104 page=0 chnl=15 +char id=52 x=1485 y=6 width=92 height=119 xoffset=7 yoffset=40 xadvance=106 page=0 chnl=15 +char id=53 x=1589 y=6 width=83 height=121 xoffset=10 yoffset=40 xadvance=101 page=0 chnl=15 +char id=54 x=1684 y=6 width=88 height=123 xoffset=8 yoffset=38 xadvance=104 page=0 chnl=15 +char id=55 x=1784 y=6 width=81 height=119 xoffset=6 yoffset=40 xadvance=93 page=0 chnl=15 +char id=56 x=1877 y=6 width=88 height=123 xoffset=8 yoffset=38 xadvance=103 page=0 chnl=15 +char id=57 x=1977 y=6 width=88 height=123 xoffset=8 yoffset=38 xadvance=104 page=0 chnl=15 +char id=58 x=2077 y=6 width=24 height=89 xoffset=10 yoffset=72 xadvance=44 page=0 chnl=15 +char id=59 x=2113 y=6 width=30 height=121 xoffset=4 yoffset=72 xadvance=44 page=0 chnl=15 +char id=60 x=2155 y=6 width=78 height=89 xoffset=14 yoffset=68 xadvance=106 page=0 chnl=15 +char id=61 x=2245 y=6 width=75 height=52 xoffset=16 yoffset=86 xadvance=106 page=0 chnl=15 +char id=62 x=2332 y=6 width=78 height=89 xoffset=14 yoffset=68 xadvance=106 page=0 chnl=15 +char id=63 x=2422 y=6 width=72 height=123 xoffset=5 yoffset=38 xadvance=83 page=0 chnl=15 +char id=64 x=2506 y=6 width=131 height=136 xoffset=8 yoffset=41 xadvance=147 page=0 chnl=15 +char id=65 x=2649 y=6 width=107 height=119 xoffset=3 yoffset=40 xadvance=112 page=0 chnl=15 +char id=66 x=2768 y=6 width=86 height=119 xoffset=12 yoffset=40 xadvance=104 page=0 chnl=15 +char id=67 x=2866 y=6 width=103 height=123 xoffset=8 yoffset=38 xadvance=117 page=0 chnl=15 +char id=68 x=2981 y=6 width=96 height=119 xoffset=12 yoffset=40 xadvance=115 page=0 chnl=15 +char id=69 x=3089 y=6 width=76 height=119 xoffset=12 yoffset=40 xadvance=96 page=0 chnl=15 +char id=70 x=3177 y=6 width=74 height=119 xoffset=12 yoffset=40 xadvance=93 page=0 chnl=15 +char id=71 x=3263 y=6 width=104 height=123 xoffset=8 yoffset=38 xadvance=120 page=0 chnl=15 +char id=72 x=3379 y=6 width=96 height=119 xoffset=12 yoffset=40 xadvance=119 page=0 chnl=15 +char id=73 x=3487 y=6 width=19 height=119 xoffset=12 yoffset=40 xadvance=42 page=0 chnl=15 +char id=74 x=3518 y=6 width=73 height=121 xoffset=4 yoffset=40 xadvance=88 page=0 chnl=15 +char id=75 x=3603 y=6 width=92 height=119 xoffset=12 yoffset=40 xadvance=106 page=0 chnl=15 +char id=76 x=3707 y=6 width=72 height=119 xoffset=12 yoffset=40 xadvance=90 page=0 chnl=15 +char id=77 x=3791 y=6 width=121 height=119 xoffset=12 yoffset=40 xadvance=144 page=0 chnl=15 +char id=78 x=3924 y=6 width=96 height=119 xoffset=12 yoffset=40 xadvance=119 page=0 chnl=15 +char id=79 x=6 y=218 width=108 height=123 xoffset=8 yoffset=38 xadvance=123 page=0 chnl=15 +char id=80 x=126 y=218 width=84 height=119 xoffset=12 yoffset=40 xadvance=102 page=0 chnl=15 +char id=81 x=222 y=218 width=108 height=132 xoffset=8 yoffset=38 xadvance=123 page=0 chnl=15 +char id=82 x=342 y=218 width=88 height=119 xoffset=12 yoffset=40 xadvance=103 page=0 chnl=15 +char id=83 x=442 y=218 width=89 height=123 xoffset=7 yoffset=38 xadvance=102 page=0 chnl=15 +char id=84 x=543 y=218 width=93 height=119 xoffset=6 yoffset=40 xadvance=104 page=0 chnl=15 +char id=85 x=648 y=218 width=95 height=121 xoffset=12 yoffset=40 xadvance=118 page=0 chnl=15 +char id=86 x=755 y=218 width=107 height=119 xoffset=3 yoffset=40 xadvance=112 page=0 chnl=15 +char id=87 x=874 y=218 width=154 height=119 xoffset=2 yoffset=40 xadvance=158 page=0 chnl=15 +char id=88 x=1040 y=218 width=101 height=119 xoffset=3 yoffset=40 xadvance=106 page=0 chnl=15 +char id=89 x=1153 y=218 width=105 height=119 xoffset=2 yoffset=40 xadvance=109 page=0 chnl=15 +char id=90 x=1270 y=218 width=86 height=119 xoffset=8 yoffset=40 xadvance=102 page=0 chnl=15 +char id=91 x=1368 y=218 width=39 height=158 xoffset=17 yoffset=35 xadvance=59 page=0 chnl=15 +char id=92 x=1419 y=218 width=54 height=143 xoffset=2 yoffset=34 xadvance=58 page=0 chnl=15 +char id=93 x=1485 y=218 width=39 height=158 xoffset=4 yoffset=35 xadvance=59 page=0 chnl=15 +char id=94 x=1536 y=218 width=66 height=52 xoffset=5 yoffset=43 xadvance=75 page=0 chnl=15 +char id=95 x=1614 y=218 width=77 height=15 xoffset=-2 yoffset=159 xadvance=72 page=0 chnl=15 +char id=96 x=1703 y=218 width=33 height=28 xoffset=23 yoffset=31 xadvance=79 page=0 chnl=15 +char id=97 x=1748 y=218 width=75 height=93 xoffset=6 yoffset=68 xadvance=90 page=0 chnl=15 +char id=98 x=1835 y=218 width=82 height=121 xoffset=12 yoffset=40 xadvance=100 page=0 chnl=15 +char id=99 x=1929 y=218 width=79 height=93 xoffset=6 yoffset=68 xadvance=90 page=0 chnl=15 +char id=100 x=2020 y=218 width=83 height=121 xoffset=6 yoffset=40 xadvance=100 page=0 chnl=15 +char id=101 x=2115 y=218 width=82 height=93 xoffset=6 yoffset=68 xadvance=93 page=0 chnl=15 +char id=102 x=2209 y=218 width=53 height=125 xoffset=2 yoffset=34 xadvance=58 page=0 chnl=15 +char id=103 x=2274 y=218 width=83 height=127 xoffset=6 yoffset=68 xadvance=98 page=0 chnl=15 +char id=104 x=2369 y=218 width=76 height=119 xoffset=10 yoffset=40 xadvance=96 page=0 chnl=15 +char id=105 x=2457 y=218 width=23 height=124 xoffset=8 yoffset=35 xadvance=38 page=0 chnl=15 +char id=106 x=2492 y=218 width=35 height=158 xoffset=-4 yoffset=35 xadvance=38 page=0 chnl=15 +char id=107 x=2539 y=218 width=79 height=119 xoffset=10 yoffset=40 xadvance=88 page=0 chnl=15 +char id=108 x=2630 y=218 width=19 height=119 xoffset=10 yoffset=40 xadvance=38 page=0 chnl=15 +char id=109 x=2661 y=218 width=122 height=91 xoffset=10 yoffset=68 xadvance=142 page=0 chnl=15 +char id=110 x=2795 y=218 width=75 height=91 xoffset=10 yoffset=68 xadvance=95 page=0 chnl=15 +char id=111 x=2882 y=218 width=84 height=93 xoffset=6 yoffset=68 xadvance=96 page=0 chnl=15 +char id=112 x=2978 y=218 width=82 height=125 xoffset=10 yoffset=68 xadvance=98 page=0 chnl=15 +char id=113 x=3072 y=218 width=83 height=125 xoffset=6 yoffset=68 xadvance=98 page=0 chnl=15 +char id=114 x=3167 y=218 width=49 height=91 xoffset=10 yoffset=68 xadvance=60 page=0 chnl=15 +char id=115 x=3228 y=218 width=74 height=93 xoffset=6 yoffset=68 xadvance=85 page=0 chnl=15 +char id=116 x=3314 y=218 width=51 height=113 xoffset=3 yoffset=48 xadvance=58 page=0 chnl=15 +char id=117 x=3377 y=218 width=75 height=91 xoffset=10 yoffset=70 xadvance=95 page=0 chnl=15 +char id=118 x=3464 y=218 width=84 height=89 xoffset=3 yoffset=70 xadvance=90 page=0 chnl=15 +char id=119 x=3560 y=218 width=126 height=89 xoffset=3 yoffset=70 xadvance=132 page=0 chnl=15 +char id=120 x=3698 y=218 width=78 height=89 xoffset=5 yoffset=70 xadvance=88 page=0 chnl=15 +char id=121 x=3788 y=218 width=84 height=123 xoffset=3 yoffset=70 xadvance=90 page=0 chnl=15 +char id=122 x=3884 y=218 width=73 height=89 xoffset=8 yoffset=70 xadvance=87 page=0 chnl=15 +char id=123 x=3969 y=218 width=52 height=158 xoffset=4 yoffset=35 xadvance=59 page=0 chnl=15 +char id=124 x=4033 y=218 width=16 height=153 xoffset=19 yoffset=23 xadvance=54 page=0 chnl=15 +char id=125 x=6 y=430 width=52 height=158 xoffset=4 yoffset=35 xadvance=59 page=0 chnl=15 +char id=126 x=70 y=430 width=76 height=26 xoffset=15 yoffset=99 xadvance=106 page=0 chnl=15 +char id=163 x=158 y=430 width=84 height=121 xoffset=9 yoffset=38 xadvance=103 page=0 chnl=15 +char id=165 x=254 y=430 width=87 height=119 xoffset=1 yoffset=40 xadvance=88 page=0 chnl=15 +char id=167 x=353 y=430 width=77 height=146 xoffset=7 yoffset=38 xadvance=90 page=0 chnl=15 +char id=171 x=442 y=430 width=72 height=72 xoffset=9 yoffset=75 xadvance=90 page=0 chnl=15 +char id=176 x=526 y=430 width=55 height=56 xoffset=9 yoffset=39 xadvance=72 page=0 chnl=15 +char id=187 x=593 y=430 width=72 height=72 xoffset=9 yoffset=75 xadvance=91 page=0 chnl=15 +char id=191 x=677 y=430 width=73 height=122 xoffset=6 yoffset=69 xadvance=83 page=0 chnl=15 +char id=192 x=762 y=430 width=107 height=158 xoffset=3 yoffset=1 xadvance=112 page=0 chnl=15 +char id=193 x=881 y=430 width=107 height=158 xoffset=3 yoffset=1 xadvance=112 page=0 chnl=15 +char id=195 x=1000 y=430 width=107 height=153 xoffset=3 yoffset=6 xadvance=112 page=0 chnl=15 +char id=196 x=1119 y=430 width=107 height=153 xoffset=3 yoffset=6 xadvance=112 page=0 chnl=15 +char id=199 x=1238 y=430 width=103 height=158 xoffset=8 yoffset=38 xadvance=117 page=0 chnl=15 +char id=201 x=1353 y=430 width=76 height=158 xoffset=12 yoffset=1 xadvance=96 page=0 chnl=15 +char id=202 x=1441 y=430 width=76 height=155 xoffset=12 yoffset=4 xadvance=96 page=0 chnl=15 +char id=205 x=1529 y=430 width=34 height=158 xoffset=12 yoffset=1 xadvance=42 page=0 chnl=15 +char id=209 x=1575 y=430 width=96 height=152 xoffset=12 yoffset=7 xadvance=119 page=0 chnl=15 +char id=211 x=1683 y=430 width=108 height=160 xoffset=8 yoffset=1 xadvance=123 page=0 chnl=15 +char id=212 x=1803 y=430 width=108 height=157 xoffset=8 yoffset=4 xadvance=123 page=0 chnl=15 +char id=214 x=1923 y=430 width=108 height=155 xoffset=8 yoffset=6 xadvance=123 page=0 chnl=15 +char id=215 x=2043 y=430 width=79 height=79 xoffset=14 yoffset=73 xadvance=106 page=0 chnl=15 +char id=220 x=2134 y=430 width=95 height=155 xoffset=12 yoffset=6 xadvance=118 page=0 chnl=15 +char id=223 x=2241 y=430 width=82 height=121 xoffset=12 yoffset=38 xadvance=100 page=0 chnl=15 +char id=224 x=2335 y=430 width=75 height=130 xoffset=6 yoffset=31 xadvance=90 page=0 chnl=15 +char id=225 x=2422 y=430 width=75 height=130 xoffset=6 yoffset=31 xadvance=90 page=0 chnl=15 +char id=226 x=2509 y=430 width=75 height=128 xoffset=6 yoffset=33 xadvance=90 page=0 chnl=15 +char id=227 x=2596 y=430 width=75 height=125 xoffset=6 yoffset=36 xadvance=90 page=0 chnl=15 +char id=228 x=2683 y=430 width=75 height=126 xoffset=6 yoffset=35 xadvance=90 page=0 chnl=15 +char id=231 x=2770 y=430 width=79 height=127 xoffset=6 yoffset=68 xadvance=90 page=0 chnl=15 +char id=232 x=2861 y=430 width=82 height=130 xoffset=6 yoffset=31 xadvance=93 page=0 chnl=15 +char id=233 x=2955 y=430 width=82 height=130 xoffset=6 yoffset=31 xadvance=93 page=0 chnl=15 +char id=234 x=3049 y=430 width=82 height=128 xoffset=6 yoffset=33 xadvance=93 page=0 chnl=15 +char id=237 x=3143 y=430 width=35 height=128 xoffset=10 yoffset=31 xadvance=38 page=0 chnl=15 +char id=238 x=3190 y=430 width=57 height=126 xoffset=-9 yoffset=33 xadvance=38 page=0 chnl=15 +char id=241 x=3259 y=430 width=75 height=123 xoffset=10 yoffset=36 xadvance=95 page=0 chnl=15 +char id=243 x=3346 y=430 width=84 height=130 xoffset=6 yoffset=31 xadvance=96 page=0 chnl=15 +char id=244 x=3442 y=430 width=84 height=128 xoffset=6 yoffset=33 xadvance=96 page=0 chnl=15 +char id=245 x=3538 y=430 width=84 height=125 xoffset=6 yoffset=36 xadvance=96 page=0 chnl=15 +char id=246 x=3634 y=430 width=84 height=126 xoffset=6 yoffset=35 xadvance=96 page=0 chnl=15 +char id=250 x=3730 y=430 width=75 height=130 xoffset=10 yoffset=31 xadvance=95 page=0 chnl=15 +char id=251 x=3817 y=430 width=75 height=128 xoffset=10 yoffset=33 xadvance=95 page=0 chnl=15 +char id=252 x=3904 y=430 width=75 height=126 xoffset=10 yoffset=35 xadvance=95 page=0 chnl=15 +char id=286 x=6 y=642 width=104 height=151 xoffset=8 yoffset=10 xadvance=120 page=0 chnl=15 +char id=287 x=122 y=642 width=83 height=155 xoffset=6 yoffset=40 xadvance=98 page=0 chnl=15 +char id=304 x=217 y=642 width=24 height=153 xoffset=9 yoffset=6 xadvance=42 page=0 chnl=15 +char id=305 x=253 y=642 width=19 height=89 xoffset=10 yoffset=70 xadvance=38 page=0 chnl=15 +char id=339 x=284 y=642 width=148 height=93 xoffset=6 yoffset=68 xadvance=158 page=0 chnl=15 +char id=350 x=444 y=642 width=89 height=157 xoffset=7 yoffset=38 xadvance=102 page=0 chnl=15 +char id=351 x=545 y=642 width=74 height=127 xoffset=6 yoffset=68 xadvance=85 page=0 chnl=15 +char id=1028 x=631 y=642 width=93 height=123 xoffset=8 yoffset=38 xadvance=108 page=0 chnl=15 +char id=1030 x=736 y=642 width=19 height=119 xoffset=12 yoffset=40 xadvance=42 page=0 chnl=15 +char id=1040 x=767 y=642 width=107 height=119 xoffset=3 yoffset=40 xadvance=112 page=0 chnl=15 +char id=1041 x=886 y=642 width=87 height=119 xoffset=12 yoffset=40 xadvance=105 page=0 chnl=15 +char id=1042 x=985 y=642 width=86 height=119 xoffset=12 yoffset=40 xadvance=104 page=0 chnl=15 +char id=1043 x=1083 y=642 width=74 height=119 xoffset=12 yoffset=40 xadvance=92 page=0 chnl=15 +char id=1044 x=1169 y=642 width=115 height=148 xoffset=3 yoffset=40 xadvance=122 page=0 chnl=15 +char id=1045 x=1296 y=642 width=76 height=119 xoffset=12 yoffset=40 xadvance=96 page=0 chnl=15 +char id=1046 x=1384 y=642 width=154 height=119 xoffset=3 yoffset=40 xadvance=160 page=0 chnl=15 +char id=1047 x=1550 y=642 width=87 height=123 xoffset=9 yoffset=38 xadvance=104 page=0 chnl=15 +char id=1048 x=1649 y=642 width=96 height=119 xoffset=12 yoffset=40 xadvance=119 page=0 chnl=15 +char id=1049 x=1757 y=642 width=96 height=149 xoffset=12 yoffset=10 xadvance=119 page=0 chnl=15 +char id=1050 x=1865 y=642 width=93 height=119 xoffset=12 yoffset=40 xadvance=106 page=0 chnl=15 +char id=1051 x=1970 y=642 width=101 height=119 xoffset=3 yoffset=40 xadvance=115 page=0 chnl=15 +char id=1052 x=2083 y=642 width=121 height=119 xoffset=12 yoffset=40 xadvance=144 page=0 chnl=15 +char id=1053 x=2216 y=642 width=96 height=119 xoffset=12 yoffset=40 xadvance=119 page=0 chnl=15 +char id=1054 x=2324 y=642 width=108 height=123 xoffset=8 yoffset=38 xadvance=123 page=0 chnl=15 +char id=1055 x=2444 y=642 width=92 height=119 xoffset=13 yoffset=40 xadvance=118 page=0 chnl=15 +char id=1056 x=2548 y=642 width=84 height=119 xoffset=12 yoffset=40 xadvance=102 page=0 chnl=15 +char id=1057 x=2644 y=642 width=103 height=123 xoffset=8 yoffset=38 xadvance=117 page=0 chnl=15 +char id=1058 x=2759 y=642 width=93 height=119 xoffset=6 yoffset=40 xadvance=104 page=0 chnl=15 +char id=1059 x=2864 y=642 width=98 height=121 xoffset=2 yoffset=40 xadvance=102 page=0 chnl=15 +char id=1060 x=2974 y=642 width=115 height=126 xoffset=8 yoffset=38 xadvance=131 page=0 chnl=15 +char id=1062 x=3101 y=642 width=106 height=147 xoffset=12 yoffset=40 xadvance=122 page=0 chnl=15 +char id=1063 x=3219 y=642 width=90 height=119 xoffset=14 yoffset=40 xadvance=115 page=0 chnl=15 +char id=1065 x=3321 y=642 width=145 height=147 xoffset=12 yoffset=40 xadvance=162 page=0 chnl=15 +char id=1068 x=3478 y=642 width=87 height=119 xoffset=12 yoffset=40 xadvance=104 page=0 chnl=15 +char id=1070 x=3577 y=642 width=146 height=123 xoffset=12 yoffset=38 xadvance=165 page=0 chnl=15 +char id=1071 x=3735 y=642 width=89 height=119 xoffset=8 yoffset=40 xadvance=108 page=0 chnl=15 +char id=1072 x=3836 y=642 width=75 height=93 xoffset=6 yoffset=68 xadvance=90 page=0 chnl=15 +char id=1073 x=3923 y=642 width=83 height=124 xoffset=6 yoffset=37 xadvance=95 page=0 chnl=15 +char id=1074 x=6 y=854 width=75 height=89 xoffset=10 yoffset=70 xadvance=90 page=0 chnl=15 +char id=1075 x=93 y=854 width=58 height=89 xoffset=10 yoffset=70 xadvance=73 page=0 chnl=15 +char id=1076 x=163 y=854 width=98 height=115 xoffset=1 yoffset=70 xadvance=102 page=0 chnl=15 +char id=1077 x=273 y=854 width=82 height=93 xoffset=6 yoffset=68 xadvance=93 page=0 chnl=15 +char id=1078 x=367 y=854 width=126 height=89 xoffset=5 yoffset=70 xadvance=135 page=0 chnl=15 +char id=1079 x=505 y=854 width=71 height=93 xoffset=5 yoffset=68 xadvance=80 page=0 chnl=15 +char id=1080 x=588 y=854 width=76 height=89 xoffset=10 yoffset=70 xadvance=96 page=0 chnl=15 +char id=1081 x=676 y=854 width=76 height=119 xoffset=10 yoffset=40 xadvance=96 page=0 chnl=15 +char id=1082 x=764 y=854 width=78 height=89 xoffset=10 yoffset=70 xadvance=88 page=0 chnl=15 +char id=1083 x=854 y=854 width=82 height=89 xoffset=3 yoffset=70 xadvance=94 page=0 chnl=15 +char id=1084 x=948 y=854 width=101 height=89 xoffset=10 yoffset=70 xadvance=121 page=0 chnl=15 +char id=1085 x=1061 y=854 width=74 height=89 xoffset=10 yoffset=70 xadvance=93 page=0 chnl=15 +char id=1086 x=1147 y=854 width=84 height=93 xoffset=6 yoffset=68 xadvance=96 page=0 chnl=15 +char id=1087 x=1243 y=854 width=74 height=89 xoffset=10 yoffset=70 xadvance=93 page=0 chnl=15 +char id=1088 x=1329 y=854 width=82 height=125 xoffset=10 yoffset=68 xadvance=98 page=0 chnl=15 +char id=1089 x=1423 y=854 width=79 height=93 xoffset=6 yoffset=68 xadvance=90 page=0 chnl=15 +char id=1090 x=1514 y=854 width=76 height=89 xoffset=5 yoffset=70 xadvance=86 page=0 chnl=15 +char id=1091 x=1602 y=854 width=84 height=123 xoffset=3 yoffset=70 xadvance=90 page=0 chnl=15 +char id=1092 x=1698 y=854 width=103 height=150 xoffset=6 yoffset=40 xadvance=115 page=0 chnl=15 +char id=1093 x=1813 y=854 width=78 height=89 xoffset=5 yoffset=70 xadvance=88 page=0 chnl=15 +char id=1094 x=1903 y=854 width=87 height=118 xoffset=10 yoffset=70 xadvance=101 page=0 chnl=15 +char id=1095 x=2002 y=854 width=73 height=90 xoffset=10 yoffset=69 xadvance=92 page=0 chnl=15 +char id=1096 x=2087 y=854 width=114 height=89 xoffset=10 yoffset=70 xadvance=133 page=0 chnl=15 +char id=1097 x=2213 y=854 width=129 height=115 xoffset=10 yoffset=70 xadvance=143 page=0 chnl=15 +char id=1100 x=2354 y=854 width=74 height=89 xoffset=10 yoffset=70 xadvance=90 page=0 chnl=15 +char id=1102 x=2440 y=854 width=120 height=93 xoffset=4 yoffset=68 xadvance=131 page=0 chnl=15 +char id=1103 x=2572 y=854 width=76 height=89 xoffset=5 yoffset=70 xadvance=90 page=0 chnl=15 +char id=1108 x=2660 y=854 width=79 height=93 xoffset=2 yoffset=68 xadvance=88 page=0 chnl=15 +char id=1110 x=2751 y=854 width=23 height=124 xoffset=8 yoffset=35 xadvance=38 page=0 chnl=15 +char id=1111 x=2786 y=854 width=55 height=124 xoffset=-8 yoffset=35 xadvance=38 page=0 chnl=15 +char id=8209 x=2853 y=854 width=54 height=16 xoffset=10 yoffset=101 xadvance=73 page=0 chnl=15 +char id=8211 x=2919 y=854 width=82 height=16 xoffset=-1 yoffset=101 xadvance=79 page=0 chnl=15 +char id=8220 x=3013 y=854 width=61 height=46 xoffset=5 yoffset=40 xadvance=76 page=0 chnl=15 +char id=8222 x=3086 y=854 width=61 height=46 xoffset=6 yoffset=147 xadvance=72 page=0 chnl=15 +char id=8226 x=3159 y=854 width=38 height=38 xoffset=22 yoffset=93 xadvance=82 page=0 chnl=15 +char id=8364 x=3209 y=854 width=97 height=123 xoffset=3 yoffset=38 xadvance=107 page=0 chnl=15 +char id=8627 x=3318 y=854 width=131 height=104 xoffset=15 yoffset=40 xadvance=160 page=0 chnl=15 +char id=8679 x=3461 y=854 width=144 height=128 xoffset=13 yoffset=31 xadvance=169 page=0 chnl=15 +char id=9003 x=3617 y=854 width=171 height=119 xoffset=12 yoffset=40 xadvance=196 page=0 chnl=15 +char id=9251 x=3800 y=854 width=98 height=38 xoffset=10 yoffset=147 xadvance=118 page=0 chnl=15 +char id=9654 x=3910 y=854 width=129 height=149 xoffset=14 yoffset=25 xadvance=149 page=0 chnl=15 +char id=9664 x=6 y=1066 width=128 height=149 xoffset=7 yoffset=25 xadvance=149 page=0 chnl=15 +char id=9675 x=146 y=1066 width=132 height=132 xoffset=8 yoffset=34 xadvance=147 page=0 chnl=15 +char id=9679 x=290 y=1066 width=132 height=132 xoffset=8 yoffset=34 xadvance=147 page=0 chnl=15 +char id=9881 x=434 y=1066 width=0 height=0 xoffset=0 yoffset=0 xadvance=0 page=0 chnl=15 +char id=10003 x=446 y=1066 width=115 height=86 xoffset=13 yoffset=62 xadvance=141 page=0 chnl=15 +char id=10004 x=573 y=1066 width=0 height=0 xoffset=0 yoffset=0 xadvance=0 page=0 chnl=15 +char id=10005 x=585 y=1066 width=0 height=0 xoffset=0 yoffset=0 xadvance=0 page=0 chnl=15 +char id=65039 x=597 y=1066 width=0 height=0 xoffset=0 yoffset=0 xadvance=0 page=0 chnl=15 +char id=127783 x=609 y=1066 width=0 height=0 xoffset=0 yoffset=0 xadvance=0 page=0 chnl=15 +char id=128293 x=621 y=1066 width=0 height=0 xoffset=0 yoffset=0 xadvance=0 page=0 chnl=15 diff --git a/selfdrive/assets/fonts/Pretendard-Medium.png b/selfdrive/assets/fonts/Pretendard-Medium.png new file mode 100644 index 0000000000..e811c2444f Binary files /dev/null and b/selfdrive/assets/fonts/Pretendard-Medium.png differ diff --git a/selfdrive/assets/fonts/Pretendard-Medium.ttf b/selfdrive/assets/fonts/Pretendard-Medium.ttf new file mode 100644 index 0000000000..1db67c68fb Binary files /dev/null and b/selfdrive/assets/fonts/Pretendard-Medium.ttf differ diff --git a/selfdrive/assets/fonts/Pretendard-SemiBold.fnt b/selfdrive/assets/fonts/Pretendard-SemiBold.fnt new file mode 100644 index 0000000000..651bb6d4ed --- /dev/null +++ b/selfdrive/assets/fonts/Pretendard-SemiBold.fnt @@ -0,0 +1,230 @@ +info face="Pretendard-SemiBold" size=-200 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=0 aa=1 padding=0,0,0,0 spacing=0,0 outline=0 +common lineHeight=200 base=200 scaleW=4096 scaleH=2048 pages=1 packed=0 alphaChnl=0 redChnl=4 greenChnl=4 blueChnl=4 +page id=0 file="Pretendard-SemiBold.png" +chars count=226 +char id=10 x=6 y=6 width=0 height=0 xoffset=0 yoffset=0 xadvance=0 page=0 chnl=15 +char id=32 x=18 y=6 width=39 height=200 xoffset=0 yoffset=0 xadvance=39 page=0 chnl=15 +char id=33 x=69 y=6 width=26 height=121 xoffset=11 yoffset=40 xadvance=48 page=0 chnl=15 +char id=34 x=107 y=6 width=47 height=45 xoffset=8 yoffset=40 xadvance=63 page=0 chnl=15 +char id=35 x=166 y=6 width=101 height=119 xoffset=1 yoffset=40 xadvance=103 page=0 chnl=15 +char id=36 x=279 y=6 width=92 height=149 xoffset=6 yoffset=25 xadvance=104 page=0 chnl=15 +char id=37 x=383 y=6 width=131 height=126 xoffset=12 yoffset=37 xadvance=155 page=0 chnl=15 +char id=38 x=526 y=6 width=101 height=122 xoffset=6 yoffset=39 xadvance=106 page=0 chnl=15 +char id=39 x=639 y=6 width=17 height=45 xoffset=8 yoffset=40 xadvance=33 page=0 chnl=15 +char id=40 x=668 y=6 width=45 height=158 xoffset=13 yoffset=35 xadvance=62 page=0 chnl=15 +char id=41 x=725 y=6 width=45 height=158 xoffset=4 yoffset=35 xadvance=62 page=0 chnl=15 +char id=42 x=782 y=6 width=66 height=68 xoffset=10 yoffset=40 xadvance=86 page=0 chnl=15 +char id=43 x=860 y=6 width=81 height=81 xoffset=14 yoffset=71 xadvance=108 page=0 chnl=15 +char id=44 x=953 y=6 width=30 height=47 xoffset=4 yoffset=147 xadvance=46 page=0 chnl=15 +char id=45 x=995 y=6 width=54 height=18 xoffset=10 yoffset=101 xadvance=74 page=0 chnl=15 +char id=46 x=1061 y=6 width=26 height=27 xoffset=10 yoffset=134 xadvance=45 page=0 chnl=15 +char id=47 x=1099 y=6 width=58 height=143 xoffset=1 yoffset=34 xadvance=60 page=0 chnl=15 +char id=48 x=1169 y=6 width=92 height=123 xoffset=8 yoffset=38 xadvance=107 page=0 chnl=15 +char id=49 x=1273 y=6 width=50 height=119 xoffset=8 yoffset=40 xadvance=76 page=0 chnl=15 +char id=50 x=1335 y=6 width=84 height=121 xoffset=9 yoffset=38 xadvance=100 page=0 chnl=15 +char id=51 x=1431 y=6 width=89 height=123 xoffset=9 yoffset=38 xadvance=105 page=0 chnl=15 +char id=52 x=1532 y=6 width=94 height=119 xoffset=7 yoffset=40 xadvance=108 page=0 chnl=15 +char id=53 x=1638 y=6 width=86 height=121 xoffset=10 yoffset=40 xadvance=103 page=0 chnl=15 +char id=54 x=1736 y=6 width=91 height=123 xoffset=7 yoffset=38 xadvance=106 page=0 chnl=15 +char id=55 x=1839 y=6 width=82 height=119 xoffset=6 yoffset=40 xadvance=95 page=0 chnl=15 +char id=56 x=1933 y=6 width=91 height=123 xoffset=7 yoffset=38 xadvance=105 page=0 chnl=15 +char id=57 x=2036 y=6 width=91 height=123 xoffset=8 yoffset=38 xadvance=106 page=0 chnl=15 +char id=58 x=2139 y=6 width=26 height=90 xoffset=10 yoffset=71 xadvance=45 page=0 chnl=15 +char id=59 x=2177 y=6 width=32 height=123 xoffset=4 yoffset=71 xadvance=45 page=0 chnl=15 +char id=60 x=2221 y=6 width=80 height=90 xoffset=14 yoffset=67 xadvance=108 page=0 chnl=15 +char id=61 x=2313 y=6 width=78 height=56 xoffset=15 yoffset=84 xadvance=108 page=0 chnl=15 +char id=62 x=2403 y=6 width=80 height=90 xoffset=14 yoffset=67 xadvance=108 page=0 chnl=15 +char id=63 x=2495 y=6 width=76 height=123 xoffset=5 yoffset=38 xadvance=86 page=0 chnl=15 +char id=64 x=2583 y=6 width=132 height=136 xoffset=7 yoffset=41 xadvance=146 page=0 chnl=15 +char id=65 x=2727 y=6 width=111 height=119 xoffset=3 yoffset=40 xadvance=116 page=0 chnl=15 +char id=66 x=2850 y=6 width=90 height=119 xoffset=10 yoffset=40 xadvance=105 page=0 chnl=15 +char id=67 x=2952 y=6 width=105 height=123 xoffset=8 yoffset=38 xadvance=119 page=0 chnl=15 +char id=68 x=3069 y=6 width=99 height=119 xoffset=10 yoffset=40 xadvance=116 page=0 chnl=15 +char id=69 x=3180 y=6 width=79 height=119 xoffset=10 yoffset=40 xadvance=97 page=0 chnl=15 +char id=70 x=3271 y=6 width=77 height=119 xoffset=10 yoffset=40 xadvance=93 page=0 chnl=15 +char id=71 x=3360 y=6 width=106 height=123 xoffset=8 yoffset=38 xadvance=121 page=0 chnl=15 +char id=72 x=3478 y=6 width=99 height=119 xoffset=10 yoffset=40 xadvance=119 page=0 chnl=15 +char id=73 x=3589 y=6 width=23 height=119 xoffset=10 yoffset=40 xadvance=43 page=0 chnl=15 +char id=74 x=3624 y=6 width=75 height=121 xoffset=4 yoffset=40 xadvance=89 page=0 chnl=15 +char id=75 x=3711 y=6 width=97 height=119 xoffset=10 yoffset=40 xadvance=108 page=0 chnl=15 +char id=76 x=3820 y=6 width=75 height=119 xoffset=10 yoffset=40 xadvance=90 page=0 chnl=15 +char id=77 x=3907 y=6 width=126 height=119 xoffset=10 yoffset=40 xadvance=146 page=0 chnl=15 +char id=78 x=6 y=218 width=99 height=119 xoffset=10 yoffset=40 xadvance=119 page=0 chnl=15 +char id=79 x=117 y=218 width=109 height=123 xoffset=8 yoffset=38 xadvance=124 page=0 chnl=15 +char id=80 x=238 y=218 width=88 height=119 xoffset=10 yoffset=40 xadvance=103 page=0 chnl=15 +char id=81 x=338 y=218 width=109 height=132 xoffset=8 yoffset=38 xadvance=124 page=0 chnl=15 +char id=82 x=459 y=218 width=92 height=119 xoffset=10 yoffset=40 xadvance=104 page=0 chnl=15 +char id=83 x=563 y=218 width=92 height=123 xoffset=6 yoffset=38 xadvance=104 page=0 chnl=15 +char id=84 x=667 y=218 width=96 height=119 xoffset=5 yoffset=40 xadvance=105 page=0 chnl=15 +char id=85 x=775 y=218 width=98 height=121 xoffset=10 yoffset=40 xadvance=118 page=0 chnl=15 +char id=86 x=885 y=218 width=111 height=119 xoffset=3 yoffset=40 xadvance=116 page=0 chnl=15 +char id=87 x=1008 y=218 width=159 height=119 xoffset=2 yoffset=40 xadvance=162 page=0 chnl=15 +char id=88 x=1179 y=218 width=105 height=119 xoffset=3 yoffset=40 xadvance=110 page=0 chnl=15 +char id=89 x=1296 y=218 width=109 height=119 xoffset=2 yoffset=40 xadvance=113 page=0 chnl=15 +char id=90 x=1417 y=218 width=89 height=119 xoffset=8 yoffset=40 xadvance=104 page=0 chnl=15 +char id=91 x=1518 y=218 width=42 height=158 xoffset=17 yoffset=35 xadvance=62 page=0 chnl=15 +char id=92 x=1572 y=218 width=58 height=143 xoffset=1 yoffset=34 xadvance=60 page=0 chnl=15 +char id=93 x=1642 y=218 width=43 height=158 xoffset=3 yoffset=35 xadvance=62 page=0 chnl=15 +char id=94 x=1697 y=218 width=68 height=52 xoffset=4 yoffset=43 xadvance=76 page=0 chnl=15 +char id=95 x=1777 y=218 width=77 height=17 xoffset=-1 yoffset=159 xadvance=74 page=0 chnl=15 +char id=96 x=1866 y=218 width=34 height=28 xoffset=23 yoffset=31 xadvance=79 page=0 chnl=15 +char id=97 x=1912 y=218 width=78 height=93 xoffset=5 yoffset=68 xadvance=92 page=0 chnl=15 +char id=98 x=2002 y=218 width=85 height=121 xoffset=10 yoffset=40 xadvance=101 page=0 chnl=15 +char id=99 x=2099 y=218 width=81 height=93 xoffset=6 yoffset=68 xadvance=92 page=0 chnl=15 +char id=100 x=2192 y=218 width=85 height=121 xoffset=6 yoffset=40 xadvance=101 page=0 chnl=15 +char id=101 x=2289 y=218 width=83 height=93 xoffset=6 yoffset=68 xadvance=95 page=0 chnl=15 +char id=102 x=2384 y=218 width=55 height=125 xoffset=2 yoffset=34 xadvance=59 page=0 chnl=15 +char id=103 x=2451 y=218 width=85 height=127 xoffset=6 yoffset=68 xadvance=100 page=0 chnl=15 +char id=104 x=2548 y=218 width=80 height=119 xoffset=9 yoffset=40 xadvance=98 page=0 chnl=15 +char id=105 x=2640 y=218 width=25 height=125 xoffset=8 yoffset=34 xadvance=40 page=0 chnl=15 +char id=106 x=2677 y=218 width=38 height=159 xoffset=-5 yoffset=34 xadvance=40 page=0 chnl=15 +char id=107 x=2727 y=218 width=82 height=119 xoffset=9 yoffset=40 xadvance=91 page=0 chnl=15 +char id=108 x=2821 y=218 width=22 height=119 xoffset=9 yoffset=40 xadvance=40 page=0 chnl=15 +char id=109 x=2855 y=218 width=126 height=91 xoffset=9 yoffset=68 xadvance=144 page=0 chnl=15 +char id=110 x=2993 y=218 width=79 height=91 xoffset=9 yoffset=68 xadvance=97 page=0 chnl=15 +char id=111 x=3084 y=218 width=86 height=93 xoffset=6 yoffset=68 xadvance=97 page=0 chnl=15 +char id=112 x=3182 y=218 width=85 height=125 xoffset=9 yoffset=68 xadvance=100 page=0 chnl=15 +char id=113 x=3279 y=218 width=85 height=125 xoffset=6 yoffset=68 xadvance=100 page=0 chnl=15 +char id=114 x=3376 y=218 width=52 height=91 xoffset=9 yoffset=68 xadvance=63 page=0 chnl=15 +char id=115 x=3440 y=218 width=77 height=93 xoffset=5 yoffset=68 xadvance=87 page=0 chnl=15 +char id=116 x=3529 y=218 width=53 height=113 xoffset=3 yoffset=48 xadvance=60 page=0 chnl=15 +char id=117 x=3594 y=218 width=79 height=91 xoffset=9 yoffset=70 xadvance=97 page=0 chnl=15 +char id=118 x=3685 y=218 width=88 height=89 xoffset=2 yoffset=70 xadvance=92 page=0 chnl=15 +char id=119 x=3785 y=218 width=129 height=89 xoffset=3 yoffset=70 xadvance=135 page=0 chnl=15 +char id=120 x=3926 y=218 width=82 height=89 xoffset=4 yoffset=70 xadvance=90 page=0 chnl=15 +char id=121 x=6 y=430 width=88 height=123 xoffset=2 yoffset=70 xadvance=92 page=0 chnl=15 +char id=122 x=106 y=430 width=74 height=89 xoffset=8 yoffset=70 xadvance=89 page=0 chnl=15 +char id=123 x=192 y=430 width=55 height=158 xoffset=4 yoffset=35 xadvance=62 page=0 chnl=15 +char id=124 x=259 y=430 width=21 height=153 xoffset=18 yoffset=23 xadvance=56 page=0 chnl=15 +char id=125 x=292 y=430 width=56 height=158 xoffset=3 yoffset=35 xadvance=62 page=0 chnl=15 +char id=126 x=360 y=430 width=78 height=28 xoffset=15 yoffset=98 xadvance=108 page=0 chnl=15 +char id=163 x=450 y=430 width=86 height=121 xoffset=9 yoffset=38 xadvance=105 page=0 chnl=15 +char id=165 x=548 y=430 width=88 height=119 xoffset=1 yoffset=40 xadvance=90 page=0 chnl=15 +char id=167 x=648 y=430 width=79 height=146 xoffset=7 yoffset=38 xadvance=92 page=0 chnl=15 +char id=171 x=739 y=430 width=78 height=72 xoffset=9 yoffset=75 xadvance=95 page=0 chnl=15 +char id=176 x=829 y=430 width=57 height=57 xoffset=8 yoffset=39 xadvance=73 page=0 chnl=15 +char id=187 x=898 y=430 width=79 height=72 xoffset=8 yoffset=75 xadvance=96 page=0 chnl=15 +char id=191 x=989 y=430 width=76 height=123 xoffset=6 yoffset=69 xadvance=86 page=0 chnl=15 +char id=192 x=1077 y=430 width=111 height=157 xoffset=3 yoffset=2 xadvance=116 page=0 chnl=15 +char id=193 x=1200 y=430 width=111 height=157 xoffset=3 yoffset=2 xadvance=116 page=0 chnl=15 +char id=195 x=1323 y=430 width=111 height=154 xoffset=3 yoffset=5 xadvance=116 page=0 chnl=15 +char id=196 x=1446 y=430 width=111 height=154 xoffset=3 yoffset=5 xadvance=116 page=0 chnl=15 +char id=199 x=1569 y=430 width=105 height=158 xoffset=8 yoffset=38 xadvance=119 page=0 chnl=15 +char id=201 x=1686 y=430 width=79 height=157 xoffset=10 yoffset=2 xadvance=97 page=0 chnl=15 +char id=202 x=1777 y=430 width=79 height=155 xoffset=10 yoffset=4 xadvance=97 page=0 chnl=15 +char id=205 x=1868 y=430 width=38 height=157 xoffset=10 yoffset=2 xadvance=43 page=0 chnl=15 +char id=209 x=1918 y=430 width=99 height=153 xoffset=10 yoffset=6 xadvance=119 page=0 chnl=15 +char id=211 x=2029 y=430 width=109 height=159 xoffset=8 yoffset=2 xadvance=124 page=0 chnl=15 +char id=212 x=2150 y=430 width=109 height=157 xoffset=8 yoffset=4 xadvance=124 page=0 chnl=15 +char id=214 x=2271 y=430 width=109 height=156 xoffset=8 yoffset=5 xadvance=124 page=0 chnl=15 +char id=215 x=2392 y=430 width=82 height=82 xoffset=13 yoffset=71 xadvance=108 page=0 chnl=15 +char id=220 x=2486 y=430 width=98 height=156 xoffset=10 yoffset=5 xadvance=118 page=0 chnl=15 +char id=223 x=2596 y=430 width=87 height=121 xoffset=10 yoffset=38 xadvance=103 page=0 chnl=15 +char id=224 x=2695 y=430 width=78 height=130 xoffset=5 yoffset=31 xadvance=92 page=0 chnl=15 +char id=225 x=2785 y=430 width=78 height=130 xoffset=5 yoffset=31 xadvance=92 page=0 chnl=15 +char id=226 x=2875 y=430 width=78 height=128 xoffset=5 yoffset=33 xadvance=92 page=0 chnl=15 +char id=227 x=2965 y=430 width=78 height=125 xoffset=5 yoffset=36 xadvance=92 page=0 chnl=15 +char id=228 x=3055 y=430 width=78 height=126 xoffset=5 yoffset=35 xadvance=92 page=0 chnl=15 +char id=231 x=3145 y=430 width=81 height=128 xoffset=6 yoffset=68 xadvance=92 page=0 chnl=15 +char id=232 x=3238 y=430 width=83 height=130 xoffset=6 yoffset=31 xadvance=95 page=0 chnl=15 +char id=233 x=3333 y=430 width=83 height=130 xoffset=6 yoffset=31 xadvance=95 page=0 chnl=15 +char id=234 x=3428 y=430 width=83 height=128 xoffset=6 yoffset=33 xadvance=95 page=0 chnl=15 +char id=237 x=3523 y=430 width=37 height=128 xoffset=9 yoffset=31 xadvance=40 page=0 chnl=15 +char id=238 x=3572 y=430 width=61 height=126 xoffset=-10 yoffset=33 xadvance=40 page=0 chnl=15 +char id=241 x=3645 y=430 width=79 height=123 xoffset=9 yoffset=36 xadvance=97 page=0 chnl=15 +char id=243 x=3736 y=430 width=86 height=130 xoffset=6 yoffset=31 xadvance=97 page=0 chnl=15 +char id=244 x=3834 y=430 width=86 height=128 xoffset=6 yoffset=33 xadvance=97 page=0 chnl=15 +char id=245 x=3932 y=430 width=86 height=125 xoffset=6 yoffset=36 xadvance=97 page=0 chnl=15 +char id=246 x=6 y=642 width=86 height=126 xoffset=6 yoffset=35 xadvance=97 page=0 chnl=15 +char id=250 x=104 y=642 width=79 height=130 xoffset=9 yoffset=31 xadvance=97 page=0 chnl=15 +char id=251 x=195 y=642 width=79 height=128 xoffset=9 yoffset=33 xadvance=97 page=0 chnl=15 +char id=252 x=286 y=642 width=79 height=126 xoffset=9 yoffset=35 xadvance=97 page=0 chnl=15 +char id=286 x=377 y=642 width=106 height=151 xoffset=8 yoffset=10 xadvance=121 page=0 chnl=15 +char id=287 x=495 y=642 width=85 height=156 xoffset=6 yoffset=39 xadvance=100 page=0 chnl=15 +char id=304 x=592 y=642 width=25 height=154 xoffset=9 yoffset=5 xadvance=43 page=0 chnl=15 +char id=305 x=629 y=642 width=22 height=89 xoffset=9 yoffset=70 xadvance=40 page=0 chnl=15 +char id=339 x=663 y=642 width=148 height=93 xoffset=6 yoffset=68 xadvance=158 page=0 chnl=15 +char id=350 x=823 y=642 width=92 height=158 xoffset=6 yoffset=38 xadvance=104 page=0 chnl=15 +char id=351 x=927 y=642 width=77 height=128 xoffset=5 yoffset=68 xadvance=87 page=0 chnl=15 +char id=1028 x=1016 y=642 width=95 height=123 xoffset=8 yoffset=38 xadvance=110 page=0 chnl=15 +char id=1030 x=1123 y=642 width=23 height=119 xoffset=10 yoffset=40 xadvance=43 page=0 chnl=15 +char id=1040 x=1158 y=642 width=111 height=119 xoffset=3 yoffset=40 xadvance=116 page=0 chnl=15 +char id=1041 x=1281 y=642 width=89 height=119 xoffset=10 yoffset=40 xadvance=105 page=0 chnl=15 +char id=1042 x=1382 y=642 width=90 height=119 xoffset=10 yoffset=40 xadvance=105 page=0 chnl=15 +char id=1043 x=1484 y=642 width=78 height=119 xoffset=10 yoffset=40 xadvance=92 page=0 chnl=15 +char id=1044 x=1574 y=642 width=117 height=148 xoffset=3 yoffset=40 xadvance=124 page=0 chnl=15 +char id=1045 x=1703 y=642 width=79 height=119 xoffset=10 yoffset=40 xadvance=97 page=0 chnl=15 +char id=1046 x=1794 y=642 width=161 height=119 xoffset=3 yoffset=40 xadvance=167 page=0 chnl=15 +char id=1047 x=1967 y=642 width=89 height=123 xoffset=9 yoffset=38 xadvance=105 page=0 chnl=15 +char id=1048 x=2068 y=642 width=99 height=119 xoffset=10 yoffset=40 xadvance=119 page=0 chnl=15 +char id=1049 x=2179 y=642 width=99 height=149 xoffset=10 yoffset=10 xadvance=119 page=0 chnl=15 +char id=1050 x=2290 y=642 width=99 height=119 xoffset=10 yoffset=40 xadvance=110 page=0 chnl=15 +char id=1051 x=2401 y=642 width=103 height=119 xoffset=3 yoffset=40 xadvance=116 page=0 chnl=15 +char id=1052 x=2516 y=642 width=126 height=119 xoffset=10 yoffset=40 xadvance=146 page=0 chnl=15 +char id=1053 x=2654 y=642 width=99 height=119 xoffset=10 yoffset=40 xadvance=119 page=0 chnl=15 +char id=1054 x=2765 y=642 width=109 height=123 xoffset=8 yoffset=38 xadvance=124 page=0 chnl=15 +char id=1055 x=2886 y=642 width=95 height=119 xoffset=13 yoffset=40 xadvance=120 page=0 chnl=15 +char id=1056 x=2993 y=642 width=88 height=119 xoffset=10 yoffset=40 xadvance=103 page=0 chnl=15 +char id=1057 x=3093 y=642 width=105 height=123 xoffset=8 yoffset=38 xadvance=119 page=0 chnl=15 +char id=1058 x=3210 y=642 width=96 height=119 xoffset=5 yoffset=40 xadvance=105 page=0 chnl=15 +char id=1059 x=3318 y=642 width=101 height=121 xoffset=2 yoffset=40 xadvance=105 page=0 chnl=15 +char id=1060 x=3431 y=642 width=120 height=126 xoffset=8 yoffset=38 xadvance=135 page=0 chnl=15 +char id=1062 x=3563 y=642 width=111 height=147 xoffset=10 yoffset=40 xadvance=125 page=0 chnl=15 +char id=1063 x=3686 y=642 width=93 height=119 xoffset=14 yoffset=40 xadvance=117 page=0 chnl=15 +char id=1065 x=3791 y=642 width=153 height=147 xoffset=10 yoffset=40 xadvance=167 page=0 chnl=15 +char id=1068 x=3956 y=642 width=89 height=119 xoffset=10 yoffset=40 xadvance=105 page=0 chnl=15 +char id=1070 x=6 y=854 width=151 height=123 xoffset=10 yoffset=38 xadvance=168 page=0 chnl=15 +char id=1071 x=169 y=854 width=92 height=119 xoffset=7 yoffset=40 xadvance=109 page=0 chnl=15 +char id=1072 x=273 y=854 width=78 height=93 xoffset=5 yoffset=68 xadvance=92 page=0 chnl=15 +char id=1073 x=363 y=854 width=85 height=124 xoffset=6 yoffset=37 xadvance=96 page=0 chnl=15 +char id=1074 x=460 y=854 width=77 height=89 xoffset=9 yoffset=70 xadvance=91 page=0 chnl=15 +char id=1075 x=549 y=854 width=60 height=89 xoffset=9 yoffset=70 xadvance=73 page=0 chnl=15 +char id=1076 x=621 y=854 width=99 height=115 xoffset=2 yoffset=70 xadvance=105 page=0 chnl=15 +char id=1077 x=732 y=854 width=83 height=93 xoffset=6 yoffset=68 xadvance=95 page=0 chnl=15 +char id=1078 x=827 y=854 width=131 height=89 xoffset=4 yoffset=70 xadvance=138 page=0 chnl=15 +char id=1079 x=970 y=854 width=73 height=93 xoffset=5 yoffset=68 xadvance=82 page=0 chnl=15 +char id=1080 x=1055 y=854 width=79 height=89 xoffset=9 yoffset=70 xadvance=97 page=0 chnl=15 +char id=1081 x=1146 y=854 width=79 height=120 xoffset=9 yoffset=39 xadvance=97 page=0 chnl=15 +char id=1082 x=1237 y=854 width=82 height=89 xoffset=9 yoffset=70 xadvance=91 page=0 chnl=15 +char id=1083 x=1331 y=854 width=84 height=89 xoffset=3 yoffset=70 xadvance=96 page=0 chnl=15 +char id=1084 x=1427 y=854 width=104 height=89 xoffset=9 yoffset=70 xadvance=122 page=0 chnl=15 +char id=1085 x=1543 y=854 width=76 height=89 xoffset=9 yoffset=70 xadvance=94 page=0 chnl=15 +char id=1086 x=1631 y=854 width=86 height=93 xoffset=6 yoffset=68 xadvance=97 page=0 chnl=15 +char id=1087 x=1729 y=854 width=77 height=89 xoffset=9 yoffset=70 xadvance=95 page=0 chnl=15 +char id=1088 x=1818 y=854 width=85 height=125 xoffset=9 yoffset=68 xadvance=100 page=0 chnl=15 +char id=1089 x=1915 y=854 width=81 height=93 xoffset=6 yoffset=68 xadvance=92 page=0 chnl=15 +char id=1090 x=2008 y=854 width=78 height=89 xoffset=5 yoffset=70 xadvance=88 page=0 chnl=15 +char id=1091 x=2098 y=854 width=88 height=123 xoffset=2 yoffset=70 xadvance=92 page=0 chnl=15 +char id=1092 x=2198 y=854 width=110 height=150 xoffset=6 yoffset=40 xadvance=121 page=0 chnl=15 +char id=1093 x=2320 y=854 width=82 height=89 xoffset=4 yoffset=70 xadvance=90 page=0 chnl=15 +char id=1094 x=2414 y=854 width=90 height=118 xoffset=9 yoffset=70 xadvance=103 page=0 chnl=15 +char id=1095 x=2516 y=854 width=76 height=90 xoffset=9 yoffset=69 xadvance=93 page=0 chnl=15 +char id=1096 x=2604 y=854 width=118 height=89 xoffset=9 yoffset=70 xadvance=136 page=0 chnl=15 +char id=1097 x=2734 y=854 width=135 height=115 xoffset=9 yoffset=70 xadvance=148 page=0 chnl=15 +char id=1100 x=2881 y=854 width=78 height=89 xoffset=9 yoffset=70 xadvance=92 page=0 chnl=15 +char id=1102 x=2971 y=854 width=122 height=93 xoffset=4 yoffset=68 xadvance=132 page=0 chnl=15 +char id=1103 x=3105 y=854 width=77 height=89 xoffset=5 yoffset=70 xadvance=91 page=0 chnl=15 +char id=1108 x=3194 y=854 width=81 height=93 xoffset=3 yoffset=68 xadvance=90 page=0 chnl=15 +char id=1110 x=3287 y=854 width=25 height=125 xoffset=8 yoffset=34 xadvance=40 page=0 chnl=15 +char id=1111 x=3324 y=854 width=58 height=124 xoffset=-9 yoffset=35 xadvance=40 page=0 chnl=15 +char id=8209 x=3394 y=854 width=54 height=18 xoffset=10 yoffset=101 xadvance=74 page=0 chnl=15 +char id=8211 x=3460 y=854 width=82 height=18 xoffset=-1 yoffset=101 xadvance=79 page=0 chnl=15 +char id=8220 x=3554 y=854 width=64 height=47 xoffset=5 yoffset=40 xadvance=78 page=0 chnl=15 +char id=8222 x=3630 y=854 width=65 height=47 xoffset=6 yoffset=147 xadvance=76 page=0 chnl=15 +char id=8226 x=3707 y=854 width=42 height=41 xoffset=19 yoffset=91 xadvance=80 page=0 chnl=15 +char id=8364 x=3761 y=854 width=98 height=123 xoffset=3 yoffset=38 xadvance=109 page=0 chnl=15 +char id=8627 x=3871 y=854 width=132 height=105 xoffset=15 yoffset=40 xadvance=162 page=0 chnl=15 +char id=8679 x=6 y=1066 width=150 height=128 xoffset=12 yoffset=31 xadvance=173 page=0 chnl=15 +char id=9003 x=168 y=1066 width=171 height=119 xoffset=12 yoffset=40 xadvance=196 page=0 chnl=15 +char id=9251 x=351 y=1066 width=100 height=39 xoffset=10 yoffset=147 xadvance=120 page=0 chnl=15 +char id=9654 x=463 y=1066 width=130 height=149 xoffset=15 yoffset=25 xadvance=151 page=0 chnl=15 +char id=9664 x=605 y=1066 width=130 height=149 xoffset=7 yoffset=25 xadvance=151 page=0 chnl=15 +char id=9675 x=747 y=1066 width=133 height=134 xoffset=8 yoffset=33 xadvance=148 page=0 chnl=15 +char id=9679 x=892 y=1066 width=133 height=134 xoffset=8 yoffset=33 xadvance=148 page=0 chnl=15 +char id=9881 x=1037 y=1066 width=0 height=0 xoffset=0 yoffset=0 xadvance=0 page=0 chnl=15 +char id=10003 x=1049 y=1066 width=118 height=89 xoffset=12 yoffset=61 xadvance=141 page=0 chnl=15 +char id=10004 x=1179 y=1066 width=0 height=0 xoffset=0 yoffset=0 xadvance=0 page=0 chnl=15 +char id=10005 x=1191 y=1066 width=0 height=0 xoffset=0 yoffset=0 xadvance=0 page=0 chnl=15 +char id=65039 x=1203 y=1066 width=0 height=0 xoffset=0 yoffset=0 xadvance=0 page=0 chnl=15 +char id=127783 x=1215 y=1066 width=0 height=0 xoffset=0 yoffset=0 xadvance=0 page=0 chnl=15 +char id=128293 x=1227 y=1066 width=0 height=0 xoffset=0 yoffset=0 xadvance=0 page=0 chnl=15 diff --git a/selfdrive/assets/fonts/Pretendard-SemiBold.png b/selfdrive/assets/fonts/Pretendard-SemiBold.png new file mode 100644 index 0000000000..303ed920d6 Binary files /dev/null and b/selfdrive/assets/fonts/Pretendard-SemiBold.png differ diff --git a/selfdrive/assets/fonts/Pretendard-SemiBold.ttf b/selfdrive/assets/fonts/Pretendard-SemiBold.ttf new file mode 100644 index 0000000000..9f2690f097 Binary files /dev/null and b/selfdrive/assets/fonts/Pretendard-SemiBold.ttf differ diff --git a/system/manager/build.py b/system/manager/build.py index d79e7fd2ad..9e920da99d 100755 --- a/system/manager/build.py +++ b/system/manager/build.py @@ -20,6 +20,7 @@ def build(spinner: Spinner, dirty: bool = False, minimal: bool = False) -> None: env = os.environ.copy() env['SCONS_PROGRESS'] = "1" + env['PYTHONUNBUFFERED'] = "1" nproc = os.cpu_count() if nproc is None: nproc = 2 @@ -35,13 +36,14 @@ def build(spinner: Spinner, dirty: bool = False, minimal: bool = False) -> None: compile_output: list[bytes] = [] for n in (nproc, nproc/2, 1): compile_output.clear() - scons: subprocess.Popen = subprocess.Popen(["scons", f"-j{int(n)}", "--cache-populate", *extra_args], cwd=BASEDIR, env=env, stderr=subprocess.PIPE) - assert scons.stderr is not None + scons: subprocess.Popen = subprocess.Popen(["scons", f"-j{int(n)}", "--cache-populate", *extra_args], cwd=BASEDIR, env=env, + stdout=subprocess.PIPE, stderr=subprocess.STDOUT) + assert scons.stdout is not None - # Read progress from stderr and update spinner + # Read progress and build output from scons and update spinner. while scons.poll() is None: try: - line = scons.stderr.readline() + line = scons.stdout.readline() if line is None: continue line = line.rstrip() @@ -52,7 +54,9 @@ def build(spinner: Spinner, dirty: bool = False, minimal: bool = False) -> None: spinner.update_progress(MAX_BUILD_PROGRESS * min(1., i / TOTAL_SCONS_NODES), 100.) elif len(line): compile_output.append(line) - print(line.decode('utf8', 'replace')) + line_text = line.decode('utf8', 'replace') + spinner.update(line_text) + print(line_text) except Exception: pass @@ -61,8 +65,8 @@ def build(spinner: Spinner, dirty: bool = False, minimal: bool = False) -> None: if scons.returncode != 0: # Read remaining output - if scons.stderr is not None: - compile_output += scons.stderr.read().split(b'\n') + if scons.stdout is not None: + compile_output += scons.stdout.read().split(b'\n') # Build failed log errors error_s = b"\n".join(compile_output).decode('utf8', 'replace') diff --git a/system/ui/lib/application.py b/system/ui/lib/application.py index 4e286052e3..ccbbdd3056 100644 --- a/system/ui/lib/application.py +++ b/system/ui/lib/application.py @@ -101,6 +101,7 @@ class FontWeight(StrEnum): MEDIUM = "Inter-Medium.fnt" BOLD = "Inter-Bold.fnt" SEMI_BOLD = "Inter-SemiBold.fnt" + PRETENDARD = "Pretendard-SemiBold.fnt" UNIFONT = "unifont.fnt" # Small UI fonts diff --git a/system/ui/spinner.py b/system/ui/spinner.py index 8c9f9edb62..689f1bde22 100644 --- a/system/ui/spinner.py +++ b/system/ui/spinner.py @@ -5,7 +5,7 @@ from openpilot.common.basedir import BASEDIR from openpilot.common.network_info import start_ip_monitor, label_with_port -from openpilot.system.ui.lib.application import gui_app +from openpilot.system.ui.lib.application import FONT_SCALE, FontWeight, gui_app from openpilot.system.ui.lib.text_measure import measure_text_cached from openpilot.system.ui.text import wrap_text from openpilot.system.ui.widgets import Widget @@ -20,8 +20,10 @@ MARGIN_H = 100 FONT_SIZE = 96 LINE_HEIGHT = 104 - IP_FONT_SIZE = 50 - IP_TOP_MARGIN = 40 + IP_FONT_SIZE = 72 + IP_TOP_MARGIN = 36 + STATUS_FONT_SIZE = 48 + STATUS_LINE_MARGIN = 14 else: PROGRESS_BAR_WIDTH = 268 PROGRESS_BAR_HEIGHT = 10 @@ -31,8 +33,10 @@ MARGIN_H = 20 FONT_SIZE = 28 LINE_HEIGHT = 32 - IP_FONT_SIZE = 18 - IP_TOP_MARGIN = 5 + IP_FONT_SIZE = 36 + IP_TOP_MARGIN = 12 + STATUS_FONT_SIZE = 28 + STATUS_LINE_MARGIN = 4 DEGREES_PER_SECOND = 360.0 # one full rotation per second RECOVERY_PORT = 6999 DARKGRAY = (55, 55, 55, 255) @@ -42,34 +46,56 @@ def clamp(value, min_value, max_value): return max(min(value, max_value), min_value) +def fit_single_line(text: str, font: rl.Font, font_size: float, max_width: float) -> str: + text = " ".join(text.split()) + if not text: + return "" + if rl.measure_text_ex(font, text, font_size, 0.0).x <= max_width: + return text + + suffix = "..." + lo, hi = 0, len(text) + while lo < hi: + mid = (lo + hi + 1) // 2 + candidate = text[:mid].rstrip() + suffix + if rl.measure_text_ex(font, candidate, font_size, 0.0).x <= max_width: + lo = mid + else: + hi = mid - 1 + return text[:lo].rstrip() + suffix + + class Spinner(Widget): def __init__(self): super().__init__() - self._comma_texture = gui_app.texture("images/spinner_comma.png", TEXTURE_SIZE, TEXTURE_SIZE) - self._spinner_texture = gui_app.texture("images/spinner_track.png", TEXTURE_SIZE, TEXTURE_SIZE, alpha_premultiply=True) + self._comma_texture = gui_app.texture("img_spinner_comma.png", TEXTURE_SIZE, TEXTURE_SIZE) + self._spinner_texture = gui_app.texture("img_spinner_track.png", TEXTURE_SIZE, TEXTURE_SIZE, alpha_premultiply=True) self._rotation = 0.0 self._progress: int | None = None + self._status_line = "" self._wrapped_lines: list[str] = [] start_ip_monitor() def set_text(self, text: str) -> None: + text = text.strip() if text.isdigit(): self._progress = clamp(int(text), 0, 100) self._wrapped_lines = [] else: - self._progress = None - self._wrapped_lines = wrap_text(text, FONT_SIZE, gui_app.width - MARGIN_H) + self._status_line = text + if self._progress is None: + self._wrapped_lines = wrap_text(text, FONT_SIZE, gui_app.width - MARGIN_H) def _render(self, rect: rl.Rectangle): - # Recovery IP label at top-center (white, monospace-style) + # Recovery IP label at top-center. ip_label = label_with_port(RECOVERY_PORT) - ip_size = rl.measure_text_ex(gui_app.font(), ip_label, IP_FONT_SIZE, 1.0) - rl.draw_text_ex( - gui_app.font(), - ip_label, - rl.Vector2(gui_app.width / 2.0 - ip_size.x / 2.0, IP_TOP_MARGIN), - IP_FONT_SIZE, 1.0, rl.WHITE, - ) + ip_font = gui_app.font(FontWeight.PRETENDARD) + ip_scaled_size = IP_FONT_SIZE * FONT_SCALE + ip_size = rl.measure_text_ex(ip_font, ip_label, ip_scaled_size, 0.0) + ip_x = rect.x + rect.width / 2.0 - ip_size.x / 2.0 + draw_text_ex = getattr(rl, "_orig_draw_text_ex", rl.draw_text_ex) + draw_text_ex(ip_font, ip_label, rl.Vector2(round(ip_x), rect.y + IP_TOP_MARGIN), + ip_scaled_size, 0.0, rl.Color(230, 230, 230, 235)) if self._wrapped_lines: # Calculate total height required for spinner and text spacing = WRAPPED_SPACING @@ -101,6 +127,16 @@ def _render(self, rect: rl.Rectangle): bar.width *= self._progress / 100.0 rl.draw_rectangle_rounded(bar, 1, 10, rl.WHITE) + + if self._status_line: + status_font = gui_app.font(FontWeight.PRETENDARD) + status_scaled_size = STATUS_FONT_SIZE * FONT_SCALE + status_line = fit_single_line(self._status_line, status_font, status_scaled_size, gui_app.width - MARGIN_H) + status_size = rl.measure_text_ex(status_font, status_line, status_scaled_size, 0.0) + status_y = y_pos - STATUS_LINE_MARGIN - status_size.y + draw_text_ex = getattr(rl, "_orig_draw_text_ex", rl.draw_text_ex) + draw_text_ex(status_font, status_line, rl.Vector2(round(center.x - status_size.x / 2), status_y), + status_scaled_size, 0.0, rl.LIGHTGRAY) elif self._wrapped_lines: for i, line in enumerate(self._wrapped_lines): text_size = measure_text_cached(gui_app.font(), line, FONT_SIZE) @@ -127,8 +163,8 @@ def main(): spinner = Spinner() for _ in gui_app.render(): text_list = _read_stdin() - if text_list: - spinner.set_text(text_list[-1]) + for text in text_list: + spinner.set_text(text) spinner.render(rl.Rectangle(0, 0, gui_app.width, gui_app.height))