diff options
| author | 2026-04-23 20:18:03 +0200 | |
|---|---|---|
| committer | 2026-04-23 20:18:15 +0200 | |
| commit | 3b1bc6244cc68a929d6a6f6b7ca0289cdfc3cd4a (patch) | |
| tree | 98080c367b68a6253690b2fed4d498a1574d2323 | |
| parent | b77e8823140e9b6937f0115066d38c585bb48adb (diff) | |
screen: correction to update_partial(scanline) logic after prev commit
| -rw-r--r-- | src/emu/screen.cpp | 14 |
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); |
