summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/render/d3d
diff options
context:
space:
mode:
Diffstat (limited to 'src/osd/modules/render/d3d')
-rw-r--r--src/osd/modules/render/d3d/d3dhlsl.cpp11
1 files changed, 9 insertions, 2 deletions
diff --git a/src/osd/modules/render/d3d/d3dhlsl.cpp b/src/osd/modules/render/d3d/d3dhlsl.cpp
index 61be7aad776..0280dd31e68 100644
--- a/src/osd/modules/render/d3d/d3dhlsl.cpp
+++ b/src/osd/modules/render/d3d/d3dhlsl.cpp
@@ -970,6 +970,7 @@ int shaders::create_resources(bool reset)
yiq_encode_effect->add_uniform("CCValue", uniform::UT_FLOAT, uniform::CU_NTSC_CCFREQ);
yiq_encode_effect->add_uniform("AValue", uniform::UT_FLOAT, uniform::CU_NTSC_A);
yiq_encode_effect->add_uniform("BValue", uniform::UT_FLOAT, uniform::CU_NTSC_B);
+ yiq_decode_effect->add_uniform("OValue", uniform::UT_FLOAT, uniform::CU_NTSC_O);
yiq_encode_effect->add_uniform("PValue", uniform::UT_FLOAT, uniform::CU_NTSC_P);
yiq_encode_effect->add_uniform("NotchHalfWidth", uniform::UT_FLOAT, uniform::CU_NTSC_NOTCH);
yiq_encode_effect->add_uniform("YFreqResponse", uniform::UT_FLOAT, uniform::CU_NTSC_YFREQ);
@@ -1244,10 +1245,15 @@ int shaders::ntsc_pass(render_target *rt, int source_index, poly_info *poly, int
return next_index;
}
+ float frame_offset = curr_texture->get_cur_frame() == 0
+ ? 0.0f
+ : (float)curr_texture->get_cur_frame();
+
// Convert our signal into YIQ
curr_effect = yiq_encode_effect;
curr_effect->update_uniforms();
-
+ curr_effect->set_float("FrameOffset", frame_offset);
+
// initial "Diffuse" texture is set in shaders::set_texture()
next_index = rt->next_index(next_index);
@@ -1258,7 +1264,8 @@ int shaders::ntsc_pass(render_target *rt, int source_index, poly_info *poly, int
curr_effect->update_uniforms();
curr_effect->set_texture("Composite", rt->native_texture[next_index]);
curr_effect->set_texture("Diffuse", curr_texture->get_finaltex());
-
+ curr_effect->set_float("FrameOffset", frame_offset);
+
next_index = rt->next_index(next_index);
blit(rt->native_target[next_index], true, D3DPT_TRIANGLELIST, 0, 2);