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.cpp9
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))