diff --git a/CMakeLists.txt b/CMakeLists.txt index 14908ba..7ad4c06 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -496,14 +496,25 @@ SET (CUBICSDR_RESOURCES ${PROJECT_SOURCE_DIR}/font/vera_sans_mono16.fnt ${PROJECT_SOURCE_DIR}/font/vera_sans_mono18.fnt ${PROJECT_SOURCE_DIR}/font/vera_sans_mono24.fnt + ${PROJECT_SOURCE_DIR}/font/vera_sans_mono27.fnt ${PROJECT_SOURCE_DIR}/font/vera_sans_mono32.fnt + ${PROJECT_SOURCE_DIR}/font/vera_sans_mono36.fnt ${PROJECT_SOURCE_DIR}/font/vera_sans_mono48.fnt + ${PROJECT_SOURCE_DIR}/font/vera_sans_mono64.fnt + ${PROJECT_SOURCE_DIR}/font/vera_sans_mono72.fnt + ${PROJECT_SOURCE_DIR}/font/vera_sans_mono96.fnt ${PROJECT_SOURCE_DIR}/font/vera_sans_mono12_0.png ${PROJECT_SOURCE_DIR}/font/vera_sans_mono16_0.png ${PROJECT_SOURCE_DIR}/font/vera_sans_mono18_0.png ${PROJECT_SOURCE_DIR}/font/vera_sans_mono24_0.png + ${PROJECT_SOURCE_DIR}/font/vera_sans_mono27_0.png ${PROJECT_SOURCE_DIR}/font/vera_sans_mono32_0.png + ${PROJECT_SOURCE_DIR}/font/vera_sans_mono36_0.png + ${PROJECT_SOURCE_DIR}/font/vera_sans_mono42_0.png ${PROJECT_SOURCE_DIR}/font/vera_sans_mono48_0.png + ${PROJECT_SOURCE_DIR}/font/vera_sans_mono64_0.png + ${PROJECT_SOURCE_DIR}/font/vera_sans_mono72_0.png + ${PROJECT_SOURCE_DIR}/font/vera_sans_mono96_0.png ) set(REG_EXT "[^/]*([.]cpp|[.]c|[.]h|[.]hpp)$") @@ -570,8 +581,8 @@ if(MINGW OR MSVC) endif(MINGW OR MSVC) IF (NOT BUNDLE_APP) - configure_files(${PROJECT_SOURCE_DIR}/font ${CMAKE_BINARY_DIR}/${EX_PLATFORM_NAME} "*.fnt") - configure_files(${PROJECT_SOURCE_DIR}/font ${CMAKE_BINARY_DIR}/${EX_PLATFORM_NAME} "*.png") + configure_files(${PROJECT_SOURCE_DIR}/font ${CMAKE_BINARY_DIR}/${EX_PLATFORM_NAME}/fonts "*.fnt") + configure_files(${PROJECT_SOURCE_DIR}/font ${CMAKE_BINARY_DIR}/${EX_PLATFORM_NAME}/fonts "*.png") configure_files(${PROJECT_SOURCE_DIR}/icon ${CMAKE_BINARY_DIR}/${EX_PLATFORM_NAME} CubicSDR.ico) IF(MSVC) IF(ENABLE_FFTW3) diff --git a/font/vera_sans_mono27.bmfc b/font/vera_sans_mono27.bmfc new file mode 100644 index 0000000..c99c6a3 --- /dev/null +++ b/font/vera_sans_mono27.bmfc @@ -0,0 +1,57 @@ +# AngelCode Bitmap Font Generator configuration file +fileVersion=1 + +# font settings +fontName=Bitstream Vera Sans Mono +fontFile=VeraMoBd.ttf +charSet=0 +fontSize=27 +aa=1 +scaleH=100 +useSmoothing=1 +isBold=0 +isItalic=0 +useUnicode=1 +disableBoxChars=1 +outputInvalidCharGlyph=0 +dontIncludeKerningPairs=0 +useHinting=1 +renderFromOutline=0 +useClearType=1 + +# character alignment +paddingDown=0 +paddingUp=0 +paddingRight=0 +paddingLeft=0 +spacingHoriz=1 +spacingVert=1 +useFixedHeight=1 +forceZero=0 + +# output file +outWidth=512 +outHeight=256 +outBitDepth=32 +fontDescFormat=0 +fourChnlPacked=0 +textureFormat=png +textureCompression=0 +alphaChnl=1 +redChnl=0 +greenChnl=0 +blueChnl=0 +invA=0 +invR=0 +invG=0 +invB=0 + +# outline +outlineThickness=0 + +# selected chars +chars=32-126,160-255,262-263,268-269,273,286-287,304-305,321-322,338-339,350-353,376,381-382,402,710-711 +chars=728-733,937,960,8211-8212,8216-8218,8220-8222,8224-8226,8230,8240,8249-8250,8364,8482,8706,8710 +chars=8719,8721-8722,8725,8729-8730,8734,8747,8776,8800,8804-8805,9674 + +# imported icon images diff --git a/font/vera_sans_mono27.fnt b/font/vera_sans_mono27.fnt new file mode 100644 index 0000000..d1d4b43 --- /dev/null +++ b/font/vera_sans_mono27.fnt @@ -0,0 +1,258 @@ +info face="Bitstream Vera Sans Mono" size=27 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=27 base=22 scaleW=512 scaleH=256 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0 +page id=0 file="vera_sans_mono27_0.png" +chars count=254 +char id=32 x=245 y=168 width=3 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=33 x=224 y=168 width=5 height=27 xoffset=5 yoffset=0 xadvance=14 page=0 chnl=15 +char id=34 x=468 y=140 width=10 height=27 xoffset=2 yoffset=0 xadvance=14 page=0 chnl=15 +char id=35 x=17 y=0 width=16 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=36 x=52 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=37 x=471 y=0 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=38 x=218 y=0 width=15 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=39 x=507 y=112 width=4 height=27 xoffset=5 yoffset=0 xadvance=14 page=0 chnl=15 +char id=40 x=91 y=168 width=7 height=27 xoffset=4 yoffset=0 xadvance=14 page=0 chnl=15 +char id=41 x=75 y=168 width=7 height=27 xoffset=3 yoffset=0 xadvance=14 page=0 chnl=15 +char id=42 x=65 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=43 x=45 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=44 x=176 y=168 width=6 height=27 xoffset=4 yoffset=0 xadvance=14 page=0 chnl=15 +char id=45 x=48 y=168 width=8 height=27 xoffset=3 yoffset=0 xadvance=14 page=0 chnl=15 +char id=46 x=162 y=168 width=6 height=27 xoffset=4 yoffset=0 xadvance=14 page=0 chnl=15 +char id=47 x=78 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=48 x=91 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=49 x=416 y=56 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=50 x=104 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=51 x=117 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=52 x=130 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=53 x=143 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=54 x=156 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=55 x=208 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=56 x=221 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=57 x=234 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=58 x=155 y=168 width=6 height=27 xoffset=4 yoffset=0 xadvance=14 page=0 chnl=15 +char id=59 x=197 y=168 width=6 height=27 xoffset=4 yoffset=0 xadvance=14 page=0 chnl=15 +char id=60 x=336 y=84 width=13 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=61 x=225 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=62 x=308 y=84 width=13 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=63 x=378 y=140 width=11 height=27 xoffset=2 yoffset=0 xadvance=14 page=0 chnl=15 +char id=64 x=170 y=0 width=15 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=65 x=255 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=66 x=266 y=84 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=67 x=260 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=68 x=196 y=84 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=69 x=273 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=70 x=182 y=84 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=71 x=140 y=84 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=72 x=286 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=73 x=299 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=74 x=84 y=84 width=13 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=75 x=70 y=84 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=76 x=312 y=112 width=12 height=27 xoffset=2 yoffset=0 xadvance=14 page=0 chnl=15 +char id=77 x=330 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=78 x=351 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=79 x=360 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=80 x=364 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=81 x=375 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=82 x=472 y=56 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=83 x=377 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=84 x=405 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=85 x=14 y=84 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=86 x=420 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=87 x=85 y=0 width=16 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=88 x=435 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=89 x=330 y=0 width=15 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=90 x=168 y=84 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=91 x=83 y=168 width=7 height=27 xoffset=4 yoffset=0 xadvance=14 page=0 chnl=15 +char id=92 x=390 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=93 x=123 y=168 width=7 height=27 xoffset=3 yoffset=0 xadvance=14 page=0 chnl=15 +char id=94 x=120 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=95 x=34 y=0 width=16 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=96 x=139 y=168 width=7 height=27 xoffset=2 yoffset=0 xadvance=14 page=0 chnl=15 +char id=97 x=0 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=98 x=390 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=99 x=354 y=140 width=11 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=100 x=45 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=101 x=60 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=102 x=403 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=103 x=75 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=104 x=294 y=140 width=11 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=105 x=458 y=56 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=106 x=501 y=140 width=9 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=107 x=364 y=84 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=108 x=406 y=84 width=13 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=109 x=120 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=110 x=318 y=140 width=11 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=111 x=150 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=112 x=165 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=113 x=180 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=114 x=416 y=112 width=12 height=27 xoffset=2 yoffset=0 xadvance=14 page=0 chnl=15 +char id=115 x=306 y=140 width=11 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=116 x=0 y=84 width=13 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=117 x=500 y=56 width=11 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=118 x=429 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=119 x=0 y=0 width=16 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=120 x=238 y=84 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=121 x=252 y=84 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=122 x=322 y=84 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=123 x=0 y=140 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=124 x=235 y=168 width=4 height=27 xoffset=5 yoffset=0 xadvance=14 page=0 chnl=15 +char id=125 x=13 y=140 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=126 x=430 y=56 width=13 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=160 x=249 y=168 width=3 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=161 x=218 y=168 width=5 height=27 xoffset=5 yoffset=0 xadvance=14 page=0 chnl=15 +char id=162 x=26 y=140 width=12 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=163 x=39 y=140 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=164 x=65 y=140 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=165 x=346 y=0 width=15 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=166 x=240 y=168 width=4 height=27 xoffset=5 yoffset=0 xadvance=14 page=0 chnl=15 +char id=167 x=104 y=140 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=168 x=57 y=168 width=8 height=27 xoffset=3 yoffset=0 xadvance=14 page=0 chnl=15 +char id=169 x=119 y=0 width=16 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=170 x=501 y=0 width=10 height=27 xoffset=2 yoffset=0 xadvance=14 page=0 chnl=15 +char id=171 x=234 y=140 width=11 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=172 x=180 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=173 x=66 y=168 width=8 height=27 xoffset=3 yoffset=0 xadvance=14 page=0 chnl=15 +char id=174 x=102 y=0 width=16 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=175 x=39 y=168 width=8 height=27 xoffset=3 yoffset=0 xadvance=14 page=0 chnl=15 +char id=176 x=20 y=168 width=9 height=27 xoffset=2 yoffset=0 xadvance=14 page=0 chnl=15 +char id=177 x=315 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=178 x=10 y=168 width=9 height=27 xoffset=2 yoffset=0 xadvance=14 page=0 chnl=15 +char id=179 x=402 y=140 width=10 height=27 xoffset=2 yoffset=0 xadvance=14 page=0 chnl=15 +char id=180 x=131 y=168 width=7 height=27 xoffset=5 yoffset=0 xadvance=14 page=0 chnl=15 +char id=181 x=486 y=56 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=182 x=112 y=84 width=13 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=183 x=183 y=168 width=6 height=27 xoffset=4 yoffset=0 xadvance=14 page=0 chnl=15 +char id=184 x=147 y=168 width=7 height=27 xoffset=3 yoffset=0 xadvance=14 page=0 chnl=15 +char id=185 x=502 y=84 width=9 height=27 xoffset=3 yoffset=0 xadvance=14 page=0 chnl=15 +char id=186 x=424 y=140 width=10 height=27 xoffset=2 yoffset=0 xadvance=14 page=0 chnl=15 +char id=187 x=130 y=140 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=188 x=105 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=189 x=240 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=190 x=150 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=191 x=435 y=140 width=10 height=27 xoffset=2 yoffset=0 xadvance=14 page=0 chnl=15 +char id=192 x=456 y=0 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=193 x=30 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=194 x=225 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=195 x=210 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=196 x=195 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=197 x=15 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=198 x=378 y=0 width=15 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=199 x=156 y=140 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=200 x=169 y=140 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=201 x=182 y=140 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=202 x=195 y=140 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=203 x=208 y=140 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=204 x=476 y=84 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=205 x=489 y=84 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=206 x=0 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=207 x=13 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=208 x=234 y=0 width=15 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=209 x=26 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=210 x=345 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=211 x=300 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=212 x=285 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=213 x=270 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=214 x=165 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=215 x=350 y=84 width=13 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=216 x=394 y=0 width=15 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=217 x=392 y=84 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=218 x=444 y=56 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=219 x=378 y=84 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=220 x=42 y=84 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=221 x=266 y=0 width=15 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=222 x=39 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=223 x=280 y=84 width=13 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=224 x=135 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=225 x=105 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=226 x=90 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=227 x=30 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=228 x=495 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=229 x=480 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=230 x=465 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=231 x=246 y=140 width=11 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=232 x=450 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=233 x=210 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=234 x=195 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=235 x=90 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=236 x=402 y=56 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=237 x=388 y=56 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=238 x=374 y=56 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=239 x=360 y=56 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=240 x=486 y=0 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=241 x=390 y=140 width=11 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=242 x=441 y=0 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=243 x=426 y=0 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=244 x=240 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=245 x=255 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=246 x=270 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=247 x=285 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=248 x=345 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=249 x=366 y=140 width=11 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=250 x=282 y=140 width=11 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=251 x=270 y=140 width=11 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=252 x=258 y=140 width=11 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=253 x=28 y=84 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=254 x=300 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=255 x=56 y=84 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=262 x=143 y=140 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=263 x=169 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=268 x=182 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=269 x=195 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=273 x=410 y=0 width=15 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=286 x=98 y=84 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=287 x=315 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=304 x=247 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=305 x=126 y=84 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=321 x=314 y=0 width=15 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=322 x=154 y=84 width=13 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=338 x=330 y=56 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=339 x=298 y=0 width=15 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=350 x=325 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=351 x=330 y=140 width=11 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=352 x=338 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=353 x=342 y=140 width=11 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=376 x=282 y=0 width=15 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=381 x=210 y=84 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=382 x=224 y=84 width=13 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=402 x=186 y=0 width=15 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=710 x=446 y=140 width=10 height=27 xoffset=2 yoffset=0 xadvance=14 page=0 chnl=15 +char id=711 x=457 y=140 width=10 height=27 xoffset=2 yoffset=0 xadvance=14 page=0 chnl=15 +char id=728 x=0 y=168 width=9 height=27 xoffset=3 yoffset=0 xadvance=14 page=0 chnl=15 +char id=729 x=230 y=168 width=4 height=27 xoffset=5 yoffset=0 xadvance=14 page=0 chnl=15 +char id=730 x=30 y=168 width=8 height=27 xoffset=3 yoffset=0 xadvance=14 page=0 chnl=15 +char id=731 x=115 y=168 width=7 height=27 xoffset=4 yoffset=0 xadvance=14 page=0 chnl=15 +char id=732 x=479 y=140 width=10 height=27 xoffset=2 yoffset=0 xadvance=14 page=0 chnl=15 +char id=733 x=490 y=140 width=10 height=27 xoffset=3 yoffset=0 xadvance=14 page=0 chnl=15 +char id=937 x=0 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=960 x=250 y=0 width=15 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8211 x=153 y=0 width=16 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8212 x=68 y=0 width=16 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8216 x=169 y=168 width=6 height=27 xoffset=4 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8217 x=204 y=168 width=6 height=27 xoffset=4 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8218 x=211 y=168 width=6 height=27 xoffset=4 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8220 x=442 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8221 x=455 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8222 x=468 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8224 x=481 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8225 x=494 y=112 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8226 x=413 y=140 width=10 height=27 xoffset=2 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8230 x=294 y=84 width=13 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8240 x=51 y=0 width=16 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8249 x=99 y=168 width=7 height=27 xoffset=3 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8250 x=107 y=168 width=7 height=27 xoffset=4 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8364 x=15 y=28 width=14 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8482 x=202 y=0 width=15 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8706 x=52 y=140 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8710 x=136 y=0 width=16 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8719 x=78 y=140 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8721 x=91 y=140 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8722 x=60 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8725 x=117 y=140 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8729 x=190 y=168 width=6 height=27 xoffset=4 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8730 x=75 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8734 x=362 y=0 width=15 height=27 xoffset=-1 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8747 x=135 y=28 width=14 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8776 x=420 y=84 width=13 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8800 x=434 y=84 width=13 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8804 x=448 y=84 width=13 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=8805 x=462 y=84 width=13 height=27 xoffset=0 yoffset=0 xadvance=14 page=0 chnl=15 +char id=9674 x=221 y=140 width=12 height=27 xoffset=1 yoffset=0 xadvance=14 page=0 chnl=15 diff --git a/font/vera_sans_mono27_0.png b/font/vera_sans_mono27_0.png new file mode 100644 index 0000000..9287af1 Binary files /dev/null and b/font/vera_sans_mono27_0.png differ diff --git a/font/vera_sans_mono36.bmfc b/font/vera_sans_mono36.bmfc new file mode 100644 index 0000000..731038d --- /dev/null +++ b/font/vera_sans_mono36.bmfc @@ -0,0 +1,57 @@ +# AngelCode Bitmap Font Generator configuration file +fileVersion=1 + +# font settings +fontName=Bitstream Vera Sans Mono +fontFile=VeraMoBd.ttf +charSet=0 +fontSize=36 +aa=1 +scaleH=100 +useSmoothing=1 +isBold=0 +isItalic=0 +useUnicode=1 +disableBoxChars=1 +outputInvalidCharGlyph=0 +dontIncludeKerningPairs=0 +useHinting=1 +renderFromOutline=0 +useClearType=1 + +# character alignment +paddingDown=0 +paddingUp=0 +paddingRight=0 +paddingLeft=0 +spacingHoriz=1 +spacingVert=1 +useFixedHeight=1 +forceZero=0 + +# output file +outWidth=512 +outHeight=512 +outBitDepth=32 +fontDescFormat=0 +fourChnlPacked=0 +textureFormat=png +textureCompression=0 +alphaChnl=1 +redChnl=0 +greenChnl=0 +blueChnl=0 +invA=0 +invR=0 +invG=0 +invB=0 + +# outline +outlineThickness=0 + +# selected chars +chars=32-126,160-255,262-263,268-269,273,286-287,304-305,321-322,338-339,350-353,376,381-382,402,710-711 +chars=728-733,937,960,8211-8212,8216-8218,8220-8222,8224-8226,8230,8240,8249-8250,8364,8482,8706,8710 +chars=8719,8721-8722,8725,8729-8730,8734,8747,8776,8800,8804-8805,9674 + +# imported icon images diff --git a/font/vera_sans_mono36.fnt b/font/vera_sans_mono36.fnt new file mode 100644 index 0000000..0c79f79 --- /dev/null +++ b/font/vera_sans_mono36.fnt @@ -0,0 +1,258 @@ +info face="Bitstream Vera Sans Mono" size=36 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=36 base=29 scaleW=512 scaleH=512 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0 +page id=0 file="vera_sans_mono36_0.png" +chars count=254 +char id=32 x=107 y=296 width=3 height=36 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=33 x=101 y=296 width=5 height=36 xoffset=7 yoffset=0 xadvance=19 page=0 chnl=15 +char id=34 x=230 y=259 width=13 height=36 xoffset=3 yoffset=0 xadvance=19 page=0 chnl=15 +char id=35 x=63 y=0 width=20 height=36 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=36 x=481 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=37 x=396 y=0 width=19 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=38 x=416 y=0 width=19 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=39 x=89 y=296 width=5 height=36 xoffset=7 yoffset=0 xadvance=19 page=0 chnl=15 +char id=40 x=430 y=259 width=10 height=36 xoffset=5 yoffset=0 xadvance=19 page=0 chnl=15 +char id=41 x=419 y=259 width=10 height=36 xoffset=4 yoffset=0 xadvance=19 page=0 chnl=15 +char id=42 x=52 y=185 width=16 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=43 x=415 y=37 width=18 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=44 x=501 y=259 width=8 height=36 xoffset=5 yoffset=0 xadvance=19 page=0 chnl=15 +char id=45 x=324 y=259 width=11 height=36 xoffset=4 yoffset=0 xadvance=19 page=0 chnl=15 +char id=46 x=62 y=296 width=7 height=36 xoffset=6 yoffset=0 xadvance=19 page=0 chnl=15 +char id=47 x=224 y=74 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=48 x=440 y=74 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=49 x=69 y=185 width=16 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=50 x=86 y=185 width=16 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=51 x=103 y=185 width=16 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=52 x=278 y=74 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=53 x=120 y=185 width=16 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=54 x=314 y=74 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=55 x=137 y=185 width=16 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=56 x=154 y=185 width=16 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=57 x=171 y=185 width=16 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=58 x=504 y=111 width=7 height=36 xoffset=6 yoffset=0 xadvance=19 page=0 chnl=15 +char id=59 x=492 y=259 width=8 height=36 xoffset=5 yoffset=0 xadvance=19 page=0 chnl=15 +char id=60 x=386 y=74 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=61 x=404 y=74 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=62 x=422 y=74 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=63 x=159 y=259 width=14 height=36 xoffset=3 yoffset=0 xadvance=19 page=0 chnl=15 +char id=64 x=0 y=0 width=20 height=36 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=65 x=180 y=37 width=19 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=66 x=458 y=74 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=67 x=225 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=68 x=432 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=69 x=188 y=185 width=16 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=70 x=205 y=185 width=16 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=71 x=324 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=72 x=222 y=185 width=16 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=73 x=209 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=74 x=193 y=222 width=15 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=75 x=0 y=74 width=18 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=76 x=161 y=222 width=15 height=36 xoffset=3 yoffset=0 xadvance=19 page=0 chnl=15 +char id=77 x=180 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=78 x=144 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=79 x=90 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=80 x=239 y=185 width=16 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=81 x=72 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=82 x=19 y=74 width=18 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=83 x=36 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=84 x=468 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=85 x=432 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=86 x=38 y=74 width=18 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=87 x=273 y=0 width=20 height=36 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=88 x=260 y=37 width=19 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=89 x=80 y=37 width=19 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=90 x=396 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=91 x=462 y=259 width=9 height=36 xoffset=6 yoffset=0 xadvance=19 page=0 chnl=15 +char id=92 x=270 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=93 x=452 y=259 width=9 height=36 xoffset=4 yoffset=0 xadvance=19 page=0 chnl=15 +char id=94 x=57 y=74 width=18 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=95 x=84 y=0 width=20 height=36 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=96 x=408 y=259 width=10 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=97 x=180 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=98 x=494 y=74 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=99 x=81 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=100 x=256 y=185 width=16 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=101 x=54 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=102 x=65 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=103 x=273 y=185 width=16 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=104 x=49 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=105 x=0 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=106 x=174 y=259 width=13 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=107 x=252 y=148 width=17 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=108 x=290 y=185 width=16 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=109 x=76 y=74 width=18 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=110 x=496 y=0 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=111 x=18 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=112 x=36 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=113 x=307 y=185 width=16 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=114 x=497 y=222 width=14 height=36 xoffset=4 yoffset=0 xadvance=19 page=0 chnl=15 +char id=115 x=129 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=116 x=341 y=185 width=16 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=117 x=80 y=259 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=118 x=144 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=119 x=315 y=0 width=20 height=36 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=120 x=133 y=74 width=18 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=121 x=320 y=37 width=18 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=122 x=64 y=259 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=123 x=48 y=259 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=124 x=83 y=296 width=5 height=36 xoffset=7 yoffset=0 xadvance=19 page=0 chnl=15 +char id=125 x=16 y=259 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=126 x=288 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=160 x=111 y=296 width=3 height=36 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=161 x=77 y=296 width=5 height=36 xoffset=7 yoffset=0 xadvance=19 page=0 chnl=15 +char id=162 x=449 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=163 x=360 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=164 x=417 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=165 x=100 y=37 width=19 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=166 x=95 y=296 width=5 height=36 xoffset=7 yoffset=0 xadvance=19 page=0 chnl=15 +char id=167 x=401 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=168 x=312 y=259 width=11 height=36 xoffset=4 yoffset=0 xadvance=19 page=0 chnl=15 +char id=169 x=189 y=0 width=20 height=36 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=170 x=202 y=259 width=13 height=36 xoffset=3 yoffset=0 xadvance=19 page=0 chnl=15 +char id=171 x=358 y=185 width=16 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=172 x=18 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=173 x=384 y=259 width=11 height=36 xoffset=4 yoffset=0 xadvance=19 page=0 chnl=15 +char id=174 x=42 y=0 width=20 height=36 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=175 x=372 y=259 width=11 height=36 xoffset=4 yoffset=0 xadvance=19 page=0 chnl=15 +char id=176 x=348 y=259 width=11 height=36 xoffset=4 yoffset=0 xadvance=19 page=0 chnl=15 +char id=177 x=296 y=74 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=178 x=299 y=259 width=12 height=36 xoffset=3 yoffset=0 xadvance=19 page=0 chnl=15 +char id=179 x=360 y=259 width=11 height=36 xoffset=4 yoffset=0 xadvance=19 page=0 chnl=15 +char id=180 x=482 y=259 width=9 height=36 xoffset=7 yoffset=0 xadvance=19 page=0 chnl=15 +char id=181 x=414 y=148 width=17 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=182 x=396 y=148 width=17 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=183 x=504 y=148 width=7 height=36 xoffset=6 yoffset=0 xadvance=19 page=0 chnl=15 +char id=184 x=0 y=296 width=8 height=36 xoffset=5 yoffset=0 xadvance=19 page=0 chnl=15 +char id=185 x=396 y=259 width=11 height=36 xoffset=4 yoffset=0 xadvance=19 page=0 chnl=15 +char id=186 x=244 y=259 width=13 height=36 xoffset=3 yoffset=0 xadvance=19 page=0 chnl=15 +char id=187 x=375 y=185 width=16 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=188 x=95 y=74 width=18 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=189 x=114 y=74 width=18 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=190 x=339 y=37 width=18 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=191 x=144 y=259 width=14 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=192 x=120 y=37 width=19 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=193 x=436 y=0 width=19 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=194 x=60 y=37 width=19 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=195 x=160 y=37 width=19 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=196 x=20 y=37 width=19 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=197 x=336 y=0 width=19 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=198 x=252 y=0 width=20 height=36 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=199 x=433 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=200 x=409 y=185 width=16 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=201 x=426 y=185 width=16 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=202 x=443 y=185 width=16 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=203 x=460 y=185 width=16 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=204 x=96 y=259 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=205 x=112 y=259 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=206 x=128 y=259 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=207 x=97 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=208 x=220 y=37 width=19 height=36 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=209 x=332 y=74 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=210 x=260 y=74 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=211 x=242 y=74 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=212 x=206 y=74 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=213 x=486 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=214 x=450 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=215 x=477 y=185 width=16 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=216 x=231 y=0 width=20 height=36 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=217 x=414 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=218 x=378 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=219 x=342 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=220 x=306 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=221 x=140 y=37 width=19 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=222 x=494 y=185 width=16 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=223 x=377 y=37 width=18 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=224 x=252 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=225 x=234 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=226 x=216 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=227 x=126 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=228 x=90 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=229 x=72 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=230 x=200 y=37 width=19 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=231 x=17 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=232 x=54 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=233 x=198 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=234 x=108 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=235 x=216 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=236 x=360 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=237 x=0 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=238 x=162 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=239 x=324 y=111 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=240 x=234 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=241 x=177 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=242 x=270 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=243 x=306 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=244 x=476 y=74 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=245 x=368 y=74 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=246 x=350 y=74 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=247 x=453 y=37 width=18 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=248 x=0 y=37 width=19 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=249 x=305 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=250 x=321 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=251 x=337 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=252 x=353 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=253 x=434 y=37 width=18 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=254 x=188 y=74 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=255 x=358 y=37 width=18 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=262 x=145 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=263 x=0 y=222 width=16 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=268 x=18 y=185 width=16 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=269 x=465 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=273 x=376 y=0 width=19 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=286 x=170 y=74 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=287 x=35 y=185 width=16 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=304 x=32 y=259 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=305 x=152 y=74 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=321 x=300 y=37 width=19 height=36 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=322 x=396 y=37 width=18 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=338 x=40 y=37 width=19 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=339 x=294 y=0 width=20 height=36 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=350 x=108 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=351 x=33 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=352 x=126 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=353 x=113 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=376 x=476 y=0 width=19 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=381 x=162 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=382 x=241 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=402 x=456 y=0 width=19 height=36 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=710 x=258 y=259 width=13 height=36 xoffset=3 yoffset=0 xadvance=19 page=0 chnl=15 +char id=711 x=272 y=259 width=13 height=36 xoffset=3 yoffset=0 xadvance=19 page=0 chnl=15 +char id=728 x=336 y=259 width=11 height=36 xoffset=4 yoffset=0 xadvance=19 page=0 chnl=15 +char id=729 x=70 y=296 width=6 height=36 xoffset=6 yoffset=0 xadvance=19 page=0 chnl=15 +char id=730 x=441 y=259 width=10 height=36 xoffset=4 yoffset=0 xadvance=19 page=0 chnl=15 +char id=731 x=18 y=296 width=8 height=36 xoffset=6 yoffset=0 xadvance=19 page=0 chnl=15 +char id=732 x=286 y=259 width=12 height=36 xoffset=3 yoffset=0 xadvance=19 page=0 chnl=15 +char id=733 x=188 y=259 width=13 height=36 xoffset=4 yoffset=0 xadvance=19 page=0 chnl=15 +char id=937 x=198 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=960 x=21 y=0 width=20 height=36 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8211 x=147 y=0 width=20 height=36 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8212 x=210 y=0 width=20 height=36 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8216 x=36 y=296 width=8 height=36 xoffset=6 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8217 x=27 y=296 width=8 height=36 xoffset=6 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8218 x=45 y=296 width=8 height=36 xoffset=5 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8220 x=257 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8221 x=273 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8222 x=289 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8224 x=369 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8225 x=385 y=222 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8226 x=216 y=259 width=13 height=36 xoffset=3 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8230 x=472 y=37 width=18 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8240 x=168 y=0 width=20 height=36 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8249 x=472 y=259 width=9 height=36 xoffset=4 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8250 x=9 y=296 width=8 height=36 xoffset=6 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8364 x=288 y=148 width=17 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8482 x=356 y=0 width=19 height=36 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8706 x=324 y=185 width=16 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8710 x=126 y=0 width=20 height=36 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8719 x=0 y=259 width=15 height=36 xoffset=2 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8721 x=342 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8722 x=491 y=37 width=18 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8725 x=378 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8729 x=54 y=296 width=7 height=36 xoffset=6 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8730 x=280 y=37 width=19 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8734 x=105 y=0 width=20 height=36 xoffset=-1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8747 x=240 y=37 width=19 height=36 xoffset=0 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8776 x=450 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8800 x=468 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8804 x=486 y=148 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=8805 x=0 y=185 width=17 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 +char id=9674 x=392 y=185 width=16 height=36 xoffset=1 yoffset=0 xadvance=19 page=0 chnl=15 diff --git a/font/vera_sans_mono36_0.png b/font/vera_sans_mono36_0.png new file mode 100644 index 0000000..8a8b2c3 Binary files /dev/null and b/font/vera_sans_mono36_0.png differ diff --git a/font/vera_sans_mono64.bmfc b/font/vera_sans_mono64.bmfc new file mode 100644 index 0000000..e2f0166 --- /dev/null +++ b/font/vera_sans_mono64.bmfc @@ -0,0 +1,57 @@ +# AngelCode Bitmap Font Generator configuration file +fileVersion=1 + +# font settings +fontName=Bitstream Vera Sans Mono +fontFile=VeraMoBd.ttf +charSet=0 +fontSize=64 +aa=1 +scaleH=100 +useSmoothing=1 +isBold=0 +isItalic=0 +useUnicode=1 +disableBoxChars=1 +outputInvalidCharGlyph=0 +dontIncludeKerningPairs=0 +useHinting=1 +renderFromOutline=0 +useClearType=1 + +# character alignment +paddingDown=0 +paddingUp=0 +paddingRight=0 +paddingLeft=0 +spacingHoriz=1 +spacingVert=1 +useFixedHeight=1 +forceZero=0 + +# output file +outWidth=1024 +outHeight=512 +outBitDepth=32 +fontDescFormat=0 +fourChnlPacked=0 +textureFormat=png +textureCompression=0 +alphaChnl=1 +redChnl=0 +greenChnl=0 +blueChnl=0 +invA=0 +invR=0 +invG=0 +invB=0 + +# outline +outlineThickness=0 + +# selected chars +chars=32-126,160-255,262-263,268-269,273,286-287,304-305,321-322,338-339,350-353,376,381-382,402,710-711 +chars=728-733,937,960,8211-8212,8216-8218,8220-8222,8224-8226,8230,8240,8249-8250,8364,8482,8706,8710 +chars=8719,8721-8722,8725,8729-8730,8734,8747,8776,8800,8804-8805,9674 + +# imported icon images diff --git a/font/vera_sans_mono64.fnt b/font/vera_sans_mono64.fnt new file mode 100644 index 0000000..17c611c --- /dev/null +++ b/font/vera_sans_mono64.fnt @@ -0,0 +1,258 @@ +info face="Bitstream Vera Sans Mono" 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=64 base=51 scaleW=1024 scaleH=512 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0 +page id=0 file="vera_sans_mono64_0.png" +chars count=254 +char id=32 x=1017 y=195 width=3 height=64 xoffset=-1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=33 x=793 y=390 width=9 height=64 xoffset=12 yoffset=0 xadvance=33 page=0 chnl=15 +char id=34 x=154 y=390 width=23 height=64 xoffset=5 yoffset=0 xadvance=33 page=0 chnl=15 +char id=35 x=36 y=0 width=35 height=64 xoffset=-1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=36 x=360 y=325 width=26 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=37 x=0 y=65 width=33 height=64 xoffset=0 yoffset=0 xadvance=33 page=0 chnl=15 +char id=38 x=430 y=0 width=34 height=64 xoffset=0 yoffset=0 xadvance=33 page=0 chnl=15 +char id=39 x=803 y=390 width=9 height=64 xoffset=12 yoffset=0 xadvance=33 page=0 chnl=15 +char id=40 x=631 y=390 width=15 height=64 xoffset=10 yoffset=0 xadvance=33 page=0 chnl=15 +char id=41 x=548 y=390 width=16 height=64 xoffset=8 yoffset=0 xadvance=33 page=0 chnl=15 +char id=42 x=943 y=260 width=27 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=43 x=493 y=65 width=31 height=64 xoffset=1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=44 x=1010 y=0 width=13 height=64 xoffset=9 yoffset=0 xadvance=33 page=0 chnl=15 +char id=45 x=353 y=390 width=19 height=64 xoffset=7 yoffset=0 xadvance=33 page=0 chnl=15 +char id=46 x=769 y=390 width=11 height=64 xoffset=11 yoffset=0 xadvance=33 page=0 chnl=15 +char id=47 x=548 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=48 x=203 y=260 width=28 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=49 x=0 y=325 width=27 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=50 x=56 y=325 width=27 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=51 x=196 y=325 width=27 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=52 x=698 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=53 x=224 y=325 width=27 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=54 x=29 y=260 width=28 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=55 x=831 y=260 width=27 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=56 x=551 y=260 width=27 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=57 x=232 y=260 width=28 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=58 x=757 y=390 width=11 height=64 xoffset=11 yoffset=0 xadvance=33 page=0 chnl=15 +char id=59 x=677 y=390 width=13 height=64 xoffset=9 yoffset=0 xadvance=33 page=0 chnl=15 +char id=60 x=938 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=61 x=968 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=62 x=0 y=195 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=63 x=999 y=260 width=24 height=64 xoffset=5 yoffset=0 xadvance=33 page=0 chnl=15 +char id=64 x=34 y=65 width=33 height=64 xoffset=-1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=65 x=500 y=0 width=33 height=64 xoffset=0 yoffset=0 xadvance=33 page=0 chnl=15 +char id=66 x=60 y=195 width=29 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=67 x=635 y=260 width=27 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=68 x=174 y=260 width=28 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=69 x=252 y=325 width=26 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=70 x=663 y=260 width=27 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=71 x=210 y=195 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=72 x=691 y=260 width=27 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=73 x=992 y=325 width=25 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=74 x=414 y=325 width=26 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=75 x=781 y=65 width=31 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=76 x=719 y=260 width=27 height=64 xoffset=5 yoffset=0 xadvance=33 page=0 chnl=15 +char id=77 x=360 y=195 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=78 x=390 y=195 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=79 x=420 y=195 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=80 x=116 y=260 width=28 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=81 x=480 y=195 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=82 x=397 y=65 width=31 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=83 x=0 y=260 width=28 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=84 x=540 y=195 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=85 x=570 y=195 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=86 x=461 y=65 width=31 height=64 xoffset=1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=87 x=288 y=0 width=35 height=64 xoffset=-1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=88 x=874 y=0 width=33 height=64 xoffset=0 yoffset=0 xadvance=33 page=0 chnl=15 +char id=89 x=908 y=0 width=33 height=64 xoffset=0 yoffset=0 xadvance=33 page=0 chnl=15 +char id=90 x=937 y=65 width=30 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=91 x=599 y=390 width=15 height=64 xoffset=11 yoffset=0 xadvance=33 page=0 chnl=15 +char id=92 x=630 y=195 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=93 x=531 y=390 width=16 height=64 xoffset=7 yoffset=0 xadvance=33 page=0 chnl=15 +char id=94 x=365 y=65 width=31 height=64 xoffset=1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=95 x=324 y=0 width=35 height=64 xoffset=-1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=96 x=565 y=390 width=16 height=64 xoffset=5 yoffset=0 xadvance=33 page=0 chnl=15 +char id=97 x=750 y=195 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=98 x=988 y=195 width=28 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=99 x=26 y=390 width=25 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=100 x=290 y=260 width=28 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=101 x=875 y=65 width=30 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=102 x=522 y=325 width=26 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=103 x=522 y=260 width=28 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=104 x=966 y=325 width=25 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=105 x=870 y=195 width=29 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=106 x=310 y=390 width=21 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=107 x=959 y=195 width=28 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=108 x=58 y=260 width=28 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=109 x=557 y=65 width=31 height=64 xoffset=1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=110 x=940 y=325 width=25 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=111 x=900 y=195 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=112 x=87 y=260 width=28 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=113 x=145 y=260 width=28 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=114 x=914 y=325 width=25 height=64 xoffset=7 yoffset=0 xadvance=33 page=0 chnl=15 +char id=115 x=888 y=325 width=25 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=116 x=930 y=195 width=28 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=117 x=862 y=325 width=25 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=118 x=906 y=65 width=30 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=119 x=180 y=0 width=35 height=64 xoffset=-1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=120 x=621 y=65 width=31 height=64 xoffset=1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=121 x=653 y=65 width=31 height=64 xoffset=1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=122 x=333 y=325 width=26 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=123 x=836 y=325 width=25 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=124 x=841 y=390 width=7 height=64 xoffset=13 yoffset=0 xadvance=33 page=0 chnl=15 +char id=125 x=784 y=325 width=25 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=126 x=248 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=160 x=1018 y=325 width=3 height=64 xoffset=-1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=161 x=813 y=390 width=9 height=64 xoffset=12 yoffset=0 xadvance=33 page=0 chnl=15 +char id=162 x=441 y=325 width=26 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=163 x=278 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=164 x=84 y=325 width=27 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=165 x=636 y=0 width=33 height=64 xoffset=0 yoffset=0 xadvance=33 page=0 chnl=15 +char id=166 x=833 y=390 width=7 height=64 xoffset=13 yoffset=0 xadvance=33 page=0 chnl=15 +char id=167 x=732 y=325 width=25 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=168 x=433 y=390 width=19 height=64 xoffset=7 yoffset=0 xadvance=33 page=0 chnl=15 +char id=169 x=72 y=0 width=35 height=64 xoffset=-1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=170 x=200 y=390 width=21 height=64 xoffset=6 yoffset=0 xadvance=33 page=0 chnl=15 +char id=171 x=859 y=260 width=27 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=172 x=308 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=173 x=373 y=390 width=19 height=64 xoffset=7 yoffset=0 xadvance=33 page=0 chnl=15 +char id=174 x=252 y=0 width=35 height=64 xoffset=-1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=175 x=473 y=390 width=19 height=64 xoffset=7 yoffset=0 xadvance=33 page=0 chnl=15 +char id=176 x=413 y=390 width=19 height=64 xoffset=7 yoffset=0 xadvance=33 page=0 chnl=15 +char id=177 x=186 y=130 width=30 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=178 x=453 y=390 width=19 height=64 xoffset=7 yoffset=0 xadvance=33 page=0 chnl=15 +char id=179 x=332 y=390 width=20 height=64 xoffset=7 yoffset=0 xadvance=33 page=0 chnl=15 +char id=180 x=582 y=390 width=16 height=64 xoffset=12 yoffset=0 xadvance=33 page=0 chnl=15 +char id=181 x=493 y=260 width=28 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=182 x=319 y=260 width=28 height=64 xoffset=1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=183 x=745 y=390 width=11 height=64 xoffset=11 yoffset=0 xadvance=33 page=0 chnl=15 +char id=184 x=647 y=390 width=14 height=64 xoffset=9 yoffset=0 xadvance=33 page=0 chnl=15 +char id=185 x=493 y=390 width=19 height=64 xoffset=8 yoffset=0 xadvance=33 page=0 chnl=15 +char id=186 x=288 y=390 width=21 height=64 xoffset=7 yoffset=0 xadvance=33 page=0 chnl=15 +char id=187 x=28 y=325 width=27 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=188 x=62 y=130 width=30 height=64 xoffset=1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=189 x=93 y=130 width=30 height=64 xoffset=1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=190 x=813 y=65 width=30 height=64 xoffset=1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=191 x=999 y=65 width=24 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=192 x=670 y=0 width=33 height=64 xoffset=0 yoffset=0 xadvance=33 page=0 chnl=15 +char id=193 x=738 y=0 width=33 height=64 xoffset=0 yoffset=0 xadvance=33 page=0 chnl=15 +char id=194 x=534 y=0 width=33 height=64 xoffset=0 yoffset=0 xadvance=33 page=0 chnl=15 +char id=195 x=772 y=0 width=33 height=64 xoffset=0 yoffset=0 xadvance=33 page=0 chnl=15 +char id=196 x=806 y=0 width=33 height=64 xoffset=0 yoffset=0 xadvance=33 page=0 chnl=15 +char id=197 x=102 y=65 width=33 height=64 xoffset=0 yoffset=0 xadvance=33 page=0 chnl=15 +char id=198 x=68 y=65 width=33 height=64 xoffset=-1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=199 x=168 y=325 width=27 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=200 x=468 y=325 width=26 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=201 x=495 y=325 width=26 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=202 x=387 y=325 width=26 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=203 x=279 y=325 width=26 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=204 x=0 y=390 width=25 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=205 x=52 y=390 width=25 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=206 x=78 y=390 width=25 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=207 x=104 y=390 width=25 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=208 x=202 y=65 width=32 height=64 xoffset=-1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=209 x=368 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=210 x=398 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=211 x=428 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=212 x=458 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=213 x=488 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=214 x=518 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=215 x=578 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=216 x=465 y=0 width=34 height=64 xoffset=-1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=217 x=608 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=218 x=638 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=219 x=668 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=220 x=728 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=221 x=976 y=0 width=33 height=64 xoffset=0 yoffset=0 xadvance=33 page=0 chnl=15 +char id=222 x=261 y=260 width=28 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=223 x=30 y=195 width=29 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=224 x=758 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=225 x=788 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=226 x=818 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=227 x=848 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=228 x=878 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=229 x=908 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=230 x=942 y=0 width=33 height=64 xoffset=0 yoffset=0 xadvance=33 page=0 chnl=15 +char id=231 x=998 y=130 width=25 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=232 x=217 y=130 width=30 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=233 x=155 y=130 width=30 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=234 x=968 y=65 width=30 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=235 x=31 y=130 width=30 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=236 x=90 y=195 width=29 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=237 x=120 y=195 width=29 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=238 x=150 y=195 width=29 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=239 x=180 y=195 width=29 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=240 x=240 y=195 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=241 x=576 y=325 width=25 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=242 x=270 y=195 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=243 x=300 y=195 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=244 x=330 y=195 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=245 x=450 y=195 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=246 x=510 y=195 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=247 x=301 y=65 width=31 height=64 xoffset=1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=248 x=840 y=0 width=33 height=64 xoffset=0 yoffset=0 xadvance=33 page=0 chnl=15 +char id=249 x=602 y=325 width=25 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=250 x=628 y=325 width=25 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=251 x=654 y=325 width=25 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=252 x=680 y=325 width=25 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=253 x=749 y=65 width=31 height=64 xoffset=1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=254 x=464 y=260 width=28 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=255 x=717 y=65 width=31 height=64 xoffset=1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=262 x=112 y=325 width=27 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=263 x=140 y=325 width=27 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=268 x=348 y=260 width=28 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=269 x=549 y=325 width=26 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=273 x=235 y=65 width=32 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=286 x=600 y=195 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=287 x=435 y=260 width=28 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=304 x=758 y=325 width=25 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=305 x=660 y=195 width=29 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=321 x=395 y=0 width=34 height=64 xoffset=-2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=322 x=685 y=65 width=31 height=64 xoffset=0 yoffset=0 xadvance=33 page=0 chnl=15 +char id=338 x=268 y=65 width=32 height=64 xoffset=1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=339 x=602 y=0 width=33 height=64 xoffset=0 yoffset=0 xadvance=33 page=0 chnl=15 +char id=350 x=406 y=260 width=28 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=351 x=706 y=325 width=25 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=352 x=377 y=260 width=28 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=353 x=810 y=325 width=25 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=376 x=568 y=0 width=33 height=64 xoffset=0 yoffset=0 xadvance=33 page=0 chnl=15 +char id=381 x=124 y=130 width=30 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=382 x=306 y=325 width=26 height=64 xoffset=4 yoffset=0 xadvance=33 page=0 chnl=15 +char id=402 x=169 y=65 width=32 height=64 xoffset=0 yoffset=0 xadvance=33 page=0 chnl=15 +char id=710 x=178 y=390 width=21 height=64 xoffset=6 yoffset=0 xadvance=33 page=0 chnl=15 +char id=711 x=244 y=390 width=21 height=64 xoffset=6 yoffset=0 xadvance=33 page=0 chnl=15 +char id=728 x=393 y=390 width=19 height=64 xoffset=7 yoffset=0 xadvance=33 page=0 chnl=15 +char id=729 x=823 y=390 width=9 height=64 xoffset=12 yoffset=0 xadvance=33 page=0 chnl=15 +char id=730 x=513 y=390 width=17 height=64 xoffset=8 yoffset=0 xadvance=33 page=0 chnl=15 +char id=731 x=705 y=390 width=13 height=64 xoffset=11 yoffset=0 xadvance=33 page=0 chnl=15 +char id=732 x=222 y=390 width=21 height=64 xoffset=6 yoffset=0 xadvance=33 page=0 chnl=15 +char id=733 x=130 y=390 width=23 height=64 xoffset=7 yoffset=0 xadvance=33 page=0 chnl=15 +char id=937 x=690 y=195 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=960 x=704 y=0 width=33 height=64 xoffset=0 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8211 x=0 y=0 width=35 height=64 xoffset=-1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8212 x=216 y=0 width=35 height=64 xoffset=-1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8216 x=732 y=390 width=12 height=64 xoffset=11 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8217 x=719 y=390 width=12 height=64 xoffset=11 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8218 x=691 y=390 width=13 height=64 xoffset=9 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8220 x=803 y=260 width=27 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8221 x=775 y=260 width=27 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8222 x=607 y=260 width=27 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8224 x=579 y=260 width=27 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8225 x=971 y=260 width=27 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8226 x=266 y=390 width=21 height=64 xoffset=6 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8230 x=589 y=65 width=31 height=64 xoffset=1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8240 x=108 y=0 width=35 height=64 xoffset=-1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8249 x=662 y=390 width=14 height=64 xoffset=9 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8250 x=615 y=390 width=15 height=64 xoffset=10 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8364 x=0 y=130 width=30 height=64 xoffset=0 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8482 x=136 y=65 width=32 height=64 xoffset=-1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8706 x=747 y=260 width=27 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8710 x=144 y=0 width=35 height=64 xoffset=-1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8719 x=915 y=260 width=27 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8721 x=887 y=260 width=27 height=64 xoffset=3 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8722 x=525 y=65 width=31 height=64 xoffset=1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8725 x=720 y=195 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8729 x=781 y=390 width=11 height=64 xoffset=11 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8730 x=429 y=65 width=31 height=64 xoffset=1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8734 x=360 y=0 width=34 height=64 xoffset=0 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8747 x=333 y=65 width=31 height=64 xoffset=1 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8776 x=780 y=195 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8800 x=844 y=65 width=30 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8804 x=810 y=195 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=8805 x=840 y=195 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 +char id=9674 x=338 y=130 width=29 height=64 xoffset=2 yoffset=0 xadvance=33 page=0 chnl=15 diff --git a/font/vera_sans_mono64_0.png b/font/vera_sans_mono64_0.png new file mode 100644 index 0000000..bbae5ee Binary files /dev/null and b/font/vera_sans_mono64_0.png differ diff --git a/font/vera_sans_mono72.bmfc b/font/vera_sans_mono72.bmfc new file mode 100644 index 0000000..2b4caa4 --- /dev/null +++ b/font/vera_sans_mono72.bmfc @@ -0,0 +1,57 @@ +# AngelCode Bitmap Font Generator configuration file +fileVersion=1 + +# font settings +fontName=Bitstream Vera Sans Mono +fontFile=VeraMoBd.ttf +charSet=0 +fontSize=72 +aa=1 +scaleH=100 +useSmoothing=1 +isBold=0 +isItalic=0 +useUnicode=1 +disableBoxChars=1 +outputInvalidCharGlyph=0 +dontIncludeKerningPairs=0 +useHinting=1 +renderFromOutline=0 +useClearType=1 + +# character alignment +paddingDown=0 +paddingUp=0 +paddingRight=0 +paddingLeft=0 +spacingHoriz=1 +spacingVert=1 +useFixedHeight=1 +forceZero=0 + +# output file +outWidth=1024 +outHeight=1024 +outBitDepth=32 +fontDescFormat=0 +fourChnlPacked=0 +textureFormat=png +textureCompression=0 +alphaChnl=1 +redChnl=0 +greenChnl=0 +blueChnl=0 +invA=0 +invR=0 +invG=0 +invB=0 + +# outline +outlineThickness=0 + +# selected chars +chars=32-126,160-255,262-263,268-269,273,286-287,304-305,321-322,338-339,350-353,376,381-382,402,710-711 +chars=728-733,937,960,8211-8212,8216-8218,8220-8222,8224-8226,8230,8240,8249-8250,8364,8482,8706,8710 +chars=8719,8721-8722,8725,8729-8730,8734,8747,8776,8800,8804-8805,9674 + +# imported icon images diff --git a/font/vera_sans_mono72.fnt b/font/vera_sans_mono72.fnt new file mode 100644 index 0000000..4676107 --- /dev/null +++ b/font/vera_sans_mono72.fnt @@ -0,0 +1,258 @@ +info face="Bitstream Vera Sans Mono" size=72 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=72 base=57 scaleW=1024 scaleH=1024 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0 +page id=0 file="vera_sans_mono72_0.png" +chars count=254 +char id=32 x=1020 y=0 width=3 height=72 xoffset=-1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=33 x=609 y=511 width=9 height=72 xoffset=14 yoffset=0 xadvance=37 page=0 chnl=15 +char id=34 x=922 y=438 width=25 height=72 xoffset=6 yoffset=0 xadvance=37 page=0 chnl=15 +char id=35 x=80 y=0 width=39 height=72 xoffset=-1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=36 x=689 y=365 width=30 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=37 x=479 y=0 width=38 height=72 xoffset=0 yoffset=0 xadvance=37 page=0 chnl=15 +char id=38 x=518 y=0 width=38 height=72 xoffset=0 yoffset=0 xadvance=37 page=0 chnl=15 +char id=39 x=599 y=511 width=9 height=72 xoffset=14 yoffset=0 xadvance=37 page=0 chnl=15 +char id=40 x=334 y=511 width=18 height=72 xoffset=11 yoffset=0 xadvance=37 page=0 chnl=15 +char id=41 x=372 y=511 width=17 height=72 xoffset=9 yoffset=0 xadvance=37 page=0 chnl=15 +char id=42 x=753 y=292 width=31 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=43 x=884 y=73 width=35 height=72 xoffset=1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=44 x=460 y=511 width=15 height=72 xoffset=10 yoffset=0 xadvance=37 page=0 chnl=15 +char id=45 x=206 y=511 width=21 height=72 xoffset=8 yoffset=0 xadvance=37 page=0 chnl=15 +char id=46 x=564 y=511 width=11 height=72 xoffset=13 yoffset=0 xadvance=37 page=0 chnl=15 +char id=47 x=879 y=219 width=32 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=48 x=785 y=292 width=31 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=49 x=472 y=365 width=30 height=72 xoffset=5 yoffset=0 xadvance=37 page=0 chnl=15 +char id=50 x=534 y=365 width=30 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=51 x=817 y=292 width=31 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=52 x=623 y=146 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=53 x=844 y=365 width=30 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=54 x=780 y=219 width=32 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=55 x=813 y=365 width=30 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=56 x=849 y=292 width=31 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=57 x=881 y=292 width=31 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=58 x=576 y=511 width=11 height=72 xoffset=13 yoffset=0 xadvance=37 page=0 chnl=15 +char id=59 x=1009 y=292 width=14 height=72 xoffset=10 yoffset=0 xadvance=37 page=0 chnl=15 +char id=60 x=691 y=146 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=61 x=759 y=146 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=62 x=793 y=146 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=63 x=866 y=438 width=27 height=72 xoffset=6 yoffset=0 xadvance=37 page=0 chnl=15 +char id=64 x=906 y=0 width=37 height=72 xoffset=-1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=65 x=266 y=73 width=37 height=72 xoffset=0 yoffset=0 xadvance=37 page=0 chnl=15 +char id=66 x=0 y=219 width=33 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=67 x=720 y=365 width=30 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=68 x=462 y=292 width=32 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=69 x=658 y=365 width=30 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=70 x=210 y=438 width=29 height=72 xoffset=5 yoffset=0 xadvance=37 page=0 chnl=15 +char id=71 x=945 y=219 width=32 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=72 x=945 y=292 width=31 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=73 x=180 y=438 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=74 x=995 y=365 width=28 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=75 x=560 y=73 width=35 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=76 x=596 y=365 width=30 height=72 xoffset=6 yoffset=0 xadvance=37 page=0 chnl=15 +char id=77 x=306 y=219 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=78 x=977 y=292 width=31 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=79 x=340 y=219 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=80 x=0 y=365 width=31 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=81 x=408 y=219 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=82 x=596 y=73 width=35 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=83 x=32 y=365 width=31 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=84 x=442 y=219 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=85 x=476 y=219 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=86 x=452 y=73 width=35 height=72 xoffset=1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=87 x=0 y=0 width=39 height=72 xoffset=-1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=88 x=76 y=73 width=37 height=72 xoffset=0 yoffset=0 xadvance=37 page=0 chnl=15 +char id=89 x=557 y=0 width=38 height=72 xoffset=0 yoffset=0 xadvance=37 page=0 chnl=15 +char id=90 x=510 y=219 width=33 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=91 x=390 y=511 width=17 height=72 xoffset=12 yoffset=0 xadvance=37 page=0 chnl=15 +char id=92 x=396 y=292 width=32 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=93 x=408 y=511 width=17 height=72 xoffset=8 yoffset=0 xadvance=37 page=0 chnl=15 +char id=94 x=776 y=73 width=35 height=72 xoffset=1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=95 x=240 y=0 width=39 height=72 xoffset=-1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=96 x=314 y=511 width=19 height=72 xoffset=5 yoffset=0 xadvance=37 page=0 chnl=15 +char id=97 x=0 y=292 width=32 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=98 x=64 y=365 width=31 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=99 x=935 y=365 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=100 x=912 y=219 width=32 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=101 x=35 y=146 width=34 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=102 x=379 y=365 width=30 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=103 x=33 y=292 width=32 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=104 x=905 y=365 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=105 x=264 y=292 width=32 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=106 x=72 y=511 width=22 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=107 x=453 y=146 width=33 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=108 x=429 y=292 width=32 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=109 x=956 y=73 width=34 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=110 x=630 y=438 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=111 x=487 y=146 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=112 x=96 y=365 width=31 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=113 x=747 y=219 width=32 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=114 x=837 y=438 width=28 height=72 xoffset=8 yoffset=0 xadvance=37 page=0 chnl=15 +char id=115 x=600 y=438 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=116 x=286 y=365 width=30 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=117 x=450 y=438 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=118 x=140 y=146 width=34 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=119 x=200 y=0 width=39 height=72 xoffset=-1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=120 x=632 y=73 width=35 height=72 xoffset=1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=121 x=668 y=73 width=35 height=72 xoffset=1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=122 x=317 y=365 width=30 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=123 x=750 y=438 width=28 height=72 xoffset=5 yoffset=0 xadvance=37 page=0 chnl=15 +char id=124 x=639 y=511 width=9 height=72 xoffset=14 yoffset=0 xadvance=37 page=0 chnl=15 +char id=125 x=808 y=438 width=28 height=72 xoffset=5 yoffset=0 xadvance=37 page=0 chnl=15 +char id=126 x=657 y=146 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=160 x=649 y=511 width=3 height=72 xoffset=-1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=161 x=619 y=511 width=9 height=72 xoffset=14 yoffset=0 xadvance=37 page=0 chnl=15 +char id=162 x=779 y=438 width=28 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=163 x=363 y=292 width=32 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=164 x=360 y=438 width=29 height=72 xoffset=5 yoffset=0 xadvance=37 page=0 chnl=15 +char id=165 x=674 y=0 width=38 height=72 xoffset=0 yoffset=0 xadvance=37 page=0 chnl=15 +char id=166 x=629 y=511 width=9 height=72 xoffset=14 yoffset=0 xadvance=37 page=0 chnl=15 +char id=167 x=150 y=438 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=168 x=250 y=511 width=21 height=72 xoffset=8 yoffset=0 xadvance=37 page=0 chnl=15 +char id=169 x=160 y=0 width=39 height=72 xoffset=-1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=170 x=48 y=511 width=23 height=72 xoffset=7 yoffset=0 xadvance=37 page=0 chnl=15 +char id=171 x=0 y=438 width=29 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=172 x=34 y=219 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=173 x=184 y=511 width=21 height=72 xoffset=8 yoffset=0 xadvance=37 page=0 chnl=15 +char id=174 x=400 y=0 width=39 height=72 xoffset=-1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=175 x=140 y=511 width=21 height=72 xoffset=8 yoffset=0 xadvance=37 page=0 chnl=15 +char id=176 x=118 y=511 width=21 height=72 xoffset=8 yoffset=0 xadvance=37 page=0 chnl=15 +char id=177 x=204 y=219 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=178 x=272 y=511 width=21 height=72 xoffset=8 yoffset=0 xadvance=37 page=0 chnl=15 +char id=179 x=95 y=511 width=22 height=72 xoffset=8 yoffset=0 xadvance=37 page=0 chnl=15 +char id=180 x=353 y=511 width=18 height=72 xoffset=14 yoffset=0 xadvance=37 page=0 chnl=15 +char id=181 x=589 y=146 width=33 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=182 x=495 y=292 width=32 height=72 xoffset=1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=183 x=1011 y=219 width=11 height=72 xoffset=13 yoffset=0 xadvance=37 page=0 chnl=15 +char id=184 x=426 y=511 width=16 height=72 xoffset=10 yoffset=0 xadvance=37 page=0 chnl=15 +char id=185 x=162 y=511 width=21 height=72 xoffset=9 yoffset=0 xadvance=37 page=0 chnl=15 +char id=186 x=998 y=438 width=23 height=72 xoffset=8 yoffset=0 xadvance=37 page=0 chnl=15 +char id=187 x=690 y=438 width=29 height=72 xoffset=5 yoffset=0 xadvance=37 page=0 chnl=15 +char id=188 x=175 y=146 width=34 height=72 xoffset=1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=189 x=105 y=146 width=34 height=72 xoffset=1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=190 x=0 y=146 width=34 height=72 xoffset=1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=191 x=894 y=438 width=27 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=192 x=868 y=0 width=37 height=72 xoffset=0 yoffset=0 xadvance=37 page=0 chnl=15 +char id=193 x=114 y=73 width=37 height=72 xoffset=0 yoffset=0 xadvance=37 page=0 chnl=15 +char id=194 x=944 y=0 width=37 height=72 xoffset=0 yoffset=0 xadvance=37 page=0 chnl=15 +char id=195 x=228 y=73 width=37 height=72 xoffset=0 yoffset=0 xadvance=37 page=0 chnl=15 +char id=196 x=190 y=73 width=37 height=72 xoffset=0 yoffset=0 xadvance=37 page=0 chnl=15 +char id=197 x=152 y=73 width=37 height=72 xoffset=0 yoffset=0 xadvance=37 page=0 chnl=15 +char id=198 x=752 y=0 width=38 height=72 xoffset=-1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=199 x=627 y=365 width=30 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=200 x=782 y=365 width=30 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=201 x=255 y=365 width=30 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=202 x=503 y=365 width=30 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=203 x=441 y=365 width=30 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=204 x=420 y=438 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=205 x=120 y=438 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=206 x=30 y=438 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=207 x=660 y=438 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=208 x=378 y=73 width=36 height=72 xoffset=-1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=209 x=160 y=365 width=31 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=210 x=238 y=219 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=211 x=725 y=146 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=212 x=170 y=219 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=213 x=136 y=219 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=214 x=68 y=219 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=215 x=192 y=365 width=31 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=216 x=120 y=0 width=39 height=72 xoffset=-1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=217 x=963 y=146 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=218 x=895 y=146 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=219 x=861 y=146 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=220 x=827 y=146 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=221 x=791 y=0 width=38 height=72 xoffset=0 yoffset=0 xadvance=37 page=0 chnl=15 +char id=222 x=561 y=292 width=31 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=223 x=929 y=146 width=33 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=224 x=528 y=292 width=32 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=225 x=231 y=292 width=32 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=226 x=165 y=292 width=32 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=227 x=132 y=292 width=32 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=228 x=99 y=292 width=32 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=229 x=66 y=292 width=32 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=230 x=38 y=73 width=37 height=72 xoffset=0 yoffset=0 xadvance=37 page=0 chnl=15 +char id=231 x=510 y=438 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=232 x=280 y=146 width=34 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=233 x=245 y=146 width=34 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=234 x=210 y=146 width=34 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=235 x=70 y=146 width=34 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=236 x=330 y=292 width=32 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=237 x=198 y=292 width=32 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=238 x=978 y=219 width=32 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=239 x=991 y=73 width=32 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=240 x=385 y=146 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=241 x=540 y=438 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=242 x=646 y=219 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=243 x=578 y=219 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=244 x=544 y=219 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=245 x=272 y=219 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=246 x=102 y=219 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=247 x=524 y=73 width=35 height=72 xoffset=1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=248 x=830 y=0 width=37 height=72 xoffset=0 yoffset=0 xadvance=37 page=0 chnl=15 +char id=249 x=240 y=438 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=250 x=270 y=438 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=251 x=300 y=438 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=252 x=330 y=438 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=253 x=488 y=73 width=35 height=72 xoffset=1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=254 x=593 y=292 width=31 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=255 x=704 y=73 width=35 height=72 xoffset=1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=262 x=224 y=365 width=30 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=263 x=625 y=292 width=31 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=268 x=657 y=292 width=31 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=269 x=410 y=365 width=30 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=273 x=341 y=73 width=36 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=286 x=714 y=219 width=32 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=287 x=813 y=219 width=32 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=304 x=390 y=438 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=305 x=846 y=219 width=32 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=321 x=713 y=0 width=38 height=72 xoffset=-2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=322 x=315 y=146 width=34 height=72 xoffset=1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=338 x=0 y=73 width=37 height=72 xoffset=1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=339 x=982 y=0 width=37 height=72 xoffset=0 yoffset=0 xadvance=37 page=0 chnl=15 +char id=350 x=689 y=292 width=31 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=351 x=570 y=438 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=352 x=721 y=292 width=31 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=353 x=480 y=438 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=376 x=596 y=0 width=38 height=72 xoffset=0 yoffset=0 xadvance=37 page=0 chnl=15 +char id=381 x=555 y=146 width=33 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=382 x=751 y=365 width=30 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=402 x=304 y=73 width=36 height=72 xoffset=0 yoffset=0 xadvance=37 page=0 chnl=15 +char id=710 x=948 y=438 width=24 height=72 xoffset=7 yoffset=0 xadvance=37 page=0 chnl=15 +char id=711 x=973 y=438 width=24 height=72 xoffset=7 yoffset=0 xadvance=37 page=0 chnl=15 +char id=728 x=228 y=511 width=21 height=72 xoffset=8 yoffset=0 xadvance=37 page=0 chnl=15 +char id=729 x=588 y=511 width=10 height=72 xoffset=14 yoffset=0 xadvance=37 page=0 chnl=15 +char id=730 x=294 y=511 width=19 height=72 xoffset=9 yoffset=0 xadvance=37 page=0 chnl=15 +char id=731 x=492 y=511 width=14 height=72 xoffset=13 yoffset=0 xadvance=37 page=0 chnl=15 +char id=732 x=24 y=511 width=23 height=72 xoffset=7 yoffset=0 xadvance=37 page=0 chnl=15 +char id=733 x=997 y=146 width=25 height=72 xoffset=8 yoffset=0 xadvance=37 page=0 chnl=15 +char id=937 x=521 y=146 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=960 x=440 y=0 width=38 height=72 xoffset=0 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8211 x=320 y=0 width=39 height=72 xoffset=-1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8212 x=40 y=0 width=39 height=72 xoffset=-1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8216 x=507 y=511 width=14 height=72 xoffset=12 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8217 x=537 y=511 width=14 height=72 xoffset=12 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8218 x=522 y=511 width=14 height=72 xoffset=10 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8220 x=90 y=438 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8221 x=60 y=438 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8222 x=720 y=438 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8224 x=965 y=365 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8225 x=875 y=365 width=29 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8226 x=0 y=511 width=23 height=72 xoffset=7 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8230 x=740 y=73 width=35 height=72 xoffset=1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8240 x=360 y=0 width=39 height=72 xoffset=-1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8249 x=476 y=511 width=15 height=72 xoffset=10 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8250 x=443 y=511 width=16 height=72 xoffset=12 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8364 x=374 y=219 width=33 height=72 xoffset=0 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8482 x=415 y=73 width=36 height=72 xoffset=-1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8706 x=348 y=365 width=30 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8710 x=280 y=0 width=39 height=72 xoffset=-1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8719 x=565 y=365 width=30 height=72 xoffset=4 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8721 x=913 y=292 width=31 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8722 x=812 y=73 width=35 height=72 xoffset=1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8725 x=297 y=292 width=32 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8729 x=552 y=511 width=11 height=72 xoffset=13 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8730 x=848 y=73 width=35 height=72 xoffset=1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8734 x=635 y=0 width=38 height=72 xoffset=0 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8747 x=920 y=73 width=35 height=72 xoffset=1 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8776 x=612 y=219 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8800 x=350 y=146 width=34 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8804 x=680 y=219 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=8805 x=419 y=146 width=33 height=72 xoffset=2 yoffset=0 xadvance=37 page=0 chnl=15 +char id=9674 x=128 y=365 width=31 height=72 xoffset=3 yoffset=0 xadvance=37 page=0 chnl=15 diff --git a/font/vera_sans_mono72_0.png b/font/vera_sans_mono72_0.png new file mode 100644 index 0000000..7af6610 Binary files /dev/null and b/font/vera_sans_mono72_0.png differ diff --git a/font/vera_sans_mono96.bmfc b/font/vera_sans_mono96.bmfc new file mode 100644 index 0000000..791b162 --- /dev/null +++ b/font/vera_sans_mono96.bmfc @@ -0,0 +1,57 @@ +# AngelCode Bitmap Font Generator configuration file +fileVersion=1 + +# font settings +fontName=Bitstream Vera Sans Mono +fontFile=VeraMoBd.ttf +charSet=0 +fontSize=96 +aa=1 +scaleH=100 +useSmoothing=1 +isBold=0 +isItalic=0 +useUnicode=1 +disableBoxChars=1 +outputInvalidCharGlyph=0 +dontIncludeKerningPairs=0 +useHinting=1 +renderFromOutline=0 +useClearType=1 + +# character alignment +paddingDown=0 +paddingUp=0 +paddingRight=0 +paddingLeft=0 +spacingHoriz=1 +spacingVert=1 +useFixedHeight=1 +forceZero=0 + +# output file +outWidth=1024 +outHeight=1024 +outBitDepth=32 +fontDescFormat=0 +fourChnlPacked=0 +textureFormat=png +textureCompression=0 +alphaChnl=1 +redChnl=0 +greenChnl=0 +blueChnl=0 +invA=0 +invR=0 +invG=0 +invB=0 + +# outline +outlineThickness=0 + +# selected chars +chars=32-126,160-255,262-263,268-269,273,286-287,304-305,321-322,338-339,350-353,376,381-382,402,710-711 +chars=728-733,937,960,8211-8212,8216-8218,8220-8222,8224-8226,8230,8240,8249-8250,8364,8482,8706,8710 +chars=8719,8721-8722,8725,8729-8730,8734,8747,8776,8800,8804-8805,9674 + +# imported icon images diff --git a/font/vera_sans_mono96.fnt b/font/vera_sans_mono96.fnt new file mode 100644 index 0000000..e3cf376 --- /dev/null +++ b/font/vera_sans_mono96.fnt @@ -0,0 +1,258 @@ +info face="Bitstream Vera Sans Mono" size=96 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=96 base=77 scaleW=1024 scaleH=1024 pages=1 packed=0 alphaChnl=1 redChnl=0 greenChnl=0 blueChnl=0 +page id=0 file="vera_sans_mono96_0.png" +chars count=254 +char id=32 x=1015 y=194 width=3 height=96 xoffset=-1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=33 x=845 y=873 width=13 height=96 xoffset=18 yoffset=0 xadvance=49 page=0 chnl=15 +char id=34 x=985 y=776 width=33 height=96 xoffset=8 yoffset=0 xadvance=49 page=0 chnl=15 +char id=35 x=156 y=0 width=51 height=96 xoffset=-1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=36 x=39 y=776 width=38 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=37 x=250 y=97 width=49 height=96 xoffset=1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=38 x=826 y=0 width=49 height=96 xoffset=1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=39 x=887 y=873 width=12 height=96 xoffset=19 yoffset=0 xadvance=49 page=0 chnl=15 +char id=40 x=528 y=873 width=23 height=96 xoffset=15 yoffset=0 xadvance=49 page=0 chnl=15 +char id=41 x=552 y=873 width=23 height=96 xoffset=12 yoffset=0 xadvance=49 page=0 chnl=15 +char id=42 x=84 y=582 width=41 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=43 x=141 y=194 width=46 height=96 xoffset=2 yoffset=0 xadvance=49 page=0 chnl=15 +char id=44 x=743 y=873 width=18 height=96 xoffset=14 yoffset=0 xadvance=49 page=0 chnl=15 +char id=45 x=394 y=873 width=27 height=96 xoffset=11 yoffset=0 xadvance=49 page=0 chnl=15 +char id=46 x=797 y=873 width=15 height=96 xoffset=17 yoffset=0 xadvance=49 page=0 chnl=15 +char id=47 x=516 y=485 width=42 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=48 x=126 y=582 width=41 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=49 x=440 y=679 width=39 height=96 xoffset=7 yoffset=0 xadvance=49 page=0 chnl=15 +char id=50 x=877 y=582 width=39 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=51 x=168 y=582 width=41 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=52 x=528 y=388 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=53 x=713 y=582 width=40 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=54 x=210 y=582 width=41 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=55 x=672 y=582 width=40 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=56 x=294 y=582 width=41 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=57 x=336 y=582 width=41 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=58 x=813 y=873 width=15 height=96 xoffset=17 yoffset=0 xadvance=49 page=0 chnl=15 +char id=59 x=762 y=873 width=18 height=96 xoffset=14 yoffset=0 xadvance=49 page=0 chnl=15 +char id=60 x=835 y=194 width=44 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=61 x=132 y=388 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=62 x=745 y=194 width=44 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=63 x=913 y=776 width=35 height=96 xoffset=8 yoffset=0 xadvance=49 page=0 chnl=15 +char id=64 x=692 y=97 width=47 height=96 xoffset=0 yoffset=0 xadvance=49 page=0 chnl=15 +char id=65 x=300 y=97 width=48 height=96 xoffset=1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=66 x=925 y=194 width=44 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=67 x=520 y=679 width=39 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=68 x=378 y=582 width=41 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=69 x=480 y=679 width=39 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=70 x=835 y=679 width=38 height=96 xoffset=7 yoffset=0 xadvance=49 page=0 chnl=15 +char id=71 x=172 y=485 width=42 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=72 x=754 y=582 width=40 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=73 x=306 y=776 width=37 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=74 x=382 y=776 width=37 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=75 x=515 y=194 width=45 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=76 x=120 y=679 width=39 height=96 xoffset=8 yoffset=0 xadvance=49 page=0 chnl=15 +char id=77 x=893 y=291 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=78 x=420 y=582 width=41 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=79 x=308 y=388 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=80 x=462 y=582 width=41 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=81 x=805 y=291 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=82 x=469 y=194 width=45 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=83 x=504 y=582 width=41 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=84 x=585 y=291 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=85 x=980 y=97 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=86 x=235 y=194 width=46 height=96 xoffset=2 yoffset=0 xadvance=49 page=0 chnl=15 +char id=87 x=364 y=0 width=51 height=96 xoffset=-1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=88 x=926 y=0 width=49 height=96 xoffset=0 yoffset=0 xadvance=49 page=0 chnl=15 +char id=89 x=775 y=0 width=50 height=96 xoffset=0 yoffset=0 xadvance=49 page=0 chnl=15 +char id=90 x=660 y=388 width=43 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=91 x=599 y=873 width=22 height=96 xoffset=16 yoffset=0 xadvance=49 page=0 chnl=15 +char id=92 x=546 y=582 width=41 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=93 x=576 y=873 width=22 height=96 xoffset=11 yoffset=0 xadvance=49 page=0 chnl=15 +char id=94 x=0 y=194 width=46 height=96 xoffset=2 yoffset=0 xadvance=49 page=0 chnl=15 +char id=95 x=416 y=0 width=51 height=96 xoffset=-1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=96 x=997 y=582 width=24 height=96 xoffset=7 yoffset=0 xadvance=49 page=0 chnl=15 +char id=97 x=747 y=388 width=42 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=98 x=790 y=388 width=42 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=99 x=78 y=776 width=37 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=100 x=588 y=582 width=41 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=101 x=45 y=291 width=44 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=102 x=718 y=679 width=38 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=103 x=630 y=582 width=41 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=104 x=640 y=679 width=38 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=105 x=602 y=485 width=42 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=106 x=129 y=873 width=30 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=107 x=919 y=388 width=42 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=108 x=981 y=291 width=42 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=109 x=970 y=194 width=44 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=110 x=0 y=776 width=38 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=111 x=717 y=291 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=112 x=704 y=388 width=42 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=113 x=688 y=485 width=41 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=114 x=876 y=776 width=36 height=96 xoffset=11 yoffset=0 xadvance=49 page=0 chnl=15 +char id=115 x=572 y=776 width=37 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=116 x=795 y=582 width=40 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=117 x=496 y=776 width=37 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=118 x=270 y=291 width=44 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=119 x=468 y=0 width=51 height=96 xoffset=-1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=120 x=94 y=194 width=46 height=96 xoffset=2 yoffset=0 xadvance=49 page=0 chnl=15 +char id=121 x=47 y=194 width=46 height=96 xoffset=2 yoffset=0 xadvance=49 page=0 chnl=15 +char id=122 x=757 y=679 width=38 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=123 x=268 y=776 width=37 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=124 x=900 y=873 width=11 height=96 xoffset=19 yoffset=0 xadvance=49 page=0 chnl=15 +char id=125 x=420 y=776 width=37 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=126 x=0 y=291 width=44 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=160 x=1019 y=194 width=3 height=96 xoffset=-1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=161 x=859 y=873 width=13 height=96 xoffset=18 yoffset=0 xadvance=49 page=0 chnl=15 +char id=162 x=344 y=776 width=37 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=163 x=301 y=485 width=42 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=164 x=874 y=679 width=38 height=96 xoffset=7 yoffset=0 xadvance=49 page=0 chnl=15 +char id=165 x=571 y=0 width=50 height=96 xoffset=0 yoffset=0 xadvance=49 page=0 chnl=15 +char id=166 x=912 y=873 width=11 height=96 xoffset=19 yoffset=0 xadvance=49 page=0 chnl=15 +char id=167 x=192 y=776 width=37 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=168 x=338 y=873 width=27 height=96 xoffset=11 yoffset=0 xadvance=49 page=0 chnl=15 +char id=169 x=260 y=0 width=51 height=96 xoffset=-1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=170 x=98 y=873 width=30 height=96 xoffset=10 yoffset=0 xadvance=49 page=0 chnl=15 +char id=171 x=957 y=582 width=39 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=172 x=220 y=388 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=173 x=366 y=873 width=27 height=96 xoffset=11 yoffset=0 xadvance=49 page=0 chnl=15 +char id=174 x=52 y=0 width=51 height=96 xoffset=-1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=175 x=450 y=873 width=27 height=96 xoffset=11 yoffset=0 xadvance=49 page=0 chnl=15 +char id=176 x=309 y=873 width=28 height=96 xoffset=11 yoffset=0 xadvance=49 page=0 chnl=15 +char id=177 x=450 y=291 width=44 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=178 x=280 y=873 width=28 height=96 xoffset=10 yoffset=0 xadvance=49 page=0 chnl=15 +char id=179 x=251 y=873 width=28 height=96 xoffset=11 yoffset=0 xadvance=49 page=0 chnl=15 +char id=180 x=503 y=873 width=24 height=96 xoffset=18 yoffset=0 xadvance=49 page=0 chnl=15 +char id=181 x=876 y=388 width=42 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=182 x=730 y=485 width=41 height=96 xoffset=2 yoffset=0 xadvance=49 page=0 chnl=15 +char id=183 x=781 y=873 width=15 height=96 xoffset=17 yoffset=0 xadvance=49 page=0 chnl=15 +char id=184 x=664 y=873 width=20 height=96 xoffset=14 yoffset=0 xadvance=49 page=0 chnl=15 +char id=185 x=422 y=873 width=27 height=96 xoffset=12 yoffset=0 xadvance=49 page=0 chnl=15 +char id=186 x=991 y=679 width=31 height=96 xoffset=10 yoffset=0 xadvance=49 page=0 chnl=15 +char id=187 x=679 y=679 width=38 height=96 xoffset=7 yoffset=0 xadvance=49 page=0 chnl=15 +char id=188 x=561 y=194 width=45 height=96 xoffset=1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=189 x=282 y=194 width=46 height=96 xoffset=1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=190 x=607 y=194 width=45 height=96 xoffset=1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=191 x=949 y=776 width=35 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=192 x=447 y=97 width=48 height=96 xoffset=1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=193 x=398 y=97 width=48 height=96 xoffset=1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=194 x=349 y=97 width=48 height=96 xoffset=1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=195 x=594 y=97 width=48 height=96 xoffset=1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=196 x=496 y=97 width=48 height=96 xoffset=1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=197 x=545 y=97 width=48 height=96 xoffset=1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=198 x=100 y=97 width=49 height=96 xoffset=-1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=199 x=40 y=679 width=39 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=200 x=360 y=679 width=39 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=201 x=320 y=679 width=39 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=202 x=240 y=679 width=39 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=203 x=280 y=679 width=39 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=204 x=458 y=776 width=37 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=205 x=610 y=776 width=37 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=206 x=648 y=776 width=37 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=207 x=800 y=776 width=37 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=208 x=788 y=97 width=47 height=96 xoffset=-1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=209 x=814 y=485 width=41 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=210 x=572 y=388 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=211 x=440 y=388 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=212 x=396 y=388 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=213 x=352 y=388 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=214 x=264 y=388 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=215 x=856 y=485 width=41 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=216 x=673 y=0 width=50 height=96 xoffset=-1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=217 x=176 y=388 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=218 x=88 y=388 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=219 x=44 y=388 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=220 x=0 y=388 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=221 x=520 y=0 width=50 height=96 xoffset=0 yoffset=0 xadvance=49 page=0 chnl=15 +char id=222 x=898 y=485 width=41 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=223 x=880 y=194 width=44 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=224 x=258 y=485 width=42 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=225 x=129 y=485 width=42 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=226 x=86 y=485 width=42 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=227 x=43 y=485 width=42 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=228 x=0 y=485 width=42 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=229 x=962 y=388 width=42 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=230 x=50 y=97 width=49 height=96 xoffset=0 yoffset=0 xadvance=49 page=0 chnl=15 +char id=231 x=534 y=776 width=37 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=232 x=225 y=291 width=44 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=233 x=180 y=291 width=44 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=234 x=135 y=291 width=44 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=235 x=90 y=291 width=44 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=236 x=645 y=485 width=42 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=237 x=559 y=485 width=42 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=238 x=473 y=485 width=42 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=239 x=833 y=388 width=42 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=240 x=673 y=291 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=241 x=913 y=679 width=38 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=242 x=629 y=291 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=243 x=484 y=388 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=244 x=761 y=291 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=245 x=937 y=291 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=246 x=849 y=291 width=43 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=247 x=653 y=194 width=45 height=96 xoffset=2 yoffset=0 xadvance=49 page=0 chnl=15 +char id=248 x=150 y=97 width=49 height=96 xoffset=0 yoffset=0 xadvance=49 page=0 chnl=15 +char id=249 x=686 y=776 width=37 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=250 x=724 y=776 width=37 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=251 x=762 y=776 width=37 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=252 x=838 y=776 width=37 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=253 x=188 y=194 width=46 height=96 xoffset=2 yoffset=0 xadvance=49 page=0 chnl=15 +char id=254 x=430 y=485 width=42 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=255 x=329 y=194 width=46 height=96 xoffset=2 yoffset=0 xadvance=49 page=0 chnl=15 +char id=262 x=80 y=679 width=39 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=263 x=836 y=582 width=40 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=268 x=940 y=485 width=41 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=269 x=796 y=679 width=38 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=273 x=932 y=97 width=47 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=286 x=387 y=485 width=42 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=287 x=982 y=485 width=41 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=304 x=154 y=776 width=37 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=305 x=215 y=485 width=42 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=321 x=0 y=97 width=49 height=96 xoffset=-2 yoffset=0 xadvance=49 page=0 chnl=15 +char id=322 x=790 y=194 width=44 height=96 xoffset=1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=338 x=643 y=97 width=48 height=96 xoffset=2 yoffset=0 xadvance=49 page=0 chnl=15 +char id=339 x=876 y=0 width=49 height=96 xoffset=0 yoffset=0 xadvance=49 page=0 chnl=15 +char id=350 x=0 y=582 width=41 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=351 x=116 y=776 width=37 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=352 x=42 y=582 width=41 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=353 x=230 y=776 width=37 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=376 x=724 y=0 width=50 height=96 xoffset=0 yoffset=0 xadvance=49 page=0 chnl=15 +char id=381 x=616 y=388 width=43 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=382 x=952 y=679 width=38 height=96 xoffset=6 yoffset=0 xadvance=49 page=0 chnl=15 +char id=402 x=976 y=0 width=47 height=96 xoffset=0 yoffset=0 xadvance=49 page=0 chnl=15 +char id=710 x=66 y=873 width=31 height=96 xoffset=9 yoffset=0 xadvance=49 page=0 chnl=15 +char id=711 x=34 y=873 width=31 height=96 xoffset=9 yoffset=0 xadvance=49 page=0 chnl=15 +char id=728 x=191 y=873 width=29 height=96 xoffset=10 yoffset=0 xadvance=49 page=0 chnl=15 +char id=729 x=873 y=873 width=13 height=96 xoffset=18 yoffset=0 xadvance=49 page=0 chnl=15 +char id=730 x=478 y=873 width=24 height=96 xoffset=13 yoffset=0 xadvance=49 page=0 chnl=15 +char id=731 x=685 y=873 width=19 height=96 xoffset=17 yoffset=0 xadvance=49 page=0 chnl=15 +char id=732 x=221 y=873 width=29 height=96 xoffset=10 yoffset=0 xadvance=49 page=0 chnl=15 +char id=733 x=0 y=873 width=33 height=96 xoffset=11 yoffset=0 xadvance=49 page=0 chnl=15 +char id=937 x=360 y=291 width=44 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=960 x=200 y=97 width=49 height=96 xoffset=0 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8211 x=208 y=0 width=51 height=96 xoffset=-1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8212 x=104 y=0 width=51 height=96 xoffset=-1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8216 x=1005 y=388 width=18 height=96 xoffset=16 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8217 x=705 y=873 width=18 height=96 xoffset=16 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8218 x=724 y=873 width=18 height=96 xoffset=14 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8220 x=0 y=679 width=39 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8221 x=917 y=582 width=39 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8222 x=600 y=679 width=39 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8224 x=560 y=679 width=39 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8225 x=400 y=679 width=39 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8226 x=160 y=873 width=30 height=96 xoffset=10 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8230 x=836 y=97 width=47 height=96 xoffset=1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8240 x=312 y=0 width=51 height=96 xoffset=-1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8249 x=622 y=873 width=20 height=96 xoffset=13 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8250 x=643 y=873 width=20 height=96 xoffset=16 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8364 x=315 y=291 width=44 height=96 xoffset=0 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8482 x=740 y=97 width=47 height=96 xoffset=-1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8706 x=200 y=679 width=39 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8710 x=0 y=0 width=51 height=96 xoffset=-1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8719 x=160 y=679 width=39 height=96 xoffset=5 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8721 x=252 y=582 width=41 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8722 x=423 y=194 width=45 height=96 xoffset=2 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8725 x=344 y=485 width=42 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8729 x=829 y=873 width=15 height=96 xoffset=17 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8730 x=884 y=97 width=47 height=96 xoffset=1 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8734 x=622 y=0 width=50 height=96 xoffset=0 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8747 x=376 y=194 width=46 height=96 xoffset=2 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8776 x=405 y=291 width=44 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8800 x=699 y=194 width=45 height=96 xoffset=2 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8804 x=495 y=291 width=44 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=8805 x=540 y=291 width=44 height=96 xoffset=3 yoffset=0 xadvance=49 page=0 chnl=15 +char id=9674 x=772 y=485 width=41 height=96 xoffset=4 yoffset=0 xadvance=49 page=0 chnl=15 diff --git a/font/vera_sans_mono96_0.png b/font/vera_sans_mono96_0.png new file mode 100644 index 0000000..7774097 Binary files /dev/null and b/font/vera_sans_mono96_0.png differ diff --git a/src/AppConfig.cpp b/src/AppConfig.cpp index 85b3016..1fb7d99 100644 --- a/src/AppConfig.cpp +++ b/src/AppConfig.cpp @@ -284,6 +284,7 @@ AppConfig::AppConfig() : configName("") { showTips.store(true); lowPerfMode.store(false); themeId.store(0); + fontScale.store(0); snap.store(1); centerFreq.store(100000000); waterfallLinesPerSec.store(DEFAULT_WATERFALL_LPS); @@ -373,6 +374,14 @@ int AppConfig::getTheme() { return themeId.load(); } +void AppConfig::setFontScale(int fontScale) { + this->fontScale.store(fontScale); +} + +int AppConfig::getFontScale() { + return fontScale.load(); +} + void AppConfig::setSnap(long long snapVal) { this->snap.store(snapVal); @@ -454,6 +463,7 @@ bool AppConfig::save() { *window_node->newChild("tips") = showTips.load(); *window_node->newChild("low_perf_mode") = lowPerfMode.load(); *window_node->newChild("theme") = themeId.load(); + *window_node->newChild("font_scale") = fontScale.load(); *window_node->newChild("snap") = snap.load(); *window_node->newChild("center_freq") = centerFreq.load(); *window_node->newChild("waterfall_lps") = waterfallLinesPerSec.load(); @@ -574,6 +584,12 @@ bool AppConfig::load() { themeId.store(theme); } + if (win_node->hasAnother("font_scale")) { + int fscale; + win_node->getNext("font_scale")->element()->get(fscale); + fontScale.store(fscale); + } + if (win_node->hasAnother("snap")) { long long snapVal; win_node->getNext("snap")->element()->get(snapVal); diff --git a/src/AppConfig.h b/src/AppConfig.h index 1b39b29..fdc4a24 100644 --- a/src/AppConfig.h +++ b/src/AppConfig.h @@ -94,6 +94,9 @@ public: void setTheme(int themeId); int getTheme(); + void setFontScale(int scaleValue); + int getFontScale(); + void setSnap(long long snapVal); long long getSnap(); @@ -147,6 +150,7 @@ private: std::atomic_int winX,winY,winW,winH; std::atomic_bool winMax, showTips, lowPerfMode; std::atomic_int themeId; + std::atomic_int fontScale; std::atomic_llong snap; std::atomic_llong centerFreq; std::atomic_int waterfallLinesPerSec; diff --git a/src/AppFrame.cpp b/src/AppFrame.cpp index 69d39c7..ebb0a35 100644 --- a/src/AppFrame.cpp +++ b/src/AppFrame.cpp @@ -84,8 +84,8 @@ AppFrame::AppFrame() : demodModeSelector->addChoice("I/Q"); demodModeSelector->setSelection("FM"); demodModeSelector->setHelpTip("Choose modulation type: Frequency Modulation (Hotkey F), Amplitude Modulation (A) and Lower (L), Upper (U), Double Side-Band and more."); - demodModeSelector->SetMinSize(wxSize(40,-1)); - demodModeSelector->SetMaxSize(wxSize(40,-1)); + demodModeSelector->SetMinSize(wxSize(50,-1)); + demodModeSelector->SetMaxSize(wxSize(50,-1)); demodTray->Add(demodModeSelector, 2, wxEXPAND | wxALL, 0); #ifdef ENABLE_DIGITAL_LAB @@ -103,8 +103,8 @@ AppFrame::AppFrame() : demodModeSelectorAdv->addChoice("QAM"); demodModeSelectorAdv->addChoice("QPSK"); demodModeSelectorAdv->setHelpTip("Choose advanced modulation types."); - demodModeSelectorAdv->SetMinSize(wxSize(40,-1)); - demodModeSelectorAdv->SetMaxSize(wxSize(40,-1)); + demodModeSelectorAdv->SetMinSize(wxSize(44,-1)); + demodModeSelectorAdv->SetMaxSize(wxSize(44,-1)); demodTray->Add(demodModeSelectorAdv, 3, wxEXPAND | wxALL, 0); #endif @@ -447,6 +447,19 @@ AppFrame::AppFrame() : menuBar->Append(menu, wxT("Audio &Sample Rate")); + + //Add Display menu + displayMenu = new wxMenu; + + menuBar->Append(displayMenu, wxT("&Display")); + int fontScale = wxGetApp().getConfig()->getFontScale(); + + displayMenu->AppendRadioItem(wxID_DISPLAY_BASE, "Text Size: Normal")->Check(GLFont::GLFONT_SCALE_NORMAL == fontScale); + displayMenu->AppendRadioItem(wxID_DISPLAY_BASE + 1, "Text Size: 1.5x")->Check(GLFont::GLFONT_SCALE_MEDIUM == fontScale); + displayMenu->AppendRadioItem(wxID_DISPLAY_BASE + 2, "Text Size: 2.0x")->Check(GLFont::GLFONT_SCALE_LARGE == fontScale); + + GLFont::setScale((GLFont::GLFontScale)fontScale); + #ifdef USE_HAMLIB rigModel = wxGetApp().getConfig()->getRigModel(); @@ -581,6 +594,9 @@ AppFrame::AppFrame() : // static const int attribs[] = { WX_GL_RGBA, WX_GL_DOUBLEBUFFER, 0 }; // wxLogStatus("Double-buffered display %s supported", wxGLCanvas::IsDisplaySupported(attribs) ? "is" : "not"); // ShowFullScreen(true); + + //Force refresh of all + Refresh(); } AppFrame::~AppFrame() { @@ -773,7 +789,9 @@ void AppFrame::disableRig() { } #endif + void AppFrame::OnMenu(wxCommandEvent& event) { + if (event.GetId() >= wxID_RT_AUDIO_DEVICE && event.GetId() < wxID_RT_AUDIO_DEVICE + (int)devices.size()) { if (activeDemodulator) { activeDemodulator->setOutputDevice(event.GetId() - wxID_RT_AUDIO_DEVICE); @@ -911,6 +929,22 @@ void AppFrame::OnMenu(wxCommandEvent& event) { } else if (event.GetId() == wxID_THEME_RADAR) { ThemeMgr::mgr.setTheme(COLOR_THEME_RADAR); } + //Display : font sizes + else if (event.GetId() == wxID_DISPLAY_BASE) { + GLFont::setScale(GLFont::GLFONT_SCALE_NORMAL); + //force all windows refresh + Refresh(); + } + else if (event.GetId() == wxID_DISPLAY_BASE + 1) { + GLFont::setScale(GLFont::GLFONT_SCALE_MEDIUM); + //force all windows refresh + Refresh(); + } + else if (event.GetId() == wxID_DISPLAY_BASE + 2) { + GLFont::setScale(GLFont::GLFONT_SCALE_LARGE); + //force all windows refresh + Refresh(); + } if (event.GetId() >= wxID_SETTINGS_BASE && event.GetId() < settingsIdMax) { int setIdx = event.GetId()-wxID_SETTINGS_BASE; @@ -1159,6 +1193,7 @@ void AppFrame::OnClose(wxCloseEvent& event) { wxGetApp().getConfig()->setWindow(this->GetPosition(), this->GetClientSize()); wxGetApp().getConfig()->setWindowMaximized(this->IsMaximized()); wxGetApp().getConfig()->setTheme(ThemeMgr::mgr.getTheme()); + wxGetApp().getConfig()->setFontScale(GLFont::getScale()); wxGetApp().getConfig()->setSnap(wxGetApp().getFrequencySnap()); wxGetApp().getConfig()->setCenterFreq(wxGetApp().getFrequency()); wxGetApp().getConfig()->setSpectrumAvgSpeed(wxGetApp().getSpectrumProcessor()->getFFTAverageRate()); @@ -1545,6 +1580,8 @@ void AppFrame::OnUnSplit(wxSplitterEvent& event) event.Veto(); } + + void AppFrame::saveSession(std::string fileName) { DataTree s("cubicsdr_session"); DataNode *header = s.rootNode()->newChild("header"); @@ -1584,7 +1621,7 @@ void AppFrame::saveSession(std::string fileName) { *settingsNode->newChild(msi->first.c_str()) = msi->second; } } - } + } //end for demodulators s.SaveToFileXML(fileName); diff --git a/src/AppFrame.h b/src/AppFrame.h index 8679c9a..5c9774b 100644 --- a/src/AppFrame.h +++ b/src/AppFrame.h @@ -47,6 +47,8 @@ #define wxID_BANDWIDTH_BASE 2150 #define wxID_BANDWIDTH_MANUAL 2200 +#define wxID_DISPLAY_BASE 2250 + #define wxID_SETTINGS_BASE 2300 #define wxID_DEVICE_ID 3500 @@ -107,7 +109,7 @@ private: void OnIdle(wxIdleEvent& event); void OnDoubleClickSash(wxSplitterEvent& event); void OnUnSplit(wxSplitterEvent& event); - + ScopeCanvas *scopeCanvas; SpectrumCanvas *spectrumCanvas; WaterfallCanvas *waterfallCanvas; @@ -139,11 +141,14 @@ private: std::map audioSampleRateMenuItems; std::map directSamplingMenuItems; wxMenuBar *menuBar; + wxMenu *sampleRateMenu; + wxMenu *displayMenu; wxMenuItem *agcMenuItem; wxMenuItem *iqSwapMenuItem; wxMenuItem *lowPerfMenuItem; wxMenu *settingsMenu; + SoapySDR::ArgInfoList settingArgs; int settingsIdMax; std::vector sampleRates; diff --git a/src/CubicSDR.cpp b/src/CubicSDR.cpp index 2ee7d21..6ec5fc1 100644 --- a/src/CubicSDR.cpp +++ b/src/CubicSDR.cpp @@ -25,6 +25,7 @@ IMPLEMENT_APP(CubicSDR) #include +#include //#ifdef ENABLE_DIGITAL_LAB //// console output buffer for windows @@ -142,6 +143,12 @@ CubicSDR::CubicSDR() : appframe(NULL), m_glContext(NULL), frequency(0), offset(0 } bool CubicSDR::OnInit() { + + //use the current locale most appropriate to this system, + //so that character-related functions are likely to handle Unicode + //better (by default, was "C" locale). + std::setlocale(LC_ALL, ""); + #ifdef _OSX_APP_ CFBundleRef mainBundle = CFBundleGetMainBundle(); CFURLRef resourcesURL = CFBundleCopyResourcesDirectoryURL(mainBundle); @@ -172,7 +179,7 @@ bool CubicSDR::OnInit() { std::streambuf *sb = std::cout.rdbuf(); std::cout.rdbuf(sb); #endif - + wxApp::SetAppName("CubicSDR"); diff --git a/src/DemodLabelDialog.cpp b/src/DemodLabelDialog.cpp index de3ba80..d5a7e50 100644 --- a/src/DemodLabelDialog.cpp +++ b/src/DemodLabelDialog.cpp @@ -42,15 +42,17 @@ void DemodLabelDialog::OnChar(wxKeyEvent& event) { int c = event.GetKeyCode(); //we support 16 bit strings for user labels internally. - std::wstring strValue = dialogText->GetValue().ToStdWstring(); + wxString strValue = dialogText->GetValue(); switch (c) { case WXK_RETURN: case WXK_NUMPAD_ENTER: - //No need to display the demodulator type twice if the user do not change the default value... - if (strValue != activeDemod->getDemodulatorType()) { - activeDemod->setDemodulatorUserLabel(strValue); + //No need to display the demodulator type twice if the user do not change the default value... + //when comparing getDemodulatorType() std::string, take care of "upgrading" it to wxString which will + //try to its best... + if (strValue != wxString(activeDemod->getDemodulatorType())) { + activeDemod->setDemodulatorUserLabel(strValue.ToStdWstring()); } else { activeDemod->setDemodulatorUserLabel(L""); diff --git a/src/panel/SpectrumPanel.cpp b/src/panel/SpectrumPanel.cpp index 0f60984..7437933 100644 --- a/src/panel/SpectrumPanel.cpp +++ b/src/panel/SpectrumPanel.cpp @@ -167,40 +167,42 @@ void SpectrumPanel::drawPanelContents() { std::stringstream label; label.precision(1); - if (mhzStep * 0.5 * viewWidth < 40) { + double fontScale = GLFont::getScaleFactor(); + + if (mhzStep * 0.5 * viewWidth < 40 * fontScale) { mhzStep = (250000.0 / (long double) (rightFreq - leftFreq)) * 2.0; mhzVisualStep = 0.25; - if (mhzStep * 0.5 * viewWidth < 40) { + if (mhzStep * 0.5 * viewWidth < 40 * fontScale) { mhzStep = (500000.0 / (long double) (rightFreq - leftFreq)) * 2.0; mhzVisualStep = 0.5; } - if (mhzStep * 0.5 * viewWidth < 40) { + if (mhzStep * 0.5 * viewWidth < 40 * fontScale) { mhzStep = (1000000.0 / (long double) (rightFreq - leftFreq)) * 2.0; mhzVisualStep = 1.0; } - if (mhzStep * 0.5 * viewWidth < 40) { + if (mhzStep * 0.5 * viewWidth < 40 * fontScale) { mhzStep = (2500000.0 / (long double) (rightFreq - leftFreq)) * 2.0; mhzVisualStep = 2.5; } - if (mhzStep * 0.5 * viewWidth < 40) { + if (mhzStep * 0.5 * viewWidth < 40 * fontScale) { mhzStep = (5000000.0 / (long double) (rightFreq - leftFreq)) * 2.0; mhzVisualStep = 5.0; } - if (mhzStep * 0.5 * viewWidth < 40) { + if (mhzStep * 0.5 * viewWidth < 40 * fontScale) { mhzStep = (10000000.0 / (long double) (rightFreq - leftFreq)) * 2.0; mhzVisualStep = 10.0; } - if (mhzStep * 0.5 * viewWidth < 40) { + if (mhzStep * 0.5 * viewWidth < 40 * fontScale) { mhzStep = (50000000.0 / (long double) (rightFreq - leftFreq)) * 2.0; mhzVisualStep = 50.0; } - } else if (mhzStep * 0.5 * viewWidth > 350) { + } else if (mhzStep * 0.5 * viewWidth > 350 * fontScale) { mhzStep = (10000.0 / (long double) (rightFreq - leftFreq)) * 2.0; mhzVisualStep = 0.01; label.precision(2); @@ -211,18 +213,19 @@ void SpectrumPanel::drawPanelContents() { long double currentMhz = trunc(floor(firstMhz / (long double)1000000.0)); - double hPos = 1.0 - (16.0 / viewHeight); + double hPos = 1.0 - (16.0 / viewHeight) * GLFont::getScaleFactor(); double lMhzPos = 1.0 - (5.0 / viewHeight); int fontSize = 12; - GLFont::GLFontSize fontEnumSize = GLFont::GLFONT_SIZE12; if (viewHeight > 135) { + fontSize = 16; - fontEnumSize = GLFont::GLFONT_SIZE16; - hPos = 1.0 - (18.0 / viewHeight); + hPos = 1.0 - (18.0 / viewHeight) * GLFont::getScaleFactor(); } + GLFont::Drawer refDrawingFont = GLFont::getFont(fontSize, GLFont::getScaleFactor()); + for (double m = -1.0 + mhzStart, mMax = 1.0 + ((mhzStart>0)?mhzStart:-mhzStart); m <= mMax; m += mhzStep) { if (m < -1.0) { currentMhz += mhzVisualStep; @@ -254,7 +257,7 @@ void SpectrumPanel::drawPanelContents() { glColor4f(ThemeMgr::mgr.currentTheme->text.r, ThemeMgr::mgr.currentTheme->text.g, ThemeMgr::mgr.currentTheme->text.b,1.0); - GLFont::getFont(fontEnumSize).drawString(label.str(), m, hPos, fontSize, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER, 0, 0, true); + refDrawingFont.drawString(label.str(), m, hPos, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER, 0, 0, true); label.str(std::string()); @@ -264,8 +267,8 @@ void SpectrumPanel::drawPanelContents() { glLineWidth(1.0); if (showDb) { - float dbPanelWidth = (1.0/viewWidth)*75.0; - float dbPanelHeight = (1.0/viewHeight)*14.0; + float dbPanelWidth = (1.0 / viewWidth)*75.0 * GLFont::getScaleFactor(); + float dbPanelHeight = (1.0/viewHeight)*14.0 * GLFont::getScaleFactor(); std::stringstream ssLabel(""); @@ -275,6 +278,7 @@ void SpectrumPanel::drawPanelContents() { dbPanelCeil.setText(ssLabel.str(), GLFont::GLFONT_ALIGN_RIGHT); dbPanelCeil.setSize(dbPanelWidth, dbPanelHeight); dbPanelCeil.setPosition(-1.0 + dbPanelWidth, 1.0 - dbPanelHeight); + ssLabel.str(""); if (getCeilValue() != getFloorValue() && fftSize) { diff --git a/src/ui/GLPanel.cpp b/src/ui/GLPanel.cpp index ae8ddc7..ff333f4 100644 --- a/src/ui/GLPanel.cpp +++ b/src/ui/GLPanel.cpp @@ -385,43 +385,42 @@ GLTextPanel::GLTextPanel() : GLPanel() { coord = GLPANEL_Y_UP; horizAlign = GLFont::GLFONT_ALIGN_CENTER; vertAlign = GLFont::GLFONT_ALIGN_CENTER; + useNativeFont = true; } void GLTextPanel::drawPanelContents() { glColor4f(1, 1, 1, 1.0); + - GLFont::GLFontSize sz; - float size; + + float pdimy = pdim.y; - - if (pdim.y <= 16) { - sz = GLFont::GLFONT_SIZE12; - size = 12; - } else if (pdim.y <= 18) { - sz = GLFont::GLFONT_SIZE16; - size = 16; - } else if(pdim.y <= 24) { - sz = GLFont::GLFONT_SIZE18; - size = 18; - } else if(pdim.y <= 32) { - sz = GLFont::GLFONT_SIZE24; - size = 24; - } else if(pdim.y <= 48) { - sz = GLFont::GLFONT_SIZE32; - size = 32; - } else { - sz = GLFont::GLFONT_SIZE48; - size = 48; + double appliedScaleFactor = GLFont::getScaleFactor(); + + if (useNativeFont) { + appliedScaleFactor = 1.0; } + //pdimy is considered un-scaled + pdimy = round(pdimy / appliedScaleFactor); + + //target font size: a bit smaller than pdimy: + int sz = 12; - GLFont::getFont(sz).drawString(textVal, mid, mid, size, horizAlign, vertAlign, (int)pdim.x, (int)pdim.y); + if (pdimy > 14) { + //make the font a little smaller that the TextPanel + sz = pdimy - 2; + + } + + GLFont::getFont(sz, appliedScaleFactor).drawString(textVal, mid, mid, horizAlign, vertAlign, (int)pdim.x, (int)pdim.y); } -void GLTextPanel::setText(std::string text, GLFont::Align hAlign, GLFont::Align vAlign) { +void GLTextPanel::setText(std::string text, GLFont::Align hAlign, GLFont::Align vAlign, bool useNative) { textVal = text; horizAlign = hAlign; vertAlign = vAlign; + useNativeFont = useNative; } std::string GLTextPanel::getText() { diff --git a/src/ui/GLPanel.h b/src/ui/GLPanel.h index ed329fe..ebdb646 100644 --- a/src/ui/GLPanel.h +++ b/src/ui/GLPanel.h @@ -62,6 +62,8 @@ public: GLPanel(); void setPosition(float x, float y); + + void setSize(float w, float h); float getWidth(); float getHeight(); @@ -97,11 +99,13 @@ private: std::string textVal; GLFont::Align horizAlign; GLFont::Align vertAlign; + bool useNativeFont; public: GLTextPanel(); void drawPanelContents(); - void setText(std::string text, GLFont::Align hAlign = GLFont::GLFONT_ALIGN_CENTER, GLFont::Align vAlign = GLFont::GLFONT_ALIGN_CENTER); + + void setText(std::string text, GLFont::Align hAlign = GLFont::GLFONT_ALIGN_CENTER, GLFont::Align vAlign = GLFont::GLFONT_ALIGN_CENTER , bool useNativeFont = false); std::string getText(); }; diff --git a/src/util/DataTree.cpp b/src/util/DataTree.cpp index 632337d..3c1d1ce 100755 --- a/src/util/DataTree.cpp +++ b/src/util/DataTree.cpp @@ -30,7 +30,6 @@ #include #include #include -#include /* DataElement class */ @@ -119,6 +118,7 @@ void DataElement::set(const wstring &wstr_in) { data_type = DATA_WSTRING; //wchar_t is tricky, the terminating zero is actually a (wchar_t)0 ! + //wchar_t is typically 16 bits on windows, and 32 bits on Unix, so use sizeof(wchar_t) everywhere. size_t maxLenBytes = (wstr_in.length()+1) * sizeof(wchar_t); //be paranoid, zero the buffer @@ -127,7 +127,6 @@ void DataElement::set(const wstring &wstr_in) { //if something awful happens, the last sizeof(wchar_t) is at least zero... wcstombs(tmp_str, wstr_in.c_str(), maxLenBytes - sizeof(wchar_t)); - //fine the encoded size is in bytes, but nbBytesWritten do not count the zero, which is actually (wchar_t)0 data_init(maxLenBytes); memcpy(data_val, tmp_str, data_size); @@ -313,7 +312,8 @@ void DataElement::get(wstring &wstr_in) { if (data_val) { - // + //data_val is an array of bytes holding wchar_t characters, plus a terminating (wchar_t)0 + //wchar_t is typically 16 bits on windows, and 32 bits on Unix, so use sizeof(wchar_t) everywhere. int maxNbWchars = (data_size - sizeof(wchar_t)) / sizeof(wchar_t); //be paranoid, zero the buffer @@ -597,6 +597,7 @@ std::string trim(std::string& s, const std::string& drop = " ") { string DataTree::wsEncode(const wstring& wstr) { stringstream encStream; + //wchar_t is typically 16 bits on windows, and 32 bits on Unix, so use sizeof(wchar_t) everywhere. int bufSizeBytes = (wstr.length()+1) * sizeof(wchar_t); char *data_str = (char *)calloc(bufSizeBytes, sizeof(char)); @@ -627,12 +628,17 @@ wstring DataTree::wsDecode(const string& str) { decStream << trim(decStr); string sResult; + + //this actually assume we will get as many char as wchar_t from the decodes string, + //who cares ? int maxLen = decStr.length(); + + //wchar_t is typically 16 bits on windows, and 32 bits on Unix, so use sizeof(wchar_t) everywhere. wchar_t *wc_str = (wchar_t *) calloc(maxLen + 1, sizeof(wchar_t)); while (!decStream.eof()) { decStream >> std::hex >> x; - //extract actually 2 chars by 2 chars to form a char. + //extract actually 2 hex-chars by 2 hex-chars to form a char value. mbstr << (unsigned char) x; } @@ -640,7 +646,6 @@ wstring DataTree::wsDecode(const string& str) { wstring result(wc_str); - //it is better not to free before use... free(wc_str); return result; diff --git a/src/util/GLFont.cpp b/src/util/GLFont.cpp index bfe3857..1189a6c 100644 --- a/src/util/GLFont.cpp +++ b/src/util/GLFont.cpp @@ -17,11 +17,36 @@ static std::wstring getExePath(void) #define RES_FOLDER "" #endif +#define GC_DRAW_COUNT_PERIOD 50 +#define GC_DRAW_COUNT_LIMIT 10 + GLFontStringCache::GLFontStringCache() { gc = 0; } -GLFont GLFont::fonts[GLFONT_MAX]; +//Static initialization of all available fonts, +//using aggregate syntax (Cx11+) + +//Fonts must be listed in increasing size for Drawer to work ! +GLFont GLFont::fonts[GLFont::GLFontSize::GLFONT_SIZE_MAX] = { + + { GLFont::GLFontSize::GLFONT_SIZE12, L"fonts/vera_sans_mono12.fnt" }, + { GLFont::GLFontSize::GLFONT_SIZE16, L"fonts/vera_sans_mono16.fnt" }, + { GLFont::GLFontSize::GLFONT_SIZE18, L"fonts/vera_sans_mono18.fnt" }, + { GLFont::GLFontSize::GLFONT_SIZE24, L"fonts/vera_sans_mono24.fnt" }, + { GLFont::GLFontSize::GLFONT_SIZE27, L"fonts/vera_sans_mono27.fnt" }, + { GLFont::GLFontSize::GLFONT_SIZE32, L"fonts/vera_sans_mono32.fnt" }, + { GLFont::GLFontSize::GLFONT_SIZE36, L"fonts/vera_sans_mono36.fnt" }, + { GLFont::GLFontSize::GLFONT_SIZE48, L"fonts/vera_sans_mono48.fnt" }, + { GLFont::GLFontSize::GLFONT_SIZE64, L"fonts/vera_sans_mono64.fnt" }, + { GLFont::GLFontSize::GLFONT_SIZE72, L"fonts/vera_sans_mono72.fnt" }, + { GLFont::GLFontSize::GLFONT_SIZE96, L"fonts/vera_sans_mono96.fnt" }, + +}; + + +std::atomic GLFont::currentScale{ GLFont::GLFontScale::GLFONT_SCALE_NORMAL }; + GLFontChar::GLFontChar() : id(0), x(0), y(0), width(0), height(0), xoffset(0), yoffset(0), xadvance(0), aspect(1), index(0) { @@ -114,9 +139,12 @@ int GLFontChar::getIndex() { return index; } -GLFont::GLFont() : +GLFont::GLFont(GLFontSize size, std::wstring fontFileName): lineHeight(0), base(0), imageWidth(0), imageHeight(0), loaded(false), texId(0), gcCounter(0) { + fontSizeClass = size; + + fontFileSource = fontFileName; } GLFont::~GLFont() { @@ -128,18 +156,18 @@ std::wstring GLFont::nextParam(std::wistringstream &str) { str >> param_str; - if (param_str.find('"') != std::wstring::npos) { + if (param_str.find(L'"') != std::wstring::npos) { std::wstring rest; - while (!str.eof() && (std::count(param_str.begin(), param_str.end(), '"') % 2)) { + while (!str.eof() && (std::count(param_str.begin(), param_str.end(), L'"') % 2)) { str >> rest; - param_str.append(" " + rest); + param_str.append(L" " + rest); } } return param_str; } -std::wstring GLFont::getParamKey(std::wstring param_str) { +std::wstring GLFont::getParamKey(const std::wstring& param_str) { std::wstring keyName; size_t eqpos = param_str.find(L"="); @@ -151,7 +179,7 @@ std::wstring GLFont::getParamKey(std::wstring param_str) { return keyName; } -std::wstring GLFont::getParamValue(std::wstring param_str) { +std::wstring GLFont::getParamValue(const std::wstring& param_str) { std::wstring value; size_t eqpos = param_str.find(L"="); @@ -160,29 +188,42 @@ std::wstring GLFont::getParamValue(std::wstring param_str) { value = param_str.substr(eqpos + 1); } - if (value[0] == '"' && value[value.length() - 1] == '"') { + if (value[0] == L'"' && value[value.length() - 1] == L'"') { value = value.substr(1, value.length() - 2); } return value; } -void GLFont::loadFont(const std::wstring& fontFile) { - +void GLFont::loadFontOnce() { + + if (loaded) { + return; + } + + //relative path with filename where the font is + std::wstring fontFile = fontFileSource; + wxString resourceFolder = RES_FOLDER; #ifdef WIN32 resourceFolder = getExePath() + L"/" + resourceFolder; #endif - wxFileName fontFileName = wxFileName(resourceFolder, fontFile); + //full font file path + wxFileName fontFileName = wxFileName(resourceFolder + L"/" + fontFile); if (!fontFileName.Exists()) { wxFileName exePath = wxFileName(wxStandardPaths::Get().GetExecutablePath()); - fontFileName = wxFileName(exePath.GetPath(), fontFile); - resourceFolder = exePath.GetPath(); + + //Full Path where the fonts are, including file name + fontFileName = wxFileName(exePath.GetPath() + L"/" + fontFile); + + //Dir where the fonts are + resourceFolder = fontFileName.GetPath(); } + //overwrite with the full path fontFileSource = fontFileName.GetFullPath(wxPATH_NATIVE).ToStdWstring(); if (!fontFileName.FileExists()) { @@ -212,11 +253,17 @@ void GLFont::loadFont(const std::wstring& fontFile) { while (!info_param.eof()) { std::wstring param = nextParam(info_param); - std::wstring paramKey = getParamKey(param); - std::wstring paramValue = getParamValue(param); + std::wstring paramKey = getParamKey(param); + if (paramKey == L"face") { + fontName = getParamValue(param); + } - if (paramKey == "face") { - fontName = paramValue; + param = nextParam(info_param); + paramKey = getParamKey(param); + if (paramKey == L"size") { + + std::wistringstream paramValue(getParamValue(param)); + paramValue >> pixHeight; } // std::cout << "[" << paramKey << "] = '" << paramValue << "'" << std::endl; @@ -399,16 +446,14 @@ void GLFont::loadFont(const std::wstring& fontFile) { } std::cout << "Loaded font '" << fontName << "' from '" << fontFileSource << "', parsed " << characters.size() << " characters." << std::endl; + loaded = true; } else { std::cout << "Error loading font file " << fontFileSource << std::endl; } input.close(); -} - -bool GLFont::isLoaded() { - return loaded; + loaded = true; } float GLFont::getStringWidth(const std::wstring& str, float size, float viewAspect) { @@ -442,10 +487,10 @@ float GLFont::getStringWidth(const std::wstring& str, float size, float viewAspe } // Draw string, immediate -void GLFont::drawString(const std::wstring& str, float xpos, float ypos, int pxHeight, Align hAlign, Align vAlign, int vpx, int vpy, bool cacheable) { - +void GLFont::drawString(const std::wstring& str, int pxHeight, float xpos, float ypos, Align hAlign, Align vAlign, int vpx, int vpy, bool cacheable) { + pxHeight *= 2; - + if (!vpx || !vpy) { GLint vp[4]; glGetIntegerv( GL_VIEWPORT, vp); @@ -458,7 +503,8 @@ void GLFont::drawString(const std::wstring& str, float xpos, float ypos, int pxH std::lock_guard lock(cache_busy); - if (gcCounter > 50) { + if (gcCounter > GC_DRAW_COUNT_PERIOD) { + doCacheGC(); gcCounter = 0; } @@ -546,7 +592,7 @@ void GLFont::drawString(const std::wstring& str, float xpos, float ypos, int pxH float advx = (float) fchar->getXAdvance() / (float) imageWidth; if (charId == 32) { - advx = characters['_']->getAspect(); + advx = characters[L'_']->getAspect(); } glTranslatef(ofsx, 0.0, 0.0); @@ -567,19 +613,19 @@ void GLFont::drawString(const std::wstring& str, float xpos, float ypos, int pxH } // Draw string, immediate, 8 bit version -void GLFont::drawString(const std::string& str, float xpos, float ypos, int pxHeight, Align hAlign, Align vAlign, int vpx, int vpy, bool cacheable) { +void GLFont::drawString(const std::string& str, int pxHeight, float xpos, float ypos, Align hAlign, Align vAlign, int vpx, int vpy, bool cacheable) { + //Displayed string is wstring, so use wxString to do the heavy lifting of converting str... #ifdef WIN32 - //This a thread-safe wsTmp buffer to convert to wstring, reusing the same memory, unsupported: OSX? - static thread_local std::wstring wsTmp; + //try to reuse the memory with thread_local, unsupported on OSX ? + static thread_local wxString wsTmp; #else - std::wstring wsTmp; + wxString wsTmp; #endif - wsTmp.clear(); - wsTmp.assign(str.begin(), str.end()); + wsTmp.assign(str); - drawString(wsTmp, xpos, ypos, pxHeight, hAlign, vAlign, vpx, vpy, cacheable); + drawString(wsTmp.ToStdWstring(), pxHeight, xpos, ypos, hAlign, vAlign, vpx, vpy, cacheable); } // Draw cached GLFontCacheString @@ -639,6 +685,7 @@ void GLFont::drawCacheString(GLFontStringCache *fc, float xpos, float ypos, Alig // Compile optimized GLFontCacheString GLFontStringCache *GLFont::cacheString(const std::wstring& str, int pxHeight, int vpx, int vpy) { + GLFontStringCache *fc = new GLFontStringCache; fc->pxHeight = pxHeight; @@ -681,7 +728,7 @@ GLFontStringCache *GLFont::cacheString(const std::wstring& str, int pxHeight, in float advx = (float) fchar->getXAdvance() / (float) imageWidth; if (charId == 32) { - advx = characters['_']->getAspect(); + advx = characters[L'_']->getAspect(); } // freeze transform to buffer @@ -703,51 +750,143 @@ GLFontStringCache *GLFont::cacheString(const std::wstring& str, int pxHeight, in } void GLFont::doCacheGC() { + std::map::iterator cache_iter; - - for (cache_iter = stringCache.begin(); cache_iter != stringCache.end(); cache_iter++) { + + bool flushDone = false; + + //do aging and remove in one pass. + cache_iter = stringCache.begin(); + + while (cache_iter != stringCache.end()) { + + //aging cache_iter->second->gc--; - } - for (cache_iter = stringCache.begin(); cache_iter != stringCache.end(); cache_iter++) { - if (cache_iter->second->gc < -10) { -// std::cout << "gc'd " << cache_iter->first << std::endl; - stringCache.erase(cache_iter); - return; + + //only flush 1 element per call + if (!flushDone && cache_iter->second->gc < -GC_DRAW_COUNT_LIMIT) { + + delete cache_iter->second; + cache_iter = stringCache.erase(cache_iter); + flushDone = true; } + else { + cache_iter++; + } + } //end while +} + +void GLFont::clearCache() { + + std::lock_guard lock(cache_busy); + + std::map::iterator cache_iter; + + cache_iter = stringCache.begin(); + + while (cache_iter != stringCache.end()) { + + delete cache_iter->second; + cache_iter = stringCache.erase(cache_iter); + + } +} + +void GLFont::clearAllCaches() { + + for (int i = 0; i < GLFont::GLFONT_SIZE_MAX; i++) { + + fonts[i].clearCache(); } } -GLFont &GLFont::getFont(GLFontSize esize) { - if (!fonts[esize].isLoaded()) { - - std::wstring fontName; - switch (esize) { - case GLFONT_SIZE12: - fontName = L"vera_sans_mono12.fnt"; - break; - case GLFONT_SIZE16: - fontName = L"vera_sans_mono16.fnt"; - break; - case GLFONT_SIZE18: - fontName = L"vera_sans_mono18.fnt"; - break; - case GLFONT_SIZE24: - fontName = L"vera_sans_mono24.fnt"; - break; - case GLFONT_SIZE32: - fontName = L"vera_sans_mono32.fnt"; - break; - case GLFONT_SIZE48: - fontName = L"vera_sans_mono48.fnt"; - break; - default: - fontName = L"vera_sans_mono12.fnt"; - break; - } - - fonts[esize].loadFont(fontName); +GLFont::Drawer GLFont::getFont(int requestedSize, double scaleFactor) { + + return GLFont::Drawer(requestedSize, scaleFactor); +} + + + +void GLFont::setScale(GLFontScale scale) { + + //safety vs. inputs + if (scale < GLFONT_SCALE_NORMAL || scale > GLFONT_SCALE_LARGE) { + + scale = GLFontScale::GLFONT_SCALE_NORMAL; } - return fonts[esize]; + currentScale.store(scale); + + //Flush all the GC stuff + clearAllCaches(); } + +GLFont::GLFontScale GLFont::getScale() { + + return currentScale.load(); +} + +double GLFont::getScaleFactor() { + + GLFontScale scale = currentScale.load(); + + if (scale == GLFONT_SCALE_MEDIUM) { + + return 1.5; + } + else if (scale == GLFONT_SCALE_LARGE) { + + return 2.0; + } + + return 1.0; +} + +GLFont::Drawer::Drawer(int basicFontSize, double scaleFactor) { + + //Selection of the final font: scan GLFont::fonts to find the biggest font such as + // its pixHeight <= basicFontSize * scaleFactor. + //then compute finalScaleFactor the zooming factor of renderingFont to reach a + //final font size of basicFontSize* scaleFactor: + renderingFontIndex = 0; + + double targetSize = basicFontSize * scaleFactor; + + fonts[0].loadFontOnce(); + + for (int i = 0; i < GLFONT_SIZE_MAX - 1; i++) { + + fonts[i + 1].loadFontOnce(); + + if (fonts[i + 1].pixHeight <= targetSize) { + + renderingFontIndex = i + 1; + } + else { + break; + } + } //end for + + // + double rawSize = fonts[renderingFontIndex].pixHeight; + + //targetSize may not be reached yet, so the effective rendering font: fonts[renderingFontIndex] must be scaled up a bit. + renderingFontScaleFactor = targetSize / rawSize; +} + +void GLFont::Drawer::drawString(const std::wstring& str, float xpos, float ypos, Align hAlign, Align vAlign, int vpx, int vpy, bool cacheable) { + + GLFont& appliedFont = fonts[renderingFontIndex]; + + appliedFont.drawString(str, round(appliedFont.pixHeight * renderingFontScaleFactor), xpos, ypos, hAlign, vAlign, vpx, vpy, cacheable); +} + +//Public drawing font, 8 bit char version. +void GLFont::Drawer::drawString(const std::string& str, float xpos, float ypos, Align hAlign, Align vAlign, int vpx, int vpy, bool cacheable) { + + GLFont& appliedFont = fonts[renderingFontIndex]; + + appliedFont.drawString(str, round(appliedFont.pixHeight * renderingFontScaleFactor), xpos, ypos, hAlign, vAlign, vpx, vpy, cacheable); +} + diff --git a/src/util/GLFont.h b/src/util/GLFont.h index a198e37..e6a7539 100644 --- a/src/util/GLFont.h +++ b/src/util/GLFont.h @@ -59,7 +59,7 @@ public: int getIndex(); private: - // this is the code point of the 16bit character, supposely Unicode. + // this is the code point of the 16bit character, supposly Unicode. int id; int x, y, width, height; int xoffset, yoffset; @@ -68,54 +68,91 @@ private: int index; }; + + class GLFont { public: + + + + enum Align { GLFONT_ALIGN_LEFT, GLFONT_ALIGN_RIGHT, GLFONT_ALIGN_CENTER, GLFONT_ALIGN_TOP, GLFONT_ALIGN_BOTTOM }; enum GLFontSize { - GLFONT_SIZE12, GLFONT_SIZE16, GLFONT_SIZE18, GLFONT_SIZE24, GLFONT_SIZE32, GLFONT_SIZE48, GLFONT_MAX + GLFONT_SIZE12, + GLFONT_SIZE16, + GLFONT_SIZE18, + GLFONT_SIZE24, + GLFONT_SIZE27, //new + GLFONT_SIZE32, + GLFONT_SIZE36, //new + GLFONT_SIZE48, + GLFONT_SIZE64, //new + GLFONT_SIZE72, //new + GLFONT_SIZE96, //new + GLFONT_SIZE_MAX }; - GLFont(); + enum GLFontScale { + GLFONT_SCALE_NORMAL, + GLFONT_SCALE_MEDIUM, // x1.5 + GLFONT_SCALE_LARGE, // x2 + GLFONT_SCALE_MAX + }; + + GLFont(GLFontSize size, std::wstring fontFileName); ~GLFont(); - void loadFont(const std::wstring& fontFile); - - static GLFont &getFont(GLFontSize esize); - //Public drawing font, 16 bit char version. - void drawString(const std::wstring& str, float xpos, float ypos, int pxHeight, Align hAlign = GLFONT_ALIGN_LEFT, Align vAlign = GLFONT_ALIGN_TOP, int vpx=0, int vpy=0, bool cacheable = false); + //Called to change the scale of the rendered fonts + static void setScale(GLFontScale scale); + + static GLFontScale getScale(); + + //Mean current scale factor: 1.0 in normal, 1.5 medium, 2.0 for large + static double getScaleFactor(); - //Public drawing font, 8 bit char version. - void drawString(const std::string& str, float xpos, float ypos, int pxHeight, Align hAlign = GLFONT_ALIGN_LEFT, Align vAlign = GLFONT_ALIGN_TOP, int vpx = 0, int vpy = 0, bool cacheable = false); private: - - std::wstring nextParam(std::wistringstream &str); - std::wstring getParamKey(std::wstring param_str); - std::wstring getParamValue(std::wstring param_str); - - static GLFont fonts[GLFONT_MAX]; - + std::wstring nextParam(std::wistringstream &str); + std::wstring getParamKey(const std::wstring& param_str); + std::wstring getParamValue(const std::wstring& param_str); + + //Repository of all loaded fonts + static GLFont fonts[GLFontSize::GLFONT_SIZE_MAX]; + + static std::atomic currentScale; + + //load a given font file, (lazy loading) + void loadFontOnce(); + + //private drawing font, 16 bit char version, called by Drawer object + void drawString(const std::wstring& str, int pxHeight, float xpos, float ypos, Align hAlign = GLFONT_ALIGN_LEFT, Align vAlign = GLFONT_ALIGN_TOP, int vpx = 0, int vpy = 0, bool cacheable = false); + + //private drawing font, 8 bit char version, called by Drawer object + void drawString(const std::string& str, int pxHeight, float xpos, float ypos, Align hAlign = GLFONT_ALIGN_LEFT, Align vAlign = GLFONT_ALIGN_TOP, int vpx = 0, int vpy = 0, bool cacheable = false); GLFontStringCache *cacheString(const std::wstring& str, int pxHeight, int vpx, int vpy); void drawCacheString(GLFontStringCache *fc, float xpos, float ypos, Align hAlign, Align vAlign); void doCacheGC(); + void clearCache(); - - bool isLoaded(); + //force GC of all available fonts + static void clearAllCaches(); float getStringWidth(const std::wstring& str, float size, float viewAspect); + //the string cache is per-front (internal font) std::map stringCache; int lineHeight; int base; - int imageWidth, imageHeight; + int imageWidth, imageHeight, pixHeight; bool loaded; + GLFontSize fontSizeClass; std::map characters; @@ -128,4 +165,34 @@ private: GLuint texId; int gcCounter; std::mutex cache_busy; + +public: + + //Proxy class computing and caching the selection of the underlying fonts + //depending of the user input and requested scale for the fonts. + class Drawer { + + private: + + //result of the computation + int renderingFontIndex = 0; + + double renderingFontScaleFactor = 1.0; + + public: + + Drawer(int basicFontSize, double scaleFactor); + + //Public drawing font, 16 bit char version. + void drawString(const std::wstring& str, float xpos, float ypos, Align hAlign = GLFONT_ALIGN_LEFT, Align vAlign = GLFONT_ALIGN_TOP, int vpx = 0, int vpy = 0, bool cacheable = false); + + //Public drawing font, 8 bit char version. + void drawString(const std::string& str, float xpos, float ypos, Align hAlign = GLFONT_ALIGN_LEFT, Align vAlign = GLFONT_ALIGN_TOP, int vpx = 0, int vpy = 0, bool cacheable = false); + + }; //end class Drawer + + //The User request a font of size requestedSize to display, with an additional + //optional scale factor scaleFactor. + static GLFont::Drawer getFont(int requestedSize, double scaleFactor = 1.0); + }; diff --git a/src/visual/GainCanvas.cpp b/src/visual/GainCanvas.cpp index a7c5240..6ad56fa 100644 --- a/src/visual/GainCanvas.cpp +++ b/src/visual/GainCanvas.cpp @@ -58,10 +58,10 @@ void GainCanvas::OnPaint(wxPaintEvent& WXUNUSED(event)) { GainInfo *gInfo = (*gi); float midPos = -1.0+startPos+spacing*i; - gInfo->labelPanel.setSize(spacing/2.0,(15.0/float(ClientSize.y))); + gInfo->labelPanel.setSize(spacing/2.0,(14.0/float(ClientSize.y))); gInfo->labelPanel.setPosition(midPos, -barHeight-(20.0/float(ClientSize.y))); - gInfo->valuePanel.setSize(spacing/2.0,(15.0/float(ClientSize.y))); + gInfo->valuePanel.setSize(spacing/2.0,(14.0/float(ClientSize.y))); gInfo->valuePanel.setPosition(midPos, barHeight+(20.0/float(ClientSize.y))); i+=1.0; @@ -116,7 +116,7 @@ void GainCanvas::SetLevel() { gainInfo[panelHit]->levelPanel.setPosition(0.0, (-1.0+(hitResult.y))); gainInfo[panelHit]->current = round(gainInfo[panelHit]->low+(hitResult.y * (gainInfo[panelHit]->high-gainInfo[panelHit]->low))); gainInfo[panelHit]->changed = true; - gainInfo[panelHit]->valuePanel.setText(std::to_string(int(gainInfo[panelHit]->current))); + gainInfo[panelHit]->valuePanel.setText(std::to_string(int(gainInfo[panelHit]->current)),GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER, true); } } @@ -179,7 +179,7 @@ void GainCanvas::OnMouseWheelMoved(wxMouseEvent& event) { gInfo->levelPanel.setSize(1.0, levelVal); gInfo->levelPanel.setPosition(0.0, levelVal-1.0); - gInfo->valuePanel.setText(std::to_string(int(gInfo->current))); + gInfo->valuePanel.setText(std::to_string(int(gInfo->current)),GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER, true); } } @@ -288,16 +288,18 @@ void GainCanvas::updateGainUI() { gInfo->panel.addChild(&gInfo->highlightPanel); - gInfo->labelPanel.setSize(spacing/2.0,(15.0/float(ClientSize.y))); + gInfo->labelPanel.setSize(spacing/2.0,(14.0/float(ClientSize.y))); gInfo->labelPanel.setPosition(midPos, -barHeight-(20.0/float(ClientSize.y))); - gInfo->labelPanel.setText(gi->first); + + gInfo->labelPanel.setText(gi->first,GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER, true); gInfo->labelPanel.setFill(GLPanel::GLPANEL_FILL_NONE); bgPanel.addChild(&(gInfo->labelPanel)); - gInfo->valuePanel.setSize(spacing/2.0,(15.0/float(ClientSize.y))); + gInfo->valuePanel.setSize(spacing/2.0,(14.0/float(ClientSize.y))); gInfo->valuePanel.setPosition(midPos, barHeight+(20.0/float(ClientSize.y))); - gInfo->valuePanel.setText(std::to_string(int(gInfo->current))); + + gInfo->valuePanel.setText(std::to_string(int(gInfo->current)), GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER, true); gInfo->valuePanel.setFill(GLPanel::GLPANEL_FILL_NONE); bgPanel.addChild(&(gInfo->valuePanel)); diff --git a/src/visual/ModeSelectorContext.cpp b/src/visual/ModeSelectorContext.cpp index 8eb626c..44c793c 100644 --- a/src/visual/ModeSelectorContext.cpp +++ b/src/visual/ModeSelectorContext.cpp @@ -29,13 +29,10 @@ void ModeSelectorContext::DrawSelector(std::string label, int c, int cMax, bool float viewHeight = (float) vp[3]; float viewWidth = (float) vp[2]; - GLFont::GLFontSize fontSize = GLFont::GLFONT_SIZE16; - - int fontHeight = 16; + int fontSize = 18; if (viewWidth < 30 || viewHeight < 200) { - fontSize = GLFont::GLFONT_SIZE12; - fontHeight = 12; + fontSize = 16; } glColor4f(r, g, b, a); @@ -62,7 +59,8 @@ void ModeSelectorContext::DrawSelector(std::string label, int c, int cMax, bool glColor4f(0, 0, 0, a); } - GLFont::getFont(fontSize).drawString(label, 0.0, y + height / 2.0, fontHeight, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER); + //Do not zoom the selectors + GLFont::getFont(fontSize).drawString(label, 0.0, y + height / 2.0, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER); } void ModeSelectorContext::DrawEnd() { diff --git a/src/visual/PrimaryGLContext.cpp b/src/visual/PrimaryGLContext.cpp index 6ef87ff..64c8963 100644 --- a/src/visual/PrimaryGLContext.cpp +++ b/src/visual/PrimaryGLContext.cpp @@ -166,11 +166,11 @@ void PrimaryGLContext::DrawDemodInfo(DemodulatorInstance *demod, RGBA4f color, l } if (demod->getDemodulatorType() == "USB") { - GLFont::getFont(GLFont::GLFONT_SIZE16).drawString(demodLabel, uxPos, hPos, 16, GLFont::GLFONT_ALIGN_LEFT, GLFont::GLFONT_ALIGN_CENTER, 0, 0, true); + GLFont::getFont(16, GLFont::getScaleFactor()).drawString(demodLabel, uxPos, hPos, GLFont::GLFONT_ALIGN_LEFT, GLFont::GLFONT_ALIGN_CENTER, 0, 0, true); } else if (demod->getDemodulatorType() == "LSB") { - GLFont::getFont(GLFont::GLFONT_SIZE16).drawString(demodLabel, uxPos, hPos, 16, GLFont::GLFONT_ALIGN_RIGHT, GLFont::GLFONT_ALIGN_CENTER, 0, 0, true); + GLFont::getFont(16, GLFont::getScaleFactor()).drawString(demodLabel, uxPos, hPos, GLFont::GLFONT_ALIGN_RIGHT, GLFont::GLFONT_ALIGN_CENTER, 0, 0, true); } else { - GLFont::getFont(GLFont::GLFONT_SIZE16).drawString(demodLabel, uxPos, hPos, 16, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER, 0, 0, true); + GLFont::getFont(16, GLFont::getScaleFactor()).drawString(demodLabel, uxPos, hPos, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER, 0, 0, true); } glDisable(GL_BLEND); @@ -252,31 +252,33 @@ void PrimaryGLContext::DrawFreqBwInfo(long long freq, int bw, RGBA4f color, long std::string demodLabel = std::to_string((double)freq/1000000.0); double shadowOfsX = 4.0 / viewWidth, shadowOfsY = 2.0 / viewHeight; + + GLFont::Drawer refDrawingFont = GLFont::getFont(16, GLFont::getScaleFactor()); if (lastType == "USB") { glColor4f(0,0,0, 1.0); glBlendFunc(GL_ONE, GL_ZERO); - GLFont::getFont(GLFont::GLFONT_SIZE16).drawString(demodLabel, uxPos+shadowOfsX, hPos+shadowOfsY, 16, GLFont::GLFONT_ALIGN_LEFT, GLFont::GLFONT_ALIGN_CENTER); - GLFont::getFont(GLFont::GLFONT_SIZE16).drawString(demodLabel, uxPos-shadowOfsX, hPos-shadowOfsY, 16, GLFont::GLFONT_ALIGN_LEFT, GLFont::GLFONT_ALIGN_CENTER); + refDrawingFont.drawString(demodLabel, uxPos+shadowOfsX, hPos+shadowOfsY, GLFont::GLFONT_ALIGN_LEFT, GLFont::GLFONT_ALIGN_CENTER); + refDrawingFont.drawString(demodLabel, uxPos-shadowOfsX, hPos-shadowOfsY, GLFont::GLFONT_ALIGN_LEFT, GLFont::GLFONT_ALIGN_CENTER); glColor4f(color.r, color.g, color.b, 1.0); glBlendFunc(GL_SRC_ALPHA, GL_ONE); - GLFont::getFont(GLFont::GLFONT_SIZE16).drawString(demodLabel, uxPos, hPos, 16, GLFont::GLFONT_ALIGN_LEFT, GLFont::GLFONT_ALIGN_CENTER); + refDrawingFont.drawString(demodLabel, uxPos, hPos, GLFont::GLFONT_ALIGN_LEFT, GLFont::GLFONT_ALIGN_CENTER); } else if (lastType == "LSB") { glBlendFunc(GL_ONE, GL_ZERO); glColor4f(0,0,0, 1.0); - GLFont::getFont(GLFont::GLFONT_SIZE16).drawString(demodLabel, uxPos+shadowOfsX, hPos+shadowOfsY, 16, GLFont::GLFONT_ALIGN_RIGHT, GLFont::GLFONT_ALIGN_CENTER); - GLFont::getFont(GLFont::GLFONT_SIZE16).drawString(demodLabel, uxPos-shadowOfsX, hPos-shadowOfsY, 16, GLFont::GLFONT_ALIGN_RIGHT, GLFont::GLFONT_ALIGN_CENTER); + refDrawingFont.drawString(demodLabel, uxPos+shadowOfsX, hPos+shadowOfsY, GLFont::GLFONT_ALIGN_RIGHT, GLFont::GLFONT_ALIGN_CENTER); + refDrawingFont.drawString(demodLabel, uxPos-shadowOfsX, hPos-shadowOfsY, GLFont::GLFONT_ALIGN_RIGHT, GLFont::GLFONT_ALIGN_CENTER); glColor4f(color.r, color.g, color.b, 1.0); glBlendFunc(GL_SRC_ALPHA, GL_ONE); - GLFont::getFont(GLFont::GLFONT_SIZE16).drawString(demodLabel, uxPos, hPos, 16, GLFont::GLFONT_ALIGN_RIGHT, GLFont::GLFONT_ALIGN_CENTER); + refDrawingFont.drawString(demodLabel, uxPos, hPos, GLFont::GLFONT_ALIGN_RIGHT, GLFont::GLFONT_ALIGN_CENTER); } else { glBlendFunc(GL_ONE, GL_ZERO); glColor4f(0,0,0, 1.0); glBlendFunc(GL_SRC_ALPHA, GL_ONE); - GLFont::getFont(GLFont::GLFONT_SIZE16).drawString(demodLabel, uxPos+shadowOfsX, hPos+shadowOfsY, 16, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER); - GLFont::getFont(GLFont::GLFONT_SIZE16).drawString(demodLabel, uxPos-shadowOfsX, hPos-shadowOfsY, 16, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER); + refDrawingFont.drawString(demodLabel, uxPos+shadowOfsX, hPos+shadowOfsY, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER); + refDrawingFont.drawString(demodLabel, uxPos-shadowOfsX, hPos-shadowOfsY, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER); glColor4f(color.r, color.g, color.b, 1.0); - GLFont::getFont(GLFont::GLFONT_SIZE16).drawString(demodLabel, uxPos, hPos, 16, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER); + refDrawingFont.drawString(demodLabel, uxPos, hPos, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER); } glDisable(GL_BLEND); @@ -353,10 +355,14 @@ void PrimaryGLContext::DrawDemod(DemodulatorInstance *demod, RGBA4f color, long GLFont::Align demodAlign = GLFont::GLFONT_ALIGN_CENTER; - std::string demodStr = demod->getDemodulatorType(); - - //Displayed string is 16 bit, so fill from a 8bit character by charater... - std::wstring demodStrW(demodStr.begin(), demodStr.end()); + //Displayed string is wstring, so use wxString to do the heavy lifting of converting getDemodulatorType()... +#ifdef WIN32 + //try to reuse the memory with thread_local, unsupported on OSX ? + static thread_local wxString demodStr; +#else + wxString demodStr; +#endif + demodStr.assign(demod->getDemodulatorType()); demodAlign = GLFont::GLFONT_ALIGN_CENTER; @@ -387,7 +393,7 @@ void PrimaryGLContext::DrawDemod(DemodulatorInstance *demod, RGBA4f color, long hPos += 1.3 * labelHeight; } - drawSingleDemodLabel(demodStrW, uxPos, hPos, xOfs, yOfs, GLFont::GLFONT_ALIGN_CENTER); + drawSingleDemodLabel(demodStr.ToStdWstring(), uxPos, hPos, xOfs, yOfs, GLFont::GLFONT_ALIGN_CENTER); //revert... if (!demod->getDemodulatorUserLabel().empty()) { @@ -399,15 +405,18 @@ void PrimaryGLContext::DrawDemod(DemodulatorInstance *demod, RGBA4f color, long } -void PrimaryGLContext::drawSingleDemodLabel(std::wstring demodStr, float uxPos, float hPos, float xOfs, float yOfs, GLFont::Align demodAlign) { +void PrimaryGLContext::drawSingleDemodLabel(const std::wstring& demodStr, float uxPos, float hPos, float xOfs, float yOfs, GLFont::Align demodAlign) { + + GLFont::Drawer refDrawingFont = GLFont::getFont(16, GLFont::getScaleFactor()); glColor3f(0, 0, 0); - GLFont::getFont(GLFont::GLFONT_SIZE16).drawString(demodStr, 2.0 * (uxPos - 0.5) + xOfs, - -1.0 + hPos - yOfs, 16, demodAlign, + refDrawingFont.drawString(demodStr, 2.0 * (uxPos - 0.5) + xOfs, + -1.0 + hPos - yOfs, demodAlign, GLFont::GLFONT_ALIGN_CENTER, 0, 0, true); + glColor3f(1, 1, 1); - GLFont::getFont(GLFont::GLFONT_SIZE16).drawString(demodStr, 2.0 * (uxPos - 0.5), - -1.0 + hPos, 16, demodAlign, + refDrawingFont.drawString(demodStr, 2.0 * (uxPos - 0.5), + -1.0 + hPos, demodAlign, GLFont::GLFONT_ALIGN_CENTER, 0, 0, true); } diff --git a/src/visual/PrimaryGLContext.h b/src/visual/PrimaryGLContext.h index 317796d..2f19460 100644 --- a/src/visual/PrimaryGLContext.h +++ b/src/visual/PrimaryGLContext.h @@ -32,5 +32,5 @@ public: private: float hoverAlpha; - void drawSingleDemodLabel(std::wstring demodStr, float uxPos, float hPos, float xOfs, float yOfs, GLFont::Align demodAlign); + void drawSingleDemodLabel(const std::wstring& demodStr, float uxPos, float hPos, float xOfs, float yOfs, GLFont::Align demodAlign); }; diff --git a/src/visual/ScopeContext.cpp b/src/visual/ScopeContext.cpp index 8e1ba91..a71f74f 100644 --- a/src/visual/ScopeContext.cpp +++ b/src/visual/ScopeContext.cpp @@ -35,9 +35,11 @@ void ScopeContext::DrawTunerTitles(bool ppmMode) { glColor3f(0.65f, 0.65f, 0.65f); - GLFont::getFont(GLFont::GLFONT_SIZE12).drawString(ppmMode?"Device PPM":"Frequency", -0.66f, -1.0+hPos, 12, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER, 0, 0, true); - GLFont::getFont(GLFont::GLFONT_SIZE12).drawString("Bandwidth", 0.0, -1.0+hPos, 12, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER, 0, 0, true); - GLFont::getFont(GLFont::GLFONT_SIZE12).drawString("Center Frequency", 0.66f, -1.0+hPos, 12, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER, 0, 0, true); + GLFont::Drawer refDrawingFont = GLFont::getFont(12, GLFont::getScaleFactor()); + + refDrawingFont.drawString(ppmMode?"Device PPM":"Frequency", -0.66f, -1.0+hPos, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER, 0, 0, true); + refDrawingFont.drawString("Bandwidth", 0.0, -1.0+hPos, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER, 0, 0, true); + refDrawingFont.drawString("Center Frequency", 0.66f, -1.0+hPos, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER, 0, 0, true); } void ScopeContext::DrawDeviceName(std::string deviceName) { @@ -47,7 +49,8 @@ void ScopeContext::DrawDeviceName(std::string deviceName) { float hPos = (float) (viewHeight - 20) / viewHeight; glColor3f(0.65f, 0.65f, 0.65f); - GLFont::getFont(GLFont::GLFONT_SIZE12).drawString(deviceName.c_str(), 1.0, hPos, 12, GLFont::GLFONT_ALIGN_RIGHT, GLFont::GLFONT_ALIGN_CENTER, 0, 0, true); + + GLFont::getFont(12, GLFont::getScaleFactor()).drawString(deviceName.c_str(), 1.0, hPos, GLFont::GLFONT_ALIGN_RIGHT, GLFont::GLFONT_ALIGN_CENTER, 0, 0, true); } void ScopeContext::DrawEnd() { diff --git a/src/visual/TuningContext.cpp b/src/visual/TuningContext.cpp index 80b741e..bef18a7 100644 --- a/src/visual/TuningContext.cpp +++ b/src/visual/TuningContext.cpp @@ -74,28 +74,32 @@ void TuningContext::DrawTuner(long long freq, int count, float displayPos, float freqStr << freq; std::string freqChars = freqStr.str(); - GLFont::GLFontSize fontSize = GLFont::GLFONT_SIZE24; - int fontHeight = 24; + int fontSize = 32; if (viewHeight < 28) { - fontSize = GLFont::GLFONT_SIZE18; - fontHeight = 18; + fontSize = 18; + } if (viewHeight < 24) { - fontSize = GLFont::GLFONT_SIZE16; - fontHeight = 16; + fontSize = 16; + } if (viewHeight < 18) { - fontSize = GLFont::GLFONT_SIZE12; - fontHeight = 12; + fontSize = 12; + } + glColor3f(ThemeMgr::mgr.currentTheme->text.r, ThemeMgr::mgr.currentTheme->text.g, ThemeMgr::mgr.currentTheme->text.b); int numChars = freqChars.length(); int ofs = count - numChars; + + //do not zoom this one: + GLFont::Drawer refDrawingFont = GLFont::getFont(fontSize); + for (int i = ofs; i < count; i++) { float xpos = displayPos + (displayWidth / (float) count) * (float) i + ((displayWidth / 2.0) / (float) count); - GLFont::getFont(fontSize).drawString(freqStr.str().substr(i - ofs, 1), xpos, 0, fontHeight, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER); + refDrawingFont.drawString(freqStr.str().substr(i - ofs, 1), xpos, 0, GLFont::GLFONT_ALIGN_CENTER, GLFont::GLFONT_ALIGN_CENTER); } glColor4f(0.65f, 0.65f, 0.65f, 0.25f);