struct picasso96_state_struct *state = &picasso96_state[monid];
struct picasso_vidbuf_description *vidinfo = &picasso_vidinfo[monid];
struct amigadisplay *ad = &adisplays[monid];
+ bool full = false;
if (D3D_restore)
D3D_restore(monid, true);
if (doskip () && p96skipmode == 0) {
;
} else {
- bool full = vidinfo->full_refresh > 0;
+ full = vidinfo->full_refresh > 0;
if (uaegfx_active) {
if (!currprefs.rtg_multithread) {
picasso_flushpixels(0, gfxmem_banks[uaegfx_index]->start + natmem_offset, state->XYOffset - gfxmem_banks[uaegfx_index]->start, true);
if (vidinfo->full_refresh > 0)
vidinfo->full_refresh--;
}
- gfxboard_vsync_handler(full, true);
if (currprefs.rtg_multithread && uaegfx_active) {
if (ad->pending_render) {
ad->pending_render = false;
write_comm_pipe_int(render_pipe, uaegfx_index, 0);
}
}
+ gfxboard_vsync_handler(full, true);
}
static void rtg_clear(int monid)
{
p96_framecnt++;
if (!uaegfx && !ad->picasso_on) {
- rtg_render();
+ gfxboard_vsync_handler(false, true);
return;
}
return;
}
- if (uaegfx && uaegfx_active)
- if (setupcursor_needed)
+ if (uaegfx && uaegfx_active) {
+ if (setupcursor_needed) {
setupcursor();
+ }
mouseupdate(mon);
+ }
if (thisisvsync) {
- rtg_render();
+ if (uaegfx) {
+ rtg_render();
+ } else {
+ gfxboard_vsync_handler(false, true);
+ }
frame_drawn(monid);
}
if (!ad->picasso_on) {
createwindowscursor(mon->monitor_id, 0, 1);
}
- int vsync = isvsync_rtg();
- if (vsync < 0) {
- p96hsync = 0;
- picasso_handle_vsync2(mon);
- } else if (currprefs.win32_rtgvblankrate == 0) {
- picasso_handle_vsync2(mon);
- }
+ }
+ int vsync = isvsync_rtg();
+ if (vsync < 0) {
+ p96hsync = 0;
+ picasso_handle_vsync2(mon);
+ } else if (currprefs.win32_rtgvblankrate == 0) {
+ picasso_handle_vsync2(mon);
}
}