void RENDER_EndUpdate( bool abort ) { if (GCC_UNLIKELY(!render.updating)) return; RENDER_DrawLine = RENDER_EmptyLineHandler; if (GCC_UNLIKELY(CaptureState & (CAPTURE_IMAGE|CAPTURE_VIDEO))) { Bitu pitch, flags; flags = 0; if (render.src.dblw != render.src.dblh) { if (render.src.dblw) flags|=CAPTURE_FLAG_DBLW; if (render.src.dblh) flags|=CAPTURE_FLAG_DBLH; } float fps = render.src.fps; pitch = render.scale.cachePitch; if (render.frameskip.max) fps /= 1+render.frameskip.max; CAPTURE_AddImage( render.src.width, render.src.height, render.src.bpp, pitch, flags, fps, (Bit8u *)&scalerSourceCache, (Bit8u*)&render.pal.rgb ); } if ( render.scale.outWrite ) { GFX_EndUpdate( abort? NULL : Scaler_ChangedLines ); render.frameskip.hadSkip[render.frameskip.index] = 0; } else { #if 0 Bitu total = 0, i; render.frameskip.hadSkip[render.frameskip.index] = 1; for (i = 0;i<RENDER_SKIP_CACHE;i++) total += render.frameskip.hadSkip[i]; LOG_MSG( "Skipped frame %d %d", PIC_Ticks, (total * 100) / RENDER_SKIP_CACHE ); #endif } render.frameskip.index = (render.frameskip.index + 1) & (RENDER_SKIP_CACHE - 1); render.updating=false; }
void RENDER_EndUpdate( bool abort ) { if (GCC_UNLIKELY(!render.updating)) return; RENDER_DrawLine = RENDER_EmptyLineHandler; if (GCC_UNLIKELY(CaptureState & (CAPTURE_IMAGE|CAPTURE_VIDEO))) { Bitu pitch, flags; flags = 0; if (render.src.dblw != render.src.dblh) { if (render.src.dblw) flags|=CAPTURE_FLAG_DBLW; if (render.src.dblh) flags|=CAPTURE_FLAG_DBLH; } float fps = render.src.fps; pitch = render.scale.cachePitch; if (render.frameskip.max) fps /= 1+render.frameskip.max; CAPTURE_AddImage( render.src.width, render.src.height, render.src.bpp, pitch, flags, fps, (Bit8u *)&scalerSourceCache, (Bit8u*)&render.pal.rgb ); } if ( render.scale.outWrite ) { GFX_EndUpdate( abort? NULL : Scaler_ChangedLines ); render.frameskip.hadSkip[render.frameskip.index] = 0; } else { #if 0 Bitu total = 0, i; render.frameskip.hadSkip[render.frameskip.index] = 1; for (i = 0;i<RENDER_SKIP_CACHE;i++) total += render.frameskip.hadSkip[i]; LOG_MSG( "Skipped frame %d %d", PIC_Ticks, (total * 100) / RENDER_SKIP_CACHE ); #endif // Force output to update the screen even if nothing changed... // works only with Direct3D output (GFX_StartUpdate() was probably not even called) if (render.forceUpdate) GFX_EndUpdate( 0 ); } render.frameskip.index = (render.frameskip.index + 1) & (RENDER_SKIP_CACHE - 1); render.updating=false; if (pause_on_vsync) { pause_on_vsync = false; PauseDOSBox(true); } }
static void RENDER_CallBack( GFX_CallBackFunctions_t function ) { if (function == GFX_CallBackStop) { RENDER_Halt( ); return; } else if (function == GFX_CallBackRedraw) { return; } else if ( function == GFX_CallBackReset) { GFX_EndUpdate( 0 ); RENDER_Reset(); } else { E_Exit("Unhandled GFX_CallBackReset %d", function ); } }
void RENDER_EndUpdate( bool abort ) { if (GCC_UNLIKELY(!render.updating)) return; RENDER_DrawLine = RENDER_EmptyLineHandler; GFX_EndUpdate(NULL); /* if (GCC_UNLIKELY(CaptureState & (CAPTURE_IMAGE|CAPTURE_VIDEO))) { Bitu pitch, flags; flags = 0; if (render.src.dblw != render.src.dblh) { if (render.src.dblw) flags|=CAPTURE_FLAG_DBLW; if (render.src.dblh) flags|=CAPTURE_FLAG_DBLH; } float fps = render.src.fps; pitch = render.scale.cachePitch; if (render.frameskip.max) fps /= 1+render.frameskip.max; CAPTURE_AddImage( render.src.width, render.src.height, render.src.bpp, pitch, flags, fps, (Bit8u *)&scalerSourceCache, (Bit8u*)&render.pal.rgb ); } */ render.updating=false; }
static void RENDER_Halt( void ) { RENDER_DrawLine = RENDER_EmptyLineHandler; GFX_EndUpdate( 0 ); render.updating=false; render.active=false; }