diff options
author | William Wilgus <wilgus.william@gmail.com> | 2020-11-01 12:25:39 -0500 |
---|---|---|
committer | William Wilgus <me.theuser@yahoo.com> | 2020-11-01 17:43:42 +0000 |
commit | 0c99a3f9fb9db2e2ab96a69b5adc100462e72843 (patch) | |
tree | f276ac92068b18fbba8f6ff9c4346e70f723d96d /apps/gui/skin_engine | |
parent | f9ba96cadec09e11d4f75f9cc215fcc20293ecb3 (diff) | |
download | rockbox-0c99a3f9fb9db2e2ab96a69b5adc100462e72843.tar.gz rockbox-0c99a3f9fb9db2e2ab96a69b5adc100462e72843.zip |
Skin engine Onda Vx747
Fixing issues that existed before framebuf rewrite
Fix swap issue
Change-Id: I43e03b7aaf4591c1b6f88e3ba0730e279934c0df
Diffstat (limited to 'apps/gui/skin_engine')
-rw-r--r-- | apps/gui/skin_engine/skin_engine.c | 4 | ||||
-rw-r--r-- | apps/gui/skin_engine/skin_render.c | 18 |
2 files changed, 17 insertions, 5 deletions
diff --git a/apps/gui/skin_engine/skin_engine.c b/apps/gui/skin_engine/skin_engine.c index 049629b181..1515e6f025 100644 --- a/apps/gui/skin_engine/skin_engine.c +++ b/apps/gui/skin_engine/skin_engine.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include "settings.h" | 29 | #include "settings.h" |
30 | #include "wps.h" | 30 | #include "wps.h" |
31 | #include "file.h" | 31 | #include "file.h" |
32 | #include "misc.h" | ||
32 | #if CONFIG_TUNER | 33 | #if CONFIG_TUNER |
33 | #include "radio.h" | 34 | #include "radio.h" |
34 | #endif | 35 | #endif |
@@ -314,7 +315,8 @@ bool skin_do_full_update(enum skinnable_screens skin, | |||
314 | { | 315 | { |
315 | struct viewport *vp = *(screens[screen].current_viewport); | 316 | struct viewport *vp = *(screens[screen].current_viewport); |
316 | 317 | ||
317 | bool vp_is_dirty = ((vp->flags & VP_FLAG_VP_SET_CLEAN) == VP_FLAG_VP_DIRTY); | 318 | bool vp_is_dirty = ((vp->flags & VP_FLAG_VP_SET_CLEAN) == VP_FLAG_VP_DIRTY) && |
319 | get_current_activity() == ACTIVITY_WPS; | ||
318 | 320 | ||
319 | bool ret = (skins[skin][screen].needs_full_update || vp_is_dirty); | 321 | bool ret = (skins[skin][screen].needs_full_update || vp_is_dirty); |
320 | skins[skin][screen].needs_full_update = false; | 322 | skins[skin][screen].needs_full_update = false; |
diff --git a/apps/gui/skin_engine/skin_render.c b/apps/gui/skin_engine/skin_render.c index 6d4c0bcf68..67542adc6b 100644 --- a/apps/gui/skin_engine/skin_render.c +++ b/apps/gui/skin_engine/skin_render.c | |||
@@ -435,18 +435,18 @@ static void do_tags_in_hidden_conditional(struct skin_element* branch, | |||
435 | { | 435 | { |
436 | skin_backdrop_set_buffer(data->backdrop_id, skin_viewport); | 436 | skin_backdrop_set_buffer(data->backdrop_id, skin_viewport); |
437 | skin_backdrop_show(-1); | 437 | skin_backdrop_show(-1); |
438 | gwps->display->set_viewport(&skin_viewport->vp); | 438 | gwps->display->set_viewport_ex(&skin_viewport->vp, VP_FLAG_VP_SET_CLEAN); |
439 | gwps->display->clear_viewport(); | 439 | gwps->display->clear_viewport(); |
440 | gwps->display->set_viewport_ex(&info->skin_vp->vp, 0); | 440 | gwps->display->set_viewport_ex(&info->skin_vp->vp, VP_FLAG_VP_SET_CLEAN); |
441 | skin_backdrop_set_buffer(-1, skin_viewport); | 441 | skin_backdrop_set_buffer(-1, skin_viewport); |
442 | skin_backdrop_show(data->backdrop_id); | 442 | skin_backdrop_show(data->backdrop_id); |
443 | } | 443 | } |
444 | else | 444 | else |
445 | #endif | 445 | #endif |
446 | { | 446 | { |
447 | gwps->display->set_viewport(&skin_viewport->vp); | 447 | gwps->display->set_viewport_ex(&skin_viewport->vp, VP_FLAG_VP_SET_CLEAN); |
448 | gwps->display->clear_viewport(); | 448 | gwps->display->clear_viewport(); |
449 | gwps->display->set_viewport_ex(&info->skin_vp->vp, 0); | 449 | gwps->display->set_viewport_ex(&info->skin_vp->vp, VP_FLAG_VP_SET_CLEAN); |
450 | } | 450 | } |
451 | skin_viewport->hidden_flags |= VP_DRAW_HIDDEN; | 451 | skin_viewport->hidden_flags |= VP_DRAW_HIDDEN; |
452 | } | 452 | } |
@@ -512,6 +512,7 @@ static void fix_line_alignment(struct skin_draw_info *info, struct skin_element | |||
512 | static bool skin_render_line(struct skin_element* line, struct skin_draw_info *info) | 512 | static bool skin_render_line(struct skin_element* line, struct skin_draw_info *info) |
513 | { | 513 | { |
514 | bool needs_update = false; | 514 | bool needs_update = false; |
515 | |||
515 | int last_value, value; | 516 | int last_value, value; |
516 | 517 | ||
517 | if (line->children_count == 0) | 518 | if (line->children_count == 0) |
@@ -571,6 +572,7 @@ static bool skin_render_line(struct skin_element* line, struct skin_draw_info *i | |||
571 | info->refresh_type = old_refresh_mode; | 572 | info->refresh_type = old_refresh_mode; |
572 | break; | 573 | break; |
573 | case TAG: | 574 | case TAG: |
575 | |||
574 | if (child->tag->flags & NOBREAK) | 576 | if (child->tag->flags & NOBREAK) |
575 | info->no_line_break = true; | 577 | info->no_line_break = true; |
576 | if (child->tag->type == SKIN_TOKEN_SUBLINE_SCROLL) | 578 | if (child->tag->type == SKIN_TOKEN_SUBLINE_SCROLL) |
@@ -590,6 +592,10 @@ static bool skin_render_line(struct skin_element* line, struct skin_draw_info *i | |||
590 | sizeof(tempbuf), NULL); | 592 | sizeof(tempbuf), NULL); |
591 | if (valuestr) | 593 | if (valuestr) |
592 | { | 594 | { |
595 | #if defined(ONDA_VX747) || defined(ONDA_VX747P) | ||
596 | /* Doesn't redraw (in sim at least) */ | ||
597 | needs_update = true; | ||
598 | #endif | ||
593 | #if CONFIG_RTC | 599 | #if CONFIG_RTC |
594 | if (child->tag->flags&SKIN_RTC_REFRESH) | 600 | if (child->tag->flags&SKIN_RTC_REFRESH) |
595 | needs_update = needs_update || info->refresh_type&SKIN_REFRESH_DYNAMIC; | 601 | needs_update = needs_update || info->refresh_type&SKIN_REFRESH_DYNAMIC; |
@@ -602,6 +608,10 @@ static bool skin_render_line(struct skin_element* line, struct skin_draw_info *i | |||
602 | } | 608 | } |
603 | break; | 609 | break; |
604 | case TEXT: | 610 | case TEXT: |
611 | #if defined(ONDA_VX747) || defined(ONDA_VX747P) | ||
612 | /* Doesn't redraw (in sim at least) */ | ||
613 | needs_update = true; | ||
614 | #endif | ||
605 | strlcat(info->cur_align_start, SKINOFFSETTOPTR(skin_buffer, child->data), | 615 | strlcat(info->cur_align_start, SKINOFFSETTOPTR(skin_buffer, child->data), |
606 | info->buf_size - (info->cur_align_start-info->buf)); | 616 | info->buf_size - (info->cur_align_start-info->buf)); |
607 | needs_update = needs_update || | 617 | needs_update = needs_update || |