Skip to content

Commit 61df082

Browse files
BenchMark app: use new task_handler.add_event_cb()
1 parent c7c668a commit 61df082

File tree

1 file changed

+31
-55
lines changed
  • internal_filesystem/apps/com.micropythonos.benchmark/assets

1 file changed

+31
-55
lines changed

internal_filesystem/apps/com.micropythonos.benchmark/assets/benchmark.py

Lines changed: 31 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,8 @@
44
from mpos.apps import Activity
55
import mpos.ui
66

7-
indev_error_x = 160
8-
indev_error_y = 120
9-
10-
DARKPINK = lv.color_hex(0xEC048C)
11-
127
class Benchmark(Activity):
138

14-
hor_res = 0
15-
ver_res = 0
16-
layer = None
179
fps_buffer = [0] # Buffer to store FPS
1810
bird_x = 100
1911
bird_y = 0
@@ -39,32 +31,39 @@ def onCreate(self):
3931
focusgroup.add_obj(screen)
4032
screen.add_event_cb(self.key_cb, lv.EVENT.KEY, None)
4133
self.image = lv.image(screen)
42-
#self.load_image("data/images/screenshots/snapshot_640x480_RGB565.raw")
4334
self.load_image("data/images/screenshots/snapshot_296x240_RGB565.raw")
44-
#self.image.set_size(self.lvgl_w, self.lvgl_h)
45-
#self.gif.set_size(lvgl_w, lvgl_h) doesn't seem to do anything. get_style_transform_scale_x/y works but then it needs get_style_translate_x/y
46-
#self.image.set_scale(max(scale_factor_w,scale_factor_h)) # fills the entire screen but cuts off borders
4735
scale_factor_w = round(self.image_target_w * 256 / self.image_w)
4836
self.image.set_scale(scale_factor_w)
49-
#self.image.set_scale(128)
50-
#self.image.set_size(640, 480)
5137
self.spinner = lv.spinner(screen)
5238
self.spinner.set_size(16, 16)
5339
self.setContentView(screen)
5440

5541
def onResume(self, screen):
56-
super().onResume(screen)
5742
lv.log_register_print_cb(self.log_callback)
58-
try:
59-
_thread.stack_size(mpos.apps.good_stack_size())
60-
_thread.start_new_thread(self.game, ())
61-
except Exception as e:
62-
print("Could not start thread: ", e)
63-
64-
def onStop(self, screen):
65-
super().onStop(screen)
43+
mpos.ui.th.add_event_cb(self.update_frame, 1)
44+
45+
def onPause(self, screen):
46+
mpos.ui.th.remove_event_cb(self.update_frame)
6647
lv.log_register_print_cb(None)
6748

49+
def key_cb(self, event):
50+
key = event.get_key()
51+
#print(f"got key {key}")
52+
53+
if key == lv.KEY.UP:
54+
self.image_target_w += 20
55+
scale_factor_w = round(self.image_target_w * 256 / self.image_w)
56+
self.image.set_scale(scale_factor_w)
57+
elif key == lv.KEY.DOWN:
58+
self.image_target_w -= 20
59+
scale_factor_w = round(self.image_target_w * 256 / self.image_w)
60+
self.image.set_scale(scale_factor_w)
61+
elif key == lv.KEY.LEFT:
62+
self.bird_x -= 10
63+
elif key == lv.KEY.RIGHT:
64+
self.bird_x += 10
65+
elif key == lv.KEY.ENTER:
66+
self.bird_y -= 25
6867

6968
def extract_dimensions_and_format(self, filename):
7069
# Split the filename by '_'
@@ -132,37 +131,14 @@ def log_callback(self,level, log_str):
132131
except (IndexError, ValueError):
133132
pass
134133

135-
def key_cb(self, event):
136-
key = event.get_key()
137-
#print(f"got key {key}")
138134

139-
if key == lv.KEY.UP:
140-
self.image_target_w += 20
141-
scale_factor_w = round(self.image_target_w * 256 / self.image_w)
142-
self.image.set_scale(scale_factor_w)
143-
#self.bird_y -= 10
144-
elif key == lv.KEY.DOWN:
145-
self.image_target_w -= 20
146-
scale_factor_w = round(self.image_target_w * 256 / self.image_w)
147-
self.image.set_scale(scale_factor_w)
148-
#self.bird_y += 10
149-
elif key == lv.KEY.LEFT:
150-
self.bird_x -= 10
151-
elif key == lv.KEY.RIGHT:
152-
self.bird_x += 10
153-
elif key == lv.KEY.ENTER:
154-
self.bird_y -= 25
155-
156-
def game(self):
157-
# print("Waiting a bit before starting...") ; time.sleep(1) # wait for top bar to go away
158-
while self.has_foreground():
159-
self.update_ui_threadsafe_if_foreground(self.spinner.set_pos, self.bird_x, self.bird_y)
160-
self.update_ui_threadsafe_if_foreground(self.image.set_x, self.image_x)
161-
time.sleep_ms(10)
162-
self.image_x -= 1
163-
if self.image_x < (-self.image_target_w*2):
164-
self.image_x = self.image_w
165-
self.bird_y += 1
166-
if self.bird_y > self.image_h:
167-
self.bird_y = 0
135+
def update_frame(self, a, b):
136+
self.spinner.set_pos(self.bird_x, self.bird_y)
137+
self.image.set_x(self.image_x)
138+
self.image_x -= 1
139+
if self.image_x < (-self.image_target_w*2):
140+
self.image_x = self.image_w
141+
self.bird_y += 1
142+
if self.bird_y > self.image_h:
143+
self.bird_y = 0
168144

0 commit comments

Comments
 (0)