diff --git a/360/main.c b/360/main.c index 2f538dd4ca..bc48822535 100644 --- a/360/main.c +++ b/360/main.c @@ -159,6 +159,7 @@ static void set_default_settings (void) g_console.gamma_correction_enable = false; g_console.initialize_rarch_enable = false; g_console.emulator_initialized = 0; + g_console.fbo_enabled = true; g_console.mode_switch = MODE_MENU; g_console.screen_orientation = ORIENTATION_NORMAL; g_console.throttle_enable = true; @@ -244,6 +245,7 @@ static void init_settings (bool load_libretro_path) CONFIG_GET_FLOAT(video.aspect_ratio, "video_aspect_ratio"); // g_console + CONFIG_GET_BOOL_CONSOLE(fbo_enabled, "fbo_enabled"); CONFIG_GET_BOOL_CONSOLE(throttle_enable, "throttle_enable"); CONFIG_GET_BOOL_CONSOLE(gamma_correction_enable, "gamma_correction_enable"); CONFIG_GET_STRING_CONSOLE(default_rom_startup_dir, "default_rom_startup_dir"); @@ -276,6 +278,7 @@ static void save_settings (void) config_set_bool(conf, "video_vsync", g_settings.video.vsync); // g_console + config_set_bool(conf, "fbo_enabled", g_console.fbo_enabled); config_set_string(conf, "default_rom_startup_dir", g_console.default_rom_startup_dir); config_set_bool(conf, "gamma_correction_enable", g_console.gamma_correction_enable); config_set_bool(conf, "throttle_enable", g_console.throttle_enable); diff --git a/360/xdk360_video.cpp b/360/xdk360_video.cpp index f7d52a43aa..84caea62b7 100644 --- a/360/xdk360_video.cpp +++ b/360/xdk360_video.cpp @@ -384,6 +384,13 @@ static void xdk360_convert_texture_to_as16_srgb( D3DTexture *pTexture ) pTexture->Format.DataFormat = g_MapLinearToSrgbGpuFormat[ (desc.Format & D3DFORMAT_TEXTUREFORMAT_MASK) >> D3DFORMAT_TEXTUREFORMAT_SHIFT ]; } +void xdk360_set_fbo_enable (bool enable) +{ + xdk360_video_t *vid = (xdk360_video_t*)g_d3d; + + vid->fbo_enabled = enable; +} + static void *xdk360_gfx_init(const video_info_t *video, const input_driver_t **input, void **input_data) { if (g_d3d) diff --git a/360/xdk360_video.h b/360/xdk360_video.h index c26cecd041..65b3c56006 100644 --- a/360/xdk360_video.h +++ b/360/xdk360_video.h @@ -62,6 +62,7 @@ typedef struct xdk360_video void xdk360_video_init (void); void xdk360_video_deinit (void); void xdk360_video_set_vsync (bool vsync); +void xdk360_set_fbo_enable (bool enable); extern void *g_d3d; diff --git a/gfx/shader_hlsl.c b/gfx/shader_hlsl.c index 9c0a2a6ed7..015dd98bb3 100644 --- a/gfx/shader_hlsl.c +++ b/gfx/shader_hlsl.c @@ -238,14 +238,16 @@ static void hlsl_deinit_progs(void) if (prg[i].vprg && prg[i].vprg != prg[0].vprg) prg[i].vprg->Release(); - prg[i].fprg = prg[i].vprg = NULL; + prg[i].fprg = NULL; + prg[i].vprg = NULL; } if (prg[0].fprg) prg[0].fprg->Release(); if (prg[0].vprg) prg[0].vprg->Release(); - prg[0].fprg = prg[0].vprg = NULL; + prg[0].fprg = NULL; + prg[0].vprg = NULL; } static void hlsl_deinit_state(void)