From a4c4b65d8d9dae048bb91f4e64abd44d52493dee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=98yvind=20Kol=C3=A5s?= <pippin@gimp.org> Date: Sun, 17 Sep 2023 03:09:47 +0200 Subject: [PATCH] st3m_gfx: doing clearing of fbs in rast task --- components/st3m/st3m_gfx.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/components/st3m/st3m_gfx.c b/components/st3m/st3m_gfx.c index c1aa54cb6f..876ade3e60 100644 --- a/components/st3m/st3m_gfx.c +++ b/components/st3m/st3m_gfx.c @@ -316,6 +316,8 @@ static void st3m_gfx_init_palette(st3m_gfx_mode mode) { } } +static unsigned int st3m_clear_fbs = 0; + st3m_gfx_mode st3m_gfx_set_mode(st3m_gfx_mode mode) { if ((mode == _st3m_gfx_mode) || (0 != (default_mode & st3m_gfx_lock))) { st3m_gfx_init_palette( @@ -323,8 +325,7 @@ st3m_gfx_mode st3m_gfx_set_mode(st3m_gfx_mode mode) { return (mode ? mode : default_mode); } - memset(st3m_fb, 0, sizeof(st3m_fb)); - memset(st3m_fb2, 0, sizeof(st3m_fb2)); + st3m_clear_fbs = 1; if (mode == st3m_gfx_default) mode = default_mode; @@ -438,7 +439,13 @@ static void st3m_gfx_task(void *_arg) { st3m_gfx_viewport_transform(fb_RGB8_ctx); } - if ((set_mode & st3m_gfx_direct_ctx) == 0) + if (st3m_clear_fbs) { + memset(st3m_fb, 0, sizeof(st3m_fb)); + memset(st3m_fb2, 0, sizeof(st3m_fb2)); + st3m_clear_fbs = 0; + } + + if (((set_mode & st3m_gfx_direct_ctx) == 0)) ctx_render_ctx(drawlist->user_ctx, user_target); if ((scale > 1) || ((set_mode & st3m_gfx_osd) && -- GitLab