[FL-867] GUI: ViewPort arrangement API, better input and draw dispatching (#333)
* Input: refactoring, platform agnostic key configuration, update usage across project. Minor queue usage fixes and tick timings. * Gui: lighter and more efficient input and draw call dispatching, ViewPort rearranging API. View: conditional model updates, API usage update. * BT: smaller update delay * GUI: ViewPort visibility check
This commit is contained in:
		| @@ -14,6 +14,7 @@ struct Menu { | ||||
|     MenuEvent* event; | ||||
|  | ||||
|     // GUI | ||||
|     Gui* gui; | ||||
|     ViewPort* view_port; | ||||
|     Icon* icon; | ||||
|  | ||||
| @@ -37,12 +38,14 @@ ValueMutex* menu_init() { | ||||
|         furiac_exit(NULL); | ||||
|     } | ||||
|  | ||||
|     // OpenGui record | ||||
|     menu->gui = furi_record_open("gui"); | ||||
|  | ||||
|     // Allocate and configure view_port | ||||
|     menu->view_port = view_port_alloc(); | ||||
|  | ||||
|     // Open GUI and register fullscreen view_port | ||||
|     Gui* gui = furi_record_open("gui"); | ||||
|     gui_add_view_port(gui, menu->view_port, GuiLayerFullscreen); | ||||
|     gui_add_view_port(menu->gui, menu->view_port, GuiLayerFullscreen); | ||||
|  | ||||
|     view_port_enabled_set(menu->view_port, false); | ||||
|     view_port_draw_callback_set(menu->view_port, menu_view_port_callback, menu_mutex); | ||||
| @@ -198,6 +201,7 @@ void menu_ok(Menu* menu) { | ||||
|         menu_update(menu); | ||||
|     } else if(type == MenuItemTypeFunction) { | ||||
|         menu_item_function_call(item); | ||||
|         gui_send_view_port_back(menu->gui, menu->view_port); | ||||
|     } | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user