mirror of
https://github.com/holub/mame
synced 2025-06-16 09:20:04 +03:00
hlsl: fixed games with off-screen backdrop artworks
- e.g. atarifb, bowler
This commit is contained in:
parent
a2c76b34d8
commit
51a81ef3aa
@ -1271,6 +1271,8 @@ int shaders::screen_pass(d3d_render_target *rt, int source_index, poly_info *pol
|
|||||||
{
|
{
|
||||||
int next_index = source_index;
|
int next_index = source_index;
|
||||||
|
|
||||||
|
d3d->set_blendmode(PRIMFLAG_GET_BLENDMODE(poly->flags()));
|
||||||
|
|
||||||
curr_effect = default_effect;
|
curr_effect = default_effect;
|
||||||
curr_effect->update_uniforms();
|
curr_effect->update_uniforms();
|
||||||
curr_effect->set_technique("ScreenTechnique");
|
curr_effect->set_technique("ScreenTechnique");
|
||||||
@ -1301,6 +1303,8 @@ int shaders::screen_pass(d3d_render_target *rt, int source_index, poly_info *pol
|
|||||||
|
|
||||||
void shaders::ui_pass(poly_info *poly, int vertnum)
|
void shaders::ui_pass(poly_info *poly, int vertnum)
|
||||||
{
|
{
|
||||||
|
d3d->set_blendmode(PRIMFLAG_GET_BLENDMODE(poly->flags()));
|
||||||
|
|
||||||
curr_effect = default_effect;
|
curr_effect = default_effect;
|
||||||
curr_effect->update_uniforms();
|
curr_effect->update_uniforms();
|
||||||
curr_effect->set_technique("UiTechnique");
|
curr_effect->set_technique("UiTechnique");
|
||||||
|
@ -1857,9 +1857,6 @@ void renderer_d3d9::primitive_flush_pending()
|
|||||||
set_modmode(m_poly[polynum].modmode());
|
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)
|
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);
|
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())
|
if(m_shaders->enabled())
|
||||||
{
|
{
|
||||||
|
// reset blend mode (handled by shader passes)
|
||||||
|
set_blendmode(BLENDMODE_NONE);
|
||||||
|
|
||||||
m_shaders->render_quad(&m_poly[polynum], vertnum);
|
m_shaders->render_quad(&m_poly[polynum], vertnum);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// set blend mode
|
||||||
|
set_blendmode(PRIMFLAG_GET_BLENDMODE(flags));
|
||||||
|
|
||||||
// add the primitives
|
// add the primitives
|
||||||
result = m_device->DrawPrimitive(m_poly[polynum].type(), vertnum, m_poly[polynum].count());
|
result = m_device->DrawPrimitive(m_poly[polynum].type(), vertnum, m_poly[polynum].count());
|
||||||
if (FAILED(result))
|
if (FAILED(result))
|
||||||
|
Loading…
Reference in New Issue
Block a user