From 94453b474d46fbc48b87d247ecc88e2e9d30c474 Mon Sep 17 00:00:00 2001 From: ImJezze Date: Tue, 17 Nov 2015 19:59:54 +0100 Subject: [PATCH] Fixed reset of HLSL settings - fixed bug that resets the HLSL settings when switching between window mode and fullscreen --- src/osd/modules/render/d3d/d3dhlsl.cpp | 17 +++++++++++++---- src/osd/modules/render/d3d/d3dhlsl.h | 1 + 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/src/osd/modules/render/d3d/d3dhlsl.cpp b/src/osd/modules/render/d3d/d3dhlsl.cpp index a4c63f6380a..b1196203f94 100644 --- a/src/osd/modules/render/d3d/d3dhlsl.cpp +++ b/src/osd/modules/render/d3d/d3dhlsl.cpp @@ -102,6 +102,8 @@ shaders::shaders(): shaders::~shaders() { + last_options = *options; + options = NULL; cache_target *currcache = cachehead; @@ -677,6 +679,11 @@ void shaders::init(base *d3dintf, running_machine *machine, d3d::renderer *rende snap_width = winoptions.d3d_snap_width(); snap_height = winoptions.d3d_snap_height(); + if (last_options.params_init) + { + options = &last_options; + } + if (!options->params_init) { strncpy(options->shadow_mask_texture, winoptions.screen_shadow_mask_texture(), sizeof(options->shadow_mask_texture)); @@ -2679,10 +2686,7 @@ static INT32 slider_bloom_lvl10_scale(running_machine &machine, void *arg, std:: return slider_set(&(((hlsl_options*)arg)->bloom_level10_weight), 0.01f, "%1.2f", str, newval); } - -//============================================================ -// init_slider_list -//============================================================ +hlsl_options shaders::last_options; shaders::slider_desc shaders::s_sliders[] = { @@ -2763,6 +2767,11 @@ shaders::slider_desc shaders::s_sliders[] = { NULL, 0, 0, 0, 0, 0, NULL }, }; + +//============================================================ +// init_slider_list +//============================================================ + slider_state *shaders::init_slider_list() { if (!master_enable || !d3dintf->post_fx_available) diff --git a/src/osd/modules/render/d3d/d3dhlsl.h b/src/osd/modules/render/d3d/d3dhlsl.h index 96901a5cd67..71661bbe625 100644 --- a/src/osd/modules/render/d3d/d3dhlsl.h +++ b/src/osd/modules/render/d3d/d3dhlsl.h @@ -434,6 +434,7 @@ private: cache_target * cachehead; static slider_desc s_sliders[]; + static hlsl_options last_options; // last used options }; }