static int center_reset;
static bool init_genlock_data;
bool need_genlock_data;
+int video_recording_active;
/* Lookup tables for dual playfields. The dblpf_*1 versions are for the case
that playfield 1 has the priority, dbplpf_*2 are used if playfield 2 has
bool drawing_can_lineoptimizations(void)
{
- if (currprefs.monitoremu || currprefs.cs_cd32fmv || ((currprefs.genlock || currprefs.genlock_effects) && currprefs.genlock_image) ||
+ if (currprefs.cs_cd32fmv || ((currprefs.genlock || currprefs.genlock_effects) && currprefs.genlock_image) ||
currprefs.cs_color_burst || currprefs.gfx_grayscale || currprefs.monitoremu) {
return false;
}
if ((lightpen_active && currprefs.lightpen_crosshair) || debug_dma >= 2 || debug_heatmap >= 2) {
return false;
}
+ if (video_recording_active) {
+ return false;
+ }
return true;
}
lightpen_update(vb, 1);
}
}
+ if (video_recording_active) {
+ denise_lock();
+ }
}
extern bool beamracer_debug;
extern int detected_screen_resolution;
extern int hsync_end_left_border, hdisplay_left_border, denisehtotal;
extern int vsync_startline;
+extern int video_recording_active;
#define AMIGA_WIDTH_MAX (754 / 2)
#define AMIGA_HEIGHT_MAX_PAL (576 / 2)
fclose (wavfile);
wavfile = 0;
}
+ video_recording_active &= ~1;
}
void AVIOutput_End(void)
fps_in_use = avioutput_fps;
uae_start_thread(_T("aviworker"), AVIOutput_worker, NULL, NULL);
write_log(_T("AVIOutput enabled: monitor=%d video=%d audio=%d path='%s'\n"), aviout_monid, avioutput_video, avioutput_audio, avioutput_filename_inuse);
+ video_recording_active |= 1;
return;
error:
recursive--;
- if (failed)
+ if (failed) {
screenshot_multi = 0;
+ video_recording_active &= ~2;
+ }
return failed == 0;
}
if (mode == 2) {
screenshot_multi = 10;
+ video_recording_active |= 2;
screenshot_prepare_multi();
} else if (mode == 3) {
screenshot_multi = -1;
screenshot_prepare_multi();
+ video_recording_active &= ~2;
} else if (mode == 4) {
screenshot_multi = 0;
filenumber = 0;
+ video_recording_active &= ~2;
} else {
screenshotf(monid, NULL, mode, doprepare, -1, NULL);
}
{
struct AmigaMonitor *mon = &AMonitors[monid];
struct vidbuf_description *avidinfo = &adisplays[monid].gfxvidinfo;
- struct vidbuffer *vb = avidinfo->outbuffer;
+ struct vidbuffer *vb = avidinfo->inbuffer;
if (!vb)
return;
{
struct AmigaMonitor *mon = &AMonitors[monid];
struct vidbuf_description *avidinfo = &adisplays[monid].gfxvidinfo;
- struct vidbuffer *vb = avidinfo->outbuffer;
+ struct vidbuffer *vb = avidinfo->inbuffer;
int w, h;
*widthp = 0;