From 22ca8886c25115df575f8a3e67a5da9059fc3f28 Mon Sep 17 00:00:00 2001 From: Daniel Thompson Date: Fri, 10 Apr 2020 20:22:51 +0100 Subject: [PATCH] wasp: draw565: Automatic RLE format conversion From here we can also bring colour to the launcher! --- res/clock_icon.png | Bin 965 -> 5599 bytes res/settings_icon.png | Bin 1082 -> 7628 bytes res/torch_icon.png | Bin 820 -> 5170 bytes wasp/apps/launcher.py | 2 +- wasp/apps/testapp.py | 65 +++-------------------- wasp/draw565.py | 19 ++++++- wasp/icons.py | 120 +++++++++++++++++++++++++++++++++++++++--- 7 files changed, 139 insertions(+), 67 deletions(-) diff --git a/res/clock_icon.png b/res/clock_icon.png index 165bf5166a0616fe2ba319a058a8f3b3e58c9eae..b08bbfbb676c2ee7d8f683a165a3f9af8c79d3a3 100644 GIT binary patch delta 5535 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 delta 842 zcmV-Q1GW6$E5!$pBYy#eX+uL$Nkc;*aB^>EX>4Tx04R}tkvmAkKpe)uKBPq|4(%Y~ zkfAzR@P#;P6^c+H)C#RSm|XgTCJjl7i=*ILaPYBMb#QUk)xlK|1Ro$yj!ud$QsV!T zLW>yhIPS-H|L^1Oe}KPPWvUq*160j2GO47H%dZNdR|IK>5r4(F#7uoo6w~k=U-$6w z{Vu_?yzBlPeM-S(fKMQvWx8PzZxBy!S~}-_;utGS3h_Dds6iJbe&o9B@*C%p!+xF_ zGqRa^;ux_|>SDQzS=msDr-Wtr==hLFM{mLNia zj5;c)!a{;}jeisq89GmT_y--oNG_RN6)mPM1H(H2 z000JJOGiWi000000Qp0^f0MlvAP58q8W#o*><5$O6DTpANklC*2u0QS z|G&(>HeFk>BGT!($vjPh;1LvUPAN%3+fO6gjo2@pf<`kvTp!?>Db~m1)@i2~ z&*vJkr+`OqJhkK0h$(AvzV`HM#*eaVf?JJ`SNS>LH~pXen7K+HjiFlA#@VO4-KV4{ znb-rTi8sU^uw(MIW3Kkir4ftzMMQ)qQT-%|)`<5200001lRgw09033T2mrsSKb&#m UYi-Q=nE(I)07*qoM6N<$g6kfVG5`Po diff --git a/res/settings_icon.png b/res/settings_icon.png index d1141b03052397335cfa703f4dbf7826c2dbc88b..c8e80197b6e420bbcccfdae9c6dc23fb5f4e10df 100644 GIT binary patch delta 7580 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 VNxYH-kLv&c002ovPDHLkV1k7V+z$W% diff --git a/res/torch_icon.png b/res/torch_icon.png index bbd4db3bb8ecc7e891ef7187deeb57f27239a10f..aa5f5147cffd13e7b221dc4c5e03ee380c153a89 100644 GIT binary patch delta 5101 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 P00000NkvXXu0mjfLwUc2 delta 721 zcmV;?0xtcsD6|HUBa_h(6Mra?eUUv#!$25@-=>v{L>=rP;*g;_Sr8R*)G8FALZ}s5 zbuhW~51KS2EiR6NYr(;v#j1mgv#t)Vf*|+<;^gS0=prS4mlRsWc*k)M?|tvf-FJY{ zC^Ov-jRU$-wNi<=l*z72;a7xcis*x=Fx#Ay)P+ec}i!DjM-Q@t8#yB!1+&>hT-rg3AKWj9BT^JaL3rDs-^g!K`TM z#8bpkO*bfC$at)A-r}s6Ypiuo{z5TltSob#)-V!S#1dpkP*Fn(WmFNP-5|wAiq7Lc z{vp>dlS?I635*;IsDD6*;`+h=;CFBB{N#j}B*uZR7svS+0m8dLv+g+G$BxrH0fNuK zmC^QB8oGif2Jp%f-fs5<5rtSfkJHX(RsaT3D1!)QSJn()--;@OgZh@XPuWzk$ zoIU_)>Q(XvI5-4G3zWU?^X~4>zWrO%>faCD3UX_y26mtT0F!eP9tZ^p2MQwCi>H&B z5-5KjNklQoKV;-HrA=o(^CxZM^g zH@oaUy+bV7s$6oZwk?Fv{q9T$3FX4U??-=cjaX*LLDK4s6z`;i_LTX>#iB9$3jO^u zvLF!avujol&%J8PjQ#Tw33YNAcZ)_nNqT(_YN_$Rfh}IIRc4~nLu{{uj0~}kHN>_x z(XOeZP+&&Nyj-{4s-hX02Wi<4(z)8mRk2s>5H%*g>Fz1jv_UC z(pCg=ZKoR3HR4>%oInMo-h1o=000000000006O>pr&EX!w^sVL00000NkvXXu0mjf D=bl;@ diff --git a/wasp/apps/launcher.py b/wasp/apps/launcher.py index 274ea9c..4e76ab1 100644 --- a/wasp/apps/launcher.py +++ b/wasp/apps/launcher.py @@ -66,7 +66,7 @@ class LauncherApp(): if not app: return draw.set_color(0xffff) - draw.rleblit(app.ICON, (x+13, y+12)) + draw.blit(app.ICON, x+13, y+12) draw.set_color(0xbdb6) draw.string(app.NAME, x, y+120-30, 120) diff --git a/wasp/apps/testapp.py b/wasp/apps/testapp.py index eece822..789454f 100644 --- a/wasp/apps/testapp.py +++ b/wasp/apps/testapp.py @@ -11,42 +11,8 @@ class TestApp(): NAME = 'Self Test' ICON = icons.app - # 2-bit RLE, generated from res/app_icon.png, 457 bytes - RLE_2BIT = ( - 96, 64, - b'\x1e@md> 16 self._display.fill(bg, x, y, w, h) + @micropython.native + def blit(self, image, x, y): + if len(image) == 3: + # Legacy 1-bit image + self.rleblit(image, (x, y)) + else: #elif image[0] == 2: + # 2-bit RLE image, (255x255, v1) + self._rle2bit(image, x, y) + @micropython.native def rleblit(self, image, pos=(0, 0), fg=0xffff, bg=0): """Decode and draw a 1-bit RLE image.""" @@ -135,14 +144,20 @@ class Draw565(object): color = bg @micropython.native - def rle2bit(self, image, x, y): + def _rle2bit(self, image, x, y): """Decode and draw a 2-bit RLE image.""" display = self._display quick_write = display.quick_write - (sx, sy, rle) = image + sx = image[1] + sy = image[2] + rle = memoryview(image)[3:] display.set_window(x, y, sx, sy) + if sx <= (len(display.linebuffer) / 2) and not bool(sy & 1): + sx *= 2 + sy /= 2 + palette = array.array('H', (0, 0xfffe, 0x7bef, 0xffff)) next_color = 1 rl = 0 diff --git a/wasp/icons.py b/wasp/icons.py index 76b5ee7..02c1b91 100644 --- a/wasp/icons.py +++ b/wasp/icons.py @@ -4,17 +4,125 @@ # 1-bit RLE, generated from res/battery.png, 189 bytes battery = (36, 48, b'\x97\x0e\x14\x12\x11\x14\x10\x14\x0c\x08\x0c\x08\x08\x08\x0c\x08\x08\x08\x0c\x08\x08\x08\x0c\x08\x08\x04\x14\x04\x08\x04\x14\x04\x08\x04\x0c\x04\x04\x04\x08\x04\x0b\x05\x04\x04\x08\x04\n\x06\x04\x04\x08\x04\t\x07\x04\x04\x08\x04\x08\x07\x05\x04\x08\x04\x07\x07\x06\x04\x08\x04\x06\x07\x07\x04\x08\x04\x05\x07\x08\x04\x08\x04\x04\x0e\x02\x04\x08\x04\x03\x0f\x02\x04\x08\x04\x02\x10\x02\x04\x08\x04\x02\x10\x02\x04\x08\x04\x02\x0f\x03\x04\x08\x04\x02\x0e\x04\x04\x08\x04\x08\x07\x05\x04\x08\x04\x07\x07\x06\x04\x08\x04\x06\x07\x07\x04\x08\x04\x05\x07\x08\x04\x08\x04\x04\x07\t\x04\x08\x04\x04\x06\n\x04\x08\x04\x04\x05\x0b\x04\x08\x04\x04\x04\x0c\x04\x08\x04\x14\x04\x08\x04\x14\x04\x08\x04\x14\x04\x08\x04\x14\x04\x08\x1c\x08\x1c\x08\x1c\x08\x1c\x98') -# 1-bit RLE, generated from res/app_icon.png, 441 bytes -app = (96, 64, b'\x1e$<$<$;&\x97,20/2-4,\x03.\x03,\x03.\x03,\x03.\x03,\x03.\x03,\x03.\x03,\x03\x0c\x03\x10\x03\x0c\x03,\x03\n\x07\x0c\x07\n\x03,\x03\t\x03\x02\x04\n\x04\x02\x03\t\x03,\x03\x08\x02\x07\x02\x08\x02\x07\x02\x08\x03,\x03\x07\x02\t\x02\x06\x02\t\x02\x07\x03,\x03\x06\x02\x0b\x02\x04\x02\x0b\x02\x06\x03,\x03\x06\x02\x0b\x02\x04\x02\x0b\x02\x06\x03,\x03\x05\x02\x0c\x02\x04\x02\x0c\x02\x05\x03,\x03\x05\x02\x0c\x02\x04\x02\x0c\x02\x05\x03,\x03\x05\x03\x0b\x02\x04\x02\x0b\x03\x05\x03,\x03\x06\x02\x0b\x02\x04\x02\x0b\x02\x06\x03,\x03\x06\x02\x0b\x02\x04\x02\x0b\x01\x07\x03,\x03\x07\x02\n\x02\x04\x02\n\x02\x07\x03+\x04\x08\x02\t\x02\x04\x02\t\x02\x08\x03*\x05\t\x0c\x04\x0c\t\x03*\x05\n\x0b\x04\x0b\n\x03*\x05.\x03*\x05.\x03*\x05.\x03*\x05.\x03*\x05\n\x0b\x04\x0b\n\x03+\x04\t\x0c\x04\x0c\t\x03,\x03\x08\x02\t\x02\x04\x02\t\x02\x08\x03,\x03\x07\x02\n\x02\x04\x02\n\x02\x07\x03,\x03\x06\x02\x0b\x02\x04\x02\x0b\x01\x07\x03,\x03\x06\x02\x0b\x02\x04\x02\x0b\x02\x06\x03,\x03\x05\x03\x0b\x02\x04\x02\x0b\x03\x05\x03,\x03\x05\x02\x0c\x02\x04\x02\x0c\x02\x05\x03,\x03\x05\x02\x0c\x02\x04\x02\x0c\x02\x05\x03,\x03\x06\x02\x0b\x02\x04\x02\x0b\x02\x06\x03,\x03\x06\x02\x0b\x02\x04\x02\x0b\x02\x06\x03,\x03\x07\x02\t\x02\x06\x02\t\x02\x07\x03,\x03\x08\x02\x07\x02\x08\x02\x07\x02\x08\x03,\x03\t\x03\x02\x04\n\x04\x02\x03\t\x03,\x03\n\x06\x0e\x06\n\x03,\x03\x0c\x03\x10\x03\x0c\x03,\x03.\x03,\x03.\x03,\x03.\x03,\x03.\x03,\x03.\x03,4-2/02,\x97&;$<$<$\x1e') +# 2-bit RLE, generated from res/app_icon.png, 460 bytes +app = ( + b'\x02' + b'`@' + b'\x1e@md