diff --git a/gfx/d3d/d3d.cpp b/gfx/d3d/d3d.cpp index 0544a4b386..6c2aea9616 100644 --- a/gfx/d3d/d3d.cpp +++ b/gfx/d3d/d3d.cpp @@ -977,11 +977,7 @@ static bool texture_image_render(d3d_video_t *d3d, d3d_vertex_buffer_unlock(out_img->vertex_buf); d3d_enable_blend_func(d3d->dev); - - /* Also blend the texture with the set alpha value. */ - d3d->dev->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE); - d3d->dev->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_DIFFUSE); - d3d->dev->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_TEXTURE); + d3d_enable_alpha_blend_texture_func(d3d->dev); /* Draw the quad. */ d3d_set_texture(d3dr, 0, out_img->texture_buf); diff --git a/gfx/d3d/d3d_wrapper.cpp b/gfx/d3d/d3d_wrapper.cpp index 53b9cabbfb..49f6c8b0d2 100644 --- a/gfx/d3d/d3d_wrapper.cpp +++ b/gfx/d3d/d3d_wrapper.cpp @@ -379,6 +379,19 @@ void d3d_enable_blend_func(void *data) dev->SetRenderState(D3DRS_ALPHABLENDENABLE, true); } +void d3d_enable_alpha_blend_texture_func(void *data) +{ + LPDIRECT3DDEVICE dev = (LPDIRECT3DDEVICE)data; + + if (!dev) + return; + + /* Also blend the texture with the set alpha value. */ + dev->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_MODULATE); + dev->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_DIFFUSE); + dev->SetTextureStageState(0, D3DTSS_ALPHAARG2, D3DTA_TEXTURE); +} + void d3d_disable_blend_func(void *data) { LPDIRECT3DDEVICE dev = (LPDIRECT3DDEVICE)data; diff --git a/gfx/d3d/d3d_wrapper.h b/gfx/d3d/d3d_wrapper.h index a34dd23cd4..fee8ca9a3d 100644 --- a/gfx/d3d/d3d_wrapper.h +++ b/gfx/d3d/d3d_wrapper.h @@ -89,4 +89,6 @@ void d3d_disable_blend_func(void *data); void d3d_set_vertex_declaration(void *data, void *vertex_data); +void d3d_enable_alpha_blend_texture_func(void *data); + #endif