44from mpos .apps import Activity
55import mpos .ui
66
7- indev_error_x = 160
8- indev_error_y = 120
9-
10- DARKPINK = lv .color_hex (0xEC048C )
11-
127class Benchmark (Activity ):
138
14- hor_res = 0
15- ver_res = 0
16- layer = None
179fps_buffer = [0 ]# Buffer to store FPS
1810bird_x = 100
1911bird_y = 0
@@ -39,32 +31,39 @@ def onCreate(self):
3931focusgroup .add_obj (screen )
4032screen .add_event_cb (self .key_cb ,lv .EVENT .KEY ,None )
4133self .image = lv .image (screen )
42- #self.load_image("data/images/screenshots/snapshot_640x480_RGB565.raw")
4334self .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
4735scale_factor_w = round (self .image_target_w * 256 / self .image_w )
4836self .image .set_scale (scale_factor_w )
49- #self.image.set_scale(128)
50- #self.image.set_size(640, 480)
5137self .spinner = lv .spinner (screen )
5238self .spinner .set_size (16 ,16 )
5339self .setContentView (screen )
5440
5541def onResume (self ,screen ):
56- super ().onResume (screen )
5742lv .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 )
6647lv .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
6968def extract_dimensions_and_format (self ,filename ):
7069# Split the filename by '_'
@@ -132,37 +131,14 @@ def log_callback(self,level, log_str):
132131except (IndexError ,ValueError ):
133132pass
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