diff options
author | Michael Pavone <pavone@retrodev.com> | 2017-06-15 09:45:21 -0700 |
---|---|---|
committer | Michael Pavone <pavone@retrodev.com> | 2017-06-15 09:45:21 -0700 |
commit | dee43c24fbd5f0ee0b81cc325164903c8b25ea1d (patch) | |
tree | ad8562d7a5d411430122ac75b1e755e571907684 /sms.c | |
parent | fd0dfe77e0c947e63026c944b94675018834351b (diff) |
Properly release and reacquire framebuffer pointer when switching contexts. Hopefully fixes the LOCKRECT issue some people are seeing with the SDL 2 fallback renderer
Diffstat (limited to 'sms.c')
-rw-r--r-- | sms.c | 10 |
1 files changed, 9 insertions, 1 deletions
@@ -226,10 +226,18 @@ static void run_sms(system_header *system) 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_context *alloc_configure_sms(system_media *media, uint32_t opts, uint8_t for 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; |