comparison 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
comparison
equal deleted inserted replaced
1400:6a0e3bb6981f 1401:b56c8c51ca5d
224 vdp_adjust_cycles(sms->vdp, adjust); 224 vdp_adjust_cycles(sms->vdp, adjust);
225 sms->psg->cycles -= adjust; 225 sms->psg->cycles -= adjust;
226 target_cycle -= adjust; 226 target_cycle -= adjust;
227 } 227 }
228 } 228 }
229 vdp_release_framebuffer(sms->vdp);
229 sms->should_return = 0; 230 sms->should_return = 0;
230 render_enable_ym(); 231 render_enable_ym();
232 }
233
234 static void resume_sms(system_header *system)
235 {
236 sms_context *sms = (sms_context *)system;
237 vdp_reacquire_framebuffer(sms->vdp);
238 run_sms(system);
231 } 239 }
232 240
233 static void start_sms(system_header *system, char *statefile) 241 static void start_sms(system_header *system, char *statefile)
234 { 242 {
235 sms_context *sms = (sms_context *)system; 243 sms_context *sms = (sms_context *)system;
359 367
360 setup_io_devices(config, info_out, &sms->io); 368 setup_io_devices(config, info_out, &sms->io);
361 369
362 sms->header.set_speed_percent = set_speed_percent; 370 sms->header.set_speed_percent = set_speed_percent;
363 sms->header.start_context = start_sms; 371 sms->header.start_context = start_sms;
364 sms->header.resume_context = run_sms; 372 sms->header.resume_context = resume_sms;
365 sms->header.load_save = load_save; 373 sms->header.load_save = load_save;
366 sms->header.persist_save = persist_save; 374 sms->header.persist_save = persist_save;
367 sms->header.free_context = free_sms; 375 sms->header.free_context = free_sms;
368 sms->header.get_open_bus_value = get_open_bus_value; 376 sms->header.get_open_bus_value = get_open_bus_value;
369 sms->header.request_exit = request_exit; 377 sms->header.request_exit = request_exit;