diff options
author | 2016-11-02 21:39:11 +0100 | |
---|---|---|
committer | 2016-11-02 21:39:11 +0100 | |
commit | 51a81ef3aada424ea63cd7858cc8131ee71ac054 (patch) | |
tree | aa070dd53e1fe8ab0df8ae186b1c457c29dbc347 /src/osd/modules/render/drawd3d.cpp | |
parent | a2c76b34d855183b6eefcf4e35863c626308dbeb (diff) |
hlsl: fixed games with off-screen backdrop artworks
- e.g. atarifb, bowler
Diffstat (limited to 'src/osd/modules/render/drawd3d.cpp')
-rw-r--r-- | src/osd/modules/render/drawd3d.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/osd/modules/render/drawd3d.cpp b/src/osd/modules/render/drawd3d.cpp index 386d9768962..f3e92845ffd 100644 --- a/src/osd/modules/render/drawd3d.cpp +++ b/src/osd/modules/render/drawd3d.cpp @@ -1857,9 +1857,6 @@ void renderer_d3d9::primitive_flush_pending() set_modmode(m_poly[polynum].modmode()); } - // set the blendmode if different - set_blendmode(PRIMFLAG_GET_BLENDMODE(flags)); - if (vertnum + m_poly[polynum].numverts() > m_numverts) { osd_printf_error("Error: vertnum (%d) plus poly vertex count (%d) > %d\n", vertnum, m_poly[polynum].numverts(), m_numverts); @@ -1870,10 +1867,16 @@ void renderer_d3d9::primitive_flush_pending() if(m_shaders->enabled()) { + // reset blend mode (handled by shader passes) + set_blendmode(BLENDMODE_NONE); + m_shaders->render_quad(&m_poly[polynum], vertnum); } else { + // set blend mode + set_blendmode(PRIMFLAG_GET_BLENDMODE(flags)); + // add the primitives result = m_device->DrawPrimitive(m_poly[polynum].type(), vertnum, m_poly[polynum].count()); if (FAILED(result)) |