Mercurial > repos > blastem
diff sms.c @ 1401:b56c8c51ca5d
Properly release and reacquire framebuffer pointer when switching contexts. Hopefully fixes the LOCKRECT issue some people are seeing with the SDL 2 fallback renderer
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Thu, 15 Jun 2017 09:45:21 -0700 |
parents | 1df16f5985f3 |
children | c886c54d8cf1 |
line wrap: on
line diff
--- a/sms.c Wed Jun 14 21:59:30 2017 -0700 +++ b/sms.c Thu Jun 15 09:45:21 2017 -0700 @@ -226,10 +226,18 @@ target_cycle -= adjust; } } + vdp_release_framebuffer(sms->vdp); sms->should_return = 0; render_enable_ym(); } +static void resume_sms(system_header *system) +{ + sms_context *sms = (sms_context *)system; + vdp_reacquire_framebuffer(sms->vdp); + run_sms(system); +} + static void start_sms(system_header *system, char *statefile) { sms_context *sms = (sms_context *)system; @@ -361,7 +369,7 @@ sms->header.set_speed_percent = set_speed_percent; sms->header.start_context = start_sms; - sms->header.resume_context = run_sms; + sms->header.resume_context = resume_sms; sms->header.load_save = load_save; sms->header.persist_save = persist_save; sms->header.free_context = free_sms;