From 0e61461c0733c296a1de78fe37170cdd3b6d20ce Mon Sep 17 00:00:00 2001 From: Themaister Date: Mon, 22 Apr 2013 21:10:17 +0200 Subject: [PATCH] Should fix very strange flickering bug. --- dynamic.c | 6 ++++++ retroarch.c | 10 +++++----- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/dynamic.c b/dynamic.c index 78dcef9ca1..fe0e477af2 100644 --- a/dynamic.c +++ b/dynamic.c @@ -374,6 +374,12 @@ void uninit_libretro_sym(void) #ifndef RARCH_CONSOLE lib_dummy = false; #endif + + // No longer valid. + memset(&g_extern.system.info, 0, sizeof(g_extern.system.info)); + memset(&g_extern.system.av_info, 0, sizeof(g_extern.system.av_info)); + memset(&g_extern.frame_cache, 0, sizeof(g_extern.frame_cache)); + g_extern.system.pix_fmt = RETRO_PIXEL_FORMAT_0RGB1555; } #ifdef NEED_DYNAMIC diff --git a/retroarch.c b/retroarch.c index dedd416700..65bfdb4f54 100644 --- a/retroarch.c +++ b/retroarch.c @@ -249,6 +249,11 @@ static void video_frame(const void *data, unsigned width, unsigned height, size_ if (!g_extern.video_active) return; + g_extern.frame_cache.data = data; + g_extern.frame_cache.width = width; + g_extern.frame_cache.height = height; + g_extern.frame_cache.pitch = pitch; + if (g_extern.system.pix_fmt == RETRO_PIXEL_FORMAT_0RGB1555 && data) { RARCH_PERFORMANCE_INIT(video_frame_conv); @@ -307,11 +312,6 @@ static void video_frame(const void *data, unsigned width, unsigned height, size_ if (!video_frame_func(data, width, height, pitch, msg)) g_extern.video_active = false; #endif - - g_extern.frame_cache.data = data; - g_extern.frame_cache.width = width; - g_extern.frame_cache.height = height; - g_extern.frame_cache.pitch = pitch; } void rarch_render_cached_frame(void)