From 4b3c344825402e5384e8b3b734c6cd349282e737 Mon Sep 17 00:00:00 2001 From: tinkeros <76139882+tinkeros@users.noreply.github.com> Date: Sat, 25 Feb 2023 19:41:54 -0600 Subject: [PATCH] Skip partial updates when updating entire screen (#90) --- src/System/Gr/GrScreen.ZC | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/System/Gr/GrScreen.ZC b/src/System/Gr/GrScreen.ZC index dcfd93a9..d3166177 100755 --- a/src/System/Gr/GrScreen.ZC +++ b/src/System/Gr/GrScreen.ZC @@ -395,10 +395,16 @@ U0 GrUpdateScreen32() while (src < size) //draw 2 pixels at a time *dst++ = gr_palette[*src++ & 0xFF] | gr_palette[*src++ & 0xFF] << 32; - GrCalcScreenUpdates; - if (LBtr(&sys_semas[SEMA_FLUSH_VBE_IMAGE], 0)) + { MemCopy(text.fb_alias, text.raw_screen, text.buffer_size); + src -= GR_WIDTH * GR_HEIGHT; // Reset src ptr + MemCopy(gr.screen_cache, src, GR_WIDTH * GR_HEIGHT); + } + else + { + GrCalcScreenUpdates; + } } U0 GrUpdateScreen()