summaryrefslogtreecommitdiff
path: root/Source/Core/VideoBackends/D3D/Render.cpp
diff options
context:
space:
mode:
authordegasus <wickmarkus@web.de>2016-12-28 01:37:41 +0100
committerdegasus <wickmarkus@web.de>2017-01-04 20:02:31 +0100
commit41b0c74e3056ec0d0b354896684debb2d82320f3 (patch)
treefb2b3f0b624a4dc275100633e6a251fa1944e5e6 /Source/Core/VideoBackends/D3D/Render.cpp
parentb7d8bd13a6c44eecf5c5e59ea60796e3018785f9 (diff)
VideoCommon: Make dst_alpha state implicit.
Diffstat (limited to 'Source/Core/VideoBackends/D3D/Render.cpp')
-rw-r--r--Source/Core/VideoBackends/D3D/Render.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/Source/Core/VideoBackends/D3D/Render.cpp b/Source/Core/VideoBackends/D3D/Render.cpp
index 31eea38d9c..150f51c14c 100644
--- a/Source/Core/VideoBackends/D3D/Render.cpp
+++ b/Source/Core/VideoBackends/D3D/Render.cpp
@@ -940,8 +940,12 @@ void Renderer::RestoreAPIState()
BPFunctions::SetScissor();
}
-void Renderer::ApplyState(bool bUseDstAlpha)
+void Renderer::ApplyState()
{
+ // TODO: Refactor this logic here.
+ bool bUseDstAlpha = bpmem.dstalpha.enable && bpmem.blendmode.alphaupdate &&
+ bpmem.zcontrol.pixel_format == PEControl::RGBA6_Z24;
+
gx_state.blend.use_dst_alpha = bUseDstAlpha;
D3D::stateman->PushBlendState(gx_state_cache.Get(gx_state.blend));
D3D::stateman->PushDepthState(gx_state_cache.Get(gx_state.zmode));