summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author hap <happppp@users.noreply.github.com>2026-04-23 20:18:03 +0200
committer hap <happppp@users.noreply.github.com>2026-04-23 20:18:15 +0200
commit3b1bc6244cc68a929d6a6f6b7ca0289cdfc3cd4a (patch)
tree98080c367b68a6253690b2fed4d498a1574d2323
parentb77e8823140e9b6937f0115066d38c585bb48adb (diff)
screen: correction to update_partial(scanline) logic after prev commit
-rw-r--r--src/emu/screen.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/emu/screen.cpp b/src/emu/screen.cpp
index d1c7eed720d..5e220df4c00 100644
--- a/src/emu/screen.cpp
+++ b/src/emu/screen.cpp
@@ -1178,6 +1178,16 @@ bool screen_device::update_partial(int scanline)
return false;
}
+ // if we left off in the middle of a scanline, eg. with update_now(), finish that scanline first
+ if (m_partial_scan_hpos > 0)
+ {
+ update_partial(m_last_partial_scan + 1, 0);
+
+ // check again if scanline was already rendered
+ if (scanline < m_last_partial_scan)
+ return true;
+ }
+
// set the range of scanlines to render
rectangle clip(m_visarea);
clip.sety((std::max)(clip.top(), m_last_partial_scan), (std::min)(clip.bottom(), scanline));
@@ -1192,10 +1202,6 @@ bool screen_device::update_partial(int scanline)
// otherwise, render
LOG_PARTIAL_UPDATES(("updating %d-%d\n", clip.top(), clip.bottom()));
- // if we left off in the middle of a scanline, eg. with update_now(), finish that scanline first
- if (m_partial_scan_hpos > 0)
- update_partial(m_last_partial_scan, 0);
-
u32 flags = 0;
{
auto profile = g_profiler.start(PROFILER_VIDEO);