gui draw refactor

This commit is contained in:
aanper
2020-10-15 18:13:18 +03:00
parent e684869970
commit 78e016412e
4 changed files with 27 additions and 33 deletions

View File

@@ -56,23 +56,19 @@ void widget_update(Widget* widget) {
if(widget->gui) gui_update(widget->gui);
}
void widget_gui_set(Widget* widget, GUI* gui) {
void widget_gui_set(Widget* widget, Gui* gui) {
assert(widget);
assert(gui);
widget->gui = gui;
}
void widget_draw(Widget* widget, ValueMutex* canvas_api_mutex) {
void widget_draw(Widget* widget, CanvasApi* canvas_api) {
assert(widget);
assert(canvas_api_mutex);
assert(canvas_api);
assert(widget->gui);
if(widget->draw_callback) {
CanvasApi* api = acquire_mutex_block(canvas_api_mutex); // TODO: timeout?
if(api != NULL) {
widget->draw_callback(api, widget->draw_callback_context);
}
release_mutex(canvas_api_mutex, api);
widget->draw_callback(canvas_api, widget->draw_callback_context);
}
}