From 96a0dd48746619c32b6715ed18330dfad51a4656 Mon Sep 17 00:00:00 2001 From: gemu2015 Date: Sun, 18 Apr 2021 09:20:54 +0200 Subject: [PATCH] add loadable fonts --- lib/lib_display/BinFonts/FreeSans12pt7b.fnt | Bin 0 -> 2740 bytes lib/lib_display/BinFonts/FreeSans18pt7b.fnt | Bin 0 -> 4936 bytes lib/lib_display/BinFonts/FreeSans24pt7b.fnt | Bin 0 -> 8236 bytes lib/lib_display/BinFonts/FreeSans9pt7b.fnt | Bin 0 -> 1924 bytes .../BinFonts/FreeSansBold12pt7b.fnt | Bin 0 -> 2968 bytes .../BinFonts/FreeSansBold18pt7b.fnt | Bin 0 -> 5284 bytes .../BinFonts/FreeSansBold24pt7b.fnt | Bin 0 -> 8920 bytes .../BinFonts/FreeSansBoldOblique12pt7b.fnt | Bin 0 -> 3316 bytes .../BinFonts/FreeSansBoldOblique18pt7b.fnt | Bin 0 -> 6052 bytes .../BinFonts/FreeSansBoldOblique24pt7b.fnt | Bin 0 -> 10228 bytes .../BinFonts/FreeSansBoldOblique9pt7b.fnt | Bin 0 -> 2236 bytes .../BinFonts/FreeSansOblique12pt7b.fnt | Bin 0 -> 3136 bytes .../BinFonts/FreeSansOblique18pt7b.fnt | Bin 0 -> 5728 bytes .../BinFonts/FreeSansOblique24pt7b.fnt | Bin 0 -> 9592 bytes .../BinFonts/FreeSansOblique9pt7b.fnt | Bin 0 -> 2140 bytes lib/lib_display/BinFonts/FreeSerif12pt7b.fnt | Bin 0 -> 2620 bytes lib/lib_display/BinFonts/FreeSerif18pt7b.fnt | Bin 0 -> 4660 bytes lib/lib_display/BinFonts/FreeSerif24pt7b.fnt | Bin 0 -> 7792 bytes lib/lib_display/BinFonts/FreeSerif9pt7b.fnt | Bin 0 -> 1852 bytes .../BinFonts/FreeSerifBold12pt7b.fnt | Bin 0 -> 2764 bytes .../BinFonts/FreeSerifBold18pt7b.fnt | Bin 0 -> 5044 bytes .../BinFonts/FreeSerifBold24pt7b.fnt | Bin 0 -> 8620 bytes .../BinFonts/FreeSerifBold9pt7b.fnt | Bin 0 -> 1936 bytes .../BinFonts/FreeSerifBoldItalic12pt7b.fnt | Bin 0 -> 3016 bytes .../BinFonts/FreeSerifBoldItalic18pt7b.fnt | Bin 0 -> 5512 bytes .../BinFonts/FreeSerifBoldItalic24pt7b.fnt | Bin 0 -> 9016 bytes .../BinFonts/FreeSerifBoldItalic9pt7b.fnt | Bin 0 -> 2092 bytes .../BinFonts/FreeSerifItalic12pt7b.fnt | Bin 0 -> 2764 bytes .../BinFonts/FreeSerifItalic18pt7b.fnt | Bin 0 -> 4912 bytes .../BinFonts/FreeSerifItalic24pt7b.fnt | Bin 0 -> 8356 bytes .../BinFonts/FreeSerifItalic9pt7b.fnt | Bin 0 -> 1936 bytes .../src/renderer.cpp | 24 +++++++++- .../Display_Renderer-gemu-1.0/src/renderer.h | 3 +- lib/lib_display/UDisplay/uDisplay.cpp | 43 ++++++++++++++---- lib/lib_display/UDisplay/uDisplay.h | 1 + tasmota/displaydesc/SSD1331_desc.txt | 33 ++++++++++++++ tasmota/displaydesc/SSD1351_desc.txt | 8 ++-- tasmota/xdrv_13_display.ino | 28 ++++++++++++ 38 files changed, 125 insertions(+), 15 deletions(-) create mode 100644 lib/lib_display/BinFonts/FreeSans12pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSans18pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSans24pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSans9pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSansBold12pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSansBold18pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSansBold24pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSansBoldOblique12pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSansBoldOblique18pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSansBoldOblique24pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSansBoldOblique9pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSansOblique12pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSansOblique18pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSansOblique24pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSansOblique9pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSerif12pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSerif18pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSerif24pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSerif9pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSerifBold12pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSerifBold18pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSerifBold24pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSerifBold9pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSerifBoldItalic12pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSerifBoldItalic18pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSerifBoldItalic24pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSerifBoldItalic9pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSerifItalic12pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSerifItalic18pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSerifItalic24pt7b.fnt create mode 100644 lib/lib_display/BinFonts/FreeSerifItalic9pt7b.fnt create mode 100644 tasmota/displaydesc/SSD1331_desc.txt diff --git a/lib/lib_display/BinFonts/FreeSans12pt7b.fnt b/lib/lib_display/BinFonts/FreeSans12pt7b.fnt new file mode 100644 index 0000000000000000000000000000000000000000..a29f041b609f4fbdeadbc88dc92e387cd83c5a09 GIT binary patch literal 2740 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 literal 0 HcmV?d00001 diff --git a/lib/lib_display/BinFonts/FreeSans24pt7b.fnt b/lib/lib_display/BinFonts/FreeSans24pt7b.fnt new file mode 100644 index 0000000000000000000000000000000000000000..9fbc19c3935f993e42dce1921cf27470d5570cac GIT binary patch literal 8236 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 Z^T&Vh#kXeA+kYRu&tHAnEKL2c{2zMeCQkqW literal 0 HcmV?d00001 diff --git a/lib/lib_display/BinFonts/FreeSans9pt7b.fnt b/lib/lib_display/BinFonts/FreeSans9pt7b.fnt new file mode 100644 index 0000000000000000000000000000000000000000..9097954c225b38931300efa71de265f91d701582 GIT binary patch literal 1924 zcmZWpU2GIp6h3$E?9A?TW@pzDoWi=a@*}=YSuIN#Xek6A#KZ@DGQnw=3>X(nL8SuX ztR+h@m7fQb)dx~BlK4PuVnS3BbGJ*jXv$AQqK(8lq{N>DlOZj%gwpZcoiUPlcXQ8t z=YID)XU;jhDgX?L0If$BLlDfd$=TLKdDH2jS**2Q4vv4&b1JoL(JvdagIxnp#%B&b zpYyv~^Qk+n_11bmF~>pGB>u5446hHlQE1` zT%NO>T8&B>nbvBKr5gRcKYYG*!7y$1erqZom#2p)as6V!%eGerRB8I7!K!y1VL$~* zRO1GUm<>s5sWDftdYo!GqZoA8dP+wfi-E}ib`C>n?1U=2dy~WsTv+A#v!5Clw8v0&9f`DFGPmrdlau`U>whUpZ5}`@#vU-}Mgb)ju~JtK7}zY6E?;cQ~n+ z1`U-JiKoK=WlKp#wb>j5W>Kfi@0$i@suURfk5;tVLx=}MNmi6tQT_KpVtYFcem6_} zB>0wA?u4L>t>y2H1;B@YUo9*S8R_v^Q7feiYLAHXM{G+5yIL}DRrZdrc2>1Do0lua zZHt~$mdG-tZppO^s#&e*z`N5zDrP-t+pI&viEJrN=wM6HH^7iQB9AOl2-w3t7jEvk z;2lkcANOw#Z+fPEcFV+PZoum1k^T{8Pv6waV;dM=TY9xamvIjL!+UVnYP_;IyOh%P zyTW1LwVqEkHWS?)eGV@BzavWPhw;YbRLI30J7`k=+sNfSp4GOkg&zM-Z+oR^^6pN~ zX8f_T)qd-wI#8%(jmNI?Fnl@IWdF#3mBqBC`mmtzcsTl7`%uBC!^SDbJWH-k9dYhs zN>Q%0+SsA$aAmx^ZRGmuj0*K^{`93Eog0gNuDm&3$@oGVm&MJ`8@s=K@14)f+h(wAVN%($PCD!s0!SJ z#gIrTWExgON=u=?8=5o~?RF4E5$!7=ra6B{WOqR|;*Bodj2 z{UDGShI4*05ENkVKQ55b7=auUW_L(-`yF#dL;YAWjOCgJ-XM602HD6(ge z--P%)i8t(b$WJ1^8l8JY&|;Y9ZG!ot-;Z(WD}_*ZEn+nGF)gCrSE!Rf{C(sfrJAB6|3;+qYh?du#G8ft4IS*87*izVDPkCZktkvx@4*tp yJl+a1p(J1yOdJ;t?IzAc`=Xdga{H<%H}c*ohI6?`6w)I0WnY93i84))2k;O4`fsWL literal 0 HcmV?d00001 diff --git a/lib/lib_display/BinFonts/FreeSansBold12pt7b.fnt b/lib/lib_display/BinFonts/FreeSansBold12pt7b.fnt new file mode 100644 index 0000000000000000000000000000000000000000..89311e360b9bd27a6dae31caa6eed09656199cf1 GIT binary patch literal 2968 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 literal 0 HcmV?d00001 diff --git a/lib/lib_display/BinFonts/FreeSansBold24pt7b.fnt b/lib/lib_display/BinFonts/FreeSansBold24pt7b.fnt new file mode 100644 index 0000000000000000000000000000000000000000..bfddbaf6220b3ef4cde8a8054b189ff5c7a2edd8 GIT binary patch literal 8920 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 literal 0 HcmV?d00001 diff --git a/lib/lib_display/BinFonts/FreeSansBoldOblique12pt7b.fnt b/lib/lib_display/BinFonts/FreeSansBoldOblique12pt7b.fnt new file mode 100644 index 0000000000000000000000000000000000000000..b8c838749784269011c1834d0eda89212cca62f3 GIT binary patch literal 3316 zcmY*bQHUeQ5v@^c)zY0by(@dY3z?fSG5InC9f!F&c6P@f4i5RrPd<{5z-}B43?ZIn z!Jg&TJ0k?Ad>pHfBp)H0-M>JRFJofP<{&LAIg#L;eqxhgXRpP81;IJBthF`Ajn%1^ zbjH~hTU|9ZRn=9mtELP9Sqb3j!%JX!VZYO|+@Re6E0nw0bmOQ~YB!Fo_WBu@LN*0Hvy>&`728-hwl?DKK`fsq=*xqIW^$)q`?r;e}u zGvA6Hyhj@KdYcOo1g>Y9l+?Kh)=g@}1>A1C3y}z1*Ro8rKq-{V-&L0PlNU(rQV1fY zloTe2GTiv+nJW+}842LE^*n)id%2u5;^%9{f`MTZ9yPOY+`Y5eA2Jy=HMPUBVsZ;e zqtP465dATXp)F+K0+B3@($Tm*XmA?a5E8-Q0M7(Y=BG+hp<2^)(u_kEXH>A*GlmT9 zwNf7-r2LS`tHizBIdMl#XR0PDmK0pVY34}P0SltKVpA6rgVyD^+nYMl2O^^8G#vBI z{>=I;TKhmp=|J>I-JgO!E&dn;6k|fK+ysfyIzn|@mbWVuN&V4i(7a>I8%a+&sS^|7 zqrFpaQ%o9XPWXjNRPzkR-PX*fHI5NGM$a|905<@mq+VFxMiD=B2I(O|9QZtf5V)Tq zWMZvD)oB*Vnjx5e79Y_5G-?VLpRl%SWg|tUX9(L6TSQnoMxZ)Y06!)w_85vxu!6~6 zGkx!JveT^Gvb@^P8}*xa%Ny&v@4a;I@*|n_@CCv-RX`=c7Wm-A4rhW%dO&T`BF#pp zt@=u;Oxghp>21Qty3SNnkVg$x%8Nv5wunx$D{TLU2DWK<>0cgsva&Mefn95 z215vNp-Wt-F?FV2>ZCrd$2!`*1OY}ii%N|7HEztJibDU6b7u5lz(*28_dlT@10LPz z8cD2!ccm3g@j|JSFNM1(^a2}fYy;hv?d~SsBP$#U3{PT$zy*yt2n|j>PmVh++fO5& zfla%OeqRLA3YkaFK!MLO)n~?lhtk?&w85qHTpAlUt`G%(VBy3YLRX|iAQ`SLg|GLkd&cM+nIUPAeAgL zrm!V#X{TP4M$+NYRDGdR3lSj=L1KzX^NW1 z7;pJC?5ACNWLlmV?2BaW2SMJ>O<(#pO9`WW$1Y<4sD6bCoum4WOFbM}!i>kcz>)<_KRH`VkY9Cw<>mfP=l zO*0HMzLjU^R^gZ%cFOqu{yQG4L&4ZS?lCUq)9e9+aG#^xAr~^{(Ji%-8#UVY||saxIJw60hNentThw19w{=!!iJ&jC+#jd zp{^+|aUTw6R~zeh2sqQhd8m4so_^e${d~;>ZFZ72$L|?LhRsMFxA@h;nr&XL-CW@Zmz#nuDy%%l6K~b_(>wH-Br|6eH*i8Jg%;bMLW zYrvK(#t5DRwpzhP`9r8ySIH1=0$W+hN%$?~3kB5s9h9Cb=7#XDrb@zxP%M^EFM;w! zGxs^1!xE*~(H;UN#oR;4AWvv+3RAeSLa~ZZ8kLm_+N&9*l}cX13kF-M7!rQGkjI)L ze{7gD`p!cBfudvrZIt+HE(kc-NdK^q|06$t|51K!*I8P5LfiZH(%j!GOLO_p zmspjd{Ex`%c>aa_GRFOAX|=kB^w~nSx{Ut5SD4FREv!@-^1mruSSuoZr;uNxv{?wDYh~sZ@+}U=;n~dzUHlxpR0?^BDKb3qGQys;>7h zW_suF7By$jKcMsTe@ri|Q8ffoWV1Ycqd1p8S6r>EqW$j|%?d-iuPo@zBIXlO^82E; za}IwiUZ|9iepoD5D&!o7#Ud-_K85K*f3<{hq5N5d%M(anEG<_m`2J2w`#XmQJ})Ev cRjIV5arkDbutxDbf6+Xi|9+{wWFij#2h31W?*IS* literal 0 HcmV?d00001 diff --git a/lib/lib_display/BinFonts/FreeSansBoldOblique18pt7b.fnt b/lib/lib_display/BinFonts/FreeSansBoldOblique18pt7b.fnt new file mode 100644 index 0000000000000000000000000000000000000000..68c988efb49927d162ee143440e95e78884b7bb8 GIT binary patch literal 6052 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 Cw4smy literal 0 HcmV?d00001 diff --git a/lib/lib_display/BinFonts/FreeSansBoldOblique9pt7b.fnt b/lib/lib_display/BinFonts/FreeSansBoldOblique9pt7b.fnt new file mode 100644 index 0000000000000000000000000000000000000000..198b0db64d5c3a4bfff4a9d44f8b804dd8463110 GIT binary patch literal 2236 zcmYjSU1%fM6+ZJXkLJhPg`#CgGhRwV^HSuPx?`kB`_e*b`q1{JlmsSK>g|Ksj-s+s z+hC1RuqgG8OCZz*b@Np6(o#bqI5cEO(N=nK~K>Ugwb9r{|b=cH*>XV zLxw=^{^{)>KMH0vSj9|WZ?67w*t*~j;T|16vwHAgd&TFhFxMSvmRtHt-J2G@lUdP? z{>HLGR?nM;n=Hf33lhsEiUQ-?sq=ADX^Rt`HpMUU)_qFkR)k3m0Dh2S-E-B zk~!};gX(Bov%RBfEhqwAxE%LbMK`-`klUemWJ;9f>ncY$&67YL#2Q7We2Ewp>}JcQ z9QV6ly1I9|Hj8!~BP)BMAyAEG$3((fOo%-=P3=(uJq)Ypq506y3M_?eUEm1I0J#-< zom!_Xd-gas+H>Vr;2qVa@#tr>=N+`tcIp6BE=-!)Xu zFH`MDJ>1o_nbsy8*K8Ce09OYHA#(hN$?3##d42WnLFGZ_T-fT@O2MS40yTp&5H5Ct zbACkWt36vgi}qCa4rOV6)R)X!8*vx0)zPCt0Gu1`t7aYYl%;^nQSa$d%LmPkcGZ}p zIH%m4yN}u++66PQl%N99AOv)fr7WEa%L6buFj;Vc>(2B#WlAufs_t#coP^p^ zmyU@)qo$>5s#;P@rS;PK?e(oY$9G1zI=2oc*+~}tRL1*uNgwsrlz&yv27NX5$vKg& zx^>FetdK**q<1jAd4b}>v;$020S9Z2+BdR(#FgdCoD=uOZps!IEWA7|Pde41G9D^k zJ7`*(Jjo5BXqFI^^YYU{wqoZUxjHL)wmFf^fl}^;#87WiZere>RgVk1=J7^5Kh179 zi#cIgkR(A+6ih(JcSgchJpH!T^0%dNr)KN_o2kORaeBT?gsUHIB~i0OsTbXd_2232rvml0(J6qqEB+3c6X)<{ki=!&e*pwhL^Ob6Xykn#QknQ%Eyme7ybdhOq5kKvluDCN;0>Tz24?Uk zFeFQS2EPJ|WQYh3ASE(z0lx)a@ulafRMZl7 z1^#_uXGW)`Sbv2{@f@PUEb%;f314Jbfh8ZqD#P<>luL-Q{u_+MONcKq0?%U{TTEJt h=8!7+* literal 0 HcmV?d00001 diff --git a/lib/lib_display/BinFonts/FreeSansOblique12pt7b.fnt b/lib/lib_display/BinFonts/FreeSansOblique12pt7b.fnt new file mode 100644 index 0000000000000000000000000000000000000000..d22df1cf1d45ea6c679363a232f414aec23fd5f5 GIT binary patch literal 3136 zcmZuyZ)hXO6@RlM&&YS9U0c57#&}OMNj|1!98+h@3G32)X+l303ZbPiuF8diQuc7E z_2IC_Q8>{c?r00e370ncQ0Rviu24!o6grBE3_-aol!Br6VO*DkHb=ZBm#f05-o9PA zq0sI~`{uo!dGr4K-Wve`U!Db6-o5~0}b<$H$GNA{)vXi+0h^z1Pq#iI;1y?0^_g~q$@9WL(oqOxi$=j3_gp^8Y zt?lV^N$ceTV;((y7-J$^v#hNUFSKj5CQwlLOVgBrW?%(uJ<&{)30zV|M!+u1f(Pc( zT+z!I;Pxck?5H)W*QmY9ZIjvi;;@^ngD19*`W+$F#()W_X;O6udl(T=#P|?%)8Zx~ zmO*urx?Bxac(Ow!KAvow;$UyQ4w(_ILS0kzdukZ=Z=|V{xsAcNJw#=&WK$MuO+liy zx^XRV>p-VwF?hKg5Y%zV^qJpTBkqJ0>J=w=PRXb}+j4&#gh50|egOrWg=JMJnq0aRffBDmCklp25_ zZ70jbavR{6kh)ft+6cD=-A@O%Y8Y-MD8W|-0szGT>V~8)AT9#uV9?#UUH$d$mBB{m z+K>f8tSi;j8~gq4%3iqf&!ln3IDiBob2Yevn4kE5NF%C15sAVF3 z$t9K9x_rc$et|=}R_am{qh95SwwHbZFtrMG4GLqL0QNs zHO@-KaiP(eKIP+|5gTDnC5JSf_;AGq6*zX43OR6V7imL%chw)L(W)G-^cpL}Rk?9+ zy(0VlUKj~-1NKbAT}jlw{75v|%APzFE4^^Y8uZv4+m@{%2FaMFv@^imT{I=bEVaa8 z`p3|OHCQn!!Q^lU!MOfkIri)0|A{J0NNST7`bI{$wPdJ8JvCSYR2p3v(gT;&Pw26Q zsP5Ol_e z@2+u+9mmS0YxRLc2d2qb-$?yhe8t@6O4Rlkcj&LKqwjn8x}9S;6A zIX<{4S1HqWBrkTD)+4dlp-SHqa_Jzg;YEfvY~==A7TTWrxK3>iZvsE}Q6%;39t(wD z!H`7K9qt9=t$q$$^b3OB^mfhNqwx~i74|ZZT4`qlnorxx(v3TuqBjm*5DbETs=iM( zH+8cOP3G?41trzXM?;}>c6ZjI%%Eqd24y$v;LhZ#wJk*LP!1Ods#)4`H46Q~!NIL$ zzcp%JUTdtXH*USO|8y&?`5{9vhRPk1-RxFX#06%P^hBf)ZW=EU5uzI-s!C=JlC05U z9kOf&)#DW6tdV7iprC_EYPm1*$^^Ji!**XKs&!NgK|8tjq;3tXXf$p z<4FHBvyj_;g5T$me}c`I13do)cIJE*-^+}aIm%zj_%wmn*_qk181J7jpOn%9?6N|k zh~M92XGdg^K<(rOyu9^c(KgT&L=p^$piQj7y0^c@|p4s%D=;B z&$ILhI(!<3cTVNM;tQp7xPHV@4^o#=)c*kW`0xPE74cl;pDE6kiunDxq9_TZUn}xC z<{d)=`Rw~v5$&Q6;0ML|(mc|i7yXjJ{l6>v<+Didp6*MEQ(W>{cAjB87H4PA7t#OK L*|Re~eF*;scgeKg literal 0 HcmV?d00001 diff --git a/lib/lib_display/BinFonts/FreeSansOblique18pt7b.fnt b/lib/lib_display/BinFonts/FreeSansOblique18pt7b.fnt new file mode 100644 index 0000000000000000000000000000000000000000..6ffdc27de0398ff874f57d41874e4885e52372b7 GIT binary patch literal 5728 zcmbVQO=u)Zc7CByDpT27-M``FlgMcv*5oJ zjomqRp^9=D*JY9H!@?Lhz2KXF4nFwMYt~E@We}J~eOmCL@kCkdR(rf?Ld@Eo%T!nR zi%6-r?Tf)#ks1FHFW%4hUQ~mKzTPBy_vlN+2YqddGK(W2eDPp+x7AoAV!o9QU-UZ1 z=TCoduQ4Xd3N}`a7ESb0g9^ik+_}_Q=hT4~5$zuEA+>f>S2=g;X1=9BOPtY2MKK*{ zq6UeIIo+9yKev~|sC76R#u*z^yvxo>{vA2R9m$G*S1;u>I%~uRpX_pc@{#S$xzp0p zE^(?qM1mXMpOJQSP?#)h#f_zivjORe$_gW^g3VgA-ym8NiVrIq&*}Y%-aXijcNL0$EPFM~^J)LANY7|y#4(jNJsHk= zKN`=IRGCNfi)Wg4mq@p`LS`Dwmoh;GQbgwMwB#FiIkkwX25EGK7C-Vjh4D5p%ZVKyyi=CKavG z46Ugfm@?-YJF=@!i#RmINZB_%oD&7^%}Au|d9~+;rm`}psftaYIrcOg zTY8!mXzsY@?v%uQ!eUH={h0{aj-bKli>C8BHlS;t4x9v(6WTx$S_-3L=UNam*&BO0lXZILb@E zd;MgW=SoN!UDth{mBsq{?zp+=C1Dj|wUQY1+$VtrqsS2qPduh5 zqr9NPvXK!39f^Q25pz(onRHc5wtyViSV4gVl%k{r1|@*IuJ2|MS<3?~PdsWDzEb+0 zN;+!*cUb;V^CuJ=NE($(Ed$C6XMm7EXa$w5_OY$+W6udH;mIU$3`z-I02g82hW=0i z6`<2_91|mj#tu4#No%lEOJ`DNGHxuumJa~XBoZhM^av^n5?~5f2MFgqG*D9viXzHm zW_wOMufAR~(#=32wzR~wCqM+2LVShCi@tLh1foD61{I##dQjcg^LR3XDv7X8&yB$G zt0Q0>gahUCG{X|Kb7;CgAY>NK?0caQL}6j*rlB4j-HaQsDUu{%jR0h99`^TSSur-ZMeGyJW`<@ZbzxrU7Aj!|Dk&)AC~CnB*M>|W z)31qNZJ6F#6R_L=pi)=A66Dsu0M`!2QtcD4j*h$onNdd+tlCpMqZf1$naE7(k;p`L zU;p&zj6X@T%uGh7B8s!Dn2g59NfH;vOof2KW@&$w6k$xn2gCkoJen9hU@DfCaV(xB>@1>Jg7yX~9cclDH--gScx!N$xr&=E zn1Qpxo9A9v1l(Pnz+B^X>c@&=2)dGiNkFfC0Yid00pOsczT9(tol43xDm)Cptm2X; zS_~NceE!>g4m3PPiQ)% z-ax0SN>#@h=}I<-4GE$JZ$m(+V64`HBv8kPS9Xu%0DneqE<6+g#-Qd<_8Q5Cv=mVs zdol{+CxSi=6zRCW1=DcUL(NXTm3d>W2vLBTV>{w=q8TAJ0Th9}mZ5VkghD7_I&-W6 zdRSln|LpK`#^wNDtx>a|ZB*)PT_ia6U`mUJ#SQr(lv0fC>Pj%;>&` zJi!0j2YLd@aD|vmB}VAPNFC$NO{z1qqf7H;U6}jYnh&)xhj=eX8aALOld*n(G*%Br zr|N;4(g*4@`T%0?;XMKi{o6&5?B6oH7M_=T?GOq+M<~e*GYCUq>8FbBLu;P~B|$96 zK-4~P5$GI*L3v3ML8}HEVAc%8=HBv4DuEU_LJkiAz}Gl9!oyMkRJewq!PVU2$kbB= z$yNc&H9;;ANDw|Iv$vc8?kK>2z&0Ez;O+mLpeDvScpdCmrF!o1O2=g0&cTIHuk(`E zdBOd7diLzu&wtH7zj5#0y}GHuWTtEI^SPh=<2<>l``nKQ-z?WDb@|iSJQy6u*}=p9 zGf||f2nwt($A8iwxJ2V-xs1UBe+h^v9k}!PeVbUs?TFF!%)R>7<-}%SnOAkLz_5@V z+Q$P<^WB%2$z{HkAP#H3sxCcaiG}UL#4mD1BMj!g@ln|*Wd^D*L-_JoNanGMthFdXiKhoa0+i+uJKnL19PSD#8h|<$b3`c%K~Q&-DvV< zG{LWuNmZA_zz8(HEyE&-#9(9)aK@0|o|cG0)II`pGA4@!T&w>o+yr9S9B8@@1O6vX zNmmX&o>slr?qqB)O&(=}J!e1-cuql6Fx12%zb^5|TzwASgZn5wRJiIU`=U2-)salu zsq%ag89$?%FZ_xxMNr6V5l_x*5gSo(%PK(H1w9HPuC7GPPt*?XLNhsnryOWN?8K`~ z_*Vjuiwc5{QVc9a*#D%8I#52Yz+MLTqLa zztlz;iFLvJBEt_+TwxCNp}wc~REIi1T_7d|CLl$hy0K3`$dKNDRv*-Pimn?I9)uQBYmD&MW^Kys813ho#}OwSxqGw+FB{HYeaMur>Y|@P!^u zKL!#|kusa}a0S9f*gIk-m&$;8wALwfKr1V$5F9A25AYvXV+nu%gkmcc6>Nac?DBX|FC$apu*P z#?njr65ZNvF1)1QqOG*K@O}CRYHz1EUQ&Z?ZQtfE=@;4Jiom#EW{tZI%=;ssyO;F$ zY;`qSn$n1Eu5a;6`X0Nnyt*)_PuU7@@c*IJQx9r}MLmIMEy<<0iy!j!(UydB2>#WME6 z_~*+z?F9LIE8Fchaa;Myt7vJVo;c qyP#j%+`6-Yb^h$C{_!UC5p-W}uH5zX-fp5!FX=1Ib+L8hlKvZQkXK9q literal 0 HcmV?d00001 diff --git a/lib/lib_display/BinFonts/FreeSansOblique24pt7b.fnt b/lib/lib_display/BinFonts/FreeSansOblique24pt7b.fnt new file mode 100644 index 0000000000000000000000000000000000000000..a83b2debe6fa0a0c9daef7dd524ec438ccf46620 GIT binary patch literal 9592 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 Ph&HalS4>Vh{1^TYQ_kL> literal 0 HcmV?d00001 diff --git a/lib/lib_display/BinFonts/FreeSerif18pt7b.fnt b/lib/lib_display/BinFonts/FreeSerif18pt7b.fnt new file mode 100644 index 0000000000000000000000000000000000000000..5f829d5bf6bee31256e185f057ffe8363881beb8 GIT binary patch literal 4660 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 Rx9OXi{NeWInJxVNe*wLXc$feH literal 0 HcmV?d00001 diff --git a/lib/lib_display/BinFonts/FreeSerif9pt7b.fnt b/lib/lib_display/BinFonts/FreeSerif9pt7b.fnt new file mode 100644 index 0000000000000000000000000000000000000000..ab1a9e898406ec3fbcf58e3998aaa9cebdcb9cec GIT binary patch literal 1852 zcmYjRZERCj7=F(^x96U_owj$(!0jmAWnldXA-CIH3aM-pgMSc6{2~9mU9tEBLWf@? zL3UY}GPDMf7^^|W7=LPJOb`=EZrK4>VQYK8|MsFAk1RQIsG_(GD&DL=3{Q!fYZERI}1ku&0}^fzuiu3$}uJjt{MH6 z#1xam>l8{UE6e)ewsW6ssOY8@)Qm*Hvr2MV37eMnU zJ-TdvDNJmWfg_-J$f?q>nNrLyT3gJVajS(Wv6JmnEw-gE4pyq;TLo)f7pOt)rw zU7ZoEUE3BnSKL4*UK+eIaO(8AgGXAUEAmh2qg`We>4sWd_2A^u!*93spAFHB(avI7 zW0hjN5$e34X7!?5i4}JAEDe<#(*ExcWp$?%fRa)X$(%W*Pqk+=+r{94q0F*aVWVP~ z!U{Pyd)}#*FX&mYMEyi`tbSeHZ$@RO&?;FQ`Kh2?epND8$a?>%u+J)xk-)h7+qjcA za(aKh@4WH+TWy&@oQ8=EBXDma%d`+&q!1=%OEJeoSKabFGyBJu!9@mEZMnVEE%@6r zfX!0< zb*56W!t|~oOS+a$yE=5$hW!n@?tXl1cBm(m-!-(_yUnzFWAH*cR+vhK^6A*gn>W@J zrqf-aH*cEX`Lau^o5k6i!0omH5_m@ybI5d{FV< zuruc8hi@f2Iv)sgezPYz(9!u=|51HEzq2SnNpZP4b1ON}+3k6`R=TfSS&^xPP~>D1 zw~4Adfp2rP3%5dMWzoUE5by!PT@p;10}4J_A#=b$6)McZ1Hc0+xeXoQ7eTc5fZrcL zz7g_*;UsjlY}sYSG){iIaaeW_u;+K9g`(V%yq|48+7mMC(p%PChl z<^`!rRFI&B%GA4uR;qB0=ha5*_wk6w@f6Jl@1;0T$e*H$UqPME&?e#WfrfvO%FRA9 z53f>h4(4IMXUDj=sO_mua6zi literal 0 HcmV?d00001 diff --git a/lib/lib_display/BinFonts/FreeSerifBold12pt7b.fnt b/lib/lib_display/BinFonts/FreeSerifBold12pt7b.fnt new file mode 100644 index 0000000000000000000000000000000000000000..194a79ecb8f9c05d820c70613def20f81a94f482 GIT binary patch literal 2764 zcmZ8iUu+vm8UNO^-f`m1&bmpdtGc^sQxV?kr~0p2+I1Zq!6w2q2& z8`X{1O0MpS68G*N0O@cFJRo$SJ9t7|bQw26E-2Rs>4Z*#YbQ3;hdAMJQ<6>Vc$u}G z=D3;h{^t8;zkl<6`&k8m_c6fm>`}=1FP%RQm$qw7uQhw7PgW<_RC*&`@#E#|hx0%7 zYw@wU_$ic(NYFa*@egnQ0n=H`bC@s2s;Mvkt3romFjOsv^|{r_jihy5`z(6Za26&< z_1LPq5wh~y@YKy=2QjGxHP>P!i8we}Q#rDc$QI3!74BtIp55KG@DR+NS!LNX*g@OCe?>H#1OPn&QZ1PU_Gr)fuDkvxe{cW#$+YbJt^|G zx$;KSGnMIz(=dYwX6h{>Q71t#T-pM~Pj{Zv$0^8=!L&tOkGLl6%>;n(jfm_3Rnmr75jLiSfkvDM+5~4oM$3iT0AZ%&u9Mj!cS_4Yhw?B`SASjF54Cu zGV;I$3K_5-u4}Pf96{I`(W4hef$50FZ3h&=~cUH)#g|`XKRK`WIT`7r2l{qIVz&b5)&6z z%1w5)<+mkgDMLDe+PRwV@>8u(7%a`y_g2FntKUF9a#dQ~o$-6W4qTQ^Q?9EEa*<3efYU}nD|GxXAaBtsWz2tLKGae@LG+nX^#?<=czi(xEBBNPKM3SMk zJ#XhZ0Z!bd!P~}@uHe+2Ggt^pG#-Mpcg`T!|LsQ^+vp@~>7<9XL~pQoZ)0H5wSCGm zR(Hg4Z)0Ux#{9vAM5$=kpnxQvvK|RFAp(7PK%fq)u0j(&2hkx_YQUG^fF4Ipcv0Yx z)Px&=Fc$9>K{*(aI4t(?E$Hi41^*pTRXy}ycn{==BJILoKtU1dF}x459MFG-NDTW; zs6$j&g}zmZT3c1NWye_ZPC@W0-pFZA$gfWp7md-Sh*xGc%hNN5ZGD9I$i_asfz zrAP2U(jvOF4Uc;CK&Y$tSV-4DBjP$6is><-@7p0w*M&d15Yb}-e=7I~1b1pORR4+MUF2gN%4Ye?u5=RZe7`XO=tXVlgEQE)Ekep%It zI6p4Oh64I4vfi=#J;B!m{jw}Nh0ym4fq_3|ITj22d>|jv;{u1mUBAB&?#g{LEc_Jw z?}x)fK|b^0?mfTOqZh;deVX9E8CE4#{O|uJ9F`;EkL>MmG^$ElK*Op&Anbe)?u+&d z`ky^|H{2hM3OcHE<2<4S`PqUorThMKilSp7_YEa-uwU5!t}@WkGvDLiR0g9%;{7)j zH98=0N$J{K>&S1xKYG|w`a5>}aioI>afC#qhj0R`QBBBw9t%0xf@g6o8WZ>}!4K$* lIH-p$n8#f|U&E1ueIl-3;!rFs;{A0%hd7jRR92-O_#eHV6aWAK literal 0 HcmV?d00001 diff --git a/lib/lib_display/BinFonts/FreeSerifBold18pt7b.fnt b/lib/lib_display/BinFonts/FreeSerifBold18pt7b.fnt new file mode 100644 index 0000000000000000000000000000000000000000..b7e5db74f30f79bc020f42547fad18fa9fbd75e5 GIT binary patch literal 5044 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 literal 0 HcmV?d00001 diff --git a/lib/lib_display/BinFonts/FreeSerifBold24pt7b.fnt b/lib/lib_display/BinFonts/FreeSerifBold24pt7b.fnt new file mode 100644 index 0000000000000000000000000000000000000000..7b7c17b0b64a7702ca331a57673ef19d2aa9a5fe GIT binary patch literal 8620 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 literal 0 HcmV?d00001 diff --git a/lib/lib_display/BinFonts/FreeSerifBold9pt7b.fnt b/lib/lib_display/BinFonts/FreeSerifBold9pt7b.fnt new file mode 100644 index 0000000000000000000000000000000000000000..b6efa5ccf6f20158a745817861f57ec48b4e42be GIT binary patch literal 1936 zcmX|AZ)_Vy7Js|5-aqbocWDI}v9;Z%mr6)P4hdp?+1f@yLU*86$G0M(OA7+TNobu& zBu8_}rYUuiqD>1zicT)gi7$L?C4_>6jx`Q85|M)dReZ42bzNd~5{V%x-d>HDxAxN6 z(fs!JX5M?hc{3vdzzPG9n0o-cy?5fRO}%m9fN<{fr|(?+@>%bIAfC@E+Vyw7Y0ah| zeD~e!vxjTN9bE*s*>_i%x%hAHptw!a2eeyTQGaq|uV`F3e zv~uq7$jHcJFPX#txMp2n0-m8M+07;t9&Wq`o@a`O&MPJU)VZXsj;z$?GV$d~~$1ThABq=kO&AOc!OVhVpPE8t} zt!A_N%FFtEX7%grL{f>03`;;Sm&={m^k$_}o=uOeVY-9Wd5)7+@XQQ~e&UBLfH5;O zqY+alcG9!4M4oNqze*MBb;kiXb|r1p86J$fEiWua*WWHYd+U|Mslz84AS!X7AxYU1 ztcC0ow3exJ(PNF4mscBwslvRJt7uKNId8`Y4;HV+C|l#ek(jz{d;Zk4RIiQYjcTeq zZ+g{-idsI|RZAC)p-5@o@oGjMr&Lf_hh)XiA#n-f2rl6MMHe zO2*EWyM<<|I(4}fm+rOd#>}1Fvuffdm&i~x$(SlFtH*X*uGH6}64MwGFqyVU-x3-0P`cJpszw}LP{L2(E67faR*yfzMUZ0kdMb}fC2P?T+^Jlv! zR9-9?TWql44K`U^kzs~79;f9hDsFm?Gp6%;Zf805bkW9(CNGxCpL(5!rQqiN=v2$y z7K++Y#wi>)YaHiq%4X+GQR0n-bt&;C^|fSbl+8c_e!E-K#`8*jUHgR_TKIN#)R0t? zhY3?jbazX#l7bd7W0WD-%RKHIgIK(_@FSO1!QlXd#KHT1GB$2HDu*Q*k{9Ql4qjwz zts)yul$hwmqPUA!8e1!>jt-t4FM4J740k+tX{?V^(9WIkTg`yw!CaXHrl9RH@(sqh7IxZ+te_yg1S6iVxaB6#oPZ%`tE4 za{nyV+$L7d@BjL*zoeQ|^G~|dYV+Zp-Qc*}TKf~L3sXQ?hU&r_z|bt!foUMb=l=vY5`x>X2!bdeUIJDW zFwVaN{vq%^`$s;a-41Xg!0&@~TLJ$i;6M?9#k>rK`=MPBsBl=M+VB7s4vEzN;b4!u z@Ce2A;yzAA#QRY1Ul1dx;{|G;C?dX&7{R>r0bca&$p1ry#eIlZDN&RVKM(LbDkO5q zYZTTC{r`vY{P}L+C)0{}AKH)7{kR(4_x~&1k9U$5Wq-Yac0cb~nis=}7II(DYT$Q` zjzoN&6?(t8AMqyL*ZpgNVba(6FzKJm0O{BH(SScrc+QWj6M+(dK$wJn4g$VjR7w{Jt k9`CCQuQ8|_{U(_Z>ez!>hKew_-#MStdvJl_X#wxy@2DH2!vFvP literal 0 HcmV?d00001 diff --git a/lib/lib_display/BinFonts/FreeSerifBoldItalic12pt7b.fnt b/lib/lib_display/BinFonts/FreeSerifBoldItalic12pt7b.fnt new file mode 100644 index 0000000000000000000000000000000000000000..91ce39a02a60b7502742112d8213dde7af1fe554 GIT binary patch literal 3016 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 TFB$ng#`_7JHD+=q*@piBH|^2w literal 0 HcmV?d00001 diff --git a/lib/lib_display/BinFonts/FreeSerifBoldItalic18pt7b.fnt b/lib/lib_display/BinFonts/FreeSerifBoldItalic18pt7b.fnt new file mode 100644 index 0000000000000000000000000000000000000000..8b380d5b781d315d588390d3422048f4d08113a0 GIT binary patch literal 5512 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 literal 0 HcmV?d00001 diff --git a/lib/lib_display/BinFonts/FreeSerifBoldItalic24pt7b.fnt b/lib/lib_display/BinFonts/FreeSerifBoldItalic24pt7b.fnt new file mode 100644 index 0000000000000000000000000000000000000000..95397c7d74617787f1439143f66f2befe83cc0c8 GIT binary patch literal 9016 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 literal 0 HcmV?d00001 diff --git a/lib/lib_display/BinFonts/FreeSerifBoldItalic9pt7b.fnt b/lib/lib_display/BinFonts/FreeSerifBoldItalic9pt7b.fnt new file mode 100644 index 0000000000000000000000000000000000000000..0873ff0b0cf316c4e9fd29b63bf85717fb76bcbc GIT binary patch literal 2092 zcmY*ZZ*1Gv5x=KL@{!ULNyEWFZ;T`-h5e-ksMt;DShJL6a0jf-z70iDU`*60{m>co zjMV~KICSLIF)G;JhG90~B0&pmUxu#vP^<;El!^=~MHDCd(m%tnQFa=4z_4kE-PnO( z?Pz-#Mv(mR?tXXg?%q3c02mYjQd3_8o~{{ZYL~^&frL*l5Qf}$ejK6q7 z@Cj*scX{B6BJ=FnT)OY2x|I>YK66$2PTILcpJe^hL*iKn<0dOd%AuH;DxRps0?48ykD$?kiBYuhNu^7rlr$u2)|DlMB!l=LhB zcz!c@Z)v66VU&2<6`7TSqKP(dW!9s!j4`^g+^FRT=4QR@M~j}Hb5fS28!{xi)9KTu zIaaIHzHO^!`IVEyN9U(h##9bNYd}{5e3SCA6p(6tULrw;dAW`UpzVN@pnlQJ6k9nk z`%f{|w459SL7;h6S*T{7SnnSg>iYN>lLolCHs)v$&lbHGm5Q0X$y2N9!&Ww^^YOab zYz5xEcg%cssL30RA!lJIup}t%(neaW)?eMa_4+iu%{bZ zu+DUQdfGHL7TS>gf30T%W(4eK7#1*Wb59M{xKlTikeo7Y%V}1sB}r?Ww(UCjIjdcT zEcV^Rw%eBL?l3>FIU~MnsMM=ke@Q^HI9@V_rtig}&79%svgtM#Za@-zPJ9!Kq<9ne zl-darY?hTum#dWv!F6}pdhUb%mF{v^jn}nj{7lA91wUQw*3W(Gv|Q{BN;BNhA;&6f z_Qb3^$y%7`Kh0*%9)YaC->32UY}KPB=Is&wX^7t=gOnUy`ZSl-o?hp{-wYFEq$)nw;~=(%k1d}-+@xYRR=6Z2MNr@Al& zyAO<;=Jd5e2EM@{Ff~8>pl7z%x3G0%xijm8MhX%I)=7%sW;y2P0O z>S@cxegxk<^1SW5-I5z$rI%_?`y2T}q0ngT{o}!%H~Z#|)cwy-e(~qYp4xeRsQ#XB zaSF{BF2Yc`+I#KZ%QhE;BOFFXxvZz$ud5XQCD?4;!DeG@tJC6=Bng~z3AX^1!T7@e zF8pPJ2n63!oRMvaf+R-iHmDGbE1fM!K}-wrX;9-D+Mk7ZT!n4801;6{-b*0r66(i7 z>}*33WLZJk14W7A;e8XRBzE>-9>jD49_0Q&xd~K z|3ebTy0+jo!sBsVX91BTzJnM;`|pXmuU|u64E6U9@o~sUyBg8<`_Uhf;|%SCk*FHx zI~s}a$9XY=aZq+6U2z?;965;h4(fRr|ImIr!u3$z2=&N&6gj9zqOo`^vJD2s^$?$= zoQF64;eeH!1-@0CN|6k-(p7pbg;`*D?uoFVTwl_Eh@T2kMd|Fq2Kvj0|3+Tu|5%W93G<4Igo{`o7g5H%O;L_S HNgMtHg=dF6 literal 0 HcmV?d00001 diff --git a/lib/lib_display/BinFonts/FreeSerifItalic12pt7b.fnt b/lib/lib_display/BinFonts/FreeSerifItalic12pt7b.fnt new file mode 100644 index 0000000000000000000000000000000000000000..9ae523b3fbd54d9ecee75cd460e0c4c11d2d0c83 GIT binary patch literal 2764 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 literal 0 HcmV?d00001 diff --git a/lib/lib_display/BinFonts/FreeSerifItalic24pt7b.fnt b/lib/lib_display/BinFonts/FreeSerifItalic24pt7b.fnt new file mode 100644 index 0000000000000000000000000000000000000000..fbb09e8b4acfb51f6d6b45ff4ab4415d911a1fcf GIT binary patch literal 8356 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 PqAPelmKdi!r literal 0 HcmV?d00001 diff --git a/lib/lib_display/Display_Renderer-gemu-1.0/src/renderer.cpp b/lib/lib_display/Display_Renderer-gemu-1.0/src/renderer.cpp index e63f3d673..9feb22ec5 100644 --- a/lib/lib_display/Display_Renderer-gemu-1.0/src/renderer.cpp +++ b/lib/lib_display/Display_Renderer-gemu-1.0/src/renderer.cpp @@ -149,7 +149,7 @@ void Renderer::DrawStringAt(int16_t x, int16_t y, const char* text, uint16_t col #endif #ifndef USE_GFX_FONTS - if (!font) { + if (!font || font == 5) { #endif if (flag) { x=(x-1)*OLED_FONT_WIDTH*textsize_x; @@ -200,8 +200,13 @@ sFONT RAFont = { 12, /* Height */ }; +extern uint8_t *loaded_font; + void Renderer::setTextFont(uint8_t f) { - font=f; + + font = f; + + setFont(0); #ifdef USE_GFX_FONTS switch (f) { @@ -269,6 +274,10 @@ void Renderer::setTextFont(uint8_t f) { selected_font = &Font24_7seg; break; #endif + case 5: + setFont(ramfont); + break; + default: selected_font = &Font12; break; @@ -278,6 +287,17 @@ void Renderer::setTextFont(uint8_t f) { } +void Renderer::SetRamfont(uint8_t *font) { + ramfont = (GFXfont*)font; + uint32_t bitmap_offset = (uint32_t)ramfont->bitmap; + uint32_t glyph_offset = (uint32_t)ramfont->glyph; + + ramfont->bitmap = (uint8_t*)((uint32_t)font + bitmap_offset); + ramfont->glyph = (GFXglyph*)((uint32_t)font + glyph_offset); + + setFont(ramfont); +} + void Renderer::clearDisplay(void) { fillScreen(BLACK); } diff --git a/lib/lib_display/Display_Renderer-gemu-1.0/src/renderer.h b/lib/lib_display/Display_Renderer-gemu-1.0/src/renderer.h index 86aa98025..91f33f880 100644 --- a/lib/lib_display/Display_Renderer-gemu-1.0/src/renderer.h +++ b/lib/lib_display/Display_Renderer-gemu-1.0/src/renderer.h @@ -29,7 +29,7 @@ public: virtual void drawFastHLine(int16_t x, int16_t y, int16_t w, uint16_t color); virtual void drawPixel(int16_t x, int16_t y, uint16_t color); virtual uint16_t GetColorFromIndex(uint8_t index); - + void SetRamfont(uint8_t *font); virtual void DisplayOnff(int8_t on); virtual void DisplayInit(int8_t p,int8_t size,int8_t rot,int8_t font); virtual void Begin(int16_t p1,int16_t p2,int16_t p3); @@ -52,6 +52,7 @@ private: sFONT *selected_font; uint8_t font; uint8_t tsize = 1; + GFXfont *ramfont = 0; }; typedef union { diff --git a/lib/lib_display/UDisplay/uDisplay.cpp b/lib/lib_display/UDisplay/uDisplay.cpp index 0694a0d3c..fe34e9d40 100644 --- a/lib/lib_display/UDisplay/uDisplay.cpp +++ b/lib/lib_display/UDisplay/uDisplay.cpp @@ -20,7 +20,7 @@ #include #include "uDisplay.h" -#define UDSP_DEBUG +//#define UDSP_DEBUG const uint16_t udisp_colors[]={UDISP_BLACK,UDISP_WHITE,UDISP_RED,UDISP_GREEN,UDISP_BLUE,UDISP_CYAN,UDISP_MAGENTA,\ UDISP_YELLOW,UDISP_NAVY,UDISP_DARKGREEN,UDISP_DARKCYAN,UDISP_MAROON,UDISP_PURPLE,UDISP_OLIVE,\ @@ -48,6 +48,7 @@ uDisplay::uDisplay(char *lp) : Renderer(800, 600) { lutftime = 350; lut3time = 10; ep_mode = 0; + allcmd_mode = 0; startline = 0xA1; uint8_t section = 0; dsp_ncmds = 0; @@ -70,6 +71,12 @@ uDisplay::uDisplay(char *lp) : Renderer(800, 600) { // id line lp1++; section = *lp1++; + if (section == 'I') { + if (*lp1 == 'C') { + allcmd_mode = 1; + lp1++; + } + } if (*lp1 == ',') lp1++; } if (*lp1 != ':' && *lp1 != '\n') { @@ -413,7 +420,11 @@ Renderer *uDisplay::Init(void) { #ifdef UDSP_DEBUG Serial.printf("%02x ", iob ); #endif - spi_data8(iob); + if (!allcmd_mode) { + spi_data8(iob); + } else { + spi_command(iob); + } } SPI_CS_HIGH #ifdef UDSP_DEBUG @@ -864,11 +875,21 @@ void uDisplay::setAddrWindow_int(uint16_t x, uint16_t y, uint16_t w, uint16_t h) udisp_swap(x2,y2); } spi_command(saw_1); - spi_data8(x); - spi_data8(x2); + if (allcmd_mode) { + spi_data8(x); + spi_data8(x2); + } else { + spi_command(x); + spi_command(x2); + } spi_command(saw_2); - spi_data8(y); - spi_data8(y2); + if (allcmd_mode) { + spi_data8(y); + spi_data8(y2); + } else { + spi_command(y); + spi_command(y2); + } if (saw_3 != 0xff) { spi_command(saw_3); // write to RAM } @@ -953,8 +974,14 @@ void uDisplay::setRotation(uint8_t rotation) { SPI_BEGIN_TRANSACTION SPI_CS_LOW spi_command(madctrl); - spi_data8(rot[cur_rot]); - if (sa_mode == 8) { + + if (!allcmd_mode) { + spi_data8(rot[cur_rot]); + } else { + spi_command(rot[cur_rot]); + } + + if ((sa_mode == 8) && !allcmd_mode) { spi_command(startline); spi_data8((cur_rot < 2) ? height() : 0); } diff --git a/lib/lib_display/UDisplay/uDisplay.h b/lib/lib_display/UDisplay/uDisplay.h index 793b1cc8f..006f093a8 100644 --- a/lib/lib_display/UDisplay/uDisplay.h +++ b/lib/lib_display/UDisplay/uDisplay.h @@ -135,6 +135,7 @@ class uDisplay : public Renderer { uint8_t dsp_ncmds; uint8_t dsp_on; uint8_t dsp_off; + uint8_t allcmd_mode; uint16_t splash_font; uint16_t splash_size; uint16_t splash_xp; diff --git a/tasmota/displaydesc/SSD1331_desc.txt b/tasmota/displaydesc/SSD1331_desc.txt new file mode 100644 index 000000000..8c1b3a816 --- /dev/null +++ b/tasmota/displaydesc/SSD1331_desc.txt @@ -0,0 +1,33 @@ +:H,SSD1331,96,64,16,SPI,1,*,*,*,*,*,*,*,10 +:S,1,1,1,0,40,10 +:IC +AE,0 +A0,1,72 +A1,1,00 +A2,1,00 +A4,0 +A8,1,3F +AD,1,8E +B0,1,0B +B1,1,31 +B3,1,F0 +8A,1,64 +8B,1,78 +8C,1,64 +BB,1,3A +BE,1,3E +87,1,06 +81,1,91 +82,1,50 +83,1,7D +AF,0 +:o,AE +:O,AF +:A,15,75,FF,8 +:R,A0,A1 +:0,72,00,00,00 +:1,71,00,00,01 +:2,30,00,00,02 +:3,33,00,00,03 +:i,A6,A7 +# diff --git a/tasmota/displaydesc/SSD1351_desc.txt b/tasmota/displaydesc/SSD1351_desc.txt index 806c8c7a8..9fc7c43f5 100644 --- a/tasmota/displaydesc/SSD1351_desc.txt +++ b/tasmota/displaydesc/SSD1351_desc.txt @@ -24,10 +24,10 @@ AF,80 :O,AF :A,15,75,5C,8 :R,A0,A1 -:0,74,00,00,01 -:1,77,00,00,00 -:2,76,00,00,03 -:3,75,00,00,02 +:0,74,00,00,00 +:1,77,00,00,01 +:2,76,00,00,02 +:3,75,00,00,03 :i,A6,A7 :D,C7 # diff --git a/tasmota/xdrv_13_display.ino b/tasmota/xdrv_13_display.ino index 1b8a19df9..1d2335901 100755 --- a/tasmota/xdrv_13_display.ino +++ b/tasmota/xdrv_13_display.ino @@ -729,6 +729,34 @@ void DisplayText(void) cp += 1; } break; +#ifdef USE_UFILESYS +#ifdef USE_RAMFONT +extern FS *ffsp; + case 'F': + { char *ep = strchr(cp,':'); + if (ep) { + static uint8_t *ram_font; + *ep = 0; + ep++; + if (ffsp) { + File fp; + fp = ffsp->open(cp, "r"); + if (fp > 0) { + uint32_t size = fp.size(); + if (ram_font) free (ram_font); + ram_font = (uint8_t*)special_malloc(size+4); + fp.read((uint8_t*)ram_font, size); + fp.close(); + if (renderer) renderer->SetRamfont(ram_font); + Serial.printf("Font loaded: %s\n",cp ); + } + } + cp = ep; + } + } + break; +#endif // USE_RAMFONT +#endif // USE_UFILESYS case 'a': // rotation angle if (renderer) renderer->setRotation(*cp&3);