summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/render/drawd3d.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/modules/render/drawd3d.cpp')
-rw-r--r--src/osd/modules/render/drawd3d.cpp14
1 files changed, 10 insertions, 4 deletions
diff --git a/src/osd/modules/render/drawd3d.cpp b/src/osd/modules/render/drawd3d.cpp
index 2da64508647..020e4ee3de5 100644
--- a/src/osd/modules/render/drawd3d.cpp
+++ b/src/osd/modules/render/drawd3d.cpp
@@ -598,7 +598,8 @@ int renderer_d3d9::pre_window_draw_check()
// if we're restarting the renderer, leave things alone
if (m_restarting)
{
- m_shaders->toggle();
+ m_sliders.clear();
+ m_shaders->toggle(m_sliders);
m_restarting = false;
}
@@ -896,14 +897,16 @@ try_again:
m_shaders = (shaders*)global_alloc_clear<shaders>();
m_shaders->init(d3dintf, &window().machine(), this);
- m_sliders_dirty = true;
- int failed = m_shaders->create_resources(false);
+ m_sliders.clear();
+ int failed = m_shaders->create_resources(false, m_sliders);
if (failed)
{
return failed;
}
+ m_sliders_dirty = true;
+
return device_create_resources();
}
@@ -1002,6 +1005,7 @@ void renderer_d3d9::device_delete()
if (m_shaders != nullptr)
{
// free our effects
+ m_sliders.clear();
m_shaders->delete_resources(false);
// delete the HLSL interface
@@ -1130,6 +1134,7 @@ int renderer_d3d9::device_test_cooperative()
osd_printf_verbose("Direct3D: resetting device\n");
// free all existing resources and call reset on the device
+ m_sliders.clear();
m_shaders->delete_resources(true);
device_delete_resources();
result = (*d3dintf->device.reset)(m_device, &m_presentation);
@@ -1149,7 +1154,8 @@ int renderer_d3d9::device_test_cooperative()
return 1;
}
- if (m_shaders->create_resources(true))
+ m_sliders.clear();
+ if (m_shaders->create_resources(true, m_sliders))
{
osd_printf_verbose("Direct3D: failed to recreate HLSL resources for device; failing permanently\n");
device_delete();